ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
ORB_read.h
Go to the documentation of this file.
1#ifndef LCAO_ORBITALS_H
2#define LCAO_ORBITALS_H
3
4#include "ORB_atomic.h"
5#include "ORB_atomic_lm.h"
6#include "ORB_nonlocal.h"
7
17
19{
20 public:
21
24
25 void init(
26 std::ofstream& ofs_in,
27 const int& ntype,
28 const std::string& orbital_dir,
29 const std::string* orbital_file,
30 const std::string& descriptor_file,
31 const int& lmax,
32 const double& lcao_ecut_in,
33 const double& lcao_dk_in,
34 const double& lcao_dr_in,
35 const double& lcao_rmax_in,
36 const bool& deepks_setorb,
37 const int& out_mat_r,
38 const bool& force_flag,
39 const int& my_rank
40 );
41
42 void Read_Orbitals(
43 std::ofstream &ofs_in, // mohan add 2021-05-07
44 const int &ntype_in,
45 const int &lmax_in,
46 const bool &deepks_setorb, // mohan add 2021-04-25
47 const int &out_mat_r, // mohan add 2021-04-26
48 const bool &force_flag, // mohan add 2021-05-07
49 const int &my_rank); // mohan add 2021-04-26
50
52 std::ofstream &ofs_in,
53 const int& it,
54 const bool &force_flag, // mohan add 2021-05-07
55 const int& my_rank); // mohan add 2021-04-26
56
57
58
60 std::ofstream &ofs_in,
61 const bool &force_flag, // mohan add 2021-05-07
62 const int &my_rank); //caoyu add 2020-3-16
63
64#ifdef __MPI
65 void bcast_files(const int &ntype_in, const int &my_rank);
66#endif
67
68 const double& get_ecutwfc() const {return ecutwfc;}
69 const int& get_kmesh() const{return kmesh;}
70 const double& get_dk() const {return dk;}
71 const double& get_dR() const {return dR;}
72 const double& get_Rmax() const {return Rmax;}
73 const int& get_lmax() const {return lmax;}
74 const int& get_lmax_d() const { return lmax_d; }
75 const int& get_nchimax() const {return nchimax;}
76 const int& get_nchimax_d() const { return nchimax_d; }
77 const int& get_ntype() const {return ntype;}
78 const double& get_dr_uniform() const { return dr_uniform; }
79
80 //caoyu add 2021-05-24
81 const double& get_rcutmax_Phi() const { return rcutmax_Phi; }
82
83 std::vector<double> cutoffs() const;
84
87
88
89 //caoyu add 2021-3-10
92
93 // initialized in input.cpp
94 double ecutwfc;
95 double dk;
96 double dR;
97 double Rmax;
98
99 double dr_uniform;
100
101 // initalized in UnitCell
102 // assume ntype < 20.
104 std::vector<std::string> orbital_file;
105 std::vector<std::string> nonlocal_file;
106 std::string descriptor_file; //caoyu add 2020-3-16
107
108private:
109
110 int ntype; // number of elements
111 int kmesh; // number of points on kmesh
112
113 int lmax;
115
116 int lmax_d; //max l of descriptor orbitals
117 int nchimax_d; //max number of descriptor orbitals per l
118
119 double rcutmax_Phi; //caoyu add 2021-05-24
120
122 std::ofstream &ofs_in,
123 std::ifstream &ifs,
124 const int &it,
125 int &lmax,
126 int &nchimax,
128 const bool &force_flag, // mohan add 2021-05-07
129 const int &my_rank); //caoyu add 2021-04-26
130
131 friend class TwoCenterBundle; // for the sake of TwoCenterBundle::to_LCAO_Orbitals
132};
133
134#endif
Definition ORB_read.h:19
double rcutmax_Phi
Definition ORB_read.h:119
void Read_PAO(std::ofstream &ofs_in, const int &it, const bool &force_flag, const int &my_rank)
const double & get_dk() const
Definition ORB_read.h:70
std::vector< std::string > orbital_file
Definition ORB_read.h:104
int nchimax_d
Definition ORB_read.h:117
LCAO_Orbitals()
PLEASE avoid using 'ORB' as global variable.
Definition ORB_read.cpp:19
const int & get_ntype() const
Definition ORB_read.h:77
double Rmax
Definition ORB_read.h:97
void Read_Orbitals(std::ofstream &ofs_in, const int &ntype_in, const int &lmax_in, const bool &deepks_setorb, const int &out_mat_r, const bool &force_flag, const int &my_rank)
Definition ORB_read.cpp:154
const double & get_ecutwfc() const
Definition ORB_read.h:68
int ntype
Definition ORB_read.h:110
int lmax_d
Definition ORB_read.h:116
void init(std::ofstream &ofs_in, const int &ntype, const std::string &orbital_dir, const std::string *orbital_file, const std::string &descriptor_file, const int &lmax, const double &lcao_ecut_in, const double &lcao_dk_in, const double &lcao_dr_in, const double &lcao_rmax_in, const bool &deepks_setorb, const int &out_mat_r, const bool &force_flag, const int &my_rank)
Definition ORB_read.cpp:48
bool read_in_flag
Definition ORB_read.h:103
int lmax
Definition ORB_read.h:113
const int & get_nchimax_d() const
nchimax of descriptor basis
Definition ORB_read.h:76
Numerical_Orbital * Alpha
descriptor bases, saved as one-type atom orbital
Definition ORB_read.h:91
int kmesh
Definition ORB_read.h:111
void read_orb_file(std::ofstream &ofs_in, std::ifstream &ifs, const int &it, int &lmax, int &nchimax, Numerical_Orbital *ao, const bool &force_flag, const int &my_rank)
int nchimax
Definition ORB_read.h:114
double ecutwfc
Definition ORB_read.h:94
std::vector< std::string > nonlocal_file
Definition ORB_read.h:105
double dR
Definition ORB_read.h:96
const double & get_dr_uniform() const
Definition ORB_read.h:78
std::string descriptor_file
Definition ORB_read.h:106
void Read_Descriptor(std::ofstream &ofs_in, const bool &force_flag, const int &my_rank)
double dr_uniform
Definition ORB_read.h:99
const int & get_nchimax() const
Definition ORB_read.h:75
const int & get_lmax() const
Definition ORB_read.h:73
const double & get_dR() const
Definition ORB_read.h:71
std::vector< double > cutoffs() const
Definition ORB_read.cpp:40
Numerical_Orbital * Phi
numerical atomic orbitals
Definition ORB_read.h:86
void bcast_files(const int &ntype_in, const int &my_rank)
Definition ORB_read.cpp:96
const int & get_kmesh() const
Definition ORB_read.h:69
const int & get_lmax_d() const
lmax of descriptor basis
Definition ORB_read.h:74
~LCAO_Orbitals()
Definition ORB_read.cpp:34
const double & get_Rmax() const
Definition ORB_read.h:72
double dk
Definition ORB_read.h:95
const double & get_rcutmax_Phi() const
Definition ORB_read.h:81
Definition ORB_atomic.h:52
Definition two_center_bundle.h:11