X-Git-Url: https://www.hackdaworld.org/gitweb/?a=blobdiff_plain;f=mdrun.h;fp=mdrun.h;h=be8e2a40df51db55552df1366182de9d6eae38b1;hb=d7f67c88195ab155f2737e57cc5e81973d3feb0c;hp=ed9d88e0ac410057ec87ad8b28a3774a8d6b4dbc;hpb=61d24d027511c3e96b2f94558dc1b31c72725767;p=physik%2Fposic.git diff --git a/mdrun.h b/mdrun.h index ed9d88e..be8e2a4 100644 --- a/mdrun.h +++ b/mdrun.h @@ -31,25 +31,35 @@ #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 @@ -58,13 +68,19 @@ typedef struct s_mdrun { 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; @@ -74,9 +90,65 @@ typedef struct s_mdrun { 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 */