SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Events::ObserveAdmIntegrals< ArraySectionIdTag > Class Template Reference

Observe ADM integrals after the XCTS solve. More...

#include <ObserveAdmIntegrals.hpp>

Public Types

using options = tmpl::list<>
using observed_reduction_data_tags
using compute_tags_for_observation_box = tmpl::list<>
using return_tags = tmpl::list<>
using argument_tags
using observation_registration_tags = tmpl::list<::Tags::DataBox>
using is_ready_argument_tags = tmpl::list<>

Public Member Functions

template<typename DataBoxType, typename ComputeTagsList, typename Metavariables, typename ArrayIndex, typename ParallelComponent>
void operator() (const Scalar< DataVector > &conformal_factor, const Scalar< DataVector > &conformal_factor_minus_one, const tnsr::i< DataVector, 3 > &deriv_conformal_factor, const tnsr::ii< DataVector, 3 > &conformal_metric, const tnsr::II< DataVector, 3 > &inv_conformal_metric, const tnsr::Ijj< DataVector, 3 > &conformal_christoffel_second_kind, const tnsr::i< DataVector, 3 > &conformal_christoffel_contracted, const tnsr::ii< DataVector, 3 > &spatial_metric, const tnsr::II< DataVector, 3 > &inv_spatial_metric, const tnsr::ii< DataVector, 3 > &extrinsic_curvature, const Scalar< DataVector > &trace_extrinsic_curvature, const tnsr::I< DataVector, 3, Frame::Inertial > &inertial_coords, const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &inv_jacobian, const Mesh< 3 > &mesh, const Element< 3 > &element, const DirectionMap< 3, tnsr::i< DataVector, 3 > > &conformal_face_normals, const ObservationBox< DataBoxType, ComputeTagsList > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const ParallelComponent *const, const ObservationValue &observation_value) const
template<typename DbTagsList>
std::optional< std::pair< observers::TypeOfObservation, observers::ObservationKey > > get_observation_type_and_key_for_registration (const db::DataBox< DbTagsList > &box) const
template<typename Metavariables, typename ArrayIndex, typename Component>
bool is_ready (Parallel::GlobalCache< Metavariables > &, const ArrayIndex &, const Component *const) const
bool needs_evolved_variables () const override
 Whether the event uses anything depending on the evolved_variables. If this returns false, anything depending on the evolved variables may have an incorrect value when the event is run.
void pup (PUP::er &p) override
Public Member Functions inherited from Event
 Event (CkMigrateMessage *msg)
 WRAPPED_PUPable_abstract (Event)
template<typename ComputeTagsList, typename DataBoxType, typename Metavariables, typename ArrayIndex, typename ComponentPointer>
void run (const gsl::not_null< ObservationBox< ComputeTagsList, DataBoxType > * > box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const ComponentPointer, const ObservationValue &observation_value) const
template<typename DbTags, typename Metavariables, typename ArrayIndex, typename ComponentPointer>
bool is_ready (const db::DataBox< DbTags > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const ComponentPointer) const

Static Public Attributes

static constexpr Options::String help

Detailed Description

template<typename ArraySectionIdTag = void>
class Events::ObserveAdmIntegrals< ArraySectionIdTag >

Observe ADM integrals after the XCTS solve.

The surface integrals are taken over the outer boundary, which is defined as the domain boundary in the upper logical zeta direction.

Writes reduction quantities:

  • Number of points in the domain
  • ADM mass
  • ADM linear momentum
  • ADM angular momentum (z-component)
  • Center of mass

Member Typedef Documentation

◆ argument_tags

template<typename ArraySectionIdTag = void>
using Events::ObserveAdmIntegrals< ArraySectionIdTag >::argument_tags
Initial value:
tmpl::list<
Stores a collection of function values.
Definition DataVector.hpp:48
gr::Tags::Conformal< gr::Tags::InverseSpatialMetric< DataType, Dim, Frame >, 4 > InverseConformalMetric
The conformally scaled inverse spatial metric , where is the Xcts::Tags::ConformalFactor and is the...
Definition Tags.hpp:53
gr::Tags::Conformal< gr::Tags::SpatialMetric< DataType, Dim, Frame >, -4 > ConformalMetric
The conformally scaled spatial metric , where is the Xcts::Tags::ConformalFactor and is the gr::Tag...
Definition Tags.hpp:43
Definition IndexType.hpp:46
Tag used to retrieve the ObservationBox from the get() function.
Definition ObservationBox.hpp:28
Prefix indicating spatial derivatives.
Definition Prefixes.hpp:46
The Christoffel symbols of the second kind (related to the conformal metric ) contracted in their fir...
Definition Tags.hpp:233
The Christoffel symbols of the second kind related to the conformal metric .
Definition Tags.hpp:223
The conformal factor minus one . Useful as dynamic variable in formulations of the XCTS equations bec...
Definition Tags.hpp:32
The conformal factor that rescales the spatial metric .
Definition Tags.hpp:22
The coordinates in a given frame.
Definition Tags.hpp:85
The Element associated with the DataBox.
Definition Tags.hpp:52
The Tag on element faces.
Definition Faces.hpp:23
The inverse Jacobian from the source frame to the target frame.
Definition Tags.hpp:118
The computational grid of the Element in the DataBox.
Definition Tags.hpp:62
Definition Tags.hpp:139
Inverse of the spatial metric.
Definition Tags.hpp:32
Definition Tags.hpp:25
Definition Tags.hpp:143

◆ observed_reduction_data_tags

template<typename ArraySectionIdTag = void>
using Events::ObserveAdmIntegrals< ArraySectionIdTag >::observed_reduction_data_tags
Initial value:
observers::make_reduction_data_tags<tmpl::list<ReductionData>>

Member Function Documentation

◆ needs_evolved_variables()

template<typename ArraySectionIdTag = void>
bool Events::ObserveAdmIntegrals< ArraySectionIdTag >::needs_evolved_variables ( ) const
inlineoverridevirtual

Whether the event uses anything depending on the evolved_variables. If this returns false, anything depending on the evolved variables may have an incorrect value when the event is run.

Implements Event.

Member Data Documentation

◆ help

template<typename ArraySectionIdTag = void>
Options::String Events::ObserveAdmIntegrals< ArraySectionIdTag >::help
staticconstexpr
Initial value:
=
"Observe ADM integrals after the XCTS solve.\n"
"\n"
"Writes reduction quantities:\n"
"- Number of points in the domain\n"
"- ADM mass\n"
"- ADM linear momentum\n"
"- ADM angular momentum (z-component)\n"
"- Center of mass"

The documentation for this class was generated from the following file:
  • src/Elliptic/Systems/Xcts/Events/ObserveAdmIntegrals.hpp