basic integration method and functions added
[physik/posic.git] / moldyn.h
index 30c4bf8..d94e193 100644 (file)
--- a/moldyn.h
+++ b/moldyn.h
@@ -10,6 +10,7 @@
 
 #include "math/math.h"
 #include "random/random.h"
+//#include "visual/visual.h"
 
 /* datatypes */
 
@@ -21,12 +22,18 @@ typedef struct s_atom {
        double mass;    /* atom mass */
 } t_atom;
 
-
 typedef struct s_moldyn {
        int count;
        t_atom *atom;
-       double (*potential)(void *ptr);
-       int (*force)(struct s_moldyn *moldyn,void *ptr);
+       double (*potential)(struct s_moldyn *moldyn);
+       void *pot_params;
+       int (*force)(struct s_moldyn *moldyn);
+       double cutoff_square;
+       t_3dvec dim;
+       int (*integrate)(struct s_moldyn *moldyn);
+       int time_steps;
+       double tau;
+       void *visual;
        unsigned char status;
 } t_moldyn;
 
@@ -68,8 +75,14 @@ int destroy_lattice(t_atom *atom);
 int thermal_init(t_atom *atom,t_random *random,int count,double t);
 int scale_velocity(t_atom *atom,int count,double t);
 double get_e_kin(t_atom *atom,int count);
+double get_e_pot(t_moldyn *moldyn);
+double get_total_energy(t_moldyn *moldyn);
 t_3dvec get_total_p(t_atom *atom,int count);
 
-double potential_lennard_jones_2(t_moldyn *moldyn,void *ptr);
+int moldyn_integrate(t_moldyn *moldyn);
+int velocity_verlet(t_moldyn *moldyn);
+
+double potential_lennard_jones(t_moldyn *moldyn);
+int force_lennard_jones(t_moldyn *moldyn);
 
 #endif