21 #ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_PHASEFIELDFRACTURESOLVER_HPP_
22 #define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_PHASEFIELDFRACTURESOLVER_HPP_
43 Group *
const parent );
53 return "PhaseFieldFracture";
77 return std::get< toUnderlying( SolverType::SolidMechanics ) >(
m_solvers );
86 return std::get< toUnderlying( SolverType::Damage ) >(
m_solvers );
98 template<
typename FE_TYPE >
102 m_numElems( subRegion.
size() )
111 constexpr
localIndex numNodesPerElement = FE_TYPE::numNodes;
112 constexpr
localIndex n_q_points = FE_TYPE::numQuadraturePoints;
116 real64 N[ numNodesPerElement ];
117 FE_TYPE::calcN( q, N );
119 damageFieldOnMaterial( k, q ) = 0;
120 for(
localIndex a = 0; a < numNodesPerElement; ++a )
122 damageFieldOnMaterial( k, q ) += N[a] * nodalDamage[elemToNodes( k, a )];
#define GEOS_HOST_DEVICE
Marks a host-device function.
std::tuple< SOLVERS *... > m_solvers
Pointers of the single-physics solvers.
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
SolidMechanicsLagrangianFEM * solidMechanicsSolver() const
accessor for the pointer to the solid mechanics solver
static string coupledSolverAttributePrefix()
String used to form the solverName used to register solvers in CoupledSolver.
virtual void postInputInitialization() override final
PhaseFieldDamageFEM * damageSolver() const
accessor for the pointer to the flow solver
virtual void initializePostInitialConditionsPreSubGroups() override final
Called by InitializePostInitialConditions() prior to initializing sub-Groups.
virtual void mapSolutionBetweenSolvers(DomainPartition &Domain, integer const idx) override final
Maps the solution obtained from one solver to the fields used by the other solver(s)
string getCatalogName() const override
static string catalogName()
name of the node manager in the object catalog
CRSMatrix< real64, globalIndex > m_localMatrix
Local system matrix and rhs.
DofManager m_dofManager
Data structure to handle degrees of freedom.
ParallelVector m_solution
System solution vector.
ParallelVector m_rhs
System right-hand side vector.
localIndex size() const
Get the "size" of the group, which determines the number of elements in resizable wrappers.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
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.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.