gloss-examples-1.7.4.4: raster/Fluid/src-repa/Solve/Density.hs
module Solve.Density
(densitySteps)
where
import Stage.Diffusion
import Stage.Advection
import Stage.Sources
import Config
import Model
-- | Run the stages for processing the density field in one time step
densitySteps
:: Config
-> Int
-> DensityField
-> Maybe (SourceDensity Float)
-> VelocityField
-> IO DensityField
densitySteps config step df ds vf
= {-# SCC "Solve.densitySteps" #-}
do df1 <- addSources (configDelta config) (configDensity config)
ds df
df2 <- diffusion (configIters config) (configDelta config) (configDiffusion config)
df1
df' <- advection (configDelta config) vf df2
return df'