MOM6
|
Piecewise linear reconstruction functions.
Date of creation: 2008.06.06 L. White
This module contains routines that handle one-dimensionnal finite volume reconstruction using the piecewise linear method (PLM).
Functions/Subroutines | |
subroutine, public | plm_reconstruction (N, h, u, ppoly_E, ppoly_coef, h_neglect) |
Reconstruction by linear polynomials within each cell. More... | |
subroutine, public | plm_boundary_extrapolation (N, h, u, ppoly_E, ppoly_coef, h_neglect) |
Reconstruction by linear polynomials within boundary cells. More... | |
Variables | |
real, parameter | hneglect_dflt = 1.E-30 |
Default negligible cell thickness. More... | |
subroutine, public plm_functions::plm_boundary_extrapolation | ( | integer, intent(in) | N, |
real, dimension(:), intent(in) | h, | ||
real, dimension(:), intent(in) | u, | ||
real, dimension(:,:), intent(inout) | ppoly_E, | ||
real, dimension(:,:), intent(inout) | ppoly_coef, | ||
real, intent(in), optional | h_neglect | ||
) |
Reconstruction by linear polynomials within boundary cells.
The left and right edge values in the left and right boundary cells, respectively, are estimated using a linear extrapolation within the cells.
This extrapolation is EXACT when the underlying profile is linear.
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.
[in] | n | Number of cells |
[in] | h | cell widths (size N) |
[in] | u | cell averages (size N) |
[in,out] | ppoly_e | edge values of piecewise polynomials, with the same units as u. |
[in,out] | ppoly_coef | coefficients of piecewise polynomials, mainly with the same units as u. |
[in] | h_neglect | A negligibly small width for the purpose of cell reconstructions in the same units as h |
Definition at line 206 of file PLM_functions.F90.
References hneglect_dflt.
Referenced by mom_remapping::build_reconstructions_1d(), mom_ale::pressure_gradient_plm(), and regrid_interp::regridding_set_ppolys().
subroutine, public plm_functions::plm_reconstruction | ( | integer, intent(in) | N, |
real, dimension(:), intent(in) | h, | ||
real, dimension(:), intent(in) | u, | ||
real, dimension(:,:), intent(inout) | ppoly_E, | ||
real, dimension(:,:), intent(inout) | ppoly_coef, | ||
real, intent(in), optional | h_neglect | ||
) |
Reconstruction by linear polynomials within each cell.
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.
[in] | n | Number of cells |
[in] | h | cell widths (size N) |
[in] | u | cell averages (size N) |
[in,out] | ppoly_e | edge values of piecewise polynomials, with the same units as u. |
[in,out] | ppoly_coef | coefficients of piecewise polynomials, mainly with the same units as u. |
[in] | h_neglect | A negligibly small width for the purpose of cell reconstructions in the same units as h |
Definition at line 19 of file PLM_functions.F90.
References hneglect_dflt.
Referenced by mom_remapping::build_reconstructions_1d(), mom_ale::pressure_gradient_plm(), regrid_interp::regridding_set_ppolys(), and mom_remapping::remapping_unit_tests().
|
private |
Default negligible cell thickness.
Definition at line 10 of file PLM_functions.F90.
Referenced by plm_boundary_extrapolation(), and plm_reconstruction().