cloudy
trunk
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
source
energy.h
Go to the documentation of this file.
1
/* This file is part of Cloudy and is copyright (C)1978-2022 by Gary J. Ferland and
2
* others. For conditions of distribution and use see copyright notice in license.txt */
3
4
#ifndef ENERGY_H_
5
#define ENERGY_H_
6
7
#include "
physconst.h
"
8
9
class
Energy
10
{
11
double
m_energy
;
12
public
:
13
// CONSTRUCTORS
14
Energy
() :
m_energy
(0.0) {}
15
Energy
(
double
energy
) :
m_energy
(energy) {}
16
Energy
(
double
energy
,
const
char
*unit) :
m_energy
(0.0)
17
{
18
set
(energy, unit);
19
}
20
// OPERATORS
21
bool
operator<
(
const
Energy
& e)
const
22
{
23
return
(
m_energy
< e.
m_energy
);
24
}
25
// MUTATORS
26
void
set
(
double
energy
)
27
{
28
m_energy
=
energy
;
29
}
30
void
set
(
double
energy
,
const
char
*unit);
31
// ACCESSORS
32
double
get
(
const
char
* unit)
const
;
33
double
Ryd
()
const
34
{
35
return
m_energy
;
36
}
37
double
K
()
const
38
{
39
return
m_energy
*TE1RYD;
40
}
41
double
Erg
()
const
42
{
43
return
m_energy
*EN1RYD;
44
}
45
double
WN
()
const
46
{
47
return
m_energy
*RYD_INF;
48
}
49
double
eV
()
const
50
{
51
return
m_energy
*EVRYD;
52
}
53
double
keV
()
const
54
{
55
return
1e-3*
eV
();
56
}
57
double
MeV
()
const
58
{
59
return
1e-6*
eV
();
60
}
61
double
Hz
()
const
62
{
63
return
m_energy
*FR1RYD;
64
}
65
double
kHz
()
const
66
{
67
return
Hz
()*1e-3;
68
}
69
double
MHz
()
const
70
{
71
return
Hz
()*1e-6;
72
}
73
double
GHz
()
const
74
{
75
return
Hz
()*1e-9;
76
}
77
double
Angstrom
()
const
78
{
79
return
RYDLAM/
m_energy
;
80
}
81
double
nm
()
const
82
{
83
return
Angstrom
()*1e-1;
84
}
85
double
micron
()
const
86
{
87
return
Angstrom
()*1e-4;
88
}
89
double
mm
()
const
90
{
91
return
Angstrom
()*1e-7;
92
}
93
double
cm
()
const
94
{
95
return
Angstrom
()*1e-8;
96
}
97
};
98
99
//
104
//
105
class
EnergyEntry
:
public
Energy
106
{
107
long
p_ip
;
108
void
p_set_ip
();
109
public
:
110
EnergyEntry
() :
Energy
(0.)
111
{
112
p_ip
= -1;
113
}
114
EnergyEntry
(
double
energy
) :
Energy
(energy)
115
{
116
p_ip
= -1;
117
}
118
EnergyEntry
(
double
energy
,
const
char
*unit) :
Energy
(energy,unit)
119
{
120
p_ip
= -1;
121
}
122
void
set
(
double
energy
,
const
char
*unit)
123
{
124
Energy::set
(energy,unit);
125
p_set_ip
();
126
}
127
void
set
(
double
energy
)
128
{
129
Energy::set
(energy);
130
p_set_ip
();
131
}
132
// pointer on C scale
133
long
ip_C
()
134
{
135
// doing it this way assures that we can create an EnergyEntry before
136
// the mesh is set up; ipoint() will check that mesh is actually set up
137
if
(
p_ip
< 0 )
138
p_set_ip
();
139
return
p_ip
;
140
}
141
// pointer on fortran scale
142
long
ip_fortran
()
143
{
144
return
ip_C
() + 1;
145
}
146
};
147
148
const
char
*
StandardEnergyUnit
(
const
char
*);
149
150
bool
lgConserveEnergy
(
void
);
151
152
#endif
/* ENERGY_H_ */
153
Energy::Hz
double Hz() const
Definition:
energy.h:61
Energy::Angstrom
double Angstrom() const
Definition:
energy.h:77
EnergyEntry::p_ip
long p_ip
Definition:
energy.h:107
Energy::Energy
Energy()
Definition:
energy.h:14
Energy::GHz
double GHz() const
Definition:
energy.h:73
Energy::set
void set(double energy)
Definition:
energy.h:26
Energy::keV
double keV() const
Definition:
energy.h:53
EnergyEntry::EnergyEntry
EnergyEntry(double energy, const char *unit)
Definition:
energy.h:118
EnergyEntry
Definition:
energy.h:105
EnergyEntry::EnergyEntry
EnergyEntry()
Definition:
energy.h:110
Energy::cm
double cm() const
Definition:
energy.h:93
Energy::WN
double WN() const
Definition:
energy.h:45
Energy::Erg
double Erg() const
Definition:
energy.h:41
energy
double energy(const genericState &gs)
Definition:
generic_state.cpp:49
EnergyEntry::set
void set(double energy, const char *unit)
Definition:
energy.h:122
lgConserveEnergy
bool lgConserveEnergy()
Definition:
energy.cpp:311
Energy::Energy
Energy(double energy)
Definition:
energy.h:15
EnergyEntry::ip_fortran
long ip_fortran()
Definition:
energy.h:142
Energy::MeV
double MeV() const
Definition:
energy.h:57
EnergyEntry::set
void set(double energy)
Definition:
energy.h:127
Energy::Energy
Energy(double energy, const char *unit)
Definition:
energy.h:16
Energy::m_energy
double m_energy
Definition:
energy.h:11
EnergyEntry::p_set_ip
void p_set_ip()
Definition:
energy.cpp:290
Energy::nm
double nm() const
Definition:
energy.h:81
Energy::K
double K() const
Definition:
energy.h:37
Energy::operator<
bool operator<(const Energy &e) const
Definition:
energy.h:21
Energy::eV
double eV() const
Definition:
energy.h:49
EnergyEntry::EnergyEntry
EnergyEntry(double energy)
Definition:
energy.h:114
Energy::kHz
double kHz() const
Definition:
energy.h:65
StandardEnergyUnit
const char * StandardEnergyUnit(const char *chCard)
Definition:
energy.cpp:44
Energy::Ryd
double Ryd() const
Definition:
energy.h:33
Energy
Definition:
energy.h:9
Energy::mm
double mm() const
Definition:
energy.h:89
Energy::micron
double micron() const
Definition:
energy.h:85
EnergyEntry::ip_C
long ip_C()
Definition:
energy.h:133
Energy::MHz
double MHz() const
Definition:
energy.h:69
physconst.h
Generated by
1.8.5