30 template <
typename T,
unsigned int dimension>
33 template <
typename T,
unsigned int dimension>
63 std::vector<unsigned int>
dims;
92 unsigned int id()
const {
return _id; }
113 unsigned int dim(
unsigned int i)
const 118 "-th dimension for the ",
120 "D material property '",
148 const std::set<SubdomainID> & subdomains,
162 #ifdef MOOSE_KOKKOS_SCOPE 185 template <
typename T,
unsigned int dimension>
187 template <
typename T,
unsigned int dimension>
193 template <
typename T,
unsigned int dimension = 0>
225 #ifdef MOOSE_KOKKOS_SCOPE 233 const unsigned int qp)
const;
238 static const std::type_index
type =
typeid(*this);
245 #ifdef MOOSE_KOKKOS_SCOPE 248 const std::set<SubdomainID> & subdomains,
277 friend void propertyStore<T, dimension>(std::ostream &,
void *);
278 friend void propertyLoad<T, dimension>(std::istream &,
void *);
283 template <
typename T,
unsigned int dimension>
virtual void init(const PropRecord &record, const StorageKey &)
Initialize this property.
The Kokkos assembly class.
A structure storing the metadata of Kokkos material properties.
The base class for Kokkos material properties.
KOKKOS_FUNCTION MaterialPropertyValue< T, dimension > operator()(const Datum &datum, const unsigned int qp) const
Get the property values of a quadrature point.
The Kokkos object that holds thread-private data in the parallel operations of any Kokkos object...
const PropRecord * _record
Pointer to the record of this property.
const unsigned int invalid_uint
virtual std::type_index propertyType()=0
Get the property type index for load/store functions.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
void propertyLoad(std::istream &stream, void *prop)
Stores the stateful material properties computed by materials.
virtual void init(const PropRecord &record, const StorageKey &key) override
Initialize this property.
std::function< void(std::istream &, void *)> PropertyLoad
virtual void swap(MaterialPropertyBase &prop, StorageKey) override
Swap with another property.
virtual std::type_index propertyType() override
Get the property type index for load/store functions.
virtual void allocate(const MooseMesh &mesh, const Assembly &assembly, const std::set< SubdomainID > &subdomains, const bool bnd, StorageKey) override
Allocate the data storage.
std::string name
Property name.
unsigned int dim(unsigned int i) const
Get the size of a dimension.
virtual void swap(MaterialPropertyBase &prop, StorageKey)=0
Swap with another property.
virtual void copy(const MaterialPropertyBase &prop, StorageKey)=0
Deep copy another property.
std::string type
Demangled data type name.
auto & operator=(const MaterialProperty< T, dimension > &property)
Shallow copy another property.
unsigned int _id
Property ID.
std::vector< unsigned int > dims
Size of each dimension.
The Kokkos wrapper class for accessing the material property values of a single quadrature point...
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
std::set< const ::MaterialBase * > declarers
List of declaring materials.
MaterialProperty()=default
Default constructor.
virtual ~MaterialPropertyBase()
Desturctor.
const MaterialProperty< T, dimension > * _reference
Pointer to the reference property.
unsigned int dim() const
Get the dimension.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
std::function< void(std::ostream &, void *)> PropertyStore
Array< Array< T, dimension+1 > > _data
Data storage.
virtual void copy(const MaterialPropertyBase &prop, StorageKey) override
Deep copy another property.
bool _default
Flag whether this property has a default value.
The type trait that determines the default behavior of copy constructor and deepCopy() If this type t...
void shallowCopy(const MaterialProperty< T, dimension > &property)
Shallow copy another property.
std::string type() const
Get the data type.
std::string name() const
Get the property name.
virtual void allocate(const MooseMesh &mesh, const Assembly &assembly, const std::set< SubdomainID > &subdomains, const bool bnd, StorageKey)=0
Allocate the data storage.
MaterialPropertyBase()=default
Default constructor.
bool bnd
Flag whether this property is a face property.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
The Kokkos material property class.
MaterialBases compute MaterialProperties.
unsigned int id() const
Get the property ID.
void propertyStore(std::ostream &stream, void *prop)