|
template<class DiscreteMapping > |
| Impl (const DiscreteMapping &curvilinear_to_cartesian) |
| A constructor for the PolarBSplines. More...
|
|
template<class OriginMemorySpace > |
| Impl (Impl< DDim, OriginMemorySpace > const &impl) |
| A copy constructor for the PolarBSplines. More...
|
|
| Impl (Impl const &x)=default |
| A copy constructor for the PolarBSplines. More...
|
|
| Impl (Impl &&x)=default |
| A copy constructor for the PolarBSplines taking a temporary r-value. More...
|
|
| ~Impl ()=default |
| The destructor for the PolarBSplines.
|
|
Impl & | operator= (Impl const &x)=default |
| A copy operator for the PolarBSplines. More...
|
|
Impl & | operator= (Impl &&x)=default |
| A copy operator for the PolarBSplines taking a temporary r-value. More...
|
|
tensor_product_index_type | eval_basis (DSpan1D singular_values, DSpan2D values, ddc::Coordinate< DimR, DimTheta > p) const |
| Evaluate the polar basis splines at the coordinate p. More...
|
|
tensor_product_index_type | eval_deriv_r (DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const |
| Evaluate the radial derivative of the polar basis splines at the coordinate p. More...
|
|
tensor_product_index_type | eval_deriv_theta (DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const |
| Evaluate the poloidal derivative of the polar basis splines at the coordinate p. More...
|
|
tensor_product_index_type | eval_deriv_r_and_theta (DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const |
| Evaluate the second order derivative of the polar basis splines in the radial and poloidal directions, at the coordinate p. More...
|
|
template<class MemorySpace2 > |
void | integrals (PolarSplineSpan< DDim, MemorySpace2 > int_vals) const |
| Calculate the integrals of each of the basis splines. More...
|
|
std::size_t | nbasis () const noexcept |
| Get the total number of basis functions. More...
|
|
discrete_domain_type | full_domain () const noexcept |
| Returns the index range containing the indices of all the polar b-splines. More...
|
|
discrete_domain_type | tensor_bspline_idx_range () const noexcept |
| Returns the ddc::DiscreteDomain containing the indices of the b-splines which don't traverse the singular point and can be expressed as a tensor-product of 1D b-splines. More...
|
|
template<class BSplinesR, class BSplinesTheta, int C>
template<class DDim, class MemorySpace>
class PolarBSplines< BSplinesR, BSplinesTheta, C >::Impl< DDim, MemorySpace >
The Impl class holds the implementation of the PolarBSplines.
The implementation is specific to the memory space so that the Chunks can be defined with index ranges related to instances of this class.
- Template Parameters
-
MemorySpace | Indicates where the object is saved. This is either on the host or the device. |
template<class BSplinesR , class BSplinesTheta , int C>
template<class DDim , class MemorySpace >
template<class DiscreteMapping >
A constructor for the PolarBSplines.
- Parameters
-
curvilinear_to_cartesian | A mapping from curvilinear to cartesian coordinates. This is used to find the singular point and determine the Barycentric coordinates which are used to define the new basis splines which cross the singular point. |
template<class BSplinesR , class BSplinesTheta , int C>
template<class DDim , class MemorySpace >
Evaluate the polar basis splines at the coordinate p.
Evaluate all the b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, as well as the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines.
- Parameters
-
[out] | singular_values | The value of the b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, evaluated at the coordinate p. |
[out] | values | The value of the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines. |
[in] | p | The coordinate where the basis functions are evaluated. |
- Returns
- The 2D tensor product index of the first b-spline element in the values array.
template<class BSplinesR , class BSplinesTheta , int C>
template<class DDim , class MemorySpace >
Evaluate the radial derivative of the polar basis splines at the coordinate p.
Evaluate the radial derivative of all the b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, as well as the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines.
- Parameters
-
[out] | singular_derivs | The value of the radial derivative b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, evaluated at the coordinate p. |
[out] | derivs | The value of the radial derivative of the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines. |
[in] | p | The coordinate where the basis functions are evaluated. |
- Returns
- The 2D tensor product index of the first b-spline element in the values array.
template<class BSplinesR , class BSplinesTheta , int C>
template<class DDim , class MemorySpace >
Evaluate the poloidal derivative of the polar basis splines at the coordinate p.
Evaluate the poloidal derivative of all the b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, as well as the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines.
- Parameters
-
[out] | singular_derivs | The value of the poloidal derivative b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, evaluated at the coordinate p. |
[out] | derivs | The value of the poloidal derivative of the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines. |
[in] | p | The coordinate where the basis functions are evaluated. |
- Returns
- The 2D tensor product index of the first b-spline element in the values array.
template<class BSplinesR , class BSplinesTheta , int C>
template<class DDim , class MemorySpace >
Evaluate the second order derivative of the polar basis splines in the radial and poloidal directions, at the coordinate p.
Evaluate the 2nd order derivative of all the b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, as well as the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines.
- Parameters
-
[out] | singular_derivs | The value of the 2nd order derivative b-spline elements near the singular point which cannot be expressed as a tensor product of 1D bsplines, evaluated at the coordinate p. |
[out] | derivs | The value of the 2nd order derivative of the non-zero b-spline elements which can be expressed as a tensor product of 1D bsplines. |
[in] | p | The coordinate where the basis functions are evaluated. |
- Returns
- The 2D tensor product index of the first b-spline element in the values array.