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 colella1984, 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