Line data Source code
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 : 16 : class FEProblemBase; 17 : class MortarData; 18 : class MaterialBase; 19 : 20 : /** 21 : * Interface for notifications that the mortar mesh has been setup 22 : */ 23 : class MortarExecutorInterface 24 : { 25 : public: 26 997 : MortarExecutorInterface() = default; 27 : 28 : protected: 29 : /** 30 : * @name Materials for Mortar 31 : * These containers hold the materials whose properties are required by a given set of consumers. 32 : * Note that these containers will also hold materials that may not provide properties explicitly 33 : * needed by the \em consumers but do provided properties that are dependencies of the materials 34 : * that \em do provide properties needed by the consumers 35 : */ 36 : ///@{ 37 : /// A map from secondary interior parent subdomain IDs to the block materials that will need to 38 : /// reinit'd on the secondary face 39 : std::map<SubdomainID, std::deque<MaterialBase *>> _secondary_ip_sub_to_mats; 40 : 41 : /// A map from primary interior parent subdomain IDs to the block materials that will need to 42 : /// reinit'd on the primary face 43 : std::map<SubdomainID, std::deque<MaterialBase *>> _primary_ip_sub_to_mats; 44 : 45 : /// A container that holds the boundary materials that will need to be reinit'd on the secondary 46 : /// face 47 : std::deque<MaterialBase *> _secondary_boundary_mats; 48 : ///@} 49 : };