SpECTRE  v2024.04.12
Cce::KleinGordonWorldtubeDataManager Class Reference

Public Member Functions

 KleinGordonWorldtubeDataManager (std::unique_ptr< WorldtubeBufferUpdater< klein_gordon_input_tags > > buffer_updater, size_t l_max, size_t buffer_depth, std::unique_ptr< intrp::SpanInterpolator > interpolator)
 
 WRAPPED_PUPable_decl_template (KleinGordonWorldtubeDataManager)
 
 KleinGordonWorldtubeDataManager (CkMigrateMessage *)
 
bool populate_hypersurface_boundary_data (gsl::not_null< Variables< Tags::klein_gordon_worldtube_boundary_tags > * > boundary_data_variables, double time, gsl::not_null< Parallel::NodeLock * > hdf5_lock) const override
 Update the boundary_data_box entries for all tags in Tags::klein_gordon_worldtube_boundary_tags to the boundary data at time. More...
 
std::unique_ptr< WorldtubeDataManagerget_clone () const override
 
size_t get_l_max () const override
 retrieves the l_max that will be supplied to the DataBox in populate_hypersurface_boundary_data() More...
 
std::pair< size_t, size_t > get_time_span () const override
 retrieves the current time span associated with the buffer_updater_ for diagnostics More...
 
void pup (PUP::er &p) override
 Serialization for Charm++.
 
- Public Member Functions inherited from Cce::WorldtubeDataManager< Tags::klein_gordon_worldtube_boundary_tags >
 WRAPPED_PUPable_abstract (WorldtubeDataManager)
 
virtual bool populate_hypersurface_boundary_data (gsl::not_null< Variables< Tags::klein_gordon_worldtube_boundary_tags > * > 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
 

Additional Inherited Members

- Public Types inherited from Cce::WorldtubeDataManager< Tags::klein_gordon_worldtube_boundary_tags >
using creatable_classes = tmpl::list< MetricWorldtubeDataManager, BondiWorldtubeDataManager, KleinGordonWorldtubeDataManager >
 

Member Function Documentation

◆ get_clone()

std::unique_ptr< WorldtubeDataManager > Cce::KleinGordonWorldtubeDataManager::get_clone ( ) const
overridevirtual

◆ get_l_max()

size_t Cce::KleinGordonWorldtubeDataManager::get_l_max ( ) const
inlineoverridevirtual

◆ get_time_span()

std::pair< size_t, size_t > Cce::KleinGordonWorldtubeDataManager::get_time_span ( ) const
overridevirtual

retrieves the current time span associated with the buffer_updater_ for diagnostics

Implements Cce::WorldtubeDataManager< Tags::klein_gordon_worldtube_boundary_tags >.

◆ populate_hypersurface_boundary_data()

bool Cce::KleinGordonWorldtubeDataManager::populate_hypersurface_boundary_data ( gsl::not_null< Variables< Tags::klein_gordon_worldtube_boundary_tags > * >  boundary_data_variables,
double  time,
gsl::not_null< Parallel::NodeLock * >  hdf5_lock 
) const
overridevirtual

Update the boundary_data_box entries for all tags in Tags::klein_gordon_worldtube_boundary_tags to the boundary data at time.

Details

First, if the stored buffer requires updating, it will be updated via the buffer_updater_ supplied in the constructor. Then, each of the 2 spin-weighted scalars in Tags::klein_gordon_worldtube_boundary_tags are interpolated across buffer points to the requested time value (via the Interpolator provided in the constructor).

Returns true if the time can be supplied from the buffer_updater_, and false otherwise. No tags are updated if false is returned.

Implements Cce::WorldtubeDataManager< Tags::klein_gordon_worldtube_boundary_tags >.


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