ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
vdw::Vdwd3Parameters Class Reference

#include <vdwd3_parameters.h>

Inheritance diagram for vdw::Vdwd3Parameters:
Collaboration diagram for vdw::Vdwd3Parameters:

Public Member Functions

 Vdwd3Parameters ()
 
 ~Vdwd3Parameters ()=default
 
void initial_parameters (const std::string &xc, const Input_para &input, std::ofstream *plog=nullptr)
 initialize the parameter by either input (from user setting) or autoset by dft XC
 
const std::string & version () const
 
bool abc () const
 
double rthr2 () const
 
double cn_thr2 () const
 
double s6 () const
 
double rs6 () const
 
double s18 () const
 
double rs18 () const
 
const std::vector< int > & mxc () const
 
const std::vector< std::vector< std::vector< std::vector< std::vector< double > > > > > & c6ab () const
 
const std::vector< double > & r2r4 () const
 
const std::vector< double > & rcov ()
 
const std::vector< std::vector< double > > & r0ab ()
 
double k1 () const
 
double k2 () const
 
double k3 () const
 
double alp6 () const
 
double alp8 () const
 
double alp10 () const
 
- Public Member Functions inherited from vdw::VdwParameters
 VdwParameters ()=default
 
virtual ~VdwParameters ()=default
 
const std::string & model () const
 
const ModuleBase::Vector3< int > & period () const
 

Private Member Functions

void init_C6 ()
 
void init_r2r4 ()
 
void init_rcov ()
 
void init_r0ab ()
 
int limit (int &i)
 

Static Private Member Functions

static void _vdwd3_autoset_xcparam (const std::string &xc_in, const std::string &d3method, const std::string &s6_in, const std::string &s8_in, const std::string &a1_in, const std::string &a2_in, double &s6, double &s8, double &a1, double &a2, std::ofstream *plog=nullptr)
 Get DFT-D3 parameters. If if there are parameters defined, then it will overwrite the search result. If all parameters are defined already by user, then search will not performed.
 
static std::string _vdwd3_xcname (const std::string &xcpattern)
 

Private Attributes

std::string version_
 
bool abc_ =false
 
double rthr2_ =0.0
 
double cn_thr2_ =0.0
 
double s6_ =0.0
 
double rs6_ =0.0
 
double s18_ =0.0
 
double rs18_ =0.0
 
std::vector< int > mxc_
 
std::vector< std::vector< std::vector< std::vector< std::vector< double > > > > > c6ab_
 
std::vector< double > r2r4_
 
std::vector< double > rcov_
 
std::vector< std::vector< double > > r0ab_
 

Static Private Attributes

static constexpr size_t max_elem_ = 94
 
static constexpr double k1_ = 16.0
 
static constexpr double k2_ = 4.0 / 3.0
 
static constexpr double k3_ = -4.0
 
static constexpr double alp6_ = 14.0
 
static constexpr double alp8_ = alp6_ + 2
 
static constexpr double alp10_ = alp8_ + 2
 

Additional Inherited Members

- Protected Attributes inherited from vdw::VdwParameters
std::string model_
 
ModuleBase::Vector3< int > period_
 

Constructor & Destructor Documentation

◆ Vdwd3Parameters()

vdw::Vdwd3Parameters::Vdwd3Parameters ( )
inline

◆ ~Vdwd3Parameters()

vdw::Vdwd3Parameters::~Vdwd3Parameters ( )
default

Member Function Documentation

◆ _vdwd3_autoset_xcparam()

void vdw::Vdwd3Parameters::_vdwd3_autoset_xcparam ( const std::string &  xc_in,
const std::string &  d3method,
const std::string &  s6_in,
const std::string &  s8_in,
const std::string &  a1_in,
const std::string &  a2_in,
double &  s6,
double &  s8,
double &  a1,
double &  a2,
std::ofstream *  plog = nullptr 
)
staticprivate

Get DFT-D3 parameters. If if there are parameters defined, then it will overwrite the search result. If all parameters are defined already by user, then search will not performed.

Parameters
xcXC functional name
d3methodcan be "d3_0" or "d3_bj"
s6_inuser defined s6, default is "default"
s8_inuser defined s8, default is "default"
a1_inuser defined a1, default is "default"
a2_inuser defined a2, default is "default"
s6[out] s6 parameter
s8[out] s8 parameter
a1[out] a1 parameter
a2[out] a2 parameter
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _vdwd3_xcname()

std::string vdw::Vdwd3Parameters::_vdwd3_xcname ( const std::string &  xcpattern)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ abc()

bool vdw::Vdwd3Parameters::abc ( ) const
inline
Here is the caller graph for this function:

◆ alp10()

double vdw::Vdwd3Parameters::alp10 ( ) const
inline

◆ alp6()

double vdw::Vdwd3Parameters::alp6 ( ) const
inline
Here is the caller graph for this function:

◆ alp8()

double vdw::Vdwd3Parameters::alp8 ( ) const
inline
Here is the caller graph for this function:

◆ c6ab()

