From cf5b5b6d3d537f8255aa8ac8b46d5ccf0b39f39a Mon Sep 17 00:00:00 2001 From: kdrienCG Date: Wed, 29 Apr 2026 17:02:56 +0200 Subject: [PATCH 1/4] add cleanup method to stats --- .../fluidFlow/CompositionalMultiphaseStatistics.cpp | 10 ++++++++++ .../fluidFlow/CompositionalMultiphaseStatistics.hpp | 9 +++++++++ .../physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp | 9 +++++++++ .../physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp | 9 +++++++++ .../physicsSolvers/fluidFlow/SourceFluxStatistics.cpp | 9 +++++++++ .../physicsSolvers/fluidFlow/SourceFluxStatistics.hpp | 9 +++++++++ .../solidMechanics/SolidMechanicsStatistics.cpp | 8 ++++++++ .../solidMechanics/SolidMechanicsStatistics.hpp | 9 +++++++++ 8 files changed, 72 insertions(+) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp index c83695e5a98..b4463e38c96 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp @@ -215,6 +215,16 @@ bool CompositionalMultiphaseStatistics::execute( real64 const time_n, return false; } +void CompositionalMultiphaseStatistics::cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) +{ + execute( time_n, 0.0, cycleNumber, eventCounter, eventProgress, domain ); +} + + void CompositionalMultiphaseStatistics::computeRegionStatistics( real64 const time, MeshLevel & mesh, string_array const & regionNames ) const diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp index dbe275b7b6f..9996a96210a 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp @@ -65,6 +65,15 @@ class CompositionalMultiphaseStatistics : public FieldStatisticsBase< Compositio real64 const eventProgress, DomainPartition & domain ) override; + /** + * @copydoc ExecutableGroup::cleanup() + */ + virtual void cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) override; + /**@}*/ struct RegionStatistics diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp index 31cfee04b70..bc93c1d8380 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp @@ -109,6 +109,15 @@ bool SinglePhaseStatistics::execute( real64 const time_n, return false; } +void SinglePhaseStatistics::cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) +{ + execute( time_n, 0.0, cycleNumber, eventCounter, eventProgress, domain ); +} + void SinglePhaseStatistics::computeRegionStatistics( real64 const time, MeshLevel & mesh, string_array const & regionNames ) const diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp index 4906790b026..6f88ca6409d 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp @@ -63,6 +63,15 @@ class SinglePhaseStatistics : public FieldStatisticsBase< SinglePhaseBase > real64 const eventProgress, DomainPartition & domain ) override; + /** + * @copydoc ExecutableGroup::cleanup() + */ + virtual void cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) override; + /**@}*/ diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp index 26f734efd64..262bf21580a 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp @@ -282,6 +282,15 @@ bool SourceFluxStatsAggregator::execute( real64 const GEOS_UNUSED_PARAM( time_n return false; } +void SourceFluxStatsAggregator::cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) +{ + execute( time_n, 0.0, cycleNumber, eventCounter, eventProgress, domain ); +} + void SourceFluxStatsAggregator::StatData::allocate( integer phaseCount ) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp index b777cd3ba07..226c8c4a742 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp @@ -223,6 +223,15 @@ class SourceFluxStatsAggregator final : public FieldStatisticsBase< FlowSolverBa real64 const eventProgress, DomainPartition & domain ) override; + /** + * @copydoc ExecutableGroup::cleanup() + */ + virtual void cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) override; + /** * @brief Apply a functor to WrappedStats that combines all stats for each target solver * discretization mesh levels. diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp index cb35b7dd375..03dc466fb5b 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp @@ -93,6 +93,14 @@ bool SolidMechanicsStatistics::execute( real64 const time_n, } ); return false; } +void SolidMechanicsStatistics::cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) +{ + execute( time_n, 0.0, cycleNumber, eventCounter, eventProgress, domain ); +} void SolidMechanicsStatistics::computeNodeStatistics( MeshLevel & mesh, real64 const time ) const { diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp index 975c057b075..7873491e9c6 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp @@ -61,6 +61,15 @@ class SolidMechanicsStatistics : public FieldStatisticsBase< SolidMechanicsLagra real64 const eventProgress, DomainPartition & domain ) override; + /** + * @copydoc ExecutableGroup::cleanup() + */ + virtual void cleanup( real64 const time_n, + integer const cycleNumber, + integer const eventCounter, + real64 const eventProgress, + DomainPartition & domain ) override; + /**@}*/ /** From eb5dd3d1ea4f906dbdb8d7b7e8bcf111ce05d72f Mon Sep 17 00:00:00 2001 From: kdrienCG Date: Mon, 4 May 2026 19:49:06 +0200 Subject: [PATCH 2/4] remove timestep addtion to time in stats --- .../fluidFlow/CompositionalMultiphaseStatistics.cpp | 6 ++---- .../physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp | 3 +-- .../solidMechanics/SolidMechanicsStatistics.cpp | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp index b4463e38c96..d091bcd7e6c 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp @@ -201,15 +201,13 @@ bool CompositionalMultiphaseStatistics::execute( real64 const time_n, { if( m_computeRegionStatistics ) { - // current time is time_n + dt - computeRegionStatistics( time_n + dt, mesh, regionNames ); + computeRegionStatistics( time_n, mesh, regionNames ); } } ); if( m_computeCFLNumbers ) { - // current time is time_n + dt - computeCFLNumbers( time_n + dt, dt, domain ); + computeCFLNumbers( time_n, dt, domain ); } return false; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp index bc93c1d8380..a8bee5200f2 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp @@ -103,8 +103,7 @@ bool SinglePhaseStatistics::execute( real64 const time_n, MeshLevel & mesh, string_array const & regionNames ) { - // current time is time_n + dt - computeRegionStatistics( time_n + dt, mesh, regionNames ); + computeRegionStatistics( time_n, mesh, regionNames ); } ); return false; } diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp index 03dc466fb5b..b181b09d66f 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp @@ -88,8 +88,7 @@ bool SolidMechanicsStatistics::execute( real64 const time_n, MeshLevel & mesh, string_array const & ) { - // current time is time_n + dt - computeNodeStatistics( mesh, time_n + dt ); + computeNodeStatistics( mesh, time_n ); } ); return false; } From 49f53dfb8b6c9c94679090c2b40dd134eecf5c7d Mon Sep 17 00:00:00 2001 From: kdrienCG Date: Mon, 4 May 2026 19:50:02 +0200 Subject: [PATCH 3/4] (WIP) update stats test --- .../unitTests/testFlowStatistics.cpp | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp index 356661e434e..1775e77a916 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp @@ -137,7 +137,7 @@ struct TestSet sinkMeanRate[ip] += inputs.sinkRates[timestepId][ip] * inputs.sinkRateFactor; } // mean rates calculation - real64 const ratesMeanDivisor = 1.0 / double( timestepCount - 1 ); + real64 const ratesMeanDivisor = 1.0 / double( timestepCount ); sourceMeanRate[ip] *= ratesMeanDivisor; sinkMeanRate[ip] *= ratesMeanDivisor; // totals @@ -469,8 +469,7 @@ TestSet getTestSet() xMax="{ 10.01, 10.01, 0.01 }" /> - - + @@ -514,8 +513,8 @@ TestSet getTestSet() name="FluxRate" inputVarNames="{ time }" interpolation="lower" - coordinates="{ 0.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0, 5500.0 }" - values="{ 0.000, 0.000, 0.767, 0.894, 0.561, 0.234, 0.194, 0.178, 0.162, 0.059, 0.000, 0.000 }" + coordinates="{ 0.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0 }" + values="{ 0.000, 0.767, 0.894, 0.561, 0.234, 0.194, 0.178, 0.162, 0.059, 0.000, 0.000 }" /> @@ -537,7 +536,6 @@ TestSet getTestSet() // FluxRate table from 0.0s to 5000.0s setRateTable( testInputs.sourceRates, { { 0.000 }, - { 0.000 }, { 0.767 }, { 0.894 }, { 0.561 }, @@ -546,6 +544,7 @@ TestSet getTestSet() { 0.178 }, { 0.162 }, { 0.059 }, + { 0.000 }, { 0.000 } } ); testInputs.sinkRates=testInputs.sourceRates; @@ -715,7 +714,7 @@ TestSet getTestSet() - + @@ -759,16 +758,16 @@ TestSet getTestSet() name="FluxInjectionRate" inputVarNames="{ time }" interpolation="lower" - coordinates="{ 0.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0, 5500.0 }" - values="{ 0.000, 0.000, 0.267, 0.561, 0.194, 0.102, 0.059, 0.000, 0.000, 0.000, 0.000, 0.000 }" + coordinates="{ 0.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0 }" + values="{ 0.000, 0.267, 0.561, 0.194, 0.102, 0.059, 0.000, 0.000, 0.000, 0.000, 0.000 }" /> Date: Thu, 7 May 2026 09:59:36 +0200 Subject: [PATCH 4/4] modify time for stats --- .../testingUtilities/TestingTasks.cpp | 7 ++ .../testingUtilities/TestingTasks.hpp | 5 ++ .../CompositionalMultiphaseStatistics.cpp | 7 +- .../fluidFlow/SinglePhaseStatistics.cpp | 5 +- .../unitTests/testFlowStatistics.cpp | 64 +++++++++---------- .../SolidMechanicsStatistics.cpp | 6 +- 6 files changed, 54 insertions(+), 40 deletions(-) diff --git a/src/coreComponents/integrationTests/testingUtilities/TestingTasks.cpp b/src/coreComponents/integrationTests/testingUtilities/TestingTasks.cpp index 0a1e4644f97..aed24fe516d 100644 --- a/src/coreComponents/integrationTests/testingUtilities/TestingTasks.cpp +++ b/src/coreComponents/integrationTests/testingUtilities/TestingTasks.cpp @@ -43,6 +43,13 @@ bool TimeStepChecker::execute( real64 const time_n, return false; } +void TimeStepChecker::cleanup( real64 time_n, integer cycleNumber, + integer eventCounter, real64 eventProgress, + DomainPartition & domain ) +{ + execute( time_n, 0.0, cycleNumber, eventCounter, eventProgress, domain ); +} + REGISTER_CATALOG_ENTRY( TaskBase, TimeStepChecker, string const &, geos::dataRepository::Group * const ) diff --git a/src/coreComponents/integrationTests/testingUtilities/TestingTasks.hpp b/src/coreComponents/integrationTests/testingUtilities/TestingTasks.hpp index fb4dfa359f8..712ba347aae 100644 --- a/src/coreComponents/integrationTests/testingUtilities/TestingTasks.hpp +++ b/src/coreComponents/integrationTests/testingUtilities/TestingTasks.hpp @@ -20,6 +20,7 @@ #ifndef GEOS_EVENTS_TASKS_TESTINGTASKS_HPP_ #define GEOS_EVENTS_TASKS_TESTINGTASKS_HPP_ +#include "common/DataTypes.hpp" #include "events/tasks/TaskBase.hpp" #include "codingUtilities/UnitTestUtilities.hpp" @@ -68,6 +69,10 @@ class TimeStepChecker : public TaskBase integer eventCounter, real64 eventProgress, DomainPartition & domain ); + virtual void cleanup( real64 time_n, integer cycleNumber, + integer eventCounter, real64 eventProgress, + DomainPartition & domain ); + private: std::function< void(real64) > m_checkTimeStepFunction; int m_timestepId = 0; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp index d091bcd7e6c..7797b9329dd 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp @@ -192,22 +192,23 @@ bool CompositionalMultiphaseStatistics::execute( real64 const time_n, real64 const dt, integer const GEOS_UNUSED_PARAM( cycleNumber ), integer const GEOS_UNUSED_PARAM( eventCounter ), - real64 const GEOS_UNUSED_PARAM( eventProgress ), + real64 const eventProgress, DomainPartition & domain ) { + real64 const time = time_n + dt * eventProgress; m_solver->forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, MeshLevel & mesh, string_array const & regionNames ) { if( m_computeRegionStatistics ) { - computeRegionStatistics( time_n, mesh, regionNames ); + computeRegionStatistics( time, mesh, regionNames ); } } ); if( m_computeCFLNumbers ) { - computeCFLNumbers( time_n, dt, domain ); + computeCFLNumbers( time, dt, domain ); } return false; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp index a8bee5200f2..af2bedfd34d 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp @@ -96,14 +96,15 @@ bool SinglePhaseStatistics::execute( real64 const time_n, real64 const dt, integer const GEOS_UNUSED_PARAM( cycleNumber ), integer const GEOS_UNUSED_PARAM( eventCounter ), - real64 const GEOS_UNUSED_PARAM( eventProgress ), + real64 const eventProgress, DomainPartition & domain ) { + real64 const time = time_n + dt * eventProgress; m_solver->forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, MeshLevel & mesh, string_array const & regionNames ) { - computeRegionStatistics( time_n, mesh, regionNames ); + computeRegionStatistics( time, mesh, regionNames ); } ); return false; } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp index 1775e77a916..ad4f74a4833 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/unitTests/testFlowStatistics.cpp @@ -137,7 +137,7 @@ struct TestSet sinkMeanRate[ip] += inputs.sinkRates[timestepId][ip] * inputs.sinkRateFactor; } // mean rates calculation - real64 const ratesMeanDivisor = 1.0 / double( timestepCount ); + real64 const ratesMeanDivisor = 1.0 / double( timestepCount - 1 ); sourceMeanRate[ip] *= ratesMeanDivisor; sinkMeanRate[ip] *= ratesMeanDivisor; // totals @@ -470,10 +470,6 @@ TestSet getTestSet() - - @@ -481,13 +477,17 @@ TestSet getTestSet() timeFrequency="500.0" target="/Tasks/timeStepReservoirStats" /> + + - + @@ -536,6 +536,7 @@ TestSet getTestSet() // FluxRate table from 0.0s to 5000.0s setRateTable( testInputs.sourceRates, { { 0.000 }, + { 0.000 }, { 0.767 }, { 0.894 }, { 0.561 }, @@ -544,7 +545,6 @@ TestSet getTestSet() { 0.178 }, { 0.162 }, { 0.059 }, - { 0.000 }, { 0.000 } } ); testInputs.sinkRates=testInputs.sourceRates; @@ -713,12 +713,7 @@ TestSet getTestSet() xMax="{ 10.01, 10.01, 0.01 }" /> - - - @@ -726,13 +721,17 @@ TestSet getTestSet() timeFrequency="500.0" target="/Tasks/timeStepReservoirStats" /> + + - + @@ -813,6 +812,7 @@ TestSet getTestSet() // FluxInjectionRate & FluxProductionRate table from 0.0s to 5000.0s setRateTable( testInputs.sourceRates, { { 0.000, 0.0 }, + { 0.000, 0.0 }, { 0.267, 0.0 }, { 0.561, 0.0 }, { 0.194, 0.0 }, @@ -821,10 +821,10 @@ TestSet getTestSet() { 0.000, 0.0 }, { 0.000, 0.0 }, { 0.000, 0.0 }, - { 0.000, 0.0 }, { 0.000, 0.0 } } ); setRateTable( testInputs.sinkRates, { { 0.0, 0.000 }, + { 0.0, 0.000 }, { 0.0, 0.003 }, { 0.0, 0.062 }, { 0.0, 0.121 }, @@ -833,7 +833,6 @@ TestSet getTestSet() { 0.0, 0.199 }, { 0.0, 0.083 }, { 0.0, 0.027 }, - { 0.0, 0.000 }, { 0.0, 0.000 } } ); testInputs.sourceRateFactor = -44e-3; @@ -985,12 +984,7 @@ TestSet getTestSet() xMax="{ 10.01, 10.01, 0.01 }" /> - - - - + @@ -998,13 +992,17 @@ TestSet getTestSet() timeFrequency="500.0" target="/Tasks/timeStepReservoirStats" /> + + - + @@ -1030,16 +1028,16 @@ TestSet getTestSet() name="FluxInjectionRate" inputVarNames="{ time }" interpolation="lower" - coordinates="{ 0.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0, 5500.0 }" - values="{ 0.000, 0.000, 0.267, 0.561, 0.194, 0.102, 0.059, 0.000, 0.000, 0.000, 0.000, 0.000 }" + coordinates="{ 0.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0 }" + values="{ 0.000, 0.267, 0.561, 0.194, 0.102, 0.059, 0.000, 0.000, 0.000, 0.000, 0.000 }" /> forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, MeshLevel & mesh, string_array const & ) { - computeNodeStatistics( mesh, time_n ); + computeNodeStatistics( mesh, time ); } ); return false; } + void SolidMechanicsStatistics::cleanup( real64 const time_n, integer const cycleNumber, integer const eventCounter,