www.mooseframework.org
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
BoundaryRestrictable Class Reference

/class BoundaryRestrictable /brief Provides functionality for limiting the object to certain boundary ids The is class the inheriting class with methods useful for limiting an object to certain boundaries. More...

#include <BoundaryRestrictable.h>

Inheritance diagram for BoundaryRestrictable:
[legend]

Public Types

enum  TEST_TYPE { ALL, ANY }
 A flag changing the behavior of hasBoundary. More...
 

Public Member Functions

 BoundaryRestrictable (const MooseObject *moose_object, bool nodal)
 Class constructor Populates the _bnd_ids for the given boundary names supplied with the 'boundary' input parameter. More...
 
 BoundaryRestrictable (const MooseObject *moose_object, const std::set< SubdomainID > &block_ids, bool nodal)
 Class constructor Populates the 'block' input parameters when an object is also block restricted, see the general class documentation for details. More...
 
virtual ~BoundaryRestrictable ()
 Empty class destructor. More...
 
virtual const std::set< BoundaryID > & boundaryIDs () const
 Return the boundary IDs for this object. More...
 
const std::vector< BoundaryName > & boundaryNames () const
 Return the boundary names for this object. More...
 
unsigned int numBoundaryIDs () const
 Return the number of boundaries for this object. More...
 
bool hasBoundary (const BoundaryName &name) const
 Test if the supplied boundary name is valid for this object. More...
 
bool hasBoundary (const std::vector< BoundaryName > &names) const
 Test if the supplied vector of boundary names are valid for this object. More...
 
bool hasBoundary (const BoundaryID &id) const
 Test if the supplied boundary ids are valid for this object. More...
 
bool hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const
 Test if the supplied vector boundary ids are valid for this object. More...
 
bool hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const
 Test if the supplied set of boundary ids are valid for this object. More...
 
bool isBoundarySubset (const std::set< BoundaryID > &ids) const
 Test if the class boundary ids are a subset of the supplied objects. More...
 
bool isBoundarySubset (const std::vector< BoundaryID > &ids) const
 
template<typename T >
bool hasBoundaryMaterialProperty (const std::string &prop_name) const
 Check if a material property is valid for all boundaries of this object. More...
 
virtual bool boundaryRestricted () const
 Returns true if this object has been restricted to a boundary. More...
 
const std::set< BoundaryID > & meshBoundaryIDs () const
 Returns the set of all boundary ids for the entire mesh. More...
 

Static Public Member Functions

static bool restricted (const std::set< BoundaryID > &ids)
 Helper for determining if the object is boundary restricted. More...
 

Protected Member Functions

bool hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const
 A helper method to avoid circular #include problems. More...
 

Private Member Functions

void initializeBoundaryRestrictable (const MooseObject *moose_object)
 An initialization routine needed for dual constructors. More...
 

Private Attributes

FEProblemBase_bnd_feproblem
 Pointer to FEProblemBase. More...
 
MooseMesh_bnd_mesh
 Point to mesh. More...
 
std::set< BoundaryID_bnd_ids
 Set of the boundary ids. More...
 
std::vector< BoundaryName > _boundary_names
 Vector the the boundary names. More...
 
const bool _bnd_dual_restrictable
 Flag for allowing dual restriction with BlockRestrictable. More...
 
const std::set< SubdomainID_empty_block_ids
 An empty set for referencing when block_ids is not included. More...
 
const std::set< SubdomainID > & _block_ids
 Reference to the block_ids, defaults to an empty set if not provided. More...
 
THREAD_ID _bnd_tid
 Thread id for this object. More...
 
