typedef struct s_moldyn {
/* atoms, amount, dimensions */
int count;
t_atom *atom;
t_3dvec dim;
/* potential, force & parameters */
typedef struct s_moldyn {
/* atoms, amount, dimensions */
int count;
t_atom *atom;
t_3dvec dim;
/* potential, force & parameters */
+#define MOLDYN_INTEGRATE_VERLET 0x00
+#define MOLDYN_INTEGRATE_DEFAULT MOLDYN_INTEGRATE_VERLET
+
+#define MOLDYN_POTENTIAL_HO 0x00
+#define MOLDYN_POTENTIAL_LJ 0x01
+#define MOLDYN_POTENTIAL_DEFAULT MOLDYN_POTENTIAL_LJ
+
int moldyn_usage(char **argv);
int moldyn_parse_argv(t_moldyn *moldyn,int argc,char **argv);
int moldyn_usage(char **argv);
int moldyn_parse_argv(t_moldyn *moldyn,int argc,char **argv);
int create_lattice(unsigned char type,int element,double mass,double lc,
int a,int b,int c,t_atom **atom);
int destroy_lattice(t_atom *atom);
int create_lattice(unsigned char type,int element,double mass,double lc,
int a,int b,int c,t_atom **atom);
int destroy_lattice(t_atom *atom);
-int thermal_init(t_moldyn *moldyn,t_random *random,int count);
-int scale_velocity(t_moldyn *moldyn,int count);
+int thermal_init(t_moldyn *moldyn,t_random *random);
+int scale_velocity(t_moldyn *moldyn);
double get_e_kin(t_atom *atom,int count);
double get_e_pot(t_moldyn *moldyn);
double get_total_energy(t_moldyn *moldyn);
double get_e_kin(t_atom *atom,int count);
double get_e_pot(t_moldyn *moldyn);
double get_total_energy(t_moldyn *moldyn);
+int link_cell_init(t_moldyn *moldyn);
+int link_cell_update(t_moldyn *moldyn);
+int link_cell_neighbour_index(t_moldyn *moldyn,int i,int j,int k,t_list *cell);
+int link_cell_shutdown(t_moldyn *moldyn);
+
-double potential_harmonic_oscillator(t_moldyn *moldyn);
-int force_harmonic_oscillator(t_moldyn *moldyn);
-double potential_lennard_jones(t_moldyn *moldyn);
-int force_lennard_jones(t_moldyn *moldyn);
+int harmonic_oscillator(t_moldyn *moldyn);
+int lennard_jones(t_moldyn *moldyn);