21 #ifndef GEOS_MAININTERFACE_PROBLEMMANAGER_HPP_
22 #define GEOS_MAININTERFACE_PROBLEMMANAGER_HPP_
29 class PhysicsSolverManager;
30 class DomainPartition;
31 class GeometricObjectManager;
32 class FiniteElementDiscretization;
34 namespace constitutive
36 class ConstitutiveManager;
40 class FunctionManager;
41 class FieldSpecificationManager;
42 struct CommandLineOptions;
43 class CellBlockManagerABC;
44 class ParticleBlockManagerABC;
77 integer documentationType )
override;
87 virtual Group *
createChild(
string const & childKey,
string const & childName )
override;
263 return *m_physicsSolverManager;
272 return *m_physicsSolverManager;
281 GEOS_ERROR_IF( m_functionManager ==
nullptr,
"Not initialized." );
282 return *m_functionManager;
291 GEOS_ERROR_IF( m_functionManager ==
nullptr,
"Not initialized." );
292 return *m_functionManager;
301 GEOS_ERROR_IF( m_fieldSpecificationManager ==
nullptr,
"Not initialized." );
302 return *m_fieldSpecificationManager;
311 GEOS_ERROR_IF( m_fieldSpecificationManager ==
nullptr,
"Not initialized." );
312 return *m_fieldSpecificationManager;
320 {
return *m_eventManager;}
327 {
return *m_tasksManager;}
347 map< std::tuple<
string,
string,
string,
string >,
localIndex > calculateRegionQuadrature(
Group & meshBodies );
351 getDiscretizations() const;
353 void generateMeshLevel(
MeshLevel & meshLevel,
355 Group const * const discretization,
356 arrayView1d<
string const > const & targetRegions );
358 void generateMeshLevel(
MeshLevel & meshLevel,
370 void setRegionQuadrature(
Group & meshBodies,
371 constitutive::ConstitutiveManager const & constitutiveManager,
372 map< std::tuple<
string,
string,
string,
string >,
localIndex > const & regionQuadrature );
#define GEOS_ERROR_IF(EXP, msg)
Conditionally raise a hard error and terminate the program.
Abstract base class for CellBlockManager.
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Class facilitating the representation of a multi-level discretization of a MeshBody.
Abstract base class for ParticleBlockManager.
This is the class handling the operation flow of the problem being ran in GEOS.
string const & getProblemName() const
Returns the problem name.
PhysicsSolverManager const & getPhysicsSolverManager() const
Returns the PhysicsSolverManager.
PhysicsSolverManager & getPhysicsSolverManager()
Returns the PhysicsSolverManager.
void initializationOrder(string_array &order) override final
Defines the order in which objects should be initialized.
void parseInputFile()
Parses the input xml file.
EventManager & getEventManager()
Returns the EventManager.
TasksManager & getTasksManager()
Returns the TasksManager.
static bool parseRestart(string &restartFileName, CommandLineOptions const &options)
Parses a restart file.
void problemSetup()
Sets up the problem after the input has been read in.
void applyNumericalMethods()
Allocates constitutive relations according to the discretizations on each subregion.
virtual void postInputInitialization() override final
Post process the command line input.
ProblemManager(conduit::Node &root)
Create a new ProblemManager, it must be created from the root conduit node.
virtual void setSchemaDeviations(xmlWrapper::xmlNode schemaRoot, xmlWrapper::xmlNode schemaParent, integer documentationType) override
Handles deviations between the data structure and schema.
FieldSpecificationManager & getFieldSpecificationManager()
Returns the FieldSpecificationManager.
struct geos::ProblemManager::viewKeysStruct viewKeys
Command line input viewKeys.
~ProblemManager() override
Destructor, deletes all Groups and Wrappers owned by this Group.
string const & getSchemaFileName() const
Returns the schema file name.
void applyInitialConditions()
Applies initial conditions indicated within the input file FieldSpecifications block.
void parseCommandLineInput()
Parses command line input.
struct geos::ProblemManager::groupKeysStruct groupKeys
Child group viewKeys.
FunctionManager const & getFunctionManager() const
Returns the const FunctionManager.
string const & getRestartFileName() const
Returns the restart file name.
void generateMesh()
Generates numerical meshes used throughout the code.
DomainPartition & getDomainPartition()
Returns a pointer to the DomainPartition.
void parseXMLDocument(xmlWrapper::xmlDocument &xmlDocument)
Parses the input xml document. Also add the includes content to the xmlDocument when Include nodes ar...
void importFields()
Import field data from external sources (e.g. mesh generator).
void readRestartOverwrite()
After initialization, overwrites data using a restart file.
void generateDocumentation()
Generates the xml schema documentation This function is called when the code is called with the -s sc...
void parseInputString(string const &xmlString)
Parses the input xml string.
FieldSpecificationManager const & getFieldSpecificationManager() const
Returns the const FunctionManager.
DomainPartition const & getDomainPartition() const
Returns a pointer to the DomainPartition.
virtual Group * createChild(string const &childKey, string const &childName) override
Creates a new sub-Group using the ObjectCatalog functionality.
string const & getInputFileName() const
Returns the input file name.
bool runSimulation()
Run the events in the scheduler.
FunctionManager & getFunctionManager()
Returns the FunctionManager.
A class to manage and execute tasks.
Base template for ordered and unordered maps.
Group::wrapperMap::KeyIndex ViewKey
Type alias for KeyIndexT type used for wrapper lookups.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
array1d< string > string_array
A 1-dimensional array of geos::string types.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
std::int32_t integer
Signed integer type.
dataRepository::GroupKey fieldSpecificationManager
Field specification key.
dataRepository::GroupKey geometricObjectManager
Geometry key.
dataRepository::GroupKey numericalMethodsManager
Numerical methods key.
dataRepository::GroupKey eventManager
Events key.
dataRepository::GroupKey commandLine
Command line key.
dataRepository::GroupKey constitutiveManager
Constitutive key.
dataRepository::GroupKey meshManager
Mesh key.
dataRepository::GroupKey tasksManager
Tasks key.
dataRepository::GroupKey functionManager
Functions key.
dataRepository::GroupKey domain
Domain key.
dataRepository::GroupKey externalDataSourceManager
External Data Source key.
dataRepository::GroupKey physicsSolverManager
Solvers key.
static constexpr char const * numericalMethodsManagerString()
dataRepository::GroupKey outputManager
Outputs key.
Command line input viewKeys.
dataRepository::ViewKey zPartitionsOverride
dataRepository::ViewKey xPartitionsOverride
dataRepository::ViewKey inputFileName
Input file name key.
dataRepository::ViewKey beginFromRestart
Flag to begin from restart key.
dataRepository::ViewKey outputDirectory
Output directory key.
dataRepository::ViewKey schemaFileName
Schema file name key.
dataRepository::ViewKey problemName
Problem name key.
dataRepository::ViewKey restartFileName
Restart file name key.
dataRepository::ViewKey overridePartitionNumbers
dataRepository::ViewKey useNonblockingMPI
Flag to use non-block MPI key.
dataRepository::ViewKey yPartitionsOverride
dataRepository::ViewKey suppressPinned