SpECTRE  v2024.04.12
Cce::WorldtubeDataManager< BoundaryTags > Class Template Referenceabstract

Abstract base class for managers of CCE worldtube data that is provided in large time-series chunks, especially the type provided by input h5 files. BoundaryTags is a tmpl::list of tags on the worldtube boundary. More...

#include <WorldtubeDataManager.hpp>

Public Types

using creatable_classes = tmpl::list< MetricWorldtubeDataManager, BondiWorldtubeDataManager, KleinGordonWorldtubeDataManager >
 

Public Member Functions

 WRAPPED_PUPable_abstract (WorldtubeDataManager)
 
virtual bool populate_hypersurface_boundary_data (gsl::not_null< Variables< BoundaryTags > * > boundary_data_variables, double time, gsl::not_null< Parallel::NodeLock * > hdf5_lock) const =0
 
virtual std::unique_ptr< WorldtubeDataManagerget_clone () const =0
 
virtual size_t get_l_max () const =0
 
virtual std::pair< size_t, size_t > get_time_span () const =0
 

Detailed Description

template<typename BoundaryTags>
class Cce::WorldtubeDataManager< BoundaryTags >

Abstract base class for managers of CCE worldtube data that is provided in large time-series chunks, especially the type provided by input h5 files. BoundaryTags is a tmpl::list of tags on the worldtube boundary.

Details

The methods that are required to be overridden in the derived classes are:

  • WorldtubeDataManager::populate_hypersurface_boundary_data(): updates the Variables passed by pointer to contain correct boundary data for the time value passed in. This function should update all of the tags in Tags::characteristic_worldtube_boundary_tags<Tags::BoundaryValue>.
  • WorldtubeDataManager::get_clone(): clone function to obtain a std::unique_ptr of the base WorldtubeDataManager, needed to pass around the factory-created object.
  • WorldtubeDataManager::get_l_max(): The override should return the l_max that it computes for the collocation data calculated during WorldtubeDataManager::populate_hypersurface_boundary_data().
  • WorldtubeBufferUpdater::get_time_span(): The override should return the std::pair of indices that represent the start and end point of the underlying data source. This is primarily used for monitoring the frequency and size of the buffer updates.

Member Function Documentation

◆ get_l_max()

template<typename BoundaryTags >
virtual size_t Cce::WorldtubeDataManager< BoundaryTags >::get_l_max ( ) const
pure virtual

◆ get_time_span()

template<typename BoundaryTags >
virtual std::pair< size_t, size_t > Cce::WorldtubeDataManager< BoundaryTags >::get_time_span ( ) const
pure virtual

◆ populate_hypersurface_boundary_data()

template<typename BoundaryTags >
virtual bool Cce::WorldtubeDataManager< BoundaryTags >::populate_hypersurface_boundary_data ( gsl::not_null< Variables< BoundaryTags > * >  boundary_data_variables,
double  time,
gsl::not_null< Parallel::NodeLock * >  hdf5_lock 
) const
pure virtual

The documentation for this class was generated from the following file: