SpECTRE  v2024.04.12
Spectral::Swsh::InverseSwshTransform< TagList, Representation > Struct Template Reference

A DataBox mutate-compatible computational struct for performing several spin-weighted inverse spherical harmonic transforms. Internally dispatches to libsharp. More...

Detailed Description

template<typename TagList, ComplexRepresentation Representation = ComplexRepresentation::Interleaved>
struct Spectral::Swsh::InverseSwshTransform< TagList, Representation >

A DataBox mutate-compatible computational struct for performing several spin-weighted inverse spherical harmonic transforms. Internally dispatches to libsharp.

Details

Template Parameters:

  • Representation: The element of the ComplexRepresentation enum which parameterizes how the data passed to libsharp will be represented. Two options are available:

    • ComplexRepresentation:Interleaved: indicates that the real and imaginary parts of the collocation values will be passed to libsharp as pointers into existing complex data structures, minimizing copies, but maintaining a stride of 2 for 'adjacent' real or imaginary values.
    • ComplexRepresentation::RealsThenImags: indicates that the real and imaginary parts of the collocation values will be passed to libsharp as separate contiguous blocks. At current, this introduces both allocations and copies. optimization note In the future most of the allocations can be aggregated to calling code, which would pass in buffers by not_null pointers.

    For performance-sensitive code, both options should be tested, as each strategy has trade-offs.

  • TagList: A tmpl::list of Tags to be inverse transformed. The tags must represent the nodal data being transformed to.
See also
SwshTransform for mathematical notes regarding the libsharp modal representation taken as input for this computational struct.

The documentation for this struct was generated from the following file: