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 getInteration () 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: