GEOS
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER > Class Template Referenceabstract
Inheritance diagram for geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >:
Inheritance graph
[legend]

Classes

struct  viewKeyStruct
 

Public Types

using Base = POROMECHANICS_BASE< FLOW_SOLVER, SolidMechanicsLagrangeContact >
 

Public Member Functions

 PoromechanicsConformingFractures (const string &name, dataRepository::Group *const parent)
 
virtual void setupCoupling (DomainPartition const &domain, DofManager &dofManager) const override
 
virtual void setupSystem (DomainPartition &domain, DofManager &dofManager, CRSMatrix< real64, globalIndex > &localMatrix, ParallelVector &rhs, ParallelVector &solution, bool const setSparsity=true) override
 
virtual void assembleSystem (real64 const time_n, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
 
virtual void updateState (DomainPartition &domain) override
 

Protected Member Functions

void addTransmissibilityCouplingNNZ (DomainPartition const &domain, DofManager const &dofManager, arrayView1d< localIndex > const &rowLengths) const
 
void addTransmissibilityCouplingPattern (DomainPartition const &domain, DofManager const &dofManager, SparsityPatternView< globalIndex > const &pattern) const
 Set up the Dflux_dApertureMatrix object. More...
 
void setUpDflux_dApertureMatrix (DomainPartition &domain, DofManager const &GEOS_UNUSED_PARAM(dofManager), CRSMatrix< real64, globalIndex > &localMatrix)
 Set up the Dflux_dApertureMatrix object. More...
 
void assembleElementBasedContributions (real64 const time_n, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)
 
virtual void assembleCouplingTerms (real64 const time_n, real64 const dt, DomainPartition const &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
 
void assembleForceResidualDerivativeWrtPressure (MeshLevel const &mesh, string_array const &regionNames, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)
 
virtual void assembleFluidMassResidualDerivativeWrtDisplacement (MeshLevel const &mesh, string_array const &regionNames, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)=0
 
void updateHydraulicApertureAndFracturePermeability (DomainPartition &domain)
 
std::unique_ptr< CRSMatrix< real64, localIndex > > & getRefDerivativeFluxResidual_dAperture ()
 
CRSMatrixView< real64, localIndex const > getDerivativeFluxResidual_dNormalJump ()
 
CRSMatrixView< real64 const, localIndex const > getDerivativeFluxResidual_dNormalJump () const
 
virtual string getFlowDofKey () const =0
 
virtual integer numFluidComponents () const =0
 

Protected Attributes

std::unique_ptr< CRSMatrix< real64, localIndex > > m_derivativeFluxResidual_dAperture
 

Static Protected Attributes

static const localIndex m_maxFaceNodes = 11
 

Detailed Description

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER>
class geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >

Definition at line 41 of file PoromechanicsConformingFractures.hpp.

Member Function Documentation

◆ addTransmissibilityCouplingNNZ()

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER >
void geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >::addTransmissibilityCouplingNNZ ( DomainPartition const &  domain,
DofManager const &  dofManager,
arrayView1d< localIndex > const &  rowLengths 
) const
inlineprotected

@Brief add the nnz induced by the flux-aperture coupling

Parameters
domainthe physical domain object
dofManagerdegree-of-freedom manager associated with the linear system
rowLenghtsthe nnz in each row

Definition at line 192 of file PoromechanicsConformingFractures.hpp.

◆ addTransmissibilityCouplingPattern()

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER >
void geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >::addTransmissibilityCouplingPattern ( DomainPartition const &  domain,
DofManager const &  dofManager,
SparsityPatternView< globalIndex > const &  pattern 
) const
inlineprotected

Set up the Dflux_dApertureMatrix object.

Parameters
domain
dofManager
localMatrix

Definition at line 260 of file PoromechanicsConformingFractures.hpp.

◆ assembleCouplingTerms()

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER >
virtual void geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >::assembleCouplingTerms ( real64 const  time_n,
real64 const  dt,
DomainPartition const &  domain,
DofManager const &  dofManager,
CRSMatrixView< real64, globalIndex const > const &  localMatrix,
arrayView1d< real64 > const &  localRhs 
)
inlineoverrideprotectedvirtual
  1. assemble Force Residual w.r.t. pressure and Flow mass residual w.r.t. displacement

Definition at line 455 of file PoromechanicsConformingFractures.hpp.

◆ assembleElementBasedContributions()

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER >
void geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >::assembleElementBasedContributions ( real64 const  time_n,
real64 const  dt,
DomainPartition domain,
DofManager const &  dofManager,
CRSMatrixView< real64, globalIndex const > const &  localMatrix,
arrayView1d< real64 > const &  localRhs 
)
inlineprotected
  1. assemble Force Residual w.r.t. pressure and Flow mass residual w.r.t. displacement

Definition at line 427 of file PoromechanicsConformingFractures.hpp.

◆ setupCoupling()

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER >
virtual void geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >::setupCoupling ( DomainPartition const &  domain,
DofManager dofManager 
) const
inlineoverridevirtual

We need to add 2 coupling terms:

Definition at line 51 of file PoromechanicsConformingFractures.hpp.

◆ setUpDflux_dApertureMatrix()

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER >
void geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >::setUpDflux_dApertureMatrix ( DomainPartition domain,
DofManager const &  GEOS_UNUSED_PARAMdofManager,
CRSMatrix< real64, globalIndex > &  localMatrix 
)
inlineprotected

Set up the Dflux_dApertureMatrix object.

Parameters
domain
dofManager
localMatrix

Definition at line 359 of file PoromechanicsConformingFractures.hpp.

◆ setupSystem()

template<template< typename, typename > class POROMECHANICS_BASE, typename FLOW_SOLVER >
virtual void geos::PoromechanicsConformingFractures< POROMECHANICS_BASE, FLOW_SOLVER >::setupSystem ( DomainPartition domain,
DofManager dofManager,
CRSMatrix< real64, globalIndex > &  localMatrix,
ParallelVector rhs,
ParallelVector solution,
bool const  setSparsity = true 
)
inlineoverridevirtual
  1. Add all coupling terms handled directly by the DofManager
  2. Add coupling terms not added by the DofManager.

Definition at line 64 of file PoromechanicsConformingFractures.hpp.


The documentation for this class was generated from the following file: