Paulms / FiniteVolumeMethods

Finite Volume Methods for Hyperbolic Problems

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Finite Volume Methods

Finite Volume Methods for Hyperbolic Problems. These PDEs are of the form

We also consider degenerate convection-diffusion systems of the form:

Solutions follow a conservative finite diference (finite volume) pattern. This method updates point values (cell averages) of the solution u and has the general form

Where the numerical flux is an approximate solution of the Riemann problem at the cell interface ($x_{i+1/2}$).

An extra term P similar to F could be added to account for the Diffusion in the second case.

The time integration of the semi discrete form is performed with Runge Kutta methods.

Features

Mesh:

At the momento only Cartesian 1D uniform mesh available, using FVMesh(N,a,b,boundary) command. Where

N = Number of cells

xinit,xend = start and end coordinates.

bdtype = boundary type (ZERO_FLUX, PERIODIC)

  • Problem types: System of Conservation Laws with diffusion term (CLS1DDiffusionProblem).

Algorithms

  • High-Resolution Central Schemes (SKT1DAlgorithm)

Kurganov, Tadmor, New High-Resolution Central Schemes for Nonlinear Conservation Laws and Convection–Diffusion Equations, Journal of Computational Physics, Vol 160, issue 1, 1 May 2000, Pages 241-282

  • Second-Order upwind central scheme (CU1DAlgorithm)

Kurganov A., Noelle S., Petrova G., Semidiscrete Central-Upwind schemes for hyperbolic Conservation Laws and Hamilton-Jacobi Equations. SIAM. Sci Comput, Vol 23, No 3m pp 707-740. 2001

  • Dissipation Reduced Central upwind Scheme: Second-Order (DRCU1DAlgorithm)

Kurganov A., Lin C., On the reduction of Numerical Dissipation in Central-Upwind # Schemes, Commun. Comput. Phys. Vol 2. No. 1, pp 141-163, Feb 2007.

  • Component Wise Global Lax-Friedrichs Scheme (COMP_GLF_1DAlgorithm)

R. Bürger, R. Donat, P. Mulet , C. A. Vega, On the implementation of WENO schemes for a class of polydisperse sedimentation models, Journal of Computational Physics, v.230 n.6, p.2322-2344, March, 2011 [doi>10.1016/j.jcp.2010.12.019]

  • Entropy Stable Schemes for degenerate convection-diffusion equations (ESJP1DAlgorithm y ESJPe1DAlgorithm)

Jerez, C. Pares. Entropy stable schemes for degenerate convection-difusion equations. 2017. Society for Industrial and Applied Mathematics. SIAM. Vol. 55. No. 1. pp. 240-264

Time integration methods:

At the moment available methods are: Forward Euler (FORWARD_EULER), Strong Stability Preserving Runge Kutta 2 (SSPRK22), SSPRK33.

Example

  ! Setup Mesh
  USE FVtypes
  USE EC_scheme
  USE FV_diffSolve
  INTEGER|                        :: N        ! Number of cells
  REAL(kind = dp)                 :: xinit, xend 
  INTEGER                         :: bdtype
  type(Uniform1DMesh)             :: mesh
  N = 5; xinit = 0.0; xend = 10.0; bdtype = PERIODIC
  call mesh%Initialize(N, xinit, xend, bdtype)

  ! Setup problem
  INTEGER                         :: M    ! number of equations in system
  REAL(kind = dp)                 :: Tend ! Final time
  REAL(kind = dp), ALLOCATABLE    :: uinit(:,:) ! Initial condition
  type(CLS1DDiffusionProblem)     :: prob
  M = 4; Tend = 0.2;
  ALLOCATE(uinit(N,M))
  uinit = 0.0_dp;
  ! Flux, JcF, BB are functions (see test1.f90 for more information)
  CALL prob%Initialize(mesh, uinit, M, Tend, Flux, JacF, BB)

  ! Choose algorithm and solve problem (some don't require initialization)
  type(ESJP1DAlgorithm)       :: ESPJAlg
  REAL(kind = dp)             :: CFL
  CFL = 0.2
  ! NFlux, KKN are functions (see test1.f90 for more information)
  CALL ESPJAlg%Initialize(Nflux, KKN, 0.0_dp)  
  CALL solve(prob, SSPRK22, ESPJAlg, CFL)

Disclamer

** Modules developed for personal use, some of them have not been tested enough !!!**

About

Finite Volume Methods for Hyperbolic Problems

License:GNU General Public License v3.0


Languages

Language:Fortran 96.9%Language:Makefile 3.1%