packages feed

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'