#endif
/*
- * datatypes
+ * datatypes & definitions
*/
typedef struct s_stage {
u8 type;
- u8 attr;
- int runs;
+ void *params;
+ u8 executed;
} t_stage;
+#define STAGE_INSERT_ATOMS 0x01
+#define STAGE_CONTINUE 0x02
+#define STAGE_ANNEAL 0x03
+#define STAGE_CHAATTR 0x04
+#define STAGE_CHSATTR 0x05
+
typedef struct s_mdrun {
char cfile[128]; // config file
+
u8 intalgo; // integration algorithm
double timestep; // timestep
+
u8 potential; // potential
+
double cutoff; // cutoff radius
t_3dvec dim; // simulation volume
u8 pbcx; // periodic boundary conditions
u8 pbcy;
u8 pbcz;
+
int element1; // element 1
double m1;
int element2; // element 2
int lx; // amount of lc units
int ly;
int lz;
- u8 aattrib; // atom attributes
u8 lattice; // type of lattice
+
+ u8 sattr; // system attributes
double temperature; // temperature
double pressure; // pressure
double p_tau; // pressure tau
double t_tau; // temperature tau
+ double dp; // delta p fpr pctrl
+ double dt; // delta t for tctrl
+ int relax_steps; // amount of relaxation steps
+
int prerun; // amount of loops in first run
+
int elog; // logging
int tlog;
int plog;
u8 vis;
int avgskip; // average skip
char sdir[128]; // save root
- t_list stage; // list of stages
+
+ t_list *stage; // stages
+ int s_cnt; // stage counter
} t_mdrun;
+#define SATTR_PRELAX 0x01
+#define SATTR_TRELAX 0x02
+#define SATTR_AVGRST 0x04
+
+typedef struct s_insert_atoms_params {
+ u8 type;
+ double x0,y0,z0,x1,y1,z1;
+ double cr;
+ int ins_steps;
+ int cnt_steps;
+ int ins_atoms;
+ int element;
+ u8 brand;
+ u8 aattr;
+} t_insert_atoms_params;
+
+#define INS_TOTAL 0x01
+#define INS_REGION 0x02
+
+typedef struct s_continue_params {
+ int runs;
+} t_continue_params;
+
+typedef struct s_anneal_params {
+ int runs;
+ int count;
+ double dt;
+} t_anneal_params;
+
+typedef struct s_chaattr_params {
+ u8 type;
+ double x0,y0,z0;
+ double x1,y1,z1;
+ int element;
+ u8 attr;
+} t_chaattr_params;
+
+#define CHAATTR_TOTALV 0x01
+#define CHAATTR_REGION 0x02
+#define CHAATTR_ELEMENT 0x04
+
+typedef struct s_chsattr_params {
+ u8 type;
+ double tau;
+ u8 ctrl;
+ double delta;
+} t_chsattr_params;
+
+#define CHSATTR_PCTRL 0x01
+#define CHSATTR_TCTRL 0x02
+#define CHSATTR_PRELAX 0x04
+#define CHSATTR_TRELAX 0x08
+#define CHSATTR_AVGRST 0x10
+
/*
* function prototypes
*/