8 #include "ApparentHorizons/Strahlkorper.hpp" 9 #include "ApparentHorizons/StrahlkorperGr.hpp" 10 #include "ApparentHorizons/TagsDeclarations.hpp" 11 #include "ApparentHorizons/TagsTypeAliases.hpp" 13 #include "DataStructures/DataVector.hpp" 14 #include "PointwiseFunctions/GeneralRelativity/TagsDeclarations.hpp" 25 template <
typename Frame>
27 static std::string name() noexcept {
return "Strahlkorper"; }
33 template <
typename Frame>
35 static std::string name() noexcept {
return "ThetaPhi"; }
36 static aliases::ThetaPhi<Frame>
function(
37 const ::Strahlkorper<Frame>& strahlkorper) noexcept;
38 using argument_tags = tmpl::list<Strahlkorper<Frame>>;
43 template <
typename Frame>
45 static std::string name() noexcept {
return "Rhat"; }
46 static aliases::OneForm<Frame>
function(
48 using argument_tags = tmpl::list<ThetaPhi<Frame>>;
56 template <
typename Frame>
58 static std::string name() noexcept {
return "Jacobian"; }
59 static aliases::Jacobian<Frame>
function(
61 using argument_tags = tmpl::list<ThetaPhi<Frame>>;
68 template <
typename Frame>
70 static std::string name() noexcept {
return "InvJacobian"; }
71 static aliases::InvJacobian<Frame>
function(
73 using argument_tags = tmpl::list<ThetaPhi<Frame>>;
80 template <
typename Frame>
82 static std::string name() noexcept {
return "InvHessian"; }
83 static aliases::InvHessian<Frame>
function(
85 using argument_tags = tmpl::list<ThetaPhi<Frame>>;
90 template <
typename Frame>
92 static std::string name() noexcept {
return "Radius"; }
94 const ::Strahlkorper<Frame>& strahlkorper) noexcept {
95 return strahlkorper.ylm_spherepack().spec_to_phys(
96 strahlkorper.coefficients());
98 using argument_tags = tmpl::list<Strahlkorper<Frame>>;
104 template <
typename Frame>
106 static std::string name() noexcept {
return "CartesianCoords"; }
107 static aliases::Vector<Frame>
function(
108 const ::Strahlkorper<Frame>& strahlkorper,
const DataVector& radius,
110 using argument_tags =
120 template <
typename Frame>
122 static std::string name() noexcept {
return "DxRadius"; }
123 static aliases::OneForm<Frame>
function(
124 const ::Strahlkorper<Frame>& strahlkorper,
const DataVector& radius,
126 using argument_tags =
137 template <
typename Frame>
139 static std::string name() noexcept {
return "D2xRadius"; }
140 static aliases::SecondDeriv<Frame>
function(
141 const ::Strahlkorper<Frame>& strahlkorper,
const DataVector& radius,
144 using argument_tags = tmpl::list<Strahlkorper<Frame>,
Radius<Frame>,
151 template <
typename Frame>
153 static std::string name() noexcept {
return "LaplacianRadius"; }
155 const ::Strahlkorper<Frame>& strahlkorper,
const DataVector& radius,
157 using argument_tags =
170 template <
typename Frame>
172 static std::string name() noexcept {
return "NormalOneForm"; }
173 static aliases::OneForm<Frame>
function(
176 using argument_tags = tmpl::list<DxRadius<Frame>,
Rhat<Frame>>;
194 template <
typename Frame>
196 static std::string name() noexcept {
return "Tangents"; }
197 static aliases::Jacobian<Frame>
function(
198 const ::Strahlkorper<Frame>& strahlkorper,
const DataVector& radius,
201 using argument_tags = tmpl::list<Strahlkorper<Frame>,
Radius<Frame>,
205 template <
typename Frame>
206 using items_tags = tmpl::list<Strahlkorper<Frame>>;
208 template <
typename Frame>
209 using compute_items_tags =
224 template <
typename Frame>
226 static std::string name() noexcept {
return "AreaElement"; }
227 static constexpr
auto function = area_element<Frame>;
228 using argument_tags = tmpl::list<
235 template <
typename IntegrandTag,
typename Frame>
238 return "SurfaceIntegral" + IntegrandTag::name();
240 static constexpr
auto function = surface_integral_of_scalar<Frame>;
241 using argument_tags = tmpl::list<AreaElement<Frame>, IntegrandTag,
Marks a DataBoxTag as being a compute item that executes a function.
Definition: DataBoxTag.hpp:155
Tags for the DataBox inherit from this type.
Definition: DataBoxTag.hpp:65
#define SPECTRE_ALWAYS_INLINE
Always inline a function. Only use this if you benchmarked the code.
Definition: ForceInline.hpp:20
Defines macro to always inline a function.
Stores a collection of function values.
Definition: DataVector.hpp:46
Wraps the template metaprogramming library used (brigand)
typename DataBox_detail::item_type_impl< TagList, Tag >::type item_type
Get the type that is returned by the Tag. If it is a base tag then a TagList must be passed as a seco...
Definition: DataBoxTag.hpp:410
Defines classes SimpleTag, PrefixTag, ComputeTag and several functions for retrieving tag info...
Contains functions that depend both on a Strahlkorper and a metric.
Definition: StrahlkorperGr.hpp:22