35#ifndef MADNESS_CHEM_COREPOTENTIAL_H__INCLUDED
36#define MADNESS_CHEM_COREPOTENTIAL_H__INCLUDED
69 std::vector<double>
A;
75 const std::vector<int>&
n,
76 const std::vector<double>&
A,
77 const std::vector<double>&
alpha)
80 double eval(
double r)
const;
86 template <
typename Archive>
100 const std::vector<double>&
coeff,
101 const std::vector<double>&
expnt,
105 double minexpnt =
expnt[0];
106 for (
unsigned int i=1; i<
expnt.size(); ++i)
107 minexpnt = std::min(minexpnt,
expnt[i]);
117 double eval(
int m,
double rsq,
double x,
double y,
double z)
const;
121 template <
typename Archive>
138 template <
typename Archive>
142 for (std::vector<CoreOrbital>::iterator it=
orbital.begin(); it !=
orbital.end(); ++it) {
149 static const double fc;
169 inline unsigned int n_core_orb(
const unsigned int atn)
const {
170 return (*(
atom_core.find(atn))).second.n_orbital();
174 return (*(
atom_core.find(atn))).second.orbital.size();
184 return atom_core.find(atn)->second.potential;
187 inline unsigned int get_core_l(
unsigned int atn,
unsigned int core)
const {
191 inline double get_core_bc(
unsigned int atn,
unsigned int core)
const {
195 inline double core_eval(
unsigned int atn,
unsigned int core,
int m,
double rsq,
double x,
double y,
double z)
const {
199 inline double core_derivative(
unsigned int atn,
unsigned int core,
int m,
int axis,
double xi,
double rsq,
double x,
double y,
double z)
const {
219 template <
typename Archive>
223 for (std::map<unsigned int, AtomCore>::iterator it=
atom_core.begin(); it !=
atom_core.end(); ++it) {
224 ar & it->first & it->second;
Declaration of utility class and functions for atom.
Definition test_ar.cc:118
Definition corepotential.h:148
unsigned int n_core_orb_base(const unsigned int atn) const
Definition corepotential.h:173
std::string guess_file() const
Definition corepotential.h:177
std::map< unsigned int, AtomCore > atom_core
core potential data mapped atn to potential
Definition corepotential.h:152
std::string guess_filename
filename of initial guess density data
Definition corepotential.h:151
unsigned int n_core_orb(const unsigned int atn) const
Definition corepotential.h:169
std::string core_type
core potential type (eg. mcp)
Definition corepotential.h:150
CorePotentialManager()
Definition corepotential.h:156
CorePotentialManager(std::string filename, double eprec)
Definition corepotential.h:161
double potential_derivative(unsigned int atn, double xi, double r) const
Definition corepotential.h:208
double core_derivative(unsigned int atn, unsigned int core, int m, int axis, double xi, double rsq, double x, double y, double z) const
Definition corepotential.h:199
bool is_defined(const unsigned int atn) const
Definition corepotential.h:165
unsigned int get_core_l(unsigned int atn, unsigned int core) const
Definition corepotential.h:187
void read_file(std::string filename, std::set< unsigned int > atomset, double eprec)
Definition corepotential.cc:329
double core_eval(unsigned int atn, unsigned int core, int m, double rsq, double x, double y, double z) const
Definition corepotential.h:195
void serialize(Archive &ar)
Definition corepotential.h:220
void set_eprec(double value)
Definition corepotential.cc:369
CorePotential get_potential(unsigned int atn) const
Definition corepotential.h:183
void set_rcut(double value)
Definition corepotential.cc:379
double potential(unsigned int atn, double r) const
Definition corepotential.h:203
AtomCore get_atom_core(unsigned int atn) const
Definition corepotential.h:179
static const double fc
Definition corepotential.h:149
double get_core_bc(unsigned int atn, unsigned int core) const
Definition corepotential.h:191
Defines common mathematical and physical constants.
static const double eprec
Definition hatom_sf_dirac.cc:18
Macros and tools pertaining to the configuration of MADNESS.
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
static const char * filename
Definition legendre.cc:96
Defines simple templates for printing to std::cout "a la Python".
static const double m
Definition relops.cc:9
const double xi
Exponent for delta function approx.
Definition siam_example.cc:60
Definition corepotential.h:128
CorePotential potential
Definition corepotential.h:132
AtomCore()
Definition corepotential.h:134
unsigned int atomic_number
Definition corepotential.h:129
void serialize(Archive &ar)
Definition corepotential.h:139
std::vector< CoreOrbital > orbital
Definition corepotential.h:131
unsigned int n_orbital() const
Definition corepotential.h:136
unsigned int ncore
Definition corepotential.h:130
Definition corepotential.h:92
CoreOrbital(int type, const std::vector< double > &coeff, const std::vector< double > &expnt, double Bc)
Definition corepotential.h:99
double eval_derivative(int m, int axis, double xi, double rsq, double x, double y, double z) const
Definition corepotential.cc:237
vector< double > coeff
Definition corepotential.h:95
double rsqmax
Definition corepotential.h:96
double eval(int m, double rsq, double x, double y, double z) const
Definition corepotential.cc:226
void serialize(Archive &ar)
Definition corepotential.h:122
double eval_spherical_harmonics(int m, double x, double y, double z, double &dp, int axis) const
Definition corepotential.cc:139
double eval_radial(double rsq) const
Definition corepotential.cc:123
int type
Definition corepotential.h:94
double Bc
Definition corepotential.h:93
vector< double > expnt
Definition corepotential.h:95
CoreOrbital()
Definition corepotential.h:98
double eval_radial_derivative(double rsq, double xi) const
Definition corepotential.cc:131
Represents a core potential.
Definition corepotential.h:66
double rcut
Definition corepotential.h:71
CorePotential()
Definition corepotential.h:73
CorePotential(const std::vector< int > &l, const std::vector< int > &n, const std::vector< double > &A, const std::vector< double > &alpha)
Definition corepotential.h:74
std::vector< double > A
Definition corepotential.h:69
double eval_derivative(double xi, double r) const
Definition corepotential.cc:85
double eprec
Definition corepotential.h:71
void serialize(Archive &ar)
Definition corepotential.h:87
double eval(double r) const
Definition corepotential.cc:62
std::vector< double > alpha
Definition corepotential.h:70
std::vector< int > l
Angular momentum = 0, 1, 2, ...
Definition corepotential.h:67
std::string to_string() const
Definition corepotential.cc:112
std::vector< int > n
Definition corepotential.h:68
double rcut0
Definition corepotential.h:71
void e()
Definition test_sig.cc:75
std::size_t axis
Definition testpdiff.cc:59