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

#include <ions_move_cg.h>

Collaboration diagram for Ions_Move_CG:

Public Member Functions

 Ions_Move_CG ()
 
 ~Ions_Move_CG ()
 
void allocate (void)
 
void start (UnitCell &ucell, const ModuleBase::matrix &force, const double &etot)
 

Public Attributes

int sd_step =0
 
int cg_step =0
 

Static Public Attributes

static double RELAX_CG_THR = -1.0
 

Private Member Functions

void setup_cg_grad (double *grad, const double *grad0, double *cg_grad, const double *cg_grad0, const int &ncggrad, int &flag)
 
void setup_move (double *move, double *cg_gradn, const double &trust_radius)
 
void Brent (double &fa, double &fb, double &fc, double &xa, double &xb, double &xc, double &best_x, double &xpt)
 
void f_cal (const double *g0, const double *g1, const int &dim, double &f_value)
 
void third_order (const double &e0, const double &e1, const double &fa, const double &fb, const double x, double &best_x)
 

Private Attributes

double * pos0
 
double * grad0
 
double * cg_grad0
 
double * move0
 
double e0 =0.0
 

Constructor & Destructor Documentation

◆ Ions_Move_CG()

Ions_Move_CG::Ions_Move_CG ( )

◆ ~Ions_Move_CG()

Ions_Move_CG::~Ions_Move_CG ( )

Member Function Documentation

◆ allocate()

void Ions_Move_CG::allocate ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Brent()

void Ions_Move_CG::Brent ( double &  fa,
double &  fb,
double &  fc,
double &  xa,
double &  xb,
double &  xc,
double &  best_x,
double &  xpt 
)
private
Here is the caller graph for this function:

◆ f_cal()

void Ions_Move_CG::f_cal ( const double *  g0,
const double *  g1,
const int &  dim,
double &  f_value 
)
private
Here is the caller graph for this function:

◆ setup_cg_grad()

void Ions_Move_CG::setup_cg_grad ( double *  grad,
const double *  grad0,
double *  cg_grad,
const double *  cg_grad0,
const int &  ncggrad,
int &  flag 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_move()

void Ions_Move_CG::setup_move ( double *  move,
double *  cg_gradn,
const double &  trust_radius 
)
private
Here is the caller graph for this function:

◆ start()

void Ions_Move_CG::start ( UnitCell ucell,
const ModuleBase::matrix force,
const double &  etot 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ third_order()

void Ions_Move_CG::third_order ( const double &  e0,
const double &  e1,
const double &  fa,
const double &  fb,
const double  x,
double &  best_x 
)
private

Member Data Documentation

◆ cg_grad0

double* Ions_Move_CG::cg_grad0
private

◆ cg_step

int Ions_Move_CG::cg_step =0

◆ e0

double Ions_Move_CG::e0 =0.0
private

◆ grad0

double* Ions_Move_CG::grad0
private

◆ move0

double* Ions_Move_CG::move0
private

◆ pos0

double* Ions_Move_CG::pos0
private

◆ RELAX_CG_THR

double Ions_Move_CG::RELAX_CG_THR = -1.0
static

◆ sd_step

int Ions_Move_CG::sd_step =0

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