SpECTRE
v2023.09.07
|
Torus made by removing two polar cones from a spherical shell. More...
#include <SphericalTorus.hpp>
Classes | |
struct | FractionOfTorus |
struct | MinPolarAngle |
struct | RadialRange |
Public Types | |
using | options = tmpl::list< RadialRange, MinPolarAngle, FractionOfTorus > |
Public Member Functions | |
SphericalTorus (const std::array< double, 2 > &radial_range, const double min_polar_angle, const double fraction_of_torus, const Options::Context &context={}) | |
SphericalTorus (double r_min, double r_max, double min_polar_angle, double fraction_of_torus=1.0, const Options::Context &context={}) | |
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::NoFrame > | jacobian (const std::array< T, 3 > &source_coords) const |
template<typename T > | |
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFrame > | inv_jacobian (const std::array< T, 3 > &source_coords) const |
template<typename T > | |
tnsr::Ijj< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFrame > | hessian (const std::array< T, 3 > &source_coords) const |
template<typename T > | |
tnsr::Ijk< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFrame > | derivative_of_inv_jacobian (const std::array< T, 3 > &source_coords) const |
void | pup (PUP::er &p) |
bool | is_identity () const |
Static Public Attributes | |
static constexpr size_t | dim = 3 |
static constexpr Options::String | help |
Friends | |
bool | operator== (const SphericalTorus &lhs, const SphericalTorus &rhs) |
Torus made by removing two polar cones from a spherical shell.
Maps source coordinates \((\xi, \eta, \zeta)\) to
\begin{align} \vec{x}(\xi, \eta, \zeta) = \begin{bmatrix} r \sin\theta\cos\phi \\ r \sin\theta\sin\phi \\ r \cos\theta \end{bmatrix} \end{align}
where
\begin{align} r & = r_\mathrm{min}\frac{1-\xi}{2} + r_\mathrm{max}\frac{1+\xi}{2}, \\ \theta & = \pi/2 - (\pi/2 - \theta_\mathrm{min}) \eta, \\ \phi & = f_\mathrm{torus} \pi \zeta. \end{align}
|
staticconstexpr |