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