48 std::string nameh =
"none";
49 std::string notationh =
"none";
54 static constexpr int max_poss_atom_z = 100;
60 AtomDef(
const std::string& fnameh,
const std::string& fnotationh,
int fZh,
65 const std::string&
name()
const {
return nameh; }
66 const std::string&
notation()
const {
return notationh; }
67 int Z()
const {
return Zh; }
68 double A()
const {
return Ah; }
70 static void printall(std::ostream& file);
83 static double get_A(
int fZ);
89 void print(std::ostream& file,
int l = 0)
const;
92std::ostream&
operator<<(std::ostream& file,
const AtomDef& f);
101 std::vector<AtomDef*> atomh;
102 std::vector<double> weight_quanh;
103 std::vector<double> weight_massh;
110 double inv_A_meanh = 0.;
112 double mean_ratio_Z_to_Ah = 0.;
113 double NumberOfElectronsInGramh = 0.;
118 AtomMixDef(
unsigned long fqatom,
const std::vector<std::string>& fatom_not,
119 const std::vector<double>& fweight_quan);
120 AtomMixDef(
unsigned long fqatom,
const std::vector<std::string>& fatom_not,
121 const std::vector<long>& fweight_quan);
123 AtomMixDef(
const std::string& fatom_not1,
double fweight_quan1,
124 const std::string& fatom_not2,
double fweight_quan2);
125 AtomMixDef(
const std::string& fatom_not1,
double fweight_quan1,
126 const std::string& fatom_not2,
double fweight_quan2,
127 const std::string& fatom_not3,
double fweight_quan3);
128 AtomMixDef(
const std::string& fatom_not1,
double fweight_quan1,
129 const std::string& fatom_not2,
double fweight_quan2,
130 const std::string& fatom_not3,
double fweight_quan3,
131 const std::string& fatom_not4,
double fweight_quan4);
132 void print(std::ostream& file,
int l)
const;
133 long qatom()
const {
return qatomh; }
134 const std::vector<AtomDef*>&
atom()
const {
return atomh; }
136 const std::vector<double>&
weight_quan()
const {
return weight_quanh; }
137 const std::vector<double>&
weight_mass()
const {
return weight_massh; }
140 double Z_mean()
const {
return Z_meanh; }
141 double A_mean()
const {
return A_meanh; }
145 return NumberOfElectronsInGramh;
148std::ostream&
operator<<(std::ostream& file,
const AtomMixDef& f);
static std::list< AtomDef * > & get_logbook()
void verify()
Check that there is no atom with the same name in the container.
AtomDef()
Default constructor.
const std::string & name() const
void print(std::ostream &file, int l=0) const
static void printall(std::ostream &file)
Print all registered atoms.
const std::string & notation() const
static double get_A(int fZ)
static AtomDef * get_AtomDef(const std::string &fnotation)
static const std::list< AtomDef * > & get_const_logbook()
const std::vector< double > & weight_quan() const
AtomMixDef()=default
Default constructor.
void print(std::ostream &file, int l) const
const std::vector< double > & weight_mass() const
double mean_ratio_Z_to_A() const
double weight_quan(long n) const
const std::vector< AtomDef * > & atom() const
AtomDef * atom(long n) const
double NumberOfElectronsInGram() const
double inv_A_mean() const
double weight_mass(long n) const
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)