|
|
| 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::Inertial > | jacobian (const tnsr::I< T, 3 > &source_coords) const |
|
template<typename T> |
| InverseJacobian< T, 3, Frame::BlockLogical, Frame::Inertial > | inv_jacobian (const tnsr::I< T, 3 > &source_coords) const |
|
template<typename T> |
| tnsr::Ijj< T, 3, Frame::NoFrame > | hessian (const tnsr::I< T, 3 > &source_coords) const |
|
template<typename T> |
| tnsr::Ijk< T, 3, Frame::NoFrame > | derivative_of_inv_jacobian (const tnsr::I< T, 3 > &source_coords) const |
|
void | pup (PUP::er &p) |
|
bool | is_identity () const |
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}, \\
\eta_\mathrm{new} & = a_\mathrm{comp} \eta^3 + (1-a_\mathrm{comp}) \eta, \\
\theta & = \pi/2 - (\pi/2 - \theta_\mathrm{min}) \eta_\mathrm{new}, \\
\phi & = f_\mathrm{torus} \pi \zeta.
\end{align}
- \(r_\mathrm{min}\) and \(r_\mathrm{max}\) are inner and outer radius of torus.
- \(\theta_\mathrm{min}\in(0,\pi/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.
- \(f_\mathrm{torus}\in(0, 1)\) is azimuthal fraction that the torus covers.
- \(a_\mathrm{comp}\in[0,1)\) sets the level of equatorial compression for theta, with zero being none.