ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
ryujin::TaskContext< Number > Struct Template Reference

#include <include/ryujin/interface/task.h>

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

Public Member Functions

bool tick_reached () const
 

Public Attributes

Number t = Number(0.)
 
Number tau = Number(0.)
 
Number t_max = std::numeric_limits<Number>::max()
 
unsigned int cycle = 0
 
unsigned int timer_cycle = 0
 
bool timer_tick = false
 
Number wall_time = Number(0.)
 
Number t_final = Number(0.)
 
Number timer_granularity = Number(0.)
 
std::string base_name
 
bool prepare_required = false
 
std::span< Interface::Task< Number > *const > tasks
 
std::function< void(const std::string &)> info
 

Detailed Description

template<typename Number = double>
struct ryujin::TaskContext< Number >

The context that the Scheduler shares with all tasks.

All values are identical on all MPI ranks so that tasks can base collective decisions on them.

Definition at line 119 of file task.h.

Member Function Documentation

◆ tick_reached()

template<typename Number = double>
bool ryujin::TaskContext< Number >::tick_reached ( ) const
inline

Return whether the current time has reached the timer tick timer_cycle.

Definition at line 124 of file task.h.

References ryujin::TaskContext< Number >::t, ryujin::TaskContext< Number >::timer_cycle, and ryujin::TaskContext< Number >::timer_granularity.

Member Data Documentation

◆ t

template<typename Number = double>
Number ryujin::TaskContext< Number >::t = Number(0.)

◆ tau

template<typename Number = double>
Number ryujin::TaskContext< Number >::tau = Number(0.)

The time step size. It is zero at the begin of the step phase and set by the first task of the step phase.

Definition at line 140 of file task.h.

Referenced by ryujin::Simulation< HD, PD, dim, Number >::execute().

◆ t_max

template<typename Number = double>
Number ryujin::TaskContext< Number >::t_max = std::numeric_limits<Number>::max()

The largest time that the time step must not exceed. Valid in the step phase.

Definition at line 146 of file task.h.

Referenced by ryujin::Simulation< HD, PD, dim, Number >::execute().

◆ cycle

template<typename Number = double>
unsigned int ryujin::TaskContext< Number >::cycle = 0

The current cycle.

Definition at line 151 of file task.h.

Referenced by ryujin::Trigger< Number >::fire().

◆ timer_cycle

template<typename Number = double>
unsigned int ryujin::TaskContext< Number >::timer_cycle = 0

The current timer cycle, i.e., the index of the next timer tick.

Definition at line 156 of file task.h.

Referenced by ryujin::Trigger< Number >::fire(), and ryujin::TaskContext< Number >::tick_reached().

◆ timer_tick

template<typename Number = double>
bool ryujin::TaskContext< Number >::timer_tick = false

Whether the current time has reached the timer tick timer_cycle, see tick_reached(). The Scheduler sets it at the begin of every phase.

Definition at line 163 of file task.h.

Referenced by ryujin::Trigger< Number >::fire().

◆ wall_time

template<typename Number = double>
Number ryujin::TaskContext< Number >::wall_time = Number(0.)

The wall time of the time loop, synchronized over all MPI ranks after every time step.

Definition at line 169 of file task.h.

Referenced by ryujin::Trigger< Number >::fire().

◆ t_final

template<typename Number = double>
Number ryujin::TaskContext< Number >::t_final = Number(0.)

The final time.

Definition at line 174 of file task.h.

◆ timer_granularity

template<typename Number = double>
Number ryujin::TaskContext< Number >::timer_granularity = Number(0.)

The time interval between two timer ticks.

Definition at line 179 of file task.h.

Referenced by ryujin::TaskContext< Number >::tick_reached().

◆ base_name

template<typename Number = double>
std::string ryujin::TaskContext< Number >::base_name

The base name of all output files.

Definition at line 184 of file task.h.

Referenced by ryujin::Simulation< HD, PD, dim, Number >::prepare().

◆ prepare_required

template<typename Number = double>
bool ryujin::TaskContext< Number >::prepare_required = false

Set by a task of the adapt phase that has invalidated the data structures of the tasks, for example by changing the mesh. The Scheduler then calls Interface::Task::prepare() on all tasks.

Definition at line 191 of file task.h.

◆ tasks

template<typename Number = double>
std::span<Interface::Task<Number> *const> ryujin::TaskContext< Number >::tasks

All active tasks in the order of execution.

Definition at line 196 of file task.h.

◆ info

template<typename Number = double>
std::function<void(const std::string &)> ryujin::TaskContext< Number >::info

Print a status message.

Definition at line 201 of file task.h.

Referenced by ryujin::Simulation< HD, PD, dim, Number >::prepare().


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