introduced albe_orig (much faster!) + small change for c2, d2, c2/d2 ...
[physik/posic.git] / potentials / albe_orig.h
index 15386e7..a52c7b2 100644 (file)
@@ -1,50 +1,53 @@
 /*
- * albe.h - albe potential header file
+ * albe_orig.h - albe potential header file
  *
  * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
  *
  */
 
-#ifndef ALBE_H
-#define ALBE_H
+#ifndef ALBE_ORIG_H
+#define ALBE_ORIG_H
 
-#define ALBE_MAXN      16*27
+/* albe constants */
+#include "albe.h"
+
+#define ALBE_ORIG_MAXN 16*27
 
 /* albe exchange type */
-typedef struct s_albe_exchange {
+typedef struct s_albe_orig_exchange {
 
        t_3dvec dist_ij;
        double d_ij2;
        double d_ij;
 
-       t_3dvec dist_ik[ALBE_MAXN];
-       double d_ik2[ALBE_MAXN];
-       double d_ik[ALBE_MAXN];
+       t_3dvec dist_ik[ALBE_ORIG_MAXN];
+       double d_ik2[ALBE_ORIG_MAXN];
+       double d_ik[ALBE_ORIG_MAXN];
 
-       double f_c_ik[ALBE_MAXN];
-       double df_c_ik[ALBE_MAXN];
+       double f_c_ik[ALBE_ORIG_MAXN];
+       double df_c_ik[ALBE_ORIG_MAXN];
 
-       double g[ALBE_MAXN];
-       double dg[ALBE_MAXN];
-       double cos_theta[ALBE_MAXN];
+       double g[ALBE_ORIG_MAXN];
+       double dg[ALBE_ORIG_MAXN];
+       double cos_theta[ALBE_ORIG_MAXN];
 
        double *gamma_i;
        double *c_i;
        double *d_i;
        double *h_i;
 
-       double ci2;
-       double di2;
-       double ci2di2;
+       double *ci2;
+       double *di2;
+       double *ci2di2;
 
        double zeta_ij;
        double pre_dzeta;
 
        int kcount;
-} t_albe_exchange;
+} t_albe_orig_exchange;
 
 /* albe mult (2!) potential parameters */
-typedef struct s_albe_mult_params {
+typedef struct s_albe_orig_mult_params {
        double S[2];            /* albe cutoff radii */
        double S2[2];           /* albe cutoff radii squared */
        double R[2];            /* albe cutoff radii */
@@ -65,67 +68,33 @@ typedef struct s_albe_mult_params {
        double gamma[2];
        double gamma_m;
        double c[2];
+       double c2[2];
        double c_mixed;
+       double c2_m;
        double d[2];
+       double d2[2];
        double d_mixed;
+       double d2_m;
        double h[2];
        double h_mixed;
+       double c2d2[2];
+       double c2d2_m;
 
-       t_albe_exchange exchange;       /* exchange between 2bp and 3bp calc */
-} t_albe_mult_params;
+       t_albe_orig_exchange exchange;  /* exchange between 2bp and 3bp calc */
+} t_albe_orig_mult_params;
 
 /* function prototypes */
-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);
-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);
-int albe_mult_check_2b_bond(t_moldyn *moldyn,t_atom *itom,t_atom *jtom,u8 bc);
+int albe_orig_mult_set_params(t_moldyn *moldyn,int element1,int elemnt2);
+int albe_orig_mult_3bp_j1(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
+int albe_orig_mult_3bp_k1(t_moldyn *moldyn,
+                          t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
+int albe_orig_mult_3bp_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
+int albe_orig_mult_3bp_k2(t_moldyn *moldyn,
+                          t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
+int albe_orig_mult_check_2b_bond(t_moldyn *moldyn,
+                                 t_atom *itom,t_atom *jtom,u8 bc);
 
 /* albe potential parameter defines */
-
-// silicon
-#define ALBE_R_SI              (2.82-0.14)
-#define ALBE_S_SI              (2.82+0.14)
-#define ALBE_A_SI              (3.24*EV/0.842)
-#define ALBE_B_SI              (-1.842*3.24*EV/0.842)
-#define ALBE_R0_SI             2.232
-#define ALBE_LAMBDA_SI         (1.4761*sqrt(2.0*1.842))
-#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_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_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_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_H_SIC             0.68
-#define ALBE_LC_SIC            4.359
+// -> albe.h
 
 #endif