https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MortarExecutorInterface.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"
13#include <map>
14#include <deque>
15#include <set>
16
17class FEProblemBase;
19class MaterialBase;
21
32{
33public:
39
46
58 virtual ~MortarExecutorInterface() = default;
59
65 virtual void mortarSetup(const AutomaticMortarGeneration & amg) = 0;
66
67protected:
70
81 std::map<SubdomainID, std::deque<MaterialBase *>> _secondary_ip_sub_to_mats;
82
85 std::map<SubdomainID, std::deque<MaterialBase *>> _primary_ip_sub_to_mats;
86
89 std::deque<MaterialBase *> _secondary_boundary_mats;
91};
This class is a container/interface for the objects involved in automatic generation of mortar spaces...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
MaterialBases compute MaterialProperties.
Interface for objects that need to be notified when the mortar segment mesh for an interface they con...
MortarInterfaceWarehouse & _mortar_warehouse
The warehouse this object is registered with for mortar setup notifications.
virtual void mortarSetup(const AutomaticMortarGeneration &amg)=0
Called by the MortarInterfaceWarehouse whenever amg's mortar segment mesh coverage has changed,...
virtual ~MortarExecutorInterface()=default
This object does not deregister from the warehouse on destruction: FEProblemBase destroys its MortarI...
std::map< SubdomainID, std::deque< MaterialBase * > > _primary_ip_sub_to_mats
A map from primary interior parent subdomain IDs to the block materials that will need to reinit'd on...
std::deque< MaterialBase * > _secondary_boundary_mats
A container that holds the boundary materials that will need to be reinit'd on the secondary face.
std::map< SubdomainID, std::deque< MaterialBase * > > _secondary_ip_sub_to_mats