19 #ifndef GEOS_PHYSICSSOLVERS_SURFACEGENERATION_SURFACEGENERATOR_HPP_
20 #define GEOS_PHYSICSSOLVERS_SURFACEGENERATION_SURFACEGENERATOR_HPP_
22 #include "mesh/mpiCommunications/NeighborCommunicator.hpp"
31 std::set< localIndex > newNodes;
32 std::set< localIndex > newEdges;
33 std::set< localIndex > newFaces;
34 std::set< localIndex > modifiedNodes;
35 std::set< localIndex > modifiedEdges;
36 std::set< localIndex > modifiedFaces;
40 void clearNewFromModified();
46 class SpatialPartition;
64 Group *
const parent );
68 static string catalogName() {
return "SurfaceGenerator"; }
83 virtual bool execute(
real64 const time_n,
101 inline string const getFractureRegionName()
const {
return m_fractureRegionName; }
114 std::vector< NeighborCommunicator > & neighbors,
116 int const numTileColors,
152 bool const prefrac );
173 real64 ( &vecTipNorm )[3],
211 real64 ( &vecTipNorm )[3],
214 bool threeNodesPinched,
230 void markRuptureFaceFromEdge(
localIndex const edgeID,
236 real64 ( &vecTipNorm )[3],
239 int const edgeMode );
250 void markRuptureFaceFromNode(
localIndex const nodeIndex,
266 void postUpdateRuptureStates(
NodeManager const & nodeManager,
270 std::vector< std::
set<
localIndex > > & nodesToRupturedFaces,
271 std::vector< std::
set<
localIndex > > & edgesToRupturedFaces );
292 int checkEdgeSplitability(
localIndex const edgeID,
296 const
bool prefrac );
321 std::vector< std::
set<
localIndex > > & nodesToRupturedFaces,
322 std::vector< std::
set<
localIndex > > & edgesToRupturedFaces,
325 const
bool prefrac );
342 bool findFracturePlanes(
localIndex const nodeID,
347 std::vector< std::
set<
localIndex > > const & nodesToRupturedFaces,
348 std::vector< std::
set<
localIndex > > const & edgesToRupturedFaces,
370 void performFracture(
localIndex const nodeID,
377 std::vector< std::
set<
localIndex > > & nodesToRupturedFaces,
378 std::vector< std::
set<
localIndex > > & edgesToRupturedFaces,
384 void mapConsistencyCheck(
localIndex const nodeID,
403 bool setLocations( std::
set<
localIndex > const & separationPathFaces,
426 bool setElemLocations(
int const location,
458 void calculateKinkAngles(
FaceManager const & faceManager,
462 bool const prefrac );
468 void synchronizeTipSets(
FaceManager & faceManager,
511 constexpr
static char const * failCriterionString() {
return "failCriterion"; }
512 constexpr
static char const * solidMaterialNameString() {
return "solidMaterialNames"; }
513 constexpr
static char const * fExternalString() {
return "fExternal"; }
514 constexpr
static char const * tipNodesString() {
return "tipNodes"; }
515 constexpr
static char const * tipEdgesString() {
return "tipEdges"; }
516 constexpr
static char const * tipFacesString() {
return "tipFaces"; }
517 constexpr
static char const * trailingFacesString() {
return "trailingFaces"; }
518 constexpr
static char const * fractureRegionNameString() {
return "fractureRegion"; }
519 constexpr
static char const * mpiCommOrderString() {
return "mpiCommOrder"; }
520 constexpr
static char const * isPoroelasticString() {
return "isPoroelastic";}
524 constexpr
static char const * rockToughnessString() {
return "rockToughness"; }
527 constexpr
static char const * nodeBasedSIFString() {
return "nodeBasedSIF"; }
533 constexpr
static real64 m_nonRuptureTime = 1e9;
574 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 ElementRegionBase is the base class to manage the data stored at the element level.
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.
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.