recon1d_plm_cw module reference¶
Piecewise Linear Method 1D reconstruction.
Data Types¶
PLM reconstruction following Colella and Woodward, 1984. |
Functions/Subroutines¶
Initialize a 1D PLM reconstruction for n cells. |
|
Calculate a 1D PLM reconstructions based on h(:) and u(:) |
|
Value of PLM_CW reconstruction at a point in cell k [A]. |
|
Derivative of PLM_CW reconstruction at a point in cell k [A]. |
|
Average between xa and xb for cell k of a 1D PLM reconstruction [A]. |
|
Deallocate the PLM reconstruction. |
|
Checks the PLM_CW reconstruction for consistency. |
|
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
Detailed Description¶
This implementation of PLM follows Colella and Woodward, 1984 [17], with cells resorting to PCM for extrema including the first and last cells in column. The cell-wise reconstructions are limited so that the edge values (which are also the extrema in a cell) are bounded by the neighboring cell means. This does not yield monotonic profiles for the general remapping problem.
Type Documentation¶
-
type
recon1d_plm_cw/plm_cw¶ PLM reconstruction following Colella and Woodward, 1984.
- Type fields:
%ul[real(:),allocatable, private] :: Left edge value [A].%ur[real(:),allocatable, private] :: Right edge value [A].%init[procedure,private] :: Implementation of the PLM_CW initialization.%reconstruct[procedure,private] :: Implementation of the PLM_CW reconstruction.%average[procedure,private] :: Implementation of the PLM_CW average over an interval [A].%f[procedure,private] :: Implementation of evaluating the PLM_CW reconstruction at a point [A].%dfdx[procedure,private] :: Implementation of the derivative of the PLM_CW reconstruction at a point [A].%destroy[procedure,private] :: Implementation of deallocation for PLM_CW.%check_reconstruction[procedure,private] :: Implementation of check reconstruction for the PLM_CW reconstruction.%unit_tests[procedure,private] :: Implementation of unit tests for the PLM_CW reconstruction.%init_parent[procedure,private] :: Duplicate interface to%reconstruct_parent[procedure,private] :: Duplicate interface to
Function/Subroutine Documentation¶
-
subroutine
recon1d_plm_cw/init(this, n, h_neglect, check)¶ Initialize a 1D PLM 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_plm_cw/reconstruct(this, h, u)¶ Calculate a 1D PLM 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_plm_cw/f(this, k, x) [real]¶ Value of PLM_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_plm_cw/dfdx(this, k, x) [real]¶ Derivative of PLM_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_plm_cw/average(this, k, xa, xb) [real]¶ Average between xa and xb for cell k of a 1D PLM 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_plm_cw/destroy(this)¶ Deallocate the PLM reconstruction.
- Parameters:
this :: [inout] This reconstruction
-
function
recon1d_plm_cw/check_reconstruction(this, h, u) [logical]¶ Checks the PLM_CW reconstruction for consistency.
- Parameters:
this :: [in] This reconstruction
h :: [in] Grid spacing (thickness) [typically H]
u :: [in] Cell mean values [A]
-
function
recon1d_plm_cw/unit_tests(this, verbose, stdout, stderr) [logical]¶ Runs PLM 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