ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
msst.h
Go to the documentation of this file.
1#ifndef MSST_H
2#define MSST_H
3
4#include "md_base.h"
5
14class MSST : public MD_base
15{
16 public:
17 MSST(const Parameter& param_in, UnitCell& unit_in);
18 ~MSST();
19
20 private:
21 void setup(ModuleESolver::ESolver* p_esolver, const std::string& global_readin_dir);
22 void first_half(std::ofstream& ofs);
23 void second_half();
24 void print_md(std::ofstream& ofs, const bool& cal_stress);
25 void write_restart(const std::string& global_out_dir);
26 void restart(const std::string& global_readin_dir);
27
33 double vel_sum();
34
41 void rescale(std::ofstream& ofs, const double& volume);
42
47 void propagate_vel(void);
48
53 void propagate_voldot(void);
54
58 double p0;
59 double v0;
60 double e0;
61 double totmass;
62 double lag_pos;
63 double vsum;
64 double msst_vel;
65 double msst_qmass;
66 double msst_vis;
67};
68
69#endif
base class of md
Definition md_base.h:16
bool cal_stress
whether calculate stress
Definition md_base.h:93
MSST method.
Definition msst.h:15
double msst_vis
artificial msst_vis (mass/length/time)
Definition msst.h:66
double vsum
sum over v^2
Definition msst.h:63
void rescale(std::ofstream &ofs, const double &volume)
rescale the lattice and velocities
Definition msst.cpp:251
double v0
initial volume
Definition msst.h:59
void restart(const std::string &global_readin_dir)
restart MD when md_restart is true
Definition msst.cpp:195
ModuleBase::Vector3< double > omega
time derivative of volume
Definition msst.h:57
double lag_pos
Lagrangian location of cell.
Definition msst.h:62
double msst_vel
shock msst_vel (\AA/fs)
Definition msst.h:64
double p0
initial pressure
Definition msst.h:58
ModuleBase::Vector3< double > * old_v
old atomic velocities
Definition msst.h:55
void propagate_vel(void)
propagate atomic velocities
Definition msst.cpp:272
double msst_qmass
cell mass-like parameter (mass^2/length^4)
Definition msst.h:65
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.
Definition msst.cpp:39
void print_md(std::ofstream &ofs, const bool &cal_stress)
output MD information such as energy, temperature, and pressure
Definition msst.cpp:162
void first_half(std::ofstream &ofs)
the first half of equation of motion, update velocities and positions
Definition msst.cpp:79
void write_restart(const std::string &global_out_dir)
write the information into files used for MD restarting
Definition msst.cpp:169
void second_half()
the second half of equation of motion, update velocities
Definition msst.cpp:134
~MSST()
Definition msst.cpp:34
double totmass
total mass of the cell
Definition msst.h:61
ModuleBase::Vector3< double > dilation
dilation scale
Definition msst.h:56
double e0
initial energy
Definition msst.h:60
void propagate_voldot(void)
propagate the volume change rate
Definition msst.cpp:312
double vel_sum()
get the sum of square of velocities
Definition msst.cpp:239
3 elements vector
Definition vector3.h:22
Definition esolver.h:11
Definition parameter.h:13
Definition unitcell.h:16