module Drasil.NoPCM.ODEs (noPCMODEOpts, noPCMODEInfo) where import Language.Drasil (recip_, ExprC(mulRe, idx, sy, ($-)), LiteralC(int, exactDbl)) import Language.Drasil.Code (odeInfo, odeOptions, quantvar, ODEInfo, ODEMethod(RK45), ODEOptions) import Data.Drasil.Quantities.Physics (time) import Drasil.SWHS.Unitals (tauW, tempC, tempInit, tempW, timeFinal, timeStep, absTol, relTol) noPCMODEOpts :: ODEOptions noPCMODEOpts :: ODEOptions noPCMODEOpts = ODEMethod -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr -> ODEOptions odeOptions ODEMethod RK45 (UncertainChunk -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UncertainChunk absTol) (UncertainChunk -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UncertainChunk relTol) (UncertQ -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UncertQ timeStep) (Integer -> CodeExpr forall r. LiteralC r => Integer -> r exactDbl 0) noPCMODEInfo :: ODEInfo noPCMODEInfo :: ODEInfo noPCMODEInfo = CodeVarChunk -> CodeVarChunk -> [CodeVarChunk] -> CodeExpr -> CodeExpr -> CodeExpr -> [CodeExpr] -> ODEOptions -> ODEInfo odeInfo (UnitalChunk -> CodeVarChunk forall c. (Quantity c, MayHaveUnit c) => c -> CodeVarChunk quantvar UnitalChunk time) (ConstrConcept -> CodeVarChunk forall c. (Quantity c, MayHaveUnit c) => c -> CodeVarChunk quantvar ConstrConcept tempW) [UnitalChunk -> CodeVarChunk forall c. (Quantity c, MayHaveUnit c) => c -> CodeVarChunk quantvar UnitalChunk tauW, UncertQ -> CodeVarChunk forall c. (Quantity c, MayHaveUnit c) => c -> CodeVarChunk quantvar UncertQ tempC] (Integer -> CodeExpr forall r. LiteralC r => Integer -> r exactDbl 0) (UncertQ -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UncertQ timeFinal) (UncertQ -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UncertQ tempInit) [CodeExpr -> CodeExpr forall r. (ExprC r, LiteralC r) => r -> r recip_ (UnitalChunk -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UnitalChunk tauW) CodeExpr -> CodeExpr -> CodeExpr forall r. ExprC r => r -> r -> r `mulRe` (UncertQ -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UncertQ tempC CodeExpr -> CodeExpr -> CodeExpr forall r. ExprC r => r -> r -> r $- CodeExpr -> CodeExpr -> CodeExpr forall r. ExprC r => r -> r -> r idx (ConstrConcept -> CodeExpr forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy ConstrConcept tempW) (Integer -> CodeExpr forall r. LiteralC r => Integer -> r int 0))] ODEOptions noPCMODEOpts