bc check probs
[physik/posic.git] / moldyn.h
index b2f7522..534287b 100644 (file)
--- 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"
@@ -127,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 */
@@ -179,28 +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 n_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 sum1_3bp;
-       double sum2_3bp;
+       double zeta_ij;
+       double zeta_ji;
+       t_3dvec dzeta_ij;
+       t_3dvec dzeta_ji;
 } t_tersoff_exchange;
 
 /* tersoff multi (2!) potential parameters */
@@ -261,6 +271,8 @@ typedef struct s_tersoff_mult_params {
 #define TRUE                           1
 #define FALSE                          0
 
+#define ACCEPTABLE_ERROR               1e-15
+
 /*
  *
  * phsical values / constants
@@ -281,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 */
@@ -376,4 +388,6 @@ 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