|
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 () | |
Public Member Functions inherited from MD_base | |
| 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 | |
Public Attributes inherited from MD_base | |
| 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 | |
Protected Member Functions inherited from MD_base | |
| 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 | |
Protected Attributes inherited from MD_base | |
| 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