new structure (skipped 2 inlines) same code!
[physik/posic.git] / moldyn.h
index 3c53a86..1300998 100644 (file)
--- a/moldyn.h
+++ b/moldyn.h
@@ -84,13 +84,11 @@ typedef struct s_moldyn {
 
        /* potential force function and parameter pointers */
        int (*func1b)(struct s_moldyn *moldyn,t_atom *ai);
-       void *pot1b_params;
        int (*func2b)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
        int (*func2b_post)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
-       void *pot2b_params;
        int (*func3b)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,t_atom *ak,
                      u8 bck);
-       void *pot3b_params;
+       void *pot_params;
        //int (*potential_force_function)(struct s_moldyn *moldyn);
 
        double cutoff;          /* cutoff radius */
@@ -149,6 +147,12 @@ typedef struct s_moldyn {
        double debug;           /* debugging stuff, ignore */
 } t_moldyn;
 
+/*
+ *
+ *  defines
+ *
+ */
+
 #define MOLDYN_STAT_PBX                        0x01    /* periodic boudaries in x */
 #define MOLDYN_STAT_PBY                        0x02    /* y */
 #define MOLDYN_STAT_PBZ                        0x04    /* and z direction */
@@ -164,115 +168,6 @@ typedef struct s_moldyn {
 #define P_SCALE_BERENDSEN              0x04    /* berendsen p control */
 #define P_SCALE_DIRECT                 0x08    /* direct p control */
 
-/*
- *
- * potential parameter structures
- *
- */
-
-/*
- * harmonic oscillator potential parameter structure
- */
-
-typedef struct s_ho_params {
-       double spring_constant;
-       double equilibrium_distance;
-} t_ho_params;
-
-/*
- * lennard jones potential parameter structure
- */
-
-typedef struct s_lj_params {
-       double sigma6;
-       double sigma12;
-       double epsilon4;
-       double uc;
-} t_lj_params;
-
-/*
- * tersoff 
- */
-
-/* tersoff exchange structure to exchange 2bp and 3bp calculated values */
-typedef struct s_tersoff_exchange {
-       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;
-
-
-
-/*
- *
- *  defines
- *
- */
-
-#define ONE_THIRD      (1.0/3.0)
-
 /*
  * default values
  *
@@ -323,6 +218,8 @@ typedef struct s_tersoff_mult_params {
  *
  */
 
+#define ONE_THIRD              (1.0/3.0)
+
 #define K_BOLTZMANN            (1.380650524e-23*METER*NEWTON)  /* NA/K */
 #define EV                     (1.6021765314e-19*METER*NEWTON) /* NA */
 
@@ -446,17 +343,12 @@ int moldyn_integrate(t_moldyn *moldyn);
 int velocity_verlet(t_moldyn *moldyn);
 
 int potential_force_calc(t_moldyn *moldyn);
-inline int virial_calc(t_atom *a,t_3dvec *f,t_3dvec *d)
-       __attribute__((always_inline));
-inline int check_per_bound(t_moldyn *moldyn,t_3dvec *a)
-       __attribute__((always_inline));
-int harmonic_oscillator(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
-int lennard_jones(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
-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);
+int virial_calc(t_atom *a,t_3dvec *f,t_3dvec *d);
+//inline int virial_calc(t_atom *a,t_3dvec *f,t_3dvec *d)
+//     __attribute__((always_inline));
+int check_per_bound(t_moldyn *moldyn,t_3dvec *a);
+//inline int check_per_bound(t_moldyn *moldyn,t_3dvec *a)
+//     __attribute__((always_inline));
 
 int moldyn_bc_check(t_moldyn *moldyn);