SpECTRE  v2022.12.02
Events::ObserveNorms< ObservationValueTag, tmpl::list< ObservableTensorTags... >, tmpl::list< NonTensorComputeTags... >, ArraySectionIdTag > Class Template Reference

Classes

struct  SubfileName
 The name of the subfile inside the HDF5 file. More...
 
struct  TensorsToObserve
 The tensor to observe and how to do the reduction. More...
 

Public Types

using options = tmpl::list< SubfileName, TensorsToObserve >
 
using observed_reduction_data_tags = observers::make_reduction_data_tags< tmpl::list< ReductionData > >
 
using compute_tags_for_observation_box = tmpl::list< ObservableTensorTags..., NonTensorComputeTags... >
 
using argument_tags = tmpl::list< ObservationValueTag, ::Tags::ObservationBox >
 
using observation_registration_tags = tmpl::list<::Tags::DataBox >
 
using is_ready_argument_tags = tmpl::list<>
 

Public Member Functions

 ObserveNorms (CkMigrateMessage *msg)
 
 WRAPPED_PUPable_decl_template (ObserveNorms)
 
 ObserveNorms (const std::string &subfile_name, const std::vector< ObserveTensor > &observe_tensors)
 
template<typename ComputeTagsList , typename DataBoxType , typename Metavariables , size_t VolumeDim, typename ParallelComponent >
void operator() (const typename ObservationValueTag::type &observation_value, const ObservationBox< ComputeTagsList, DataBoxType > &box, Parallel::GlobalCache< Metavariables > &cache, const ElementId< VolumeDim > &array_index, const ParallelComponent *const) 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. More...
 
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 ObservationBox< ComputeTagsList, DataBoxType > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const ComponentPointer) 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...
 

Static Public Attributes

static constexpr Options::String help
 

Member Function Documentation

◆ needs_evolved_variables()

template<typename ObservationValueTag , typename... ObservableTensorTags, typename... NonTensorComputeTags, typename ArraySectionIdTag >
bool Events::ObserveNorms< ObservationValueTag, tmpl::list< ObservableTensorTags... >, tmpl::list< NonTensorComputeTags... >, 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 ObservationValueTag , typename... ObservableTensorTags, typename... NonTensorComputeTags, typename ArraySectionIdTag >
constexpr Options::String Events::ObserveNorms< ObservationValueTag, tmpl::list< ObservableTensorTags... >, tmpl::list< NonTensorComputeTags... >, ArraySectionIdTag >::help
staticconstexpr
Initial value:
=
"Observe norms of tensors in the DataBox.\n"
"\n"
"You can choose the norm type for each observation. Note that the\n"
"'L2Norm' (root mean square) emphasizes regions of the domain with many\n"
"grid points, whereas the 'L2IntegralNorm' emphasizes regions of the\n"
"domain with large volume. Choose wisely! When in doubt, try the\n"
"'L2Norm' first.\n"
"The 'L2IntegralNorm' does not currently work with finite difference\n"
"(subcell) meshes.\n"
"\n"
"Writes reduction quantities:\n"
" * ObservationValueTag (e.g. Time or IterationId)\n"
" * NumberOfPoints = total number of points in the domain\n"
" * Volume = total volume of the domain in inertial coordinates\n"
" * Max values\n"
" * Min values\n"
" * L2-norm values\n"
" * L2 integral norm values\n"

The documentation for this class was generated from the following file: