11void MatterDef::calc_I_eff(
void) { I_effh =
Z_mean() * 12.0 * eV; }
24 temperatureh(ftemperature),
26 mfunname(
"MatterDef::MatterDef(...many atoms...)");
33 const String& fatom_not,
double fdensity,
38 temperatureh(ftemperature),
40 mfunname(
"MatterDef::MatterDef(...1 atom...)");
47 const String& fatom_not1,
double fweight_quan1,
48 const String& fatom_not2,
double fweight_quan2,
49 double fdensity,
double ftemperature)
50 :
AtomMixDef(fatom_not1, fweight_quan1, fatom_not2, fweight_quan2),
53 temperatureh(ftemperature),
55 mfunname(
"MatterDef::MatterDef(...2 atoms...)");
62 const String& fatom_not1,
double fweight_quan1,
63 const String& fatom_not2,
double fweight_quan2,
64 const String& fatom_not3,
double fweight_quan3,
65 double fdensity,
double ftemperature)
66 :
AtomMixDef(fatom_not1, fweight_quan1, fatom_not2, fweight_quan2,
67 fatom_not3, fweight_quan3),
70 temperatureh(ftemperature),
72 mfunname(
"MatterDef::MatterDef(...2 atoms...)");
79 mfunnamep(
"void MatterDef::verify(void)");
80 if (nameh ==
"none" && notationh ==
"none")
return;
84 if (an->el->nameh == nameh || an->el->notationh == notationh) {
86 mcerr <<
"cannot initialize two matters "
87 <<
"with the same name or notation\n";
88 mcerr <<
"name=" << nameh <<
" notation=" << notationh <<
'\n';
96 "void MatterDef::verify(const String& fname, const String& fnotation)");
100 if (an->el->nameh == fname || an->el->notationh == fnotation) {
102 mcerr <<
"cannot initialize two matters "
103 <<
"with the same name or notation\n";
104 mcerr <<
"name=" << fname <<
" notation=" << fnotation <<
'\n';
111 if (l > 0) file << (*this);
115 Ifile <<
"MatterDef::printall:\n";
119 an->el->print(file, 1);
136 if (an->el->notation() == fnotation)
return an->el;
143 "std::ostream& operator << (std::ostream& file, const MatterDef& f)");
144 Ifile <<
"MatterDef: name=" << std::setw(10) << f.
name()
145 <<
" notation=" << std::setw(3) << f.
notation() <<
'\n';
147 Ifile <<
"density/(gram/cm3)=" << f.
density() / (gram / cm3)
148 <<
" temperature/kelvin=" << f.
temperature() / kelvin
149 <<
" I_eff/eV=" << f.
I_eff() / eV <<
'\n';
150 f.AtomMixDef::print(file, 1);
157 "std::ostream& operator << (std::ostream& file, const MatterType& f)");
158 if (f.
matdef.get() == NULL) {
159 Ifile <<
"MatterType: type is not initialized\n";
161 Ifile <<
"MatterType: notation=" << f.
matdef->notation() <<
'\n';
#define mfunnamep(string)
AbsListNode< T > * get_next_node(AbsListNode< T > *an) const
double Z_mean(void) const
static AbsList< MatterDef * > & get_logbook(void)
static MatterDef * get_MatterDef(const String &fnotation)
const String & notation(void) const
double density(void) const
virtual void print(std::ostream &file, int l) const
static const AbsList< MatterDef * > & get_const_logbook(void)
double temperature(void) const
const String & name(void) const
static void printall(std::ostream &file)
PassivePtr< MatterDef > matdef
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)