X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=mdrun.h;h=71c4d83d36ef95e67b17ef7e5d6c7c89349427b2;hb=94ddbad8d315e02d81e20a62560f2e67b4bae115;hp=be8e2a40df51db55552df1366182de9d6eae38b1;hpb=d7f67c88195ab155f2737e57cc5e81973d3feb0c;p=physik%2Fposic.git diff --git a/mdrun.h b/mdrun.h index be8e2a4..71c4d83 100644 --- a/mdrun.h +++ b/mdrun.h @@ -11,6 +11,7 @@ #include #include #include +#include #include @@ -40,21 +41,28 @@ typedef struct s_stage { u8 executed; } t_stage; +#define STAGE_DISPLACE_ATOM 0x00 #define STAGE_INSERT_ATOMS 0x01 -#define STAGE_CONTINUE 0x02 -#define STAGE_ANNEAL 0x03 -#define STAGE_CHAATTR 0x04 -#define STAGE_CHSATTR 0x05 +#define STAGE_INSERT_MIXED_ATOMS 0x02 +#define STAGE_CONTINUE 0x03 +#define STAGE_ANNEAL 0x04 +#define STAGE_CHAATTR 0x05 +#define STAGE_CHSATTR 0x06 +#define STAGE_SET_TEMP 0x07 +#define STAGE_SET_TIMESTEP 0x08 typedef struct s_mdrun { char cfile[128]; // config file + char continue_file[128]; // moldyn save file to continue + u8 intalgo; // integration algorithm double timestep; // timestep u8 potential; // potential - double cutoff; // cutoff radius + double nnd; // next neighbour distance + t_3dvec dim; // simulation volume u8 pbcx; // periodic boundary conditions u8 pbcy; @@ -70,13 +78,14 @@ typedef struct s_mdrun { int lz; u8 lattice; // type of lattice + int fill_element; + u8 fill_brand; + 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 + double dp; + double dt; int relax_steps; // amount of relaxation steps int prerun; // amount of loops in first run @@ -91,7 +100,7 @@ typedef struct s_mdrun { int avgskip; // average skip char sdir[128]; // save root - t_list *stage; // stages + t_list stage; // stages int s_cnt; // stage counter } t_mdrun; @@ -99,6 +108,11 @@ typedef struct s_mdrun { #define SATTR_TRELAX 0x02 #define SATTR_AVGRST 0x04 +typedef struct s_displace_atom_params { + int nr; + double dx,dy,dz; +} t_displace_atom_params; + typedef struct s_insert_atoms_params { u8 type; double x0,y0,z0,x1,y1,z1; @@ -108,11 +122,25 @@ typedef struct s_insert_atoms_params { int ins_atoms; int element; u8 brand; - u8 aattr; + u8 attr; } t_insert_atoms_params; +typedef struct s_insert_mixed_atoms_params { + int element1; + int element2; + int amount1; + int amount2; + u8 brand1; + u8 brand2; + u8 attr1; + u8 attr2; + double crmin; + double crmax; +} t_insert_mixed_atoms_params; + #define INS_TOTAL 0x01 #define INS_REGION 0x02 +#define INS_POS 0x03 typedef struct s_continue_params { int runs; @@ -122,6 +150,7 @@ typedef struct s_anneal_params { int runs; int count; double dt; + int interval; } t_anneal_params; typedef struct s_chaattr_params { @@ -138,9 +167,12 @@ typedef struct s_chaattr_params { typedef struct s_chsattr_params { u8 type; - double tau; - u8 ctrl; - double delta; + double ttau; + double ptau; + double dt; + double dp; + int rsteps; + u8 avgrst; } t_chsattr_params; #define CHSATTR_PCTRL 0x01 @@ -148,6 +180,19 @@ typedef struct s_chsattr_params { #define CHSATTR_PRELAX 0x04 #define CHSATTR_TRELAX 0x08 #define CHSATTR_AVGRST 0x10 +#define CHSATTR_RSTEPS 0x20 + +typedef struct s_set_temp_params { + u8 type; + double val; +} t_set_temp_params; + +#define SET_TEMP_CURRENT 0x01 +#define SET_TEMP_VALUE 0x02 + +typedef struct s_set_timestep_params { + double tau; +} t_set_timestep_params; /* * function prototypes