|
|
| GhLockstep (CkMigrateMessage *) noexcept |
| |
|
| WRAPPED_PUPable_decl_template (GhLockstep) |
| |
| std::unique_ptr< GhInterfaceManager > | get_clone () const noexcept 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, const tnsr::aa< DataVector, 3 > &dt_spacetime_metric={}, const tnsr::iaa< DataVector, 3 > &dt_phi={}, const tnsr::aa< DataVector, 3 > &dt_pi={}) noexcept override |
| | Store a provided data set in a std::deque. More...
|
| |
| void | insert_next_gh_time (TimeStepId, TimeStepId) noexcept override |
| | next time information is ignored by this implementation, so this is a no-op. More...
|
| |
| void | request_gh_data (const TimeStepId &) noexcept override |
| | Requests are ignored by this implementation, so this is a no-op. More...
|
| |
| auto | retrieve_and_remove_first_ready_gh_data () noexcept -> 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. More...
|
| |
| size_t | number_of_pending_requests () const noexcept override |
| | This class ignores requests to ensure a one-way communication pattern, so the number of requests is always 0. More...
|
| |
| size_t | number_of_gh_times () const noexcept override |
| | The number of times at which data from a GH evolution have been stored and not yet retrieved. More...
|
| |
|
void | pup (PUP::er &p) noexcept override |
| | Serialization for Charm++.
|
| |
| InterpolationStrategy | get_interpolation_strategy () const noexcept override |
| |
|
| WRAPPED_PUPable_abstract (GhInterfaceManager) |
| |
Simple implementation of a GhInterfaceManager that only provides boundary data on matching TimeStepIds.
Details
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.
- Warning
- Using this interface manager when the GH components and the CCE evolution are not identically stepped is considered undefined behavior. The outcome will likely be that CCE will fail to evolve and the boundary data will be continually inserted into a rapidly expanding inbox.