module Experiment (experiment, generators) where import Data.Monoid import Simulation.Aivika import Simulation.Aivika.Experiment import Simulation.Aivika.Experiment.Chart specs = Specs { spcStartTime = 0, spcStopTime = 10000, spcDT = 1, spcMethod = RungeKutta4, spcGeneratorType = SimpleGenerator } experiment :: Experiment experiment = defaultExperiment { experimentSpecs = specs, experimentRunCount = 1, experimentTitle = "Difference Equations", experimentDescription = "Difference Equations as described in " ++ "the corresponded tutorial of Berkeley-Madonna " ++ "with small modification for calculating std." } t = resultByName "t" x = resultByName "x" sumX = resultByName "sumX" sumX2 = resultByName "sumX2" avg = resultByName "avg" std = resultByName "std" generators :: ChartRendering r => [WebPageGenerator r] generators = [outputView defaultExperimentSpecsView, outputView defaultInfoView, outputView $ defaultTableView { tableSeries = t <> x <> sumX <> sumX2 <> avg <> std }, outputView $ defaultTimeSeriesView { timeSeriesTitle = "Time Series", timeSeriesLeftYSeries = x <> avg }, outputView $ defaultTimingStatsView { timingStatsSeries = x }, outputView $ defaultTimeSeriesView { timeSeriesTitle = "Sums", timeSeriesLeftYSeries = sumX, timeSeriesRightYSeries = sumX2 }, outputView $ defaultTimeSeriesView { timeSeriesTitle = "Standard Deviation", timeSeriesLeftYSeries = std } ]