SpECTRE  v2024.12.16
domain::CoordinateMaps::SphericalToCartesianPfaffian Class Reference

Pfaffian transformation from spherical to Cartesian coordinates. More...

#include <SphericalToCartesianPfaffian.hpp>

Public Member Functions

 SphericalToCartesianPfaffian (SphericalToCartesianPfaffian &&)
 
 SphericalToCartesianPfaffian (const SphericalToCartesianPfaffian &)
 
SphericalToCartesianPfaffianoperator= (const SphericalToCartesianPfaffian &)
 
SphericalToCartesianPfaffianoperator= (SphericalToCartesianPfaffian &&)
 
template<typename T >
std::array< tt::remove_cvref_wrap_t< T >, 3 > operator() (const std::array< T, 3 > &source_coords) const
 
std::optional< std::array< double, 3 > > inverse (const std::array< double, 3 > &target_coords) const
 
template<typename T >
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFramejacobian (const std::array< T, 3 > &source_coords) const
 
template<typename T >
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFrameinv_jacobian (const std::array< T, 3 > &source_coords) const
 
void pup (PUP::er &p)
 

Static Public Member Functions

static constexpr bool is_identity ()
 

Static Public Attributes

static constexpr size_t dim = 3
 

Detailed Description

Pfaffian transformation from spherical to Cartesian coordinates.

Note
This map is designed to be used together with Spherepack! Spherepack expects a Pfaffian transformation of the derivatives.

Details

This is a Pfaffian mapping from \((r,\theta,\phi) \rightarrow (x,y,z) \).

The formula for the mapping is...

\begin{eqnarray*} x &=& r \sin\theta \cos\phi \\ y &=& r \sin\theta \sin\phi \\ z &=& r \cos\theta \end{eqnarray*}

The Pfaffian basis vectors \( (e_{\hat r}, e_{\hat \theta}, e_{\hat \phi})\) are related to the coordinate basis vectors \( (e_r, e_{\theta}, e_{\phi})\) by...

\begin{eqnarray*} e_{\hat r} &=& e_r \\ e_{\hat \theta} &=& e_{\theta} \\ e_{\hat \phi} &=& \frac{1}{\sin \theta} e_{\phi} \end{eqnarray*}


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