Compute states using piece-wise linear interpolation. More...
#include "pluto.h"
Functions | |
void | States (const State_1D *state, int beg, int end, Grid *grid) |
Provide piece-wise linear reconstruction inside each cell using primitive or characteristic variables. Note that vL and vR are left and right states with respect to the interface, while vm and vp refer to the cell center:
vL(i)-> <-vR(i) |----------*----------|----------*----------| <-vm(i) (i) vp(i)-> (i+1)
The default setting (LIMITER == DEFAULT) applies a different limiter to each variable:
Otherwise the same limiter can be imposed to all variables from definitions.h. Slope limiters are function of left, right and centered slopes, limiter=f(dp, dc, dm).
In non-cartesian geometries, function values are defined on the geometrical centers thus giving an effective non-uniform grid spacing even if zones are equidistant. This is implemented, at the moment, only for cylindrical geometry. In this case, limiters use the divided difference and an extra monotonicity constraint is added just before constructing the states. Assuming a monotonically increasing sequence of values,
In the general case, .
A stencil of 3 zones is required for all limiters except for the FOURTH_ORDER_LIM which requires 5 zones.