ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
conv_coulomb_pot_k.h
Go to the documentation of this file.
1#ifndef CONV_COULOMB_POT_K_H
2#define CONV_COULOMB_POT_K_H
3
4#include <vector>
5#include <map>
6#include <string>
7
8namespace Conv_Coulomb_Pot_K
9{
10 enum class Coulomb_Type{Fock, Erfc};
11 enum class Ccp_Type{ // parameter:
12 Ccp, //
13 Hf, // "hf_Rcut"
14 Erfc, // "hse_omega"
15 Erf}; // "hse_omega", "hf_Rcut"
16 enum class Coulomb_Method{Center2, Ewald}; // Different methods for constructing the Coulomb matrix.
17
18 template<typename T> extern T cal_orbs_ccp(
19 const T &orbs,
20 const std::map<Conv_Coulomb_Pot_K::Coulomb_Type, std::vector<std::map<std::string,std::string>>> &coulomb_param,
21 const double rmesh_times);
22
23 template<typename T> extern T cal_orbs_ccp_spencer(
24 const T &orbs,
25 const std::map<Conv_Coulomb_Pot_K::Coulomb_Type, std::vector<std::map<std::string,std::string>>> &coulomb_param,
26 const double rmesh_times);
27
28 //private:
29 template< typename T > extern double get_rmesh_proportion(
30 const T &orbs,
31 const double psi_threshold);
32
33 //private:
34 extern std::vector<double> cal_psi_fock_limits(
35 const std::vector<double> & psif);
36 extern std::vector<double> cal_psi_fock_spencer(
37 const std::vector<double> &psif,
38 const std::vector<double> &k_radial,
39 const double rcut);
40 extern std::vector<double> cal_psi_erfc_limits(
41 const std::vector<double> & psif,
42 const std::vector<double> & k_radial,
43 const double erfc_omega);
44 extern std::vector<double> cal_psi_erfc_spencer(
45 const std::vector<double> & psif,
46 const std::vector<double> & k_radial,
47 const double erfc_omega,
48 const double rcut);
49}
50
52
53#endif
#define T
Definition exp.cpp:237
Definition conv_coulomb_pot_k.cpp:7
std::vector< double > cal_psi_erfc_spencer(const std::vector< double > &psif, const std::vector< double > &k_radial, const double erfc_omega, const double rcut)
Definition conv_coulomb_pot_k.cpp:42
std::vector< double > cal_psi_erfc_limits(const std::vector< double > &psif, const std::vector< double > &k_radial, const double erfc_omega)
Definition conv_coulomb_pot_k.cpp:31
Coulomb_Type
Definition conv_coulomb_pot_k.h:10
double get_rmesh_proportion(const Numerical_Orbital_Lm &orbs, const double psi_threshold)
Definition conv_coulomb_pot_k.cpp:254
Ccp_Type
Definition conv_coulomb_pot_k.h:11
Coulomb_Method
Definition conv_coulomb_pot_k.h:16
T cal_orbs_ccp_spencer(const T &orbs, const std::map< Conv_Coulomb_Pot_K::Coulomb_Type, std::vector< std::map< std::string, std::string > > > &coulomb_param, const double rmesh_times)
T cal_orbs_ccp(const T &orbs, const std::map< Conv_Coulomb_Pot_K::Coulomb_Type, std::vector< std::map< std::string, std::string > > > &coulomb_param, const double rmesh_times)
std::vector< double > cal_psi_fock_limits(const std::vector< double > &psif)
Definition conv_coulomb_pot_k.cpp:8
std::vector< double > cal_psi_fock_spencer(const std::vector< double > &psif, const std::vector< double > &k_radial, const double rcut)
Definition conv_coulomb_pot_k.cpp:19