|
flow 0.4.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
flow — Design B of the fluid-only collocated constraint (route 2b): Kron (star-mesh) elimination of solid-centered pressure DOFs from the aperture Poisson graph. More...
Go to the source code of this file.
Classes | |
| struct | peclet::flow::StarOverlay |
| One entry per eliminated solid-centered cell: packed INNER flat index + the apertures of its (up to 6) faces to FLUID-CENTERED axis neighbours (order: +x,-x,+y,-y,+z,-z; 0 where the neighbour is solid-centered or the face is closed). More... | |
Namespaces | |
| namespace | peclet |
| namespace | peclet::flow |
Functions | |
| StarOverlay | peclet::flow::starMakeOverlay (long n) |
| int | peclet::flow::starWrap (int v, int n) |
| int | peclet::flow::buildStarOverlay (CCConst sdf, CCConst ox, CCConst oy, CCConst oz, C3 ext, int g, C3 nn, const StarOverlay &ov, Kokkos::View< int, CCMem > counter) |
| Count + fill the star overlay from the cell-centered sdf and the ORIGINAL (unfiltered) apertures on the extended block (ext, ghost width g); nn = inner extents. | |
| void | peclet::flow::starApplyDelta (CCField y, CCConst x, const StarOverlay &ov, int nOv, C3 nn, C3 extY, int gY, C3 extX, int gX) |
| y += S_star x over the inner cells of the (extY, gY) block, x read from the (extX, gX) block, both periodic via inner-grid wrap. | |
| void | peclet::flow::starCorrectFaces (CCField uf, CCField vf, CCField wf, CCConst phi, const StarOverlay &ov, int nOv, C3 nn, C3 ext, int g, C3 extP, int gP) |
| Fix the face correction at fluid|solid faces: projectCorrect applied -(phi_hi - phi_lo) with the solid side's (decoupled) phi = 0; the mode-B correction wants the solid value phibar_s. | |
flow — Design B of the fluid-only collocated constraint (route 2b): Kron (star-mesh) elimination of solid-centered pressure DOFs from the aperture Poisson graph.
Each solid-centered cell s with aperture-open faces to fluid-centered axis neighbours j is eliminated by the conductance-weighted average phibar_s = sum_j w_j phi_j, w_j = a_sj / D_s, D_s = sum_j a_sj — the unique weights for which the eliminated operator is SYMMETRIC (coupling a_si a_sj / D_s), and equivalently the least-squares value of phi_s in the aperture metric. The full operator is A_B = A_filtered + S_star, A_filtered = 7-point cut-cell op on the FILTERED openness (faces with a solid-centered side closed — Design A's operator, which also feeds the MG hierarchy as the symmetric preconditioner), (S_star x)_i = sum_s a_si (x_i - phibar_s(x)) [same sign convention as applyCutcellOp], S_star is PSD (phi^T S phi = sum_s D_s Var_w(phi) >= 0), so A_B is SPD and MG-PCG applies with the filtered hierarchy as surrogate preconditioner (the ghost projection's overlay pattern, but symmetric). The divergence keeps the ORIGINAL apertures on fluid rows (throat flux is counted), solid rows are dropped from the constraint (their rhs is masked; their phi stays 0), and the face correction at a fluid|solid face uses (phibar_s - phi_i) so fluid control volumes end exactly divergence-free — operator == correction by construction. See doc/fluid_only_constraint_plan.md. v1: single-rank, periodic+IBM, collocated only.
Definition in file star_elimination.hpp.