template<typename T, unsigned Dim, unsigned NumElementDOFs, typename ElementType, typename QuadratureType, typename FieldLHS, typename FieldRHS>
class ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >
The FiniteElementSpace class handles the mesh index mapping to vertices and elements and is the base class for other FiniteElementSpace classes (e.g. LagrangeSpace)
- Template Parameters
-
| T | The floating point type |
| Dim | The dimension of the mesh (same dimension as the space) |
| NumElementDOFs | The number of degrees of freedom per element |
| QuadratureType | The type of the quadrature rule (e.g. MidpointQuadrature, GaussJacobiQuadrature) |
| FieldLHS | The type of the left hand side field |
| FieldRHS | The type of the right hand side field (can be the same as FieldLHS) |
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| KOKKOS_FUNCTION FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::vertex_indices_t ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::getElementMeshVertexIndices |
( |
const indices_t & |
elementNDIndex | ) |
const |
Get all the global vertex indices of an element (given by its NDIndex).
- Parameters
-
| elementNDIndex | The NDIndex of the element |
- Returns
- vertex_indices_t (Vector<size_t, numElementVertices>) - vector of vertex indices
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| virtual KOKKOS_FUNCTION size_t ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::getGlobalDOFIndex |
( |
const size_t & |
elementIndex, |
|
|
const size_t & |
localDOFIndex |
|
) |
| const |
|
pure virtual |
Get the global DOF index from the element index and local DOF.
- Parameters
-
| elementIndex | size_t - The index of the element |
| localDOFIndex | size_t - The local DOF index |
- Returns
- size_t - The global DOF index
Implemented in ippl::LagrangeSpace< T, Dim, Order, ElementType, QuadratureType, FieldLHS, FieldRHS >, ippl::LagrangeSpace< Tlhs, Dim, 1, ElementType, QuadratureType, FieldLHS, FieldLHS >, ippl::NedelecSpace< T, Dim, Order, ElementType, QuadratureType, FieldType >, and ippl::NedelecSpace< T, Dim, 1, ElementType, QuadratureType, FieldType >.
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| virtual KOKKOS_FUNCTION Vector< size_t, NumElementDOFs > ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::getGlobalDOFIndices |
( |
const size_t & |
elementIndex | ) |
const |
|
pure virtual |
Get the global DOF indices (vector of global DOF indices) of an element.
- Parameters
-
| elementIndex | size_t - The index of the element |
- Returns
- Vector<size_t, NumElementDOFs> - The global DOF indices
Implemented in ippl::LagrangeSpace< T, Dim, Order, ElementType, QuadratureType, FieldLHS, FieldRHS >, ippl::LagrangeSpace< Tlhs, Dim, 1, ElementType, QuadratureType, FieldLHS, FieldLHS >, ippl::NedelecSpace< T, Dim, Order, ElementType, QuadratureType, FieldType >, and ippl::NedelecSpace< T, Dim, 1, ElementType, QuadratureType, FieldType >.
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| virtual KOKKOS_FUNCTION size_t ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::getLocalDOFIndex |
( |
const size_t & |
elementIndex, |
|
|
const size_t & |
globalDOFIndex |
|
) |
| const |
|
pure virtual |
Get the elements local DOF from the element index and global DOF index.
- Parameters
-
| elementIndex | size_t - The index of the element |
| globalDOFIndex | size_t - The global DOF index |
- Returns
- size_t - The local DOF index
Implemented in ippl::LagrangeSpace< T, Dim, Order, ElementType, QuadratureType, FieldLHS, FieldRHS >, ippl::LagrangeSpace< Tlhs, Dim, 1, ElementType, QuadratureType, FieldLHS, FieldLHS >, ippl::NedelecSpace< T, Dim, Order, ElementType, QuadratureType, FieldType >, and ippl::NedelecSpace< T, Dim, 1, ElementType, QuadratureType, FieldType >.
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| virtual KOKKOS_FUNCTION Vector< size_t, NumElementDOFs > ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::getLocalDOFIndices |
( |
| ) |
const |
|
pure virtual |
Get the local DOF indices (vector of local DOF indices) They are independent of the specific element because it only depends on the reference element type.
- Returns
- Vector<size_t, NumElementDOFs> - The local DOF indices
Implemented in ippl::LagrangeSpace< T, Dim, Order, ElementType, QuadratureType, FieldLHS, FieldRHS >, ippl::LagrangeSpace< Tlhs, Dim, 1, ElementType, QuadratureType, FieldLHS, FieldLHS >, ippl::NedelecSpace< T, Dim, Order, ElementType, QuadratureType, FieldType >, and ippl::NedelecSpace< T, Dim, 1, ElementType, QuadratureType, FieldType >.
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| KOKKOS_FUNCTION size_t ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::numElements |
( |
| ) |
const |
Mesh and Element operations ///////////////////////////////////////.
Get the number of elements in the mesh of the space
- Returns
- size_t - unsigned integer number of elements
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| KOKKOS_FUNCTION size_t ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::numElementsInDim |
( |
const size_t & |
dim | ) |
const |
Get the number of elements in a given dimension.
- Parameters
-
| dim | size_t - representing the dimension |
- Returns
- size_t - unsigned integer number of elements in the given dimension
template<typename T , unsigned Dim, unsigned NumElementDOFs, typename ElementType , typename QuadratureType , typename FieldLHS , typename FieldRHS >
| virtual KOKKOS_FUNCTION size_t ippl::FiniteElementSpace< T, Dim, NumElementDOFs, ElementType, QuadratureType, FieldLHS, FieldRHS >::numGlobalDOFs |
( |
| ) |
const |
|
pure virtual |
Degree of Freedom operations //////////////////////////////////////.
Get the number of global degrees of freedom in the space
- Returns
- size_t - unsigned integer number of global degrees of freedom
Implemented in ippl::LagrangeSpace< T, Dim, Order, ElementType, QuadratureType, FieldLHS, FieldRHS >, ippl::LagrangeSpace< Tlhs, Dim, 1, ElementType, QuadratureType, FieldLHS, FieldLHS >, ippl::NedelecSpace< T, Dim, Order, ElementType, QuadratureType, FieldType >, and ippl::NedelecSpace< T, Dim, 1, ElementType, QuadratureType, FieldType >.