dph-examples-0.6.0.1: examples/real/NBody/Batch/MainArgs.hs
module Batch.MainArgs
( MainArg(..)
, mainArgs)
where
import System.Console.ParseArgs
data MainArg
= ArgHelp
| ArgSolver
| ArgMaxSteps
| ArgTimeStep
| ArgBodyCount
| ArgBodyMass
| ArgEpsilon
| ArgDiscSize
| ArgStartSpeed
| ArgDumpFinal
| ArgPrintFinal
| ArgPrintTimings
deriving (Eq, Ord, Show)
mainArgs :: [Arg MainArg]
mainArgs
= [ Arg { argIndex = ArgHelp
, argAbbr = Just 'h'
, argName = Just "help"
, argData = Nothing
, argDesc = "Print this usage help." }
-- Solver selection.
, Arg { argIndex = ArgSolver
, argAbbr = Just 's'
, argName = Just "solver"
, argData = argDataDefaulted "name" ArgtypeString "vector-bh"
, argDesc = "One of: list-bh, vector-naive, vector-bh, nested-bh. (default vector-bh)" }
-- Simulation setup.
, Arg { argIndex = ArgTimeStep
, argAbbr = Just 't'
, argName = Just "timestep"
, argData = argDataDefaulted "Double" ArgtypeDouble 1
, argDesc = "Time step between states (default 1)" }
, Arg { argIndex = ArgBodyCount
, argAbbr = Just 'b'
, argName = Just "bodies"
, argData = argDataDefaulted "Int" ArgtypeInt 200
, argDesc = "Number of bodies in simulation (default 200)" }
, Arg { argIndex = ArgBodyMass
, argAbbr = Just 'm'
, argName = Just "mass"
, argData = argDataDefaulted "Double" ArgtypeDouble 10
, argDesc = "Mass of each body (default 10)" }
, Arg { argIndex = ArgEpsilon
, argAbbr = Just 'e'
, argName = Just "epsilon"
, argData = argDataDefaulted "Double" ArgtypeDouble 100
, argDesc = "Smoothing parameter (default 100)" }
, Arg { argIndex = ArgDiscSize
, argAbbr = Just 'd'
, argName = Just "disc"
, argData = argDataDefaulted "Double" ArgtypeDouble 50
, argDesc = "Starting size of disc containing bodies (default 50)" }
, Arg { argIndex = ArgStartSpeed
, argAbbr = Just 'p'
, argName = Just "speed"
, argData = argDataDefaulted "Double" ArgtypeDouble 0.5
, argDesc = "Starting rotation speed of bodies (default 0.5)" }
, Arg { argIndex = ArgMaxSteps
, argAbbr = Nothing
, argName = Just "max-steps"
, argData = argDataDefaulted "steps" ArgtypeInt 1000
, argDesc = "Exit simulation after this many steps (default 1000)" }
, Arg { argIndex = ArgDumpFinal
, argAbbr = Nothing
, argName = Just "dump-final"
, argData = argDataOptional "FilePath" ArgtypeString
, argDesc = "Dump final body positions and masses to file" }
, Arg { argIndex = ArgPrintFinal
, argAbbr = Nothing
, argName = Just "print-final"
, argData = Nothing
, argDesc = "Print final body positions and masses to stdout" }
, Arg { argIndex = ArgPrintTimings
, argAbbr = Nothing
, argName = Just "print-timings"
, argData = Nothing
, argDesc = "Print timings of the solver" }
]