An interface for accessing mortar mesh data. More...
#include <MortarConsumerInterface.h>
Public Member Functions | |
| MortarConsumerInterface (const MooseObject *moose_object) | |
| SubdomainID | primarySubdomain () const |
| SubdomainID | secondarySubdomain () const |
| bool | onInterface (BoundaryID primary_boundary_id, BoundaryID secondary_boundary_id) const |
Static Public Member Functions | |
| static InputParameters | validParams () |
| static InputParameters | triangulationParams () |
Protected Member Functions | |
| const std::set< SubdomainID > & | getHigherDimSubdomainIDs () const |
| const std::set< BoundaryID > & | getBoundaryIDs () const |
| const AutomaticMortarGeneration & | amg () const |
| Retrieve the automatic mortar generation object associated with this constraint. More... | |
| bool | interpolateNormals () const |
| Whether to interpolate the nodal normals (e.g. More... | |
Static Protected Member Functions | |
| static void | trimDerivative (dof_id_type remove_derivative_index, ADReal &dual_number) |
| Get rid of AD derivative entries by dof index. More... | |
| template<typename Variables , typename DualNumbers > | |
| static void | trimInteriorNodeDerivatives (const std::map< unsigned int, unsigned int > &primary_ip_lowerd_map, const Variables &moose_var, DualNumbers &ad_vars, const bool is_secondary) |
| Get rid of interior node variable's derivatives. More... | |
Protected Attributes | |
| FEProblemBase & | _mci_fe_problem |
| SubProblem & | _mci_subproblem |
| const THREAD_ID | _mci_tid |
| MooseMesh & | _mci_mesh |
| Mesh to query for boundary and subdomain ID information. More... | |
| Assembly & | _mci_assembly |
| const MortarInterfaceWarehouse & | _mortar_data |
| A reference to the mortar data object that holds all the mortar mesh information. More... | |
| const BoundaryID | _secondary_id |
| Boundary ID for the secondary surface. More... | |
| const BoundaryID | _primary_id |
| Boundary ID for the primary surface. More... | |
| const SubdomainID | _secondary_subdomain_id |
| Subdomain ID for the secondary surface. More... | |
| const SubdomainID | _primary_subdomain_id |
| Subdomain ID for the primary surface. More... | |
| std::set< BoundaryID > | _secondary_set |
| the secondaryid set More... | |
| std::set< BoundaryID > | _boundary_ids |
| the union of the secondary and primary boundary ids More... | |
| std::set< SubdomainID > | _higher_dim_subdomain_ids |
| the higher dimensional subdomain ids corresponding to the interior parents More... | |
| const bool | _interpolate_normals |
| Whether to interpolate the nodal normals. More... | |
| const MooseArray< Point > & | _phys_points_secondary |
| The locations of the quadrature points on the interior secondary elements. More... | |
| const MooseArray< Point > & | _phys_points_primary |
| The locations of the quadrature points on the interior primary elements. More... | |
| const libMesh::QBase *const & | _qrule_msm |
| The quadrature rule on the mortar segment element. More... | |
| const libMesh::QBase *const & | _qrule_face |
| The arbitrary quadrature rule on the lower dimensional secondary face. More... | |
| Elem const *const & | _lower_secondary_elem |
| The secondary face lower dimensional element (not the mortar element!). More... | |
| Elem const *const & | _lower_primary_elem |
| The primary face lower dimensional element (not the mortar element!). More... | |
| const std::vector< Real > & | _JxW_msm |
| The element Jacobian times weights. More... | |
| const Elem *const & | _msm_elem |
| The current mortar segment element. More... | |
| std::vector< Point > | _normals |
| the normals More... | |
Private Member Functions | |
| void | setNormals () |
| Set the normals vector. More... | |
Private Attributes | |
| const AutomaticMortarGeneration * | _amg |
Friends | |
| class | ComputeMortarFunctor |
| class | FEProblemBase |
| template<typename > | |
| class | MortarNodalAuxKernelTempl |
| class | MortarUserObjectThread |
| void | reinitMortarUserObjects (BoundaryID, BoundaryID, bool) |
| Calls the reinitialization of mortar user objects. More... | |
An interface for accessing mortar mesh data.
_mci_problem indicates the mortar consumer interface's problem Definition at line 35 of file MortarConsumerInterface.h.
| MortarConsumerInterface::MortarConsumerInterface | ( | const MooseObject * | moose_object | ) |
Definition at line 172 of file MortarConsumerInterface.C.
|
inlineprotected |
Retrieve the automatic mortar generation object associated with this constraint.
Definition at line 197 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
inlineprotected |
Definition at line 70 of file MortarConsumerInterface.h.
|
inlineprotected |
Definition at line 66 of file MortarConsumerInterface.h.
|
inlineprotected |
Whether to interpolate the nodal normals (e.g.
classic idea of evaluating field at quadrature points). If this is set to false, then non-interpolated nodal normals will be used, and then the _normals member should be indexed with _i instead of _qp
Definition at line 82 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
inline |
Definition at line 251 of file MortarConsumerInterface.h.
|
inline |
Definition at line 53 of file MortarConsumerInterface.h.
|
inline |
Definition at line 58 of file MortarConsumerInterface.h.
|
private |
Set the normals vector.
Definition at line 247 of file MortarConsumerInterface.C.
|
static |
triangulation, triangulate_triangles). Provided so that downstream actions / objects which need to expose the same controls (e.g. ContactAction) can pull these definitions in via params += rather than duplicating them. Definition at line 130 of file MortarConsumerInterface.C.
Referenced by validParams().
|
staticprotected |
Get rid of AD derivative entries by dof index.
Definition at line 256 of file MortarConsumerInterface.C.
Referenced by trimInteriorNodeDerivatives().
|
staticprotected |
Get rid of interior node variable's derivatives.
Definition at line 205 of file MortarConsumerInterface.h.
|
static |
Definition at line 25 of file MortarConsumerInterface.C.
Referenced by MortarNodalAuxKernelTempl< ComputeValueType >::validParams(), MortarUserObject::validParams(), and MortarConstraintBase::validParams().
|
friend |
Definition at line 182 of file MortarConsumerInterface.h.
|
friend |
Definition at line 183 of file MortarConsumerInterface.h.
|
friend |
Definition at line 186 of file MortarConsumerInterface.h.
|
friend |
Definition at line 187 of file MortarConsumerInterface.h.
|
friend |
Calls the reinitialization of mortar user objects.
|
private |
Definition at line 180 of file MortarConsumerInterface.h.
Referenced by amg().
|
protected |
the union of the secondary and primary boundary ids
Definition at line 128 of file MortarConsumerInterface.h.
Referenced by getBoundaryIDs().
|
protected |
the higher dimensional subdomain ids corresponding to the interior parents
Definition at line 131 of file MortarConsumerInterface.h.
Referenced by getHigherDimSubdomainIDs().
|
protected |
Whether to interpolate the nodal normals.
Definition at line 134 of file MortarConsumerInterface.h.
Referenced by interpolateNormals().
|
protected |
The element Jacobian times weights.
Definition at line 165 of file MortarConsumerInterface.h.
Referenced by ADMortarConstraint::computeJacobian(), MortarConstraint::computeJacobian(), ADMortarScalarBase::computeJacobian(), MortarScalarBase::computeOffDiagJacobianScalar(), WeightedGapAux::computeQpProperties(), ADMortarConstraint::computeResidual(), MortarConstraint::computeResidual(), ADMortarScalarBase::computeResidual(), MortarScalarBase::computeResidual(), MortarScalarBase::computeScalarJacobian(), MortarScalarBase::computeScalarOffDiagJacobian(), and MortarScalarBase::computeScalarOffDiagJacobianScalar().
|
protected |
The primary face lower dimensional element (not the mortar element!).
The mortar element lives on the secondary side of the mortar interface and may correspond to _lower_secondary_elem under the very specific circumstance that the nodes on the primary side of the mortar interface exactly project onto the secondary side of the mortar interface. In general projection of primary nodes will split the face elements on the secondary side of the interface. It is these split elements that are the mortar segment mesh elements
Definition at line 162 of file MortarConsumerInterface.h.
|
protected |
The secondary face lower dimensional element (not the mortar element!).
The mortar element lives on the secondary side of the mortar interface and may correspond to _lower_secondary_elem under the very specific circumstance that the nodes on the primary side of the mortar interface exactly project onto the secondary side of the mortar interface. In general projection of primary nodes will split the face elements on the secondary side of the interface. It is these split elements that are the mortar segment mesh elements
Definition at line 154 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
protected |
Definition at line 106 of file MortarConsumerInterface.h.
|
protected |
Definition at line 99 of file MortarConsumerInterface.h.
|
protected |
Mesh to query for boundary and subdomain ID information.
Definition at line 104 of file MortarConsumerInterface.h.
|
protected |
Definition at line 100 of file MortarConsumerInterface.h.
|
protected |
Definition at line 101 of file MortarConsumerInterface.h.
|
protected |
A reference to the mortar data object that holds all the mortar mesh information.
Definition at line 110 of file MortarConsumerInterface.h.
|
protected |
The current mortar segment element.
Definition at line 168 of file MortarConsumerInterface.h.
|
protected |
the normals
Definition at line 171 of file MortarConsumerInterface.h.
Referenced by WeightedGapAux::computeQpIProperties(), EqualValueConstraint::computeQpResidual(), ADPeriodicSegmentalConstraint::computeScalarQpResidual(), ADPenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), PeriodicSegmentalConstraint::computeScalarQpResidual(), and setNormals().
|
protected |
The locations of the quadrature points on the interior primary elements.
Definition at line 140 of file MortarConsumerInterface.h.
Referenced by PeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), PenaltyPeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), WeightedGapAux::computeQpProperties(), ADPeriodicSegmentalConstraint::computeQpResidual(), PeriodicSegmentalConstraint::computeQpResidual(), ADPenaltyPeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpJacobian(), PeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), PenaltyPeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), ADPeriodicSegmentalConstraint::computeScalarQpResidual(), ADPenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), and PeriodicSegmentalConstraint::computeScalarQpResidual().
|
protected |
The locations of the quadrature points on the interior secondary elements.
Definition at line 137 of file MortarConsumerInterface.h.
Referenced by PeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), PenaltyPeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), WeightedGapAux::computeQpProperties(), ADPeriodicSegmentalConstraint::computeQpResidual(), PeriodicSegmentalConstraint::computeQpResidual(), ADPenaltyPeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpJacobian(), PeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), PenaltyPeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), ADPeriodicSegmentalConstraint::computeScalarQpResidual(), ADPenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), and PeriodicSegmentalConstraint::computeScalarQpResidual().
|
protected |
Boundary ID for the primary surface.
Definition at line 116 of file MortarConsumerInterface.h.
Referenced by onInterface().
|
protected |
Subdomain ID for the primary surface.
Definition at line 122 of file MortarConsumerInterface.h.
Referenced by primarySubdomain().
|
protected |
The arbitrary quadrature rule on the lower dimensional secondary face.
Definition at line 146 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
protected |
The quadrature rule on the mortar segment element.
Definition at line 143 of file MortarConsumerInterface.h.
Referenced by ADMortarConstraint::computeJacobian(), MortarConstraint::computeJacobian(), ADMortarScalarBase::computeJacobian(), MortarScalarBase::computeOffDiagJacobianScalar(), ADMortarConstraint::computeResidual(), MortarConstraint::computeResidual(), ADMortarScalarBase::computeResidual(), MortarScalarBase::computeResidual(), MortarScalarBase::computeScalarJacobian(), MortarScalarBase::computeScalarOffDiagJacobian(), MortarScalarBase::computeScalarOffDiagJacobianScalar(), and WeightedGapAux::computeValue().
|
protected |
Boundary ID for the secondary surface.
Definition at line 113 of file MortarConsumerInterface.h.
Referenced by MortarConsumerInterface(), and onInterface().
|
protected |
the secondaryid set
Definition at line 125 of file MortarConsumerInterface.h.
|
protected |
Subdomain ID for the secondary surface.
Definition at line 119 of file MortarConsumerInterface.h.
Referenced by secondarySubdomain().
1.8.14