SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
grmhd::AnalyticData::SphericalTorus Class Reference

Torus made by removing two polar cones from a spherical shell. More...

#include <SphericalTorus.hpp>

Classes

struct  CompressionLevel
 
struct  FractionOfTorus
 
struct  MinPolarAngle
 
struct  RadialRange
 

Public Types

using options = implementation defined
 

Public Member Functions

 SphericalTorus (const std::array< double, 2 > &radial_range, double min_polar_angle, double fraction_of_torus, double compression_level, const Options::Context &context={})
 
 SphericalTorus (double r_min, double r_max, double min_polar_angle, double fraction_of_torus=1.0, double compression_level=0.0, const Options::Context &context={})
 
template<typename T >
tnsr::I< T, 3 > operator() (const tnsr::I< T, 3 > &source_coords) const
 
tnsr::I< double, 3 > inverse (const tnsr::I< double, 3 > &target_coords) const
 
template<typename T >
Jacobian< T, 3, Frame::BlockLogical, Frame::Inertialjacobian (const tnsr::I< T, 3 > &source_coords) const
 
template<typename T >
InverseJacobian< T, 3, Frame::BlockLogical, Frame::Inertialinv_jacobian (const tnsr::I< T, 3 > &source_coords) const
 
template<typename T >
tnsr::Ijj< T, 3, Frame::NoFramehessian (const tnsr::I< T, 3 > &source_coords) const
 
template<typename T >
tnsr::Ijk< T, 3, Frame::NoFramederivative_of_inv_jacobian (const tnsr::I< 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)
 

Detailed Description

Torus made by removing two polar cones from a spherical shell.

Maps source coordinates (ξ,η,ζ) to

(1)x(ξ,η,ζ)=[rsinθcosϕrsinθsinϕrcosθ]

where

(2)r=rmin1ξ2+rmax1+ξ2,(3)ηnew=acompη3+(1acomp)η,(4)θ=π/2(π/2θmin)ηnew,(5)ϕ=ftorusπζ.

  • rmin and rmax are inner and outer radius of torus.
  • θmin(0,π/2) is the minimum polar angle (measured from +z axis) of torus, which is equal to the half of the apex angle of the removed polar cones.
  • ftorus(0,1) is azimuthal fraction that the torus covers.
  • acomp[0,1) sets the level of equatorial compression for theta, with zero being none.

Member Data Documentation

◆ help

constexpr Options::String grmhd::AnalyticData::SphericalTorus::help
staticconstexpr
Initial value:
=
"Torus made by removing polar cones from a spherical shell"

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