|
| 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
|
| 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 \(-1\)'s cancel). For full details of the libsharp sign conventions, see the documentation for TransformJob.
|
| 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.
|
| 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.
|
| 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 [89]. See the documentation for TransformJob for complete details on the libsharp and Goldberg coefficient representations.
|
| 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 [89] representation.
|
| 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 [89] representation.
|
| 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 [89].
|
|
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 \(\theta\) for a libsharp-compatible set of collocation points.
|
| 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 \(\phi\) for a libsharp-compatible set of collocation points.
|
| 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.
|
| template<ComplexRepresentation Representation> |
| const CollocationMetadata< Representation > & | cached_collocation_metadata (size_t l_max) |
| | precomputation function for those collocation grids that are requested
|
|
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.
|
| 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.
|
|
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>.
|
| 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>.
|
| 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>.
|
| 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>.
|
|
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 [89].
|
| 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 [89].
|
| 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 [89]) from a libsharp-compatible series of modes.
|
| 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 [89]) from a libsharp-compatible series of modes.
|
| 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 [89])
|
| 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 [89])
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|