2 * mdrun.h - mdrun header file
4 * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
11 #include <sys/types.h>
17 /* main molecular dynamics api */
21 #include "list/list.h"
24 #include "potentials/harmonic_oscillator.h"
25 #include "potentials/lennard_jones.h"
26 #include "potentials/albe.h"
28 #include "potentials/tersoff_orig.h"
30 #include "potentials/tersoff.h"
34 * datatypes & definitions
37 typedef struct s_stage {
43 #define STAGE_INSERT_ATOMS 0x01
44 #define STAGE_CONTINUE 0x02
45 #define STAGE_ANNEAL 0x03
46 #define STAGE_CHAATTR 0x04
47 #define STAGE_CHSATTR 0x05
49 typedef struct s_mdrun {
50 char cfile[128]; // config file
52 u8 intalgo; // integration algorithm
53 double timestep; // timestep
55 u8 potential; // potential
57 double cutoff; // cutoff radius
58 t_3dvec dim; // simulation volume
59 u8 pbcx; // periodic boundary conditions
63 int element1; // element 1
65 int element2; // element 2
67 double lc; // lattice constant
68 int lx; // amount of lc units
71 u8 lattice; // type of lattice
73 u8 sattr; // system attributes
74 double temperature; // temperature
75 double pressure; // pressure
76 double p_tau; // pressure tau
77 double t_tau; // temperature tau
78 double dp; // delta p fpr pctrl
79 double dt; // delta t for tctrl
80 int relax_steps; // amount of relaxation steps
82 int prerun; // amount of loops in first run
91 int avgskip; // average skip
92 char sdir[128]; // save root
94 t_list *stage; // stages
95 int s_cnt; // stage counter
98 #define SATTR_PRELAX 0x01
99 #define SATTR_TRELAX 0x02
100 #define SATTR_AVGRST 0x04
102 typedef struct s_insert_atoms_params {
104 double x0,y0,z0,x1,y1,z1;
112 } t_insert_atoms_params;
114 #define INS_TOTAL 0x01
115 #define INS_REGION 0x02
117 typedef struct s_continue_params {
121 typedef struct s_anneal_params {
127 typedef struct s_chaattr_params {
135 #define CHAATTR_TOTALV 0x01
136 #define CHAATTR_REGION 0x02
137 #define CHAATTR_ELEMENT 0x04
139 typedef struct s_chsattr_params {
146 #define CHSATTR_PCTRL 0x01
147 #define CHSATTR_TCTRL 0x02
148 #define CHSATTR_PRELAX 0x04
149 #define CHSATTR_TRELAX 0x08
150 #define CHSATTR_AVGRST 0x10
153 * function prototypes