|
|
| ObserveFields (const std::string &subfile_name, FloatingPointType coordinates_floating_point_type, const std::vector< FloatingPointType > &floating_point_types, const std::vector< std::string > &variables_to_observe, std::optional< std::vector< std::string > > active_block_or_block_groups={}, std::optional< Mesh< VolumeDim > > interpolation_mesh={}, std::optional< Mesh< VolumeDim > > projection_mesh={}, std::optional< std::string > dependency={}, const Options::Context &context={}) |
|
| ObserveFields (const std::string &subfile_name, FloatingPointType coordinates_floating_point_type, const std::vector< FloatingPointType > &floating_point_types, const std::vector< std::string > &variables_to_observe, std::optional< std::vector< std::string > > active_block_or_block_groups={}, std::optional< Mesh< VolumeDim > > interpolation_mesh={}, std::optional< Mesh< VolumeDim > > projection_mesh={}, const Options::Context &context={}) |
|
template<typename DataBoxType, typename ComputeTagsList, typename Metavariables, typename ParallelComponent> |
| void | operator() (const ObservationBox< DataBoxType, ComputeTagsList > &box, const Mesh< VolumeDim > &mesh, Parallel::GlobalCache< Metavariables > &cache, const ElementId< VolumeDim > &array_index, const ParallelComponent *const component, 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 |
|
| 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 |
template<size_t VolumeDim, typename... Tensors, typename... NonTensorComputeTags, typename ArraySectionIdTag>
class dg::Events::ObserveFields< VolumeDim, tmpl::list< Tensors... >, tmpl::list< NonTensorComputeTags... >, ArraySectionIdTag >
Observe volume tensor fields.
A class that writes volume quantities to an h5 file during the simulation. The observed quantitites are specified in the VariablesToObserve option. Any Tensor in the db::DataBox can be observed but must be listed in the Tensors template parameter. Any additional compute tags that hold a Tensor can also be added to the Tensors template parameter. Finally, Variables and other non-tensor compute tags can be listed in the NonTensorComputeTags to facilitate observing. Note that the InertialCoordinates are always observed.
The user may specify an interpolation_mesh to which the data is interpolated.
- Note
- The NonTensorComputeTags are intended to be used for Variables compute tags like Tags::DerivCompute
- Array sections
- This event supports sections (see Parallel::Section). Set the ArraySectionIdTag template parameter to split up observations into subsets of elements. The observers::Tags::ObservationKey<ArraySectionIdTag> must be available in the DataBox. It identifies the section and is used as a suffix for the path in the output file.
template<size_t VolumeDim, typename... Tensors, typename... NonTensorComputeTags, typename ArraySectionIdTag>
| bool dg::Events::ObserveFields< VolumeDim, tmpl::list< Tensors... >, 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.