|
using | cartesian_tag_x = typename Curvilinear2DToCartesian< X, Y, R, Theta >::cartesian_tag_x |
| Indicate the first physical coordinate.
|
|
using | cartesian_tag_y = typename Curvilinear2DToCartesian< X, Y, R, Theta >::cartesian_tag_y |
| Indicate the second physical coordinate.
|
|
using | curvilinear_tag_r = typename Curvilinear2DToCartesian< X, Y, R, Theta >::curvilinear_tag_r |
| Indicate the first logical coordinate.
|
|
using | curvilinear_tag_theta = typename Curvilinear2DToCartesian< X, Y, R, Theta >::curvilinear_tag_theta |
| Indicate the second logical coordinate.
|
|
using | CoordArg = ddc::Coordinate< R, Theta > |
| The type of the argument of the function described by this mapping.
|
|
using | CoordResult = ddc::Coordinate< X, Y > |
| The type of the result of the function described by this mapping.
|
|
using | Matrix_2x2 = std::array< std::array< double, 2 >, 2 > |
| The type of the pseudo-Cartesian Jacobian matrix and its inverse.
|
|
using | cartesian_tag_x = X |
| Indicate the first physical coordinate.
|
|
using | cartesian_tag_y = Y |
| Indicate the second physical coordinate.
|
|
using | curvilinear_tag_r = R |
| Indicate the first logical coordinate.
|
|
using | curvilinear_tag_theta = Theta |
| Indicate the second logical coordinate.
|
|
|
| CzarnyToCartesian (double epsilon, double e) |
| Instantiate a CzarnyToCartesian from parameters. More...
|
|
KOKKOS_FUNCTION | CzarnyToCartesian (CzarnyToCartesian const &other) |
| Instantiate a CzarnyToCartesian from another CzarnyToCartesian (lvalue). More...
|
|
| CzarnyToCartesian (CzarnyToCartesian &&x)=default |
| Instantiate a CzarnyToCartesian from another temporary CzarnyToCartesian (rvalue). More...
|
|
CzarnyToCartesian & | operator= (CzarnyToCartesian const &x)=default |
| Assign a CzarnyToCartesian from another CzarnyToCartesian (lvalue). More...
|
|
CzarnyToCartesian & | operator= (CzarnyToCartesian &&x)=default |
| Assign a CzarnyToCartesian from another temporary CzarnyToCartesian (rvalue). More...
|
|
KOKKOS_FUNCTION double | epsilon () const |
| Return the \( \epsilon \) parameter. More...
|
|
KOKKOS_FUNCTION double | e () const |
| Return the \( e \) parameter. More...
|
|
KOKKOS_FUNCTION ddc::Coordinate< X, Y > | operator() (ddc::Coordinate< R, Theta > const &coord) const |
| Convert the \( (r, \theta) \) coordinate to the equivalent (x,y) coordinate. More...
|
|
KOKKOS_FUNCTION ddc::Coordinate< R, Theta > | operator() (ddc::Coordinate< X, Y > const &coord) const final |
| Convert the coordinate (x,y) to the equivalent \( (r, \theta) \) coordinate. More...
|
|
KOKKOS_FUNCTION double | jacobian (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the Jacobian, the determinant of the Jacobian matrix of the mapping. More...
|
|
KOKKOS_FUNCTION void | jacobian_matrix (ddc::Coordinate< R, Theta > const &coord, Matrix_2x2 &matrix) const |
| Compute full Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | jacobian_11 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (1,1) coefficient of the Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | jacobian_12 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (1,2) coefficient of the Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | jacobian_21 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (2,1) coefficient of the Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | jacobian_22 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (2,2) coefficient of the Jacobian matrix. More...
|
|
KOKKOS_FUNCTION void | inv_jacobian_matrix (ddc::Coordinate< R, Theta > const &coord, Matrix_2x2 &matrix) const |
| Compute full inverse Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | inv_jacobian_11 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (1,1) coefficient of the inverse Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | inv_jacobian_12 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (1,2) coefficient of the inverse Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | inv_jacobian_21 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (2,1) coefficient of the inverse Jacobian matrix. More...
|
|
KOKKOS_FUNCTION double | inv_jacobian_22 (ddc::Coordinate< R, Theta > const &coord) const |
| Compute the (2,2) coefficient of the inverse Jacobian matrix. More...
|
|
KOKKOS_FUNCTION void | to_pseudo_cartesian_jacobian_center_matrix (Matrix_2x2 &matrix) const final |
| Compute the full Jacobian matrix from the mapping to the pseudo-Cartesian mapping at the central point. More...
|
|
KOKKOS_FUNCTION double | to_pseudo_cartesian_jacobian_11_center () const final |
| Compute the (1,1) coefficient of the pseudo-Cartesian Jacobian matrix at the central point. More...
|
|
KOKKOS_FUNCTION double | to_pseudo_cartesian_jacobian_12_center () const final |
| Compute the (1,2) coefficient of the pseudo-Cartesian Jacobian matrix at the central point. More...
|
|
KOKKOS_FUNCTION double | to_pseudo_cartesian_jacobian_21_center () const final |
| Compute the (2,1) coefficient of the pseudo-Cartesian Jacobian matrix at the central point. More...
|
|
KOKKOS_FUNCTION double | to_pseudo_cartesian_jacobian_22_center () const final |
| Compute the (2,2) coefficient of the pseudo-Cartesian Jacobian matrix at the central point. More...
|
|
template<class X, class Y, class R, class Theta>
class CzarnyToCartesian< X, Y, R, Theta >
A class for describing the Czarny 2D mapping.
The mapping \( (r,\theta)\mapsto (x,y) \) is defined by
\( x(r,\theta) = \frac{1}{\epsilon} \left( 1 - \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} \right),\)
\( y(r,\theta) = \frac{e\xi r \sin(\theta)}{2 -\sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} },\)
with \( \xi = 1/\sqrt{1 - \epsilon^2 /4} \) and \( e \) and \( \epsilon \) given as parameters. It and its Jacobian matrix are invertible everywhere except for \( r = 0 \).
Its Jacobian coefficients are defined as follow
\( J_{11}(r,\theta) = - \cos(\theta)\frac{1}{ \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} } \)
\( J_{12}(r,\theta) = r\sin(\theta)\frac{1}{ \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} } \)
\( J_{21}(r,\theta) = \cos(\theta)\frac{e\epsilon \xi r\sin(\theta)}{ \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} \left( 2 - \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} \right)^2 } + \sin(\theta)\frac{e\xi }{ 2- \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} }\)
\( J_{22}(r,\theta) = r \sin(\theta)\frac{- e\epsilon \xi r \sin(\theta)}{ \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} \left( 2 - \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} \right)^2 } + r\cos(\theta)\frac{e\xi }{ 2 -\sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))} }\).
and \( \det(J(r, \theta)) = \frac{- r}{ \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))}} \frac{e\xi}{2 - \sqrt{1 + \epsilon(\epsilon + 2 r \cos(\theta))}}. \)