#include <cmath>
#include <functional>
#include "peclet/amr/common.hpp"
#include "peclet/amr/fv_op.hpp"
#include "peclet/amr/multigrid.hpp"
#include "peclet/core/common/view.hpp"
#include "peclet/core/solver/vector_ops.hpp"
Go to the source code of this file.
|
| double | peclet::amr::dotVol (View< const double > u, View< const double > v, View< const double > invVol, Index n) |
| | Volume-weighted dot <u,v>_D = Σ_i V_i u_i v_i, V_i = 1/invVol_i.
|
| |
| void | peclet::amr::buildFluidMask (const FvOp &op, View< double > mask, Index n) |
| | Build the fluid mask: mask(i)=1 where the operator diagonal Σ_f w_f (+ bcDiag) is non-trivial, 0 for a solid cell (every face closed by the cut-cell openness ⇒ Σ w_f = 0).
|
| |
| void | peclet::amr::maskSolid (View< double > u, View< const double > mask, Index n) |
| | Zero the solid cells (project out the solid null modes).
|
| |
| void | peclet::amr::removeMeanVolReduced (View< double > u, View< const double > invVol, View< const double > mask, Index n, const std::function< double(double)> &reduce) |
| | Project u onto the FLUID range: zero solid cells, then subtract the volume-weighted mean over the fluid cells only (the constant null mode of the connected fluid region).
|
| |
| void | peclet::amr::removeMeanVol (View< double > u, View< const double > invVol, View< const double > mask, Index n) |
| |