0.6.0
Loading...
Searching...
No Matches
mod_integrate_cell_advection_term_explicit_generic Module Reference

Integration methods for the advection equation. More...

Data Types

interface  divut_term_computer_interface
 The abstract function for computing div(U phi) More...
 
interface  divut_term_computer_interface_fd
 The abstract function for computing div(U phi) for the FD WENO schemes. More...
 

Functions/Subroutines

subroutine integrate_cell_advection_term_explicit_generic_euler (divut, time_step, dt_nm1, dt_n, velocity_nm1, velocity_n, velocity_np1, scalar, divut_term_computer, flux_type, temporal_stability_factor, equation_has_immersed_boundaries, equation_isd_target, ibc_variable, boundary_condition)
 Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme euler (in time) version.
 
subroutine integrate_cell_advection_term_explicit_generic_euler_split (divut, time_step, dt_nm1, dt_n, velocity_nm1, velocity_n, velocity_np1, scalar, divut_term_computer, flux_type, temporal_stability_factor, equation_has_immersed_boundaries, equation_isd_target, ibc_variable, boundary_condition)
 Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme euler (in time) version.
 
subroutine integrate_cell_advection_term_explicit_generic_sspso (divut, time_step, dt_nm1, dt_n, velocity_nm1, velocity_n, velocity_np1, scalar, divut_term_computer, flux_type, temporal_stability_factor, aki, bi, ci, boundary_condition)
 Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme SSP 2 stage 2nd order without velocity extrapolation.
 
subroutine integrate_cell_advection_term_explicit_generic_sspso_split (divut, time_step, dt_nm1, dt_n, velocity_nm1, velocity_n, velocity_np1, scalar, divut_term_computer, flux_type, temporal_stability_factor, aki, bi, ci, boundary_condition)
 Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme in a splitted manner SSP 2 stage 2nd order without velocity extrapolation.
 
subroutine integrate_cell_advection_term_explicit_generic_nssp32 (scalar_star, time_step_n, time_step, velocity_nm1, velocity_n, scalar_n, divut_term_computer, flux_type, temporal_stability_factor, boundary_condition)
 Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme.
 
subroutine integrate_cell_advection_term_explicit_generic_nssp32_split (scalar_star, time_step_n, time_step, velocity_nm1, velocity_n, scalar_n, divut_term_computer, flux_type, temporal_stability_factor, boundary_condition)
 Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme.
 
subroutine integrate_cell_advection_term_explicit_generic_nssp53 (divut, time_step, dt_nm1, dt_n, velocity_nm1, velocity_n, velocity_np1, scalar, divut_term_computer, flux_type, temporal_stability_factor, boundary_condition)
 Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme.
 
subroutine integrate_cell_advection_term_explicit_generic_nssp53_split (divut, time_step, dt_nm1, dt_n, velocity_nm1, velocity_n, velocity_np1, scalar, divut_term_computer, flux_type, temporal_stability_factor, boundary_condition)
 Integrate the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme. The temporal scheme is a 5 steps NSSP at 3nd order (NSSP53). The integration is done in a split manner (x then y then z)
 

Detailed Description

Integration methods for the advection equation.

This module furnishes various temporal integration schemes (mainly RK schemes) for the advection equation. As the explicit resolution of the advection equation is subjected to a stability condition (the CFL), sub iterations can occur during the integration process.

Note
A generic abstract function divut_term_computer_interface is defined for simplifying the process. With this manner, any spatial scheme can be used, may it be first order or WENO.

Function/Subroutine Documentation

◆ integrate_cell_advection_term_explicit_generic_euler()

subroutine mod_integrate_cell_advection_term_explicit_generic::integrate_cell_advection_term_explicit_generic_euler ( double precision, dimension(:,:,:), intent(inout) divut,
double precision, intent(in) time_step,
double precision, intent(in) dt_nm1,
double precision, intent(in) dt_n,
type(t_face_field), intent(in) velocity_nm1,
type(t_face_field), intent(in) velocity_n,
type(t_face_field), intent(in) velocity_np1,
double precision, dimension(:,:,:), intent(in) scalar,
procedure(divut_term_computer_interface) divut_term_computer,
type(t_fv_flux), intent(in) flux_type,
double precision, intent(in) temporal_stability_factor,
logical, intent(in) equation_has_immersed_boundaries,
integer, dimension(:), intent(in) equation_isd_target,
type(t_immersed_boundary_condition), dimension(:), intent(in) ibc_variable,
type(t_boundary_condition), intent(in) boundary_condition )

Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme euler (in time) version.

Parameters
[in,out]divutthe resulting term
[in]time_stepthe time step on which we integrate (might be different from dt_n for sub integration steps!)
[in]velocity_nm1velocity field at \( t^{n-1} \)
[in]velocity_nvelocity field at \( t^n \)
[in]velocity_np1velocity field at \( t^{n+1} \)
[in]dt_nm1the previous time step \( \delta t^{n-1} = t^{n} - t^{n-1} \)
[in]dt_nthe current time step \( \delta t^{n} = t^{n+1} - t^{n} \)
[in]flux_typethe flux type to use for the explicit advection (type_fv_flux)
[in]boundary_conditionthe boundary conditions of the cell scalar
[in]scalarthe scalar to advect
[in]divut_term_computerthe procedure that will compute the div(u phi) term giving u and phi
[in]temporal_stability_factorthe cfl coefficient to use (depending on the time and space schemes)
[in]equation_has_immersed_boundariestrue if has IBC
[in]equation_isd_targetSubset of immersed boundaries.
[in]ibc_variableboundary conditions on immersed boundaries.

◆ integrate_cell_advection_term_explicit_generic_euler_split()

subroutine mod_integrate_cell_advection_term_explicit_generic::integrate_cell_advection_term_explicit_generic_euler_split ( double precision, dimension(:,:,:), intent(inout) divut,
double precision, intent(in) time_step,
double precision, intent(in) dt_nm1,
double precision, intent(in) dt_n,
type(t_face_field), intent(in) velocity_nm1,
type(t_face_field), intent(in) velocity_n,
type(t_face_field), intent(in) velocity_np1,
double precision, dimension(:,:,:), intent(in) scalar,
procedure(divut_term_computer_interface) divut_term_computer,
type(t_fv_flux), intent(in) flux_type,
double precision, intent(in) temporal_stability_factor,
logical, intent(in) equation_has_immersed_boundaries,
integer, dimension(:), intent(in) equation_isd_target,
type(t_immersed_boundary_condition), dimension(:), intent(in) ibc_variable,
type(t_boundary_condition), intent(in) boundary_condition )

Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme euler (in time) version.

Parameters
[in,out]divutthe resulting term
[in]time_stepthe time step on which we integrate (might be different from dt_n for sub integration steps!)
[in]velocity_nm1velocity field at \( t^{n-1} \)
[in]velocity_nvelocity field at \( t^n \)
[in]velocity_np1velocity field at \( t^{n+1} \)
[in]dt_nm1the previous time step \( \delta t^{n-1} = t^{n} - t^{n-1} \)
[in]dt_nthe current time step \( \delta t^{n} = t^{n+1} - t^{n} \)
[in]flux_typethe flux type to use for the explicit advection (type_fv_flux)
[in]boundary_conditionthe boundary conditions of the cell scalar
[in]scalarthe scalar to advect
[in]divut_term_computerthe procedure that will compute the div(u phi) term giving u and phi
[in]temporal_stability_factorthe cfl coefficient to use (depending on the time and space schemes)
[in]equation_has_immersed_boundariestrue if has IBC
[in]equation_isd_targetSubset of immersed boundaries.
[in]ibc_variableboundary conditions on immersed boundaries.

◆ integrate_cell_advection_term_explicit_generic_nssp32()

subroutine mod_integrate_cell_advection_term_explicit_generic::integrate_cell_advection_term_explicit_generic_nssp32 ( double precision, dimension(:,:,:), intent(inout) scalar_star,
double precision, intent(in) time_step_n,
double precision, intent(in) time_step,
type(t_face_field), intent(in) velocity_nm1,
type(t_face_field), intent(in) velocity_n,
double precision, dimension(:,:,:), intent(in) scalar_n,
procedure(divut_term_computer_interface) divut_term_computer,
type(t_fv_flux), intent(in) flux_type,
double precision, intent(in) temporal_stability_factor,
type(t_boundary_condition), intent(in) boundary_condition )

Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme.

