|
SpECTRE
v2026.04.01
|
Simple implementation of a GhInterfaceManager that only provides boundary data on matching TimeStepIds. More...
#include <GhLockstep.hpp>
Public Types | |
| using | options = tmpl::list<> |
| using | gh_variables |
| Public Types inherited from Cce::InterfaceManagers::GhInterfaceManager | |
| using | gh_variables |
Public Member Functions | |
| GhLockstep (CkMigrateMessage *) | |
| WRAPPED_PUPable_decl_template (GhLockstep) | |
| std::unique_ptr< GhInterfaceManager > | get_clone () const override |
| void | insert_gh_data (TimeStepId time_id, const tnsr::aa< DataVector, 3 > &spacetime_metric, const tnsr::iaa< DataVector, 3 > &phi, const tnsr::aa< DataVector, 3 > &pi) |
| Store a provided data set in a std::deque. | |
| void | request_gh_data (const TimeStepId &time_id) override |
| auto | retrieve_and_remove_first_ready_gh_data () -> std::optional< std::tuple< TimeStepId, gh_variables > > override |
| Return a std::optional<std::tuple> of the least recently submitted generalized harmonic boundary data if any exists and removes it from the internal std::deque, otherwise returns std::nullopt. | |
| size_t | number_of_pending_requests () const override |
| This class ignores requests to ensure a one-way communication pattern, so the number of requests is always 0. | |
| size_t | number_of_gh_times () const override |
| The number of times at which data from a GH evolution have been stored and not yet retrieved. | |
| void | pup (PUP::er &p) override |
| Serialization for Charm++. | |
| Public Member Functions inherited from Cce::InterfaceManagers::GhInterfaceManager | |
| WRAPPED_PUPable_abstract (GhInterfaceManager) | |
Static Public Attributes | |
| static constexpr Options::String | help |
Simple implementation of a GhInterfaceManager that only provides boundary data on matching TimeStepIds.
This version of the interface manager assumes that the CCE system and the generalized harmonic system that it communicates with evolve with an identical time stepper and on identical time step intervals (they evolve in 'lock step'). As a result, and to streamline communications, new data is always immediately 'ready' and requests are ignored to produce the behavior of just immediately gauge-transforming and sending the data to the CCE component as soon as it becomes available from the GH system.
|
overridevirtual |
Implements Cce::InterfaceManagers::GhInterfaceManager.
| void Cce::InterfaceManagers::GhLockstep::insert_gh_data | ( | TimeStepId | time_id, |
| const tnsr::aa< DataVector, 3 > & | spacetime_metric, | ||
| const tnsr::iaa< DataVector, 3 > & | phi, | ||
| const tnsr::aa< DataVector, 3 > & | pi ) |
Store a provided data set in a std::deque.
The lock-step constraint ensures that only the generalized harmonic variables spacetime_metric, phi, and pi are used. The remaining variables are accepted to comply with the more general abstract interface.
|
inlineoverridevirtual |
The number of times at which data from a GH evolution have been stored and not yet retrieved.
Implements Cce::InterfaceManagers::GhInterfaceManager.
|
inlineoverridevirtual |
This class ignores requests to ensure a one-way communication pattern, so the number of requests is always 0.
Implements Cce::InterfaceManagers::GhInterfaceManager.
|
overridevirtual |
Implements Cce::InterfaceManagers::GhInterfaceManager.
|
overridevirtual |
Return a std::optional<std::tuple> of the least recently submitted generalized harmonic boundary data if any exists and removes it from the internal std::deque, otherwise returns std::nullopt.
Implements Cce::InterfaceManagers::GhInterfaceManager.
|
staticconstexpr |