core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
Loading...
Searching...
No Matches
peclet::core::amr::MomentumMG< Bits > Class Template Reference

#include <momentum.hpp>

Public Types

using Octree = BlockOctree< 3, Bits >
 
using M = typename Octree::M
 
using Code = typename Octree::Code
 

Public Member Functions

void build (const Octree &finest, const std::vector< double > &diag0, const std::vector< Index > &start0, const std::vector< Index > &nbr0, const std::vector< double > &coef0)
 Build the Galerkin hierarchy from the finest octree + the assembled fine operator CSR (diag + face CSR, as produced by AmrCutCell::assembleOperator).
 
void setGaussSeidel (bool on)
 Opt-in: use multicolour Gauss–Seidel as the smoother (per-level colouring built at build) instead of weighted Jacobi — ~2× better smoothing, fewer V-cycles.
 
void vcycle (int pre=2, int post=2, int bottom=30, double omega=0.7, std::size_t L=0)
 One V-cycle on level L solving A u = b (correction scheme).
 
std::size_t numLevels () const
 
Index numLeaves (std::size_t L=0) const
 
View< doublex (std::size_t L=0)
 
View< doubleb (std::size_t L=0)
 
const MomentumOpop (std::size_t L=0) const
 

Detailed Description

template<unsigned Bits = 21u>
class peclet::core::amr::MomentumMG< Bits >

Definition at line 262 of file momentum.hpp.

Member Typedef Documentation

◆ Octree

template<unsigned Bits = 21u>
using peclet::core::amr::MomentumMG< Bits >::Octree = BlockOctree<3, Bits>

Definition at line 264 of file momentum.hpp.

◆ M

Definition at line 265 of file momentum.hpp.

◆ Code

Definition at line 266 of file momentum.hpp.

Member Function Documentation

◆ build()

template<unsigned Bits = 21u>
void peclet::core::amr::MomentumMG< Bits >::build ( const Octree finest,
const std::vector< double > &  diag0,
const std::vector< Index > &  start0,
const std::vector< Index > &  nbr0,
const std::vector< double > &  coef0 
)
inline

Build the Galerkin hierarchy from the finest octree + the assembled fine operator CSR (diag + face CSR, as produced by AmrCutCell::assembleOperator).

Definition at line 270 of file momentum.hpp.

References peclet::core::toDevice().

◆ setGaussSeidel()

template<unsigned Bits = 21u>
void peclet::core::amr::MomentumMG< Bits >::setGaussSeidel ( bool  on)
inline

Opt-in: use multicolour Gauss–Seidel as the smoother (per-level colouring built at build) instead of weighted Jacobi — ~2× better smoothing, fewer V-cycles.

Default off (Jacobi).

Definition at line 375 of file momentum.hpp.

◆ vcycle()

template<unsigned Bits = 21u>
void peclet::core::amr::MomentumMG< Bits >::vcycle ( int  pre = 2,
int  post = 2,
int  bottom = 30,
double  omega = 0.7,
std::size_t  L = 0 
)
inline

◆ numLevels()

template<unsigned Bits = 21u>
std::size_t peclet::core::amr::MomentumMG< Bits >::numLevels ( ) const
inline

Definition at line 395 of file momentum.hpp.

◆ numLeaves()

template<unsigned Bits = 21u>
Index peclet::core::amr::MomentumMG< Bits >::numLeaves ( std::size_t  L = 0) const
inline

Definition at line 396 of file momentum.hpp.

◆ x()

template<unsigned Bits = 21u>
View< double > peclet::core::amr::MomentumMG< Bits >::x ( std::size_t  L = 0)
inline

Definition at line 397 of file momentum.hpp.

◆ b()

template<unsigned Bits = 21u>
View< double > peclet::core::amr::MomentumMG< Bits >::b ( std::size_t  L = 0)
inline

Definition at line 398 of file momentum.hpp.

◆ op()

template<unsigned Bits = 21u>
const MomentumOp & peclet::core::amr::MomentumMG< Bits >::op ( std::size_t  L = 0) const
inline

Definition at line 399 of file momentum.hpp.


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