MaMiCo 1.2
Loading...
Searching...
No Matches
coupling::services::ParallelTimeIntegrationService< dim > Class Template Reference

#include <ParallelTimeIntegrationService.h>

Collaboration diagram for coupling::services::ParallelTimeIntegrationService< dim >:

Classes

struct  PintDomain

Public Types

using State = coupling::interface::PintableMacroSolverState
using Solver = coupling::interface::PintableMacroSolver

Public Member Functions

 ParallelTimeIntegrationService (coupling::configurations::MaMiCoConfiguration< dim > mamicoConfig, Scenario *scenario)
void run (int num_cycles)
int getPintDomain () const
int getRank () const
bool isPintEnabled () const
int getIteration () const
MPI_Comm getPintComm () const

Private Member Functions

void run_cycles (int start, int end)
bool isFirst () const
bool isLast () const
PintDomain setup_domain (int num_cycles) const
void setup_solvers (PintDomain domain)
void receive (std::unique_ptr< State > &state) const
void send (std::unique_ptr< State > &state) const
void get_past_state (std::unique_ptr< State > &state) const
void init_parareal ()
void run_parareal (int iterations)

Private Attributes

int _pint_domain
int _rank
int _ranks_per_domain
int _world_rank
MPI_Comm _local_pint_comm
coupling::configurations::TimeIntegrationConfiguration _cfg
Scenario_scenario
std::unique_ptr< Solver > _supervisor
std::function< std::unique_ptr< State >(const std::unique_ptr< State > &)> _F
std::function< std::unique_ptr< State >(const std::unique_ptr< State > &)> _G
std::unique_ptr< State > _u_0
std::unique_ptr< State > _u_last_past
std::unique_ptr< State > _u_last_future
std::unique_ptr< State > _u_next_past
std::unique_ptr< State > _u_next_future
int _iteration {0}

Detailed Description

template<unsigned int dim>
class coupling::services::ParallelTimeIntegrationService< dim >

Service to manage timeloop of a coupled simulation scenario. Supports sequential or parallel-in-time integration using a Parareal variant, as described in "Blumers, A. L., Li, Z., & Karniadakis, G. E. (2019). Supervised parallel-in-time algorithm for long-time Lagrangian simulations of stochastic dynamics: Application to hydrodynamics. Journal of Computational Physics, 393, 214-228".

Author
Piet Jarmatz

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