1 0 GfsSimulation GfsBox GfsGEdge {} { # Mars 2009 a partir de Boussinesq.gfs # # MERCI A STEPHANE POPINET # # Limit the maximum timestep to 1e-2 so that the initial diffusion # is properly resolved # Time { end = 50 dtmax = 1e-2 } # Use an initial refinement of 7 levels !!! Refine 7 # Add a passive tracer called T VariableTracer T # Add diffusion to tracer T SourceDiffusion T 0.001 SourceViscosity {} 0.001 Source {} V T GfsInit {} { U = 0 V = 0 T = 0 } # Also adapt according to the tracer gradient AdaptGradient { istep = 1 } { maxlevel = 7 cmax = 5e-2 } T # Writes the time and timestep every 10 timesteps on standard error OutputTime { istep = 10 } stderr # Writes the simulation size every 10 timesteps on standard error OutputBalance { istep = 10 } stderr # Writes info about the convergence of the Poisson solver on standard error OutputProjectionStats { istep = 10 } stderr # Outputs profiling information at the end of the simulation to standard error OutputTiming { start = end } stderr # Outputs the simulation every 4 timesteps put in a directory called TURE OutputSimulation { istep = 4 } stdout OutputPPM { step = .2 } TURE/ture-%3.1f.ppm { min = -1.0 max = 1 v = T } # Every 4 timesteps, GfsView will read the following command, after having read # the simulation file and will output a PPM screenshot on its standard output EventScript { istep = 4 } { echo "Save stdout { width = 256 height = 512 }" } } # adiabatic at the top and bottom, imposed ture on the right and left, no slip everywhere GfsBox { left = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcDirichlet T -1} right = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcDirichlet T 1 } top = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcNeumann T 0} bottom = Boundary { BcDirichlet U 0 BcDirichlet V 0 BcNeumann T 0} } 1 1 right 1 1 top