https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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"
14#include "BlockRestrictable.h"
15#include "SetupInterface.h"
17#include "MooseVariableFE.h"
18#include "ElementUserObject.h"
19#include "SideUserObject.h"
21#include "InterfaceUserObject.h"
22#include "NodalUserObject.h"
23#include "GeneralUserObject.h"
25#include "ShapeUserObject.h"
26#include "ShapeSideUserObject.h"
28#include "Reporter.h"
29#include "SystemBase.h"
30#include "DomainUserObject.h"
31#include "MortarUserObject.h"
33#include "ExecFlagRegistry.h"
34
35#include <algorithm>
36
37const ExecFlagType AttribExecOns::EXEC_ALL = registerExecFlag("ALL");
38
39std::ostream &
40operator<<(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
79bool
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
95bool
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
108void
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
120void
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
132void
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
145bool
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
161bool
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
174void
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
188bool
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
209bool
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
222void
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
236bool
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
256bool
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
269void
271{
272 _val = obj->getParam<THREAD_ID>("_tid");
273}
274bool
276{
277 auto a = dynamic_cast<const AttribThread *>(&other);
278 return a && (a->_val == _val);
279}
280bool
282{
283 return isMatch(other);
284}
285
286void
288{
289 const auto * uo = dynamic_cast<const UserObjectBase *>(obj);
290 _val = uo ? uo->getParam<int>("execution_order_group") : 0;
291}
292bool
294{
295 auto a = dynamic_cast<const AttribExecutionOrderGroup *>(&other);
296 return a && (a->_val == _val);
297}
298bool
300{
301 return isMatch(other);
302}
303
304void
306{
307 auto * sys = obj->getParam<SystemBase *>("_sys");
308
309 if (sys)
310 _val = sys->number();
311}
312
313bool
315{
316 auto a = dynamic_cast<const AttribSysNum *>(&other);
317 return a && (a->_val == _val);
318}
319
320bool
322{
323 return isMatch(other);
324}
325
326void
328{
329}
330bool
331AttribPreIC::isMatch(const Attribute & other) const
332{
333 auto a = dynamic_cast<const AttribPreIC *>(&other);
334 return a && (a->_val == _val);
335}
336
337bool
338AttribPreIC::isEqual(const Attribute & other) const
339{
340 return isMatch(other);
341}
342
343bool
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
359bool
361{
362 const auto a = dynamic_cast<const AttribPreAux *>(&other);
363 return a && a->_vals == _vals;
364}
365
366void
368{
369}
370
371bool
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
387bool
389{
390 const auto a = dynamic_cast<const AttribPostAux *>(&other);
391 return a && a->_vals == _vals;
392}
393
394void
396{
397}
398
399void
401{
402 _val = obj->name();
403}
404bool
405AttribName::isMatch(const Attribute & other) const
406{
407 auto a = dynamic_cast<const AttribName *>(&other);
408 return a && (a->_val == _val);
409}
410
411bool
412AttribName::isEqual(const Attribute & other) const
413{
414 return isMatch(other);
415}
416
417void
422
423bool
425{
426 auto a = dynamic_cast<const AttribSystem *>(&other);
427 return a && (a->_val == _val);
428}
429
430bool
432{
433 return isMatch(other);
434}
435
436void
438{
439#ifdef MOOSE_KOKKOS_ENABLED
440 _val = obj->isKokkosObject();
441#else
442 static_cast<void>(obj);
443 _val = false;
444#endif
445}
446
447bool
449{
450 auto a = dynamic_cast<const AttribKokkos *>(&other);
451 return a && (a->_val == _val);
452}
453
454bool
456{
457 return isMatch(other);
458}
459
460void
462{
463 _val = obj->getParam<bool>("_residual_object");
464 _initd = true;
465}
466
467bool
469{
470 auto a = dynamic_cast<const AttribResidualObject *>(&other);
471 return _initd && a && a->_initd && (a->_val == _val);
472}
473
474bool
476{
477 return isMatch(other);
478}
479
480void
482{
483 auto vi = dynamic_cast<const MooseVariableInterface<Real> *>(obj);
484 if (vi)
485 _val = static_cast<int>(vi->mooseVariableBase()->number());
486}
487bool
488AttribVar::isMatch(const Attribute & other) const
489{
490 auto a = dynamic_cast<const AttribVar *>(&other);
491 return a && (_val != -1) && (a->_val == _val);
492}
493
494bool
495AttribVar::isEqual(const Attribute & other) const
496{
497 return isMatch(other);
498}
499
500void
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
526bool
528{
529 auto a = dynamic_cast<const AttribInterfaces *>(&other);
530 return a && (a->_val & _val);
531}
532
533bool
535{
536 auto a = dynamic_cast<const AttribInterfaces *>(&other);
537 return a && (a->_val == _val);
538}
539
540void
542{
543 _val = obj->parameters().have_parameter<bool>("use_displaced_mesh") &&
544 obj->getParam<bool>("use_displaced_mesh");
545}
546
547bool
549{
550 auto a = dynamic_cast<const AttribDisplaced *>(&other);
551 return a && (a->_val == _val);
552}
553
554bool
556{
557 return isMatch(other);
558}
std::ostream & operator<<(std::ostream &os, Interfaces &iface)
Definition Attributes.C:40
Interfaces
Definition Attributes.h:21
@ InternalSideUserObject
@ ThreadedGeneralUserObject
@ VectorPostprocessor
@ FVInterpolationMethod
@ ShapeSideUserObject
@ InterfaceUserObject
@ BoundaryRestrictable
@ ShapeElementUserObject
unsigned int THREAD_ID
Definition MooseTypes.h:237
void ErrorVector unsigned int
AttribBoundaries tracks all boundary IDs associated with an object.
Definition Attributes.h:190
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
std::vector< BoundaryID > _vals
Definition Attributes.h:230
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
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
Tracks whether the object is on the displaced mesh.
Definition Attributes.h:501
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 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 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
static const ExecFlagType EXEC_ALL
Execute flag that is used to represent all flags when querying AttribExecOns.
Definition Attributes.h:136
std::vector< Key > _vals
Definition Attributes.h:158
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
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 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
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 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
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 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 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 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 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
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
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 void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition Attributes.C:109
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 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
std::string _val
Definition Attributes.h:386
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
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition Attributes.h:346
std::set< Key > _vals
Definition Attributes.h:368
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 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
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
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition Attributes.h:315
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 void initFrom(const MooseObject *obj) override
initFrom reads and stores the desired meta-data from obj for later matching comparisons.
Definition Attributes.C:367
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
std::set< Key > _vals
Definition Attributes.h:336
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition Attributes.h:296
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: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:327
Residual objects have this attribute.
Definition Attributes.h: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:461
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:468
std::vector< SubdomainID > _vals
Definition Attributes.h:183
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
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
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
Tracks the libmesh system number that a MooseObject is associated with.
Definition Attributes.h:277
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:321
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
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 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
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: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:418
AttribTagBase tracks all (vector or matrix) tags associated with an object.
Definition Attributes.h:68
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:96
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
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 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
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
THREAD_ID _val
Definition Attributes.h:249
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
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
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
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
Attribute is an abstract class that can be implemented in order to track custom metadata about MooseO...
An interface that restricts an object to subdomains via the 'blocks' input parameter.
/class BoundaryRestrictable /brief Provides functionality for limiting the object to certain boundary...
This user object allows related evaluations on elements, boundaries, internal sides,...
Registered base class for linear FV interpolation objects.
const std::string & getSystemAttributeName() const
Get the system attribute name if it was registered.
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
Base class for implementing interface user objects.
Base class for user objects executed on all element sides internal to one or more blocks,...
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
const std::string & name() const
Get the name of the class.
Definition MooseBase.h:103
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition MooseBase.h:406
Class for containing MooseEnum item information.
Every object that can be built by the factory should be derived from this class.
Definition MooseObject.h:31
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
Interface for objects that need to get values of MooseVariables.
Base class for creating new nodally-based mortar user objects.
A user object that runs over all the nodes and does an aggregation step to compute a single value.
Base class for all Postprocessors.
Reporter objects allow for the declaration of arbitrary data types that are aggregate values for a si...
Definition Reporter.h:48
ElementUserObject class in which the _phi and _grad_phi shape function data is available and correctl...
SideUserObject class in which the _phi and _grad_phi shape function data is available and correctly i...
Base class for user objects executed one or more sidesets, which may be on the outer boundary of the ...
Base class for a system (of equations)
Definition SystemBase.h:87
unsigned int number() const
Gets the number of this system.
An instance of this object type has one copy per thread that runs on each thread.
Base class for Postprocessors that produce a vector of values.
const SubdomainID ANY_BLOCK_ID
Definition MooseTypes.C:19
const SubdomainID INVALID_BLOCK_ID
Definition MooseTypes.C:20
const BoundaryID ANY_BOUNDARY_ID
Definition MooseTypes.C:21