Copyright | Copyright (c) 2009-2015, David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Tested with: GHC 7.10.1
The module defines the Dynamics
monad representing a time varying polymorphic function.
- data Dynamics a
- class DynamicsLift m where
- liftDynamics :: Dynamics a -> m a
- runDynamicsInStartTime :: Dynamics a -> Simulation a
- runDynamicsInStopTime :: Dynamics a -> Simulation a
- runDynamicsInIntegTimes :: Dynamics a -> Simulation [IO a]
- runDynamicsInTime :: Double -> Dynamics a -> Simulation a
- runDynamicsInTimes :: [Double] -> Dynamics a -> Simulation [IO a]
- catchDynamics :: Exception e => Dynamics a -> (e -> Dynamics a) -> Dynamics a
- finallyDynamics :: Dynamics a -> Dynamics b -> Dynamics a
- throwDynamics :: Exception e => e -> Dynamics a
- time :: Dynamics Double
- isTimeInteg :: Dynamics Bool
- integIteration :: Dynamics Int
- integPhase :: Dynamics Int
- traceDynamics :: String -> Dynamics a -> Dynamics a
Dynamics Monad
A value in the Dynamics
monad represents a polymorphic time varying function.
class DynamicsLift m where Source
A type class to lift the Dynamics
computations to other computations.
liftDynamics :: Dynamics a -> m a Source
Lift the specified Dynamics
computation to another computation.
runDynamicsInStartTime :: Dynamics a -> Simulation a Source
Run the Dynamics
computation in the initial time point.
runDynamicsInStopTime :: Dynamics a -> Simulation a Source
Run the Dynamics
computation in the final time point.
runDynamicsInIntegTimes :: Dynamics a -> Simulation [IO a] Source
Run the Dynamics
computation in all integration time points.
runDynamicsInTime :: Double -> Dynamics a -> Simulation a Source
Run the Dynamics
computation in the specified time point.
runDynamicsInTimes :: [Double] -> Dynamics a -> Simulation [IO a] Source
Run the Dynamics
computation in the specified time points.
Error Handling
catchDynamics :: Exception e => Dynamics a -> (e -> Dynamics a) -> Dynamics a Source
Exception handling within Dynamics
computations.
finallyDynamics :: Dynamics a -> Dynamics b -> Dynamics a Source
A computation with finalization part like the finally
function.
throwDynamics :: Exception e => e -> Dynamics a Source
Like the standard throw
function.
Simulation Time
isTimeInteg :: Dynamics Bool Source
Whether the current time is an integration time.
integIteration :: Dynamics Int Source
Return the integration iteration closest to the current simulation time.
integPhase :: Dynamics Int Source
Return the integration phase for the current simulation time.
It is (-1)
for non-integration time points.
Debugging
traceDynamics :: String -> Dynamics a -> Dynamics a Source
Show the debug message with the current simulation time.