packages feed

gloss-examples-1.7.4.4: raster/Fluid/src-repa/Solve/Velocity.hs

module Solve.Velocity
        (velocitySteps)
where
import Stage.Diffusion
import Stage.Advection
import Stage.Sources
import Stage.Project
import Model
import Config

-- The pass that sets boundary conditions is buggy and 
-- currently disabled.
-- import Stage.Boundary
velocitySteps 
        :: Config
        -> Int
        -> VelocityField 
        -> Maybe (SourceDensity (Float, Float)) 
        -> IO VelocityField

velocitySteps config _step vf vs 
 = {-# SCC "Solve.velocitySteps" #-}
   do   
        vf1     <- addSources   (configDelta config) (configVelocity config)  
                                vs vf

        vf2     <- diffusion    (configIters config) (configDelta config) (configViscosity config) 
                                vf1 
--      vf3     <- setBoundary vf2

        vf4     <- project      (configIters config) vf2
--      vf5     <- setBoundary vf4

        vf6     <- advection    (configDelta config) vf4 vf4
--      vf7     <- setBoundary vf6

        vf8     <- project      (configIters config) vf6
--      vf'     <- setBoundary vf8

        return  vf8