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 #ifdef MOOSE_KOKKOS_ENABLED
440  _val = obj->isKokkosObject();
441 #else
442  static_cast<void>(obj);
443  _val = false;
444 #endif
445 }
446 
447 bool
448 AttribKokkos::isMatch(const Attribute & other) const
449 {
450  auto a = dynamic_cast<const AttribKokkos *>(&other);
451  return a && (a->_val == _val);
452 }
453 
454 bool
455 AttribKokkos::isEqual(const Attribute & other) const
456 {
457  return isMatch(other);
458 }
459 
460 void
462 {
463  _val = obj->getParam<bool>("_residual_object");
464  _initd = true;
465 }
466 
467 bool
469 {
470  auto a = dynamic_cast<const AttribResidualObject *>(&other);
471  return _initd && a && a->_initd && (a->_val == _val);
472 }
473 
474 bool
476 {
477  return isMatch(other);
478 }
479 
480 void
482 {
483  auto vi = dynamic_cast<const MooseVariableInterface<Real> *>(obj);
484  if (vi)
485  _val = static_cast<int>(vi->mooseVariableBase()->number());
486 }
487 bool
488 AttribVar::isMatch(const Attribute & other) const
489 {
490  auto a = dynamic_cast<const AttribVar *>(&other);
491  return a && (_val != -1) && (a->_val == _val);
492 }
493 
494 bool
495 AttribVar::isEqual(const Attribute & other) const
496 {
497  return isMatch(other);
498 }
499 
500 void
502 {
503  _val = 0;
504  // clang-format off
505  _val |= (unsigned int)Interfaces::UserObject * (dynamic_cast<const UserObjectBase *>(obj) != nullptr);
506  _val |= (unsigned int)Interfaces::ElementUserObject * (dynamic_cast<const ElementUserObject *>(obj) != nullptr);
507  _val |= (unsigned int)Interfaces::SideUserObject * (dynamic_cast<const SideUserObject *>(obj) != nullptr);
508  _val |= (unsigned int)Interfaces::InternalSideUserObject * (dynamic_cast<const InternalSideUserObject *>(obj) != nullptr);
509  _val |= (unsigned int)Interfaces::InterfaceUserObject * (dynamic_cast<const InterfaceUserObject *>(obj) != nullptr);
510  _val |= (unsigned int)Interfaces::NodalUserObject * (dynamic_cast<const NodalUserObject *>(obj) != nullptr);
511  _val |= (unsigned int)Interfaces::GeneralUserObject * (dynamic_cast<const GeneralUserObject *>(obj) != nullptr);
512  _val |= (unsigned int)Interfaces::ThreadedGeneralUserObject * (dynamic_cast<const ThreadedGeneralUserObject *>(obj) != nullptr);
513  _val |= (unsigned int)Interfaces::ShapeElementUserObject * (dynamic_cast<const ShapeElementUserObject *>(obj) != nullptr);
514  _val |= (unsigned int)Interfaces::ShapeSideUserObject * (dynamic_cast<const ShapeSideUserObject *>(obj) != nullptr);
515  _val |= (unsigned int)Interfaces::Postprocessor * (dynamic_cast<const Postprocessor *>(obj) != nullptr);
516  _val |= (unsigned int)Interfaces::VectorPostprocessor * (dynamic_cast<const VectorPostprocessor *>(obj) != nullptr);
517  _val |= (unsigned int)Interfaces::BlockRestrictable * (dynamic_cast<const BlockRestrictable *>(obj) != nullptr);
518  _val |= (unsigned int)Interfaces::BoundaryRestrictable * (dynamic_cast<const BoundaryRestrictable *>(obj) != nullptr);
519  _val |= (unsigned int)Interfaces::Reporter * (dynamic_cast<const Reporter *>(obj) != nullptr);
520  _val |= (unsigned int)Interfaces::DomainUserObject * (dynamic_cast<const DomainUserObject *>(obj) != nullptr);
521  _val |= (unsigned int)Interfaces::MortarUserObject * (dynamic_cast<const MortarUserObject *>(obj) != nullptr);
522  _val |= (unsigned int)Interfaces::FVInterpolationMethod * (dynamic_cast<const FVInterpolationMethod *>(obj) != nullptr);
523  // clang-format on
524 }
525 
526 bool
528 {
529  auto a = dynamic_cast<const AttribInterfaces *>(&other);
530  return a && (a->_val & _val);
531 }
532 
533 bool
535 {
536  auto a = dynamic_cast<const AttribInterfaces *>(&other);
537  return a && (a->_val == _val);
538 }
539 
540 void
542 {
543  _val = obj->parameters().have_parameter<bool>("use_displaced_mesh") &&
544  obj->getParam<bool>("use_displaced_mesh");
545 }
546 
547 bool
549 {
550  auto a = dynamic_cast<const AttribDisplaced *>(&other);
551  return a && (a->_val == _val);
552 }
553 
554 bool
556 {
557  return isMatch(other);
558 }
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:406
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:481
unsigned int _val
Definition: Attributes.h:291
bool isKokkosObject() const
Get whether this object is a Kokkos functor The parameter MooseBase::kokkos_object_param is set by th...
Definition: MooseObject.h:63
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:461
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:541
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
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:455
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:495
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:548
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
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:448
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:527
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:534
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:430
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:475
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:468
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:501
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:488
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:500
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 void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition: Attributes.C:437
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:555
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