19 #ifndef GEOS_PHYSICSSOLVERS_SURFACEGENERATION_SURFACEGENERATOR_HPP_
20 #define GEOS_PHYSICSSOLVERS_SURFACEGENERATION_SURFACEGENERATOR_HPP_
22 #include "mesh/mpiCommunications/NeighborCommunicator.hpp"
30 class SpatialPartition;
34 class ElementRegionManager;
35 class ElementRegionBase;
47 Group *
const parent );
51 static string catalogName() {
return "SurfaceGenerator"; }
66 virtual bool execute(
real64 const time_n,
84 inline string const getFractureRegionName()
const {
return m_fractureRegionName; }
97 stdVector< NeighborCommunicator > & neighbors,
99 int const numTileColors,
135 bool const prefrac );
156 real64 ( &vecTipNorm )[3],
194 real64 ( &vecTipNorm )[3],
197 bool threeNodesPinched,
213 void markRuptureFaceFromEdge(
localIndex const edgeID,
219 real64 ( &vecTipNorm )[3],
222 int const edgeMode );
233 void markRuptureFaceFromNode(
localIndex const nodeIndex,
249 void postUpdateRuptureStates(
NodeManager const & nodeManager,
275 int checkEdgeSplitability(
localIndex const edgeID,
279 const
bool prefrac );
308 const
bool prefrac );
325 bool findFracturePlanes(
localIndex const nodeID,
353 void performFracture(
localIndex const nodeID,
367 void mapConsistencyCheck(
localIndex const nodeID,
386 bool setLocations( std::
set<
localIndex > const & separationPathFaces,
409 bool setElemLocations(
int const location,
441 void calculateKinkAngles(
FaceManager const & faceManager,
445 bool const prefrac );
451 void synchronizeTipSets(
FaceManager & faceManager,
490 real64 const (&faceCenter)[3],
491 real64 const initialRockToughness,
492 real64 const toughnessScalingFactor );
499 constexpr
static char const * failCriterionString() {
return "failCriterion"; }
500 constexpr
static char const * solidMaterialNameString() {
return "solidMaterialNames"; }
501 constexpr
static char const * fExternalString() {
return "fExternal"; }
502 constexpr
static char const * tipNodesString() {
return "tipNodes"; }
503 constexpr
static char const * tipEdgesString() {
return "tipEdges"; }
504 constexpr
static char const * tipFacesString() {
return "tipFaces"; }
505 constexpr
static char const * trailingFacesString() {
return "trailingFaces"; }
506 constexpr
static char const * fractureRegionNameString() {
return "fractureRegion"; }
507 constexpr
static char const * mpiCommOrderString() {
return "mpiCommOrder"; }
508 constexpr
static char const * isPoroelasticString() {
return "isPoroelastic";}
512 constexpr
static char const * initialRockToughnessString() {
return "initialRockToughness"; }
513 constexpr
static char const * toughnessScalingFactorString() {
return "toughnessScalingFactor"; }
515 constexpr
static char const * fractureOriginString() {
return "fractureOrigin"; }
518 constexpr
static char const * nodeBasedSIFString() {
return "nodeBasedSIF"; }
524 constexpr
static real64 m_nonRuptureTime = 1e9;
535 real64 m_initialRockToughness;
537 real64 m_toughnessScalingFactor;
569 string m_fractureRegionName;
#define GEOS_UNUSED_PARAM(X)
Mark an unused argument and silence compiler warnings.
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
This class provides an interface to ObjectManagerBase in order to manage edge data.
The ElementRegionManager class provides an interface to ObjectManagerBase in order to manage ElementR...
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data.
The class is used to manage mesh body.
Class facilitating the representation of a multi-level discretization of a MeshBody.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data.
The ObjectManagerBase is the base object of all object managers in the mesh data hierachy.
Base class for all physics solvers.
void postInputInitialization() override final
virtual void initializePostInitialConditionsPreSubGroups() override final
Called by InitializePostInitialConditions() prior to initializing sub-Groups.
virtual void postRestartInitialization() override final
Performs initialization required after reading from a restart file.
string getCatalogName() const override
virtual void registerDataOnMesh(Group &MeshBody) override final
Register wrappers that contain data on the mesh objects.
Base template for ordered and unordered maps.
virtual real64 solverStep(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) override
entry function to perform a solver step
array1d< localIndex > localIndex_array
A 1-dimensional array of geos::localIndex types.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
std::set< T > set
A set of local indices.
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
std::int32_t integer
Signed integer type.
LvArray::SortedArray< T, localIndex, LvArray::ChaiBuffer > SortedArray
A sorted array of local indices.
LvArray::ArrayOfSets< T, INDEX_TYPE, LvArray::ChaiBuffer > ArrayOfSets
Array of variable-sized sets. See LvArray::ArrayOfSets for details.
std::vector< T, Allocator > stdVector
Array< T, 1 > array1d
Alias for 1D array.
LvArray::ArrayOfArrays< T, INDEX_TYPE, LvArray::ChaiBuffer > ArrayOfArrays
Array of variable-sized arrays. See LvArray::ArrayOfArrays for details.