SpECTRE
v2025.03.17
|
Base class for Observers that write data that is constant within an Element. More...
#include <ObserveConstantsPerElement.hpp>
Classes | |
struct | CoordinatesFloatingPointType |
The floating point type/precision with which to write the coordinates to disk. More... | |
struct | FloatingPointType |
The floating point type/precision with which to write the data to disk. More... | |
struct | SubfileName |
The name of the subfile inside the HDF5 file. More... | |
Public Types | |
using | options = implementation defined |
using | observation_registration_tags = implementation defined |
using | is_ready_argument_tags = implementation defined |
Public Member Functions | |
ObserveConstantsPerElement (const std::string &subfile_name, ::FloatingPointType coordinates_floating_point_type, ::FloatingPointType floating_point_type) | |
std::optional< std::pair< observers::TypeOfObservation, observers::ObservationKey > > | get_observation_type_and_key_for_registration () const |
template<typename Metavariables , typename ArrayIndex , typename Component > | |
bool | is_ready (const double time, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const Component *const component) const |
void | pup (PUP::er &p) override |
![]() | |
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... | |
Protected Member Functions | |
std::vector< TensorComponent > | allocate_and_insert_coords (size_t number_of_constants, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time, const Domain< VolumeDim > &domain, const ElementId< VolumeDim > &element_id) const |
Creates the vector of tensor components that will be observed and starts to fill it with the inertial coordinates. More... | |
void | add_constant (gsl::not_null< std::vector< TensorComponent > * > components, std::string name, double value) const |
Adds a TensorComponent to components with the given name and the given value. More... | |
template<typename Metavariables , typename ParallelComponent > | |
void | observe (std::vector< TensorComponent > components, Parallel::GlobalCache< Metavariables > &cache, const ElementId< VolumeDim > &element_id, const ParallelComponent *, const ObservationValue &observation_value) const |
Observes the components as volume data. | |
Base class for Observers that write data that is constant within an Element.
|
protected |
Adds a TensorComponent to components with the given name and the given value.
Should be called after allocate_and_insert_coords
|
protected |
Creates the vector of tensor components that will be observed and starts to fill it with the inertial coordinates.
number_of_constants is the number of additional tensor components that will be observed. These are added by calling add_constant