int total_sched;
int *runs;
double *tau;
- int (*hook)(void *moldyn,void *hook);
+ int (*hook)(void *moldyn,void *hook_params);
void *hook_params;
} t_moldyn_schedule;
t_3dvec dim; /* dimensions of the simulation volume */
double volume; /* volume of sim cell (dim.x*dim.y*dim.z) */
+ double vt1,vt2;
/* potential force function and parameter pointers */
int (*func1b)(struct s_moldyn *moldyn,t_atom *ai);
double sigma6;
double sigma12;
double epsilon4;
+ double uc;
} t_lj_params;
/*
double f_a,df_a;
t_3dvec dist_ij;
+ double d_ij2;
double d_ij;
double chi;
int destroy_atoms(t_moldyn *moldyn);
int thermal_init(t_moldyn *moldyn,u8 equi_init);
+double temperature_calc(t_moldyn *moldyn);
+double get_temperature(t_moldyn *moldyn);
int scale_velocity(t_moldyn *moldyn,u8 equi_init);
+double pressure_calc(t_moldyn *moldyn);
+double get_pressure(t_moldyn *moldyn);
int scale_volume(t_moldyn *moldyn);
double get_e_kin(t_moldyn *moldyn);
-double get_e_pot(t_moldyn *moldyn);
+double update_e_kin(t_moldyn *moldyn);
double get_total_energy(t_moldyn *moldyn);
t_3dvec get_total_p(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);
+typedef int (*set_hook)(void *,void *);
+
int moldyn_add_schedule(t_moldyn *moldyn,int runs,double tau);
-int moldyn_set_schedule_hook(t_moldyn *moldyn,void *hook,void *hook_params);
+int moldyn_set_schedule_hook(t_moldyn *moldyn,set_hook hook,void *hook_params);
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 check_per_bound(t_moldyn *moldyn,t_3dvec *a);
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);