Gyselalib++
NonAnalyticalJacobian< PositionCoordinate > Class Template Reference

A specialisation of Jacobian to handle non-analytical terms. More...

Inheritance diagram for NonAnalyticalJacobian< PositionCoordinate >:
Jacobian< PositionCoordinate >

Public Member Functions

KOKKOS_FUNCTION double jacobian (PositionCoordinate const &coord) const final
 Compute the Jacobian, the determinant of the Jacobian matrix of the mapping. More...
 
KOKKOS_FUNCTION void inv_jacobian_matrix (PositionCoordinate const &coord, Matrix_2x2 &matrix) const final
 Compute full inverse Jacobian matrix. More...
 
KOKKOS_FUNCTION double inv_jacobian_11 (PositionCoordinate const &coord) const final
 Compute the (1,1) coefficient of the inverse Jacobian matrix. More...
 
KOKKOS_FUNCTION double inv_jacobian_12 (PositionCoordinate const &coord) const final
 Compute the (1,2) coefficient of the inverse Jacobian matrix. More...
 
KOKKOS_FUNCTION double inv_jacobian_21 (PositionCoordinate const &coord) const final
 Compute the (2,1) coefficient of the inverse Jacobian matrix. More...
 
KOKKOS_FUNCTION double inv_jacobian_22 (PositionCoordinate const &coord) const final
 Compute the (2,2) coefficient of the inverse Jacobian matrix. More...
 
- Public Member Functions inherited from Jacobian< PositionCoordinate >
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...
 

Detailed Description

template<class PositionCoordinate>
class NonAnalyticalJacobian< PositionCoordinate >

A specialisation of Jacobian to handle non-analytical terms.

In this case the inverse and the determinant are calculated from the Jacobian matrix in the same way regardless of the implementation of the calculation of the Jacobian itself.

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

Member Function Documentation

◆ jacobian()

template<class PositionCoordinate >
KOKKOS_FUNCTION double NonAnalyticalJacobian< PositionCoordinate >::jacobian ( PositionCoordinate const &  coord) const
inlinefinalvirtual

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.

Implements Jacobian< PositionCoordinate >.

◆ inv_jacobian_matrix()

template<class PositionCoordinate >
KOKKOS_FUNCTION void NonAnalyticalJacobian< PositionCoordinate >::inv_jacobian_matrix ( PositionCoordinate const &  coord,
Matrix_2x2 &  matrix 
) const
inlinefinalvirtual

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

Implements Jacobian< PositionCoordinate >.

◆ inv_jacobian_11()

template<class PositionCoordinate >
KOKKOS_FUNCTION double NonAnalyticalJacobian< PositionCoordinate >::inv_jacobian_11 ( PositionCoordinate const &  coord) const
inlinefinalvirtual

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.

Implements Jacobian< PositionCoordinate >.

◆ inv_jacobian_12()

template<class PositionCoordinate >
KOKKOS_FUNCTION double NonAnalyticalJacobian< PositionCoordinate >::inv_jacobian_12 ( PositionCoordinate const &  coord) const
inlinefinalvirtual

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.

Implements Jacobian< PositionCoordinate >.

◆ inv_jacobian_21()

template<class PositionCoordinate >
KOKKOS_FUNCTION double NonAnalyticalJacobian< PositionCoordinate >::inv_jacobian_21 ( PositionCoordinate const &  coord) const
inlinefinalvirtual

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.

Implements Jacobian< PositionCoordinate >.

◆ inv_jacobian_22()

template<class PositionCoordinate >
KOKKOS_FUNCTION double NonAnalyticalJacobian< PositionCoordinate >::inv_jacobian_22 ( PositionCoordinate const &  coord) const
inlinefinalvirtual

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.

Implements Jacobian< PositionCoordinate >.


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