Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : #include <variant> 8 : 9 : #include "IO/Exporter/Exporter.hpp" 10 : #include "IO/H5/VolumeData.hpp" 11 : 12 : namespace spectre::Exporter { 13 : 14 : /// Determines the selected observation ID in the volume data file, given 15 : /// multiple possible ways to specify the observation. 16 1 : struct SelectObservation { 17 0 : size_t operator()(ObservationId observation_id) const; 18 0 : size_t operator()(ObservationStep observation_step) const; 19 0 : size_t operator()(double observation_value) const; 20 : // NOLINTNEXTLINE(cppcoreguidelines-avoid-const-or-ref-data-members) 21 0 : const h5::VolumeData& volfile; 22 0 : double obs_value_eps = 1e-12; 23 : }; 24 : 25 : } // namespace spectre::Exporter