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 [87], with cells resorting to PCM for extrema including first and last cells in column. This scheme differs from Colella and Woodward, 1984 [17], 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