The Kokkos assembly class. More...
#include <KokkosAssembly.h>
Public Member Functions | |
| Assembly (FEProblemBase &problem) | |
| Constructor. More... | |
| void | init () |
| Initialize assembly. More... | |
| unsigned int | getFETypeID (FEType type) const |
| Get the FE type ID. More... | |
| KOKKOS_FUNCTION unsigned int | getDimension () const |
| Get the mesh dimension. More... | |
| KOKKOS_FUNCTION unsigned int | getMaxQpsPerElem () const |
| Get the maximum number of quadrature points per element in the current partition. More... | |
| KOKKOS_FUNCTION dof_id_type | getNumQps (ContiguousSubdomainID subdomain) const |
| Get the total number of elemental quadrature points in a subdomain. More... | |
| KOKKOS_FUNCTION unsigned int | getNumQps (ElementInfo info) const |
| Get the number of quadrature points of an element. More... | |
| KOKKOS_FUNCTION dof_id_type | getNumFaceQps (ContiguousSubdomainID subdomain) const |
| Get the total number of facial quadrature points in a subdomain NOTE: This number does not represent the real number of facial quadrature points but only the facial quadrature points that need global caching, such as face material properties. More... | |
| KOKKOS_FUNCTION unsigned int | getNumFaceQps (ElementInfo info, unsigned int side) const |
| Get the number of quadrature points of a side of an element. More... | |
| KOKKOS_FUNCTION dof_id_type | getQpOffset (ElementInfo info) const |
| Get the starting offset of quadrature points of an element into the global quadrature point index. More... | |
| KOKKOS_FUNCTION dof_id_type | getQpFaceOffset (ElementInfo info, unsigned int side) const |
| Get the starting offset of quadrature points of a side of an element into the global quadrature point index. More... | |
| KOKKOS_FUNCTION dof_id_type | getElemFacePropertyIndex (ElementInfo info, unsigned int side) const |
| Get the index of a side of an element into the element-constant face material property data. More... | |
| KOKKOS_FUNCTION dof_id_type | getElemFacePropertySize (ContiguousSubdomainID subdomain) const |
| Get the size of element-constant face material property data storage of a subdomain. More... | |
| KOKKOS_FUNCTION unsigned int | getNumDofs (unsigned int elem_type, unsigned int fe_type) const |
| Get the number of DOFs of a FE type for an element type. More... | |
| KOKKOS_FUNCTION const auto & | getPhi (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION const auto & | getPhiFace (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the face shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION const auto & | getGradPhi (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the gradient of shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION const auto & | getGradPhiFace (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the gradient of face shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION const auto & | getVectorPhi (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the vector shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION const auto & | getVectorPhiFace (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the face vector shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION const auto & | getVectorGradPhi (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the gradient of vector shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION const auto & | getVectorGradPhiFace (ContiguousSubdomainID subdomain, unsigned int elem_type, unsigned int fe_type) const |
| Get the gradient of face vector shape functions of a FE type for an element type and subdomain. More... | |
| KOKKOS_FUNCTION bool | isVectorFEType (unsigned int fe_type) const |
| Get whether a cached FE type is vector-valued. More... | |
| KOKKOS_FUNCTION Real33 | getJacobian (ElementInfo info, unsigned int qp) const |
| Get the inverse of Jacobian matrix of an element quadrature point. More... | |
| KOKKOS_FUNCTION Real | getJxW (ElementInfo info, unsigned int qp) const |
| Get the transformed Jacobian weight of an element quadrature point. More... | |
| KOKKOS_FUNCTION Real3 | getQPoint (ElementInfo info, unsigned int qp) const |
| Get the coordinate of an element quadrature point. More... | |
| KOKKOS_FUNCTION Real | coordTransformFactor (const ContiguousSubdomainID subdomain, const Real3 point) const |
| Get the coordinate transform factor for a point in a subdomain. More... | |
| KOKKOS_FUNCTION void | computePhysicalMap (const ElementInfo info, const unsigned int qp, Real33 *const jacobian, Real *const JxW, Real3 *const q_points) const |
| Compute physical transformation data for an element. More... | |
| KOKKOS_FUNCTION void | computePhysicalMap (const ElementInfo info, const unsigned int side, const unsigned int qp, Real33 *const jacobian, Real *const JxW, Real3 *const q_points, Real3 *const normal) const |
| Compute physical transformation data for a side. More... | |
| KOKKOS_FUNCTION void | operator() (const ThreadID tid) const |
| Kokkos function for caching physical maps on element quadrature points. More... | |
| const auto & | getMaterialBoundaries () const |
| Get the list of boundaries to cache face material properties. More... | |
| KOKKOS_FUNCTION const Mesh & | kokkosMesh () const |
| Get the const reference of the Kokkos mesh. More... | |
Private Member Functions | |
| void | initQuadrature () |
| Initialize quadrature data. More... | |
| void | initShape () |
| Initialize shape data. More... | |
| void | cachePhysicalMap () |
| Cache physical maps on element quadrature points. More... | |
The Kokkos assembly class.
Definition at line 28 of file KokkosAssembly.h.
| Moose::Kokkos::Assembly::Assembly | ( | FEProblemBase & | problem | ) |
Constructor.
| problem | The MOOSE problem |
|
private |
Cache physical maps on element quadrature points.
|
inline |
Compute physical transformation data for an element.
| info | The element information object |
| qp | The local quadrature point index |
| jacobian | The pointer to store the inverse of Jacobian matrix |
| JxW | The pointer to store transformed Jacobian weight |
| q_points | The pointer to store physical quadrature point coordinate |
Definition at line 482 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::Datum::reinitTransform().
|
inline |
Compute physical transformation data for a side.
| info | The element information object |
| side | The side index |
| qp | The local quadrature point index |
| jacobian | The pointer to store the inverse of Jacobian matrix |
| JxW | The pointer to store transformed Jacobian weight |
| q_points | The pointer to store physical quadrature point coordinate |
| normal | The pointer to store normal vector |
Definition at line 521 of file KokkosAssembly.h.
|
inline |
Get the coordinate transform factor for a point in a subdomain.
| subdomain | The contiguous subdomain ID |
| point | The point coordinate |
Definition at line 462 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
|
inline |
Get the mesh dimension.
Definition at line 52 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::Datum::J(), Moose::Kokkos::VectorVariableShapeCurl< is_test >::operator()(), Moose::Kokkos::VectorVariableValue::operator()(), and Moose::Kokkos::VectorVariableCurl::operator()().
|
inline |
Get the index of a side of an element into the element-constant face material property data.
| info | The element information object |
| side | The side index |
Definition at line 118 of file KokkosAssembly.h.
|
inline |
Get the size of element-constant face material property data storage of a subdomain.
| subdomain | The contiguous subdomain ID |
Definition at line 127 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::MaterialProperty< Real >::allocate().
|
inline |
Get the FE type ID.
| type | The libMesh FEType object |
Definition at line 47 of file KokkosAssembly.h.
|
inline |
Get the gradient of shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 173 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::FESystem::getVectorQpADGrad(), and Moose::Kokkos::VariableShapeGradient< is_test >::reference().
|
inline |
Get the gradient of face shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 184 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::FESystem::getVectorQpADGradFace(), Moose::Kokkos::FESystem::getVectorQpGradFace(), and Moose::Kokkos::VariableShapeGradient< is_test >::reference().
|
inline |
Get the inverse of Jacobian matrix of an element quadrature point.
| info | The element information object |
| qp | The local quadrature point index |
Definition at line 256 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::Datum::reinitTransform().
|
inline |
Get the transformed Jacobian weight of an element quadrature point.
| info | The element information object |
| qp | The local quadrature point index |
Definition at line 266 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::Datum::reinitTransform().
|
inline |
Get the list of boundaries to cache face material properties.
Definition at line 329 of file KokkosAssembly.h.
|
inline |
Get the maximum number of quadrature points per element in the current partition.
Definition at line 57 of file KokkosAssembly.h.
|
inline |
Get the number of DOFs of a FE type for an element type.
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 137 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::FESystem::getVectorQpADGrad(), Moose::Kokkos::FESystem::getVectorQpADGradFace(), Moose::Kokkos::FESystem::getVectorQpADValue(), Moose::Kokkos::FESystem::getVectorQpADValueFace(), Moose::Kokkos::FESystem::getVectorQpGradFace(), Moose::Kokkos::FESystem::getVectorQpValueFace(), Moose::Kokkos::FESystem::getVectorQpVectorGradFace(), Moose::Kokkos::FESystem::getVectorQpVectorValueFace(), and Moose::Kokkos::VectorVariableCurl::operator()().
|
inline |
Get the total number of facial quadrature points in a subdomain NOTE: This number does not represent the real number of facial quadrature points but only the facial quadrature points that need global caching, such as face material properties.
| subdomain | The contiguous subdomain ID |
Definition at line 80 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::MaterialProperty< Real >::allocate().
|
inline |
Get the number of quadrature points of a side of an element.
| info | The element information object |
| side | The side index |
Definition at line 90 of file KokkosAssembly.h.
|
inline |
Get the total number of elemental quadrature points in a subdomain.
| subdomain | The contiguous subdomain ID |
Definition at line 63 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::MaterialProperty< Real >::allocate().
|
inline |
Get the number of quadrature points of an element.
| info | The element information object |
Definition at line 72 of file KokkosAssembly.h.
|
inline |
Get the shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 149 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::FESystem::getVectorQpADValue(), and Moose::Kokkos::VariableShapeValue< is_test >::operator()().
|
inline |
Get the face shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 161 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::FESystem::getVectorQpADValueFace(), Moose::Kokkos::FESystem::getVectorQpValueFace(), and Moose::Kokkos::VariableShapeValue< is_test >::operator()().
|
inline |
Get the starting offset of quadrature points of a side of an element into the global quadrature point index.
| info | The element information object |
| side | The side index |
Definition at line 108 of file KokkosAssembly.h.
|
inline |
Get the starting offset of quadrature points of an element into the global quadrature point index.
| info | The element information object |
Definition at line 100 of file KokkosAssembly.h.
Referenced by getJacobian(), getJxW(), and getQPoint().
|
inline |
Get the coordinate of an element quadrature point.
| info | The element information object |
| qp | The local quadrature point index |
Definition at line 276 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::Datum::reinitTransform().
|
inline |
Get the gradient of vector shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 222 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::VectorVariableShapeCurl< is_test >::operator()(), and Moose::Kokkos::VectorVariableShapeGradient< is_test >::reference().
|
inline |
Get the gradient of face vector shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 235 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::FESystem::getVectorQpVectorGradFace(), Moose::Kokkos::VectorVariableShapeCurl< is_test >::operator()(), Moose::Kokkos::VectorVariableCurl::operator()(), and Moose::Kokkos::VectorVariableShapeGradient< is_test >::reference().
|
inline |
Get the vector shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 198 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::VectorVariableShapeValue< is_test >::operator()().
|
inline |
Get the face vector shape functions of a FE type for an element type and subdomain.
| subdomain | The contiguous subdomain ID |
| elem_type | The element type ID |
| fe_type | The FE type ID |
Definition at line 209 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::FESystem::getVectorQpVectorValueFace(), and Moose::Kokkos::VectorVariableShapeValue< is_test >::operator()().
| void Moose::Kokkos::Assembly::init | ( | ) |
Initialize assembly.
|
private |
Initialize quadrature data.
|
private |
Initialize shape data.
|
inline |
Get whether a cached FE type is vector-valued.
| fe_type | The FE type ID |
Definition at line 246 of file KokkosAssembly.h.
|
inlineinherited |
Get the const reference of the Kokkos mesh.
Definition at line 651 of file KokkosMesh.h.
Referenced by computePhysicalMap(), Moose::Kokkos::LinearFVElementalKernel::operator()(), Moose::Kokkos::LinearFVFluxKernel::operator()(), Moose::Kokkos::VectorIntegratedBC::operator()(), Moose::Kokkos::VectorKernel::operator()(), Moose::Kokkos::Kernel::operator()(), Moose::Kokkos::IntegratedBC::operator()(), Moose::Kokkos::LinearFVBoundaryCondition::operator()(), Moose::Kokkos::Datum::q_point(), and KokkosBoundNodalKernel::skipOnBoundary().
Kokkos function for caching physical maps on element quadrature points.
|
private |
Coordinate system type of each subdomain.
Definition at line 366 of file KokkosAssembly.h.
Referenced by coordTransformFactor().
|
private |
Mesh dimension.
Definition at line 362 of file KokkosAssembly.h.
Referenced by computePhysicalMap(), and getDimension().
|
private |
Index into the element-constant face material property data.
Definition at line 400 of file KokkosAssembly.h.
Referenced by getElemFacePropertyIndex().
|
private |
Definition at line 418 of file KokkosAssembly.h.
Referenced by getGradPhi().
Definition at line 419 of file KokkosAssembly.h.
Referenced by getGradPhiFace().
|
private |
Definition at line 424 of file KokkosAssembly.h.
Referenced by isVectorFEType().
Cached physical maps on element quadrature points.
Definition at line 449 of file KokkosAssembly.h.
Referenced by getJacobian().
Definition at line 450 of file KokkosAssembly.h.
Referenced by getJxW().
Definition at line 434 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Definition at line 435 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Definition at line 436 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Shape functions for computing reference-to-physical maps.
Definition at line 431 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Definition at line 432 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Definition at line 433 of file KokkosAssembly.h.
|
private |
Boundaries to cache face material properties.
Definition at line 457 of file KokkosAssembly.h.
Referenced by getMaterialBoundaries().
|
private |
Definition at line 391 of file KokkosAssembly.h.
Referenced by getMaxQpsPerElem().
|
private |
Reference of the MOOSE mesh.
Definition at line 353 of file KokkosAssembly.h.
Definition at line 425 of file KokkosAssembly.h.
Referenced by getNumDofs().
|
private |
Definition at line 401 of file KokkosAssembly.h.
Referenced by getElemFacePropertySize().
Number of quadrature points.
Definition at line 388 of file KokkosAssembly.h.
Referenced by getNumQps().
Definition at line 389 of file KokkosAssembly.h.
Referenced by getNumFaceQps().
|
private |
Definition at line 393 of file KokkosAssembly.h.
Referenced by getNumQps().
|
private |
Definition at line 394 of file KokkosAssembly.h.
Referenced by getNumFaceQps().
Definition at line 443 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Shape functions for computing normal vectors.
Definition at line 442 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Shape functions for reference elements.
Definition at line 416 of file KokkosAssembly.h.
Referenced by getPhi().
Definition at line 417 of file KokkosAssembly.h.
Referenced by getPhiFace().
|
private |
Reference of the MOOSE problem.
Definition at line 349 of file KokkosAssembly.h.
Quadrature points and weights for reference elements.
Definition at line 407 of file KokkosAssembly.h.
Definition at line 408 of file KokkosAssembly.h.
|
private |
Starting offset into the global quadrature point index NOTE: The global quadrature point index is subdomain-wise.
Definition at line 381 of file KokkosAssembly.h.
Referenced by getQpOffset().
|
private |
Definition at line 382 of file KokkosAssembly.h.
Referenced by getQpFaceOffset().
General axisymmetric axis of each subdomain in cylindrical coordinate system.
Definition at line 374 of file KokkosAssembly.h.
Referenced by coordTransformFactor().
|
private |
Radial coordinate index in cylindrical coordinate system.
Definition at line 370 of file KokkosAssembly.h.
Referenced by coordTransformFactor().
Definition at line 422 of file KokkosAssembly.h.
Referenced by getVectorGradPhi().
Definition at line 423 of file KokkosAssembly.h.
Referenced by getVectorGradPhiFace().
Definition at line 420 of file KokkosAssembly.h.
Referenced by getVectorPhi().
Definition at line 421 of file KokkosAssembly.h.
Referenced by getVectorPhiFace().
Definition at line 409 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Definition at line 410 of file KokkosAssembly.h.
Referenced by computePhysicalMap().
Definition at line 451 of file KokkosAssembly.h.
Referenced by getQPoint().
1.8.14