removed tersoff 1bp function, added PDEBUG define, check per bound with boundary...
[physik/posic.git] / potentials / tersoff.h
index a04ed02..2e4f242 100644 (file)
@@ -8,45 +8,30 @@
 #ifndef TERSOFF_H
 #define TERSOFF_H
 
+#define TERSOFF_MAXN   16*27
+
 /* tersoff exchange type */
 typedef struct s_tersoff_echange {
-       double f_c,df_c;
-       double f_a,df_a;
 
        t_3dvec dist_ij;
        double d_ij2;
        double d_ij;
 
-       double chi;
+       t_3dvec dist_ik[TERSOFF_MAXN];
+       double d_ik2[TERSOFF_MAXN];
+       double d_ik[TERSOFF_MAXN];
+
+       double f_c_ik[TERSOFF_MAXN];
+       double df_c_ik[TERSOFF_MAXN];
 
-       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;
+       double g[TERSOFF_MAXN];
+       double dg[TERSOFF_MAXN];
+       double cos_theta[TERSOFF_MAXN];
 
        double zeta_ij;
-       double zeta_ji;
-       t_3dvec dzeta_ij;
-       t_3dvec dzeta_ji;
+       double pre_dzeta;
+
+       int kcount;
 } t_tersoff_exchange;
 
 /* tersoff mult (2!) potential parameters */
@@ -74,14 +59,56 @@ typedef struct s_tersoff_mult_params {
        double d[2];
        double h[2];
 
+       double ci2[2];
+       double di2[2];
+       double ci2di2[2];
+       double betaini[2];
+
        t_tersoff_exchange exchange;    /* exchange between 2bp and 3bp calc */
 } t_tersoff_mult_params;
 
 /* function prototypes */
-int tersoff_mult_complete_params(t_tersoff_mult_params *p);
-int tersoff_mult_1bp(t_moldyn *moldyn,t_atom *ai);
+int tersoff_mult_set_params(t_moldyn *moldyn,int element1,int element2);
+//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 tersoff_mult_3bp_j1(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
+int tersoff_mult_3bp_k1(t_moldyn *moldyn,
+                        t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
+int tersoff_mult_3bp_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
+int tersoff_mult_3bp_k2(t_moldyn *moldyn,
+                        t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
+int tersoff_mult_check_2b_bond(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
+
+/* tersoff potential paramter defines */
+
+// silicon
+#define TM_R_SI                        2.7                             /* A */
+#define TM_S_SI                        3.0                             /* A */
+#define TM_A_SI                        (1830.8*EV)                     /* NA */
+#define TM_B_SI                        (471.18*EV)                     /* NA */
+#define TM_LAMBDA_SI           2.4799                          /* 1/A */
+#define TM_MU_SI               1.7322                          /* 1/A */
+#define TM_BETA_SI             1.1000e-6
+#define TM_N_SI                        0.78734
+#define TM_C_SI                        1.0039e5
+#define TM_D_SI                        16.217
+#define TM_H_SI                        -0.59825
+
+// carbon
+#define TM_R_C                 1.8                             /* A */
+#define TM_S_C                 2.1                             /* A */
+#define TM_A_C                 (1393.6*EV)                     /* NA */
+#define TM_B_C                 (346.7*EV)                      /* NA */
+#define TM_LAMBDA_C            3.4879                          /* 1/A */
+#define TM_MU_C                        2.2119                          /* 1/A */
+#define TM_BETA_C              1.5724e-7
+#define TM_N_C                 0.72751
+#define TM_C_C                 3.8049e4
+#define TM_D_C                 4.384
+#define TM_H_C                 -0.57058
+
+// mixed: silicon carbide
+#define TM_CHI_SIC             0.9776
+#define TM_LC_SIC              4.32                            /* A */
 
 #endif