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
mg_predict.hpp File Reference
#include <algorithm>
#include <cstddef>
#include <string>
#include <vector>
#include "peclet/amr/common.hpp"
#include "peclet/core/decomp/block_decomposer.hpp"
#include "peclet/core/decomp/stage_target.hpp"

Go to the source code of this file.

Classes

struct  peclet::amr::PressureStagePolicy
 Which stage the distributed pressure ladder uses where its in-place lift blocks (docs/amr_mg_depth.md §5.6, WO4b; docs/amr_mg_core_boundary.md §11.1, §9.6, §9.7). More...
 
struct  peclet::amr::MgLevelPrediction< Dim >
 One predicted level of the pressure ladder (docs/amr_mg_depth.md §6.7). More...
 
struct  peclet::amr::MgLadderPrediction< Dim >
 The whole predicted ladder: what predictPressureLadder returns and what peclet.amr.predict_hierarchy hands to Python as a dict. More...
 

Namespaces

namespace  peclet
 
namespace  peclet::amr
 
namespace  peclet::amr::detail
 

Enumerations

enum class  peclet::amr::MgLevelKind {
  peclet::amr::Octree , peclet::amr::Lifted , peclet::amr::Tail , peclet::amr::Sibling ,
  peclet::amr::Repartition
}
 Where a predicted level comes from. More...
 
enum class  peclet::amr::MgBottomKind { peclet::amr::Jacobi , peclet::amr::Amg }
 What solves the coarsest level. More...
 

Functions

template<int Dim>
bool peclet::amr::amrStageLiftable (const core::decomp::BlockDecomposer< Dim > &dec)
 amr's lift rule (docs/amr_mg_depth.md §6.2) as core's stage predicate: the level grid halves into a cube level with at least two cells per axis, and every block is even in origin and size on EVERY axis.
 
const char * peclet::amr::toString (MgLevelKind k)
 
const char * peclet::amr::toString (MgBottomKind k)
 
template<int Dim>
Index peclet::amr::detail::maxExtent (const IVec< Dim > &G)
 
template<int Dim>
bool peclet::amr::detail::gridCanHalve (const IVec< Dim > &G, Index bottomExtent)
 The grid half of the §6.2 rule: stop when the bottom smoother is already exact, and when the grid cannot halve into a cube level with at least two cells per axis.
 
template<int Dim>
long long peclet::amr::detail::cellsOf (const IVec< Dim > &G)
 
template<int Dim>
void peclet::amr::detail::pushLevel (MgLadderPrediction< Dim > &p, const IVec< Dim > &G, MgLevelKind kind)
 
template<int Dim>
MgLadderPrediction< Dim > peclet::amr::predictPressureLadder (IVec< Dim > G, unsigned lmax, int numRanks, Index bottomExtent=4, const PressureStagePolicy &policy={})
 Predict the pressure-multigrid ladder for a global ROOT grid G (in root cells, i.e.