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 m = Specs {}
- data Method
- data Run m = Run {
- runSpecs :: Specs m
- runIndex :: Int
- runCount :: Int
- runEventQueue :: EventQueue m
- runGenerator :: Generator m
- data Point m = Point {
- pointSpecs :: Specs m
- pointRun :: Run m
- pointTime :: Double
- pointPriority :: EventPriority
- pointIteration :: Int
- pointPhase :: Int
- basicTime :: Specs m -> Int -> Int -> Double
- integIterationBnds :: Specs m -> (Int, Int)
- integIterationHiBnd :: Specs m -> Int
- integIterationLoBnd :: Specs m -> Int
- integPhaseBnds :: Specs m -> (Int, Int)
- integPhaseHiBnd :: Specs m -> Int
- integPhaseLoBnd :: Specs m -> Int
- integTimes :: Specs m -> [Double]
- integPoints :: Run m -> [Point m]
- integPointsStartingFrom :: Point m -> [Point m]
- integStartPoint :: Run m -> Point m
- integStopPoint :: Run m -> Point m
- simulationStopPoint :: Run m -> Point m
- timeGrid :: Specs m -> Int -> [(Int, Double)]
- pointAt :: Run m -> Double -> EventPriority -> Point m
- delayPoint :: Point m -> Int -> Point m
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 | |
|
basicTime :: Specs m -> Int -> Int -> Double Source #
Returns a simulation time for the integration point specified by the specs, iteration and phase.
integIterationBnds :: Specs m -> (Int, Int) Source #
Returns the first and last integration iterations.
integIterationHiBnd :: Specs m -> Int Source #
Returns the last integration iteration.
integIterationLoBnd :: Specs m -> Int Source #
Returns the first integration iteration, i.e. zero.
integPhaseHiBnd :: Specs m -> Int Source #
Returns the last integration phase, 0 for Euler's method, 1 for RK2 and 3 for RK4.
integPhaseLoBnd :: Specs m -> Int Source #
Returns the first integration phase, i.e. zero.
integTimes :: Specs m -> [Double] Source #
Return the integration time values.
integPoints :: Run m -> [Point m] Source #
Return the integration time points.
integPointsStartingFrom :: Point m -> [Point m] Source #
Return the integration time points starting from the specified iteration.
integStartPoint :: Run m -> Point m Source #
Return the start time point.
integStopPoint :: Run m -> Point m Source #
Return the integration stop time point.
simulationStopPoint :: Run m -> Point m Source #
Return the simulation stop time point.
timeGrid :: Specs m -> Int -> [(Int, Double)] Source #
Return the indexed time values in the grid by specified size.