|
MADNESS 0.10.1
|
A nuclear correlation factor class. More...
#include <correlationfactor.h>


Public Member Functions | |
| Polynomial (World &world, const Molecule &mol, const double a) | |
| 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_3d > | U1vec () 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 | 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) | |
Static Private Member Functions | |
| static double | b_param (const double &a) |
| the cutoff | |
Private Attributes | |
| double | a_ |
| length scale parameter a, default chosen that linear terms in U2 vanish | |
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 | |
A nuclear correlation factor class.
should reduce to quartic for N=4
| N | the exponent of the polynomial |
|
inline |
ctor
| [in] | world | the world |
| [in] | mol | molecule with the sites of the nuclei |
length scale parameter a, default chosen that linear terms in U2 vanish
References a, madness::Molecule::get_eprec(), N, madness::print(), madness::World::rank(), and madness::NuclearCorrelationFactor::world.
|
inlineprivate |
|
inlinestaticprivate |
|
inlineprivatevirtual |
the nuclear correlation factor
Implements madness::NuclearCorrelationFactor.
References a, madness::Polynomial< N >::a_param(), madness::arg(), b, madness::Polynomial< N >::b_param(), and Z.
|
inlineprivatevirtual |
radial part first derivative of the nuclear correlation factor
Implements madness::NuclearCorrelationFactor.
References a, madness::Polynomial< N >::a_param(), b, madness::Polynomial< N >::b_param(), madness::Vector< T, N >::normf(), madness::NuclearCorrelationFactor::smoothed_unitvec(), and Z.
|
inlineprivatevirtual |
second derivative of the nuclear correlation factor
-1/2 S"/S - Z/r
Implements madness::NuclearCorrelationFactor.
References a, madness::Polynomial< N >::a_param(), b, madness::Polynomial< N >::b_param(), N, madness::power< 2 >(), and Z.
|
inlineprivatevirtual |
first derivative of the NCF with respect to the relative distance rho
![\[
\frac{\partial S(\rho)}{\partial \rho} \frac{1}{S(\rho)}
\]](form_271.png)
where the distance of the electron to the nucleus A is given by
![\[
\rho = |\vec r - \vec R_A |
\]](form_272.png)
Implements madness::NuclearCorrelationFactor.
References a, madness::Polynomial< N >::a_param(), b, madness::Polynomial< N >::b_param(), N, and Z.
|
inlineprivatevirtual |
second derivative of the NCF with respect to the relative distance rho
![\[
\frac{\partial^2 S(\rho)}{\partial \rho^2} \frac{1}{S(\rho)}
\]](form_273.png)
where the distance of the electron to the nucleus A is given by
![\[
\rho = |\vec r - \vec R_A |
\]](form_272.png)
Implements madness::NuclearCorrelationFactor.
References a, madness::Polynomial< N >::a_param(), b, madness::Polynomial< N >::b_param(), N, madness::power< 2 >(), and Z.
|
inlineprivatevirtual |
third derivative of the NCF with respect to the relative distance rho
![\[
\frac{\partial^3 S(\rho)}{\partial \rho^3} \frac{1}{S(\rho)}
\]](form_274.png)
where the distance of the electron to the nucleus A is given by
![\[
\rho = |\vec r - \vec R_A |
\]](form_272.png)
Implements madness::NuclearCorrelationFactor.
References a, madness::Polynomial< N >::a_param(), b, madness::Polynomial< N >::b_param(), N, madness::power< 2 >(), madness::power< 3 >(), and Z.
|
inlinevirtual |
Implements madness::NuclearCorrelationFactor.
References madness::NuclearCorrelationFactor::Polynomial.
|
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
![\[
\rho = \left| \vec r- \vec R_A \right|
\]](form_275.png)
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)
\]](form_276.png)
Reimplemented from madness::NuclearCorrelationFactor.
References a, MADNESS_EXCEPTION, N, madness::power< 2 >(), madness::power< 3 >(), madness::power< 4 >(), madness::power< 5 >(), madness::r2(), madness::NuclearCorrelationFactor::Sr_div_S(), madness::NuclearCorrelationFactor::Srr_div_S(), madness::NuclearCorrelationFactor::Srrr_div_S(), and Z.
|
private |
length scale parameter a, default chosen that linear terms in U2 vanish