#include <MortarUserObjectThread.h>
Public Member Functions | |
| MortarUserObjectThread (std::vector< MortarUserObject * > &mortar_user_objects, const AutomaticMortarGeneration &amg, SubProblem &subproblem, FEProblemBase &fe_problem, bool displaced, Assembly &assembly) | |
| ~MortarUserObjectThread () override | |
| Unlike MortarExecutorInterface's other implementers, this object is stack-constructed fresh for a single execution and destroyed well before the FEProblemBase that owns the warehouse we registered with, so (unlike the base class default) it is always safe – and necessary, to avoid leaving a dangling entry behind – to deregister here. | |
| void | operator() () |
| Loops over the mortar segment mesh and executes the user objects. | |
| void | mortarSetup (const AutomaticMortarGeneration &amg) override |
Called by the MortarInterfaceWarehouse whenever amg's mortar segment mesh coverage has changed, so that this object may refresh any state (e.g. | |
Protected Attributes | |
| MortarInterfaceWarehouse & | _mortar_warehouse |
| The warehouse this object is registered with for mortar setup notifications. | |
Materials for Mortar | |
These containers hold the materials whose properties are required by a given set of consumers. Note that these containers will also hold materials that may not provide properties explicitly needed by the consumers but do provided properties that are dependencies of the materials that do provide properties needed by the consumers | |
| std::map< SubdomainID, std::deque< MaterialBase * > > | _secondary_ip_sub_to_mats |
| std::map< SubdomainID, std::deque< MaterialBase * > > | _primary_ip_sub_to_mats |
| A map from primary interior parent subdomain IDs to the block materials that will need to reinit'd on the primary face. | |
| std::deque< MaterialBase * > | _secondary_boundary_mats |
| A container that holds the boundary materials that will need to be reinit'd on the secondary face. | |
Private Attributes | |
| std::vector< MortarUserObject * > & | _mortar_user_objects |
| The mortar user objects to loop over when on each mortar segment element. | |
| const AutomaticMortarGeneration & | _amg |
| Automatic mortar generation (amg) object providing the mortar mesh to loop over. | |
| SubProblem & | _subproblem |
| A reference to the SubProblem object for reiniting lower-dimensional element quantities. | |
| FEProblemBase & | _fe_problem |
| A reference to the FEProblemBase object for reiniting higher-dimensional element and neighbor element quantities. | |
| const bool | _displaced |
| Whether the mortar user objects are operating on the displaced mesh. | |
| Assembly & | _assembly |
| A reference to the assembly object. | |
Definition at line 23 of file MortarUserObjectThread.h.
| MortarUserObjectThread::MortarUserObjectThread | ( | std::vector< MortarUserObject * > & | mortar_user_objects, |
| const AutomaticMortarGeneration & | amg, | ||
| SubProblem & | subproblem, | ||
| FEProblemBase & | fe_problem, | ||
| bool | displaced, | ||
| Assembly & | assembly | ||
| ) |
Definition at line 27 of file MortarUserObjectThread.C.
|
override |
Unlike MortarExecutorInterface's other implementers, this object is stack-constructed fresh for a single execution and destroyed well before the FEProblemBase that owns the warehouse we registered with, so (unlike the base class default) it is always safe – and necessary, to avoid leaving a dangling entry behind – to deregister here.
Definition at line 45 of file MortarUserObjectThread.C.
|
overridevirtual |
Called by the MortarInterfaceWarehouse whenever amg's mortar segment mesh coverage has changed, so that this object may refresh any state (e.g.
material dependency lists) that depends on which subdomains/boundaries the mortar segment mesh currently touches.
Implements MortarExecutorInterface.
Definition at line 51 of file MortarUserObjectThread.C.
Referenced by MortarUserObjectThread().
| void MortarUserObjectThread::operator() | ( | ) |
Loops over the mortar segment mesh and executes the user objects.
Definition at line 63 of file MortarUserObjectThread.C.
|
private |
Automatic mortar generation (amg) object providing the mortar mesh to loop over.
Definition at line 53 of file MortarUserObjectThread.h.
Referenced by mortarSetup(), MortarUserObjectThread(), and operator()().
|
private |
A reference to the assembly object.
Definition at line 67 of file MortarUserObjectThread.h.
Referenced by operator()().
|
private |
Whether the mortar user objects are operating on the displaced mesh.
Definition at line 64 of file MortarUserObjectThread.h.
Referenced by operator()().
|
private |
A reference to the FEProblemBase object for reiniting higher-dimensional element and neighbor element quantities.
We use the FEProblemBase object for reiniting these because we may be using material properties from either undisplaced or displaced materials
Definition at line 61 of file MortarUserObjectThread.h.
Referenced by mortarSetup(), and operator()().
|
private |
The mortar user objects to loop over when on each mortar segment element.
Definition at line 50 of file MortarUserObjectThread.h.
Referenced by mortarSetup(), and operator()().
|
protectedinherited |
The warehouse this object is registered with for mortar setup notifications.
Definition at line 69 of file MortarExecutorInterface.h.
Referenced by MortarExecutorInterface::MortarExecutorInterface(), MortarExecutorInterface::MortarExecutorInterface(), and ~MortarUserObjectThread().
|
protectedinherited |
A map from primary interior parent subdomain IDs to the block materials that will need to reinit'd on the primary face.
Definition at line 85 of file MortarExecutorInterface.h.
Referenced by mortarSetup(), operator()(), ComputeMortarFunctor::operator()(), and ComputeMortarFunctor::setupMortarMaterials().
|
protectedinherited |
A container that holds the boundary materials that will need to be reinit'd on the secondary face.
Definition at line 89 of file MortarExecutorInterface.h.
Referenced by mortarSetup(), operator()(), ComputeMortarFunctor::operator()(), and ComputeMortarFunctor::setupMortarMaterials().
|
protectedinherited |
A map from secondary interior parent subdomain IDs to the block materials that will need to reinit'd on the secondary face
Definition at line 81 of file MortarExecutorInterface.h.
Referenced by mortarSetup(), operator()(), ComputeMortarFunctor::operator()(), and ComputeMortarFunctor::setupMortarMaterials().
|
private |
A reference to the SubProblem object for reiniting lower-dimensional element quantities.
Definition at line 56 of file MortarUserObjectThread.h.
Referenced by operator()().