Skip to content

Paulms/FiniteVolumeMethods

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published