pqm_functions module reference

Piecewise quartic reconstruction functions.

More…

Functions/Subroutines

pqm_reconstruction()

Reconstruction by quartic polynomials within each cell.

pqm_limiter()

Limit the piecewise quartic method reconstruction.

pqm_boundary_extrapolation()

Reconstruction by parabolas within boundary cells.

pqm_boundary_extrapolation_v1()

Reconstruction by parabolas within boundary cells.

Detailed Description

Date of creation: 2008.06.06 L. White.

This module contains routines that handle one-dimensional finite volume reconstruction using the piecewise quartic method (PQM).

Function/Subroutine Documentation

subroutine pqm_functions/pqm_reconstruction(N, h, u, edge_values, edge_slopes, ppoly_coef, h_neglect, answer_date)

Reconstruction by quartic polynomials within each cell.

It is assumed that the dimension of ‘u’ is equal to the number of cells defining ‘grid’ and ‘ppoly’. No consistency check is performed.

Parameters:
  • n :: [in] Number of cells

  • h :: [in] cell widths (size N) [H]

  • u :: [in] cell averages (size N) [A]

  • edge_values :: [inout] Edge value of polynomial [A]

  • edge_slopes :: [inout] Edge slope of polynomial [A H-1]

  • ppoly_coef :: [inout] Coefficients of polynomial, mainly [A]

  • h_neglect :: [in] A negligibly small width for the purpose of cell reconstructions [H]

  • answer_date :: [in] The vintage of the expressions to use

Call to:

pqm_limiter

Called from:

mom_remapping::build_reconstructions_1d regrid_interp::regridding_set_ppolys

subroutine pqm_functions/pqm_limiter(N, h, u, edge_values, edge_slopes, h_neglect, answer_date)

Limit the piecewise quartic method reconstruction.

Standard PQM limiter (White & Adcroft, JCP 2008).

It is assumed that the dimension of ‘u’ is equal to the number of cells defining ‘grid’ and ‘ppoly’. No consistency check is performed.

Parameters:
  • n :: [in] Number of cells

  • h :: [in] cell widths (size N) [H]

  • u :: [in] cell average properties (size N) [A]

  • edge_values :: [inout] Potentially modified edge values [A]

  • edge_slopes :: [inout] Potentially modified edge slopes [A H-1]

  • h_neglect :: [in] A negligibly small width for the purpose of cell reconstructions [H]

  • answer_date :: [in] The vintage of the expressions to use

Call to:

regrid_edge_values::bound_edge_values regrid_edge_values::check_discontinuous_edge_values hneglect_dflt

Called from:

pqm_reconstruction

subroutine pqm_functions/pqm_boundary_extrapolation(N, h, u, edge_values, ppoly_coef)

Reconstruction by parabolas within boundary cells.

The following explanations apply to the left boundary cell. The same reasoning holds for the right boundary cell.

A parabola needs to be built in the cell and requires three degrees of freedom, which are the right edge value and slope and the cell average. The right edge values and slopes are taken to be that of the neighboring cell (i.e., the left edge value and slope of the neighboring cell). The resulting parabola is not necessarily monotonic and the traditional PPM limiter is used to modify one of the edge values in order to yield a monotonic parabola.

It is assumed that the size of the array ‘u’ is equal to the number of cells defining ‘grid’ and ‘ppoly’. No consistency check is performed here.

Parameters:
  • n :: [in] Number of cells

  • h :: [in] cell widths (size N) [H]

  • u :: [in] cell averages (size N) [A]

  • edge_values :: [inout] Edge value of polynomial [A]

  • ppoly_coef :: [inout] Coefficients of polynomial, mainly [A]

subroutine pqm_functions/pqm_boundary_extrapolation_v1(N, h, u, edge_values, edge_slopes, ppoly_coef, h_neglect)

Reconstruction by parabolas within boundary cells.

The following explanations apply to the left boundary cell. The same reasoning holds for the right boundary cell.

A parabola needs to be built in the cell and requires three degrees of freedom, which are the right edge value and slope and the cell average. The right edge values and slopes are taken to be that of the neighboring cell (i.e., the left edge value and slope of the neighboring cell). The resulting parabola is not necessarily monotonic and the traditional PPM limiter is used to modify one of the edge values in order to yield a monotonic parabola.

It is assumed that the size of the array ‘u’ is equal to the number of cells defining ‘grid’ and ‘ppoly’. No consistency check is performed here.

Parameters:
  • n :: [in] Number of cells

  • h :: [in] cell widths (size N) [H]

  • u :: [in] cell averages (size N) [A]

  • edge_values :: [inout] Edge value of polynomial [A]

  • edge_slopes :: [inout] Edge slope of polynomial [A H-1]

  • ppoly_coef :: [inout] Coefficients of polynomial, mainly [A]

  • h_neglect :: [in] A negligibly small width for the purpose of cell reconstructions [H]

Call to:

hneglect_dflt

Called from:

mom_remapping::build_reconstructions_1d regrid_interp::regridding_set_ppolys