flow 0.4.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
peclet::flow::CutcellMG Class Reference

#include <mac_cutcell_mg.hpp>

Classes

struct  Level
 

Public Member Functions

void init (int nx, int ny, int nz, int nLevels)
 
int nLevels () const
 
Levellevel (int L)
 
void setBoundaryConditions (const int bc[6])
 
void applyOutflowGhost (C3 ext, CCField x, int g=G)
 
void applyBoundaryOpenness (Level &lv)
 
void setOpenness (CCConst ox, CCConst oy, CCConst oz, double idx2, double idy2, double idz2)
 
int solvePCG (CCField b, CCField x, CCField r, CCField p, CCField z, CCField Ap, int maxit, double rtol, int pre, int post, int bottom, const StarOverlay *star=nullptr, int nStar=0, C3 nnStar=C3{0, 0, 0})
 
int solveBiCGStab (CCField b, CCField x, CCField r, CCField rh, CCField p, CCField v, CCField t, CCField z, CCField z2, int maxit, double rtol, int pre, int post, int bottom, const GpOverlay &ov, int nOv, C3 nn)
 
void vcycle (int L, bool sym)
 
void vcycleImpl (int L, bool sym)
 
bool caSmooth (const Level &lv) const
 
void smooth (Level &lv, int sweeps, bool reverse)
 
bool agglomerateBottom () const
 
void buildAmg (Level &lv)
 
void graphAmgSolveBottom (Level &lv)
 
void pcgAmg (std::vector< double > &b, std::vector< double > &x)
 
void matvecOverlap (Level &l0, CCField y, CCField v)
 
void fill (Level &lv, CCField f)
 
void fillOpenness (Level &lv)
 
void fillAxis (Level &lv, CCField f, int axis)
 
void axpy (CCField y, double a, CCField x)
 
void aypx (CCField y, double a, CCField x)
 
void scale (CCField y, double a)
 
void lin (CCField out, double a, CCField x, double b, CCField y)
 
void maskSolid (Level &lv, CCField f)
 
void estimateEigenvalues (CCConst seed, double &lmin, double &lmax, int iters, int pre, int post, int bottom)
 
int solveChebyshev (CCField b, CCField x, int maxit, double rtol, int pre, int post, int bottom, double a, double bnd)
 
double dot (Level &lv, CCField a, CCField b)
 
double maxabs (Level &lv, CCField a)
 
void removeMean (Level &lv, CCField f)
 
void setMeanRemovalScope (bool all)
 
double allreduceSeconds () const
 
long allreduceCount () const
 
void resetAllreduceCounters ()
 
void setAgglomerationMode (int mode)
 
int agglomerationMode () const
 
void setGraphAmgBottom (bool on)
 

Static Public Member Functions

static C3 parityOg (const Level &lv)
 

Static Public Attributes

static constexpr int G = 1
 

Detailed Description

Definition at line 217 of file mac_cutcell_mg.hpp.

Member Function Documentation

◆ parityOg()

static C3 peclet::flow::CutcellMG::parityOg ( const Level lv)
inlinestatic

◆ init()

◆ nLevels()

int peclet::flow::CutcellMG::nLevels ( ) const
inline

Definition at line 545 of file mac_cutcell_mg.hpp.

Referenced by init().

◆ level()

Level & peclet::flow::CutcellMG::level ( int  L)
inline

Definition at line 546 of file mac_cutcell_mg.hpp.

References peclet::flow::ibmFillEntry().

Referenced by main().

◆ setBoundaryConditions()

void peclet::flow::CutcellMG::setBoundaryConditions ( const int  bc[6])
inline

◆ applyOutflowGhost()

void peclet::flow::CutcellMG::applyOutflowGhost ( C3  ext,
CCField  x,
int  g = G 
)
inline

◆ applyBoundaryOpenness()

◆ setOpenness()

◆ solvePCG()

int peclet::flow::CutcellMG::solvePCG ( CCField  b,
CCField  x,
CCField  r,
CCField  p,
CCField  z,
CCField  Ap,
int  maxit,
double  rtol,
int  pre,
int  post,
int  bottom,
const StarOverlay star = nullptr,
int  nStar = 0,
C3  nnStar = C3{0, 0, 0} 
)
inline

Definition at line 644 of file mac_cutcell_mg.hpp.

Referenced by main(), and peclet::flow::Solver< Grid >::project().

◆ solveBiCGStab()

int peclet::flow::CutcellMG::solveBiCGStab ( CCField  b,
CCField  x,
CCField  r,
CCField  rh,
CCField  p,
CCField  v,
CCField  t,
CCField  z,
CCField  z2,
int  maxit,
double  rtol,
int  pre,
int  post,
int  bottom,
const GpOverlay ov,
int  nOv,
C3  nn 
)
inline

Definition at line 742 of file mac_cutcell_mg.hpp.

Referenced by peclet::flow::Solver< Grid >::project().

◆ vcycle()

void peclet::flow::CutcellMG::vcycle ( int  L,
bool  sym 
)
inline

◆ vcycleImpl()

◆ caSmooth()

bool peclet::flow::CutcellMG::caSmooth ( const Level lv) const
inline

Definition at line 945 of file mac_cutcell_mg.hpp.

References peclet::flow::CutcellMG::Level::caOk.

Referenced by smooth().

◆ smooth()

◆ agglomerateBottom()

bool peclet::flow::CutcellMG::agglomerateBottom ( ) const
inline

Definition at line 1034 of file mac_cutcell_mg.hpp.

References peclet::flow::ibmFillEntry().

Referenced by vcycleImpl().

◆ buildAmg()

◆ graphAmgSolveBottom()

◆ pcgAmg()

void peclet::flow::CutcellMG::pcgAmg ( std::vector< double > &  b,
std::vector< double > &  x 
)
inline

Definition at line 1342 of file mac_cutcell_mg.hpp.

References dot(), and peclet::flow::ibmFillEntry().

Referenced by graphAmgSolveBottom().

◆ matvecOverlap()

void peclet::flow::CutcellMG::matvecOverlap ( Level l0,
CCField  y,
CCField  v 
)
inline

◆ fill()

void peclet::flow::CutcellMG::fill ( Level lv,
CCField  f 
)
inline

Definition at line 1500 of file mac_cutcell_mg.hpp.

References fillAxis().

Referenced by fillOpenness(), graphAmgSolveBottom(), matvecOverlap(), smooth(), and vcycleImpl().

◆ fillOpenness()

void peclet::flow::CutcellMG::fillOpenness ( Level lv)
inline

◆ fillAxis()

◆ axpy()

void peclet::flow::CutcellMG::axpy ( CCField  y,
double  a,
CCField  x 
)
inline

Definition at line 1569 of file mac_cutcell_mg.hpp.

References peclet::flow::ibmFillEntry().

Referenced by solveChebyshev().

◆ aypx()

void peclet::flow::CutcellMG::aypx ( CCField  y,
double  a,
CCField  x 
)
inline

Definition at line 1577 of file mac_cutcell_mg.hpp.

References peclet::flow::ibmFillEntry().

◆ scale()

void peclet::flow::CutcellMG::scale ( CCField  y,
double  a 
)
inline

Definition at line 1585 of file mac_cutcell_mg.hpp.

References peclet::flow::ibmFillEntry().

Referenced by estimateEigenvalues().

◆ lin()

void peclet::flow::CutcellMG::lin ( CCField  out,
double  a,
CCField  x,
double  b,
CCField  y 
)
inline

Definition at line 1593 of file mac_cutcell_mg.hpp.

References peclet::flow::ibmFillEntry().

Referenced by estimateEigenvalues(), and solveChebyshev().

◆ maskSolid()

void peclet::flow::CutcellMG::maskSolid ( Level lv,
CCField  f 
)
inline

◆ estimateEigenvalues()

void peclet::flow::CutcellMG::estimateEigenvalues ( CCConst  seed,
double lmin,
double lmax,
int  iters,
int  pre,
int  post,
int  bottom 
)
inline

◆ solveChebyshev()

int peclet::flow::CutcellMG::solveChebyshev ( CCField  b,
CCField  x,
int  maxit,
double  rtol,
int  pre,
int  post,
int  bottom,
double  a,
double  bnd 
)
inline

◆ dot()

◆ maxabs()

◆ removeMean()

◆ setMeanRemovalScope()

void peclet::flow::CutcellMG::setMeanRemovalScope ( bool  all)
inline

◆ allreduceSeconds()

double peclet::flow::CutcellMG::allreduceSeconds ( ) const
inline

◆ allreduceCount()

long peclet::flow::CutcellMG::allreduceCount ( ) const
inline

◆ resetAllreduceCounters()

void peclet::flow::CutcellMG::resetAllreduceCounters ( )
inline

Definition at line 1820 of file mac_cutcell_mg.hpp.

Referenced by peclet::flow::Solver< Grid >::step().

◆ setAgglomerationMode()

void peclet::flow::CutcellMG::setAgglomerationMode ( int  mode)
inline

◆ agglomerationMode()

int peclet::flow::CutcellMG::agglomerationMode ( ) const
inline

Definition at line 1918 of file mac_cutcell_mg.hpp.

◆ setGraphAmgBottom()

void peclet::flow::CutcellMG::setGraphAmgBottom ( bool  on)
inline

Member Data Documentation

◆ G

constexpr int peclet::flow::CutcellMG::G = 1
staticconstexpr

Definition at line 234 of file mac_cutcell_mg.hpp.

Referenced by fillAxis(), init(), matvecOverlap(), and setOpenness().


The documentation for this class was generated from the following file: