#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 */
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;
/* 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_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 */