www.mooseframework.org
Public Member Functions | Public Attributes | Protected Attributes | List of all members
XFEMInterface Class Referenceabstract

This is the XFEMInterface class. More...

#include <XFEMInterface.h>

Inheritance diagram for XFEMInterface:
[legend]

Public Member Functions

 XFEMInterface (const InputParameters &params)
 Constructor. More...
 
virtual ~XFEMInterface ()
 Destructor. More...
 
void setMesh (MooseMesh *mesh)
 Set the pointer to the primary mesh that is modified by XFEM. More...
 
void setDisplacedMesh (MooseMesh *displaced_mesh)
 Set the pointer to the displaced mesh that is modified by XFEM. More...
 
void setMaterialData (std::vector< std::shared_ptr< MaterialData >> *material_data)
 Set the pointer to the MaterialData. More...
 
void setBoundaryMaterialData (std::vector< std::shared_ptr< MaterialData >> *bnd_material_data)
 Set the pointer to the Boundary MaterialData. More...
 
virtual bool update (Real time, NonlinearSystemBase &nl, AuxiliarySystem &aux)=0
 Method to update the mesh due to modified cut definitions. More...
 
virtual void initSolution (NonlinearSystemBase &nl, AuxiliarySystem &aux)=0
 Initialize the solution on newly created nodes. More...
 
virtual bool getXFEMWeights (MooseArray< Real > &weights, const Elem *elem, QBase *qrule, const MooseArray< Point > &q_points)=0
 Get the factors for the QP weighs for XFEM partial elements. More...
 
virtual bool getXFEMFaceWeights (MooseArray< Real > &weights, const Elem *elem, QBase *qrule, const MooseArray< Point > &q_points, unsigned int side)=0
 Get the factors for the face QP weighs for XFEM partial elements. More...
 
virtual bool updateHeal ()=0
 Potentially update the mesh by healing previous XFEM cuts. More...
 

Public Attributes

const ConsoleStream _console
 An instance of helper class to write streams to the Console objects. More...
 

Protected Attributes

FEProblemBase_fe_problem
 
std::vector< std::shared_ptr< MaterialData > > * _material_data
 
std::vector< std::shared_ptr< MaterialData > > * _bnd_material_data
 
MooseMesh_moose_mesh
 
MooseMesh_moose_displaced_mesh
 
MeshBase * _mesh
 
MeshBase * _displaced_mesh
 

Detailed Description

This is the XFEMInterface class.

This is an abstract base class that defines interfaces with a class that dynamically modifies the mesh in support of a phantom node approach for XFEM

Definition at line 38 of file XFEMInterface.h.

Constructor & Destructor Documentation

◆ XFEMInterface()

XFEMInterface::XFEMInterface ( const InputParameters params)
inlineexplicit

Constructor.

Definition at line 44 of file XFEMInterface.h.

45  : ConsoleStreamInterface(*params.getCheckedPointerParam<MooseApp *>("_moose_app")),
46  _fe_problem(params.getCheckedPointerParam<FEProblemBase *>("_fe_problem_base")),
47  _material_data(nullptr),
48  _bnd_material_data(nullptr),
49  _moose_mesh(nullptr),
50  _moose_displaced_mesh(nullptr),
51  _mesh(nullptr),
52  _displaced_mesh(nullptr)
53  {
54  }
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller...
Base class for MOOSE-based applications.
Definition: MooseApp.h:58
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
FEProblemBase * _fe_problem
MooseMesh * _moose_displaced_mesh
ConsoleStreamInterface(MooseApp &app)
A class for providing a helper stream object for writting message to all the Output objects...
std::vector< std::shared_ptr< MaterialData > > * _material_data
std::vector< std::shared_ptr< MaterialData > > * _bnd_material_data
MeshBase * _mesh
MooseMesh * _moose_mesh
MeshBase * _displaced_mesh

◆ ~XFEMInterface()

virtual XFEMInterface::~XFEMInterface ( )
inlinevirtual

Destructor.

Definition at line 59 of file XFEMInterface.h.

59 {}

Member Function Documentation

◆ getXFEMFaceWeights()

virtual bool XFEMInterface::getXFEMFaceWeights ( MooseArray< Real > &  weights,
const Elem *  elem,
QBase *  qrule,
const MooseArray< Point > &  q_points,
unsigned int  side 
)
pure virtual

Get the factors for the face QP weighs for XFEM partial elements.

Parameters
weightsThe new weights at element face quadrature points
elemThe element for which the weights are adjusted
qruleThe quadrature rule for the face integration
q_pointsThe vector of quadrature points at element face
sideThe side of element for which the weights are adjusted

◆ getXFEMWeights()

virtual bool XFEMInterface::getXFEMWeights ( MooseArray< Real > &  weights,
const Elem *  elem,
QBase *  qrule,
const MooseArray< Point > &  q_points 
)
pure virtual

Get the factors for the QP weighs for XFEM partial elements.

