diff --git a/src/core/Observable_stat.hpp b/src/core/Observable_stat.hpp index 6a30188ee2c..ad3a1bba76c 100644 --- a/src/core/Observable_stat.hpp +++ b/src/core/Observable_stat.hpp @@ -130,13 +130,11 @@ class Observable_stat : public Observable_stat_base { void resize() final; /** Rescale values */ - void rescale(double volume, double time_step) { - auto const factor1 = 1. / (volume * time_step * time_step); - auto const factor2 = 1. / volume; - for (auto it = data.begin(); it != data.begin() + m_chunk_size; ++it) - *it *= factor1; - for (auto it = data.begin() + m_chunk_size; it != data.end(); ++it) - *it *= factor2; + void rescale(double volume) { + auto const factor = 1. / volume; + for(auto &e: data) { + e *= factor; + } } /** Get contribution from a bonded interaction */ diff --git a/src/core/pressure.cpp b/src/core/pressure.cpp index 7f7016549cd..827dde7e407 100644 --- a/src/core/pressure.cpp +++ b/src/core/pressure.cpp @@ -118,9 +118,9 @@ void pressure_calc(bool v_comp) { #endif /* rescale kinetic energy (=ideal contribution) */ - obs_scalar_pressure.local.rescale(3.0 * volume, time_step); + obs_scalar_pressure.local.rescale(3.0 * volume); - obs_stress_tensor.local.rescale(volume, time_step); + obs_stress_tensor.local.rescale(volume); /* Intra- and Inter- part of nonbonded interaction */ obs_scalar_pressure_non_bonded.local.rescale(3.0 * volume); diff --git a/src/core/pressure_inline.hpp b/src/core/pressure_inline.hpp index 8932b86f2fa..7ea538f9bb6 100644 --- a/src/core/pressure_inline.hpp +++ b/src/core/pressure_inline.hpp @@ -202,19 +202,15 @@ inline void add_kinetic_virials(Particle const &p1, bool v_comp) { /* kinetic energy */ if (v_comp) { obs_scalar_pressure.local.kinetic[0] += - ((p1.m.v * time_step) - - (p1.f.f * (0.5 * Utils::sqr(time_step) / p1.p.mass))) - .norm2() * - p1.p.mass; + (p1.m.v - (p1.f.f * (0.5 * time_step / p1.p.mass))).norm2() * p1.p.mass; } else { - obs_scalar_pressure.local.kinetic[0] += - Utils::sqr(time_step) * p1.m.v.norm2() * p1.p.mass; + obs_scalar_pressure.local.kinetic[0] += p1.m.v.norm2() * p1.p.mass; } for (int k = 0; k < 3; k++) for (int l = 0; l < 3; l++) obs_stress_tensor.local.kinetic[k * 3 + l] += - (p1.m.v[k] * time_step) * (p1.m.v[l] * time_step) * p1.p.mass; + (p1.m.v[k]) * (p1.m.v[l]) * p1.p.mass; } #endif