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. | |
| bool | interpolateNormals () const |
| Whether to interpolate the nodal normals (e.g. | |
| void | checkPetrovGalerkinQuadraticFaces (const MooseObject &moose_object, const MooseVariableFieldBase &lm_var) const |
| Report an error if Petrov-Galerkin weights the gap of a SECOND order dual Lagrange multiplier with the standard basis on QUAD8 or TRI6 secondary faces. | |
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. | |
| 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. | |
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. | |
| Assembly & | _mci_assembly |
| const MortarInterfaceWarehouse & | _mortar_data |
| A reference to the mortar data object that holds all the mortar mesh information. | |
| const BoundaryID | _secondary_id |
| Boundary ID for the secondary surface. | |
| const BoundaryID | _primary_id |
| Boundary ID for the primary surface. | |
| const SubdomainID | _secondary_subdomain_id |
| Subdomain ID for the secondary surface. | |
| const SubdomainID | _primary_subdomain_id |
| Subdomain ID for the primary surface. | |
| std::set< BoundaryID > | _secondary_set |
| the secondaryid set | |
| std::set< BoundaryID > | _boundary_ids |
| the union of the secondary and primary boundary ids | |
| std::set< SubdomainID > | _higher_dim_subdomain_ids |
| the higher dimensional subdomain ids corresponding to the interior parents | |
| const bool | _interpolate_normals |
| Whether to interpolate the nodal normals. | |
| const MooseArray< Point > & | _phys_points_secondary |
| The locations of the quadrature points on the interior secondary elements. | |
| const MooseArray< Point > & | _phys_points_primary |
| The locations of the quadrature points on the interior primary elements. | |
| const libMesh::QBase *const & | _qrule_msm |
| The quadrature rule on the mortar segment element. | |
| const libMesh::QBase *const & | _qrule_face |
| The arbitrary quadrature rule on the lower dimensional secondary face. | |
| Elem const *const & | _lower_secondary_elem |
| The secondary face lower dimensional element (not the mortar element!). | |
| Elem const *const & | _lower_primary_elem |
| The primary face lower dimensional element (not the mortar element!). | |
| const std::vector< Real > & | _JxW_msm |
| The element Jacobian times weights. | |
| const Elem *const & | _msm_elem |
| The current mortar segment element. | |
| std::vector< Point > | _normals |
| the normals | |
Private Member Functions | |
| void | setNormals () |
| Set the normals vector. | |
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. | |
An interface for accessing mortar mesh data.
_mci_problem indicates the mortar consumer interface's problem Definition at line 36 of file MortarConsumerInterface.h.
| MortarConsumerInterface::MortarConsumerInterface | ( | const MooseObject * | moose_object | ) |
Definition at line 173 of file MortarConsumerInterface.C.
|
inlineprotected |
Retrieve the automatic mortar generation object associated with this constraint.
Definition at line 209 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
protected |
Report an error if Petrov-Galerkin weights the gap of a SECOND order dual Lagrange multiplier with the standard basis on QUAD8 or TRI6 secondary faces.
libMesh builds the dual basis on these faces against a transformed basis, and the nodal integrals of the standard basis are not positive there, so the combination does not converge.
| moose_object | The object reporting the error |
| lm_var | The Lagrange multiplier |
Definition at line 257 of file MortarConsumerInterface.C.
Referenced by MortarConstraintBase::MortarConstraintBase().
|
inlineprotected |
Definition at line 71 of file MortarConsumerInterface.h.
|
inlineprotected |
Definition at line 67 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 83 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
inline |
Definition at line 263 of file MortarConsumerInterface.h.
|
inline |
Definition at line 54 of file MortarConsumerInterface.h.
|
inline |
Definition at line 59 of file MortarConsumerInterface.h.
|
private |
Set the normals vector.
Definition at line 248 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 131 of file MortarConsumerInterface.C.
Referenced by validParams().
|
staticprotected |
Get rid of AD derivative entries by dof index.
Definition at line 274 of file MortarConsumerInterface.C.
Referenced by trimInteriorNodeDerivatives().
|
staticprotected |
Get rid of interior node variable's derivatives.
Definition at line 217 of file MortarConsumerInterface.h.
|
static |
Definition at line 26 of file MortarConsumerInterface.C.
Referenced by MortarNodalAuxKernelTempl< ComputeValueType >::validParams(), MortarConstraintBase::validParams(), and MortarUserObject::validParams().
|
friend |
Definition at line 194 of file MortarConsumerInterface.h.
|
friend |
Definition at line 195 of file MortarConsumerInterface.h.
|
friend |
Definition at line 198 of file MortarConsumerInterface.h.
|
friend |
Definition at line 199 of file MortarConsumerInterface.h.
|
friend |
Calls the reinitialization of mortar user objects.
|
private |
Definition at line 192 of file MortarConsumerInterface.h.
Referenced by amg().
|
protected |
the union of the secondary and primary boundary ids
Definition at line 140 of file MortarConsumerInterface.h.
Referenced by getBoundaryIDs().
|
protected |
the higher dimensional subdomain ids corresponding to the interior parents
Definition at line 143 of file MortarConsumerInterface.h.
Referenced by getHigherDimSubdomainIDs().
|
protected |
Whether to interpolate the nodal normals.
Definition at line 146 of file MortarConsumerInterface.h.
Referenced by interpolateNormals().
|
protected |
The element Jacobian times weights.
Definition at line 177 of file MortarConsumerInterface.h.
Referenced by ADMortarScalarBase::computeJacobian(), ADMortarConstraint::computeJacobian(), MortarConstraint::computeJacobian(), MortarScalarBase::computeOffDiagJacobianScalar(), WeightedGapAux::computeQpProperties(), ADMortarScalarBase::computeResidual(), MortarScalarBase::computeResidual(), ADMortarConstraint::computeResidual(), MortarConstraint::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 174 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 166 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
protected |
Definition at line 118 of file MortarConsumerInterface.h.
|
protected |
Definition at line 111 of file MortarConsumerInterface.h.
|
protected |
Mesh to query for boundary and subdomain ID information.
Definition at line 116 of file MortarConsumerInterface.h.
Referenced by checkPetrovGalerkinQuadraticFaces().
|
protected |
Definition at line 112 of file MortarConsumerInterface.h.
|
protected |
Definition at line 113 of file MortarConsumerInterface.h.
|
protected |
A reference to the mortar data object that holds all the mortar mesh information.
Definition at line 122 of file MortarConsumerInterface.h.
|
protected |
The current mortar segment element.
Definition at line 180 of file MortarConsumerInterface.h.
|
protected |
the normals
Definition at line 183 of file MortarConsumerInterface.h.
Referenced by WeightedGapAux::computeQpIProperties(), EqualValueConstraint::computeQpResidual(), ADPenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), ADPeriodicSegmentalConstraint::computeScalarQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), PeriodicSegmentalConstraint::computeScalarQpResidual(), and setNormals().
|
protected |
The locations of the quadrature points on the interior primary elements.
Definition at line 152 of file MortarConsumerInterface.h.
Referenced by PenaltyPeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), PeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), WeightedGapAux::computeQpProperties(), ADPenaltyPeriodicSegmentalConstraint::computeQpResidual(), ADPeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeQpResidual(), PeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpJacobian(), PenaltyPeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), PeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), ADPenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), ADPeriodicSegmentalConstraint::computeScalarQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), and PeriodicSegmentalConstraint::computeScalarQpResidual().
|
protected |
The locations of the quadrature points on the interior secondary elements.
Definition at line 149 of file MortarConsumerInterface.h.
Referenced by PenaltyPeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), PeriodicSegmentalConstraint::computeQpOffDiagJacobianScalar(), WeightedGapAux::computeQpProperties(), ADPenaltyPeriodicSegmentalConstraint::computeQpResidual(), ADPeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeQpResidual(), PeriodicSegmentalConstraint::computeQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpJacobian(), PenaltyPeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), PeriodicSegmentalConstraint::computeScalarQpOffDiagJacobian(), ADPenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), ADPeriodicSegmentalConstraint::computeScalarQpResidual(), PenaltyPeriodicSegmentalConstraint::computeScalarQpResidual(), and PeriodicSegmentalConstraint::computeScalarQpResidual().
|
protected |
Boundary ID for the primary surface.
Definition at line 128 of file MortarConsumerInterface.h.
Referenced by onInterface().
|
protected |
Subdomain ID for the primary surface.
Definition at line 134 of file MortarConsumerInterface.h.
Referenced by primarySubdomain().
|
protected |
The arbitrary quadrature rule on the lower dimensional secondary face.
Definition at line 158 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
protected |
The quadrature rule on the mortar segment element.
Definition at line 155 of file MortarConsumerInterface.h.
Referenced by ADMortarScalarBase::computeJacobian(), ADMortarConstraint::computeJacobian(), MortarConstraint::computeJacobian(), MortarScalarBase::computeOffDiagJacobianScalar(), ADMortarScalarBase::computeResidual(), MortarScalarBase::computeResidual(), ADMortarConstraint::computeResidual(), MortarConstraint::computeResidual(), MortarScalarBase::computeScalarJacobian(), MortarScalarBase::computeScalarOffDiagJacobian(), MortarScalarBase::computeScalarOffDiagJacobianScalar(), and WeightedGapAux::computeValue().
|
protected |
Boundary ID for the secondary surface.
Definition at line 125 of file MortarConsumerInterface.h.
Referenced by MortarConsumerInterface(), and onInterface().
|
protected |
the secondaryid set
Definition at line 137 of file MortarConsumerInterface.h.
|
protected |
Subdomain ID for the secondary surface.
Definition at line 131 of file MortarConsumerInterface.h.
Referenced by checkPetrovGalerkinQuadraticFaces(), and secondarySubdomain().