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 (
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
yESJPe1DAlgorithm
)
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 !!!**