SpECTRE
v2025.04.21
|
Maps domain::CoordinateMaps::Distribution
.
More...
#include <Interval.hpp>
Public Member Functions | |
Interval (double A, double B, double a, double b, Distribution distribution, std::optional< double > singularity_pos=std::nullopt) | |
template<typename T > | |
std::array< tt::remove_cvref_wrap_t< T >, 1 > | operator() (const std::array< T, 1 > &source_coords) const |
std::optional< std::array< double, 1 > > | inverse (const std::array< double, 1 > &target_coords) const |
template<typename T > | |
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 1, Frame::NoFrame > | jacobian (const std::array< T, 1 > &source_coords) const |
template<typename T > | |
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 1, Frame::NoFrame > | inv_jacobian (const std::array< T, 1 > &source_coords) const |
void | pup (PUP::er &p) |
bool | is_identity () const |
Static Public Attributes | |
static constexpr size_t | dim = 1 |
Friends | |
bool | operator== (const Interval &lhs, const Interval &rhs) |
Maps domain::CoordinateMaps::Distribution
.
The mapping takes a domain::CoordinateMaps::Distribution
and distributes the grid points accordingly.
The formula for the mapping is, in case of a Linear
distribution
For every other distribution we use this linear mapping to map onto an interval
With this an Equiangular
distribution is described by
Wedge
map when equiangular coordinates are chosen for those maps. For more information on this choice of coordinates, see the documentation for Wedge
.For both the Logarithmic
and Inverse
distribution, we first specify a position for the singularity singularity_pos
outside the target interval
The Logarithmic
distribution further requires the introduction of a variable Logarithmic
distribution is described by
and the Inverse
distribution by