X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=potentials%2Ftersoff.h;h=2e4f2429a17494319d18bbef95830fcb1ffce540;hb=e6ca71aa985ab3c6885784e0cd1b8141672902fb;hp=a04ed0246c15eee1d531b7b23ccd95d1ed4ed90a;hpb=e333d9448b383cd3977f3919b6a1283a1e5e40e8;p=physik%2Fposic.git diff --git a/potentials/tersoff.h b/potentials/tersoff.h index a04ed02..2e4f242 100644 --- a/potentials/tersoff.h +++ b/potentials/tersoff.h @@ -8,45 +8,30 @@ #ifndef TERSOFF_H #define TERSOFF_H +#define TERSOFF_MAXN 16*27 + /* tersoff exchange type */ typedef struct s_tersoff_echange { - double f_c,df_c; - double f_a,df_a; t_3dvec dist_ij; double d_ij2; double d_ij; - double chi; + t_3dvec dist_ik[TERSOFF_MAXN]; + double d_ik2[TERSOFF_MAXN]; + double d_ik[TERSOFF_MAXN]; + + double f_c_ik[TERSOFF_MAXN]; + double df_c_ik[TERSOFF_MAXN]; - double *beta_i; - double *beta_j; - double *n_i; - double *n_j; - double *c_i; - double *c_j; - double *d_i; - double *d_j; - double *h_i; - double *h_j; - - double ci2; - double cj2; - double di2; - double dj2; - double ci2di2; - double cj2dj2; - double betaini; - double betajnj; - - u8 run3bp; - u8 run2bp_post; - u8 d_ij_between_rs; + double g[TERSOFF_MAXN]; + double dg[TERSOFF_MAXN]; + double cos_theta[TERSOFF_MAXN]; double zeta_ij; - double zeta_ji; - t_3dvec dzeta_ij; - t_3dvec dzeta_ji; + double pre_dzeta; + + int kcount; } t_tersoff_exchange; /* tersoff mult (2!) potential parameters */ @@ -74,14 +59,56 @@ typedef struct s_tersoff_mult_params { double d[2]; double h[2]; + double ci2[2]; + double di2[2]; + double ci2di2[2]; + double betaini[2]; + t_tersoff_exchange exchange; /* exchange between 2bp and 3bp calc */ } t_tersoff_mult_params; /* function prototypes */ -int tersoff_mult_complete_params(t_tersoff_mult_params *p); -int tersoff_mult_1bp(t_moldyn *moldyn,t_atom *ai); +int tersoff_mult_set_params(t_moldyn *moldyn,int element1,int element2); +//int tersoff_mult_1bp(t_moldyn *moldyn,t_atom *ai); int tersoff_mult_2bp(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); -int tersoff_mult_post_2bp(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); -int tersoff_mult_3bp(t_moldyn *moldyn,t_atom *ai,t_atom *aj,t_atom *ak,u8 bc); +int tersoff_mult_3bp_j1(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); +int tersoff_mult_3bp_k1(t_moldyn *moldyn, + t_atom *ai,t_atom *aj,t_atom *ak,u8 bc); +int tersoff_mult_3bp_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); +int tersoff_mult_3bp_k2(t_moldyn *moldyn, + t_atom *ai,t_atom *aj,t_atom *ak,u8 bc); +int tersoff_mult_check_2b_bond(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); + +/* tersoff potential paramter defines */ + +// silicon +#define TM_R_SI 2.7 /* A */ +#define TM_S_SI 3.0 /* A */ +#define TM_A_SI (1830.8*EV) /* NA */ +#define TM_B_SI (471.18*EV) /* NA */ +#define TM_LAMBDA_SI 2.4799 /* 1/A */ +#define TM_MU_SI 1.7322 /* 1/A */ +#define TM_BETA_SI 1.1000e-6 +#define TM_N_SI 0.78734 +#define TM_C_SI 1.0039e5 +#define TM_D_SI 16.217 +#define TM_H_SI -0.59825 + +// carbon +#define TM_R_C 1.8 /* A */ +#define TM_S_C 2.1 /* A */ +#define TM_A_C (1393.6*EV) /* NA */ +#define TM_B_C (346.7*EV) /* NA */ +#define TM_LAMBDA_C 3.4879 /* 1/A */ +#define TM_MU_C 2.2119 /* 1/A */ +#define TM_BETA_C 1.5724e-7 +#define TM_N_C 0.72751 +#define TM_C_C 3.8049e4 +#define TM_D_C 4.384 +#define TM_H_C -0.57058 + +// mixed: silicon carbide +#define TM_CHI_SIC 0.9776 +#define TM_LC_SIC 4.32 /* A */ #endif