28 #ifndef _chemistry_molecule_atominfo_h
29 #define _chemistry_molecule_atominfo_h
35 #include <util/class/class.h>
36 #include <util/keyval/keyval.h>
50 enum { Nelement = 118, DefaultZ = 0 };
59 static struct atom elements_[Nelement];
61 std::map<std::string,int> name_to_Z_;
62 std::map<std::string,int> symbol_to_Z_;
63 std::map<int,std::string> Z_to_names_;
64 std::map<int,std::string> Z_to_symbols_;
65 std::map<int,double> Z_to_mass_;
66 std::map<int,double> Z_to_atomic_radius_;
67 std::map<int,double> Z_to_vdw_radius_;
68 std::map<int,double> Z_to_bragg_radius_;
69 std::map<int,double> Z_to_maxprob_radius_;
70 std::map<int,std::vector<double> > Z_to_rgb_;
71 std::map<int,double> Z_to_ip_;
72 double atomic_radius_scale_;
73 double vdw_radius_scale_;
74 double bragg_radius_scale_;
75 double maxprob_radius_scale_;
77 char *overridden_values_;
79 void load_library_values();
80 void override_library_values(
const Ref<KeyVal> &keyval);
81 void load_values(
const Ref<KeyVal>& keyval,
int override);
82 void load_values(std::map<int,double>&,
83 double *scale,
const char *keyword,
86 void load_values(
std::map<
int,std::vector<double> >&,
89 void add_overridden_value(
const char *assignment);
90 void initialize_names();
91 double lookup_value(
const std::map<int,double>& values,
int Z)
const;
92 double lookup_array_value(
const std::map<
int,std::vector<double> >& values,
97 static bool has_announced_library_source_;
188 double bragg_radius(
int Z)
const;
189 double atomic_radius(
int Z)
const;
190 double maxprob_radius(
int Z)
const;
193 double ip(
int Z)
const;
206 double rgb(
int Z,
int color)
const;
207 double red(
int Z)
const;
208 double green(
int Z)
const;
209 double blue(
int Z)
const;
212 double mass(
int Z)
const;
215 std::string
name(
int Z)
const;
217 std::string
symbol(
int Z)
const;
220 int string_to_Z(
const std::string &,
int allow_exceptions = 1);
double ip(int Z) const
Returns the atomization potential for atomic number Z.
int string_to_Z(const std::string &, int allow_exceptions=1)
This converts a name or symbol to the atomic number.
double bragg_radius_scale() const
Return the scale factor for the Bragg radii.
Definition: atominfo.h:198
double vdw_radius_scale() const
Return the scale factor for the VdW radii.
Definition: atominfo.h:196
A template class that maintains references counts.
Definition: ref.h:361
std::string name(int Z) const
This returns the full name of the element.
double rgb(int Z, int color) const
These return information about the color of the atom for visualization programs.
double maxprob_radius_scale() const
Return the scale factor for the maximum probability radii.
Definition: atominfo.h:202
double mass(int Z) const
This returns the mass of the most abundant isotope.
double vdw_radius(int Z) const
These return various measures of the atom's radius.
std::vector< int > map(const GaussianBasisSet &B, const GaussianBasisSet &A)
same as operator<<, except A does not have to be contained in B, map[a] = -1 if function a is not in ...
Definition: stateout.h:71
double atomic_radius_scale() const
Return the scale factor for the atomic radii.
Definition: atominfo.h:200
void save_data_state(StateOut &s)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
static std::ostream & out0()
Return an ostream that writes from node 0.
Base class for objects that can save/restore state.
Definition: state.h:45
void print(std::ostream &os=ExEnv::out0()) const
prints out the contents of AtomInfo to ostream os
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
The AtomInfo class provides information about atoms.
Definition: atominfo.h:48
std::string symbol(int Z) const
This returns the symbol for the element.
Generated at Sun Jan 26 2020 23:23:56 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.