ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
ryujin::Scheduler< Number > Class Template Referencefinal

#include <include/ryujin/driver/scheduler.h>

Inheritance diagram for ryujin::Scheduler< Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Scheduler< Number >:
Collaboration graph
[legend]

Public Types

using Task = Interface::Task< Number >
 

Public Member Functions

 Scheduler (const MPI_Comm &mpi_comm, const std::vector< Task * > &required, const std::vector< Task * > &tasks={}, const std::function< void(const std::string &)> &info={})
 
void run ()
 

Detailed Description

template<typename Number = double>
class ryujin::Scheduler< Number >

The high-level time loop driving the computation.

The Scheduler runs tasks (see Interface::Task) in cycles.

Every cycle consists of four phases:

The active tasks are the required tasks (in the given order), followed by the selectable tasks chosen with the run time parameter "tasks" (in the order of the parameter). In every phase the Scheduler executes the active tasks of the phase in this order. The first required task is the primary task: it sets up the discretization and chooses the time step size.

Definition at line 42 of file scheduler.h.

Member Typedef Documentation

◆ Task

template<typename Number = double>
using ryujin::Scheduler< Number >::Task = Interface::Task<Number>

Definition at line 45 of file scheduler.h.

Constructor & Destructor Documentation

◆ Scheduler()

template<typename Number = double>
ryujin::Scheduler< Number >::Scheduler ( const MPI_Comm &  mpi_comm,
const std::vector< Task * > &  required,
const std::vector< Task * > &  tasks = {},
const std::function< void(const std::string &)> &  info = {} 
)

Constructor. The Scheduler runs the required tasks and the selectable tasks chosen with the run time parameter "tasks". The status messages of the Scheduler and all tasks are passed to info; by default they are printed on rank 0 of mpi_comm.

Member Function Documentation

◆ run()

template<typename Number = double>
void ryujin::Scheduler< Number >::run ( )

Run the high-level time loop.


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