17 std::vector<std::vector<double>>
H;
19 std::vector<std::vector<double>>
force;
21 std::vector<std::vector<double>>
pos;
24 std::vector<std::vector<double>>
dpos;
28 void PrepareStep(std::vector<std::vector<double>>&
force,std::vector<std::vector<double>>&
pos,std::vector<std::vector<double>>&
H,std::vector<double>&
pos0,std::vector<double>&
force0,std::vector<double>&
steplength,std::vector<std::vector<double>>&
dpos,
UnitCell& ucell);
40 void Update(std::vector<double>&
pos, std::vector<double>&
force,std::vector<std::vector<double>>&
H,
UnitCell& ucell);
void GetPos(UnitCell &ucell, std::vector< std::vector< double > > &pos)
Definition bfgs.cpp:77
std::vector< std::vector< double > > dpos
Definition bfgs.h:24
void GetPostaud(UnitCell &ucell, std::vector< std::vector< double > > &pos_taud)
Definition bfgs.cpp:92
double maxstep
Definition bfgs.h:33
void PrepareStep(std::vector< std::vector< double > > &force, std::vector< std::vector< double > > &pos, std::vector< std::vector< double > > &H, std::vector< double > &pos0, std::vector< double > &force0, std::vector< double > &steplength, std::vector< std::vector< double > > &dpos, UnitCell &ucell)
Definition bfgs.cpp:108
double alpha
Definition bfgs.h:32
std::vector< double > pos_taud0
Definition bfgs.h:22
void allocate(const int _size)
initialize H0、H、pos0、force0、force
Definition bfgs.cpp:11
void CalculateLargestGrad(const ModuleBase::matrix &_force, UnitCell &ucell)
Definition bfgs.cpp:318
bool sign
Definition bfgs.h:31
std::vector< std::vector< double > > H
Definition bfgs.h:17
void relax_step(const ModuleBase::matrix &_force, UnitCell &ucell)
Definition bfgs.cpp:35
std::vector< double > steplength
Definition bfgs.h:16
std::vector< std::vector< double > > pos_taud
Definition bfgs.h:23
std::vector< double > pos0
Definition bfgs.h:20
void UpdatePos(UnitCell &ucell)
Definition bfgs.cpp:259
int size
Definition bfgs.h:34
void IsRestrain(std::vector< std::vector< double > > &dpos)
Definition bfgs.cpp:312
void DetermineStep(std::vector< double > &steplength, std::vector< std::vector< double > > &dpos, double &maxstep)
Definition bfgs.cpp:240
void Update(std::vector< double > &pos, std::vector< double > &force, std::vector< std::vector< double > > &H, UnitCell &ucell)
Definition bfgs.cpp:165
std::vector< std::vector< double > > force
Definition bfgs.h:19
std::vector< std::vector< double > > pos
Definition bfgs.h:21
std::vector< double > force0
Definition bfgs.h:18