|
constexpr size_t | size_of_libsharp_coefficient_vector (const size_t l_max) |
| Convenience function for determining the number of spin-weighted spherical harmonics coefficients that are stored for a given l_max More...
|
|
constexpr double | sharp_swsh_sign_change (const int from_spin_weight, const int to_spin_weight, const bool real) |
| Compute the relative sign change necessary to convert between the libsharp basis for spin weight from_spin_weight to the basis for spin weight to_spin_weight , for the real component coefficients if real is true, otherwise for the imaginary component coefficients. The sign change for a given coefficient is equivalent to the product of sharp_swsh_sign(from_spin, m, real) * sharp_swsh_sign(to_spin, m,
real) . Due to the form of the signs, it does not end up depending on m (the m's in the power of 's cancel). For full details of the libsharp sign conventions, see the documentation for TransformJob. More...
|
|
constexpr double | sharp_swsh_sign (const int spin_weight, const int m, const bool real) |
| Compute the sign change between the libsharp convention and the set of spin-weighted spherical harmonics given by the relation to the Wigner rotation matrices. More...
|
|
const CoefficientsMetadata & | cached_coefficients_metadata (size_t l_max) |
| Generation function for obtaining a CoefficientsMetadata object which is computed by the libsharp calls only once, then lazily cached as a singleton via a static member of a function template. This is the preferred method for obtaining a CoefficientsMetadata when the l_max is not very large. More...
|
|
template<int Spin> |
std::complex< double > | libsharp_mode_to_goldberg (size_t l, int m, size_t l_max, const SpinWeighted< ComplexModalVector, Spin > &libsharp_modes, size_t radial_offset) |
| Compute the mode coefficient for the convention of [81]. See the documentation for TransformJob for complete details on the libsharp and Goldberg coefficient representations. More...
|
|
template<int Spin> |
void | goldberg_modes_to_libsharp_modes_single_pair (const LibsharpCoefficientInfo &coefficient_info, gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > libsharp_modes, size_t radial_offset, std::complex< double > goldberg_plus_m_mode_value, std::complex< double > goldberg_minus_m_mode_value) |
| Set modes of a libsharp-compatible data structure by specifying the modes in the [81] representation. More...
|
|
template<int Spin> |
void | goldberg_modes_to_libsharp_modes_single_pair (size_t l, int m, size_t l_max, gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > libsharp_modes, size_t radial_offset, std::complex< double > goldberg_plus_m_mode_value, std::complex< double > goldberg_minus_m_mode_value) |
| Set modes of a libsharp-compatible data structure by specifying the modes in the [81] representation. More...
|
|
constexpr size_t | goldberg_mode_index (const size_t l_max, const size_t l, const int m, const size_t radial_offset=0) |
| Returns the index into a vector of modes consistent with [81]. More...
|
|
constexpr size_t | number_of_swsh_collocation_points (const size_t l_max) |
| Convenience function for determining the number of spin-weighted spherical harmonic collocation values that are stored for a given l_max for a libsharp-compatible set of collocation points.
|
|
constexpr size_t | number_of_swsh_theta_collocation_points (const size_t l_max) |
| Returns the number of spin-weighted spherical harmonic collocation values in for a libsharp-compatible set of collocation points. More...
|
|
constexpr size_t | number_of_swsh_phi_collocation_points (const size_t l_max) |
| Returns the number of spin-weighted spherical harmonic collocation values in for a libsharp-compatible set of collocation points. More...
|
|
Mesh< 3 > | swsh_volume_mesh_for_radial_operations (const size_t l_max, const size_t number_of_radial_points) |
| Obtain the three-dimensional mesh associated with a libsharp-compatible sequence of spherical nodal shells. More...
|
|
template<ComplexRepresentation Representation> |
const CollocationMetadata< Representation > & | cached_collocation_metadata (size_t l_max) |
| precomputation function for those collocation grids that are requested More...
|
|
void | create_angular_and_cartesian_coordinates (const gsl::not_null< tnsr::i< DataVector, 3 > * > cartesian_coordinates, const gsl::not_null< tnsr::i< DataVector, 2, ::Frame::Spherical<::Frame::Inertial > > * > angular_coordinates, size_t l_max) |
| Store the libsharp-compatible collocation grid and corresponding unit-sphere cartesian grid in the supplied buffers.
|
|
template<int Spin> |
auto | swsh_buffer (const size_t l_max, const size_t number_of_radial_points) |
| Produces a SpinWeighted<ComplexModalVector, Spin> of the appropriate size to be used as a modal buffer for Spectral::Swsh::AngularDerivatives or Spectral::Swsh::angular_derivatives . More...
|
|
template<typename DerivativeKindList , ComplexRepresentation Representation = ComplexRepresentation::Interleaved, typename... ArgumentTypes> |
void | angular_derivatives (const size_t l_max, const size_t number_of_radial_points, const ArgumentTypes &... arguments) |
| Evaluate all of the spin-weighted derivatives in DerivKindList on input SpinWeighted<ComplexDataVector, Spin> collocation data, returning by pointer. More...
|
|
template<typename DerivKind , ComplexRepresentation Representation = ComplexRepresentation::Interleaved, int Spin> |
SpinWeighted< ComplexDataVector, Tags::derivative_spin_weight< DerivKind >+Spin > | angular_derivative (size_t l_max, size_t number_of_radial_points, const SpinWeighted< ComplexDataVector, Spin > &to_differentiate) |
| Evaluate the spin-weighted derivative DerivKind on the provided SpinWeighted<ComplexDataVector, Spin> collocation data, returning by value.
|
|
template<ComplexRepresentation Representation = ComplexRepresentation::Interleaved, int Spin, typename... ModalThenNodalTypes> |
void | swsh_transform (const size_t l_max, const size_t number_of_radial_points, const gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > first_coefficient, const ModalThenNodalTypes &... coefficients_then_collocations) |
| Perform a forward libsharp spin-weighted spherical harmonic transform on any number of supplied SpinWeighted<ComplexDataVector, Spin> . More...
|
|
template<ComplexRepresentation Representation = ComplexRepresentation::Interleaved, int Spin> |
SpinWeighted< ComplexModalVector, Spin > | swsh_transform (size_t l_max, size_t number_of_radial_points, const SpinWeighted< ComplexDataVector, Spin > &collocation) |
| Perform a forward libsharp spin-weighted spherical harmonic transform on a single supplied SpinWeighted<ComplexDataVector, Spin> . More...
|
|
template<ComplexRepresentation Representation = ComplexRepresentation::Interleaved, int Spin, typename... NodalThenModalTypes> |
void | inverse_swsh_transform (const size_t l_max, const size_t number_of_radial_points, const gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > first_collocation, const NodalThenModalTypes &... collocations_then_coefficients) |
| Perform an inverse libsharp spin-weighted spherical harmonic transform on any number of supplied SpinWeighted<ComplexModalVector, Spin> . More...
|
|
template<ComplexRepresentation Representation = ComplexRepresentation::Interleaved, int Spin> |
SpinWeighted< ComplexDataVector, Spin > | inverse_swsh_transform (size_t l_max, size_t number_of_radial_points, const SpinWeighted< ComplexModalVector, Spin > &libsharp_coefficients) |
| Perform an inverse libsharp spin-weighted spherical harmonic transform on a single supplied SpinWeighted<ComplexModalVector, Spin> . More...
|
|
template<int Spin> |
void | interpolate_to_collocation (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > target, const SpinWeighted< ComplexDataVector, Spin > &source, size_t target_l_max, size_t source_l_max, size_t number_of_radial_points) |
| Convert spin-weighted spherical harmonic data to a new set of collocation points (either downsampling or upsampling)
|
|
|
template<int Spin> |
std::complex< double > | libsharp_mode_to_goldberg_plus_m (const LibsharpCoefficientInfo &coefficient_info, const SpinWeighted< ComplexModalVector, Spin > &libsharp_modes, size_t radial_offset) |
| Compute the mode coefficient for the convention of [81]. More...
|
|
template<int Spin> |
std::complex< double > | libsharp_mode_to_goldberg_minus_m (const LibsharpCoefficientInfo &coefficient_info, const SpinWeighted< ComplexModalVector, Spin > &libsharp_modes, size_t radial_offset) |
| Compute the mode coefficient for the convention of [81]. More...
|
|
|
template<int Spin> |
void | libsharp_to_goldberg_modes (gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > goldberg_modes, const SpinWeighted< ComplexModalVector, Spin > &libsharp_modes, size_t l_max) |
| Compute the set of Goldberg Spin-weighted spherical harmonic modes (in the convention of [81]) from a libsharp-compatible series of modes. More...
|
|
template<int Spin> |
SpinWeighted< ComplexModalVector, Spin > | libsharp_to_goldberg_modes (const SpinWeighted< ComplexModalVector, Spin > &libsharp_modes, size_t l_max) |
| Compute the set of Goldberg Spin-weighted spherical harmonic modes (in the convention of [81]) from a libsharp-compatible series of modes. More...
|
|
|
template<int Spin> |
void | goldberg_to_libsharp_modes (gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > libsharp_modes, const SpinWeighted< ComplexModalVector, Spin > &goldberg_modes, size_t l_max) |
| Compute the set of libsharp-compatible spin-weighted spherical harmonic modes from a set of Goldberg modes (following the convention of [81]) More...
|
|
template<int Spin> |
SpinWeighted< ComplexModalVector, Spin > | goldberg_to_libsharp_modes (const SpinWeighted< ComplexModalVector, Spin > &goldberg_modes, size_t l_max) |
| Compute the set of libsharp-compatible spin-weighted spherical harmonic modes from a set of Goldberg modes (following the convention of [81]) More...
|
|
|
template<int Spin> |
void | filter_swsh_volume_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_max_l, double exponential_alpha, size_t exponential_half_power, gsl::not_null< ComplexDataVector * > buffer, gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > transform_buffer) |
| Filter a volume collocation set in the form of consecutive libsharp-compatible spherical shells. More...
|
|
template<int Spin> |
void | filter_swsh_volume_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_max_l, double exponential_alpha, size_t exponential_half_power) |
| Filter a volume collocation set in the form of consecutive libsharp-compatible spherical shells. More...
|
|
|
template<int Spin> |
void | filter_swsh_volume_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_min_l, size_t filter_max_l, double exponential_alpha, size_t exponential_half_power, gsl::not_null< ComplexDataVector * > buffer, gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > transform_buffer) |
| Filter a volume collocation set in the form of consecutive libsharp-compatible spherical shells. More...
|
|
template<int Spin> |
void | filter_swsh_volume_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_min_l, size_t filter_max_l, double exponential_alpha, size_t exponential_half_power) |
| Filter a volume collocation set in the form of consecutive libsharp-compatible spherical shells. More...
|
|
|
template<int Spin> |
void | filter_swsh_boundary_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_max_l, gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > transform_buffer) |
| Filter a libsharp-compatible set of collocation points on a spherical surface. More...
|
|
template<int Spin> |
void | filter_swsh_boundary_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_max_l) |
| Filter a libsharp-compatible set of collocation points on a spherical surface. More...
|
|
|
template<int Spin> |
void | filter_swsh_boundary_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_min_l, size_t filter_max_l, gsl::not_null< SpinWeighted< ComplexModalVector, Spin > * > transform_buffer) |
| Filter a libsharp-compatible set of collocation points on a spherical surface. More...
|
|
template<int Spin> |
void | filter_swsh_boundary_quantity (gsl::not_null< SpinWeighted< ComplexDataVector, Spin > * > to_filter, size_t l_max, size_t filter_min_l, size_t filter_max_l) |
| Filter a libsharp-compatible set of collocation points on a spherical surface. More...
|
|