X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=potentials%2Falbe.h;h=96876557f379d1b4e5bbb69793a691ac1b2676cb;hb=6e6d7126ea9a845f11637d8e1b8eb2b570ac4dc9;hp=15386e76e5392f997e26e7e2639108cc24a985a6;hpb=4c2140b0f76fb191bdd9b9c2a329877eb0aae531;p=physik%2Fposic.git diff --git a/potentials/albe.h b/potentials/albe.h index 15386e7..9687655 100644 --- a/potentials/albe.h +++ b/potentials/albe.h @@ -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,11 +62,19 @@ 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; 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; @@ -78,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 */ @@ -96,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