15 #if defined(__clang__) 16 #pragma clang diagnostic push 17 #pragma clang diagnostic ignored "-Woverloaded-virtual" 18 #elif defined(__GNUC__) || defined(__GNUG__) 19 #pragma GCC diagnostic push 20 #pragma GCC diagnostic ignored "-Woverloaded-virtual" 98 template <
typename Derived>
103 material.initQpStatefulProperties(qp, datum);
105 template <
typename Derived>
109 material.computeQpProperties(qp, datum);
116 template <
typename Derived>
118 KOKKOS_FUNCTION
void operator()(ElementInit,
const ThreadID tid,
const Derived & material)
const;
119 template <
typename Derived>
120 KOKKOS_FUNCTION
void operator()(SideInit,
const ThreadID tid,
const Derived & material)
const;
121 template <
typename Derived>
122 KOKKOS_FUNCTION
void operator()(NeighborInit,
const ThreadID tid,
const Derived & material)
const;
123 template <
typename Derived>
126 template <
typename Derived>
127 KOKKOS_FUNCTION
void operator()(SideCompute,
const ThreadID tid,
const Derived & material)
const;
128 template <
typename Derived>
139 const unsigned int state)
override final;
172 const QBase *
const &
_qrule;
178 template <
typename Derived>
186 for (
unsigned int qp = 0; qp < datum.
n_qps(); qp++)
189 material.initQpStatefulPropertiesShim(material, qp, datum);
193 template <
typename Derived>
201 for (
unsigned int qp = 0; qp < datum.
n_qps(); qp++)
204 material.initQpStatefulPropertiesShim(material, qp, datum);
208 template <
typename Derived>
216 for (
unsigned int qp = 0; qp < datum.
n_qps(); qp++)
219 material.initQpStatefulPropertiesShim(material, qp, datum);
223 template <
typename Derived>
231 for (
unsigned int qp = 0; qp < datum.
n_qps(); qp++)
234 material.computeQpPropertiesShim(material, qp, datum);
238 template <
typename Derived>
246 for (
unsigned int qp = 0; qp < datum.
n_qps(); qp++)
249 material.computeQpPropertiesShim(material, qp, datum);
253 template <
typename Derived>
261 for (
unsigned int qp = 0; qp < datum.
n_qps(); qp++)
264 material.computeQpPropertiesShim(material, qp, datum);
virtual const std::unordered_set< unsigned int > & getMatPropDependencies() const
Retrieve the set of material properties that this object depends on.
virtual void checkMaterialProperty(const std::string &name, const unsigned int state)
A helper method for checking material properties This method was required to avoid a compiler problem...
virtual void initStatefulProperties(unsigned int) override
Dispatch stateful material property initialization.
The Kokkos object that holds thread-private data in the parallel operations of any Kokkos object...
virtual MaterialDataType materialDataType() override
const unsigned int invalid_uint
KOKKOS_FUNCTION const Assembly & kokkosAssembly() const
Get the const reference of the Kokkos assembly.
virtual void checkMaterialProperty(const std::string &name, const unsigned int state) override
A helper method for checking material properties This method was required to avoid a compiler problem...
virtual bool boundaryRestricted() const
Returns true if this object has been restricted to a boundary.
KOKKOS_FUNCTION void computeQpPropertiesShim(const Derived &material, const unsigned int qp, Datum &datum) const
const InputParameters & parameters() const
Get the parameters of the object.
MaterialDataType
MaterialData types.
static auto defaultInitStateful()
Get the function pointer of the default initQpStatefulProperties()
KOKKOS_FUNCTION ContiguousElementID kokkosElementID(ThreadID tid) const
Get the contiguous element ID for a thread.
static InputParameters validParams()
MaterialData & _material_data
The material data class that stores properties.
KOKKOS_FUNCTION void operator()(ElementInit, const ThreadID tid, const Derived &material) const
The parallel computation entry functions called by Kokkos.
KOKKOS_FUNCTION void initQpStatefulProperties(const unsigned int, Datum &) const
Default methods to prevent compile errors even when these methods were not defined in the derived cla...
void getKokkosMaterialPropertyHook(const std::string &prop_name_in, const unsigned int state) override final
Override of the MaterialPropertyInterface function to perform additional checks and add dependencies...
const std::string & name() const
Get the name of the class.
virtual const QBase & qRule() const override
KOKKOS_FUNCTION unsigned int n_qps() const
Get the number of local quadrature points.
KOKKOS_FUNCTION auto kokkosElementSideID(ThreadID tid) const
Get the contiguous element ID - side index pair for a thread.
KOKKOS_FUNCTION void initQpStatefulPropertiesShim(const Derived &material, const unsigned int qp, Datum &datum) const
Shims for hook methods that can be leveraged to implement static polymorphism.
virtual void computeProperties() override
Dispatch material property evaluation.
Material(const InputParameters ¶meters)
Constructor.
Interface for objects that needs coupling capabilities.
The base class for a user to derive their own Kokkos materials.
virtual const std::unordered_set< unsigned int > & getMatPropDependencies() const override
Retrieve the set of material properties that this object depends on.
An interface for accessing Materials.
const QBase *const & _qrule
Dummy members unused for Kokkos materials.
virtual MaterialData & materialData() override
Proxy for accessing MaterialPropertyStorage.
virtual bool isBoundaryMaterial() const override
Returns true of the MaterialData type is not associated with volume data.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
const bool _neighbor
Flag whether the material is on neighbor faces.
virtual const MaterialData & materialData() const override
const Moose::MaterialDataType _material_data_type
The type of data.
The base class for Kokkos materials.
KOKKOS_FUNCTION void reinit()
Reset the reinit flag.
const bool _bnd
Flag whether the material is on faces.
KOKKOS_FUNCTION const Array< System > & kokkosSystems() const
Get the const reference of the Kokkos systems.
virtual void initQpStatefulProperties() override final
Initialize stateful properties at quadrature points.