SpECTRE
v2024.09.29
|
Base class for something that can happen during a simulation (such as an observation). More...
#include <Event.hpp>
Classes | |
struct | ObservationValue |
Public Member Functions | |
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 |
virtual bool | needs_evolved_variables () const =0 |
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. More... | |
Base class for something that can happen during a simulation (such as an observation).
Derived events must have a compute_tags_for_observation_box
that is a tmpl::list
of simple or compute tags. Simple tags are assumed to already be in the DataBox
. Evolved variables, for example, would be listed as simple tags. The compute tags are used to compute additional quantities that may be observed. For example, in the scalar wave system the 1- and 2-index constraints would be added as compute tags, as well as anything they depend on that's not already in the DataBox
.
|
pure virtual |
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.
Implemented in control_system::BNSEvent< ControlSystems >, Events::ObserveAdmIntegrals< ArraySectionIdTag >, Cce::Events::ObserveFields, Cce::Events::ObserveTimeStep, amr::Events::RefineMesh, Events::ErrorIfDataTooBig< Dim, Tensors, NonTensorComputeTags >, Events::MonitorMemory< Dim >, Events::ObserveAdaptiveSteppingDiagnostics, Events::ObserveAtExtremum< tmpl::list< ObservableTensorTags... >, tmpl::list< NonTensorComputeTags... >, ArraySectionIdTag >, Events::ObserveDataBox, dg::Events::ObserveFields< VolumeDim, tmpl::list< Tensors... >, tmpl::list< NonTensorComputeTags... >, ArraySectionIdTag >, Events::ObserveNorms< tmpl::list< ObservableTensorTags... >, tmpl::list< NonTensorComputeTags... >, ArraySectionIdTag, OptionName >, Events::ObserveTimeStep< System >, dg::Events::ObserveTimeStepVolume< VolumeDim >, Events::Completion, intrp::Events::Interpolate< VolumeDim, InterpolationTargetTag, tmpl::list< InterpolatorSourceVarTags... > >, intrp::Events::InterpolateWithoutInterpComponent< VolumeDim, InterpolationTargetTag, tmpl::list< SourceVarTags... > >, Events::ChangeSlabSize, and control_system::TestHelpers::TestEvent< Label, ControlSystems, CallRunCallbacks >.