GEOS
|
Base class for all physics solvers. More...
#include <PhysicsSolverBase.hpp>
Classes | |
struct | groupKeyStruct |
Structure to hold scoped key names. More... | |
struct | viewKeyStruct |
Structure to hold scoped key names. More... | |
Public Types | |
using | CatalogInterface = dataRepository::CatalogInterface< PhysicsSolverBase, string const &, Group *const > |
Type alias for catalog interface used by this class. See CatalogInterface. | |
![]() | |
enum class | TimesteppingBehavior : integer { DeterminesTimeStepSize , DoesNotDetermineTimeStepSize } |
Timestepping type. More... | |
![]() | |
using | subGroupMap = MappedVector< Group, Group *, keyType, indexType > |
The template specialization of MappedVector to use for the collection of sub-Group objects. | |
using | wrapperMap = MappedVector< WrapperBase, WrapperBase *, keyType, indexType > |
The template specialization of MappedVector to use for the collection wrappers objects. | |
using | CatalogInterface = dataRepository::CatalogInterface< Group, string const &, Group *const > |
Type alias for catalog interface used by this class. See CatalogInterface. | |
Public Member Functions | |
PhysicsSolverBase (string const &name, Group *const parent) | |
Constructor for PhysicsSolverBase. More... | |
PhysicsSolverBase (PhysicsSolverBase &&)=default | |
Move constructor for PhysicsSolverBase. | |
virtual | ~PhysicsSolverBase () override |
Destructor for PhysicsSolverBase. | |
PhysicsSolverBase ()=delete | |
Deleted constructor. | |
PhysicsSolverBase (PhysicsSolverBase const &)=delete | |
Deleted copy constructor. | |
PhysicsSolverBase & | operator= (PhysicsSolverBase const &)=delete |
Deleted copy assignment operator. | |
PhysicsSolverBase & | operator= (PhysicsSolverBase &&)=delete |
Deleted move assignment operator. | |
virtual string | getCatalogName () const =0 |
virtual void | registerDataOnMesh (Group &MeshBodies) override |
Register wrappers that contain data on the mesh objects. More... | |
virtual void | initialize_postMeshGeneration () override |
Initialization tasks after mesh generation is completed. | |
void | generateMeshTargetsFromTargetRegions (Group const &meshBodies) |
Generate mesh targets from target regions. More... | |
virtual void | cleanup (real64 const time_n, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, DomainPartition &domain) override |
Called as the code exits the main run loop. More... | |
virtual bool | execute (real64 const time_n, real64 const dt, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, DomainPartition &domain) override |
Main extension point of executable targets. More... | |
ParallelMatrix & | getSystemMatrix () |
Getter for system matrix. More... | |
ParallelMatrix const & | getSystemMatrix () const |
Getter for system rhs vector. More... | |
ParallelVector & | getSystemRhs () |
Getter for system rhs vector. More... | |
ParallelVector const & | getSystemRhs () const |
Getter for system rhs vector. More... | |
ParallelVector & | getSystemSolution () |
Getter for system solution vector. More... | |
ParallelVector const & | getSystemSolution () const |
Getter for system solution vector. More... | |
DofManager & | getDofManager () |
Getter for degree-of-freedom manager. More... | |
DofManager const & | getDofManager () const |
Getter for degree-of-freedom manager. More... | |
CRSMatrix< real64, globalIndex > & | getLocalMatrix () |
Getter for local matrix. More... | |
CRSMatrixView< real64 const, globalIndex const > | getLocalMatrix () const |
Getter for local matrix. More... | |
virtual real64 | solverStep (real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) |
entry function to perform a solver step More... | |
virtual real64 | setNextDt (real64 const ¤tTime, real64 const ¤tDt, DomainPartition &domain) |
function to set the next time step size More... | |
virtual real64 | setNextDtBasedOnIterNumber (real64 const ¤tDt) |
function to set the next time step size based on convergence More... | |
virtual real64 | setNextDtBasedOnStateChange (real64 const ¤tDt, DomainPartition &domain) |
function to set the next dt based on state change More... | |
virtual real64 | explicitStep (real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) |
Entry function for an explicit time integration step. More... | |
virtual real64 | nonlinearImplicitStep (real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) |
Function for a nonlinear implicit integration step. More... | |
virtual bool | lineSearch (real64 const &time_n, real64 const &dt, integer const cycleNumber, integer const newtonIter, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, ParallelVector &rhs, ParallelVector &solution, real64 const scaleFactor, real64 &lastResidual) |
Function to perform line search. More... | |
virtual bool | lineSearchWithParabolicInterpolation (real64 const &time_n, real64 const &dt, integer const cycleNumber, integer const newtonIter, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, ParallelVector &rhs, ParallelVector &solution, real64 const scaleFactor, real64 &lastResidual, real64 &residualNormT) |
Function to perform line search using a parabolic interpolation to find the scaling factor. More... | |
virtual real64 | linearImplicitStep (real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) |
Function for a linear implicit integration step. More... | |
virtual void | implicitStepSetup (real64 const &time_n, real64 const &dt, DomainPartition &domain) |
function to perform setup for implicit timestep More... | |
virtual void | setupDofs (DomainPartition const &domain, DofManager &dofManager) const |
Populate degree-of-freedom manager with fields relevant to this solver. More... | |
virtual void | setupSystem (DomainPartition &domain, DofManager &dofManager, CRSMatrix< real64, globalIndex > &localMatrix, ParallelVector &rhs, ParallelVector &solution, bool const setSparsity=true) |
Set up the linear system (DOF indices and sparsity patterns) More... | |
virtual std::unique_ptr< PreconditionerBase< LAInterface > > | createPreconditioner (DomainPartition &domain) const |
Create a preconditioner for this solver's linear system. More... | |
virtual void | assembleSystem (real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) |
function to assemble the linear system matrix and rhs More... | |
virtual void | applyBoundaryConditions (real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) |
apply boundary condition to system More... | |
void | debugOutputSystem (real64 const &time, integer const cycleNumber, integer const nonlinearIteration, ParallelMatrix const &matrix, ParallelVector const &rhs) const |
Output the assembled linear system for debug purposes. More... | |
void | debugOutputSolution (real64 const &time, integer const cycleNumber, integer const nonlinearIteration, ParallelVector const &solution) const |
Output the linear system solution for debug purposes. More... | |
virtual void | updateAndWriteConvergenceStep (real64 const &time_n, real64 const &dt, integer const cycleNumber, integer const iteration) |
Update the convergence information and write then into a CSV file. More... | |
virtual real64 | calculateResidualNorm (real64 const &time, real64 const &dt, DomainPartition const &domain, DofManager const &dofManager, arrayView1d< real64 const > const &localRhs) |
calculate the norm of the global system residual More... | |
virtual void | solveLinearSystem (DofManager const &dofManager, ParallelMatrix &matrix, ParallelVector &rhs, ParallelVector &solution) |
function to apply a linear system solver to the assembled system. More... | |
virtual bool | checkSystemSolution (DomainPartition &domain, DofManager const &dofManager, arrayView1d< real64 const > const &localSolution, real64 const scalingFactor) |
Function to check system solution for physical consistency and constraint violation. More... | |
virtual real64 | scalingForSystemSolution (DomainPartition &domain, DofManager const &dofManager, arrayView1d< real64 const > const &localSolution) |
Function to determine if the solution vector should be scaled back in order to maintain a known constraint. More... | |
virtual void | applySystemSolution (DofManager const &dofManager, arrayView1d< real64 const > const &localSolution, real64 const scalingFactor, real64 const dt, DomainPartition &domain) |
Function to apply the solution vector to the state. More... | |
virtual bool | updateConfiguration (DomainPartition &domain) |
updates the configuration (if needed) based on the state after a converged Newton loop. More... | |
virtual void | outputConfigurationStatistics (DomainPartition const &domain) const |
virtual void | resetConfigurationToBeginningOfStep (DomainPartition &domain) |
resets the configuration to the beginning of the time-step. More... | |
virtual bool | resetConfigurationToDefault (DomainPartition &domain) const |
resets the configuration to the default value. More... | |
virtual void | updateState (DomainPartition &domain) |
Recompute all dependent quantities from primary variables (including constitutive models) More... | |
virtual void | resetStateToBeginningOfStep (DomainPartition &domain) |
reset state of physics back to the beginning of the step. More... | |
virtual void | implicitStepComplete (real64 const &time, real64 const &dt, DomainPartition &domain) |
perform cleanup for implicit timestep More... | |
virtual real64 | getTimestepRequest (real64 const) override |
getter for the next timestep size More... | |
real64 | getTimestepRequest () |
getter for the next timestep size More... | |
virtual Group * | createChild (string const &childKey, string const &childName) override |
creates a child group of of this PhysicsSolverBase instantiation More... | |
Timestamp | getSystemSetupTimestamp () const |
getter for the timestamp of the system setup More... | |
Timestamp | getMeshModificationTimestamp (DomainPartition &domain) const |
getter for the timestamp of the mesh modification on the mesh levels More... | |
void | setSystemSetupTimestamp (Timestamp timestamp) |
set the timestamp of the system setup More... | |
R1Tensor const | gravityVector () const |
return the value of the gravity vector specified in PhysicsSolverManager More... | |
virtual bool | checkSequentialSolutionIncrements (DomainPartition &domain) const |
Check if the solution increments are ok to use. More... | |
virtual void | saveSequentialIterationState (DomainPartition &domain) |
Save the state of the solver for sequential iteration. More... | |
LinearSolverParameters & | getLinearSolverParameters () |
accessor for the linear solver parameters. More... | |
LinearSolverParameters const & | getLinearSolverParameters () const |
const accessor for the linear solver parameters. More... | |
NonlinearSolverParameters & | getNonlinearSolverParameters () |
accessor for the nonlinear solver parameters. More... | |
NonlinearSolverParameters const & | getNonlinearSolverParameters () const |
const accessor for the nonlinear solver parameters. More... | |
virtual void | synchronizeNonlinearSolverParameters () |
synchronize the nonlinear solver parameters. | |
localIndex | targetRegionIndex (string const ®ionName) const |
Get position of a given region within solver's target region list. More... | |
string_array const & | getTargetRegionNames () const |
return the list of target regions More... | |
template<typename LAMBDA > | |
void | forDiscretizationOnMeshTargets (Group const &meshBodies, LAMBDA &&lambda) const |
Loop over the target discretization on all mesh targets and apply callback. More... | |
template<typename LAMBDA > | |
void | forDiscretizationOnMeshTargets (Group &meshBodies, LAMBDA &&lambda) const |
Loop over the target discretization on all mesh targets and apply callback. More... | |
string | getDiscretizationName () const |
return the name of the discretization object More... | |
virtual bool | registerCallback (void *func, const std::type_info &funcType) final override |
function to set the value of m_assemblyCallback More... | |
IterationsStatistics & | getIterationStats () |
ConvergenceStatistics & | getConvergenceStats () |
SolverStatistics & | getSolverStatistics () |
accessor for the solver statistics. More... | |
SolverStatistics const & | getSolverStatistics () const |
const accessor for the solver statistics. More... | |
map< std::pair< string, string >, string_array > const & | getMeshTargets () const |
accessor for m_meshTargets More... | |
![]() | |
ExecutableGroup ()=delete | |
deleted default constructor | |
ExecutableGroup (ExecutableGroup const &)=delete | |
deleted copy constructor | |
ExecutableGroup (ExecutableGroup &&)=default | |
default move constructor | |
ExecutableGroup & | operator= (ExecutableGroup const &)=delete |
deleted assignment operator | |
ExecutableGroup & | operator= (ExecutableGroup &&)=delete |
deleted move operator | |
virtual | ~ExecutableGroup () override=default |
Default destructor for the ExecutableGroup. | |
virtual void | signalToPrepareForExecution (real64 const time_n, real64 const dt, integer const cycle, DomainPartition &domain) |
Inform the object that it expects to execute during the next timestep. More... | |
void | setTimesteppingBehavior (TimesteppingBehavior const timesteppingBehavior) |
Set the timestep behavior for a target. More... | |
TimesteppingBehavior | getTimesteppingBehavior () const |
Get the target's time step behavior. More... | |
![]() | |
template<typename LOG_LEVEL_INFO > | |
std::enable_if_t< geos::is_log_level_info< LOG_LEVEL_INFO >, void > | addLogLevel () |
Append a levelCondition and a log description to the description of the wrapped object given a log info struct. Must be called in constructor. More... | |
virtual void | reinit () |
Performs re-initialization of certain variable depending on the solver being used. | |
Group (string const &name, Group *const parent) | |
Constructor. More... | |
Group (string const &name, conduit::Node &rootNode) | |
Constructor. More... | |
Group (Group &&source)=default | |
Move constructor. More... | |
virtual | ~Group () |
Destructor, deletes all Groups and Wrappers owned by this Group. | |
Group ()=delete | |
Deleted default constructor. | |
Group (Group const &)=delete | |
Deleted copy constructor. | |
Group & | operator= (Group const &)=delete |
Deleted copy assignment operator. More... | |
Group & | operator= (Group &&)=delete |
Deleted move assignment operator. More... | |
void | printDataHierarchy (integer indent=0) const |
Prints the data hierarchy recursively. More... | |
string | dumpInputOptions () const |
string | dumpSubGroupsNames () const |
string | dumpWrappersNames () const |
template<typename T = Group> | |
T & | registerGroup (string const &name, std::unique_ptr< T > newObject) |
Register a new Group as a sub-group of current Group. More... | |
template<typename T = Group> | |
T & | registerGroup (string const &name, T *newObject) |
Register a new Group as a sub-group of current Group. More... | |
template<typename T = Group> | |
T & | registerGroup (string const &name) |
Register a new Group as a sub-group of current Group. More... | |
template<typename T = Group> | |
T & | registerGroup (subGroupMap::KeyIndex const &keyIndex) |
Register a new Group as a sub-group of current Group. More... | |
void | deregisterGroup (string const &name) |
Removes a child group from this group. More... | |
template<typename T = Group, typename KEY = void> | |
T * | getGroupPointer (KEY const &key) |
Return a pointer to a sub-group of the current Group. More... | |
template<typename T = Group, typename KEY = void> | |
T const * | getGroupPointer (KEY const &key) const |
Return a pointer to a sub-group of the current Group. More... | |
template<typename T = Group, typename KEY = void> | |
T & | getGroup (KEY const &key) |
Return a reference to a sub-group of the current Group. More... | |
template<typename T = Group, typename KEY = void> | |
T const & | getGroup (KEY const &key) const |
Return a reference to a sub-group of the current Group. More... | |
template<typename T = Group> | |
T & | getGroupByPath (string const &path) |
Retrieve a group from the hierarchy using a path. More... | |
template<typename T = Group> | |
T const & | getGroupByPath (string const &path) const |
Retrieve a group from the hierarchy using a path. More... | |
subGroupMap & | getSubGroups () |
Get the subgroups object. More... | |
subGroupMap const & | getSubGroups () const |
Get the subgroups object. More... | |
localIndex | numSubGroups () const |
return the number of sub groups in this Group More... | |
stdVector< string > | getSubGroupsNames () const |
template<typename T = Group> | |
bool | hasGroup (string const &name) const |
Check whether a sub-group exists. More... | |
template<typename T > | |
bool | hasSubGroupOfType () const |
Check whether a sub-group exists by type. More... | |
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA > | |
void | forSubGroups (LAMBDA &&lambda) |
Apply the given functor to subgroups that can be casted to one of specified types. More... | |
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA > | |
void | forSubGroups (LAMBDA &&lambda) const |
Apply the given functor to subgroups that can be casted to one of specified types. More... | |
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA > | |
void | forSubGroupsIndex (LAMBDA &&lambda) |
Apply the given functor to subgroups that can be casted to one of specified types. More... | |
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA > | |
void | forSubGroupsIndex (LAMBDA &&lambda) const |
Apply the given functor to subgroups that can be casted to one of specified types. More... | |
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LOOKUP_CONTAINER , typename LAMBDA > | |
void | forSubGroups (LOOKUP_CONTAINER const &subGroupKeys, LAMBDA &&lambda) |
Apply the given functor to subgroups that can be casted to one of specified types. More... | |
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LOOKUP_CONTAINER , typename LAMBDA > | |
void | forSubGroups (LOOKUP_CONTAINER const &subGroupKeys, LAMBDA &&lambda) const |
Apply the given functor to subgroups that can be casted to one of specified types. More... | |
template<typename LAMBDA > | |
void | forWrappers (LAMBDA &&lambda) |
Apply the given functor to wrappers. More... | |
template<typename LAMBDA > | |
void | forWrappers (LAMBDA &&lambda) const |
Apply the given functor to wrappers. More... | |
template<typename TYPE , typename ... TYPES, typename LAMBDA > | |
void | forWrappers (LAMBDA &&lambda) |
Apply the given functor to wrappers that can be cast to one of specified types. More... | |
template<typename TYPE , typename ... TYPES, typename LAMBDA > | |
void | forWrappers (LAMBDA &&lambda) const |
Apply the given functor to wrappers that can be cast to one of specified types. More... | |
template<typename T , typename TBASE = T> | |
Wrapper< TBASE > & | registerWrapper (string const &name, wrapperMap::KeyIndex::index_type *const rkey=nullptr) |
Create and register a Wrapper around a new object. More... | |
template<typename T , typename TBASE = T> | |
Wrapper< TBASE > & | registerWrapper (Group::wrapperMap::KeyIndex const &viewKey) |
Create and register a Wrapper around a new object. More... | |
template<typename T > | |
Wrapper< T > & | registerWrapper (string const &name, std::unique_ptr< T > newObject) |
Register a Wrapper around a given object and take ownership. More... | |
template<typename T > | |
Wrapper< T > & | registerWrapper (string const &name, T *newObject) |
Register a Wrapper around an existing object, does not take ownership of the object. More... | |
WrapperBase & | registerWrapper (std::unique_ptr< WrapperBase > wrapper) |
Register and take ownership of an existing Wrapper. More... | |
void | deregisterWrapper (string const &name) |
Removes a Wrapper from this group. More... | |
void | generateDataStructureSkeleton (integer const level) |
Build a complete datastructure for schema generation. More... | |
virtual void | expandObjectCatalogs () |
Expand any catalogs in the data structure. | |
virtual void | setSchemaDeviations (xmlWrapper::xmlNode schemaRoot, xmlWrapper::xmlNode schemaParent, integer documentationType) |
Inform the schema generator of any deviations between the xml and GEOS data structures. More... | |
virtual void | registerDataOnMeshRecursive (Group &meshBodies) |
Calls RegisterDataOnMesh() recursively. More... | |
virtual localIndex | packSize (string_array const &wrapperNames, integer const recursive, bool onDevice, parallelDeviceEvents &events) const |
Get the size required to pack a list of wrappers. More... | |
virtual localIndex | packSize (string_array const &wrapperNames, arrayView1d< localIndex const > const &packList, integer const recursive, bool onDevice, parallelDeviceEvents &events) const |
Get the size required to pack a list of indices within a list of wrappers. More... | |
localIndex | packSize (arrayView1d< localIndex const > const &packList, integer const recursive, bool onDevice, parallelDeviceEvents &events) const |
Get the size required to pack a list of indices for all registered wrappers. More... | |
virtual localIndex | pack (buffer_unit_type *&buffer, string_array const &wrapperNames, integer const recursive, bool onDevice, parallelDeviceEvents &events) const |
Pack a list of wrappers to a buffer. More... | |
virtual localIndex | pack (buffer_unit_type *&buffer, string_array const &wrapperNames, arrayView1d< localIndex const > const &packList, integer const recursive, bool onDevice, parallelDeviceEvents &events) const |
Pack a list of indices within a list of wrappers. More... | |
localIndex | pack (buffer_unit_type *&buffer, arrayView1d< localIndex const > const &packList, integer const recursive, bool onDevice, parallelDeviceEvents &events) const |
Pack a list of indices for all registered wrappers. More... | |
virtual localIndex | unpack (buffer_unit_type const *&buffer, arrayView1d< localIndex > &packList, integer const recursive, bool onDevice, parallelDeviceEvents &events, MPI_Op op=MPI_REPLACE) |
Unpack a buffer. More... | |
template<typename KEY > | |
WrapperBase const & | getWrapperBase (KEY const &key) const |
Return a reference to a WrapperBase stored in this group. More... | |
template<typename KEY > | |
WrapperBase & | getWrapperBase (KEY const &key) |
Return a reference to a WrapperBase stored in this group. More... | |
indexType | getWrapperIndex (string const &name) const |
wrapperMap const & | wrappers () const |
Get access to the internal wrapper storage. More... | |
wrapperMap & | wrappers () |
Get access to the internal wrapper storage. More... | |
indexType | numWrappers () const |
Return the number of wrappers. More... | |
stdVector< string > | getWrappersNames () const |
template<typename LOOKUP_TYPE > | |
bool | hasWrapper (LOOKUP_TYPE const &lookup) const |
Check if a wrapper exists. More... | |
template<typename T , typename LOOKUP_TYPE > | |
Wrapper< T > const & | getWrapper (LOOKUP_TYPE const &index) const |
Retrieve a Wrapper stored in this group. More... | |
template<typename T , typename LOOKUP_TYPE > | |
Wrapper< T > & | getWrapper (LOOKUP_TYPE const &index) |
Retrieve a Wrapper stored in this group. More... | |
template<typename T , typename LOOKUP_TYPE > | |
Wrapper< T > const * | getWrapperPointer (LOOKUP_TYPE const &index) const |
Retrieve a Wrapper stored in this group. More... | |
template<typename T , typename LOOKUP_TYPE > | |
Wrapper< T > * | getWrapperPointer (LOOKUP_TYPE const &index) |
Retrieve a Wrapper stored in this group. More... | |
template<typename T , typename LOOKUP_TYPE > | |
GEOS_DECLTYPE_AUTO_RETURN | getReference (LOOKUP_TYPE const &lookup) const |
Look up a wrapper and get reference to wrapped object. More... | |
template<typename T , typename LOOKUP_TYPE > | |
T & | getReference (LOOKUP_TYPE const &lookup) |
Look up a wrapper and get reference to wrapped object. More... | |
virtual void | resize (localIndex const newSize) |
Resize the group and all contained wrappers that resize with parent. More... | |
virtual void | reserve (indexType const newsize) |
Set the new capacity and reserve it in all wrappers that resize with parent. More... | |
localIndex | capacity () const |
Get the "capacity" of the group, which determines the capacity of resizable wrappers. More... | |
localIndex | size () const |
Get the "size" of the group, which determines the number of elements in resizable wrappers. More... | |
string const & | getName () const |
Get group name. More... | |
string | getPath () const |
Return the path of this Group in the data repository. Starts with '/' followed by the hierarchy of the children of the "Problem" in which the Group is. More... | |
DataContext const & | getDataContext () const |
template<typename KEY > | |
DataContext const & | getWrapperDataContext (KEY key) const |
Group & | getParent () |
Access the group's parent. More... | |
Group const & | getParent () const |
Access the group's parent. More... | |
bool | hasParent () const |
localIndex | getIndexInParent () const |
Get the group's index within its parent group. More... | |
localIndex | getSubGroupIndex (keyType const &key) const |
Get the index of a sub-Group within this group. More... | |
int | sizedFromParent () const |
Check whether this Group is resized when its parent is resized. More... | |
Group & | setSizedFromParent (int val) |
Set whether this wrapper is resized when its parent is resized. More... | |
RestartFlags | getRestartFlags () const |
Get flags that control restart output of this group. More... | |
void | setRestartFlags (RestartFlags flags) |
Set flags that control restart output of this group. More... | |
InputFlags | getInputFlags () const |
Get input flags for schema generation. More... | |
void | setInputFlags (InputFlags flags) |
Set input flags for schema generation. More... | |
conduit::Node & | getConduitNode () |
Return the Conduit node object associated with this group. More... | |
conduit::Node const & | getConduitNode () const |
Return the Conduit node object associated with this group. More... | |
void | prepareToWrite () |
Register the group and its wrappers with Conduit. | |
void | finishWriting () |
Write the group and its wrappers into Conduit. | |
void | loadFromConduit () |
Read the group and its wrappers from Conduit. | |
void | setLogLevel (integer const logLevel) |
Set verbosity level. More... | |
integer | getLogLevel () const |
void | initialize () |
Run initialization functions on this and all subgroups. More... | |
virtual void | initializationOrder (string_array &order) |
Sets the initialization order for sub-Groups. More... | |
void | initializePostInitialConditions () |
Initialization routine to be called after calling ApplyInitialConditions(). More... | |
void | postRestartInitializationRecursive () |
Initialization routine to be called after calling reading a restart file. More... | |
void | processInputFileRecursive (xmlWrapper::xmlDocument &xmlDocument, xmlWrapper::xmlNode &targetNode) |
Recursively read values using ProcessInputFile() from the input file and put them into the wrapped values for this group. Also add the includes content to the xmlDocument when Include nodes are encountered. More... | |
void | processInputFileRecursive (xmlWrapper::xmlDocument &xmlDocument, xmlWrapper::xmlNode &targetNode, xmlWrapper::xmlNodePos const &targetNodePos) |
Same as processInputFileRecursive(xmlWrapper::xmlDocument &, xmlWrapper::xmlNode &) but allow to reuse an existing xmlNodePos. More... | |
void | postInputInitializationRecursive () |
Recursively call postInputInitialization() to apply post processing after reading input values. | |
Static Public Member Functions | |
static CatalogInterface::CatalogType & | getCatalog () |
Get the singleton catalog for PhysicsSolverBase. More... | |
![]() | |
template<typename T0 , typename T1 , typename ... CASTTYPES, typename CONTAINERTYPE , typename LAMBDA > | |
static bool | applyLambdaToContainer (CONTAINERTYPE &container, LAMBDA &&lambda) |
Apply a given functor to a container if the container can be cast to one of the specified types. More... | |
static CatalogInterface::CatalogType & | getCatalog () |
Get the singleton catalog for this Group. More... | |
static string | processInputName (xmlWrapper::xmlNode const &targetNode, xmlWrapper::xmlNodePos const &targetNodePos, string_view parentNodeName, xmlWrapper::xmlNodePos const &parentNodePos, std::set< string > &siblingNames) |
Protected Member Functions | |
virtual void | postInputInitialization () override |
real64 | eisenstatWalker (real64 const newNewtonNorm, real64 const oldNewtonNorm, LinearSolverParameters::Krylov const &krylovParams) |
Eisenstat-Walker adaptive tolerance. More... | |
template<typename CONSTITUTIVE > | |
void | setConstitutiveName (ElementSubRegionBase &subRegion, string const &wrapperName, string const &constitutiveType) const |
Register wrapper with given name and store constitutive model name on the subregion. More... | |
virtual void | setConstitutiveNamesCallSuper (ElementSubRegionBase &subRegion) const |
This function sets constitutive name fields on an ElementSubRegionBase, and calls the base function it overrides. More... | |
![]() | |
virtual void | initializePreSubGroups () |
Called by Initialize() prior to initializing sub-Groups. | |
virtual void | initializePostSubGroups () |
Called by Initialize() after to initializing sub-Groups. | |
virtual void | initializePostInitialConditionsPreSubGroups () |
Called by InitializePostInitialConditions() prior to initializing sub-Groups. | |
virtual void | initializePostInitialConditionsPostSubGroups () |
Called by InitializePostInitialConditions() after to initializing sub-Groups. | |
virtual void | postRestartInitialization () |
Performs initialization required after reading from a restart file. | |
Static Protected Member Functions | |
template<typename CONSTITUTIVE_BASE_TYPE > | |
static string | getConstitutiveName (ElementSubRegionBase const &subRegion) |
Get the Constitutive Name object. More... | |
template<typename CONSTITUTIVE_BASE_TYPE > | |
static string | getConstitutiveName (ParticleSubRegionBase const &subRegion) |
Get the Constitutive Name object. More... | |
template<typename BASETYPE = constitutive::ConstitutiveBase, typename LOOKUP_TYPE > | |
static BASETYPE const & | getConstitutiveModel (dataRepository::Group const &dataGroup, LOOKUP_TYPE const &key) |
Get the Constitutive Model object. More... | |
template<typename BASETYPE = constitutive::ConstitutiveBase, typename LOOKUP_TYPE > | |
static BASETYPE & | getConstitutiveModel (dataRepository::Group &dataGroup, LOOKUP_TYPE const &key) |
Get the Constitutive Model object. More... | |
template<typename CONSTITUTIVE_TYPE > | |
static CONSTITUTIVE_TYPE & | getConstitutiveModel (ElementSubRegionBase &subRegion) |
Get the Constitutive Model object. More... | |
Protected Attributes | |
real64 | m_cflFactor |
Courant–Friedrichs–Lewy factor for the timestep. | |
real64 | m_nextDt |
timestep of the next cycle | |
integer | m_allowNonConvergedLinearSolverSolution |
behavior in case of linear solver failure | |
integer | m_numTimestepsSinceLastDtCut |
Number of cycles since last timestep cut. | |
string | m_discretizationName |
name of the FV discretization object in the data repository | |
DofManager | m_dofManager |
Data structure to handle degrees of freedom. | |
ParallelMatrix | m_matrix |
System matrix. | |
ParallelVector | m_rhs |
System right-hand side vector. | |
ParallelVector | m_solution |
System solution vector. | |
ParallelVector | m_scaling |
Diagonal scaling vector D (Ahat = D * A * D, bhat = D * b, x = D * xhat) | |
integer | m_usePhysicsScaling |
Flag to decide whether to apply physics-based scaling to the linear system. | |
CRSMatrix< real64, globalIndex > | m_localMatrix |
Local system matrix and rhs. | |
std::unique_ptr< LinearSolverBase< LAInterface > > | m_linearSolver |
Custom linear solver for the "native" solver type. | |
std::unique_ptr< PreconditionerBase< LAInterface > > | m_precond |
Custom preconditioner for the "native" iterative solver. | |
integer | m_writeLinearSystem |
flag for debug output of matrix, rhs, and solution | |
integer | m_writeStatisticsCSV |
LinearSolverParametersInput | m_linearSolverParameters |
Linear solver parameters. | |
LinearSolverResult | m_linearSolverResult |
Result of the last linear solver. | |
NonlinearSolverParameters | m_nonlinearSolverParameters |
Nonlinear solver parameters. | |
SolverStatistics | m_solverStatistics |
Solver statistics. | |
Timestamp | m_systemSetupTimestamp |
Timestamp of the last call to setup system. | |
std::function< void(CRSMatrix< real64, globalIndex >, array1d< real64 >) > | m_assemblyCallback |
Callback function for assembly step. | |
std::map< std::string, std::chrono::system_clock::duration > | m_timers |
Timers for the aggregate profiling of the solver. | |
Base class for all physics solvers.
This class provides the base interface for all physics solvers. It provides the basic functionality for setting up and solving a linear system, as well as the interface for performing a timestep.
Definition at line 51 of file PhysicsSolverBase.hpp.
Constructor for PhysicsSolverBase.
name | the name of this instantiation of PhysicsSolverBase |
parent | the parent group of this instantiation of PhysicsSolverBase |
|
virtual |
Check if the solution increments are ok to use.
domain | the domain partition |
Reimplemented in geos::CoupledSolver< SOLVERS >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SolidMechanicsLagrangianFEM, PhaseFieldDamageFEM >, geos::CoupledSolver< ProppantTransport, FlowSolverBase >, geos::CoupledSolver< RESERVOIR_SOLVER, WELL_SOLVER >, geos::CoupledSolver< CompositionalMultiphaseBase, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangeContactBubbleStab >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::CoupledSolver< FLOW_SOLVER, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SinglePhasePoromechanics< SinglePhaseBase >, PhaseFieldDamageFEM >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangeContact >, geos::FlowSolverBase, and geos::CompositionalMultiphaseBase.
|
overridevirtual |
Called as the code exits the main run loop.
[in] | time_n | current time level |
[in] | cycleNumber | global cycle number |
[in] | eventCounter | index of event that triggered execution |
[in] | eventProgress | fractional progress in current cycle |
[in,out] | domain | the physical domain |
Reimplemented from geos::ExecutableGroup.
Reimplemented in geos::ElasticWaveEquationSEM, geos::ElasticFirstOrderWaveEquationSEM, geos::AcousticElasticWaveEquationSEM, geos::AcousticWaveEquationSEM, geos::AcousticVTIWaveEquationSEM, geos::AcousticFirstOrderWaveEquationSEM, geos::AcousticWaveEquationDG, geos::CoupledSolver< SOLVERS >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SolidMechanicsLagrangianFEM, PhaseFieldDamageFEM >, geos::CoupledSolver< ProppantTransport, FlowSolverBase >, geos::CoupledSolver< RESERVOIR_SOLVER, WELL_SOLVER >, geos::CoupledSolver< CompositionalMultiphaseBase, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangeContactBubbleStab >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::CoupledSolver< FLOW_SOLVER, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SinglePhasePoromechanics< SinglePhaseBase >, PhaseFieldDamageFEM >, and geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangeContact >.
|
overridevirtual |
creates a child group of of this PhysicsSolverBase instantiation
childKey | the key of the child type |
childName | the name of the child |
Reimplemented from geos::dataRepository::Group.
Reimplemented in geos::WellSolverBase.
|
protected |
Eisenstat-Walker adaptive tolerance.
This method enables an inexact-Newton method is which the linear solver tolerance is chosen based on the nonlinear solver convergence behavior. In early Newton iterations, the search direction is usually imprecise, and therefore a weak linear convergence tolerance can be chosen to minimize computational cost. As the search gets closer to the true solution, however, more stringent linear tolerances are necessary to maintain quadratic convergence behavior.
The user can set the weakest tolerance allowed, with a default of 1e-3. Even weaker values (e.g. 1e-2,1e-1) can be used for further speedup, but may occasionally cause convergence problems. Use this parameter with caution. The most stringent tolerance is hardcoded to 1e-8, which is sufficient for most problems.
See Eisenstat, S.C. and Walker, H.F., 1996. Choosing the forcing terms in an inexact Newton method. SIAM Journal on Scientific Computing, 17(1), pp.16-32.
newNewtonNorm | Residual norm at current iteration |
oldNewtonNorm | Residual norm at previous iteration |
krylovParams | Linear solver parameters |
|
overridevirtual |
Main extension point of executable targets.
[in] | time_n | current time level |
[in] | dt | time step to be taken |
[in] | cycleNumber | global cycle number |
[in] | eventCounter | index of event that triggered execution |
[in] | eventProgress | fractional progress in current cycle |
[in,out] | domain | the physical domain up-casted to a Group. |
If the start criteria are satisfied, then the event manager will call this method.
Implements geos::ExecutableGroup.
Reimplemented in geos::SolidMechanicsMPM.
|
inline |
Loop over the target discretization on all mesh targets and apply callback.
LAMBDA | The callback function type |
meshBodies | The group of MeshBodies |
lambda | The callback function. Takes the name of the meshBody, reference to the MeshLevel, and a list of regionNames. |
Definition at line 880 of file PhysicsSolverBase.hpp.
|
inline |
Loop over the target discretization on all mesh targets and apply callback.
LAMBDA | The callback function type |
meshBodies | The group of MeshBodies |
lambda | The callback function. Takes the name of the meshBody, reference to the MeshLevel, and a list of regionNames. |
Definition at line 854 of file PhysicsSolverBase.hpp.
void geos::PhysicsSolverBase::generateMeshTargetsFromTargetRegions | ( | Group const & | meshBodies | ) |
Generate mesh targets from target regions.
meshBodies | the group of mesh bodies |
|
static |
Get the singleton catalog for PhysicsSolverBase.
|
pure virtual |
Implemented in geos::ElasticWaveEquationSEM, geos::ElasticFirstOrderWaveEquationSEM, geos::AcousticElasticWaveEquationSEM, geos::AcousticWaveEquationSEM, geos::AcousticVTIWaveEquationSEM, geos::AcousticFirstOrderWaveEquationSEM, geos::AcousticWaveEquationDG, geos::SurfaceGenerator, geos::EmbeddedSurfaceGenerator, geos::SolidMechanicsMPM, geos::SolidMechanicsLagrangianFEM, geos::SolidMechanicsPenaltyContact, geos::SolidMechanicsLagrangeContactBubbleStab, geos::SolidMechanicsLagrangeContact, geos::SolidMechanicsEmbeddedFractures, geos::SolidMechanicsAugmentedLagrangianContact, geos::PhaseFieldDamageFEM, geos::LaplaceFEM, geos::SinglePhaseReservoirAndWells< RESERVOIR_SOLVER >, geos::SinglePhasePoromechanicsEmbeddedFractures, geos::SinglePhasePoromechanicsConformingFractures< FLOW_SOLVER >, geos::SinglePhasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >, geos::SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsLagrangeContact >, geos::PhaseFieldPoromechanicsSolver, geos::PhaseFieldFractureSolver, geos::OneWayCoupledFractureFlowContactMechanics< FLOW_SOLVER >, geos::MultiphasePoromechanicsConformingFractures< FLOW_SOLVER >, geos::MultiphasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >, geos::MultiphasePoromechanics< CompositionalMultiphaseBase, SolidMechanicsLagrangeContact >, geos::HydrofractureSolver< POROMECHANICS_SOLVER >, geos::FlowProppantTransportSolver, geos::CompositionalMultiphaseReservoirAndWells< RESERVOIR_SOLVER >, geos::SpringSlider< RSSOLVER_TYPE >, geos::SeismicityRate, geos::QuasiDynamicEarthQuake< RSSOLVER_TYPE >, geos::SinglePhaseWell, geos::CompositionalMultiphaseWell, geos::SinglePhaseHybridFVM, geos::SinglePhaseFVM< BASE >, geos::ReactiveCompositionalMultiphaseOBL, geos::ProppantTransport, geos::ImmiscibleMultiphaseFlow, geos::CompositionalMultiphaseHybridFVM, and geos::CompositionalMultiphaseFVM.
|
inlinestaticprotected |
Get the Constitutive Model object.
BASETYPE | the base type of the constitutive model. |
LOOKUP_TYPE | the type of the key used to look up the constitutive model. |
dataGroup | the data group containing the constitutive models. |
key | the key used to look up the constitutive model. |
BASETYPE
registered on the dataGroup
with the key key
. Definition at line 1055 of file PhysicsSolverBase.hpp.
|
inlinestaticprotected |
Get the Constitutive Model object.
BASETYPE | the base type of the constitutive model. |
LOOKUP_TYPE | the type of the key used to look up the constitutive model. |
dataGroup | the data group containing the constitutive models. |
key | the key used to look up the constitutive model. |
BASETYPE
registered on the dataGroup
with the key key
. Definition at line 1040 of file PhysicsSolverBase.hpp.
|
inlinestaticprotected |
Get the Constitutive Model object.
CONSTITUTIVE_TYPE | the base type of the constitutive model. |
subRegion | the element subregion on which the constitutive model is registered. |
CONSTITUTIVE_TYPE
registered on the subRegion
. Definition at line 1068 of file PhysicsSolverBase.hpp.
|
staticprotected |
Get the Constitutive Name object.
CONSTITUTIVE_BASE_TYPE | the base type of the constitutive model. |
subRegion | the element subregion on which the constitutive model is registered |
Definition at line 1184 of file PhysicsSolverBase.hpp.
|
staticprotected |
Get the Constitutive Name object.
CONSTITUTIVE_BASE_TYPE | the base type of the constitutive model. |
subRegion | the particle subregion on which the constitutive model is registered |
Definition at line 1199 of file PhysicsSolverBase.hpp.
|
inline |
Definition at line 925 of file PhysicsSolverBase.hpp.
|
inline |
return the name of the discretization object
Definition at line 902 of file PhysicsSolverBase.hpp.
|
inline |
Getter for degree-of-freedom manager.
Definition at line 175 of file PhysicsSolverBase.hpp.
|
inline |
Getter for degree-of-freedom manager.
Definition at line 181 of file PhysicsSolverBase.hpp.
|
inline |
Definition at line 918 of file PhysicsSolverBase.hpp.
|
inline |
accessor for the linear solver parameters.
Definition at line 793 of file PhysicsSolverBase.hpp.
|
inline |
const accessor for the linear solver parameters.
Definition at line 802 of file PhysicsSolverBase.hpp.
|
inline |
Getter for local matrix.
Definition at line 187 of file PhysicsSolverBase.hpp.
|
inline |
Getter for local matrix.
Definition at line 193 of file PhysicsSolverBase.hpp.
Timestamp geos::PhysicsSolverBase::getMeshModificationTimestamp | ( | DomainPartition & | domain | ) | const |
getter for the timestamp of the mesh modification on the mesh levels
[in] | domain | the domain partition (cannot be const because we use forDiscretizationsInMeshTargets inside the function) |
|
inline |
accessor for m_meshTargets
Definition at line 954 of file PhysicsSolverBase.hpp.
|
inline |
accessor for the nonlinear solver parameters.
Definition at line 811 of file PhysicsSolverBase.hpp.
|
inline |
const accessor for the nonlinear solver parameters.
Definition at line 820 of file PhysicsSolverBase.hpp.
|
inline |
accessor for the solver statistics.
Definition at line 934 of file PhysicsSolverBase.hpp.
|
inline |
const accessor for the solver statistics.
Definition at line 940 of file PhysicsSolverBase.hpp.
|
inline |
Getter for system matrix.
Definition at line 139 of file PhysicsSolverBase.hpp.
|
inline |
Getter for system rhs vector.
Definition at line 145 of file PhysicsSolverBase.hpp.
|
inline |
Getter for system rhs vector.
Definition at line 151 of file PhysicsSolverBase.hpp.
|
inline |
Getter for system rhs vector.
Definition at line 157 of file PhysicsSolverBase.hpp.
|
inline |
getter for the timestamp of the system setup
Definition at line 751 of file PhysicsSolverBase.hpp.
|
inline |
Getter for system solution vector.
Definition at line 163 of file PhysicsSolverBase.hpp.
|
inline |
Getter for system solution vector.
Definition at line 169 of file PhysicsSolverBase.hpp.
|
inline |
return the list of target regions
Definition at line 843 of file PhysicsSolverBase.hpp.
|
inline |
getter for the next timestep size
Definition at line 674 of file PhysicsSolverBase.hpp.
R1Tensor const geos::PhysicsSolverBase::gravityVector | ( | ) | const |
return the value of the gravity vector specified in PhysicsSolverManager
|
overrideprotectedvirtual |
This function provides capability to post process input values prior to any other initialization operations.
Reimplemented from geos::dataRepository::Group.
Reimplemented in geos::ElasticWaveEquationSEM, geos::ElasticFirstOrderWaveEquationSEM, geos::CoupledWaveSolver< SOLVERS >, geos::CoupledWaveSolver< AcousticWaveEquationSEM, ElasticWaveEquationSEM >, geos::AcousticWaveEquationSEM, geos::AcousticVTIWaveEquationSEM, geos::AcousticFirstOrderWaveEquationSEM, geos::AcousticWaveEquationDG, geos::SurfaceGenerator, geos::SolidMechanicsMPM, geos::SolidMechanicsLagrangeContact, geos::SolidMechanicsEmbeddedFractures, geos::PhaseFieldDamageFEM, geos::SinglePhasePoromechanicsEmbeddedFractures, geos::PhaseFieldPoromechanicsSolver, geos::PhaseFieldFractureSolver, geos::OneWayCoupledFractureFlowContactMechanics< FLOW_SOLVER >, geos::HydrofractureSolver< POROMECHANICS_SOLVER >, geos::QuasiDynamicEarthQuake< RSSOLVER_TYPE >, geos::WaveSolverBase, geos::SolidMechanicsLagrangianFEM, geos::ContactSolverBase, geos::SinglePhasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >, geos::SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsLagrangeContact >, geos::PoromechanicsSolver< FLOW_SOLVER, MECHANICS_SOLVER >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsLagrangianFEM >, geos::PoromechanicsSolver< CompositionalMultiphaseBase, SolidMechanicsLagrangianFEM >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsLagrangeContact >, geos::MultiphasePoromechanicsConformingFractures< FLOW_SOLVER >, geos::MultiphasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >, geos::MultiphasePoromechanics< CompositionalMultiphaseBase, SolidMechanicsLagrangeContact >, geos::CoupledSolver< SOLVERS >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SolidMechanicsLagrangianFEM, PhaseFieldDamageFEM >, geos::CoupledSolver< ProppantTransport, FlowSolverBase >, geos::CoupledSolver< RESERVOIR_SOLVER, WELL_SOLVER >, geos::CoupledSolver< CompositionalMultiphaseBase, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangeContactBubbleStab >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::CoupledSolver< FLOW_SOLVER, SolidMechanicsLagrangianFEM >, geos::CoupledSolver< SinglePhasePoromechanics< SinglePhaseBase >, PhaseFieldDamageFEM >, geos::CoupledSolver< SinglePhaseBase, SolidMechanicsLagrangeContact >, geos::CoupledReservoirAndWellsBase< RESERVOIR_SOLVER, WELL_SOLVER >, geos::CoupledReservoirAndWellsBase< SinglePhaseBase, SinglePhaseWell >, geos::CoupledReservoirAndWellsBase< CompositionalMultiphaseBase, CompositionalMultiphaseWell >, geos::SeismicityRate, geos::WellSolverBase, geos::CompositionalMultiphaseWell, geos::ProppantTransport, geos::CompositionalMultiphaseFVM, and geos::CompositionalMultiphaseBase.
|
finaloverridevirtual |
function to set the value of m_assemblyCallback
func | the function to set m_assemblyCallback to |
funcType | the type of the function |
This is used to provide a callback function for to be called in the assembly step.
Reimplemented from geos::dataRepository::Group.
|
overridevirtual |
Register wrappers that contain data on the mesh objects.
MeshBodies | the group of mesh bodies |
Reimplemented from geos::dataRepository::Group.
Reimplemented in geos::SurfaceGenerator, geos::EmbeddedSurfaceGenerator, geos::ElasticWaveEquationSEM, geos::ElasticFirstOrderWaveEquationSEM, geos::AcousticElasticWaveEquationSEM, geos::AcousticWaveEquationSEM, geos::AcousticVTIWaveEquationSEM, geos::AcousticFirstOrderWaveEquationSEM, geos::AcousticWaveEquationDG, geos::SolidMechanicsMPM, geos::SolidMechanicsLagrangeContactBubbleStab, geos::SolidMechanicsLagrangeContact, geos::PhaseFieldDamageFEM, geos::LaplaceBaseH1, geos::HydrofractureSolver< POROMECHANICS_SOLVER >, geos::ImmiscibleMultiphaseFlow, geos::WaveSolverBase, geos::SolidMechanicsLagrangianFEM, geos::SeismicityRate, geos::QDRateAndStateBase, geos::ExplicitQDRateAndState, geos::WellSolverBase, geos::SinglePhaseWell, geos::CompositionalMultiphaseWell, geos::SinglePhaseHybridFVM, geos::SinglePhaseBase, geos::ReactiveCompositionalMultiphaseOBL, geos::ProppantTransport, geos::FlowSolverBase, geos::CompositionalMultiphaseHybridFVM, geos::CompositionalMultiphaseFVM, geos::CompositionalMultiphaseBase, geos::SolidMechanicsEmbeddedFractures, geos::SolidMechanicsAugmentedLagrangianContact, geos::SinglePhasePoromechanicsEmbeddedFractures, geos::ContactSolverBase, geos::PoromechanicsSolver< FLOW_SOLVER, MECHANICS_SOLVER >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsLagrangianFEM >, geos::PoromechanicsSolver< CompositionalMultiphaseBase, SolidMechanicsLagrangianFEM >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsLagrangeContact >, and geos::SpringSlider< RSSOLVER_TYPE >.
|
virtual |
Save the state of the solver for sequential iteration.
domain | the domain partition |
Reimplemented in geos::CompositionalMultiphaseBase, geos::SolidMechanicsLagrangianFEM, geos::PhaseFieldDamageFEM, geos::CoupledReservoirAndWellsBase< RESERVOIR_SOLVER, WELL_SOLVER >, geos::CoupledReservoirAndWellsBase< SinglePhaseBase, SinglePhaseWell >, geos::CoupledReservoirAndWellsBase< CompositionalMultiphaseBase, CompositionalMultiphaseWell >, and geos::FlowSolverBase.
|
protected |
Register wrapper with given name and store constitutive model name on the subregion.
CONSTITUTIVE | the base type of the constitutive model. |
subRegion | the subregion on which the constitutive model is registered. |
wrapperName | the wrapper name to register. |
constitutiveType | the type description of the constitutive model. |
Definition at line 1213 of file PhysicsSolverBase.hpp.
|
inlineprotectedvirtual |
This function sets constitutive name fields on an ElementSubRegionBase, and calls the base function it overrides.
subRegion | The ElementSubRegionBase that will have constitutive names set. |
Reimplemented in geos::ContactSolverBase, geos::PoromechanicsSolver< FLOW_SOLVER, MECHANICS_SOLVER >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsLagrangianFEM >, geos::PoromechanicsSolver< CompositionalMultiphaseBase, SolidMechanicsLagrangianFEM >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsEmbeddedFractures >, geos::PoromechanicsSolver< SinglePhaseBase, SolidMechanicsLagrangeContact >, geos::SolidMechanicsLagrangianFEM, and geos::FlowSolverBase.
Definition at line 1028 of file PhysicsSolverBase.hpp.
|
inline |
set the timestamp of the system setup
[in] | timestamp | the new timestamp of system setup |
Definition at line 764 of file PhysicsSolverBase.hpp.
localIndex geos::PhysicsSolverBase::targetRegionIndex | ( | string const & | regionName | ) | const |
Get position of a given region within solver's target region list.
regionName | the region name to find |
|
protected |
When set to 1 output to log iterations information When set to 2 additionnaly output csv files containing iterations & convergence information
Definition at line 1120 of file PhysicsSolverBase.hpp.