SpECTRE
v2024.12.16
|
Computational structs for evaluating the hypersurface integrals during CCE evolution. These are compatible with use in db::mutate_apply
.
More...
#include <LinearSolve.hpp>
Public Types | |
using | boundary_tags = implementation defined |
using | integrand_tags = implementation defined |
using | return_tags = implementation defined |
using | argument_tags = implementation defined |
Static Public Member Functions | |
static void | apply (gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, Tag::type::type::spin > > * > integral_result, const Scalar< SpinWeighted< ComplexDataVector, Tag::type::type::spin > > &integrand, const Scalar< SpinWeighted< ComplexDataVector, Tag::type::type::spin > > &boundary, size_t l_max, size_t number_of_radial_points) |
Computational structs for evaluating the hypersurface integrals during CCE evolution. These are compatible with use in db::mutate_apply
.
The integral evaluated and the corresponding inputs required depend on the CCE quantity being computed. In any of these, the only mutated tag is Tag
, where the result of the integration is placed. The supported Tag
s act in the following ways:
Tag
is Tags::BondiBeta
or Tags::BondiU
, the integral to be evaluated is simply
Tags::Integrand<Tag>
.Tag
is Tags::BondiQ
or Tags::BondiW
, the integral to be evaluated is
Tags::PoleOfIntegrand<Tag>
and Tags::RegularIntegrand<Tag>
.If Tag
is Tags::BondiH
, the integral to be evaluated is:
for Tags::PoleOfIntegrand<Tag>
, Tags::RegularIntegrand<Tag>
, Tags::LinearFactor<Tag>
, and Tags::LinearFactorForConjugate<Tag>
. The presence of
In each case, the boundary value at the world tube for the integration is retrieved from BoundaryPrefix<Tag>
.
Additional type aliases boundary_tags
and integrand_tags
are provided for template processing of the required input tags necessary for these functions. These type aliases are tmpl::list
s with the subsets of argument_tags
from specific other parts of the CCE computation. Because they play different roles, and have different extents, it is better for tag management to give separated lists for the dependencies.