X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=potentials%2Falbe.h;h=39c4df870261ad68b06139ec502ee3058e806c3f;hb=2b6a06cdf69b0d8f1dafc0e21b89c6bb4bfc192c;hp=09b96b17844f50f2c5f895d8f3d0c3041ab68276;hpb=92ef07d77a4c879527180224acea73a3f6564497;p=physik%2Fposic.git diff --git a/potentials/albe.h b/potentials/albe.h index 09b96b1..39c4df8 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,9 +62,15 @@ typedef struct s_albe_mult_params { double gamma[2]; double gamma_m; double c[2]; + double c2[2]; double c_mixed; + double c2_mixed; double d[2]; + double d2[2]; double d_mixed; + double d2_mixed; + double c2d2[2]; + double c2d2_m; double h[2]; double h_mixed; @@ -75,12 +78,60 @@ typedef struct s_albe_mult_params { } t_albe_mult_params; /* function prototypes */ -int albe_mult_complete_params(t_albe_mult_params *p); -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_set_params(t_moldyn *moldyn,int element1,int elemnt2); +int albe_mult_i0(t_moldyn *moldyn,t_atom *ai); +int albe_mult_i0_j0(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); +int albe_mult_i0_j0_k0(t_moldyn *moldyn, + t_atom *ai,t_atom *aj,t_atom *ak,u8 bc); +int albe_mult_i0_j1(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); +int albe_mult_i0_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); +int albe_mult_i0_j2_k0(t_moldyn *moldyn, + t_atom *ai,t_atom *aj,t_atom *ak,u8 bc); +int albe_mult_i0_j3(t_moldyn *moldyn,t_atom *ai,t_atom *aj,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