https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComputeMortarFunctor.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "MooseTypes.h"
14
15#include "libmesh/libmesh_common.h"
16
18class SubProblem;
19class FEProblemBase;
21class Assembly;
22class MooseMesh;
23class MaterialBase;
24
25namespace libMesh
26{
27class QBase;
28template <typename>
29class FEGenericBase;
31}
32
34{
35public:
37 const std::vector<std::shared_ptr<MortarConstraintBase>> & mortar_constraints,
38 const AutomaticMortarGeneration & amg,
39 SubProblem & subproblem,
40 FEProblemBase & fe_problem,
41 bool displaced,
42 Assembly & assembly);
43
46
50 void operator()(Moose::ComputeType compute_type,
51 const std::set<TagID> & vector_tag_ids,
52 const std::set<TagID> & matrix_tag_ids);
53
54private:
59 std::vector<MortarConstraintBase *> _mortar_constraints;
60
63
66
71
73 const bool _displaced;
74
77};
Keeps track of stuff related to assembling.
Definition Assembly.h:110
This class is a container/interface for the objects involved in automatic generation of mortar spaces...
Assembly & _assembly
A reference to the assembly object.
void setupMortarMaterials()
Setup step for materials that needs to be re-done if subdomains change.
void operator()(Moose::ComputeType compute_type, const std::set< TagID > &vector_tag_ids, const std::set< TagID > &matrix_tag_ids)
Loops over the mortar segment mesh and computes the residual/Jacobian.
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...
const bool _displaced
Whether the mortar constraints are operating on the displaced mesh.
std::vector< MortarConstraintBase * > _mortar_constraints
The mortar constraints to loop over when on each element.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
MaterialBases compute MaterialProperties.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition MooseMesh.h:95
User for mortar methods.
Interface for notifications that the mortar mesh has been setup.
Generic class for solving transient nonlinear problems.
Definition SubProblem.h:79
ComputeType
The type of nonlinear computation being performed.
Definition MooseTypes.h:835
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
FEGenericBase< Real > FEBase
template class LIBMESH_EXPORT FEGenericBase< Real >