X-Git-Url: https://www.hackdaworld.org/gitweb/?a=blobdiff_plain;f=moldyn.h;h=f2ccdb56343c9522efc5db74f3b976f0d91a0083;hb=91e4a00285261865ffce4b9553d153b562c80ee6;hp=c910d7f13de6b26ccdcb1f6d61927184a68d3dc4;hpb=fb951c04e522e4637618bf622fc67194c2a7b15f;p=physik%2Fposic.git diff --git a/moldyn.h b/moldyn.h index c910d7f..f2ccdb5 100644 --- a/moldyn.h +++ b/moldyn.h @@ -12,7 +12,6 @@ #include "random/random.h" #include "list/list.h" - /* * * datatypes @@ -82,7 +81,6 @@ typedef struct s_moldyn { t_3dvec dim; /* dimensions of the simulation volume */ double volume; /* volume of sim cell (dim.x*dim.y*dim.z) */ - double vt1,vt2; /* potential force function and parameter pointers */ int (*func1b)(struct s_moldyn *moldyn,t_atom *ai); @@ -139,12 +137,16 @@ typedef struct s_moldyn { int mfd; /* fd for momentum log */ unsigned int vwrite; /* how often to visualize atom information */ unsigned int swrite; /* how often to create a save file */ + int rfd; /* report file descriptor */ + char rtitle[64]; /* report title */ + char rauthor[64]; /* report author */ + int pfd; /* gnuplot script file descriptor */ u8 status; /* general moldyn properties */ t_random random; /* random interface */ - int debug; /* debugging stuff, ignore */ + double debug; /* debugging stuff, ignore */ } t_moldyn; #define MOLDYN_STAT_PBX 0x01 /* periodic boudaries in x */ @@ -162,7 +164,6 @@ typedef struct s_moldyn { #define P_SCALE_BERENDSEN 0x04 /* berendsen p control */ #define P_SCALE_DIRECT 0x08 /* direct p control */ - /* * * potential parameter structures @@ -234,7 +235,7 @@ typedef struct s_tersoff_exchange { t_3dvec dzeta_ji; } t_tersoff_exchange; -/* tersoff multi (2!) potential parameters */ +/* tersoff mult (2!) potential parameters */ typedef struct s_tersoff_mult_params { double S[2]; /* tersoff cutoff radii */ double S2[2]; /* tersoff cutoff radii squared */ @@ -289,7 +290,7 @@ typedef struct s_tersoff_mult_params { #define KILOGRAM (1.0/AMU) /* amu */ #define NEWTON (METER*KILOGRAM/(SECOND*SECOND)) /* A amu / fs^2 */ #define PASCAL (NEWTON/(METER*METER)) /* N / A^2 */ -#define ATM (1.0133e5*PASCAL) /* N / A^2 */ +#define ATM ((1.0133e5*PASCAL)) /* N / A^2 */ #define MOLDYN_TEMP 273.0 #define MOLDYN_TAU 1.0 @@ -307,10 +308,14 @@ typedef struct s_tersoff_mult_params { #define LOG_TOTAL_MOMENTUM 0x02 #define SAVE_STEP 0x04 #define VISUAL_STEP 0x08 +#define CREATE_REPORT 0x10 #define TRUE 1 #define FALSE 0 +#define VERBOSE 1 +#define QUIET 0 + /* * * phsical values / constants @@ -328,7 +333,8 @@ typedef struct s_tersoff_mult_params { #define LC_SI (0.543105e-9*METER) /* A */ #define M_SI 28.08553 /* amu */ -#define LJ_SIGMA_SI ((0.25*sqrt(3.0)*LC_SI)/1.122462) /* A */ +//#define LJ_SIGMA_SI ((0.25*sqrt(3.0)*LC_SI)/1.122462) /* A */ +#define LJ_SIGMA_SI (LC_SI/1.122462) /* A */ #define LJ_EPSILON_SI (2.1678*EV) /* NA */ #define TM_R_SI (2.7e-10*METER) /* A */ @@ -361,8 +367,9 @@ typedef struct s_tersoff_mult_params { * lattice constants */ -#define FCC 0x01 -#define DIAMOND 0x02 +#define CUBIC 0x01 +#define FCC 0x02 +#define DIAMOND 0x04 /* @@ -393,11 +400,13 @@ int set_potential2b_post(t_moldyn *moldyn,pf_func2b_post func,void *params); int set_potential3b(t_moldyn *moldyn,pf_func3b func,void *params); int moldyn_set_log_dir(t_moldyn *moldyn,char *dir); +int moldyn_set_report(t_moldyn *moldyn,char *author,char *title); int moldyn_set_log(t_moldyn *moldyn,u8 type,int timer); int moldyn_log_shutdown(t_moldyn *moldyn); int create_lattice(t_moldyn *moldyn,u8 type,double lc,int element,double mass, u8 attr,u8 brand,int a,int b,int c); +int cubic_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin); int fcc_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin); int diamond_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin); int add_atom(t_moldyn *moldyn,int element,double mass,u8 brand,u8 attr, @@ -422,7 +431,7 @@ t_3dvec get_total_p(t_moldyn *moldyn); double estimate_time_step(t_moldyn *moldyn,double nn_dist); -int link_cell_init(t_moldyn *moldyn); +int link_cell_init(t_moldyn *moldyn,u8 vol); int link_cell_update(t_moldyn *moldyn); int link_cell_neighbour_index(t_moldyn *moldyn,int i,int j,int k,t_list *cell); int link_cell_shutdown(t_moldyn *moldyn);