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

#include <bfgs.h>

Collaboration diagram for BFGS:

Public Member Functions

void allocate (const int _size)
 initialize H0、H、pos0、force0、force
 
void relax_step (const ModuleBase::matrix &_force, UnitCell &ucell)
 
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)
 

Public Attributes

std::vector< double > steplength
 
std::vector< std::vector< double > > H
 
std::vector< double > force0
 
std::vector< std::vector< double > > force
 
std::vector< double > pos0
 
std::vector< std::vector< double > > pos
 
std::vector< double > pos_taud0
 
std::vector< std::vector< double > > pos_taud
 
std::vector< std::vector< double > > dpos
 

Private Member Functions

void IsRestrain (std::vector< std::vector< double > > &dpos)
 
void CalculateLargestGrad (const ModuleBase::matrix &_force, UnitCell &ucell)
 
void GetPos (UnitCell &ucell, std::vector< std::vector< double > > &pos)
 
void GetPostaud (UnitCell &ucell, std::vector< std::vector< double > > &pos_taud)
 
void Update (std::vector< double > &pos, std::vector< double > &force, std::vector< std::vector< double > > &H, UnitCell &ucell)
 
void DetermineStep (std::vector< double > &steplength, std::vector< std::vector< double > > &dpos, double &maxstep)
 
void UpdatePos (UnitCell &ucell)
 

Private Attributes

bool sign
 
double alpha
 
double maxstep
 
int size
 

Member Function Documentation

◆ allocate()

void BFGS::allocate ( const int  _size)

initialize H0、H、pos0、force0、force

Here is the caller graph for this function:

◆ CalculateLargestGrad()

void BFGS::CalculateLargestGrad ( const ModuleBase::matrix _force,
UnitCell ucell 
)
private
Here is the caller graph for this function:

◆ DetermineStep()

void BFGS::DetermineStep ( std::vector< double > &  steplength,
std::vector< std::vector< double > > &  dpos,
double &  maxstep 
)
private
Here is the caller graph for this function:

◆ GetPos()

void BFGS::GetPos ( UnitCell ucell,
std::vector< std::vector< double > > &  pos 
)
private
Here is the caller graph for this function:

◆ GetPostaud()

void BFGS::GetPostaud ( UnitCell ucell,
std::vector< std::vector< double > > &  pos_taud 
)
private
Here is the caller graph for this function:

◆ IsRestrain()

void BFGS::IsRestrain ( std::vector< std::vector< double > > &  dpos)
private
Here is the caller graph for this function:

◆ PrepareStep()

void BFGS::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 
)

call dysev

Here is the call graph for this function:
Here is the caller graph for this function:

◆ relax_step()

void BFGS::relax_step ( const ModuleBase::matrix _force,
UnitCell ucell 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Update()

void BFGS::Update ( std::vector< double > &  pos,
std::vector< double > &  force,
std::vector< std::vector< double > > &  H,
UnitCell ucell 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdatePos()

void BFGS::UpdatePos ( UnitCell ucell)
private
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ alpha

double BFGS::alpha
private

◆ dpos

std::vector<std::vector<double> > BFGS::dpos

◆ force

std::vector<std::vector<double> > BFGS::force

◆ force0

std::vector<double> BFGS::force0

◆ H

std::vector<std::vector<double> > BFGS::H

◆ maxstep

double BFGS::maxstep
private

◆ pos

std::vector<std::vector<double> > BFGS::pos

◆ pos0

std::vector<double> BFGS::pos0

◆ pos_taud

std::vector<std::vector<double> > BFGS::pos_taud

◆ pos_taud0

std::vector<double> BFGS::pos_taud0

◆ sign

bool BFGS::sign
private

◆ size

int BFGS::size
private

◆ steplength

std::vector<double> BFGS::steplength

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