https://mooseframework.inl.gov
Attributes.C
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 #include "Attributes.h"
11 
12 #include "TaggingInterface.h"
13 #include "BoundaryRestrictable.h"
14 #include "BlockRestrictable.h"
15 #include "SetupInterface.h"
16 #include "MooseVariableInterface.h"
17 #include "MooseVariableFE.h"
18 #include "ElementUserObject.h"
19 #include "SideUserObject.h"
20 #include "InternalSideUserObject.h"
21 #include "InterfaceUserObject.h"
22 #include "NodalUserObject.h"
23 #include "GeneralUserObject.h"
25 #include "ShapeUserObject.h"
26 #include "ShapeSideUserObject.h"
27 #include "ShapeElementUserObject.h"
28 #include "Reporter.h"
29 #include "SystemBase.h"
30 #include "DomainUserObject.h"
31 #include "MortarUserObject.h"
32 #include "FVInterpolationMethod.h"
33 #include "ExecFlagRegistry.h"
34 
35 #include <algorithm>
36 
37 const ExecFlagType AttribExecOns::EXEC_ALL = registerExecFlag("ALL");
38 
39 std::ostream &
40 operator<<(std::ostream & os, Interfaces & iface)
41 {
42  os << "Interfaces(";
43  if (static_cast<bool>(iface & Interfaces::UserObject))
44  os << "|UserObject";
45  if (static_cast<bool>(iface & Interfaces::ElementUserObject))
46  os << "|ElementUserObject";
47  if (static_cast<bool>(iface & Interfaces::SideUserObject))
48  os << "|SideUserObject";
49  if (static_cast<bool>(iface & Interfaces::InternalSideUserObject))
50  os << "|InternalSideUserObject";
51  if (static_cast<bool>(iface & Interfaces::NodalUserObject))
52  os << "|NodalUserObject";
53  if (static_cast<bool>(iface & Interfaces::GeneralUserObject))
54  os << "|GeneralUserObject";
55  if (static_cast<bool>(iface & Interfaces::ThreadedGeneralUserObject))
56  os << "|ThreadedGeneralUserObject";
57  if (static_cast<bool>(iface & Interfaces::ShapeElementUserObject))
58  os << "|ShapeElementUserObject";
59  if (static_cast<bool>(iface & Interfaces::ShapeSideUserObject))
60  os << "|ShapeSideUserObject";
61  if (static_cast<bool>(iface & Interfaces::Postprocessor))
62  os << "|Postprocessor";
63  if (static_cast<bool>(iface & Interfaces::VectorPostprocessor))
64  os << "|VectorPostprocessor";
65  if (static_cast<bool>(iface & Interfaces::InterfaceUserObject))
66  os << "|InterfaceUserObject";
67  if (static_cast<bool>(iface & Interfaces::Reporter))
68  os << "|Reporter";
69  if (static_cast<bool>(iface & Interfaces::DomainUserObject))
70  os << "|DomainUserObject";
71  if (static_cast<bool>(iface & Interfaces::MortarUserObject))
72  os << "|MortarUserObject";
73  if (static_cast<bool>(iface & Interfaces::FVInterpolationMethod))
74  os << "|FVInterpolationMethod";
75  os << ")";
76  return os;
77 }
78 
79 bool
80 AttribTagBase::isMatch(const Attribute & other) const
81 {
82  auto a = dynamic_cast<const AttribTagBase *>(&other);
83  if (!a)
84  return false;
85  if (a->_vals.size() == 0)
86  return true; // the condition is empty tags - which we take to mean any tag should match
87 
88  // return true if any single tag matches between the two attribute objects
89  for (auto val : _vals)
90  if (std::find(a->_vals.begin(), a->_vals.end(), val) != a->_vals.end())
91  return true;
92  return false;
93 }
94 
95 bool
96 AttribTagBase::isEqual(const Attribute & other) const
97 {
98  auto a = dynamic_cast<const AttribTagBase *>(&other);
99  if (!a || a->_vals.size() != _vals.size())
100  return false;
101 
102  for (size_t i = 0; i < a->_vals.size(); i++)
103  if (a->_vals[i] != _vals[i])
104  return false;
105  return true;
106 }
107 
108 void
110 {
111  _vals.clear();
112  auto t = dynamic_cast<const TaggingInterface *>(obj);
113  if (t)
114  {
115  for (auto & tag : t->getMatrixTags({}))
116  _vals.push_back(static_cast<int>(tag));
117  }
118 }
119 
120 void
122 {
123  _vals.clear();
124  auto t = dynamic_cast<const TaggingInterface *>(obj);
125  if (t)
126  {
127  for (auto & tag : t->getVectorTags({}))
128  _vals.push_back(static_cast<int>(tag));
129  }
130 }
131 
132 void
134 {
135  _vals.clear();
136  if (const auto sup = dynamic_cast<const SetupInterface *>(obj))
137  {
138  const auto & current_items = sup->getExecuteOnEnum();
139  _vals.reserve(current_items.size());
140  for (auto & on : current_items)
141  _vals.push_back(on);
142  }
143 }
144 
145 bool
146 AttribExecOns::isMatch(const Attribute & other) const
147 {
148  auto a = dynamic_cast<const AttribExecOns *>(&other);
149  if (!a || a->_vals.empty())
150  return false;
151  auto cond = a->_vals[0];
152  if (cond == EXEC_ALL)
153  return true;
154 
155  for (const auto val : _vals)
156  if (val == EXEC_ALL || val == cond)
157  return true;
158  return false;
159 }
160 
161 bool
162 AttribExecOns::isEqual(const Attribute & other) const
163 {
164  auto a = dynamic_cast<const AttribExecOns *>(&other);
165  if (!a || a->_vals.size() != _vals.size())
166  return false;
167 
168  for (size_t i = 0; i < a->_vals.size(); i++)
169  if (a->_vals[i] != _vals[i])
170  return false;
171  return true;
172 }
173 
174 void
176 {
177  _vals.clear();
178  auto blk = dynamic_cast<const BlockRestrictable *>(obj);
179  if (blk && blk->blockRestricted())
180  {
181  for (auto id : blk->blockIDs())
182  _vals.push_back(id);
183  }
184  else
185  _vals.push_back(Moose::ANY_BLOCK_ID);
186 }
187 
188 bool
190 {
191  auto a = dynamic_cast<const AttribSubdomains *>(&other);
192  if (!a || a->_vals.size() < 1)
193  return false;
194 
195  auto cond = a->_vals[0];
196  if (cond == Moose::ANY_BLOCK_ID)
197  return true;
198  else if (cond == Moose::INVALID_BLOCK_ID)
199  return false;
200 
201  for (auto id : _vals)
202  {
203  if (id == cond || id == Moose::ANY_BLOCK_ID)
204  return true;
205  }
206  return false;
207 }
208 
209 bool
211 {
212  auto a = dynamic_cast<const AttribSubdomains *>(&other);
213  if (!a || a->_vals.size() != _vals.size())
214  return false;
215 
216  for (size_t i = 0; i < a->_vals.size(); i++)
217  if (a->_vals[i] != _vals[i])
218  return false;
219  return true;
220 }
221 
222 void
224 {
225  _vals.clear();
226  auto bnd = dynamic_cast<const BoundaryRestrictable *>(obj);
227  if (bnd && bnd->boundaryRestricted())
228  {
229  for (auto & bound : bnd->boundaryIDs())
230  _vals.push_back(bound);
231  }
232  else
233  _vals.push_back(Moose::ANY_BOUNDARY_ID);
234 }
235 
236 bool
238 {
239  auto a = dynamic_cast<const AttribBoundaries *>(&other);
240  if (!a || a->_vals.size() < 1)
241  return false;
242 
243  // return true if a single tag matches between the two attribute objects
244  for (auto val : _vals)
245  {
246  if (!a->_must_be_restricted && (val == Moose::ANY_BOUNDARY_ID))
247  return true;
248  if (std::find(a->_vals.begin(), a->_vals.end(), val) != a->_vals.end())
249  return true;
250  else if (std::find(a->_vals.begin(), a->_vals.end(), Moose::ANY_BOUNDARY_ID) != a->_vals.end())
251  return true;
252  }
253  return false;
254 }
255 
256 bool
258 {
259  auto a = dynamic_cast<const AttribBoundaries *>(&other);
260  if (!a || a->_vals.size() != _vals.size())
261  return false;
262 
263  for (size_t i = 0; i < a->_vals.size(); i++)
264  if (a->_vals[i] != _vals[i])
265  return false;
266  return true;
267 }
268 
269 void
271 {
272  _val = obj->getParam<THREAD_ID>("_tid");
273 }
274 bool
275 AttribThread::isMatch(const Attribute & other) const
276 {
277  auto a = dynamic_cast<const AttribThread *>(&other);
278  return a && (a->_val == _val);
279 }
280 bool
281 AttribThread::isEqual(const Attribute & other) const
282 {
283  return isMatch(other);
284 }
285 
286 void
288 {
289  const auto * uo = dynamic_cast<const UserObjectBase *>(obj);
290  _val = uo ? uo->getParam<int>("execution_order_group") : 0;
291 }
292 bool
294 {
295  auto a = dynamic_cast<const AttribExecutionOrderGroup *>(&other);
296  return a && (a->_val == _val);
297 }
298 bool
300 {
301  return isMatch(other);
302 }
303 
304 void
306 {
307  auto * sys = obj->getParam<SystemBase *>("_sys");
308 
309  if (sys)
310  _val = sys->number();
311 }
312 
313 bool
314 AttribSysNum::isMatch(const Attribute & other) const
315 {
316  auto a = dynamic_cast<const AttribSysNum *>(&other);
317  return a && (a->_val == _val);
318 }
319 
320 bool
321 AttribSysNum::isEqual(const Attribute & other) const
322 {
323  return isMatch(other);
324 }
325 
326 void
328 {
329 }
330 bool
331 AttribPreIC::isMatch(const Attribute & other) const
332 {
333  auto a = dynamic_cast<const AttribPreIC *>(&other);
334  return a && (a->_val == _val);
335 }
336 
337 bool
338 AttribPreIC::isEqual(const Attribute & other) const
339 {
340  return isMatch(other);
341 }
342 
343 bool
344 AttribPreAux::isMatch(const Attribute & other) const
345 {
346  const auto a = dynamic_cast<const AttribPreAux *>(&other);
347 
348  bool is_match = false;
349 
350  if (a && !_vals.empty() && !a->_vals.empty())
351  {
352  is_match = std::includes(_vals.begin(), _vals.end(), a->_vals.begin(), a->_vals.end()) ||
353  std::includes(a->_vals.begin(), a->_vals.end(), _vals.begin(), _vals.end());
354  }
355 
356  return is_match;
357 }
358 
359 bool
360 AttribPreAux::isEqual(const Attribute & other) const
361 {
362  const auto a = dynamic_cast<const AttribPreAux *>(&other);
363  return a && a->_vals == _vals;
364 }
365 
366 void
368 {
369 }
370 
371 bool
372 AttribPostAux::isMatch(const Attribute & other) const
373 {
374  const auto a = dynamic_cast<const AttribPostAux *>(&other);
375 
376  bool is_match = false;
377 
378  if (a && !_vals.empty() && !a->_vals.empty())
379  {
380  is_match = std::includes(_vals.begin(), _vals.end(), a->_vals.begin(), a->_vals.end()) ||
381  std::includes(a->_vals.begin(), a->_vals.end(), _vals.begin(), _vals.end());
382  }
383 
384  return is_match;
385 }
386 
387 bool
388 AttribPostAux::isEqual(const Attribute & other) const
389 {
390  const auto a = dynamic_cast<const AttribPostAux *>(&other);
391  return a && a->_vals == _vals;
392 }
393 
394 void
396 {
397 }
398 
399 void
401 {
402  _val = obj->name();
403 }
404 bool
405 AttribName::isMatch(const Attribute & other) const
406 {
407  auto a = dynamic_cast<const AttribName *>(&other);
408  return a && (a->_val == _val);
409 }
410 
411 bool
412 AttribName::isEqual(const Attribute & other) const
413 {
414  return isMatch(other);
415 }
416 
417 void
419 {
421 }
422 
423 bool
424 AttribSystem::isMatch(const Attribute & other) const
425 {
426  auto a = dynamic_cast<const AttribSystem *>(&other);
427  return a && (a->_val == _val);
428 }
429 
430 bool
431 AttribSystem::isEqual(const Attribute & other) const
432 {
433  return isMatch(other);
434 }
435 
436 void
438 {
439  _val = obj->getParam<bool>("_residual_object");
440  _initd = true;
441 }
442 
443 bool
445 {
446  auto a = dynamic_cast<const AttribResidualObject *>(&other);
447  return _initd && a && a->_initd && (a->_val == _val);
448 }
449 
450 bool
452 {
453  return isMatch(other);
454 }
455 
456 void
458 {
459  auto vi = dynamic_cast<const MooseVariableInterface<Real> *>(obj);
460  if (vi)
461  _val = static_cast<int>(vi->mooseVariableBase()->number());
462 }
463 bool
464 AttribVar::isMatch(const Attribute & other) const
465 {
466  auto a = dynamic_cast<const AttribVar *>(&other);
467  return a && (_val != -1) && (a->_val == _val);
468 }
469 
470 bool
471 AttribVar::isEqual(const Attribute & other) const
472 {
473  return isMatch(other);
474 }
475 
476 void
478 {
479  _val = 0;
480  // clang-format off
481  _val |= (unsigned int)Interfaces::UserObject * (dynamic_cast<const UserObjectBase *>(obj) != nullptr);
482  _val |= (unsigned int)Interfaces::ElementUserObject * (dynamic_cast<const ElementUserObject *>(obj) != nullptr);
483  _val |= (unsigned int)Interfaces::SideUserObject * (dynamic_cast<const SideUserObject *>(obj) != nullptr);
484  _val |= (unsigned int)Interfaces::InternalSideUserObject * (dynamic_cast<const InternalSideUserObject *>(obj) != nullptr);
485  _val |= (unsigned int)Interfaces::InterfaceUserObject * (dynamic_cast<const InterfaceUserObject *>(obj) != nullptr);
486  _val |= (unsigned int)Interfaces::NodalUserObject * (dynamic_cast<const NodalUserObject *>(obj) != nullptr);
487  _val |= (unsigned int)Interfaces::GeneralUserObject * (dynamic_cast<const GeneralUserObject *>(obj) != nullptr);
488  _val |= (unsigned int)Interfaces::ThreadedGeneralUserObject * (dynamic_cast<const ThreadedGeneralUserObject *>(obj) != nullptr);
489  _val |= (unsigned int)Interfaces::ShapeElementUserObject * (dynamic_cast<const ShapeElementUserObject *>(obj) != nullptr);
490  _val |= (unsigned int)Interfaces::ShapeSideUserObject * (dynamic_cast<const ShapeSideUserObject *>(obj) != nullptr);
491  _val |= (unsigned int)Interfaces::Postprocessor * (dynamic_cast<const Postprocessor *>(obj) != nullptr);
492  _val |= (unsigned int)Interfaces::VectorPostprocessor * (dynamic_cast<const VectorPostprocessor *>(obj) != nullptr);
493  _val |= (unsigned int)Interfaces::BlockRestrictable * (dynamic_cast<const BlockRestrictable *>(obj) != nullptr);
494  _val |= (unsigned int)Interfaces::BoundaryRestrictable * (dynamic_cast<const BoundaryRestrictable *>(obj) != nullptr);
495  _val |= (unsigned int)Interfaces::Reporter * (dynamic_cast<const Reporter *>(obj) != nullptr);
496  _val |= (unsigned int)Interfaces::DomainUserObject * (dynamic_cast<const DomainUserObject *>(obj) != nullptr);
497  _val |= (unsigned int)Interfaces::MortarUserObject * (dynamic_cast<const MortarUserObject *>(obj) != nullptr);
498  _val |= (unsigned int)Interfaces::FVInterpolationMethod * (dynamic_cast<const FVInterpolationMethod *>(obj) != nullptr);
499  // clang-format on
500 }
501 
502 bool
504 {
505  auto a = dynamic_cast<const AttribInterfaces *>(&other);
506  return a && (a->_val & _val);
507 }
508 
509 bool
511 {
512  auto a = dynamic_cast<const AttribInterfaces *>(&other);
513  return a && (a->_val == _val);
514 }
515 
516 void
518 {
519  _val = obj->parameters().have_parameter<bool>("use_displaced_mesh") &&
520  obj->getParam<bool>("use_displaced_mesh");
521 }
522 
523 bool
525 {
526  auto a = dynamic_cast<const AttribDisplaced *>(&other);
527  return a && (a->_val == _val);
528 }
529 
530 bool
532 {
533  return isMatch(other);
534 }
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:372
std::set< Key > _vals
Definition: Attributes.h:336
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:121
std::vector< SubdomainID > _vals
Definition: Attributes.h:183
KOKKOS_INLINE_FUNCTION const T * find(const T &target, const T *const begin, const T *const end)
Find a value in an array.
Definition: KokkosUtils.h:40
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:395
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:96
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:327
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:80
std::string _val
Definition: Attributes.h:386
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:405
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseBase.h:416
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:305
Attribute is an abstract class that can be implemented in order to track custom metadata about MooseO...
Definition: TheWarehouse.h:51
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:270
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:457
unsigned int _val
Definition: Attributes.h:291
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:162
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:388
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:437
std::vector< BoundaryID > _vals
Definition: Attributes.h:230
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition: Attributes.h:314
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:293
/class BoundaryRestrictable /brief Provides functionality for limiting the object to certain boundary...
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:133
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:517
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:210
std::basic_ostream< charT, traits > * os
Definition: InfixIterator.h:34
Base class for a system (of equations)
Definition: SystemBase.h:85
Interfaces
Definition: Attributes.h:20
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:189
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:287
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:400
const SubdomainID INVALID_BLOCK_ID
Definition: MooseTypes.C:20
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:257
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:471
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition: Attributes.h:295
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:275
std::vector< Key > _vals
Definition: Attributes.h:158
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:418
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:524
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:237
Tracks the libmesh system number that a MooseObject is associated with.
Definition: Attributes.h:276
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:28
AttribBoundaries tracks all boundary IDs associated with an object.
Definition: Attributes.h:189
static const ExecFlagType EXEC_ALL
Execute flag that is used to represent all flags when querying AttribExecOns.
Definition: Attributes.h:136
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:344
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:503
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:424
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:314
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:321
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition: Attributes.h:345
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:510
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:109
std::set< Key > _vals
Definition: Attributes.h:368
Residual objects have this attribute.
Definition: Attributes.h:412
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:223
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
std::vector< TagID > _vals
Definition: Attributes.h:88
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:451
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:146
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.C:19
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:444
Class for containing MooseEnum item information.
Definition: MooseEnumItem.h:18
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:331
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:281
AttribTagBase tracks all (vector or matrix) tags associated with an object.
Definition: Attributes.h:67
An interface that restricts an object to subdomains via the &#39;blocks&#39; input parameter.
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:412
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:338
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:477
virtual bool isMatch(const Attribute &other) const override
isMatch returns true if the meta-data stored in this attribute is equivalent to that stored in other...
Definition: Attributes.C:464
const std::string & getSystemAttributeName() const
Get the system attribute name if it was registered.
Tracks whether the object is on the displaced mesh.
Definition: Attributes.h:482
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:431
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:367
std::string _val
Definition: Attributes.h:406
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:360
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:299
virtual void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:175
void ErrorVector unsigned int
virtual bool isEqual(const Attribute &other) const override
isEqual returns true if the meta-data stored in this attribute is identical to that stored in other...
Definition: Attributes.C:531
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.C:21
unsigned int THREAD_ID
Definition: MooseTypes.h:237
THREAD_ID _val
Definition: Attributes.h:249
std::ostream & operator<<(std::ostream &os, Interfaces &iface)
Definition: Attributes.C:40