MADNESS 0.10.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
madness::poly4erfc Class Reference

#include <correlationfactor.h>

Inheritance diagram for madness::poly4erfc:
Inheritance graph
[legend]
Collaboration diagram for madness::poly4erfc:
Collaboration graph
[legend]

Public Member Functions

 poly4erfc (World &world, const Molecule &mol, const double aa)
 ctor
 
corrfactype type () const
 
- Public Member Functions inherited from madness::NuclearCorrelationFactor
 NuclearCorrelationFactor (World &world, const Molecule &mol)
 ctor
 
virtual ~NuclearCorrelationFactor ()
 virtual destructor
 
virtual real_function_3d apply_U (const real_function_3d &rhs) const
 apply the regularized potential U_nuc on a given function rhs
 
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_3dU1vec () const
 return the U1 functions in a vector
 
virtual const real_function_3d U2 () const
 return the U2 term of the correlation function
 

Private Member Functions

double a_param () const
 
double eprec_param () const
 
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
 first derivative of the correlation factor wrt (r-R_A)
 
double Srr_div_S (const double &r, const double &Z) const
 second derivative of the correlation factor wrt (r-R_A)
 
double Srrr_div_S (const double &r, const double &Z) const
 third derivative of the correlation factor wrt (r-R_A)
 
double U2X_spherical (const double &r, const double &Z, const double &rcut) const
 derivative of the U2 potential wrt X (scalar part)
 

Private Attributes

double a
 the length scale parameter
 
double a0
 
double a1
 
double a2
 
double a3
 
double a4
 
double eprec_
 

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_3dU1_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
 

Constructor & Destructor Documentation

◆ poly4erfc()

madness::poly4erfc::poly4erfc ( World world,
const Molecule mol,
const double  aa 
)
inline

ctor

Parameters
[in]worldthe world
[in]molmolecule with the sites of the nuclei

References a, a1, a2, aa, madness::Molecule::get_eprec(), MADNESS_EXCEPTION, madness::print(), madness::World::rank(), and madness::NuclearCorrelationFactor::world.

Member Function Documentation

◆ a_param()

double madness::poly4erfc::a_param ( ) const
inlineprivate

References a.

◆ eprec_param()

double madness::poly4erfc::eprec_param ( ) const
inlineprivate

◆ S()

double madness::poly4erfc::S ( const double &  r,
const double &  Z 
) const
inlineprivatevirtual

the nuclear correlation factor

Implements madness::NuclearCorrelationFactor.

References a, a1, a2, and Z.

◆ Sp()

coord_3d madness::poly4erfc::Sp ( const coord_3d vr1A,
const double &  Z 
) const
inlineprivatevirtual

radial part first derivative of the nuclear correlation factor

Implements madness::NuclearCorrelationFactor.

References MADNESS_EXCEPTION, and madness::NuclearCorrelationFactor::smoothed_unitvec().

◆ Spp_div_S()

double madness::poly4erfc::Spp_div_S ( const double &  r,
const double &  Z 
) const
inlineprivatevirtual

second derivative of the nuclear correlation factor

Implements madness::NuclearCorrelationFactor.

References a, and Z.

◆ Sr_div_S()

double madness::poly4erfc::Sr_div_S ( const double &  r,
const double &  Z 
) const
inlineprivatevirtual

first derivative of the correlation factor wrt (r-R_A)

\[
    Sr_div_S = \frac{1}{S(r)}\frac{\partial S(r)}{\partial r}
\]

Implements madness::NuclearCorrelationFactor.

References a, and Z.

◆ Srr_div_S()

double madness::poly4erfc::Srr_div_S ( const double &  r,
const double &  Z 
) const
inlineprivatevirtual

second derivative of the correlation factor wrt (r-R_A)

\[
    result = \frac{1}{S(r)}\frac{\partial^2 S(r)}{\partial r^2}
\]

Implements madness::NuclearCorrelationFactor.

References MADNESS_EXCEPTION.

◆ Srrr_div_S()

double madness::poly4erfc::Srrr_div_S ( const double &  r,
const double &  Z 
) const
inlineprivatevirtual

third derivative of the correlation factor wrt (r-R_A)

\[
   result = \frac{1}{S(r)}\frac{\partial^3 S(r)}{\partial r^3}
\]

Implements madness::NuclearCorrelationFactor.

References MADNESS_EXCEPTION.

◆ type()

corrfactype madness::poly4erfc::type ( ) const
inlinevirtual

◆ U2X_spherical()

double madness::poly4erfc::U2X_spherical ( const double &  r,
const double &  Z,
const double &  rcut 
) const
inlineprivatevirtual

derivative of the U2 potential wrt X (scalar part)

with

\[
  \rho = \left| \vec r- \vec R_A \right|
\]

returns the term in the parenthesis without the the derivative of rho

\[
\frac{\partial U_2}{\partial X_A} = \frac{\partial \rho}{\partial X}
          \left(-\frac{1}{2}\frac{S''' S - S'' S'}{S^2} + \frac{1}{\rho^2}\frac{S'}{S}
          - \frac{1}{\rho} \frac{S''S - S'^2}{S^2} + \frac{Z_A}{\rho^2}\right)
\]

Reimplemented from madness::NuclearCorrelationFactor.

References MADNESS_EXCEPTION.

Member Data Documentation

◆ a

double madness::poly4erfc::a
private

the length scale parameter

◆ a0

double madness::poly4erfc::a0
private

◆ a1

double madness::poly4erfc::a1
private

◆ a2

double madness::poly4erfc::a2
private

◆ a3

double madness::poly4erfc::a3
private

◆ a4

double madness::poly4erfc::a4
private

◆ eprec_

double madness::poly4erfc::eprec_
private

The documentation for this class was generated from the following file: