changed energy fluctuation calc and heat cap calc
[physik/posic.git] / moldyn.h
index 484c456..2d1a438 100644 (file)
--- a/moldyn.h
+++ b/moldyn.h
@@ -77,6 +77,7 @@ typedef struct s_moldyn_schedule {
 /* moldyn main structure */
 typedef struct s_moldyn {
        int count;              /* total amount of atoms */
+       double mass;            /* total system mass */
        t_atom *atom;           /* pointer to the atoms */
 
        t_3dvec dim;            /* dimensions of the simulation volume */
@@ -144,12 +145,16 @@ typedef struct s_moldyn {
        double ekin;            /* kinetic energy */
 
        /* energy averages & fluctuations */
-       double k_m;
-       double p_m;
-       double t_m;
-       double dk2_m;           /* mean square kinetic energy fluctuations */
-       double dp2_m;           /* mean square potential energy fluctuations */
-       double dt2_m;           /* mean square fluctuations in total energy */
+       double k_sum;           /* sum of kinetic energy */
+       double v_sum;           /* sum of potential energy */
+       double k_mean;          /* average of kinetic energy */
+       double v_mean;          /* average of potential energy */
+       double k2_sum;          /* sum of kinetic energy squared */
+       double v2_sum;          /* sum of potential energy squared */
+       double k2_mean;         /* average of kinetic energy squared */
+       double v2_mean;         /* average of potential energy squared */
+       double dk2_mean;        /* mean square kinetic energy fluctuations */
+       double dv2_mean;        /* mean square potential energy fluctuations */
        
        /* response functions */
        double c_v_nve;         /* constant volume heat capacity (nve) */
@@ -403,10 +408,13 @@ 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 total_mass_calc(t_moldyn *moldyn);
 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);
+int energy_fluctuation_calc(t_moldyn *moldyn);
+int get_heat_capacity(t_moldyn *moldyn);
 double thermodynamic_pressure_calc(t_moldyn *moldyn);
 double get_pressure(t_moldyn *moldyn);
 int scale_volume(t_moldyn *moldyn);
@@ -443,7 +451,5 @@ int check_per_bound(t_moldyn *moldyn,t_3dvec *a);
 int moldyn_bc_check(t_moldyn *moldyn);
 
 int get_line(int fd,char *line,int max);
-int calc_fluctuations(double start,double end,t_moldyn *moldyn);
-int get_heat_capacity(t_moldyn *moldyn);
 
 #endif