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"
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);
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 */
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 */
#define TRUE 1
#define FALSE 0
+#define ACCEPTABLE_ERROR 1e-15
+
/*
*
* phsical values / constants
#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 */
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);
#endif