--- /dev/null
+/*
+ * 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