aivika-1.0: examples/ChemicalReaction.hs
{-# LANGUAGE RecursiveDo #-}
import Simulation.Aivika
import Simulation.Aivika.SystemDynamics
specs = Specs { spcStartTime = 0,
spcStopTime = 13,
spcDT = 0.01,
spcMethod = RungeKutta4,
spcGeneratorType = SimpleGenerator }
model :: Simulation [Double]
model =
mdo a <- integ (- ka * a) 100
b <- integ (ka * a - kb * b) 0
c <- integ (kb * b) 0
let ka = 1
kb = 1
runDynamicsInStopTime $ sequence [a, b, c]
main = runSimulation model specs >>= print