X-Git-Url: https://hackdaworld.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=moldyn.h;h=534287bd0e615d9e54bfd325f6fd6292ae13d40d;hb=bb3e6f4ab3dfea9083e0d5b7d403ee6197f4041d;hp=41b711a8b2516a6d001a584ef51572220f4815a3;hpb=dfbe75140f5a113f898809c529a882034507f6d1;p=physik%2Fposic.git diff --git a/moldyn.h b/moldyn.h index 41b711a..534287b 100644 --- a/moldyn.h +++ b/moldyn.h @@ -48,7 +48,6 @@ typedef struct s_linkcell { double x,y,z; /* the actual cell lengthes */ t_list *subcell; /* pointer to the cell lists */ int dnlc; /* direct neighbour lists counter */ - int countn; /* amount of neighbours */ } t_linkcell; #include "visual/visual.h" @@ -73,8 +72,7 @@ typedef struct s_moldyn { int (*func1b)(struct s_moldyn *moldyn,t_atom *ai); void *pot1b_params; int (*func2b)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); - void (*func2b_post)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj, - u8 bc); + int (*func2b_post)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); void *pot2b_params; int (*func3b)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,t_atom *ak, u8 bck); @@ -128,6 +126,8 @@ typedef struct s_moldyn { u8 status; /* general moldyn properties */ t_random random; /* random interface */ + + int debug; /* debugging stuff, ignore */ } t_moldyn; #define MOLDYN_STAT_PBX 0x08 /* periodic boudaries in x */ @@ -180,26 +180,37 @@ typedef struct s_tersoff_exchange { t_3dvec dist_ij; double d_ij; - double d_ij2; double chi; - double *beta; - double *n; - double *c; - double *d; - double *h; - - double c2; - double d2; - double c2d2; - double betan; + double *beta_i; + double *beta_j; + double *n_i; + double *n_j; + double *c_i; + double *c_j; + double *d_i; + double *d_j; + double *h_i; + double *h_j; + + double ci2; + double cj2; + double di2; + double dj2; + double ci2di2; + double cj2dj2; + double betaini; + double betajnj; u8 run3bp; + u8 run2bp_post; + u8 d_ij_between_rs; - t_3dvec db_ij; - double 3bp_sum1; - double 3bp_sum2; + double zeta_ij; + double zeta_ji; + t_3dvec dzeta_ij; + t_3dvec dzeta_ji; } t_tersoff_exchange; /* tersoff multi (2!) potential parameters */ @@ -260,6 +271,8 @@ typedef struct s_tersoff_mult_params { #define TRUE 1 #define FALSE 0 +#define ACCEPTABLE_ERROR 1e-15 + /* * * phsical values / constants @@ -280,7 +293,7 @@ typedef struct s_tersoff_mult_params { #define LC_SI 0.543105e-9 /* m */ #define M_SI (28.085*AMU) /* kg */ #define LJ_SIGMA_SI ((0.25*sqrt(3.0)*LC_SI)/1.122462) /* m */ -#define LJ_EPSILON_SI (2.1678*1.60e-19) /* Nm */ +#define LJ_EPSILON_SI (2.1678*EV) /* Nm */ #define TM_R_SI 2.7e-10 /* m */ #define TM_S_SI 3.0e-10 /* m */ @@ -372,6 +385,9 @@ int lennard_jones(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); int tersoff_mult_complete_params(t_tersoff_mult_params *p); int tersoff_mult_1bp(t_moldyn *moldyn,t_atom *ai); int tersoff_mult_2bp(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); +int tersoff_mult_post_2bp(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); int tersoff_mult_3bp(t_moldyn *moldyn,t_atom *ai,t_atom *aj,t_atom *ak,u8 bc); +int moldyn_bc_check(t_moldyn *moldyn); + #endif