core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
Loading...
Searching...
No Matches
multigrid.hpp File Reference
#include <cmath>
#include <memory>
#include <utility>
#include <vector>
#include "peclet/core/amr/assembly.hpp"
#include "peclet/core/amr/block_octree.hpp"
#include "peclet/core/amr/fv_op.hpp"
#include "peclet/core/amr/poisson.hpp"
#include "peclet/core/common/view.hpp"

Go to the source code of this file.

Classes

class  peclet::core::amr::Multigrid< Dim, Bits >
 

Namespaces

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

Functions

void peclet::core::amr::restrictField (View< const Index > childStart, View< const Index > childIdx, View< const double > fine, View< double > coarse, Index nCoarse)
 Restrict: coarse(p) = mean over p's children (CSR fixed order ⇒ deterministic).
 
void peclet::core::amr::restrictKappa (View< const Index > childStart, View< const Index > childIdx, View< const double > fine, View< const double > kappa, View< double > coarse, Index nCoarse)
 Restrict, κ-weighted: coarse(p) = Σ_child κ_c·fine_c / Σ_child κ_c, with κ the fine cell's fluid-fraction weight (mean face aperture).
 
void peclet::core::amr::prolongAdd (View< const Index > c2p, View< const double > coarse, View< double > fine, Index nFine)
 Prolong (piecewise-constant) + correct: fine(i) += coarse(c2p(i)).
 
void peclet::core::amr::prolongAddMasked (View< const Index > c2p, View< const double > coarse, View< const char > excl, View< double > fine, Index nFine)
 Masked piecewise-constant prolong + correct: fine(i) += coarse(c2p(i)) only on non-excluded fine cells (mirrors flow VelocityMG::prolongMasked — no correction into a cut/solid cell).
 
void peclet::core::amr::zeroMasked (View< double > v, View< const char > excl, Index n)
 Zero v at excluded cells (excl != 0).