|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
1-dimensional B-spline More...
#include "bsplines.hpp"
Public Member Functions | |
| int | degree () const |
| Get degree (order - 1). | |
| bool | is_initialized () const |
| Check if spline is initialized. | |
| Real | knot (int i) const |
| Get knot at index i (handles offset from Fortran indexing) In Fortran: knots(-p:nints+p), in C++: knots(0:2*p+nints) Fortran index i maps to C++ index i + order - 1. | |
| void | set_knot (int i, Real val) |
| Set knot at index i. | |
| Spline1D ()=default | |
Public Attributes | |
| Kokkos::View< Real * > | bcoefs |
| Spline coefficients. | |
| int | dim = 0 |
| Dimension of spline space = nints + order - 1. | |
| std::vector< int > | fmap |
| Fine to coarse mesh mapping (for non-equidistant). | |
| Kokkos::View< Real ** > | gausw |
| Gauss weights (ngauss x nints). | |
| Kokkos::View< Real ** > | gausx |
| Gauss abscissas (ngauss x nints). | |
| Real | hinv = 0.0 |
| Inverse of mesh size (for equidistant grids). | |
| Kokkos::View< Real * > | intspl |
| Integral of each spline. | |
| Kokkos::View< Real * > | knots |
| Knot sequence (-p:nints+p in Fortran, size 2*p+nints+1). | |
| Real | lperiod = 0.0 |
| Period length (if periodic). | |
| GBMat | mat |
| Interpolation matrix (non-periodic). | |
| PeriodicMat | matp |
| Interpolation matrix (periodic). | |
| int | nints = 0 |
| Number of knot intervals. | |
| bool | nlequid = false |
| Is the grid equidistant? | |
| bool | nlppform = true |
| Use PPFORM for evaluation? | |
| int | order = 0 |
| Spline order = degree + 1. | |
| bool | period = false |
| Is the grid periodic? | |
| Kokkos::View< Real ** > | ppform |
| PPFORM coefficients. | |
| Kokkos::View< Real *** > | val0 |
| Pre-computed spline values at left boundaries (deriv, basis, interval). | |
| Kokkos::View< Real ** > | valc |
| For periodic equidistant: translational invariant values. | |
1-dimensional B-spline
Represents a B-spline defined on a 1D grid with:
|
default |
|
inline |
Get degree (order - 1).
References order.
|
inline |
| Real orb5x::spclibs::Spline1D::knot | ( | int | i | ) | const |
Get knot at index i (handles offset from Fortran indexing) In Fortran: knots(-p:nints+p), in C++: knots(0:2*p+nints) Fortran index i maps to C++ index i + order - 1.
| void orb5x::spclibs::Spline1D::set_knot | ( | int | i, |
| Real | val ) |
Set knot at index i.
| Kokkos::View<Real*> orb5x::spclibs::Spline1D::bcoefs |
Spline coefficients.
| int orb5x::spclibs::Spline1D::dim = 0 |
Dimension of spline space = nints + order - 1.
Referenced by is_initialized().
| std::vector<int> orb5x::spclibs::Spline1D::fmap |
Fine to coarse mesh mapping (for non-equidistant).
| Kokkos::View<Real**> orb5x::spclibs::Spline1D::gausw |
Gauss weights (ngauss x nints).
| Kokkos::View<Real**> orb5x::spclibs::Spline1D::gausx |
Gauss abscissas (ngauss x nints).
| Real orb5x::spclibs::Spline1D::hinv = 0.0 |
Inverse of mesh size (for equidistant grids).
| Kokkos::View<Real*> orb5x::spclibs::Spline1D::intspl |
Integral of each spline.
| Kokkos::View<Real*> orb5x::spclibs::Spline1D::knots |
Knot sequence (-p:nints+p in Fortran, size 2*p+nints+1).
| Real orb5x::spclibs::Spline1D::lperiod = 0.0 |
Period length (if periodic).
| GBMat orb5x::spclibs::Spline1D::mat |
Interpolation matrix (non-periodic).
| PeriodicMat orb5x::spclibs::Spline1D::matp |
Interpolation matrix (periodic).
| int orb5x::spclibs::Spline1D::nints = 0 |
Number of knot intervals.
| bool orb5x::spclibs::Spline1D::nlequid = false |
Is the grid equidistant?
| bool orb5x::spclibs::Spline1D::nlppform = true |
Use PPFORM for evaluation?
| int orb5x::spclibs::Spline1D::order = 0 |
Spline order = degree + 1.
Referenced by degree(), and is_initialized().
| bool orb5x::spclibs::Spline1D::period = false |
Is the grid periodic?
| Kokkos::View<Real**> orb5x::spclibs::Spline1D::ppform |
PPFORM coefficients.
| Kokkos::View<Real***> orb5x::spclibs::Spline1D::val0 |
Pre-computed spline values at left boundaries (deriv, basis, interval).
| Kokkos::View<Real**> orb5x::spclibs::Spline1D::valc |
For periodic equidistant: translational invariant values.