CFD 2D Explosion in a Box (Roe MUSCL-KT with Minmod flux limiter)

Поделиться
HTML-код
  • Опубликовано: 17 окт 2024
  • Computational Fluid Dynamics.
    Roe Riemann's solver.
    Resolution: 400x400.
    Euler Time stepping method.
    Time integration from t=0 to t=2.0 with timestep = 0.000125.
    MUSCL-KT reconstruction scheme to determine fluxes at cell boundaries.
    Minmod flux limiter used for capturing shocks. (Limiter is known to be diffusive near shocks but will at least not cause spurious oscillations)
    Reflective boundary conditions.
    Initial conditions:
    rho = 1.0
    u = 0.0
    v = 0.0
    p = 1.0
    Within a circle of radius = 0.3 with center at coordinates (0.4, 0.4), the density and pressure is set to 5. This causes an explosion in a 1x1 box wich has reflective walls.
    Code was written in Julia from scratch.

Комментарии • 7

  • @jelletje8
    @jelletje8 5 месяцев назад +2

    We need more explosion science!

  • @saltybaguette7683
    @saltybaguette7683 5 месяцев назад +3

    I have no clue what I'm looking it but very impressive work!

    • @michaelpieters1844
      @michaelpieters1844  5 месяцев назад +1

      Thank you. A blast wave is generated where matter from high density/pressure region (initial circle) moves to lower density/pressure regions. This setup has reflective walls where perpendicular mass momentum gets reversed when it hits the border of the box. These blast waves will start to interact with eachother and create shocks. The video showcases the density distribution of the matter with contour lines. It is a bit similar like a height map. When on a height map a lot of contour lines lie close to eachother, the terrain is a steep climb. Similar here the density gradient becomes large. When you see multiple contour lines on top of one another, these are the shock regions.
      Discussion of a sod shock tube in 1D (a simplified case):
      en.wikipedia.org/wiki/Sod_shock_tube
      help.sim-flow.com/validation/sod-shock

  • @panagosu
    @panagosu 5 месяцев назад +2

    Hi Michael. Cool vid! I'd love to see a repo of yours where you implement MUSCL stuff in Julia. I've coded my share of MUSCL solvers too as a hobby, but some details like coding well-balanced schemes still elude me, so I'd appreciate some reference.

    • @michaelpieters1844
      @michaelpieters1844  5 месяцев назад

      Thanks for liking the video! I am currently not making codes public (as anyone can copy it with ease or be used as training data for some llm). But for reference this can be interesting: perswww.kuleuven.be/~u0016541/Talks/nonlinear.pdf. There is more info to be found on the personal webpage of Rony Keppens, professor at KULeuven: perswww.kuleuven.be/~u0016541/

    • @panagosu
      @panagosu 5 месяцев назад

      @@michaelpieters1844 Ye no worries about the code. I've found one or two codebases in C++ that tackle my problems so I'll just shadow them. Cheers!