ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <langevin.h>
Public Member Functions | |
Langevin (const Parameter ¶m_in, UnitCell &unit_in) | |
~Langevin () | |
![]() | |
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 | write_restart (const std::string &global_out_dir) |
write the information into files used for MD restarting | |
void | restart (const std::string &global_readin_dir) |
restart MD when md_restart is true | |
void | post_force () |
calculate fictitious forces | |
Private Attributes | |
ModuleBase::Vector3< double > * | total_force |
total force = true force + Langevin fictitious_force | |
double | md_damp |
damping factor | |
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. | |
Langevin method.
Assume the atoms are embedded in a sea of much smaller fictional particles. The solvent influences the dynamics of the solute(typically nanoparticles) via random collisions, and by imposing a frictional drag force on the motion of the nanoparticle in the solvent. The damping factor and the random force combine to give the correct NVT ensemble.
Langevin::~Langevin | ( | ) |
|
privatevirtual |
the first half of equation of motion, update velocities and positions
ofs | determine the output files |
Reimplemented from MD_base.
|
private |
calculate fictitious forces
|
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 |
damping factor
|
private |
total force = true force + Langevin fictitious_force