secured original albe implementation
[physik/posic.git] / potentials / albe_orig.h
diff --git a/potentials/albe_orig.h b/potentials/albe_orig.h
new file mode 100644 (file)
index 0000000..15386e7
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * albe.h - albe potential header file
+ *
+ * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
+ *
+ */
+
+#ifndef ALBE_H
+#define ALBE_H
+
+#define ALBE_MAXN      16*27
+
+/* albe exchange type */
+typedef struct s_albe_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];
+
+       double f_c_ik[ALBE_MAXN];
+       double df_c_ik[ALBE_MAXN];
+
+       double g[ALBE_MAXN];
+       double dg[ALBE_MAXN];
+       double cos_theta[ALBE_MAXN];
+
+       double *gamma_i;
+       double *c_i;
+       double *d_i;
+       double *h_i;
+
+       double ci2;
+       double di2;
+       double ci2di2;
+
+       double zeta_ij;
+       double pre_dzeta;
+
+       int kcount;
+} t_albe_exchange;
+
+/* albe mult (2!) potential parameters */
+typedef struct s_albe_mult_params {
+       double S[2];            /* albe cutoff radii */
+       double S2[2];           /* albe cutoff radii squared */
+       double R[2];            /* albe cutoff radii */
+       double Smixed;          /* mixed S radius */
+       double S2mixed;         /* mixed S radius squared */
+       double Rmixed;          /* mixed R radius */
+       double A[2];            /* factor of albe attractive part */
+       double B[2];            /* factor of albe repulsive part */
+       double r0[2];           /* r_0 */
+       double Amixed;          /* mixed A factor */
+       double Bmixed;          /* mixed B factor */
+       double r0_mixed;        /* mixed r_0 */
+       double lambda[2];       /* albe lambda */
+       double lambda_m;        /* mixed lambda */
+       double mu[2];           /* albe mu */
+       double mu_m;            /* mixed mu */
+
+       double gamma[2];
+       double gamma_m;
+       double c[2];
+       double c_mixed;
+       double d[2];
+       double d_mixed;
+       double h[2];
+       double h_mixed;
+
+       t_albe_exchange exchange;       /* exchange between 2bp and 3bp calc */
+} t_albe_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);
+
+/* 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
+
+#endif