#include "../kokkos/kokkos_wrapper.hpp"#include "../types.hpp"#include "dense/mat.hpp"#include <string>Go to the source code of this file.
Classes | |
| struct | terra::grid::Grid4DDataVec< ScalarType, VecDim > |
| SoA (Structure-of-Arrays) 4D vector grid data. More... | |
| struct | terra::grid::Grid4DDataVec< ScalarType, VecDim >::HostMirror |
| Host mirror type for I/O. More... | |
Namespaces | |
| namespace | terra |
| namespace | terra::grid |
Typedefs | |
| using | terra::grid::Layout = Kokkos::LayoutRight |
| template<typename ScalarType > | |
| using | terra::grid::Grid0DDataScalar = Kokkos::View< ScalarType, Layout > |
| template<typename ScalarType > | |
| using | terra::grid::Grid1DDataScalar = Kokkos::View< ScalarType *, Layout > |
| template<typename ScalarType > | |
| using | terra::grid::Grid2DDataScalar = Kokkos::View< ScalarType **, Layout > |
| template<typename ScalarType > | |
| using | terra::grid::Grid3DDataScalar = Kokkos::View< ScalarType ***, Layout > |
| template<typename ScalarType > | |
| using | terra::grid::Grid4DDataScalar = Kokkos::View< ScalarType ****, Layout > |
| template<typename ScalarType > | |
| using | terra::grid::Grid5DDataScalar = Kokkos::View< ScalarType *****, Layout > |
| template<typename ScalarType , int VecDim> | |
| using | terra::grid::Grid0DDataVec = Kokkos::View< ScalarType[VecDim], Layout > |
| template<typename ScalarType , int VecDim> | |
| using | terra::grid::Grid1DDataVec = Kokkos::View< ScalarType *[VecDim], Layout > |
| template<typename ScalarType , int VecDim> | |
| using | terra::grid::Grid2DDataVec = Kokkos::View< ScalarType **[VecDim], Layout > |
| template<typename ScalarType , int VecDim> | |
| using | terra::grid::Grid3DDataVec = Kokkos::View< ScalarType ***[VecDim], Layout > |
| template<typename ScalarType , int Rows, int Cols, int NumMatrices> | |
| using | terra::grid::Grid4DDataMatrices = Kokkos::View< dense::Mat< ScalarType, Rows, Cols > ****[NumMatrices], Layout > |
Enumerations | |
| enum class | terra::grid::BoundaryPosition : int { terra::grid::P0 = 0 , terra::grid::P1 = 1 , terra::grid::PV = 2 } |
| Enum for encoding the boundary type tuples (in BoundaryVertex, BoundaryEdge, BoundaryFace). More... | |
| enum class | terra::grid::BoundaryVertex : int { terra::grid::V_000 = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::P0, BoundaryPosition::P0 ) , terra::grid::V_100 = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::P0, BoundaryPosition::P0 ) , terra::grid::V_010 = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::P1, BoundaryPosition::P0 ) , terra::grid::V_110 = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::P1, BoundaryPosition::P0 ) , terra::grid::V_001 = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::P0, BoundaryPosition::P1 ) , terra::grid::V_101 = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::P0, BoundaryPosition::P1 ) , terra::grid::V_011 = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::P1, BoundaryPosition::P1 ) , terra::grid::V_111 = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::P1, BoundaryPosition::P1 ) } |
| Enum for identification of the 8 boundary vertices of a subdomain. More... | |
| enum class | terra::grid::BoundaryEdge : int { terra::grid::E_X00 = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::P0, BoundaryPosition::P0 ) , terra::grid::E_X10 = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::P1, BoundaryPosition::P0 ) , terra::grid::E_X01 = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::P0, BoundaryPosition::P1 ) , terra::grid::E_X11 = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::P1, BoundaryPosition::P1 ) , terra::grid::E_0Y0 = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::PV, BoundaryPosition::P0 ) , terra::grid::E_1Y0 = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::PV, BoundaryPosition::P0 ) , terra::grid::E_0Y1 = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::PV, BoundaryPosition::P1 ) , terra::grid::E_1Y1 = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::PV, BoundaryPosition::P1 ) , terra::grid::E_00R = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::P0, BoundaryPosition::PV ) , terra::grid::E_10R = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::P0, BoundaryPosition::PV ) , terra::grid::E_01R = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::P1, BoundaryPosition::PV ) , terra::grid::E_11R = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::P1, BoundaryPosition::PV ) } |
| Enum for identification of the 12 boundary edges of a subdomain. More... | |
| enum class | terra::grid::BoundaryFace : int { terra::grid::F_XY0 = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::PV, BoundaryPosition::P0 ) , terra::grid::F_XY1 = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::PV, BoundaryPosition::P1 ) , terra::grid::F_X0R = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::P0, BoundaryPosition::PV ) , terra::grid::F_X1R = boundary_position_encoding( BoundaryPosition::PV, BoundaryPosition::P1, BoundaryPosition::PV ) , terra::grid::F_0YR = boundary_position_encoding( BoundaryPosition::P0, BoundaryPosition::PV, BoundaryPosition::PV ) , terra::grid::F_1YR = boundary_position_encoding( BoundaryPosition::P1, BoundaryPosition::PV, BoundaryPosition::PV ) } |
| Enum for identification of the 6 boundary faces of a subdomain. More... | |
| enum class | terra::grid::BoundaryDirection : int { terra::grid::FORWARD = 0 , terra::grid::BACKWARD } |
| Enum for the iteration direction at a boundary. More... | |
Functions | |
| template<typename ScalarType , int VecDim> | |
| Grid4DDataVec< ScalarType, VecDim >::HostMirror | terra::grid::create_mirror (Kokkos::HostSpace space, const Grid4DDataVec< ScalarType, VecDim > &src) |
| Create a host mirror for Grid4DDataVec. | |
| template<typename ScalarType > | |
| Grid4DDataScalar< ScalarType >::HostMirror | terra::grid::create_mirror (Kokkos::HostSpace space, const Grid4DDataScalar< ScalarType > &src) |
| Create a host mirror for Grid4DDataScalar (delegates to Kokkos). | |
| template<typename ScalarType , int VecDim> | |
| void | terra::grid::deep_copy (typename Grid4DDataVec< ScalarType, VecDim >::HostMirror &dst, const Grid4DDataVec< ScalarType, VecDim > &src) |
| Deep copy from device Grid4DDataVec to host mirror. | |
| template<typename ScalarType , int VecDim> | |
| void | terra::grid::deep_copy (Grid4DDataVec< ScalarType, VecDim > &dst, const typename Grid4DDataVec< ScalarType, VecDim >::HostMirror &src) |
| Deep copy from host mirror to device Grid4DDataVec. | |
| template<typename ScalarType > | |
| void | terra::grid::deep_copy (Grid4DDataScalar< ScalarType > &dst, const typename Grid4DDataScalar< ScalarType >::HostMirror &src) |
| Deep copy for Grid4DDataScalar host mirror to device (delegates to Kokkos). | |
| template<typename ScalarType > | |
| void | terra::grid::deep_copy (typename Grid4DDataScalar< ScalarType >::HostMirror &dst, const Grid4DDataScalar< ScalarType > &src) |
| Deep copy for Grid4DDataScalar device to host mirror (delegates to Kokkos). | |
| template<typename GridDataType > | |
| constexpr int | terra::grid::grid_data_vec_dim () |
| constexpr int | terra::grid::boundary_position_encoding (const BoundaryPosition x, const BoundaryPosition y, const BoundaryPosition r) |
| template<typename BoundaryType > | |
| constexpr BoundaryPosition | terra::grid::boundary_position_from_boundary_type_x (const BoundaryType &boundary_type) |
| template<typename BoundaryType > | |
| constexpr BoundaryPosition | terra::grid::boundary_position_from_boundary_type_y (const BoundaryType &boundary_type) |
| template<typename BoundaryType > | |
| constexpr BoundaryPosition | terra::grid::boundary_position_from_boundary_type_r (const BoundaryType &boundary_type) |
| constexpr bool | terra::grid::is_edge_boundary_radial (const BoundaryEdge id) |
| constexpr bool | terra::grid::is_face_boundary_normal_to_radial_direction (const BoundaryFace id) |
| constexpr BoundaryVertex | terra::grid::other_side_r (BoundaryVertex boundary_vertex) |
| std::string | terra::grid::to_string (BoundaryVertex v) |
| std::string | terra::grid::to_string (BoundaryEdge e) |
| std::string | terra::grid::to_string (BoundaryFace f) |
| std::ostream & | terra::grid::operator<< (std::ostream &os, BoundaryVertex v) |
| std::ostream & | terra::grid::operator<< (std::ostream &os, BoundaryEdge e) |
| std::ostream & | terra::grid::operator<< (std::ostream &os, BoundaryFace f) |
Variables | |
| constexpr std::array | terra::grid::all_boundary_vertices |
| constexpr std::array | terra::grid::all_boundary_edges |
| constexpr std::array | terra::grid::all_boundary_faces |