core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
Loading...
Searching...
No Matches
pcg.hpp File Reference

Go to the source code of this file.

Classes

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

Namespaces

namespace  peclet
 
namespace  peclet::core
 
namespace  peclet::core::amr
 

Functions

double peclet::core::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::core::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::core::amr::maskSolid (View< double > u, View< const double > mask, Index n)
 Zero the solid cells (project out the solid null modes).
 
void peclet::core::amr::removeMeanVol (View< double > u, View< const double > invVol, View< const double > mask, Index n)
 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::core::amr::axpy (View< double > y, double a, View< const double > x, Index n)
 y += a·x
 
void peclet::core::amr::zpby (View< double > p, View< const double > z, double b, Index n)
 p = z + b·p (CG direction update)
 
void peclet::core::amr::negate (View< double > x, Index n)
 y = −x (negate in place)