const std::vector< std::vector< std::vector< std::vector< std::vector< double > > > > > & vdw::Vdwd3Parameters::c6ab ( ) const
inline
Here is the caller graph for this function:

◆ cn_thr2()

double vdw::Vdwd3Parameters::cn_thr2 ( ) const
inline
Here is the caller graph for this function:

◆ init_C6()

void vdw::Vdwd3Parameters::init_C6 ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_r0ab()

void vdw::Vdwd3Parameters::init_r0ab ( )
private
Here is the caller graph for this function:

◆ init_r2r4()

void vdw::Vdwd3Parameters::init_r2r4 ( )
private
Here is the caller graph for this function:

◆ init_rcov()

void vdw::Vdwd3Parameters::init_rcov ( )
private
Here is the caller graph for this function:

◆ initial_parameters()

void vdw::Vdwd3Parameters::initial_parameters ( const std::string &  xc,
const Input_para input,
std::ofstream *  plog = nullptr 
)

initialize the parameter by either input (from user setting) or autoset by dft XC

Parameters
inputParameter instance
plogoptional, for logging the parameter setting process
Here is the call graph for this function:
Here is the caller graph for this function:

◆ k1()

double vdw::Vdwd3Parameters::k1 ( ) const
inline
Here is the caller graph for this function:

◆ k2()

double vdw::Vdwd3Parameters::k2 ( ) const
inline

◆ k3()

double vdw::Vdwd3Parameters::k3 ( ) const
inline
Here is the caller graph for this function:

◆ limit()

int vdw::Vdwd3Parameters::limit ( int &  i)
private
Here is the caller graph for this function:

◆ mxc()

const std::vector< int > & vdw::Vdwd3Parameters::mxc ( ) const
inline
Here is the caller graph for this function:

◆ r0ab()

const std::vector< std::vector< double > > & vdw::Vdwd3Parameters::r0ab ( )
inline
Here is the caller graph for this function:

◆ r2r4()

const std::vector< double > & vdw::Vdwd3Parameters::r2r4 ( ) const
inline
Here is the caller graph for this function:

◆ rcov()

const std::vector< double > & vdw::Vdwd3Parameters::rcov ( )
inline
Here is the caller graph for this function:

◆ rs18()

double vdw::Vdwd3Parameters::rs18 ( ) const
inline
Here is the caller graph for this function:

◆ rs6()

double vdw::Vdwd3Parameters::rs6 ( ) const
inline
Here is the caller graph for this function:

◆ rthr2()

double vdw::Vdwd3Parameters::rthr2 ( ) const
inline
Here is the caller graph for this function:

◆ s18()

double vdw::Vdwd3Parameters::s18 ( ) const
inline
Here is the caller graph for this function:

◆ s6()

double vdw::Vdwd3Parameters::s6 ( ) const
inline
Here is the caller graph for this function:

◆ version()

const std::string & vdw::Vdwd3Parameters::version ( ) const
inline
Here is the caller graph for this function:

Member Data Documentation

◆ abc_

bool vdw::Vdwd3Parameters::abc_ =false
private

◆ alp10_

constexpr double vdw::Vdwd3Parameters::alp10_ = alp8_ + 2
staticprivate

◆ alp6_

constexpr double vdw::Vdwd3Parameters::alp6_ = 14.0
staticconstexprprivate

◆ alp8_

constexpr double vdw::Vdwd3Parameters::alp8_ = alp6_ + 2
staticprivate

◆ c6ab_

std::vector<std::vector<std::vector<std::vector<std::vector<double> > > > > vdw::Vdwd3Parameters::c6ab_
private

◆ cn_thr2_

double vdw::Vdwd3Parameters::cn_thr2_ =0.0
private

◆ k1_

constexpr double vdw::Vdwd3Parameters::k1_ = 16.0
staticconstexprprivate

◆ k2_

constexpr double vdw::Vdwd3Parameters::k2_ = 4.0 / 3.0
staticprivate

◆ k3_

constexpr double vdw::Vdwd3Parameters::k3_ = -4.0
staticprivate

◆ max_elem_

constexpr size_t vdw::Vdwd3Parameters::max_elem_ = 94
staticconstexprprivate

◆ mxc_

std::vector<int> vdw::Vdwd3Parameters::mxc_
private

◆ r0ab_

std::vector<std::vector<double> > vdw::Vdwd3Parameters::r0ab_
private

◆ r2r4_

std::vector<double> vdw::Vdwd3Parameters::r2r4_
private

◆ rcov_

std::vector<double> vdw::Vdwd3Parameters::rcov_
private

◆ rs18_

double vdw::Vdwd3Parameters::rs18_ =0.0
private

◆ rs6_

double vdw::Vdwd3Parameters::rs6_ =0.0
private

◆ rthr2_

double vdw::Vdwd3Parameters::rthr2_ =0.0
private

◆ s18_

double vdw::Vdwd3Parameters::s18_ =0.0
private

◆ s6_

double vdw::Vdwd3Parameters::s6_ =0.0
private

◆ version_

std::string vdw::Vdwd3Parameters::version_
private

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