Merge branch 'leadoff'
[physik/posic.git] / potentials / albe.h
index 87f45a0..9687655 100644 (file)
@@ -8,39 +8,36 @@
 #ifndef ALBE_H
 #define ALBE_H
 
-#define ALBE_MAXN      16*27
+#define ALBE_MAXN      (4*27)
 
 /* albe exchange type */
 typedef struct s_albe_exchange {
 
-       t_3dvec dist_ij;
-       double d_ij2;
-       double d_ij;
+       t_3dvec dist[ALBE_MAXN];
+       double d2[ALBE_MAXN];
+       double d[ALBE_MAXN];
 
-       t_3dvec dist_ik[ALBE_MAXN];
-       double d_ik2[ALBE_MAXN];
-       double d_ik[ALBE_MAXN];
+       double f_c[ALBE_MAXN];
+       double df_c[ALBE_MAXN];
 
-       double f_c_ik[ALBE_MAXN];
-       double df_c_ik[ALBE_MAXN];
+       double zeta[ALBE_MAXN];
+       t_3dvec dzeta[ALBE_MAXN][ALBE_MAXN];
 
-       double g[ALBE_MAXN];
-       double dg[ALBE_MAXN];
-       double cos_theta[ALBE_MAXN];
+       u8 skip[ALBE_MAXN];
 
-       double *gamma_i;
-       double *c_i;
-       double *d_i;
-       double *h_i;
+       double *gamma_[ALBE_MAXN];
+       double *c_[ALBE_MAXN];
+       double *d_[ALBE_MAXN];
+       double *c2_[ALBE_MAXN];
+       double *d2_[ALBE_MAXN];
+       double *c2d2_[ALBE_MAXN];
+       double *h_[ALBE_MAXN];
 
-       double ci2;
-       double di2;
-       double ci2di2;
-
-       double zeta_ij;
        double pre_dzeta;
 
-       int kcount;
+       int jcnt;
+       int j2cnt;
+       int kcnt;
 } t_albe_exchange;
 
 /* albe mult (2!) potential parameters */
@@ -65,10 +62,12 @@ typedef struct s_albe_mult_params {
        double gamma[2];
        double gamma_m;
        double c[2];
+       double c2[2];
        double c_mixed;
        double c2[2];
        double c2_mixed;
        double d[2];
+       double d2[2];
        double d_mixed;
        double d2[2];
        double d2_mixed;
@@ -84,11 +83,13 @@ typedef struct s_albe_mult_params {
 int albe_mult_set_params(t_moldyn *moldyn,int element1,int elemnt2);
 int albe_mult_3bp_j1(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
 int albe_mult_3bp_k1(t_moldyn *moldyn,
-                        t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
+                     t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
 int albe_mult_3bp_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
 int albe_mult_3bp_k2(t_moldyn *moldyn,
-                        t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
+                     t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
 int albe_mult_check_2b_bond(t_moldyn *moldyn,t_atom *itom,t_atom *jtom,u8 bc);
+/* fast */
+int albe_potential_force_calc(t_moldyn *moldyn);
 
 /* albe potential parameter defines */
 
@@ -102,35 +103,35 @@ int albe_mult_check_2b_bond(t_moldyn *moldyn,t_atom *itom,t_atom *jtom,u8 bc);
 #define ALBE_MU_SI             (1.4761*sqrt(2.0/1.842))
 #define ALBE_GAMMA_SI          0.114354
 #define ALBE_C_SI              2.00494
-#define ALBE_D_SI              0.81472
+#define ALBE_D_SI              0.814719
 #define ALBE_H_SI              0.259
 #define ALBE_LC_SI             5.429
 
 // carbon
 #define ALBE_R_C               (2.00-0.15)
 #define ALBE_S_C               (2.00+0.15)
-#define ALBE_A_C               (6.00*EV/1.167)
-#define ALBE_B_C               (-2.167*6.00*EV/1.167)
-#define ALBE_R0_C              1.4276
-#define ALBE_LAMBDA_C          (2.0099*sqrt(2.0*2.167))
-#define ALBE_MU_C              (2.0099*sqrt(2.0/2.167))
-#define ALBE_GAMMA_C           0.11233
-#define ALBE_C_C               181.910
-#define ALBE_D_C               6.28433
-#define ALBE_H_C               0.5556
+#define ALBE_A_C               (6.00*EV/1.1671419)
+#define ALBE_B_C               (-2.1671419*6.00*EV/1.1671419)
+#define ALBE_R0_C              1.4276442
+#define ALBE_LAMBDA_C          (2.0099457*sqrt(2.0*2.1671419))
+#define ALBE_MU_C              (2.0099457*sqrt(2.0/2.1671419))
+#define ALBE_GAMMA_C           0.1123327
+#define ALBE_C_C               181.9100526
+#define ALBE_D_C               6.2843249
+#define ALBE_H_C               0.5556181
 #define ALBE_LC_C              3.566
 
 // mixed: silicon carbide
 #define ALBE_R_SIC             (2.40-0.20)
 #define ALBE_S_SIC             (2.40+0.20)
-#define ALBE_A_SIC             (4.36*EV/0.847)
-#define ALBE_B_SIC             (-1.847*4.36*EV/0.847)
+#define ALBE_A_SIC             (4.36*EV/0.8474739)
+#define ALBE_B_SIC             (-1.8474739*4.36*EV/0.8474739)
 #define ALBE_R0_SIC            1.79
-#define ALBE_LAMBDA_SIC                (1.6991*sqrt(2.0*1.847))
-#define ALBE_MU_SIC            (1.6991*sqrt(2.0/1.847))
-#define ALBE_GAMMA_SIC         0.011877
-#define ALBE_C_SIC             273987
-#define ALBE_D_SIC             180.314
+#define ALBE_LAMBDA_SIC                (1.6990751*sqrt(2.0*1.8474739))
+#define ALBE_MU_SIC            (1.6990751*sqrt(2.0/1.8474739))
+#define ALBE_GAMMA_SIC         0.0118769
+#define ALBE_C_SIC             273986.61
+#define ALBE_D_SIC             180.31411
 #define ALBE_H_SIC             0.68
 #define ALBE_LC_SIC            4.359