From e333d9448b383cd3977f3919b6a1283a1e5e40e8 Mon Sep 17 00:00:00 2001 From: hackbard Date: Mon, 5 Mar 2007 10:12:51 +0000 Subject: [PATCH] added potential header files --- potentials/harmonic_oscillator.h | 20 ++++++++ potentials/lennard_jones.h | 22 ++++++++ potentials/tersoff.h | 87 ++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 potentials/harmonic_oscillator.h create mode 100644 potentials/lennard_jones.h create mode 100644 potentials/tersoff.h diff --git a/potentials/harmonic_oscillator.h b/potentials/harmonic_oscillator.h new file mode 100644 index 0000000..c9c9891 --- /dev/null +++ b/potentials/harmonic_oscillator.h @@ -0,0 +1,20 @@ +/* + * harmonic_oscillator.h - harmonic oscillator potential header file + * + * author: Frank Zirkelbach + * + */ + +#ifndef HARMONIC_OSCILLATOR_H +#define HARMONIC_OSCILLATOR_H + +/* types */ +typedef struct s_ho_params { + double spring_constant; + double equilibrium_distance; +} t_ho_params; + +/* function prototype */ +int harmonic_oscillator(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); + +#endif diff --git a/potentials/lennard_jones.h b/potentials/lennard_jones.h new file mode 100644 index 0000000..617658b --- /dev/null +++ b/potentials/lennard_jones.h @@ -0,0 +1,22 @@ +/* + * lennard_jones.h - lennard jones potential header file + * + * author: Frank Zirkelbach + * + */ + +#ifndef LENNARD_JONES_H +#define LENNARD_JONES_H + +/* types */ +typedef struct s_lj_params { + double sigma6; + double sigma12; + double epsilon4; + double uc; +} t_lj_params; + +/* function prototype */ +int lennard_jones(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc); + +#endif diff --git a/potentials/tersoff.h b/potentials/tersoff.h new file mode 100644 index 0000000..a04ed02 --- /dev/null +++ b/potentials/tersoff.h @@ -0,0 +1,87 @@ +/* + * tersoff.h - tersoff potential header file + * + * author: Frank Zirkelbach + * + */ + +#ifndef TERSOFF_H +#define TERSOFF_H + +/* 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; + + 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 zeta_ij; + double zeta_ji; + t_3dvec dzeta_ij; + t_3dvec dzeta_ji; +} t_tersoff_exchange; + +/* tersoff mult (2!) potential parameters */ +typedef struct s_tersoff_mult_params { + double S[2]; /* tersoff cutoff radii */ + double S2[2]; /* tersoff cutoff radii squared */ + double R[2]; /* tersoff cutoff radii */ + double Smixed; /* mixed S radius */ + double S2mixed; /* mixed S radius squared */ + double Rmixed; /* mixed R radius */ + double A[2]; /* factor of tersoff attractive part */ + double B[2]; /* factor of tersoff repulsive part */ + double Amixed; /* mixed A factor */ + double Bmixed; /* mixed B factor */ + double lambda[2]; /* tersoff lambda */ + double lambda_m; /* mixed lambda */ + double mu[2]; /* tersoff mu */ + double mu_m; /* mixed mu */ + + double chi; + + double beta[2]; + double n[2]; + double c[2]; + double d[2]; + double h[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_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); + +#endif -- 2.20.1