GEOSX
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
geos::SolidMechanicsLagrangianFEM Class Reference

#include <SolidMechanicsLagrangianFEM.hpp>

Inheritance diagram for geos::SolidMechanicsLagrangianFEM:
Inheritance graph
[legend]

Classes

struct  viewKeyStruct
 

Public Types

enum  TimeIntegrationOption : integer { TimeIntegrationOption::QuasiStatic, TimeIntegrationOption::ImplicitDynamic, TimeIntegrationOption::ExplicitDynamic }
 

Public Member Functions

 SolidMechanicsLagrangianFEM (const string &name, Group *const parent)
 
 SolidMechanicsLagrangianFEM (SolidMechanicsLagrangianFEM const &)=delete
 
 SolidMechanicsLagrangianFEM (SolidMechanicsLagrangianFEM &&)=default
 
SolidMechanicsLagrangianFEMoperator= (SolidMechanicsLagrangianFEM const &)=delete
 
SolidMechanicsLagrangianFEMoperator= (SolidMechanicsLagrangianFEM &&)=delete
 
virtual ~SolidMechanicsLagrangianFEM () override
 
string getCatalogName () const override
 
virtual void initializePreSubGroups () override
 
virtual void registerDataOnMesh (Group &meshBodies) override
 
virtual real64 solverStep (real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) override
 
virtual real64 explicitStep (real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) override
 
virtual void implicitStepSetup (real64 const &time_n, real64 const &dt, DomainPartition &domain) override
 
virtual void setupDofs (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=false) override
 
virtual void assembleSystem (real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
 
virtual void applySystemSolution (DofManager const &dofManager, arrayView1d< real64 const > const &localSolution, real64 const scalingFactor, real64 const dt, DomainPartition &domain) override
 
virtual void updateState (DomainPartition &domain) override
 
virtual void applyBoundaryConditions (real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
 
virtual real64 calculateResidualNorm (real64 const &time_n, real64 const &dt, DomainPartition const &domain, DofManager const &dofManager, arrayView1d< real64 const > const &localRhs) override
 
virtual void resetStateToBeginningOfStep (DomainPartition &domain) override
 
virtual void implicitStepComplete (real64 const &time, real64 const &dt, DomainPartition &domain) override
 
template<typename CONSTITUTIVE_BASE , typename KERNEL_WRAPPER , typename ... PARAMS>
real64 assemblyLaunch (MeshLevel &mesh, DofManager const &dofManager, arrayView1d< string const > const &regionNames, string const &materialNamesString, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs, real64 const dt, PARAMS &&... params)
 
template<typename ... PARAMS>
real64 explicitKernelDispatch (MeshLevel &mesh, arrayView1d< string const > const &targetRegions, string const &finiteElementName, real64 const dt, std::string const &elementListName)
 
void applyDisplacementBCImplicit (real64 const time, DofManager const &dofManager, DomainPartition &domain, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)
 
void applyTractionBC (real64 const time, DofManager const &dofManager, DomainPartition &domain, arrayView1d< real64 > const &localRhs)
 
void applyChomboPressure (DofManager const &dofManager, DomainPartition &domain, arrayView1d< real64 > const &localRhs)
 
void applyContactConstraint (DofManager const &dofManager, DomainPartition &domain, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)
 
virtual real64 scalingForSystemSolution (DomainPartition &domain, DofManager const &dofManager, arrayView1d< real64 const > const &localSolution) override
 
void enableFixedStressPoromechanicsUpdate ()
 
virtual void saveSequentialIterationState (DomainPartition &domain) override
 
SortedArray< localIndex > & getElemsAttachedToSendOrReceiveNodes (ElementSubRegionBase &subRegion)
 
SortedArray< localIndex > & getElemsNotAttachedToSendOrReceiveNodes (ElementSubRegionBase &subRegion)
 
real64getMaxForce ()
 
const real64getMaxForce () const
 
const arrayView1d< ParallelVector > & getRigidBodyModes () const
 
array1d< ParallelVector > & getRigidBodyModes ()
 

Static Public Member Functions

static string coupledSolverAttributePrefix ()
 String used to form the solverName used to register single-physics solvers in CoupledSolver.
 
static string catalogName ()
 

Protected Member Functions

virtual void postProcessInput () override
 
virtual void initializePostInitialConditionsPreSubGroups () override
 
virtual void setConstitutiveNamesCallSuper (ElementSubRegionBase &subRegion) const override
 

Protected Attributes

real64 m_newmarkGamma
 
real64 m_newmarkBeta
 
real64 m_massDamping
 
real64 m_stiffnessDamping
 
TimeIntegrationOption m_timeIntegrationOption
 
real64 m_maxForce = 0.0
 
integer m_maxNumResolves
 
integer m_strainTheory
 
MPI_iCommData m_iComm
 
bool m_isFixedStressPoromechanicsUpdate
 
array1d< ParallelVectorm_rigidBodyModes
 Rigid body modes.
 

Detailed Description

This class implements a finite element solution to the equations of motion.

Definition at line 41 of file SolidMechanicsLagrangianFEM.hpp.

Member Enumeration Documentation

◆ TimeIntegrationOption

The options for time integration

Enumerator
QuasiStatic 

QuasiStatic.

ImplicitDynamic 

ImplicitDynamic.

ExplicitDynamic 

ExplicitDynamic.

Definition at line 53 of file SolidMechanicsLagrangianFEM.hpp.

Constructor & Destructor Documentation

◆ SolidMechanicsLagrangianFEM()

geos::SolidMechanicsLagrangianFEM::SolidMechanicsLagrangianFEM ( const string name,
Group *const  parent 
)

Constructor

Parameters
nameThe name of the solver instance
parentthe parent group of the solver

◆ ~SolidMechanicsLagrangianFEM()

virtual geos::SolidMechanicsLagrangianFEM::~SolidMechanicsLagrangianFEM ( )
overridevirtual

destructor

Member Function Documentation

◆ applyDisplacementBCImplicit()

void geos::SolidMechanicsLagrangianFEM::applyDisplacementBCImplicit ( real64 const  time,
DofManager const &  dofManager,
DomainPartition domain,
CRSMatrixView< real64, globalIndex const > const &  localMatrix,
arrayView1d< real64 > const &  localRhs 
)

Applies displacement boundary conditions to the system for implicit time integration

Parameters
timeThe time to use for any lookups associated with this BC
dofManagerdegree-of-freedom manager associated with the linear system
domainThe DomainPartition.
matrixthe system matrix
rhsthe system right-hand side vector
solutionthe solution vector

◆ catalogName()

static string geos::SolidMechanicsLagrangianFEM::catalogName ( )
inlinestatic
Returns
The string that may be used to generate a new instance from the SolverBase::CatalogInterface::CatalogType

Definition at line 83 of file SolidMechanicsLagrangianFEM.hpp.

◆ getCatalogName()

string geos::SolidMechanicsLagrangianFEM::getCatalogName ( ) const
inlineoverride

Definition at line 87 of file SolidMechanicsLagrangianFEM.hpp.


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