20 #ifndef SRC_CORECOMPONENTS_PHYSICSSOLVERS_FIELDSTATISTICSBASE_HPP_
21 #define SRC_CORECOMPONENTS_PHYSICSSOLVERS_FIELDSTATISTICSBASE_HPP_
24 #include "physicsSolvers/PhysicsSolverManager.hpp"
36 template<
typename SOLVER >
47 Group *
const parent )
54 string const key = SOLVER::coupledSolverAttributePrefix() +
"SolverName";
56 setRTTypeName( rtTypes::CustomTypes::groupNameRef ).
58 setDescription(
"Name of the " + SOLVER::coupledSolverAttributePrefix() +
" solver" );
60 this->
registerWrapper( viewKeyStruct::writeCSVFlagString(), &m_writeCSV ).
61 setApplyDefaultValue( 0 ).
63 setDescription(
"Write statistics into a CSV file" );
77 real64 const eventProgress,
87 Group & physicsSolverManager = problemManager.
getGroup(
"Solvers" );
91 GEOS_FMT(
"{}: Could not find solver '{}' of type {}",
93 m_solverName, LvArray::system::demangleType< SOLVER >() ),
99 if( MpiWrapper::commRank() == 0 )
104 MPI_Barrier( MPI_COMM_WORLD );
110 static constexpr
char const * writeCSVFlagString() {
return "writeCSV"; }
117 string const m_outputDir;
#define GEOS_THROW_IF(EXP, msg, TYPE)
Conditionally throw an exception.
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
FieldStatisticsBase(const string &name, Group *const parent)
Constructor for the statistics class.
void postInputInitialization() override
SOLVER * m_solver
Pointer to the physics solver.
T & getGroupByPath(string const &path)
Retrieve a group from the hierarchy using a path.
Wrapper< TBASE > & registerWrapper(string const &name, wrapperMap::KeyIndex::index_type *const rkey=nullptr)
Create and register a Wrapper around a new object.
T * getGroupPointer(KEY const &key)
Return a pointer to a sub-group of the current Group.
DataContext const & getDataContext() const
void enableLogLevelInput()
T & getGroup(KEY const &key)
Return a reference to a sub-group of the current Group.
virtual bool execute(real64 const time_n, real64 const dt, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, DomainPartition &domain) override=0
Main extension point of executable targets.
@ OPTIONAL
Optional in input.
@ REQUIRED
Required in input.
void makeDirsForPath(std::string const &path)
Make directories for path.
double real64
64-bit floating point type.
std::int32_t integer
Signed integer type.
std::string joinPath(ARGS const &... args)
Join parts of a path.