MADNESS 0.10.1
|
#include <correlationfactor.h>
Public Member Functions | |
PseudoNuclearCorrelationFactor (World &world, const Molecule &mol, const std::shared_ptr< PotentialManager > pot, const double fac) | |
ctor | |
real_function_3d | apply_U (const real_function_3d &rhs) const |
apply the regularized potential U_nuc on a given function rhs | |
corrfactype | type () const |
const real_function_3d | U2 () const |
return the U2 term of the correlation function | |
Public Member Functions inherited from madness::NuclearCorrelationFactor | |
NuclearCorrelationFactor (World &world, const Molecule &mol) | |
ctor | |
virtual | ~NuclearCorrelationFactor () |
virtual destructor | |
coord_3d | dsmoothed_unitvec (const coord_3d &xyz, const int axis, double smoothing=0.0) const |
derivative of smoothed unit vector wrt the electronic coordinate | |
virtual real_function_3d | function () const |
return the nuclear correlation factor | |
void | initialize (const double vtol1) |
initialize the regularized potentials U1 and U2 | |
virtual real_function_3d | inverse () const |
return the inverse nuclear correlation factor | |
coord_3d | smoothed_unitvec (const coord_3d &xyz, double smoothing=0.0) const |
smoothed unit vector for the computation of the U1 potential | |
virtual real_function_3d | square () const |
return the square of the nuclear correlation factor | |
virtual real_function_3d | square_times_V_derivative (const int iatom, const int axis) const |
virtual const real_function_3d | U1 (const int axis) const |
return the U1 term of the correlation function | |
std::vector< real_function_3d > | U1vec () const |
return the U1 functions in a vector | |
Private Member Functions | |
double | S (const double &r, const double &Z) const |
the nuclear correlation factor | |
coord_3d | Sp (const coord_3d &vr1A, const double &Z) const |
radial part first derivative of the nuclear correlation factor | |
double | Spp_div_S (const double &r, const double &Z) const |
second derivative of the nuclear correlation factor | |
double | Sr_div_S (const double &r, const double &Z) const |
double | Srr_div_S (const double &r, const double &Z) const |
double | Srrr_div_S (const double &r, const double &Z) const |
double | U2X_spherical (const double &r, const double &Z, const double &rcut) const |
derivative of the U2 potential wrt nuclear coordinate X (spherical part) | |
Private Attributes | |
double | eprec |
const double | fac |
the factor of the correlation factor: R=fac; | |
std::shared_ptr< PotentialManager > | potentialmanager |
underlying potential (=molecule) | |
Additional Inherited Members | |
Public Types inherited from madness::NuclearCorrelationFactor | |
enum | corrfactype { None , GradientalGaussSlater , GaussSlater , LinearSlater , Polynomial , Slater , poly4erfc , Two , Adhoc } |
typedef std::shared_ptr< FunctionFunctorInterface< double, 3 > > | functorT |
Protected Attributes inherited from madness::NuclearCorrelationFactor | |
std::vector< real_function_3d > | U1_function |
the three components of the U1 potential | |
real_function_3d | U2_function |
the purely local U2 potential, having absorbed the nuclear pot V_nuc | |
|
inline |
ctor
[in] | world | the world |
[in] | mol | molecule with the sites of the nuclei |
References madness::Molecule::get_eprec(), print(), and madness::World::rank().
|
inlinevirtual |
apply the regularized potential U_nuc on a given function rhs
overload the base class method for efficiency
Reimplemented from madness::NuclearCorrelationFactor.
References madness::Function< T, NDIM >::truncate().
|
inlineprivatevirtual |
the nuclear correlation factor
Implements madness::NuclearCorrelationFactor.
|
inlineprivatevirtual |
radial part first derivative of the nuclear correlation factor
Implements madness::NuclearCorrelationFactor.
|
inlineprivatevirtual |
second derivative of the nuclear correlation factor
Implements madness::NuclearCorrelationFactor.
References eprec, rcut, smoothed_potential(), smoothing_parameter(), and Z.
|
inlineprivatevirtual |
first derivative of the NCF with respect to the relative distance rho
where the distance of the electron to the nucleus A is given by
Implements madness::NuclearCorrelationFactor.
|
inlineprivatevirtual |
second derivative of the NCF with respect to the relative distance rho
where the distance of the electron to the nucleus A is given by
Implements madness::NuclearCorrelationFactor.
|
inlineprivatevirtual |
third derivative of the NCF with respect to the relative distance rho
where the distance of the electron to the nucleus A is given by
Implements madness::NuclearCorrelationFactor.
|
inlinevirtual |
Implements madness::NuclearCorrelationFactor.
|
inlinevirtual |
return the U2 term of the correlation function
overloading to avoid inconsistent state of U2, which needs the nuclear potential
Reimplemented from madness::NuclearCorrelationFactor.
References MADNESS_ASSERT.
|
inlineprivatevirtual |
derivative of the U2 potential wrt nuclear coordinate X (spherical part)
need to reimplement this for all derived classes due to the range for r -> 0, where the singular terms cancel. With
returns the term in the parenthesis without the the derivative of rho
Reimplemented from madness::NuclearCorrelationFactor.
References dsmoothed_potential(), rcut, and Z.
|
private |
|
private |
the factor of the correlation factor: R=fac;
|
private |
underlying potential (=molecule)