recon1d_ppm_h4_2018 module reference

Piecewise Parabolic Method 1D reconstruction with h4 interpolation for edges (2018 version)

More…

Data Types

ppm_h4_2018

PPM reconstruction following White and Adcroft, 2008.

Functions/Subroutines

reconstruct()

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

unit_tests()

Runs PPM_H4_2018 reconstruction unit tests and returns True for any fails, False otherwise.

Detailed Description

This implementation of PPM follows White and Adcroft 2008 white2008, with cells resorting to PCM for extrema including first and last cells in column. This scheme differs from Colella and Woodward, 1984 colella1984, in the method of first estimating the fourth-order accurate edge values. This uses numerical expressions that predate a 2019 refactoring. The first and last cells are always limited to PCM.

Type Documentation

type recon1d_ppm_h4_2018/ppm_h4_2018

PPM reconstruction following White and Adcroft, 2008.

Type fields:
  • % reconstruct [procedure,private] :: Implementation of the PPM_H4_2018 reconstruction.

  • % unit_tests [procedure,private] :: Implementation of unit tests for the PPM_H4_2018 reconstruction.

Function/Subroutine Documentation

subroutine recon1d_ppm_h4_2018/reconstruct(this, h, u)

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

Parameters:
  • this :: [inout] This reconstruction

  • h :: [in] Grid spacing (thickness) [typically H]

  • u :: [in] Cell mean values [A]

Call to:

regrid_edge_values::bound_edge_values regrid_edge_values::check_discontinuous_edge_values regrid_solvers::solve_linear_system

function recon1d_ppm_h4_2018/unit_tests(this, verbose, stdout, stderr) [logical]

Runs PPM_H4_2018 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