2 * mdrun.h - mdrun header file
4 * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
11 #include <sys/types.h>
18 /* main molecular dynamics api */
22 #include "list/list.h"
25 #include "potentials/harmonic_oscillator.h"
26 #include "potentials/lennard_jones.h"
27 #include "potentials/albe.h"
29 #include "potentials/tersoff_orig.h"
31 #include "potentials/tersoff.h"
35 * datatypes & definitions
38 typedef struct s_stage {
44 #define STAGE_DISPLACE_ATOM 0x00
45 #define STAGE_INSERT_ATOMS 0x01
46 #define STAGE_INSERT_MIXED_ATOMS 0x02
47 #define STAGE_CONTINUE 0x03
48 #define STAGE_ANNEAL 0x04
49 #define STAGE_CHAATTR 0x05
50 #define STAGE_CHSATTR 0x06
52 typedef struct s_mdrun {
53 char cfile[128]; // config file
55 char continue_file[128]; // moldyn save file to continue
57 u8 intalgo; // integration algorithm
58 double timestep; // timestep
60 u8 potential; // potential
61 double cutoff; // cutoff radius
62 double nnd; // next neighbour distance
64 t_3dvec dim; // simulation volume
65 u8 pbcx; // periodic boundary conditions
69 int element1; // element 1
71 int element2; // element 2
73 double lc; // lattice constant
74 int lx; // amount of lc units
77 u8 lattice; // type of lattice
79 u8 sattr; // system attributes
80 double temperature; // temperature
81 double pressure; // pressure
84 int relax_steps; // amount of relaxation steps
86 int prerun; // amount of loops in first run
95 int avgskip; // average skip
96 char sdir[128]; // save root
98 t_list stage; // stages
99 int s_cnt; // stage counter
102 #define SATTR_PRELAX 0x01
103 #define SATTR_TRELAX 0x02
104 #define SATTR_AVGRST 0x04
106 typedef struct s_displace_atom_params {
109 } t_displace_atom_params;
111 typedef struct s_insert_atoms_params {
113 double x0,y0,z0,x1,y1,z1;
121 } t_insert_atoms_params;
123 typedef struct s_insert_mixed_atoms_params {
133 } t_insert_mixed_atoms_params;
135 #define INS_TOTAL 0x01
136 #define INS_REGION 0x02
139 typedef struct s_continue_params {
143 typedef struct s_anneal_params {
149 typedef struct s_chaattr_params {
157 #define CHAATTR_TOTALV 0x01
158 #define CHAATTR_REGION 0x02
159 #define CHAATTR_ELEMENT 0x04
161 typedef struct s_chsattr_params {
171 #define CHSATTR_PCTRL 0x01
172 #define CHSATTR_TCTRL 0x02
173 #define CHSATTR_PRELAX 0x04
174 #define CHSATTR_TRELAX 0x08
175 #define CHSATTR_AVGRST 0x10
176 #define CHSATTR_RSTEPS 0x20
179 * function prototypes