Advanced Multi-Physics (AMP)
On-Line Documentation
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
AMP::Solver::AMG::KappaKCycle Struct Reference

#include <Cycle.h>

Classes

struct  settings
 Settings for the Kappa K-cycle. More...
 

Public Types

enum class  krylov_type { fcg , gcr }
 K-cycle variant. More...
 
using level = KCycleLevel
 

Public Member Functions

 KappaKCycle (const settings &)
 
void operator() (std::shared_ptr< const LinearAlgebra::Vector > b, std::shared_ptr< LinearAlgebra::Vector > x, const std::vector< level > &levels, SolverStrategy &coarse_solver) const
 

Static Public Member Functions

static std::string_view krylovTypeName (const krylov_type t)
 Get krylov_type as string for printing.
 
static krylov_type parseType (const std::string &kcycle_type)
 Recover krylov_type from input string (either "fcg" or "gcr").
 

Private Member Functions

void cycle (size_t lvl, size_t kappa, std::shared_ptr< const LinearAlgebra::Vector > b, std::shared_ptr< LinearAlgebra::Vector > x, const std::vector< level > &levels, SolverStrategy &coarse_solver) const
 

Private Attributes

settings d_settings
 

Static Private Attributes

static std::map< std::string, krylov_typetype_map
 

Detailed Description

The Kappa K-cycle implements the Kylov-based multigrid cycle from Notay, Y., & Vassilevski, P. S. (2008). Recursive Krylov‐based multigrid cycles. Numerical Linear Algebra with Applications, 15(5), 473-487. https://doi.org/10.1002/nla.542.

augmented with Kappa cycling from Avnat, O., & Yavneh, I. (2022). On the recursive structure of multigrid cycles. SIAM Journal on Scientific Computing, 45(3), S103-S126. https://doi.org/10.1137/21M1433502.

The K-cycle implements economical variants of FCG and GCR as described in Notay, Y. (2010). An aggregation-based algebraic multigrid method. Electron. Trans. Numer. Anal, 37(6), 123-146.

Definition at line 74 of file Cycle.h.

Member Typedef Documentation

◆ level

Definition at line 75 of file Cycle.h.

Member Enumeration Documentation

◆ krylov_type

K-cycle variant.

Enumerator
fcg 
gcr 

Definition at line 77 of file Cycle.h.

Constructor & Destructor Documentation

◆ KappaKCycle()

AMP::Solver::AMG::KappaKCycle::KappaKCycle ( const settings )

Member Function Documentation

◆ cycle()

void AMP::Solver::AMG::KappaKCycle::cycle ( size_t  lvl,
size_t  kappa,
std::shared_ptr< const LinearAlgebra::Vector b,
std::shared_ptr< LinearAlgebra::Vector x,
const std::vector< level > &  levels,
SolverStrategy coarse_solver 
) const
private

◆ krylovTypeName()

static std::string_view AMP::Solver::AMG::KappaKCycle::krylovTypeName ( const krylov_type  t)
static

Get krylov_type as string for printing.

◆ operator()()

void AMP::Solver::AMG::KappaKCycle::operator() ( std::shared_ptr< const LinearAlgebra::Vector b,
std::shared_ptr< LinearAlgebra::Vector x,
const std::vector< level > &  levels,
SolverStrategy coarse_solver 
) const

Run cycle with system \(Ax = b\).

Parameters
[in]b: shared pointer to right hand side vector
[out]x: shared pointer to approximate computed solution.
[in]levels: Levels
[in,out]coarse_solver: Coarse solver

◆ parseType()

static krylov_type AMP::Solver::AMG::KappaKCycle::parseType ( const std::string &  kcycle_type)
static

Recover krylov_type from input string (either "fcg" or "gcr").

Member Data Documentation

◆ d_settings

settings AMP::Solver::AMG::KappaKCycle::d_settings
private

Definition at line 121 of file Cycle.h.

◆ type_map

std::map<std::string, krylov_type> AMP::Solver::AMG::KappaKCycle::type_map
inlinestaticprivate

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



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:45.
Comments on this page