Optimized version for 3 stages at order 2

Parameters
[in,out]scalar_starthe resulting field
[in]time_step_nthe previous time step \( \delta t^{n-1} = t^{n} - t^{n-1} \)
[in]time_stepthe time step on which we integrate (might be different from dt_n for sub integration steps!)
[in]velocity_nm1velocity field at \( t^{n-1} \)
[in]velocity_nvelocity field at \( t^n \)
[in]scalar_nthe scalar to advect at time \( t^{n} \)
[in]divut_term_computerthe procedure that will compute the div(u phi) term giving u and phi
[in]flux_typethe flux type to use for the explicit advection (type_fv_flux)
[in]temporal_stability_factorthe cfl coefficient to use (depending on the time and space schemes)
[in]boundary_conditionthe boundary conditions of the cell scalar

◆ integrate_cell_advection_term_explicit_generic_nssp32_split()

subroutine mod_integrate_cell_advection_term_explicit_generic::integrate_cell_advection_term_explicit_generic_nssp32_split ( double precision, dimension(:,:,:), intent(inout) scalar_star,
double precision, intent(in) time_step_n,
double precision, intent(in) time_step,
type(t_face_field), intent(in) velocity_nm1,
type(t_face_field), intent(in) velocity_n,
double precision, dimension(:,:,:), intent(in) scalar_n,
procedure(divut_term_computer_interface) divut_term_computer,
type(t_fv_flux), intent(in) flux_type,
double precision, intent(in) temporal_stability_factor,
type(t_boundary_condition), intent(in) boundary_condition )

Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme.

Optimized version for 3 stages at order 2 The integration is done in a split manner (x then y then z)

Parameters
[in,out]scalar_starthe resulting field
[in]time_step_nthe previous time step \( \delta t^{n-1} = t^{n} - t^{n-1} \)
[in]time_stepthe time step on which we integrate (might be different from dt_n for sub integration steps!)
[in]velocity_nm1velocity field at \( t^{n-1} \)
[in]velocity_nvelocity field at \( t^n \)
[in]scalar_nthe scalar to advect at time \( t^{n} \)
[in]divut_term_computerthe procedure that will compute the div(u phi) term giving u and phi
[in]flux_typethe flux type to use for the explicit advection (type_fv_flux)
[in]temporal_stability_factorthe cfl coefficient to use (depending on the time and space schemes)
[in]boundary_conditionthe boundary conditions of the cell scalar

◆ integrate_cell_advection_term_explicit_generic_nssp53()

subroutine mod_integrate_cell_advection_term_explicit_generic::integrate_cell_advection_term_explicit_generic_nssp53 ( double precision, dimension(:,:,:), intent(inout) divut,
double precision, intent(in) time_step,
double precision, intent(in) dt_nm1,
double precision, intent(in) dt_n,
type(t_face_field), intent(in) velocity_nm1,
type(t_face_field), intent(in) velocity_n,
type(t_face_field), intent(in) velocity_np1,
double precision, dimension(:,:,:), intent(in) scalar,
procedure(divut_term_computer_interface) divut_term_computer,
type(t_fv_flux), intent(in) flux_type,
double precision, intent(in) temporal_stability_factor,
type(t_boundary_condition), intent(in) boundary_condition )

Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme.

Optimized version for 5 stages at order 3

Parameters
[in,out]divutthe resulting field
[in]time_stepthe time step on which we integrate (might be different from dt_n for sub integration steps!)
[in]velocity_nm1velocity field at \( t^{n-1} \)
[in]velocity_nvelocity field at \( t^n \)
[in]velocity_np1velocity field at \( t^{n+1} \)
[in]dt_nm1the previous time step \( \delta t^{n-1} = t^{n} - t^{n-1} \)
[in]dt_nthe current time step \( \delta t^{n} = t^{n+1} - t^{n} \)
[in]scalarthe scalar to advect
[in]divut_term_computerthe procedure that will compute the div(u phi) term giving u and phi
[in]flux_typethe flux type to use for the explicit advection (type_fv_flux)
[in]temporal_stability_factorthe cfl coefficient to use (depending on the time and space schemes)
[in]boundary_conditionthe boundary conditions of the cell scalar

