https://mooseframework.inl.gov
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 
18 class SubProblem;
19 class FEProblemBase;
21 class Assembly;
22 class MooseMesh;
23 class MaterialBase;
24 
25 namespace libMesh
26 {
27 class QBase;
28 template <typename>
29 class FEGenericBase;
31 }
32 
34 {
35 public:
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 
47  void operator()(Moose::ComputeType compute_type,
48  const std::set<TagID> & vector_tag_ids,
49  const std::set<TagID> & matrix_tag_ids);
50 
51 private:
56  std::vector<MortarConstraintBase *> _mortar_constraints;
57 
60 
63 
68 
70  const bool _displaced;
71 
74 };
User for mortar methods.
Keeps track of stuff related to assembling.
Definition: Assembly.h:101
Interface for notifications that the mortar mesh has been setup.
SubProblem & _subproblem
A reference to the SubProblem object for reiniting lower-dimensional element quantities.
const AutomaticMortarGeneration & _amg
Automatic mortar generation (amg) object providing the mortar mesh to loop over.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
const bool _displaced
Whether the mortar constraints are operating on the displaced mesh.
This class is a container/interface for the objects involved in automatic generation of mortar spaces...
ComputeMortarFunctor(const std::vector< std::shared_ptr< MortarConstraintBase >> &mortar_constraints, const AutomaticMortarGeneration &amg, SubProblem &subproblem, FEProblemBase &fe_problem, bool displaced, Assembly &assembly)
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
FEGenericBase< Real > FEBase
ComputeType
The type of nonlinear computation being performed.
Definition: MooseTypes.h:780
std::vector< MortarConstraintBase * > _mortar_constraints
The mortar constraints to loop over when on each element.
Generic class for solving transient nonlinear problems.
Definition: SubProblem.h:78
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.
FEProblemBase & _fe_problem
A reference to the FEProblemBase object for reiniting higher-dimensional element and neighbor element...
template class LIBMESH_EXPORT FEGenericBase< Real >
MaterialBases compute MaterialProperties.
Definition: MaterialBase.h:62
Assembly & _assembly
A reference to the assembly object.