|
| MetricWorldtubeH5BufferUpdater (const std::string &cce_data_filename, std::optional< double > extraction_radius=std::nullopt, bool descending_m=true) |
| The constructor takes the filename of the H5 file that will be used for boundary data. The extraction radius can either be passed in directly, or if it takes the value std::nullopt , then the extraction radius is retrieved as an integer in the filename. Also the user can specify if the H5 file was written by SpEC or not, because SpEC has some different conventions than we use here.
|
|
| WRAPPED_PUPable_decl_base_template (WorldtubeBufferUpdater< cce_metric_input_tags< T > >, MetricWorldtubeH5BufferUpdater) |
|
| MetricWorldtubeH5BufferUpdater (CkMigrateMessage *) |
|
double | update_buffers_for_time (gsl::not_null< Variables< cce_metric_input_tags< T > > * > buffers, gsl::not_null< size_t * > time_span_start, gsl::not_null< size_t * > time_span_end, double time, size_t computation_l_max, size_t interpolator_length, size_t buffer_depth, bool time_varies_fastest=true) const override |
| Update the buffers , time_span_start , and time_span_end with data (either Goldberg modal data or just nodal data depending on the template parameter to this class) and the start and end index in the member time_buffer_ covered by the newly updated buffers . More...
|
|
std::unique_ptr< WorldtubeBufferUpdater< cce_metric_input_tags< T > > > | get_clone () const override |
|
bool | time_is_outside_range (double time) const override |
| The time can only be supported in the buffer update if it is between the first and last time of the input file. More...
|
|
size_t | get_l_max () const override |
| retrieves the l_max of the input file More...
|
|
double | get_extraction_radius () const override |
| retrieves the extraction radius More...
|
|
DataVector & | get_time_buffer () override |
| The time buffer is supplied by non-const reference to allow views to easily point into the buffer. More...
|
|
bool | has_version_history () const override |
|
void | pup (PUP::er &p) override |
| Serialization for Charm++.
|
|
| WRAPPED_PUPable_abstract (WorldtubeBufferUpdater) |
|
virtual double | update_buffers_for_time (gsl::not_null< Variables< cce_metric_input_tags< T > > * > buffers, gsl::not_null< size_t * > time_span_start, gsl::not_null< size_t * > time_span_end, double time, size_t computation_l_max, size_t interpolator_length, size_t buffer_depth, bool time_varies_fastest=true) const=0 |
|
virtual std::unique_ptr< WorldtubeBufferUpdater > | get_clone () const=0 |
|
virtual bool | time_is_outside_range (double time) const=0 |
|
virtual size_t | get_l_max () const=0 |
|
virtual double | get_extraction_radius () const=0 |
|
virtual bool | has_version_history () const=0 |
|
virtual DataVector & | get_time_buffer ()=0 |
|
template<typename T>
class Cce::MetricWorldtubeH5BufferUpdater< T >
A WorldtubeBufferUpdater
specialized to CCE input worldtube H5 files that have cartesian metric components stored in either modal or nodal form.
Details
To read in modal data, template this class as MetricWorldtubeH5BufferUpdater<ComplexModalVector>
. To read in nodal data, template the class as MetricWorldtubeH5BufferUpdater<DataVector>
. This class also has the ability to read in data specifically written by SpEC.
Update the buffers
, time_span_start
, and time_span_end
with data (either Goldberg modal data or just nodal data depending on the template parameter to this class) and the start and end index in the member time_buffer_
covered by the newly updated buffers
.
The function returns the next time at which a full update will occur. If called again at times earlier than the next full update time, it will leave the buffers
unchanged and again return the next needed time.
Implements Cce::WorldtubeBufferUpdater< cce_metric_input_tags< T > >.