Copyright | Copyright (c) 2009-2017 David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Tested with: GHC 8.0.1
It defines the simulation specs and related stuff.
Synopsis
- data Specs = Specs {}
- data Method
- data Run = Run {
- runSpecs :: Specs
- runIndex :: Int
- runCount :: Int
- runEventQueue :: EventQueue
- runGenerator :: Generator
- data Point = Point {}
- type EventPriority = Int
- data EventQueue = EventQueue {}
- newEventQueue :: Specs -> IO EventQueue
- basicTime :: Specs -> Int -> Int -> Double
- integIterationBnds :: Specs -> (Int, Int)
- integIterationHiBnd :: Specs -> Int
- integIterationLoBnd :: Specs -> Int
- integPhaseBnds :: Specs -> (Int, Int)
- integPhaseHiBnd :: Specs -> Int
- integPhaseLoBnd :: Specs -> Int
- integTimes :: Specs -> [Double]
- integPoints :: Run -> [Point]
- integPointsStartingFrom :: Point -> [Point]
- integStartPoint :: Run -> Point
- integStopPoint :: Run -> Point
- simulationStopPoint :: Run -> Point
- timeGrid :: Specs -> Int -> [(Int, Double)]
- pointAt :: Run -> Double -> EventPriority -> Point
- delayPoint :: Point -> Int -> Point
Documentation
It defines the simulation specs.
Specs | |
|
It defines the integration method.
Euler | Euler's method |
RungeKutta2 | the 2nd order Runge-Kutta method |
RungeKutta4 | the 4th order Runge-Kutta method |
RungeKutta4b | the 4th order Runge-Kutta 3/8-method |
It indentifies the simulation run.
Run | |
|
It defines the simulation point appended with the additional information.
Point | |
|
type EventPriority = Int Source #
The event priority (greater is higher).
data EventQueue Source #
It represents the event queue.
newEventQueue :: Specs -> IO EventQueue Source #
Create a new event queue by the specified specs.
basicTime :: Specs -> Int -> Int -> Double Source #
Returns a simulation time for the integration point specified by the specs, iteration and phase.
integIterationBnds :: Specs -> (Int, Int) Source #
Returns the first and last integration iterations.
integIterationHiBnd :: Specs -> Int Source #
Returns the last integration iteration.
integIterationLoBnd :: Specs -> Int Source #
Returns the first integration iteration, i.e. zero.
integPhaseHiBnd :: Specs -> Int Source #
Returns the last integration phase, 0 for Euler's method, 1 for RK2 and 3 for RK4.
integPhaseLoBnd :: Specs -> Int Source #
Returns the first integration phase, i.e. zero.
integTimes :: Specs -> [Double] Source #
Return the integration time values.
integPoints :: Run -> [Point] Source #
Return the integration time points.
integPointsStartingFrom :: Point -> [Point] Source #
Return the integration time points starting from the specified iteration.
integStartPoint :: Run -> Point Source #
Return the start time point.
integStopPoint :: Run -> Point Source #
Return the integration stop time point.
simulationStopPoint :: Run -> Point Source #
Return the simulation stop time point.
timeGrid :: Specs -> Int -> [(Int, Double)] Source #
Return the indexed time values in the grid by specified size.