]> hackdaworld.org Git - physik/posic.git/commitdiff
added potential header files
authorhackbard <hackbard>
Mon, 5 Mar 2007 10:12:51 +0000 (10:12 +0000)
committerhackbard <hackbard>
Mon, 5 Mar 2007 10:12:51 +0000 (10:12 +0000)
potentials/harmonic_oscillator.h [new file with mode: 0644]
potentials/lennard_jones.h [new file with mode: 0644]
potentials/tersoff.h [new file with mode: 0644]

diff --git a/potentials/harmonic_oscillator.h b/potentials/harmonic_oscillator.h
new file mode 100644 (file)
index 0000000..c9c9891
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * harmonic_oscillator.h - harmonic oscillator potential header file
+ *
+ * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
+ *
+ */
+
+#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 (file)
index 0000000..617658b
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * lennard_jones.h - lennard jones potential header file
+ *
+ * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
+ *
+ */
+
+#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 (file)
index 0000000..a04ed02
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * tersoff.h - tersoff potential header file
+ *
+ * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
+ *
+ */
+
+#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