Reconstruction

Aether.Reconstruction.PLMType
struct PLM <: Aether.Reconstruction.ReconstructionScheme
PLM()

Second-order piecewise-linear reconstruction with the monotonized van Leer limiter (the harmonic mean of the one-sided differences).

source
Aether.Reconstruction.PPMType
struct PPM <: Aether.Reconstruction.ReconstructionScheme
PPM()

Third-order piecewise-parabolic reconstruction (Colella & Woodward 1984) with the original CW monotonized limiter, which clips to donor cell at extrema — the classic robust choice for strong shocks.

source
Aether.Reconstruction.PPM5Type
struct PPM5 <: Aether.Reconstruction.ReconstructionScheme
PPM5()

Piecewise-parabolic reconstruction with fifth-order candidate edges: the five-point upwind-biased interface interpolant limited by the unmodified Colella & Woodward monotonization of PPM. The limited face values always lie in the hull of the three neighboring cell averages — the same reachable set as PPM, hence the same robustness envelope (unlike WENOZ-family and MP-type schemes, whose face values can leave the hull) — while the value chosen inside that interval is fifth-order accurate wherever the flow is smooth and monotone. Clips at extrema exactly like PPM.

source
Aether.Reconstruction.WENOZType
struct WENOZ <: Aether.Reconstruction.ReconstructionScheme
WENOZ()

Fifth-order weighted essentially non-oscillatory reconstruction with WENO-Z weights (Borges et al. 2008): sharper at discontinuities than classic WENO-JS and full order at smooth critical points. Essentially non-oscillatory rather than strictly monotone — small overshoots at strong shocks are possible.

source
Aether.Reconstruction.WENOZPPType
struct WENOZPP <: Aether.Reconstruction.ReconstructionScheme
WENOZPP()

Fifth-order WENO-Z reconstruction (WENOZ) made positivity preserving by a Zhang & Shu (2010) scaling limiter. After the WENO-Z edge values are formed, each reconstructed fluid state is rescaled linearly toward its (positive) cell average by the largest factor θ ∈ [0, 1] that keeps the reconstructed density and internal energy above a small fraction of the cell mean, so the reconstruction cannot hand a negative density or pressure to the Riemann solver. θ = 1 (untouched) wherever both stay positive, so the scheme is fifth-order in smooth flow and clips only at the strong rarefactions where bare WENOZ would overshoot below zero; the limiter is confined to the reconstruction and needs no extra ghost cells (same stencil as WENOZ). The magnetic field carries no sign for the rescale to act on, and its WENO-Z overshoots can excite a constrained-transport instability, so it is reconstructed with the monotone PPM limiter instead; the fluid stays fifth-order.

source
Aether.Reconstruction.WENOAOType
struct WENOAO <: Aether.Reconstruction.ReconstructionScheme
WENOAO()

Fifth-order adaptive-order WENO-AO(5,3) reconstruction (Balsara, Garain & Shu 2016): a nonlinear hybrid of the full fifth-order quartic on the five-cell stencil with three third-order sub-stencils. Where the large stencil is smooth the quartic is recovered — fifth order through ordinary extrema (f″ ≠ 0), where PPM clips and MP-type limiters engage — and where it is not, the scheme degrades to a genuine third-order WENO of the sub-stencils instead of an oscillatory blend; higher-order critical points (f′ = f″ = 0) land on that third-order fallback rather than dropping to first order. Essentially non-oscillatory rather than strictly monotone.

source
Aether.Reconstruction.WENOAOPPType
struct WENOAOPP <: Aether.Reconstruction.ReconstructionScheme
WENOAOPP()

Fifth-order WENO-AO(5,3) reconstruction (WENOAO) made positivity preserving exactly as WENOZPP is: reconstructed fluid states are rescaled toward the (positive) cell average by the Zhang & Shu (2010) limiter so density and internal energy stay positive, and the magnetic field is reconstructed with the monotone PPM limiter. Same stencil as WENOAO, no extra ghost cells.

source
Aether.Reconstruction.nghostFunction
nghost(_::DonorCell) -> Int64

Ghost cells the scheme's stencil reaches: faces is:ie+1 read cells is - nghost : ie + nghost. nghost(scheme) ≤ mesh.ng is validated at simulation assembly.

using Aether

nghost(PLM())

# output
2
source