A class for describing the circular 2D mapping. More...
Public Types | |
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. | |
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. | |
Public Member Functions | |
KOKKOS_FUNCTION | CircularToCartesian (CircularToCartesian const &other) |
Instantiate a CircularToCartesian from another CircularToCartesian (lvalue). | |
CircularToCartesian (CircularToCartesian &&x)=default | |
Instantiate a CircularToCartesian from another temporary CircularToCartesian (rvalue). | |
CircularToCartesian & | operator= (CircularToCartesian const &x)=default |
Assign a CircularToCartesian from another CircularToCartesian (lvalue). | |
CircularToCartesian & | operator= (CircularToCartesian &&x)=default |
Assign a CircularToCartesian from another temporary CircularToCartesian (rvalue). | |
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. | |
KOKKOS_FUNCTION double | jacobian (ddc::Coordinate< R, Theta > const &coord) const |
Compute the Jacobian, the determinant of the Jacobian matrix of the mapping. | |
KOKKOS_FUNCTION void | jacobian_matrix (ddc::Coordinate< R, Theta > const &coord, Matrix_2x2 &matrix) const |
Compute full Jacobian matrix. | |
KOKKOS_FUNCTION double | jacobian_11 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (1,1) coefficient of the Jacobian matrix. | |
KOKKOS_FUNCTION double | jacobian_12 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (1,2) coefficient of the Jacobian matrix. | |
KOKKOS_FUNCTION double | jacobian_21 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (2,1) coefficient of the Jacobian matrix. | |
KOKKOS_FUNCTION double | jacobian_22 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (2,2) coefficient of the Jacobian matrix. | |
KOKKOS_FUNCTION void | inv_jacobian_matrix (ddc::Coordinate< R, Theta > const &coord, Matrix_2x2 &matrix) const |
Compute full inverse Jacobian matrix. | |
KOKKOS_FUNCTION double | inv_jacobian_11 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (1,1) coefficient of the inverse Jacobian matrix. | |
KOKKOS_FUNCTION double | inv_jacobian_12 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (1,2) coefficient of the inverse Jacobian matrix. | |
KOKKOS_FUNCTION double | inv_jacobian_21 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (2,1) coefficient of the inverse Jacobian matrix. | |
KOKKOS_FUNCTION double | inv_jacobian_22 (ddc::Coordinate< R, Theta > const &coord) const |
Compute the (2,2) coefficient of the inverse Jacobian matrix. | |
CartesianToCircular< X, Y, R, Theta > | get_inverse_mapping () const |
Get the inverse mapping. | |
A class for describing the circular 2D mapping.
The mapping \( (r,\theta)\mapsto (x,y) \) is defined as follow :
\( x(r,\theta) = r \cos(\theta),\)
\( y(r,\theta) = r \sin(\theta).\)
It and its Jacobian matrix are invertible everywhere except for \( r = 0 \).
The Jacobian matrix coefficients are defined as follow
\( J_{11}(r,\theta) = \cos(\theta)\)
\( J_{12}(r,\theta) = - r \sin(\theta)\)
\( J_{21}(r,\theta) = \sin(\theta)\)
\( J_{22}(r,\theta) = r \cos(\theta)\)
and the matrix determinant: \( det(J) = r \).
|
inline |
Instantiate a CircularToCartesian from another CircularToCartesian (lvalue).
[in] | other | CircularToCartesian mapping used to instantiate the new one. |
|
default |
Instantiate a CircularToCartesian from another temporary CircularToCartesian (rvalue).
[in] | x | CircularToCartesian mapping used to instantiate the new one. |
|
default |
Assign a CircularToCartesian from another CircularToCartesian (lvalue).
[in] | x | CircularToCartesian mapping used to assign. |
|
default |
Assign a CircularToCartesian from another temporary CircularToCartesian (rvalue).
[in] | x | CircularToCartesian mapping used to assign. |
|
inline |
Convert the \( (r, \theta) \) coordinate to the equivalent (x,y) coordinate.
[in] | coord | The coordinate to be converted. |
|
inline |
Compute the Jacobian, the determinant of the Jacobian matrix of the mapping.
[in] | coord | The coordinate where we evaluate the Jacobian. |
|
inline |
Compute full Jacobian matrix.
For some computations, we need the complete Jacobian matrix or just the coefficients. The coefficients can be given independently with the functions jacobian_11, jacobian_12, jacobian_21 and jacobian_22.
[in] | coord | The coordinate where we evaluate the Jacobian matrix. |
[out] | matrix | The Jacobian matrix returned. |
|
inline |
Compute the (1,1) coefficient of the Jacobian matrix.
For a mapping given by \( \mathcal{F} : (r,\theta)\mapsto (x,y) \), the (1,1) coefficient of the Jacobian matrix is given by \( \frac{\partial x}{\partial r} \).
[in] | coord | The coordinate where we evaluate the Jacobian matrix. |
|
inline |
Compute the (1,2) coefficient of the Jacobian matrix.
For a mapping given by \( \mathcal{F} : (r,\theta)\mapsto (x,y) \), the (1,2) coefficient of the Jacobian matrix is given by \( \frac{\partial x}{\partial \theta} \).
[in] | coord | The coordinate where we evaluate the Jacobian matrix. |
|
inline |
Compute the (2,1) coefficient of the Jacobian matrix.
For a mapping given by \( \mathcal{F} : (r,\theta)\mapsto (x,y) \), the (2,1) coefficient of the Jacobian matrix is given by \( \frac{\partial y}{\partial r} \).
[in] | coord | The coordinate where we evaluate the Jacobian matrix. . |
|
inline |
Compute the (2,2) coefficient of the Jacobian matrix.
For a mapping given by \( \mathcal{F} : (r,\theta)\mapsto (x,y) \), the (2,2) coefficient of the Jacobian matrix is given by \( \frac{\partial y}{\partial \theta} \).
[in] | coord | The coordinate where we evaluate the Jacobian matrix. |
|
inline |
Compute full inverse Jacobian matrix.
For some computations, we need the complete inverse Jacobian matrix or just the coefficients. The coefficients can be given independently with the functions inv_jacobian_11, inv_jacobian_12, inv_jacobian_21 and inv_jacobian_22.
[in] | coord | The coordinate where we evaluate the Jacobian matrix. |
[out] | matrix | The inverse Jacobian matrix returned. |
|
inline |
Compute the (1,1) coefficient of the inverse Jacobian matrix.
Be careful because not all mappings are invertible, especially at the center point.
[in] | coord | The coordinate where we evaluate the inverse Jacobian matrix. |
|
inline |
Compute the (1,2) coefficient of the inverse Jacobian matrix.
Be careful because not all mappings are invertible, especially at the center point.
[in] | coord | The coordinate where we evaluate the inverse Jacobian matrix. |
|
inline |
Compute the (2,1) coefficient of the inverse Jacobian matrix.
Be careful because not all mappings are invertible, especially at the center point.
[in] | coord | The coordinate where we evaluate the inverse Jacobian matrix. |
|
inline |
Compute the (2,2) coefficient of the inverse Jacobian matrix.
Be careful because not all mappings are invertible, especially at the center point.
[in] | coord | The coordinate where we evaluate the inverse Jacobian matrix. |
|
inline |
Get the inverse mapping.