X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=moldyn.h;h=c5cc064cedc85c1cd417b8b65a7f20fb74c44311;hb=15b4727e1137600f8f46af027aefd2b5c7a56420;hp=23b510007a91f4fa3fc65911c6d938b670eea442;hpb=115ab83cedba54af2d165b8900781b98c5326b55;p=physik%2Fposic.git diff --git a/moldyn.h b/moldyn.h index 23b5100..c5cc064 100644 --- a/moldyn.h +++ b/moldyn.h @@ -82,6 +82,7 @@ typedef struct s_moldyn { 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); @@ -183,6 +184,7 @@ typedef struct s_lj_params { double sigma6; double sigma12; double epsilon4; + double uc; } t_lj_params; /* @@ -401,11 +403,15 @@ int add_atom(t_moldyn *moldyn,int element,double mass,u8 brand,u8 attr, 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); @@ -423,9 +429,10 @@ 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);