2 * albe.h - albe potential header file
4 * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
11 #define ALBE_MAXN (4*27)
13 /* albe exchange type */
14 typedef struct s_albe_exchange {
16 t_3dvec dist[ALBE_MAXN];
20 double f_c[ALBE_MAXN];
21 double df_c[ALBE_MAXN];
23 double zeta[ALBE_MAXN];
24 t_3dvec dzeta[ALBE_MAXN][ALBE_MAXN];
28 double *gamma_[ALBE_MAXN];
29 double *c_[ALBE_MAXN];
30 double *d_[ALBE_MAXN];
31 double *c2_[ALBE_MAXN];
32 double *d2_[ALBE_MAXN];
33 double *c2d2_[ALBE_MAXN];
34 double *h_[ALBE_MAXN];
43 /* albe mult (2!) potential parameters */
44 typedef struct s_albe_mult_params {
45 double S[2]; /* albe cutoff radii */
46 double S2[2]; /* albe cutoff radii squared */
47 double R[2]; /* albe cutoff radii */
48 double Smixed; /* mixed S radius */
49 double S2mixed; /* mixed S radius squared */
50 double Rmixed; /* mixed R radius */
51 double A[2]; /* factor of albe attractive part */
52 double B[2]; /* factor of albe repulsive part */
53 double r0[2]; /* r_0 */
54 double Amixed; /* mixed A factor */
55 double Bmixed; /* mixed B factor */
56 double r0_mixed; /* mixed r_0 */
57 double lambda[2]; /* albe lambda */
58 double lambda_m; /* mixed lambda */
59 double mu[2]; /* albe mu */
60 double mu_m; /* mixed mu */
77 t_albe_exchange exchange; /* exchange between 2bp and 3bp calc */
80 /* function prototypes */
81 int albe_mult_set_params(t_moldyn *moldyn,int element1,int elemnt2);
82 int albe_mult_i0(t_moldyn *moldyn,t_atom *ai);
83 int albe_mult_i0_j0(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
84 int albe_mult_i0_j0_k0(t_moldyn *moldyn,
85 t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
86 int albe_mult_i0_j1(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
87 int albe_mult_i0_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
88 int albe_mult_i0_j2_k0(t_moldyn *moldyn,
89 t_atom *ai,t_atom *aj,t_atom *ak,u8 bc);
90 int albe_mult_i0_j3(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
91 int albe_mult_check_2b_bond(t_moldyn *moldyn,t_atom *itom,t_atom *jtom,u8 bc);
93 /* albe potential parameter defines */
96 #define ALBE_R_SI (2.82-0.14)
97 #define ALBE_S_SI (2.82+0.14)
98 #define ALBE_A_SI (3.24*EV/0.842)
99 #define ALBE_B_SI (-1.842*3.24*EV/0.842)
100 #define ALBE_R0_SI 2.232
101 #define ALBE_LAMBDA_SI (1.4761*sqrt(2.0*1.842))
102 #define ALBE_MU_SI (1.4761*sqrt(2.0/1.842))
103 #define ALBE_GAMMA_SI 0.114354
104 #define ALBE_C_SI 2.00494
105 #define ALBE_D_SI 0.81472
106 #define ALBE_H_SI 0.259
107 #define ALBE_LC_SI 5.429
110 #define ALBE_R_C (2.00-0.15)
111 #define ALBE_S_C (2.00+0.15)
112 #define ALBE_A_C (6.00*EV/1.167)
113 #define ALBE_B_C (-2.167*6.00*EV/1.167)
114 #define ALBE_R0_C 1.4276
115 #define ALBE_LAMBDA_C (2.0099*sqrt(2.0*2.167))
116 #define ALBE_MU_C (2.0099*sqrt(2.0/2.167))
117 #define ALBE_GAMMA_C 0.11233
118 #define ALBE_C_C 181.910
119 #define ALBE_D_C 6.28433
120 #define ALBE_H_C 0.5556
121 #define ALBE_LC_C 3.566
123 // mixed: silicon carbide
124 #define ALBE_R_SIC (2.40-0.20)
125 #define ALBE_S_SIC (2.40+0.20)
126 #define ALBE_A_SIC (4.36*EV/0.847)
127 #define ALBE_B_SIC (-1.847*4.36*EV/0.847)
128 #define ALBE_R0_SIC 1.79
129 #define ALBE_LAMBDA_SIC (1.6991*sqrt(2.0*1.847))
130 #define ALBE_MU_SIC (1.6991*sqrt(2.0/1.847))
131 #define ALBE_GAMMA_SIC 0.011877
132 #define ALBE_C_SIC 273987
133 #define ALBE_D_SIC 180.314
134 #define ALBE_H_SIC 0.68
135 #define ALBE_LC_SIC 4.359