32 virtual void compute()
override;
35 template <
typename Derived>
36 KOKKOS_FUNCTION
void join(Real * result,
const Real * source)
const;
37 template <
typename Derived>
38 KOKKOS_FUNCTION
void init(Real * result)
const;
39 template <
typename Derived>
40 KOKKOS_FUNCTION
void reduce(
Datum & datum, Real * result)
const;
41 template <
typename Derived>
81 template <
typename Derived>
87 for (decltype(size) i = 0; i < size; ++i)
88 result[i] += source[i];
91 template <
typename Derived>
97 for (decltype(size) i = 0; i < size; ++i)
101 template <
typename Derived>
107 const auto subdomain = datum.
subdomain();
112 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
114 const auto JxW = datum.
JxW(qp);
118 for (
unsigned int ivar = 0; ivar <
_nvar; ++ivar, ++i)
119 if (
kokkosSystem(var.sys(ivar)).isVariableActive(var.var(ivar), subdomain))
122 for (
unsigned int iprop = 0; iprop <
_nprop; ++iprop, ++i)
123 sum[i] += JxW *
_props[iprop](datum, qp);
135 template <
typename Derived>
141 const auto subdomain = datum.
subdomain();
146 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
148 const auto JxW = datum.
JxW(qp);
152 for (
unsigned int ivar = 0; ivar <
_nvar; ++ivar, ++i)
153 if (
kokkosSystem(var.sys(ivar)).isVariableActive(var.var(ivar), subdomain))
156 for (
unsigned int iprop = 0; iprop <
_nprop; ++iprop, ++i)
157 sum[i] += JxW *
_props[iprop](datum, qp);
163 Kokkos::atomic_add(&
_integrals[i][ipos], sum[i]);
166 Kokkos::atomic_add(&
_volumes[ipos], vol);
The Kokkos object that holds thread-private data in the parallel operations of any Kokkos object...
const InputParameters & parameters() const
Get the parameters of the object.
KOKKOS_FUNCTION ContiguousElementID elemID() const
Get the contiguous element ID.
KOKKOS_FUNCTION unsigned int n_qps() const
Get the number of local quadrature points.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
KOKKOS_FUNCTION const System & kokkosSystem(unsigned int sys) const
Get the const reference of a Kokkos system.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
The Kokkos wrapper classes for MOOSE-like variable value access.
KOKKOS_FUNCTION ContiguousSubdomainID subdomain() const
Get the contiguous subdomain ID.
VariableValueTempl< false > VariableValue
KOKKOS_FUNCTION const Variable & variable() const
Get the Kokkos variable.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
KOKKOS_FUNCTION Real JxW(const unsigned int qp)
Get the transformed Jacobian weight.
The Kokkos material property class.