version 0.6.0
mod_scalar_advection_tvd_superbee Module Reference

Explicit dimensional splitting Lax-Wendroff TVD SuperBee (LW-TVD-SB) scheme for the advection equation. More...

Functions/Subroutines

double precision function superbee (beta_coef, teta)
 
double precision function vanleer (teta)
 
double precision function minmod (teta)
 
double precision function mc (teta)
 
double precision function tvd_al (beta_coef, teta, time_iter_local)
 
double precision function tvd_blend (beta_coef, teta)
 
double precision function flux_limiter (beta_coef, teta, time_iter_local)
 
subroutine scalar_advection_tvd_superbee (divut, scalar_field, boundary_condition, velocity, time_step, equation_advection_term_splitting_scheme, equation_splitting_time_coef, equation_has_immersed_boundaries, equation_ib_has_one_sided_inner_discretization, equation_ib_inner_discretization_order, ibc_variable, equation_isd_target)
 Fills divuT with \(u \cdot \nabla \phi\) with a LW-TVD-SB. More...
 
subroutine scalar_tvd_superbee_splitting (divut, scalar_field_0, boundary_condition, velocity, velocity_grad, local_time_step, n, equation_splitting_time_coef, equation_has_immersed_boundaries, equation_ib_has_one_sided_inner_discretization, equation_ib_inner_discretization_order, ibc_variable, equation_isd_target)
 

Variables

logical, parameter force_first_order = .false.
 

Detailed Description

Be aware that this is not a conservative scheme but a traditional advection scheme.

The equation solved is:

\[ \frac{\partial \phi}{\partial t} + u \cdot \nabla \phi = 0 \]

Solve advection equation with Lax-Wendroff TVD Scheme with a Superbee limiter Splitting Method: Lie Splitting (globally second order for scalar advection)

Function/Subroutine Documentation

◆ scalar_advection_tvd_superbee()

subroutine mod_scalar_advection_tvd_superbee::scalar_advection_tvd_superbee ( double precision, dimension(nx,ny,nz), intent(inout)  divut,
double precision, dimension(nx,ny,nz), intent(in)  scalar_field,
type(t_boundary_condition), intent(in)  boundary_condition,
type(t_face_field), intent(in)  velocity,
double precision, intent(in)  time_step,
integer, intent(in)  equation_advection_term_splitting_scheme,
double precision, dimension (3), intent(in)  equation_splitting_time_coef,
logical, intent(in)  equation_has_immersed_boundaries,
logical, intent(in)  equation_ib_has_one_sided_inner_discretization,
integer, dimension(:), intent(in)  equation_ib_inner_discretization_order,
type(t_immersed_boundary_condition), dimension(:), intent(in)  ibc_variable,
integer, dimension (:), intent(in)  equation_isd_target 
)
Parameters
[in,out]divutthe resulting field
[in]scalar_fieldthe scalar T to be advected
[in]boundary_conditionBoundary conditions
[in]velocitythe velocity \( \mathbf{u} \)
[in]time_stepthe time step \( \delta t = t^{n+1} - t^n \)
[in]equation_advection_term_splitting_scheme
[in]equation_splitting_time_coef
[in]equation_has_immersed_boundariesFlag to enable immersed boundaries.
[in]equation_ib_has_one_sided_inner_discretization
[in]equation_ib_inner_discretization_order
[in]ibc_variableboundary conditions on immersed boundaries.
[in]equation_isd_targetSubset of immersed boundaries.