|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
WO-P3g item 2 — the Gibou–Fedkiw second-order one-sided (ghost-fluid) row. More...
#include <phase_change.hpp>
Public Attributes | |
| double | aGamma |
coefficient of (T_Gamma - T_i), times k_f o_f | |
| double | aBehind |
coefficient of (T_behind - T_i), times that face's own k_f o_f | |
WO-P3g item 2 — the Gibou–Fedkiw second-order one-sided (ghost-fluid) row.
The shipped row is a TWO-POINT difference: for a pure cell i whose neighbour across the face is interfacial, the face's interior coupling k o (T_j - T_i) is replaced by k o (T_Gamma - T_i)/theta, i.e. the whole axis contributes
(1/theta)(T_Gamma - T_i) + 1 * (T_behind - T_i)
with T_behind the cell one step AWAY from the interface along the same axis. That is a first-order approximation of d2T/dx2 unless theta = 1, and WO-P3f measured its cost on a FLAT interface where nothing else is wrong: the flux the rows draw is −17 % at a 2.4-cell thermal layer and −5 % at 8 cells.
The repair is the standard non-uniform three-point second difference through (T_behind, T_i, T_Gamma) at spacings (h, theta h) — Gibou et al., JCP 176:205 (2002):
d2T/dx2 = 2/(h_L + h_R) [ (T_R - T_i)/h_R - (T_i - T_L)/h_L ]
= 2/((1 + theta) theta) (T_Gamma - T_i) + 2/(1 + theta) (T_behind - T_i) (h = 1)
so the COEFFICIENT FAMILY is a_Gamma = 2/((1+theta) theta), a_behind = 2/(1+theta), against the shipped (1/theta, 1). It reproduces a QUADRATIC profile EXACTLY (the three-point divided difference 2 f[x_L, x_i, x_R] is exact for quadratics at any spacing), it reduces to the interior row at theta = 1 bitwise (2/2 = 1 both), and it is bounded over the shipped clamp theta in [0.1, 1.9]: a_Gamma in [0.363, 18.18], a_behind in [0.690, 1.818]. The row is NON-SYMMETRIC (cell behind does not carry the mirror coefficient) but remains strictly diagonally dominant, which is all the red–black Gauss–Seidel smoother needs.
behind == false — the cell one step away is itself interfacial, or that face is CLOSED, so there is no third point — falls back to the shipped two-point row. This is Gibou's own rule for a stencil that cannot reach a second usable node, and it is also what the theta -> 0 clamp leaves bounded.
Definition at line 521 of file phase_change.hpp.
| double peclet::flow::vof::PcGfmRow::aGamma |
coefficient of (T_Gamma - T_i), times k_f o_f
Definition at line 522 of file phase_change.hpp.
| double peclet::flow::vof::PcGfmRow::aBehind |
coefficient of (T_behind - T_i), times that face's own k_f o_f
Definition at line 523 of file phase_change.hpp.