ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <fire.h>
Public Member Functions | |
FIRE (const Parameter ¶m_in, UnitCell &unit_in) | |
~FIRE () | |
![]() | |
MD_base (const Parameter ¶m_in, UnitCell &unit_in) | |
virtual | ~MD_base () |
Private Member Functions | |
void | setup (ModuleESolver::ESolver *p_esolver, const std::string &global_readin_dir) |
init before running md, calculate energy, force, and stress of the initial configuration. | |
void | first_half (std::ofstream &ofs) |
the first half of equation of motion, update velocities and positions | |
void | second_half () |
the second half of equation of motion, update velocities | |
void | print_md (std::ofstream &ofs, const bool &cal_stress) |
output MD information such as energy, temperature, and pressure | |
void | restart (const std::string &global_readin_dir) |
restart MD when md_restart is true | |
void | write_restart (const std::string &global_out_dir) |
write the information into files used for MD restarting | |
void | check_force (void) |
check the atomic forces converged or not | |
void | check_fire (void) |
update related parameters | |
Private Attributes | |
double | max |
max force | |
double | alpha_start |
alpha_start begin | |
double | alpha |
alpha begin | |
double | finc |
finc begin | |
double | fdec |
fdec begin | |
double | f_alpha |
f_alpha | |
int | n_min |
n_min | |
double | dt_max |
dt_max | |
int | negative_count |
Negative count. | |
double | force_thr |
force convergence threshold in FIRE method | |
Additional Inherited Members | |
![]() | |
bool | stop |
MD stop or not. | |
double | t_current |
current temperature | |
int | step_ |
the MD step finished in current calculation | |
int | step_rst_ |
the MD step finished in previous calculations | |
int | frozen_freedom_ |
the fixed freedom of the system | |
double * | allmass |
atom mass | |
ModuleBase::Vector3< double > * | pos |
atom displacements liuyu modify 2023-03-22 | |
ModuleBase::Vector3< double > * | vel |
atom velocity | |
ModuleBase::Vector3< int > * | ionmbl |
atom is frozen or not | |
ModuleBase::Vector3< double > * | force |
force of each atom | |
ModuleBase::matrix | virial |
virial for this lattice | |
ModuleBase::matrix | stress |
stress for this lattice | |
double | potential =0.0 |
potential energy | |
double | kinetic |
kinetic energy | |
![]() | |
virtual void | update_pos () |
perform one step update of pos due to atomic velocity | |
virtual void | update_vel (const ModuleBase::Vector3< double > *force) |
perform half-step update of vel due to atomic force | |
![]() | |
const MD_para & | mdp |
input parameters used in md | |
UnitCell & | ucell |
unitcell information | |
double | energy_ =0.0 |
total energy of the system | |
bool | cal_stress |
whether calculate stress | |
int | my_rank |
MPI rank of the processor. | |
double | md_dt |
Time increment (hbar/E_hartree) | |
double | md_tfirst |
Temperature (in Hartree, 1 Hartree ~ 3E5 K) | |
double | md_tlast |
Target temperature. | |
FIRE method.
A MD-based relaxation algorithm, named fast inertial relaxation engine. [Phys. Rev. Lett. 97, 170201 (2006)] It is based on conventional molecular dynamics with additional velocity modifications and adaptive time steps. The MD trajectory will descend to an energy-minimum.
FIRE::~FIRE | ( | ) |
|
private |
update related parameters
initial dt_max
|
private |
check the atomic forces converged or not
|
privatevirtual |
the first half of equation of motion, update velocities and positions
ofs | determine the output files |
Reimplemented from MD_base.
|
privatevirtual |
output MD information such as energy, temperature, and pressure
ofs | determine the output files |
cal_stress | whether calculate and output stress |
Reimplemented from MD_base.
|
privatevirtual |
restart MD when md_restart is true
global_readin_dir | directory of files for reading |
Reimplemented from MD_base.
|
privatevirtual |
the second half of equation of motion, update velocities
Reimplemented from MD_base.
|
privatevirtual |
init before running md, calculate energy, force, and stress of the initial configuration.
p_esolver | the energy solver used in md |
global_readin_dir | directory of files for reading |
Reimplemented from MD_base.
|
privatevirtual |
write the information into files used for MD restarting
global_out_dir | directory of output files |
Reimplemented from MD_base.
|
private |
alpha begin
|
private |
alpha_start begin
|
private |
dt_max
|
private |
f_alpha
|
private |
fdec begin
|
private |
finc begin
|
private |
force convergence threshold in FIRE method
|
private |
max force
|
private |
n_min
|
private |
Negative count.