New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
README.md in vendors/PPR – NEMO

source: vendors/PPR/README.md

Last change on this file was 13926, checked in by jchanut, 3 years ago

#2222, add Piecewise Polynomial Reconstruction library

File size: 2.8 KB
Line 
1
2## `PPR: Piecewise Polynomial Reconstruction`
3
4<p align="center">
5 <img src="../master/img/shear-1.png"> &nbsp &nbsp
6 <img src="../master/img/shear-2.png"> &nbsp &nbsp
7 <img src="../master/img/shear-3.png">
8</p>
9
10The `PPR` package is a `Fortran-90` library designed to compute high-order piecewise polynomial reconstructions and conservative integral re-mappings on structured grids. These operators can be used to build high-order finite-volume / arbitrary lagrangian-eulerian `ALE` schemes for the solution of hyperbolic transport problems.
11
12Various conservative polynomial reconstructions are supported, including piecewise constant `PCM`, linear `PLM`, parabolic `PPM` and quartic `PQM` types. Each interpolant can be combined with a selection of slope-limiters, including exact monotonicity-preserving and weighted essential non-oscillatory `WENO`-like formulations. Support is provided for both uniform and non-uniform structured grid types.
13
14## `Getting Started`
15
16The `PPR` package is encapsulated in a single module: `ppr_1d` --- defining interfaces to the main reconstruction and re-mapping routines `rcon1d` and `rmap1d`. To call `PPR`, simply `#include ../src/ppr_1d.f90` and compile with the `-cpp` flag.
17
18See the example programs for additional detail.
19
20## `Example cases`
21
22A set of simple example programs are provided in the `../example` directory. See the various inline comments for a detailed description of `PPR` functionality, data-structures, etc.
23````
24ex_1.f90 ! a simple, analytical unit test
25ex_2.f90 ! impose monotone slope limiting
26ex_3.f90 ! a smooth profile used for convergence tests
27ex_4.f90 ! multi-tracer re-mapping
28ex_5.f90 ! building high-order interpolants
29ex_6.f90 ! flux-form semi-lagrangian transport (in 1d)
30````
31
32## `License`
33
34This program may be freely redistributed under the condition that the copyright notices (including this entire header) are not removed, and no compensation is received through use of the software. Private, research, and institutional use is free. You may distribute modified versions of this code `UNDER THE CONDITION THAT THIS CODE AND ANY MODIFICATIONS MADE TO IT IN THE SAME FILE REMAIN UNDER COPYRIGHT OF THE ORIGINAL AUTHOR, BOTH SOURCE AND OBJECT CODE ARE MADE FREELY AVAILABLE WITHOUT CHARGE, AND CLEAR NOTICE IS GIVEN OF THE MODIFICATIONS`. Distribution of this code as part of a commercial system is permissible `ONLY BY DIRECT ARRANGEMENT WITH THE AUTHOR`. (If you are not directly supplying this code to a customer, and you are instead telling them how they can obtain it for free, then you are not required to make any arrangement with me.)
35
36`DISCLAIMER`: Neither I nor: Columbia University, the National Aeronautics and Space Administration, nor the Massachusetts Institute of Technology warrant or certify this code in any way whatsoever.  This code is provided "as-is" to be used at your own risk.
37
38
39
Note: See TracBrowser for help on using the repository browser.