Gyselalib++
Jacobian< PositionCoordinate > Class Template Referenceabstract

An operator to calculate the Jacobian matrix and its inverse. More...

Inheritance diagram for Jacobian< PositionCoordinate >:
NonAnalyticalJacobian< ddc::Coordinate< typename SplineEvaluator::continuous_dimension_type1, typename SplineEvaluator::continuous_dimension_type2 > > NonAnalyticalJacobian< PositionCoordinate > DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >

Public Member Functions

virtual KOKKOS_FUNCTION double jacobian (PositionCoordinate const &coord) const =0
 Compute the Jacobian, the determinant of the Jacobian matrix of the mapping. More...
 
virtual KOKKOS_FUNCTION void jacobian_matrix (PositionCoordinate const &coord, Matrix_2x2 &matrix) const =0
 Compute full Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double jacobian_11 (PositionCoordinate const &coord) const =0
 Compute the (1,1) coefficient of the Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double jacobian_12 (PositionCoordinate const &coord) const =0
 Compute the (1,2) coefficient of the Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double jacobian_21 (PositionCoordinate const &coord) const =0
 Compute the (2,1) coefficient of the Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double jacobian_22 (PositionCoordinate const &coord) const =0
 Compute the (2,2) coefficient of the Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION void inv_jacobian_matrix (PositionCoordinate const &coord, Matrix_2x2 &matrix) const =0
 Compute full inverse Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double inv_jacobian_11 (PositionCoordinate const &coord) const =0
 Compute the (1,1) coefficient of the inverse Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double inv_jacobian_12 (PositionCoordinate const &coord) const =0
 Compute the (1,2) coefficient of the inverse Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double inv_jacobian_21 (PositionCoordinate const &coord) const =0
 Compute the (2,1) coefficient of the inverse Jacobian matrix. More...
 
virtual KOKKOS_FUNCTION double inv_jacobian_22 (PositionCoordinate const &coord) const =0
 Compute the (2,2) coefficient of the inverse Jacobian matrix. More...
 

Detailed Description

template<class PositionCoordinate>
class Jacobian< PositionCoordinate >

An operator to calculate the Jacobian matrix and its inverse.

All operators which can calculate terms of the Jacobian matrix should inherit from this class.

Template Parameters
PositionCoordinateThe type of the coordinate at which the Jacobian matrix can be calculated.

Member Function Documentation

◆ jacobian()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::jacobian ( PositionCoordinate const &  coord) const
pure virtual

Compute the Jacobian, the determinant of the Jacobian matrix of the mapping.

Parameters
[in]coordThe coordinate where we evaluate the Jacobian.
Returns
A double with the value of the determinant of the Jacobian matrix.

Implemented in NonAnalyticalJacobian< PositionCoordinate >.

◆ jacobian_matrix()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION void Jacobian< PositionCoordinate >::jacobian_matrix ( PositionCoordinate const &  coord,
Matrix_2x2 &  matrix 
) const
pure virtual

Compute full Jacobian matrix.

For some computations, we need the complete Jacobian matrix or just the coefficients. The coefficients can be given indendently with the functions jacobian_11, jacobian_12, jacobian_21 and jacobian_22.

Parameters
[in]coordThe coordinate where we evaluate the Jacobian matrix.
[out]matrixThe Jacobian matrix returned.
See also
Jacobian::jacobian_11
Jacobian::jacobian_12
Jacobian::jacobian_21
Jacobian::jacobian_22

◆ jacobian_11()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::jacobian_11 ( PositionCoordinate const &  coord) const
pure virtual

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} \).

Parameters
[in]coordThe coordinate where we evaluate the Jacobian matrix.
Returns
A double with the value of the (1,1) coefficient of the Jacobian matrix.

◆ jacobian_12()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::jacobian_12 ( PositionCoordinate const &  coord) const
pure virtual

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} \).

Parameters
[in]coordThe coordinate where we evaluate the Jacobian matrix.
Returns
A double with the value of the (1,2) coefficient of the Jacobian matrix.

◆ jacobian_21()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::jacobian_21 ( PositionCoordinate const &  coord) const
pure virtual

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} \).

Parameters
[in]coordThe coordinate where we evaluate the Jacobian matrix. .
Returns
A double with the value of the (2,1) coefficient of the Jacobian matrix.

◆ jacobian_22()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::jacobian_22 ( PositionCoordinate const &  coord) const
pure virtual

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} \).

Parameters
[in]coordThe coordinate where we evaluate the Jacobian matrix.
Returns
A double with the value of the (2,2) coefficient of the Jacobian matrix.

◆ inv_jacobian_matrix()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION void Jacobian< PositionCoordinate >::inv_jacobian_matrix ( PositionCoordinate const &  coord,
Matrix_2x2 &  matrix 
) const
pure virtual

Compute full inverse Jacobian matrix.

For some computations, we need the complete inverse Jacobian matrix or just the coefficients. The coefficients can be given indendently with the functions inv_jacobian_11, inv_jacobian_12, inv_jacobian_21 and inv_jacobian_22.

Parameters
[in]coordThe coordinate where we evaluate the Jacobian matrix.
[out]matrixThe inverse Jacobian matrix returned.
See also
Jacobian::inv_jacobian_11
Jacobian::inv_jacobian_12
Jacobian::inv_jacobian_21
Jacobian::inv_jacobian_22

Implemented in NonAnalyticalJacobian< PositionCoordinate >.

◆ inv_jacobian_11()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::inv_jacobian_11 ( PositionCoordinate const &  coord) const
pure virtual

Compute the (1,1) coefficient of the inverse Jacobian matrix.

Be careful because not all mappings are invertible, especially at the center point.

Parameters
[in]coordThe coordinate where we evaluate the inverse Jacobian matrix.
Returns
A double with the value of the (1,1) coefficient of the inverse Jacobian matrix.

Implemented in NonAnalyticalJacobian< PositionCoordinate >.

◆ inv_jacobian_12()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::inv_jacobian_12 ( PositionCoordinate const &  coord) const
pure virtual

Compute the (1,2) coefficient of the inverse Jacobian matrix.

Be careful because not all mappings are invertible, especially at the center point.

Parameters
[in]coordThe coordinate where we evaluate the inverse Jacobian matrix.
Returns
A double with the value of the (1,2) coefficient of the inverse Jacobian matrix.

Implemented in NonAnalyticalJacobian< PositionCoordinate >.

◆ inv_jacobian_21()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::inv_jacobian_21 ( PositionCoordinate const &  coord) const
pure virtual

Compute the (2,1) coefficient of the inverse Jacobian matrix.

Be careful because not all mappings are invertible, especially at the center point.

Parameters
[in]coordThe coordinate where we evaluate the inverse Jacobian matrix.
Returns
A double with the value of the (2,1) coefficient of the inverse Jacobian matrix.

Implemented in NonAnalyticalJacobian< PositionCoordinate >.

◆ inv_jacobian_22()

template<class PositionCoordinate >
virtual KOKKOS_FUNCTION double Jacobian< PositionCoordinate >::inv_jacobian_22 ( PositionCoordinate const &  coord) const
pure virtual

Compute the (2,2) coefficient of the inverse Jacobian matrix.

Be careful because not all mappings are invertible, especially at the center point.

Parameters
[in]coordThe coordinate where we evaluate the inverse Jacobian matrix.
Returns
A double with the value of the (2,2) coefficient of the inverse Jacobian matrix.

Implemented in NonAnalyticalJacobian< PositionCoordinate >.


The documentation for this class was generated from the following file: