53 std::string notationh;
58 static const int max_poss_atom_z = 100;
64 AtomDef(
const std::string& fnameh,
const std::string& fnotationh,
int fZh,
69 const std::string&
name()
const {
return nameh; }
70 const std::string&
notation()
const {
return notationh; }
71 int Z()
const {
return Zh; }
72 double A()
const {
return Ah; }
74 static void printall(std::ostream& file);
87 static double get_A(
int fZ);
93 void print(std::ostream& file,
int l = 0)
const;
96std::ostream&
operator<<(std::ostream& file,
const AtomDef& f);
105 std::vector<PassivePtr<AtomDef> > atomh;
106 std::vector<double> weight_quanh;
107 std::vector<double> weight_massh;
116 double mean_ratio_Z_to_Ah;
117 double NumberOfElectronsInGramh;
126 mean_ratio_Z_to_Ah(0.0),
127 NumberOfElectronsInGramh(0.0) {}
128 AtomMixDef(
unsigned long fqatom,
const std::vector<std::string>& fatom_not,
129 const std::vector<double>& fweight_quan);
130 AtomMixDef(
unsigned long fqatom,
const std::vector<std::string>& fatom_not,
131 const std::vector<long>& fweight_quan);
133 AtomMixDef(
const std::string& fatom_not1,
double fweight_quan1,
134 const std::string& fatom_not2,
double fweight_quan2);
135 AtomMixDef(
const std::string& fatom_not1,
double fweight_quan1,
136 const std::string& fatom_not2,
double fweight_quan2,
137 const std::string& fatom_not3,
double fweight_quan3);
138 AtomMixDef(
const std::string& fatom_not1,
double fweight_quan1,
139 const std::string& fatom_not2,
double fweight_quan2,
140 const std::string& fatom_not3,
double fweight_quan3,
141 const std::string& fatom_not4,
double fweight_quan4);
142 void print(std::ostream& file,
int l)
const;
143 long qatom()
const {
return qatomh; }
144 const std::vector<PassivePtr<AtomDef> >&
atom()
const {
return atomh; }
146 const std::vector<double>&
weight_quan()
const {
return weight_quanh; }
147 const std::vector<double>&
weight_mass()
const {
return weight_massh; }
150 double Z_mean()
const {
return Z_meanh; }
151 double A_mean()
const {
return A_meanh; }
155 return NumberOfElectronsInGramh;
158std::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()
virtual AtomDef * copy() const
const std::vector< PassivePtr< AtomDef > > & atom() const
const std::vector< double > & weight_quan() const
void print(std::ostream &file, int l) const
const std::vector< double > & weight_mass() const
double mean_ratio_Z_to_A() const
PassivePtr< AtomDef > atom(long n) const
AtomMixDef()
Default constructor.
double weight_quan(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)