std::shared_ptr< MaterialData_bnd_material_data
 Pointer to MaterialData for boundary (. More...
 
bool _bnd_nodal
 Whether or not this object is restricted to nodesets. More...
 

Detailed Description

/class BoundaryRestrictable /brief Provides functionality for limiting the object to certain boundary ids The is class the inheriting class with methods useful for limiting an object to certain boundaries.

The parameters "_boundary_id" and "boundary", which are created with validParams<BoundaryRestrictable> are used the framework.

Definition at line 36 of file BoundaryRestrictable.h.

Member Enumeration Documentation

A flag changing the behavior of hasBoundary.

Enumerator
ALL 
ANY 

Definition at line 40 of file BoundaryRestrictable.h.

Constructor & Destructor Documentation

BoundaryRestrictable::BoundaryRestrictable ( const MooseObject moose_object,
bool  nodal 
)

Class constructor Populates the _bnd_ids for the given boundary names supplied with the 'boundary' input parameter.

Parameters
parametersThe input parameters
nodalTrue indicates that the object is operating on nodesets, false for sidesets

Definition at line 41 of file BoundaryRestrictable.C.

42  : _bnd_feproblem(moose_object->isParamValid("_fe_problem_base")
43  ? moose_object->getParam<FEProblemBase *>("_fe_problem_base")
44  : NULL),
45  _bnd_mesh(moose_object->isParamValid("_mesh") ? moose_object->getParam<MooseMesh *>("_mesh")
46  : NULL),
47  _bnd_dual_restrictable(moose_object->getParam<bool>("_dual_restrictable")),
49  _bnd_tid(moose_object->isParamValid("_tid") ? moose_object->getParam<THREAD_ID>("_tid") : 0),
51  _bnd_nodal(nodal)
52 {
53  initializeBoundaryRestrictable(moose_object);
54 }
void initializeBoundaryRestrictable(const MooseObject *moose_object)
An initialization routine needed for dual constructors.
MooseMesh * _bnd_mesh
Point to mesh.
const bool _bnd_dual_restrictable
Flag for allowing dual restriction with BlockRestrictable.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
THREAD_ID _bnd_tid
Thread id for this object.
const std::set< SubdomainID > _empty_block_ids
An empty set for referencing when block_ids is not included.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
bool _bnd_nodal
Whether or not this object is restricted to nodesets.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseObject.h:67
std::shared_ptr< MaterialData > _bnd_material_data
Pointer to MaterialData for boundary (.
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseObject.h:122
std::shared_ptr< MaterialData > getMaterialData(Moose::MaterialDataType type, THREAD_ID tid=0)
const std::set< SubdomainID > & _block_ids
Reference to the block_ids, defaults to an empty set if not provided.
FEProblemBase * _bnd_feproblem
Pointer to FEProblemBase.
unsigned int THREAD_ID
Definition: MooseTypes.h:79
BoundaryRestrictable::BoundaryRestrictable ( const MooseObject moose_object,
const std::set< SubdomainID > &  block_ids,
bool  nodal 
)

Class constructor Populates the 'block' input parameters when an object is also block restricted, see the general class documentation for details.

Parameters
parametersThe input parameters (see the detailed help for additional information)
block_idsThe block ids that the object is restricted to
nodalTrue indicates that the object is operating on nodesets, false for sidesets

Definition at line 57 of file BoundaryRestrictable.C.

60  : _bnd_feproblem(moose_object->isParamValid("_fe_problem_base")
61  ? moose_object->getParam<FEProblemBase *>("_fe_problem_base")
62  : NULL),
63  _bnd_mesh(moose_object->isParamValid("_mesh") ? moose_object->getParam<MooseMesh *>("_mesh")
64  : NULL),
65  _bnd_dual_restrictable(moose_object->getParam<bool>("_dual_restrictable")),
66  _block_ids(block_ids),
67  _bnd_tid(moose_object->isParamValid("_tid") ? moose_object->getParam<THREAD_ID>("_tid") : 0),
69  _bnd_nodal(nodal)
70 {
71  initializeBoundaryRestrictable(moose_object);
72 }
void initializeBoundaryRestrictable(const MooseObject *moose_object)
An initialization routine needed for dual constructors.
MooseMesh * _bnd_mesh
Point to mesh.
const bool _bnd_dual_restrictable
Flag for allowing dual restriction with BlockRestrictable.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
THREAD_ID _bnd_tid
Thread id for this object.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
bool _bnd_nodal
Whether or not this object is restricted to nodesets.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseObject.h:67
std::shared_ptr< MaterialData > _bnd_material_data
Pointer to MaterialData for boundary (.
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseObject.h:122
std::shared_ptr< MaterialData > getMaterialData(Moose::MaterialDataType type, THREAD_ID tid=0)
const std::set< SubdomainID > & _block_ids
Reference to the block_ids, defaults to an empty set if not provided.
FEProblemBase * _bnd_feproblem
Pointer to FEProblemBase.
unsigned int THREAD_ID
Definition: MooseTypes.h:79
BoundaryRestrictable::~BoundaryRestrictable ( )
virtual

Empty class destructor.

Definition at line 150 of file BoundaryRestrictable.C.

150 {}

Member Function Documentation

const std::set< BoundaryID > & BoundaryRestrictable::boundaryIDs ( ) const
virtual

Return the boundary IDs for this object.

Returns
A set of all boundary ids for which the object is restricted

Definition at line 153 of file BoundaryRestrictable.C.

Referenced by NonlinearSystemBase::addBoundaryCondition(), NonlinearSystemBase::addInterfaceKernel(), AutoPositionsMultiApp::fillPositions(), Material::getZeroMaterialProperty(), hasBoundaryMaterialPropertyHelper(), and Material::registerPropName().

154 {
155  return _bnd_ids;
156 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
const std::vector< BoundaryName > & BoundaryRestrictable::boundaryNames ( ) const

Return the boundary names for this object.

Returns
A set of all boundary names for which the object is restricted

Definition at line 159 of file BoundaryRestrictable.C.

Referenced by NearestNodeDistanceAux::NearestNodeDistanceAux(), and NearestNodeValueAux::NearestNodeValueAux().

160 {
161  return _boundary_names;
162 }
std::vector< BoundaryName > _boundary_names
Vector the the boundary names.
bool BoundaryRestrictable::boundaryRestricted ( ) const
virtual

Returns true if this object has been restricted to a boundary.

See also
MooseObject

Definition at line 171 of file BoundaryRestrictable.C.

Referenced by DerivativeMaterialInterface< T >::haveMaterialProperty().

172 {
174 }
static bool restricted(const std::set< BoundaryID > &ids)
Helper for determining if the object is boundary restricted.
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
bool BoundaryRestrictable::hasBoundary ( const BoundaryName &  name) const

Test if the supplied boundary name is valid for this object.

Parameters
nameA BoundaryName to check
Returns
True if the given id is valid for this object

Definition at line 183 of file BoundaryRestrictable.C.

Referenced by hasBoundary(), and hasBoundaryMaterialPropertyHelper().

184 {
185  // Create a vector and utilize the getBoundaryIDs function, which
186  // handles the ANY_BOUNDARY_ID (getBoundaryID does not)
187  return hasBoundary(_bnd_mesh->getBoundaryIDs({name}));
188 }
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:1990
MooseMesh * _bnd_mesh
Point to mesh.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
bool BoundaryRestrictable::hasBoundary ( const std::vector< BoundaryName > &  names) const

Test if the supplied vector of boundary names are valid for this object.

Parameters
namesA vector of BoundaryNames to check
Returns
True if the given ids are valid for this object

Definition at line 191 of file BoundaryRestrictable.C.

192 {
193  return hasBoundary(_bnd_mesh->getBoundaryIDs(names));
194 }
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:1990
MooseMesh * _bnd_mesh
Point to mesh.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
bool BoundaryRestrictable::hasBoundary ( const BoundaryID id) const

Test if the supplied boundary ids are valid for this object.

Parameters
idA BoundaryID to check
Returns
True if the given id is valid for this object

Definition at line 197 of file BoundaryRestrictable.C.

198 {
199  if (_bnd_ids.empty() || _bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
200  return true;
201  else
202  return _bnd_ids.find(id) != _bnd_ids.end();
203 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
bool BoundaryRestrictable::hasBoundary ( const std::vector< BoundaryID > &  ids,
TEST_TYPE  type = ALL 
) const

Test if the supplied vector boundary ids are valid for this object.

Parameters
idsA vector of BoundaryIDs ids to check
typeA flag for the type of matching to perform: ALL requires that all supplied ids must match those of the object; ANY requires that any one of the supplied ids must match those of the object
Returns
True if the all of the given ids are found within the ids for this object

Definition at line 206 of file BoundaryRestrictable.C.

207 {
208  std::set<BoundaryID> ids_set(ids.begin(), ids.end());
209  return hasBoundary(ids_set, type);
210 }
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
MatType type
bool BoundaryRestrictable::hasBoundary ( const std::set< BoundaryID > &  ids,
TEST_TYPE  type = ALL 
) const

Test if the supplied set of boundary ids are valid for this object.

Parameters
idsA std::set of BoundaryIDs to check
typeA flag for the type of matching to perform: ALL requires that all supplied ids must match those of the object; ANY requires that any one of the supplied ids must match those of the object
Returns
True if the all of the given ids are found within the ids for this object
See also
isSubset

Definition at line 213 of file BoundaryRestrictable.C.

214 {
215  // An empty input is assumed to be ANY_BOUNDARY_ID
216  if (ids.empty() || ids.find(Moose::ANY_BOUNDARY_ID) != ids.end())
217  return true;
218 
219  // All supplied IDs must match those of the object
220  else if (type == ALL)
221  {
222  if (_bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
223  return true;
224  else
225  return std::includes(_bnd_ids.begin(), _bnd_ids.end(), ids.begin(), ids.end());
226  }
227  // Any of the supplied IDs must match those of the object
228  else
229  {
230  // Loop through the supplied ids
231  for (const auto & id : ids)
232  {
233  // Test the current supplied id
234  bool test = hasBoundary(id);
235 
236  // If the id exists in the stored ids, then return true, otherwise
237  if (test)
238  return true;
239  }
240  return false;
241  }
242 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
MatType type
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
template<typename T >
bool BoundaryRestrictable::hasBoundaryMaterialProperty ( const std::string &  prop_name) const

Check if a material property is valid for all boundaries of this object.

This method returns true if the supplied property name has been declared in a Material object on the boundary ids for this object.

Template Parameters
TThe type of material property
Parameters
prop_namethe name of the property to query
Returns
true if the property exists for all boundary ids of the object, otherwise false

Definition at line 228 of file BoundaryRestrictable.h.

229 {
230  // If you get here the supplied property is defined on all boundaries, but is still subject
231  // existence in the MateialData class
232  return hasBoundaryMaterialPropertyHelper(prop_name) &&
233  _bnd_material_data->haveProperty<T>(prop_name);
234 }
bool hasBoundaryMaterialPropertyHelper(const std::string &prop_name) const
A helper method to avoid circular #include problems.
std::shared_ptr< MaterialData > _bnd_material_data
Pointer to MaterialData for boundary (.
bool BoundaryRestrictable::hasBoundaryMaterialPropertyHelper ( const std::string &  prop_name) const
protected

A helper method to avoid circular #include problems.

See also
hasBoundaryMaterialProperty

Definition at line 274 of file BoundaryRestrictable.C.

Referenced by hasBoundaryMaterialProperty().

275 {
276  // Reference to MaterialWarehouse for testing and retrieving boundary ids
278 
279  // Complete set of BoundaryIDs that this object is defined
280  const std::set<BoundaryID> & ids =
282 
283  // Loop over each BoundaryID for this object
284  for (const auto & id : ids)
285  {
286  // Storage of material properties that have been DECLARED on this BoundaryID
287  std::set<std::string> declared_props;
288 
289  // If boundary materials exist, populated the set of properties that were declared
290  if (warehouse.hasActiveBoundaryObjects(id))
291  {
292  const std::vector<std::shared_ptr<Material>> & mats = warehouse.getActiveBoundaryObjects(id);
293  for (const auto & mat : mats)
294  {
295  const std::set<std::string> & mat_props = mat->getSuppliedItems();
296  declared_props.insert(mat_props.begin(), mat_props.end());
297  }
298  }
299 
300  // If the supplied property is not in the list of properties on the current id, return false
301  if (declared_props.find(prop_name) == declared_props.end())
302  return false;
303  }
304 
305  // If you get here the supplied property is defined on all boundaries
306  return true;
307 }
virtual const std::set< BoundaryID > & boundaryIDs() const
Return the boundary IDs for this object.
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getActiveBoundaryObjects(THREAD_ID tid=0) const
Material objects are special in that they have additional objects created automatically (see FEProble...
const std::set< BoundaryID > & meshBoundaryIDs() const
Returns the set of all boundary ids for the entire mesh.
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
const MaterialWarehouse & getMaterialWarehouse()
FEProblemBase * _bnd_feproblem
Pointer to FEProblemBase.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
void BoundaryRestrictable::initializeBoundaryRestrictable ( const MooseObject moose_object)
private

An initialization routine needed for dual constructors.

Definition at line 75 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable().

76 {
77  // The name and id of the object
78  const std::string & name = moose_object->getParam<std::string>("_object_name");
79 
80  // If the mesh pointer is not defined, but FEProblemBase is, get it from there
81  if (_bnd_feproblem != NULL && _bnd_mesh == NULL)
83 
84  // Check that the mesh pointer was defined, it is required for this class to operate
85  if (_bnd_mesh == NULL)
86  mooseError("The input parameters must contain a pointer to FEProblemBase via '_fe_problem' or "
87  "a pointer to the MooseMesh via '_mesh'");
88 
89  // If the user supplies boundary IDs
90  if (moose_object->isParamValid("boundary"))
91  {
92  // Extract the blocks from the input
93  _boundary_names = moose_object->getParam<std::vector<BoundaryName>>("boundary");
94 
95  // Get the IDs from the supplied names
96  std::vector<BoundaryID> vec_ids = _bnd_mesh->getBoundaryIDs(_boundary_names, true);
97 
98  // Store the IDs, handling ANY_BOUNDARY_ID if supplied
99  if (std::find(_boundary_names.begin(), _boundary_names.end(), "ANY_BOUNDARY_ID") !=
100  _boundary_names.end())
102  else
103  _bnd_ids.insert(vec_ids.begin(), vec_ids.end());
104  }
105 
106  // Produce error if the object is not allowed to be both block and boundary restricted
107  if (!_bnd_dual_restrictable && !_bnd_ids.empty() && !_block_ids.empty())
108  if (!_block_ids.empty() && _block_ids.find(Moose::ANY_BLOCK_ID) == _block_ids.end())
109  mooseError("Attempted to restrict the object '",
110  name,
111  "' to a boundary, but the object is already restricted by block(s)");
112 
113  // Store ANY_BOUNDARY_ID if empty
114  if (_bnd_ids.empty())
115  {
117  _boundary_names = {"ANY_BOUNDARY_ID"};
118  }
119 
120  // If this object is block restricted, check that defined blocks exist on the mesh
121  if (_bnd_ids.find(Moose::ANY_BOUNDARY_ID) == _bnd_ids.end())
122  {
123  const std::set<BoundaryID> * valid_ids;
124 
125  if (_bnd_nodal)
126  valid_ids = &_bnd_mesh->meshNodesetIds();
127  else
128  valid_ids = &_bnd_mesh->meshSidesetIds();
129 
130  std::vector<BoundaryID> diff;
131 
132  std::set_difference(_bnd_ids.begin(),
133  _bnd_ids.end(),
134  valid_ids->begin(),
135  valid_ids->end(),
136  std::back_inserter(diff));
137 
138  if (!diff.empty())
139  {
140  std::ostringstream msg;
141  msg << "The object '" << name
142  << "' contains the following boundary ids that do not exist on the mesh:";
143  for (const auto & id : diff)
144  msg << " " << id;
145  mooseError(msg.str());
146  }
147  }
148 }
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:1990
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseMesh * _bnd_mesh
Point to mesh.
const std::set< BoundaryID > & meshSidesetIds() const
Returns a read-only reference to the set of sidesets currently present in the Mesh.
Definition: MooseMesh.C:2169
const bool _bnd_dual_restrictable
Flag for allowing dual restriction with BlockRestrictable.
const std::set< BoundaryID > & meshNodesetIds() const
Returns a read-only reference to the set of nodesets currently present in the Mesh.
Definition: MooseMesh.C:2175
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
bool _bnd_nodal
Whether or not this object is restricted to nodesets.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseObject.h:67
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseObject.h:122
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.h:117
std::vector< BoundaryName > _boundary_names
Vector the the boundary names.
virtual MooseMesh & mesh() override
const std::set< SubdomainID > & _block_ids
Reference to the block_ids, defaults to an empty set if not provided.
FEProblemBase * _bnd_feproblem
Pointer to FEProblemBase.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
bool BoundaryRestrictable::isBoundarySubset ( const std::set< BoundaryID > &  ids) const

Test if the class boundary ids are a subset of the supplied objects.

Parameters
idsA std::set of boundaries to check
Returns
True if all of the boundary ids for this class are found within the given ids (opposite of hasBoundary)
See also
hasBoundary

Definition at line 245 of file BoundaryRestrictable.C.

Referenced by isBoundarySubset().

246 {
247  // An empty input is assumed to be ANY_BOUNDARY_ID
248  if (ids.empty() || ids.find(Moose::ANY_BOUNDARY_ID) != ids.end())
249  return true;
250 
251  if (_bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
252  return std::includes(ids.begin(),
253  ids.end(),
254  _bnd_mesh->meshBoundaryIds().begin(),
255  _bnd_mesh->meshBoundaryIds().end());
256  else
257  return std::includes(ids.begin(), ids.end(), _bnd_ids.begin(), _bnd_ids.end());
258 }
const std::set< BoundaryID > & meshBoundaryIds() const
Returns a read-only reference to the set of boundary IDs currently present in the Mesh...
Definition: MooseMesh.C:2163
MooseMesh * _bnd_mesh
Point to mesh.
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
bool BoundaryRestrictable::isBoundarySubset ( const std::vector< BoundaryID > &  ids) const

Definition at line 261 of file BoundaryRestrictable.C.

262 {
263  std::set<BoundaryID> ids_set(ids.begin(), ids.end());
264  return isBoundarySubset(ids_set);
265 }
bool isBoundarySubset(const std::set< BoundaryID > &ids) const
Test if the class boundary ids are a subset of the supplied objects.
const std::set< BoundaryID > & BoundaryRestrictable::meshBoundaryIDs ( ) const

Returns the set of all boundary ids for the entire mesh.

Returns
A const reference the the boundary ids for the entire mesh

Definition at line 268 of file BoundaryRestrictable.C.

Referenced by hasBoundaryMaterialPropertyHelper().

269 {
270  return _bnd_mesh->getBoundaryIDs();
271 }
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:1990
MooseMesh * _bnd_mesh
Point to mesh.
unsigned int BoundaryRestrictable::numBoundaryIDs ( ) const

Return the number of boundaries for this object.

Returns
The number of boundary ids

Definition at line 165 of file BoundaryRestrictable.C.

166 {
167  return (unsigned int)_bnd_ids.size();
168 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
bool BoundaryRestrictable::restricted ( const std::set< BoundaryID > &  ids)
static

Helper for determining if the object is boundary restricted.

This is needed for the MaterialPropertyInterface.

Definition at line 177 of file BoundaryRestrictable.C.

Referenced by boundaryRestricted().

178 {
179  return ids.find(Moose::ANY_BOUNDARY_ID) == ids.end();
180 }
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119

Member Data Documentation

const std::set<SubdomainID>& BoundaryRestrictable::_block_ids
private

Reference to the block_ids, defaults to an empty set if not provided.

Definition at line 202 of file BoundaryRestrictable.h.

Referenced by initializeBoundaryRestrictable().

const bool BoundaryRestrictable::_bnd_dual_restrictable
private

Flag for allowing dual restriction with BlockRestrictable.

Definition at line 196 of file BoundaryRestrictable.h.

Referenced by initializeBoundaryRestrictable().

FEProblemBase* BoundaryRestrictable::_bnd_feproblem
private
std::set<BoundaryID> BoundaryRestrictable::_bnd_ids
private
std::shared_ptr<MaterialData> BoundaryRestrictable::_bnd_material_data
private

Pointer to MaterialData for boundary (.

See also
hasBoundaryMaterialProperty)

Definition at line 208 of file BoundaryRestrictable.h.

Referenced by hasBoundaryMaterialProperty().

MooseMesh* BoundaryRestrictable::_bnd_mesh
private

Point to mesh.

Definition at line 187 of file BoundaryRestrictable.h.

Referenced by hasBoundary(), initializeBoundaryRestrictable(), isBoundarySubset(), and meshBoundaryIDs().

bool BoundaryRestrictable::_bnd_nodal
private

Whether or not this object is restricted to nodesets.

Definition at line 211 of file BoundaryRestrictable.h.

Referenced by initializeBoundaryRestrictable().

THREAD_ID BoundaryRestrictable::_bnd_tid
private

Thread id for this object.

Definition at line 205 of file BoundaryRestrictable.h.

std::vector<BoundaryName> BoundaryRestrictable::_boundary_names
private

Vector the the boundary names.

Definition at line 193 of file BoundaryRestrictable.h.

Referenced by boundaryNames(), and initializeBoundaryRestrictable().

const std::set<SubdomainID> BoundaryRestrictable::_empty_block_ids
private

An empty set for referencing when block_ids is not included.

Definition at line 199 of file BoundaryRestrictable.h.


The documentation for this class was generated from the following files: