recon1d_ppm_cw module reference¶
Piecewise Parabolic Method 1D reconstruction following Colella and Woodward, 1984.
Data Types¶
PPM reconstruction following Colella and Woordward, 1984. |
Functions/Subroutines¶
Initialize a 1D PPM_CW reconstruction for n cells. |
|
Calculate a 1D PPM_CW reconstructions based on h(:) and u(:) |
|
Value of PPM_CW reconstruction at a point in cell k [A]. |
|
Derivative of PPM_CW reconstruction at a point in cell k [A]. |
|
Average between xa and xb for cell k of a 1D PPM reconstruction [A]. |
|
Deallocate the PPM_CW reconstruction. |
|
Checks the PPM_CW reconstruction for consistency. |
|
Runs PPM_CW reconstruction unit tests and returns True for any fails, False otherwise. |
Detailed Description¶
This is a near faithful implementation of PPM following Colella and Woodward, 1984, with cells resorting to PCM for extrema including first and last cells in column. The only exception is that the PLM slopes used for edge interpolation are not set to zero for the first and last cells, but are side-differenced. This improves accuracy of edge values near boundaries and reduces the adverse influence of the boundaries on the interior reconstructions. The final PPM reconstruction in the first and last cells are set to PCM. The reconstructions are grid-spacing dependent, and so quasi-forth order in h.
Type Documentation¶
-
type
recon1d_ppm_cw/ppm_cw¶ PPM reconstruction following Colella and Woordward, 1984.
- Type fields:
%ul[real(:),allocatable, private] :: Left edge value [A].%ur[real(:),allocatable, private] :: Right edge value [A].%plm[type( plm_cw ),private] :: The PLM reconstruction used to estimate edge values.%init[procedure,private] :: Implementation of the PPM_CW initialization.%reconstruct[procedure,private] :: Implementation of the PPM_CW reconstruction.%average[procedure,private] :: Implementation of the PPM_CW average over an interval [A].%f[procedure,private] :: Implementation of evaluating the PPM_CW reconstruction at a point [A].%dfdx[procedure,private] :: Implementation of the derivative of the PPM_CW reconstruction at a point [A].%destroy[procedure,private] :: Implementation of deallocation for PPM_CW.%check_reconstruction[procedure,private] :: Implementation of check reconstruction for the PPM_CW reconstruction.%unit_tests[procedure,private] :: Implementation of unit tests for the PPM_CW reconstruction.%init_parent[procedure,private] :: Duplicate interface to%reconstruct_parent[procedure,private] :: Duplicate interface to
Function/Subroutine Documentation¶
-
subroutine
recon1d_ppm_cw/init(this, n, h_neglect, check)¶ Initialize a 1D PPM_CW reconstruction for n cells.
- Parameters:
this :: [out] This reconstruction
n :: [in] Number of cells in this column
h_neglect :: [in] A negligibly small width used in cell reconstructions [H]
check :: [in] If true, enable some consistency checking
-
subroutine
recon1d_ppm_cw/reconstruct(this, h, u)¶ Calculate a 1D PPM_CW reconstructions based on h(:) and u(:)
- Parameters:
this :: [inout] This reconstruction
h :: [in] Grid spacing (thickness) [typically H]
u :: [in] Cell mean values [A]
-
function
recon1d_ppm_cw/f(this, k, x) [real]¶ Value of PPM_CW reconstruction at a point in cell k [A].
- Parameters:
this :: [in] This reconstruction
k :: [in] Cell number
x :: [in] Non-dimensional position within element [nondim]
-
function
recon1d_ppm_cw/dfdx(this, k, x) [real]¶ Derivative of PPM_CW reconstruction at a point in cell k [A].
- Parameters:
this :: [in] This reconstruction
k :: [in] Cell number
x :: [in] Non-dimensional position within element [nondim]
-
function
recon1d_ppm_cw/average(this, k, xa, xb) [real]¶ Average between xa and xb for cell k of a 1D PPM reconstruction [A].
- Parameters:
this :: [in] This reconstruction
k :: [in] Cell number
xa :: [in] Start of averaging interval on element (0 to 1)
xb :: [in] End of averaging interval on element (0 to 1)
-
subroutine
recon1d_ppm_cw/destroy(this)¶ Deallocate the PPM_CW reconstruction.
- Parameters:
this :: [inout] This reconstruction
-
function
recon1d_ppm_cw/check_reconstruction(this, h, u) [logical]¶ Checks the PPM_CW reconstruction for consistency.
- Parameters:
this :: [in] This reconstruction
h :: [in] Grid spacing (thickness) [typically H]
u :: [in] Cell mean values [A]
-
function
recon1d_ppm_cw/unit_tests(this, verbose, stdout, stderr) [logical]¶ Runs PPM_CW reconstruction unit tests and returns True for any fails, False otherwise.
- Parameters:
this :: [inout] This reconstruction
verbose :: [in] True, if verbose
stdout :: [in] I/O channel for stdout
stderr :: [in] I/O channel for stderr