diff --git a/Docs/source/Projections.rst b/Docs/source/Projections.rst index b774abe6a..f377d67da 100644 --- a/Docs/source/Projections.rst +++ b/Docs/source/Projections.rst @@ -116,6 +116,8 @@ and multigrid properties if needed. Details of the linear solver implementations are in the :ref:`amrex:Chap:LinearSolvers` section of AMReX's documentation. +.. _projections_inputs: + Both Projector classes provide the following parameters, which can be set in an inputs file or on the command line. For the MacProjector, these must be preceeded by "mac_proj.", or for the NodalProjector, "nodal_proj." diff --git a/Docs/source/Slopes.rst b/Docs/source/Slopes.rst index 6c1027765..dbd651126 100644 --- a/Docs/source/Slopes.rst +++ b/Docs/source/Slopes.rst @@ -3,15 +3,54 @@ Slopes ------ -AMReX-Hydro includes implementations of several different slope routines along with options to apply limiters. +AMReX-Hydro's implementation of the piecewise linear method provides several options, and +leverages slopes routines from AMReX. For cells where this calculation would involve all regular cells (i.e. no cut or covered cells), -there are second-order and fourth-order stencils. +there are second-order and fourth-order stencils along with options to apply limiters. +Note that the piecewise parabolic and BDS methods have their own routines for formulating slopes +(and these are housed within AMReX-Hydro). For (EB)Godunov, the default is monotonicity-limited fourth-order slopes. -For (EB)MOL, the default is monotonicity-limited second-order slopes. Default limiting is as described in Colella (1985) :cite:`colglaz`, where limiting is done on each component of the velocity individually. +For (EB)MOL, the default is monotonicity-limited second-order slopes. +Default is the second order Monotonized Central (MC) +limiter (van Leer, 1977 :cite:`vanleer`), where limiting is applied direction by direction. + +.. The scheme is described below for the u-velocity. + + The limiter computes the slope at cell `i` by combining the left, central + and right u-variation `du`: + + .. code:: shell + + du_l = u(i) - u(i-1) = left variation + du_c = 0.5 * ( u(i+1) - u(i-1) ) = central (umlimited) variation + du_r = u(i+1) - u(i) = right variation + + Finally, the u-variation at cell `i` is given by : + + .. code:: shell + + du(i) = sign(du_c) * min(2|du_l|, |du_c|, 2|du_r|)) if du_l*du_r > 0 + du(i) = 0 otherwise + + + +NOTE ON BOUNDARY CONDITIONS: + +When periodic or Neumann BCs are imposed, schemes can be applied +without any change since the ghost cells outside the domain are filled +by either periodicity or by extrapolation. + +For Dirichlet BCs, the BC value stored in the first ghost cell outside the domain +is considered as located directly on the boundary, +despite the fact that it is stored in what is otherwise considered a cell-centered +array. We then utilize one-sided differencing schemes that +use ONLY values from inside or on the domain boundary. + + .. _EBslopes: diff --git a/Docs/source/refs.bib b/Docs/source/refs.bib index 003bd206e..8d225cbce 100644 --- a/Docs/source/refs.bib +++ b/Docs/source/refs.bib @@ -138,6 +138,20 @@ @article{br-refine publisher={IEEE} } +@article{vanleer, + title = {Towards the ultimate conservative difference scheme. IV. A new approach to numerical convection}, + journal = {Journal of Computational Physics}, + volume = {23}, + number = {3}, + pages = {276-299}, + year = {1977}, + issn = {0021-9991}, + doi = {https://doi.org/10.1016/0021-9991(77)90095-X}, + url = {https://www.sciencedirect.com/science/article/pii/002199917790095X}, + author = {Bram {Van Leer}}, + abstract = {An approach to numerical convection is presented that exclusively yields upstream-centered schemes. It starts from a meshwise approximation of the initial-value distribution by simple basic functions, e.g., Legendre polynomials. In every mesh the integral of the distribution is conserved. The overall approximation need not be continuous. The approximate distribution is convected explicitly and then remapped meshwise in terms of the basic functions. The weights of the basic functions that approximate the initial values in a mesh may be determined by finite differencing, but the most accurate schemes are obtained by least-squares fitting. In the latter schemes, the weights of the basic functions must be regarded as independent state quantities and must be stored separately. Examples of second-order and third-order schemes are given, and the accuracy of these schemes is discussed. Several monotonicity algorithms, designed to prevent numerical oscillations, are indicated. Numerical examples are given of linear and nonlinear wave propagation, also regarding monotonicity.} +} + @ARTICLE{colglaz, author = {{Colella}, P. and {Glaz}, H.~M.}, title = "{Efficient solution algorithms for the Riemann problem