recon1d_plm_cw module reference

Piecewise Linear Method 1D reconstruction.

More…

Data Types

plm_cw

PLM reconstruction following Colella and Woodward, 1984.

Functions/Subroutines

init()

Initialize a 1D PLM reconstruction for n cells.

reconstruct()

Calculate a 1D PLM reconstructions based on h(:) and u(:)

f()

Value of PLM_CW reconstruction at a point in cell k [A].

dfdx()

Derivative of PLM_CW reconstruction at a point in cell k [A].

average()

Average between xa and xb for cell k of a 1D PLM reconstruction [A].

destroy()

Deallocate the PLM reconstruction.

check_reconstruction()

Checks the PLM_CW reconstruction for consistency.

unit_tests()

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