|
SpECTRE
v2025.08.19
|
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 = tmpl::append< tmpl::list< Tags::LMax, Tags::NumberOfRadialPoints, ArgumentTag >, typename ApplySwshJac::argument_tags, typename ApplySwshJac::on_demand_argument_tags > |
Public Types inherited from Spectral::Swsh::Tags::Derivative< ArgumentTag, DerivativeKind > | |
| using | type = detail::adjust_spin_weight_t< ArgumentTag, DerivativeKind > |
| using | tag = ArgumentTag |
| using | derivative_of = ArgumentTag |
| using | derivative_kind = DerivativeKind |
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 > > ð_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 |
Compute tag for a manually-handled Swsh derivative in the volume.
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.