Cabana 0.8.0-dev
 
Loading...
Searching...
No Matches
Cabana_Grid_Splines.hpp File Reference

Spline functions. More...

#include <Cabana_Grid_LocalMesh.hpp>
#include <Cabana_Grid_Types.hpp>
#include <Kokkos_Core.hpp>
#include <type_traits>
Include dependency graph for Cabana_Grid_Splines.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Cabana::Grid::Spline< 0 >
 Zero-order (Nearest Grid Point Interpolation). Defined on the dual grid. More...
 
struct  Cabana::Grid::Spline< 1 >
 Linear. Defined on the primal grid. More...
 
struct  Cabana::Grid::Spline< 2 >
 Quadratic. Defined on the dual grid. More...
 
struct  Cabana::Grid::Spline< 3 >
 Cubic. Defined on the primal grid. More...
 
struct  Cabana::Grid::Spline< 4 >
 Quartic. Defined on the dual grid. More...
 
struct  Cabana::Grid::Spline< 5 >
 Quintic. Defined on the primal grid. More...
 
struct  Cabana::Grid::Spline< 6 >
 Sextic. Defined on the dual grid. More...
 
struct  Cabana::Grid::SplinePhysicalCellSize
 Spline data tag: physical cell size. More...
 
struct  Cabana::Grid::SplineLogicalPosition
 Spline data tag: logical position. More...
 
struct  Cabana::Grid::SplinePhysicalDistance
 Spline data tag: physical distance. More...
 
struct  Cabana::Grid::SplineWeightValues
 Spline data tag: weight value. More...
 
struct  Cabana::Grid::SplineWeightPhysicalGradients
 Spline data tag: physical gradient. More...
 
struct  Cabana::Grid::SplineDataMemberTypes< DataTags >
 Spline data members holder. More...
 
struct  Cabana::Grid::SplineDataMember< Scalar, Order, NumSpaceDim, SplinePhysicalCellSize >
 Physical cell size spline data member. More...
 
struct  Cabana::Grid::SplineDataMember< Scalar, Order, NumSpaceDim, SplineLogicalPosition >
 Logical position spline data member. More...
 
struct  Cabana::Grid::SplineDataMember< Scalar, Order, NumSpaceDim, SplinePhysicalDistance >
 Physical distance spline data member. More...
 
struct  Cabana::Grid::SplineDataMember< Scalar, Order, NumSpaceDim, SplineWeightValues >
 Weight values spline data member. More...
 
struct  Cabana::Grid::SplineDataMember< Scalar, Order, NumSpaceDim, SplineWeightPhysicalGradients >
 Weight physical gradients spline data member. More...
 
struct  Cabana::Grid::SplineData< Scalar, Order, NumSpaceDim, EntityType, void >
 Default of void has all data members. More...
 
struct  Cabana::Grid::SplineData< Scalar, Order, NumSpaceDim, EntityType, SplineDataMemberTypes< Tags... > >
 Specify each data member individually through tags. More...
 

Namespaces

namespace  Cabana
 Core: particle data structures and algorithms.
 

Functions

template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t< SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_physical_cell_size > Cabana::Grid::setSplineData (SplinePhysicalCellSize, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &data, const int d, const Scalar dx)
 Assign physical cell size to the spline data.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t<!SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_physical_cell_size > Cabana::Grid::setSplineData (SplinePhysicalCellSize, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &, const int, const Scalar)
 Physical cell size spline data template helper.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t< SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_logical_position > Cabana::Grid::setSplineData (SplineLogicalPosition, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &data, const int d, const Scalar x)
 Assign logical position to the spline data.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t<!SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_logical_position > Cabana::Grid::setSplineData (SplineLogicalPosition, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &, const int, const Scalar)
 Logical position spline data template helper.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t< SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_weight_values > Cabana::Grid::setSplineData (SplineWeightValues, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &data, const Scalar x[NumSpaceDim])
 Assign weight values to the spline data.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t<!SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_weight_values > Cabana::Grid::setSplineData (SplineWeightValues, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &, const Scalar[NumSpaceDim])
 Weight value spline data template helper.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t< SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_weight_physical_gradients > Cabana::Grid::setSplineData (SplineWeightPhysicalGradients, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &data, const Scalar x[NumSpaceDim], const Scalar rdx[NumSpaceDim])
 Assign weight physical gradients to the spline data.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t<!SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_weight_physical_gradients > Cabana::Grid::setSplineData (SplineWeightPhysicalGradients, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &, const Scalar[NumSpaceDim], const Scalar[NumSpaceDim])
 Weight physical gradients spline data template helper.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t< SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_physical_distance > Cabana::Grid::setSplineData (SplinePhysicalDistance, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &data, const Scalar low_x[NumSpaceDim], const Scalar p[NumSpaceDim], const Scalar dx[NumSpaceDim])
 Assign physical distance to the spline data.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION std::enable_if_t<!SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags >::has_physical_distance > Cabana::Grid::setSplineData (SplinePhysicalDistance, SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &, const Scalar[NumSpaceDim], const Scalar[NumSpaceDim], const Scalar[NumSpaceDim])
 Physical distance spline data template helper.
 
template<typename Scalar, int Order, std::size_t NumSpaceDim, class MemorySpace, class EntityType, class DataTags>
KOKKOS_INLINE_FUNCTION void Cabana::Grid::evaluateSpline (const LocalMesh< MemorySpace, UniformMesh< Scalar, NumSpaceDim > > &local_mesh, const Scalar p[NumSpaceDim], SplineData< Scalar, Order, NumSpaceDim, EntityType, DataTags > &data)
 Evaluate spline data at a point in a uniform mesh.
 

Detailed Description

Spline functions.