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 () |
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 MortarData & | _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 105 of file MortarConsumerInterface.C.
|
inlineprotected |
Retrieve the automatic mortar generation object associated with this constraint.
Definition at line 189 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
inlineprotected |
Definition at line 62 of file MortarConsumerInterface.h.
|
inlineprotected |
Definition at line 58 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 74 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
inline |
Definition at line 243 of file MortarConsumerInterface.h.
|
inline |
Definition at line 45 of file MortarConsumerInterface.h.
|
inline |
Definition at line 50 of file MortarConsumerInterface.h.
|
private |
Set the normals vector.
Definition at line 162 of file MortarConsumerInterface.C.
|
staticprotected |
Get rid of AD derivative entries by dof index.
Definition at line 171 of file MortarConsumerInterface.C.
Referenced by trimInteriorNodeDerivatives().
|
staticprotected |
Get rid of interior node variable's derivatives.
Definition at line 197 of file MortarConsumerInterface.h.
|
static |
Definition at line 23 of file MortarConsumerInterface.C.
Referenced by MortarNodalAuxKernelTempl< ComputeValueType >::validParams(), MortarUserObject::validParams(), and MortarConstraintBase::validParams().
|
friend |
Definition at line 174 of file MortarConsumerInterface.h.
|
friend |
Definition at line 175 of file MortarConsumerInterface.h.
|
friend |
Definition at line 178 of file MortarConsumerInterface.h.
|
friend |
Definition at line 179 of file MortarConsumerInterface.h.
|
friend |
Calls the reinitialization of mortar user objects.
|
private |
Definition at line 172 of file MortarConsumerInterface.h.
Referenced by amg().
|
protected |
the union of the secondary and primary boundary ids
Definition at line 120 of file MortarConsumerInterface.h.
Referenced by getBoundaryIDs().
|
protected |
the higher dimensional subdomain ids corresponding to the interior parents
Definition at line 123 of file MortarConsumerInterface.h.
Referenced by getHigherDimSubdomainIDs().
|
protected |
Whether to interpolate the nodal normals.
Definition at line 126 of file MortarConsumerInterface.h.
Referenced by interpolateNormals().
|
protected |
The element Jacobian times weights.
Definition at line 157 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 154 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 146 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
protected |
Definition at line 98 of file MortarConsumerInterface.h.
|
protected |
Definition at line 91 of file MortarConsumerInterface.h.
|
protected |
Mesh to query for boundary and subdomain ID information.
Definition at line 96 of file MortarConsumerInterface.h.
|
protected |
Definition at line 92 of file MortarConsumerInterface.h.
|
protected |
Definition at line 93 of file MortarConsumerInterface.h.
|
protected |
A reference to the mortar data object that holds all the mortar mesh information.
Definition at line 102 of file MortarConsumerInterface.h.
|
protected |
The current mortar segment element.
Definition at line 160 of file MortarConsumerInterface.h.
|
protected |
the normals
Definition at line 163 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 132 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 129 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 108 of file MortarConsumerInterface.h.
Referenced by onInterface().
|
protected |
Subdomain ID for the primary surface.
Definition at line 114 of file MortarConsumerInterface.h.
Referenced by primarySubdomain().
|
protected |
The arbitrary quadrature rule on the lower dimensional secondary face.
Definition at line 138 of file MortarConsumerInterface.h.
Referenced by setNormals().
|
protected |
The quadrature rule on the mortar segment element.
Definition at line 135 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 105 of file MortarConsumerInterface.h.
Referenced by MortarConsumerInterface(), and onInterface().
|
protected |
the secondaryid set
Definition at line 117 of file MortarConsumerInterface.h.
|
protected |
Subdomain ID for the secondary surface.
Definition at line 111 of file MortarConsumerInterface.h.
Referenced by secondarySubdomain().