Namespaces | Classes | Typedefs
Time

Code related to the representation of time during simulations. More...

Namespaces

 SelfStart
 Definition of the integrator self-starting procedure.
 

Classes

struct  Actions::AdvanceTime
 Advance time one substep. More...
 
struct  Actions::ChangeStepSize< StepChooserRegistrars >
 Adjust the step size for local time stepping. More...
 
struct  Actions::FinalTime
 Terminate after reaching a specified time. More...
 
struct  Actions::RecordTimeStepperData
 Records the variables and their time derivatives in the time stepper history. More...
 
struct  SelfStart::Tags::InitialValue< Tag >
 The initial value of a quantity. The contents are stored in a tuple to avoid putting duplicate tensors into the DataBox. More...
 
struct  SelfStart::Actions::Initialize
 Prepares the evolution for time-stepper self-starting. More...
 
struct  SelfStart::Actions::CheckForCompletion< ExitTag >
 Terminates the self-start phase if the required order has been reached. More...
 
struct  SelfStart::Actions::CheckForOrderIncrease
 If we have taken enough steps for this order, set the next time to the start time and increment the slab number. More...
 
struct  SelfStart::Actions::StartNextOrderIfReady< RestartTag >
 Jumps to the start of the self-start algorithm (skipping taking a step from the last point) if the generation of the points for the current order is complete. More...
 
struct  SelfStart::Actions::Cleanup
 Cleans up after the self-start procedure. More...
 
struct  Actions::UpdateU
 Perform variable updates for one substep. More...
 
struct  evolution_less< T >
 Ordering functors that reverse their order when time runs backwards. More...
 
class  Slab
 A chunk of time. Every element must reach slab boundaries exactly, no matter how it actually takes time steps to get there. The simulation can only be assumed to have global data available at slab boundaries. More...
 
struct  Tags::TimeId
 Tag for TimeId for the algorithm state. More...
 
struct  Tags::TimeStep
 Tag for step size. More...
 
struct  Tags::Time
 Tag for compute item for current Time (from TimeId) More...
 
struct  Tags::TimeValue
 Tag for compute item for current time as a double. More...
 
struct  Tags::HistoryEvolvedVariables< Tag, DtTag >
 Prefix for TimeStepper history. More...
 
struct  Tags::BoundaryHistory< LocalVars, RemoteVars, CouplingResult >
 Tag for TimeStepper boundary history. More...
 
struct  OptionTags::FinalTime
 The final time. More...
 
struct  OptionTags::TimeStepper
 The TimeStepper. More...
 
struct  OptionTags::TypedTimeStepper< StepperType >
 The TimeStepper, specifying a (base) type. Can be retrieved through OptionTags::TimeStepper. More...
 
struct  OptionTags::StepChoosers< Registrars >
 
struct  OptionTags::StepController
 
struct  OptionTags::InitialTime
 The time at which to start the simulation. More...
 
struct  OptionTags::InitialTimeStep
 The initial time step taken by the time stepper. This may be overridden by an adaptive stepper. More...
 
struct  OptionTags::InitialSlabSize
 The initial slab size. More...
 
class  Time
 The time in a simulation. Times can be safely compared for exact equality as long as they do not belong to overlapping unequal slabs. More...
 
class  TimeDelta
 Represents an interval of time within a single slab. More...
 
class  TimeId
 A unique identifier for the temporal state of an integrated system. More...
 
class  Triggers::EveryNSlabs< TriggerRegistrars >
 Trigger every N time slabs after a given offset. More...
 
class  Triggers::PastTime< TriggerRegistrars >
 Trigger when the simulation is past a certain time (after that time if time is running forward, before that time if time is running backward). More...
 
class  Triggers::SpecifiedSlabs< TriggerRegistrars >
 Trigger at specified numbers of slabs after the simulation start. More...
 

Typedefs

template<typename ComputeRhs , typename UpdateVariables >
using SelfStart::self_start_procedure = tmpl::flatten< tmpl::list< SelfStart::Actions::Initialize, ::Actions::Label< detail::PhaseStart >, SelfStart::Actions::CheckForCompletion< detail::PhaseEnd >, ::Actions::AdvanceTime, SelfStart::Actions::CheckForOrderIncrease, ComputeRhs, SelfStart::Actions::StartNextOrderIfReady< detail::PhaseStart >, UpdateVariables, ::Actions::Goto< detail::PhaseStart >, ::Actions::Label< detail::PhaseEnd >, SelfStart::Actions::Cleanup > >
 The list of actions required to self-start an integrator. More...
 

Detailed Description

Code related to the representation of time during simulations.

The time covered by a simulation is divided up into a sequence of adjacent, non-overlapping (except at endpoints) intervals referred to as "slabs". The boundaries between slabs can be placed at arbitrary times. Slabs, as represented in the code as the Slab class, provide comparison operators comparing slabs agreeing with the definition as a sequence of intervals. Slabs that do not jointly belong to any such sequence should not be compared.

The specific time is represented by the Time class, which encodes the slab containing the time and the fraction of the slab that has elapsed as an exact rational. Times are comparable according to their natural time ordering, except for times belonging to incomparable slabs.

Differences in time within a slab are represented as exact fractions of that slab by the TimeDelta class. TimeDeltas are only meaningful within a single slab, with the exception that the ratio of objects with different slabs may be taken, resulting in an inexact floating-point result. Longer intervals of time are represented using floating-point values.

Typedef Documentation

◆ self_start_procedure

template<typename ComputeRhs , typename UpdateVariables >
using SelfStart::self_start_procedure = typedef tmpl::flatten<tmpl::list< SelfStart::Actions::Initialize, ::Actions::Label<detail::PhaseStart>, SelfStart::Actions::CheckForCompletion<detail::PhaseEnd>, ::Actions::AdvanceTime, SelfStart::Actions::CheckForOrderIncrease, ComputeRhs, SelfStart::Actions::StartNextOrderIfReady<detail::PhaseStart>, UpdateVariables, ::Actions::Goto<detail::PhaseStart>, ::Actions::Label<detail::PhaseEnd>, SelfStart::Actions::Cleanup> >

The list of actions required to self-start an integrator.

Template Parameters
ComputeRhsAction or list of actions computing and recording the system derivative.
UpdateVariablesAction or list of actions updating the evolved variables (but not the time).
See also
SelfStart