SpECTRE
v2025.03.17
|
A FocallyLiftedInnerMap that maps a 3D unit right cylinder to a volume that connects a portion of a plane and a spherical surface. More...
#include <FocallyLiftedFlatEndcap.hpp>
Public Member Functions | |
FlatEndcap (const std::array< double, 3 > ¢er, double radius) | |
FlatEndcap (FlatEndcap &&)=default | |
FlatEndcap (const FlatEndcap &)=default | |
FlatEndcap & | operator= (const FlatEndcap &)=default |
FlatEndcap & | operator= (FlatEndcap &&)=default |
template<typename T > | |
void | forward_map (const gsl::not_null< std::array< tt::remove_cvref_wrap_t< T >, 3 > * > target_coords, const std::array< T, 3 > &source_coords) const |
std::optional< std::array< double, 3 > > | inverse (const std::array< double, 3 > &target_coords, double sigma_in) const |
template<typename T > | |
void | jacobian (const gsl::not_null< tnsr::Ij< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFrame > * > jacobian_out, const std::array< T, 3 > &source_coords) const |
template<typename T > | |
void | inv_jacobian (const gsl::not_null< tnsr::Ij< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFrame > * > inv_jacobian_out, const std::array< T, 3 > &source_coords) const |
template<typename T > | |
void | sigma (const gsl::not_null< tt::remove_cvref_wrap_t< T > * > sigma_out, const std::array< T, 3 > &source_coords) const |
template<typename T > | |
void | deriv_sigma (const gsl::not_null< std::array< tt::remove_cvref_wrap_t< T >, 3 > * > deriv_sigma_out, const std::array< T, 3 > &source_coords) const |
template<typename T > | |
void | dxbar_dsigma (const gsl::not_null< std::array< tt::remove_cvref_wrap_t< T >, 3 > * > dxbar_dsigma_out, const std::array< T, 3 > &source_coords) const |
std::optional< double > | lambda_tilde (const std::array< double, 3 > &parent_mapped_target_coords, const std::array< double, 3 > &projection_point, bool source_is_between_focus_and_target) const |
template<typename T > | |
void | deriv_lambda_tilde (const gsl::not_null< std::array< tt::remove_cvref_wrap_t< T >, 3 > * > deriv_lambda_tilde_out, const std::array< T, 3 > &target_coords, const T &lambda_tilde, const std::array< double, 3 > &projection_point) const |
void | pup (PUP::er &p) |
Static Public Member Functions | |
static bool | is_identity () |
Friends | |
bool | operator== (const FlatEndcap &lhs, const FlatEndcap &rhs) |
A FocallyLiftedInnerMap that maps a 3D unit right cylinder to a volume that connects a portion of a plane and a spherical surface.
The domain of the map is a 3D unit right cylinder with coordinates
Consider a 2D circle in 3D space that is normal to the FlatEndcap
provides the following functions:
forward_map()
maps forward_map()
are forward_map()
returns
deriv_sigma
returns
jacobian
returns jacobian
are
Differentiating Eqs.(1–3) above yields
and all other components are zero.
inverse
takes std::optional<std::array<double, 3>>
if
If std::optional<std::array<double, 3>>
lambda_tilde
takes as arguments a point
Since
For FocallyLiftedInnerMaps::FlatEndcap
, std::optional<double>
is returned if
deriv_lambda_tilde
takes as arguments
and other components are zero.
inv_jacobian
returns inv_jacobian
are
The nonzero components are
dxbar_dsigma
returns
From Eq. (6) we have