SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Cce::Tags::SwshDerivativeCompute< ArgumentTag, DerivativeKind > Struct Template Reference

Compute tag for a manually-handled Swsh derivative in the volume. More...

#include <SwshDerivatives.hpp>

Public Types

using base = Spectral::Swsh::Tags::Derivative<ArgumentTag, DerivativeKind>
using return_type = typename base::type
using ApplySwshJac = ApplySwshJacobianInplace<base>
using argument_tags
Public Types inherited from Spectral::Swsh::Tags::Derivative< ArgumentTag, DerivativeKind >
using type
using tag
using derivative_of
using derivative_kind

Static Public Member Functions

static constexpr auto function (const gsl::not_null< return_type * > eth_field, size_t l_max, size_t number_of_radial_points, const typename ArgumentTag::type &field, const Scalar< SpinWeighted< ComplexDataVector, 0 > > &one_minus_y, const Scalar< SpinWeighted< ComplexDataVector, 1 > > &eth_r_divided_by_r, const typename Tags::Dy< ArgumentTag >::type &dy_field)
Static Public Member Functions inherited from Spectral::Swsh::Tags::Derivative< ArgumentTag, DerivativeKind >
static std::string name ()

Additional Inherited Members

Static Public Attributes inherited from Spectral::Swsh::Tags::Derivative< ArgumentTag, DerivativeKind >
static const int spin

Detailed Description

template<typename ArgumentTag, typename DerivativeKind>
struct Cce::Tags::SwshDerivativeCompute< ArgumentTag, DerivativeKind >

Compute tag for a manually-handled Swsh derivative in the volume.

Details

Numerical swsh derivatives are \(\breve\eth\) (at fixed \(y\)), but we prefer to write our calculations here in terms of \(\eth\) (at fixed \(r\)). This involves a correction term that depends on the \(\partial_{\breve{y}}\) derivative of the field being differentiated. Most of these are handled in place by ApplySwshJacobianInplace. However, that infrastructure is specific to the Cce evolution system itself, so it won't work for other uses (e.g. observers that are invoked periodically). This compute tag instead manually computes a certain swsh derivative (at fixed \(r\)). Right now this will only work when DerivativeKind is either Spectral::Swsh::Tags::Eth or Spectral::Swsh::Tags::Ethbar. If you want to extend it to second derivatives, there will have to be more template specializations.

Member Typedef Documentation

◆ argument_tags

template<typename ArgumentTag, typename DerivativeKind>
using Cce::Tags::SwshDerivativeCompute< ArgumentTag, DerivativeKind >::argument_tags
Initial value:
tmpl::append<
tmpl::list<Tags::LMax, Tags::NumberOfRadialPoints, ArgumentTag>,
typename ApplySwshJac::argument_tags,
typename ApplySwshJac::on_demand_argument_tags>

The documentation for this struct was generated from the following file:
  • src/Evolution/Systems/Cce/SwshDerivatives.hpp