peclet-amr 0.2.0
Block-local-Morton AMR octree + collocated cut-cell Navier–Stokes solver (header-only C++20, Kokkos + MPI)
Loading...
Searching...
No Matches
pcg.hpp File Reference
#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.

Classes

class  peclet::amr::PCG< Dim, Bits >
 
struct  peclet::amr::PCG< Dim, Bits >::Result
 

Namespaces

namespace  peclet
 
namespace  peclet::amr
 

Functions

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)