11 #include "DataStructures/DataBox/Tag.hpp"
12 #include "Evolution/Systems/Cce/BoundaryData.hpp"
13 #include "Evolution/Systems/Cce/Tags.hpp"
14 #include "Evolution/Systems/Cce/WorldtubeBufferUpdater.hpp"
15 #include "NumericalAlgorithms/Interpolation/SpanInterpolator.hpp"
23 class MetricWorldtubeDataManager;
24 class BondiWorldtubeDataManager;
52 using creatable_classes =
53 tmpl::list<MetricWorldtubeDataManager, BondiWorldtubeDataManager>;
57 virtual bool populate_hypersurface_boundary_data(
60 boundary_data_variables,
61 double time)
const noexcept = 0;
65 virtual size_t get_l_max()
const noexcept = 0;
91 size_t l_max,
size_t buffer_depth,
93 bool fix_spec_normalization) noexcept;
119 boundary_data_variables,
120 double time)
const noexcept
override;
126 size_t get_l_max() const noexcept
override {
return l_max_; }
133 void pup(PUP::er& p) noexcept override;
138 mutable
size_t time_span_start_ = 0;
139 mutable
size_t time_span_end_ = 0;
141 bool fix_spec_normalization_ = false;
150 size_t buffer_depth_ = 0;
152 std::unique_ptr<intrp::SpanInterpolator> interpolator_;
180 size_t l_max,
size_t buffer_depth,
206 boundary_data_variables,
207 double time)
const noexcept
override;
213 size_t get_l_max() const noexcept
override {
return l_max_; }
220 void pup(PUP::er& p) noexcept override;
224 mutable
size_t time_span_start_ = 0;
225 mutable
size_t time_span_end_ = 0;
235 size_t buffer_depth_ = 0;
237 std::unique_ptr<intrp::SpanInterpolator> interpolator_;
size_t get_l_max() const noexcept override
retrieves the l_max that will be supplied to the DataBox in populate_hypersurface_boundary_data()
Definition: WorldtubeDataManager.hpp:126
Manages the cached buffer data associated with a CCE worldtube and interpolates to requested time poi...
Definition: WorldtubeDataManager.hpp:83
size_t get_l_max() const noexcept override
retrieves the l_max that will be supplied to the DataBox in populate_hypersurface_boundary_data()
Definition: WorldtubeDataManager.hpp:213
tmpl::list< Tags::detail::SpatialMetric, Tags::detail::Dr< Tags::detail::SpatialMetric >, ::Tags::dt< Tags::detail::SpatialMetric >, Tags::detail::Shift, Tags::detail::Dr< Tags::detail::Shift >, ::Tags::dt< Tags::detail::Shift >, Tags::detail::Lapse, Tags::detail::Dr< Tags::detail::Lapse >, ::Tags::dt< Tags::detail::Lapse > > cce_metric_input_tags
the full set of tensors to be extracted from the worldtube h5 file
Definition: WorldtubeBufferUpdater.hpp:93
The set of utilities for performing Cauchy characteristic evolution and Cauchy characteristic matchin...
Definition: CharacteristicExtractFwd.hpp:6
void pup(PUP::er &p) noexcept override
Serialization for Charm++.
Definition: WorldtubeDataManager.cpp:244
bool populate_hypersurface_boundary_data(gsl::not_null< Variables< Tags::characteristic_worldtube_boundary_tags< Tags::BoundaryValue >> * > boundary_data_variables, double time) const noexcept override
Update the boundary_data_box entries for all tags in Tags::characteristic_worldtube_boundary_tags to ...
Definition: WorldtubeDataManager.cpp:70
Manages the 'reduced' cached buffer dataset associated with a CCE worldtube and interpolates to reque...
Definition: WorldtubeDataManager.hpp:172
Abstract base class for managers of CCE worldtube data that is provided in large time-series chunks,...
Definition: WorldtubeDataManager.hpp:50
tmpl::list< Spectral::Swsh::Tags::SwshTransform< Tags::BondiBeta >, Spectral::Swsh::Tags::SwshTransform< Tags::BondiU >, Spectral::Swsh::Tags::SwshTransform< Tags::BondiQ >, Spectral::Swsh::Tags::SwshTransform< Tags::BondiW >, Spectral::Swsh::Tags::SwshTransform< Tags::BondiJ >, Spectral::Swsh::Tags::SwshTransform< Tags::Dr< Tags::BondiJ > >, Spectral::Swsh::Tags::SwshTransform< Tags::Du< Tags::BondiJ > >, Spectral::Swsh::Tags::SwshTransform< Tags::BondiR >, Spectral::Swsh::Tags::SwshTransform< Tags::Du< Tags::BondiR > >> cce_bondi_input_tags
the full set of tensors to be extracted from the reduced form of the worldtube h5 file
Definition: WorldtubeBufferUpdater.hpp:106
std::pair< size_t, size_t > get_time_span() const noexcept override
retrieves the current time span associated with the buffer_updater_ for diagnostics
Definition: WorldtubeDataManager.cpp:239
Require a pointer to not be a nullptr
Definition: ReadSpecThirdOrderPiecewisePolynomial.hpp:13