Parameters
weightsThe new weights at element quadrature points
elemThe element for which the weights are adjusted
qruleThe quadrature rule for the volume integration
q_pointsThe vector of quadrature points

◆ initSolution()

virtual void XFEMInterface::initSolution ( NonlinearSystemBase nl,
AuxiliarySystem aux 
)
pure virtual

Initialize the solution on newly created nodes.

◆ setBoundaryMaterialData()

void XFEMInterface::setBoundaryMaterialData ( std::vector< std::shared_ptr< MaterialData >> *  bnd_material_data)
inline

Set the pointer to the Boundary MaterialData.

Definition at line 90 of file XFEMInterface.h.

91  {
92  _bnd_material_data = bnd_material_data;
93  }
std::vector< std::shared_ptr< MaterialData > > * _bnd_material_data

◆ setDisplacedMesh()

void XFEMInterface::setDisplacedMesh ( MooseMesh displaced_mesh)
inline

Set the pointer to the displaced mesh that is modified by XFEM.

Definition at line 73 of file XFEMInterface.h.

74  {
75  _moose_displaced_mesh = displaced_mesh;
76  _displaced_mesh = &displaced_mesh->getMesh();
77  }
MooseMesh * _moose_displaced_mesh
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:2512
MeshBase * _displaced_mesh

◆ setMaterialData()

void XFEMInterface::setMaterialData ( std::vector< std::shared_ptr< MaterialData >> *  material_data)
inline

Set the pointer to the MaterialData.

Definition at line 82 of file XFEMInterface.h.

83  {
84  _material_data = material_data;
85  }
std::vector< std::shared_ptr< MaterialData > > * _material_data

◆ setMesh()

void XFEMInterface::setMesh ( MooseMesh mesh)
inline

Set the pointer to the primary mesh that is modified by XFEM.

Definition at line 64 of file XFEMInterface.h.

65  {
66  _moose_mesh = mesh;
67  _mesh = &mesh->getMesh();
68  }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:2512
MeshBase * _mesh
MooseMesh * _moose_mesh

◆ update()

virtual bool XFEMInterface::update ( Real  time,
NonlinearSystemBase nl,
AuxiliarySystem aux 
)
pure virtual

Method to update the mesh due to modified cut definitions.

◆ updateHeal()

virtual bool XFEMInterface::updateHeal ( )
pure virtual

Potentially update the mesh by healing previous XFEM cuts.

Returns
true if the mesh has been updated due to healing

Member Data Documentation

◆ _bnd_material_data

std::vector<std::shared_ptr<MaterialData> >* XFEMInterface::_bnd_material_data
protected

Definition at line 141 of file XFEMInterface.h.

Referenced by setBoundaryMaterialData().

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

An instance of helper class to write streams to the Console objects.

Definition at line 32 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), SetupRecoverFileBaseAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), SimplePredictor::apply(), FEProblemBase::backupMultiApps(), FEProblemBase::checkProblemIntegrity(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeResidualTags(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), AB2PredictorCorrector::converged(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppVectorPostprocessorTransfer::execute(), MultiAppCopyTransfer::execute(), Steady::execute(), MultiAppDTKUserObjectTransfer::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), FEProblemBase::FEProblemBase(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MultiApp::globalAppToLocal(), InversePowerMethod::init(), NonlinearEigen::init(), Steady::init(), FEProblemBase::initialAdaptMesh(), FEProblemBase::initialSetup(), EigenExecutionerBase::inversePowerIteration(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseObject::mooseDeprecated(), MooseObject::mooseInfo(), MooseObject::mooseWarning(), PerfGraphOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), ActionWarehouse::printActionDependencySets(), EigenExecutionerBase::printEigenvalue(), MaterialPropertyDebugOutput::printMaterialMap(), SolutionTimeAdaptiveDT::rejectStep(), DT2::rejectStep(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), NonlinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), Transient::solveStep(), DT2::step(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _displaced_mesh

MeshBase* XFEMInterface::_displaced_mesh
protected

Definition at line 146 of file XFEMInterface.h.

Referenced by setDisplacedMesh().

◆ _fe_problem

FEProblemBase* XFEMInterface::_fe_problem
protected

Definition at line 139 of file XFEMInterface.h.

◆ _material_data

std::vector<std::shared_ptr<MaterialData> >* XFEMInterface::_material_data
protected

Definition at line 140 of file XFEMInterface.h.

Referenced by setMaterialData().

◆ _mesh

MeshBase* XFEMInterface::_mesh
protected

Definition at line 145 of file XFEMInterface.h.

Referenced by setMesh().

◆ _moose_displaced_mesh

MooseMesh* XFEMInterface::_moose_displaced_mesh
protected

Definition at line 144 of file XFEMInterface.h.

Referenced by setDisplacedMesh().

◆ _moose_mesh

MooseMesh* XFEMInterface::_moose_mesh
protected

Definition at line 143 of file XFEMInterface.h.

Referenced by setMesh().


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