MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_weno Module Reference

WENO/WENO-Z/TENO reconstruction with optional monotonicity-preserving bounds and mapped weights. More...

Functions/Subroutines

impure subroutine, public s_initialize_weno_module
 The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are necessary to setup the module.
subroutine s_compute_weno_coefficients (weno_dir, is)
 The purpose of this subroutine is to compute the grid dependent coefficients of the WENO polynomials, ideal weights and smoothness indicators, provided the order, the coordinate direction and the location of the WENO reconstruction.
subroutine, public s_weno (v_vf, vl_rs_vf_x, vl_rs_vf_y, vl_rs_vf_z, vr_rs_vf_x, vr_rs_vf_y, vr_rs_vf_z, weno_dir, is1_weno_d, is2_weno_d, is3_weno_d)
 Performs WENO reconstruction of left and right cell-boundary values from cell-averaged variables.
subroutine, public s_initialize_weno (v_vf, weno_dir)
 The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are required for the setup of the WENO reconstruction.
subroutine s_preserve_monotonicity (v_rs_ws, vl_rs_vf, vr_rs_vf)
 The goal of this subroutine is to ensure that the WENO reconstruction is monotonic. The latter is achieved by enforcing monotonicity preserving bounds of Suresh and Huynh (1997). The resulting MPWENO reconstruction, see Balsara and Shu (2000), ensures that the reconstructed values do not reside outside the range spanned by WENO stencil.
impure subroutine, public s_finalize_weno_module ()
 Module deallocation and/or disassociation procedures.

Variables

integer v_size
 Number of WENO-reconstructed cell-average variables.
The cell-average variables that will be WENO-reconstructed. Formerly, they

are stored in v_vf. However, they are transferred to v_rs_wsL and v_rs_wsR as to be reshaped (RS) and/or characteristically decomposed. The reshaping allows the WENO procedure to be independent of the coordinate direction of the reconstruction. Lastly, notice that the left (L) and right (R) results of the characteristic decomposition are stored in custom-constructed WENO- stencils (WS) that are annexed to each position of a given scalar field.

real(wp), dimension(:, :, :, :), allocatable v_rs_ws_x
real(wp), dimension(:, :, :, :), allocatable v_rs_ws_y
real(wp), dimension(:, :, :, :), allocatable v_rs_ws_z
Polynomial coefficients at the left and right cell-boundaries (CB) and at

the left and right quadrature points (QP), in the x-, y- and z-directions. Note that the first dimension of the array identifies the polynomial, the second dimension identifies the position of its coefficients and the last dimension denotes the cell-location in the relevant coordinate direction.

real(wp), dimension(:, :, :), allocatable, target poly_coef_cbl_x
real(wp), dimension(:, :, :), allocatable, target poly_coef_cbl_y
real(wp), dimension(:, :, :), allocatable, target poly_coef_cbl_z
real(wp), dimension(:, :, :), allocatable, target poly_coef_cbr_x
real(wp), dimension(:, :, :), allocatable, target poly_coef_cbr_y
real(wp), dimension(:, :, :), allocatable, target poly_coef_cbr_z
The ideal weights at the left and the right cell-boundaries and at the

left and the right quadrature points, in x-, y- and z-directions. Note that the first dimension of the array identifies the weight, while the last denotes the cell-location in the relevant coordinate direction.

real(wp), dimension(:, :), allocatable, target d_cbl_x
real(wp), dimension(:, :), allocatable, target d_cbl_y
real(wp), dimension(:, :), allocatable, target d_cbl_z
real(wp), dimension(:, :), allocatable, target d_cbr_x
real(wp), dimension(:, :), allocatable, target d_cbr_y
real(wp), dimension(:, :), allocatable, target d_cbr_z
Smoothness indicator coefficients in the x-, y-, and z-directions. Note

that the first array dimension identifies the smoothness indicator, the second identifies the position of its coefficients and the last denotes the cell-location in the relevant coordinate direction.

real(wp), dimension(:, :, :), allocatable, target beta_coef_x
real(wp), dimension(:, :, :), allocatable, target beta_coef_y
real(wp), dimension(:, :, :), allocatable, target beta_coef_z
Indical bounds in the s1-, s2- and s3-directions
type(int_bounds_infois1_weno
type(int_bounds_infois2_weno
type(int_bounds_infois3_weno

Detailed Description

WENO/WENO-Z/TENO reconstruction with optional monotonicity-preserving bounds and mapped weights.

Function/Subroutine Documentation

◆ s_compute_weno_coefficients()

subroutine m_weno::s_compute_weno_coefficients ( integer, intent(in) weno_dir,
type(int_bounds_info), intent(in) is )

The purpose of this subroutine is to compute the grid dependent coefficients of the WENO polynomials, ideal weights and smoothness indicators, provided the order, the coordinate direction and the location of the WENO reconstruction.

Parameters
weno_dirCoordinate direction of the WENO reconstruction
isIndex bounds in the s-direction

Definition at line 1143 of file m_weno.fpp.f90.

Here is the caller graph for this function:

◆ s_finalize_weno_module()

impure subroutine, public m_weno::s_finalize_weno_module

Module deallocation and/or disassociation procedures.

Definition at line 5031 of file m_weno.fpp.f90.

Here is the caller graph for this function:

◆ s_initialize_weno()

subroutine, public m_weno::s_initialize_weno ( type(scalar_field), dimension(:), intent(in) v_vf,
integer, intent(in) weno_dir )

The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are required for the setup of the WENO reconstruction.

Parameters
v_vfCell-averaged variables
weno_dirCoordinate direction of the WENO reconstruction

Definition at line 4628 of file m_weno.fpp.f90.

Here is the caller graph for this function:

◆ s_initialize_weno_module()

impure subroutine, public m_weno::s_initialize_weno_module

The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are necessary to setup the module.

Definition at line 465 of file m_weno.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_preserve_monotonicity()

subroutine m_weno::s_preserve_monotonicity ( real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(in) v_rs_ws,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_rs_vf,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_rs_vf )

The goal of this subroutine is to ensure that the WENO reconstruction is monotonic. The latter is achieved by enforcing monotonicity preserving bounds of Suresh and Huynh (1997). The resulting MPWENO reconstruction, see Balsara and Shu (2000), ensures that the reconstructed values do not reside outside the range spanned by WENO stencil.

Parameters
v_rs_wsReshaped cell-averaged variables
vL_rs_vfLeft WENO reconstructed cell-boundary values
vR_rs_vfRight WENO reconstructed cell-boundary values

Definition at line 4829 of file m_weno.fpp.f90.

Here is the caller graph for this function:

◆ s_weno()

subroutine, public m_weno::s_weno ( type(scalar_field), dimension(1:), intent(in) v_vf,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_rs_vf_x,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_rs_vf_y,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_rs_vf_z,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_rs_vf_x,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_rs_vf_y,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_rs_vf_z,
integer, intent(in) weno_dir,
type(int_bounds_info), intent(in) is1_weno_d,
type(int_bounds_info), intent(in) is2_weno_d,
type(int_bounds_info), intent(in) is3_weno_d )

Performs WENO reconstruction of left and right cell-boundary values from cell-averaged variables.

Definition at line 2369 of file m_weno.fpp.f90.

Here is the call graph for this function:

Variable Documentation

◆ beta_coef_x

real(wp), dimension(:, :, :), allocatable, target m_weno::beta_coef_x

Definition at line 410 of file m_weno.fpp.f90.

◆ beta_coef_y

real(wp), dimension(:, :, :), allocatable, target m_weno::beta_coef_y

Definition at line 411 of file m_weno.fpp.f90.

◆ beta_coef_z

real(wp), dimension(:, :, :), allocatable, target m_weno::beta_coef_z

Definition at line 412 of file m_weno.fpp.f90.

◆ d_cbl_x

real(wp), dimension(:, :), allocatable, target m_weno::d_cbl_x

Definition at line 385 of file m_weno.fpp.f90.

◆ d_cbl_y

real(wp), dimension(:, :), allocatable, target m_weno::d_cbl_y

Definition at line 386 of file m_weno.fpp.f90.

◆ d_cbl_z

real(wp), dimension(:, :), allocatable, target m_weno::d_cbl_z

Definition at line 387 of file m_weno.fpp.f90.

◆ d_cbr_x

real(wp), dimension(:, :), allocatable, target m_weno::d_cbr_x

Definition at line 389 of file m_weno.fpp.f90.

◆ d_cbr_y

real(wp), dimension(:, :), allocatable, target m_weno::d_cbr_y

Definition at line 390 of file m_weno.fpp.f90.

◆ d_cbr_z

real(wp), dimension(:, :), allocatable, target m_weno::d_cbr_z

Definition at line 391 of file m_weno.fpp.f90.

◆ is1_weno

type(int_bounds_info) m_weno::is1_weno

Definition at line 443 of file m_weno.fpp.f90.

◆ is2_weno

type(int_bounds_info) m_weno::is2_weno

Definition at line 443 of file m_weno.fpp.f90.

◆ is3_weno

type(int_bounds_info) m_weno::is3_weno

Definition at line 443 of file m_weno.fpp.f90.

◆ poly_coef_cbl_x

real(wp), dimension(:, :, :), allocatable, target m_weno::poly_coef_cbl_x

Definition at line 350 of file m_weno.fpp.f90.

◆ poly_coef_cbl_y

real(wp), dimension(:, :, :), allocatable, target m_weno::poly_coef_cbl_y

Definition at line 351 of file m_weno.fpp.f90.

◆ poly_coef_cbl_z

real(wp), dimension(:, :, :), allocatable, target m_weno::poly_coef_cbl_z

Definition at line 352 of file m_weno.fpp.f90.

◆ poly_coef_cbr_x

real(wp), dimension(:, :, :), allocatable, target m_weno::poly_coef_cbr_x

Definition at line 353 of file m_weno.fpp.f90.

◆ poly_coef_cbr_y

real(wp), dimension(:, :, :), allocatable, target m_weno::poly_coef_cbr_y

Definition at line 354 of file m_weno.fpp.f90.

◆ poly_coef_cbr_z

real(wp), dimension(:, :, :), allocatable, target m_weno::poly_coef_cbr_z

Definition at line 355 of file m_weno.fpp.f90.

◆ v_rs_ws_x

real(wp), dimension(:, :, :, :), allocatable m_weno::v_rs_ws_x

Definition at line 328 of file m_weno.fpp.f90.

◆ v_rs_ws_y

real(wp), dimension(:, :, :, :), allocatable m_weno::v_rs_ws_y

Definition at line 328 of file m_weno.fpp.f90.

◆ v_rs_ws_z

real(wp), dimension(:, :, :, :), allocatable m_weno::v_rs_ws_z

Definition at line 328 of file m_weno.fpp.f90.

◆ v_size

integer m_weno::v_size

Number of WENO-reconstructed cell-average variables.

Definition at line 428 of file m_weno.fpp.f90.