◆ integrate_cell_advection_term_explicit_generic_sspso()

subroutine mod_integrate_cell_advection_term_explicit_generic::integrate_cell_advection_term_explicit_generic_sspso ( double precision, dimension(:,:,:), intent(inout) divut,
double precision, intent(in) time_step,
double precision, intent(in) dt_nm1,
double precision, intent(in) dt_n,
type(t_face_field), intent(in) velocity_nm1,
type(t_face_field), intent(in) velocity_n,
type(t_face_field), intent(in) velocity_np1,
double precision, dimension(:,:,:), intent(in) scalar,
procedure(divut_term_computer_interface) divut_term_computer,
type(t_fv_flux), intent(in) flux_type,
double precision, intent(in) temporal_stability_factor,
double precision, dimension(:,:), intent(in) aki,
double precision, dimension(:), intent(in) bi,
double precision, dimension(:), intent(in) ci,
type(t_boundary_condition), intent(in) boundary_condition )

Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme SSP 2 stage 2nd order without velocity extrapolation.

Parameters
[in,out]divutthe resulting field
[in]time_stepthe time step on which we integrate (might be different from dt_n for sub integration steps!)
[in]velocity_nm1velocity field at \( t^{n-1} \)
[in]velocity_nvelocity field at \( t^n \)
[in]velocity_np1velocity field at \( t^{n+1} \)
[in]dt_nm1the previous time step \( \delta t^{n-1} = t^{n} - t^{n-1} \)
[in]dt_nthe current time step \( \delta t^{n} = t^{n+1} - t^{n} \)
[in]scalarthe scalar to advect
[in]divut_term_computerthe procedure that will compute the div(u phi) term giving u and phi
[in]flux_typethe flux type to use for the explicit advection (type_fv_flux)
[in]temporal_stability_factorthe cfl coefficient to use (depending on the time and space schemes)
[in]boundary_conditionthe boundary conditions of the cell scalar
[in]aki,bi,cithe given coefficients of the Butcher tableau

◆ integrate_cell_advection_term_explicit_generic_sspso_split()

subroutine mod_integrate_cell_advection_term_explicit_generic::integrate_cell_advection_term_explicit_generic_sspso_split ( double precision, dimension(:,:,:), intent(inout) divut,
double precision, intent(in) time_step,
double precision, intent(in) dt_nm1,
double precision, intent(in) dt_n,
type(t_face_field), intent(in) velocity_nm1,
type(t_face_field), intent(in) velocity_n,
type(t_face_field), intent(in) velocity_np1,
double precision, dimension(:,:,:), intent(in) scalar,
procedure(divut_term_computer_interface) divut_term_computer,
type(t_fv_flux), intent(in) flux_type,
double precision, intent(in) temporal_stability_factor,
double precision, dimension(:,:), intent(in) aki,
double precision, dimension(:), intent(in) bi,
double precision, dimension(:), intent(in) ci,
type(t_boundary_condition), intent(in) boundary_condition )

Adds the advection term \( c \nabla \cdot ( \mathbf{u} \phi ) \) with a generic spatial scheme in a splitted manner SSP 2 stage 2nd order without velocity extrapolation.

Parameters
[in,out]divutthe resulting field
[in]time_stepthe time step on which we integrate (might be different from dt_n for sub integration steps!)
[in]velocity_nm1velocity field at \( t^{n-1} \)
[in]velocity_nvelocity field at \( t^n \)
[in]velocity_np1velocity field at \( t^{n+1} \)
[in]dt_nm1the previous time step \( \delta t^{n-1} = t^{n} - t^{n-1} \)
[in]dt_nthe current time step \( \delta t^{n} = t^{n+1} - t^{n} \)
[in]scalarthe scalar to advect
[in]divut_term_computerthe procedure that will compute the div(u phi) term giving u and phi
[in]flux_typethe flux type to use for the explicit advection (type_fv_flux)
[in]temporal_stability_factorthe cfl coefficient to use (depending on the time and space schemes)
[in]boundary_conditionthe boundary conditions of the cell scalar
[in]aki,bi,cithe given coefficients of the Butcher tableau