SpECTRE  v2024.03.19
Cce::InterfaceManagers::GhLocalTimeStepping Class Reference

Implementation of a GhInterfaceManager that provides data according to interpolation between provided GH data. More...

#include <GhLocalTimeStepping.hpp>

Classes

struct  BoundaryInterpolator
 

Public Types

using options = tmpl::list< BoundaryInterpolator >
 
- Public Types inherited from Cce::InterfaceManagers::GhInterfaceManager
using gh_variables = Variables< tmpl::list< gr::Tags::SpacetimeMetric< DataVector, 3 >, gh::Tags::Pi< DataVector, 3 >, gh::Tags::Phi< DataVector, 3 > > >
 

Public Member Functions

 GhLocalTimeStepping (const GhLocalTimeStepping &rhs)
 
 GhLocalTimeStepping (std::unique_ptr< intrp::SpanInterpolator > interpolator)
 
GhLocalTimeSteppingoperator= (const GhLocalTimeStepping &rhs)
 
 GhLocalTimeStepping (CkMigrateMessage *)
 
 WRAPPED_PUPable_decl_template (GhLocalTimeStepping)
 
std::unique_ptr< GhInterfaceManagerget_clone () const override
 
void insert_gh_data (const LinkedMessageId< double > &time_and_previous, const tnsr::aa< DataVector, 3 > &spacetime_metric, const tnsr::iaa< DataVector, 3 > &phi, const tnsr::aa< DataVector, 3 > &pi)
 Store the provided data set to prepare for interpolation.
 
void request_gh_data (const TimeStepId &time_id) override
 Store the next time step that will be required by the CCE system to proceed with the evolution. More...
 
auto retrieve_and_remove_first_ready_gh_data () -> std::optional< std::tuple< TimeStepId, gh_variables > > override
 Return a std::optional of either the dense-output data at the least recently requested time, or std::nullopt if not enough GH data has been supplied yet. More...
 
size_t number_of_pending_requests () const override
 The number of requests that have been submitted and not yet retrieved. More...
 
size_t number_of_gh_times () const override
 The number of times for which data from the GH system is stored. More...
 
void pup (PUP::er &p) override
 Serialization for Charm++.
 
- Public Member Functions inherited from Cce::InterfaceManagers::GhInterfaceManager
 WRAPPED_PUPable_abstract (GhInterfaceManager)
 
virtual std::unique_ptr< GhInterfaceManagerget_clone () const =0
 
virtual void request_gh_data (const TimeStepId &)=0
 
virtual auto retrieve_and_remove_first_ready_gh_data () -> std::optional< std::tuple< TimeStepId, gh_variables > >=0
 
virtual size_t number_of_pending_requests () const =0
 
virtual size_t number_of_gh_times () const =0
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

Implementation of a GhInterfaceManager that provides data according to interpolation between provided GH data.

Details

This class receives data from the Generalized Harmonic system sufficient to perform interpolation to arbitrary times required by CCE. From the Generalized Harmonic system, it receives the spacetime metric \(g_{a b}\) and Generalized Harmonic \(\Phi_{i a b}\) and \(\Pi_{ab}\) and the current time via GhLocalTimeStepping::insert_gh_data(). The CCE system supplies requests for time steps via GhLocalTimeStepping::request_gh_data() and receives interpolated boundary data via GhLocalTimeStepping::retrieve_and_remove_first_ready_gh_data().

Member Function Documentation

◆ get_clone()

std::unique_ptr< GhInterfaceManager > Cce::InterfaceManagers::GhLocalTimeStepping::get_clone ( ) const
overridevirtual

◆ number_of_gh_times()

size_t Cce::InterfaceManagers::GhLocalTimeStepping::number_of_gh_times ( ) const
inlineoverridevirtual

The number of times for which data from the GH system is stored.

Implements Cce::InterfaceManagers::GhInterfaceManager.

◆ number_of_pending_requests()

size_t Cce::InterfaceManagers::GhLocalTimeStepping::number_of_pending_requests ( ) const
inlineoverridevirtual

The number of requests that have been submitted and not yet retrieved.

Implements Cce::InterfaceManagers::GhInterfaceManager.

◆ request_gh_data()

void Cce::InterfaceManagers::GhLocalTimeStepping::request_gh_data ( const TimeStepId time_id)
overridevirtual

Store the next time step that will be required by the CCE system to proceed with the evolution.

Implements Cce::InterfaceManagers::GhInterfaceManager.

◆ retrieve_and_remove_first_ready_gh_data()

auto Cce::InterfaceManagers::GhLocalTimeStepping::retrieve_and_remove_first_ready_gh_data ( ) -> std::optional< std::tuple< TimeStepId, gh_variables > >
overridevirtual

Return a std::optional of either the dense-output data at the least recently requested time, or std::nullopt if not enough GH data has been supplied yet.

Implements Cce::InterfaceManagers::GhInterfaceManager.

Member Data Documentation

◆ help

constexpr Options::String Cce::InterfaceManagers::GhLocalTimeStepping::help
staticconstexpr
Initial value:
{
"Interpolate data from the GH system to generate CCE inputs"}

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