X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=moldyn.h;h=d98b4286268ce6dfaebace9bb1fb9d234d43630f;hb=020789bbba5881e2abf58c362d0ce733696de3b3;hp=66f774eb068cd1b296d7f7277682a74b3bf461ba;hpb=0656efc2936da55ecf0b818fe33bb2acebc689c6;p=physik%2Fposic.git diff --git a/moldyn.h b/moldyn.h index 66f774e..d98b428 100644 --- a/moldyn.h +++ b/moldyn.h @@ -25,7 +25,8 @@ typedef struct s_atom { t_3dvec f; /* force */ int element; /* number of element in pse */ double mass; /* atom mass */ - unsigned char attr; /* attributes */ + u8 bnum; /* brand number */ + u8 attr; /* attributes */ } t_atom; #define ATOM_ATTR_FP 0x01 /* fixed position (bulk material) */ @@ -58,12 +59,14 @@ typedef struct s_moldyn { t_3dvec dim; /* dimensions of the simulation volume */ - /* potential force function pointer and parameters */ + /* potential force function and parameter pointers */ int (*pf_func1b)(struct s_moldyn *,t_atom *); + void *pot1b_params; int (*pf_func2b)(struct s_moldyn *,t_atom *,t_atom *); + void *pot2b_params; int (*pf_func3b)(struct s_moldyn *,t_atom *,t_atom *,t_atom *); + void *pot3b_params; //int (*potential_force_function)(struct s_moldyn *moldyn); - void *pot_params; /* parameters describing the potential */ double cutoff; /* cutoff radius */ double cutoff_square; /* square of the cutoff radius */ @@ -81,7 +84,7 @@ typedef struct s_moldyn { double energy; /* energy */ t_visual vis; /* visualization/log/save interface structure */ - unsigned char lvstat; /* log & vis properties */ + u8 lvstat; /* log & vis properties */ unsigned int ewrite; /* how often to log energy */ char efb[64]; /* energy log filename */ int efd; /* fd for energy log */ @@ -93,7 +96,7 @@ typedef struct s_moldyn { void *visual; /* pointer (hack!) */ unsigned int swrite; /* how often to create a save file */ - unsigned char status; /* general moldyn properties */ + u8 status; /* general moldyn properties */ t_random random; /* random interface */ } t_moldyn; @@ -120,6 +123,11 @@ typedef struct s_lj_params { } t_lj_params; typedef struct s_tersoff_params { + double S[2]; /* tersoff cutoff radii */ + double R[2]; /* tersoff cutoff radii */ + double Smixed /* mixed S radius */ + double Rmixed /* mixed R radius */ + double l_1,l_2; double m_1,m_2; double a_1,a_2; @@ -171,7 +179,7 @@ int moldyn_log_init(t_moldyn *moldyn); int moldyn_init(t_moldyn *moldyn,int argc,char **argv); int moldyn_shutdown(t_moldyn *moldyn); -int create_lattice(unsigned char type,int element,double mass,double lc, +int create_lattice(u8 type,int element,double mass,double lc, int a,int b,int c,t_atom **atom); int destroy_lattice(t_atom *atom); int thermal_init(t_moldyn *moldyn);