Advanced Multi-Physics (AMP)
On-Line Documentation
Classes | Typedefs | Enumerations | Functions | Variables
AMP::Solver::AMG Namespace Reference

Classes

struct  Aggregator
 
struct  classical_strength
 
struct  coarse_matrix
 
struct  coarse_operator
 
struct  coarse_operator_parameters
 
struct  CoarsenSettings
 
struct  csr_view
 
struct  csr_view< LinearAlgebra::CSRMatrix< Config > >
 
struct  csr_view< par_csr< Config, ColID > >
 
struct  extent_storage
 
struct  extent_storage< dynamic_extent >
 
struct  HasDeferConsistency
 
struct  HybridGS
 
struct  JacobiL1
 
struct  KappaKCycle
 
struct  Level
 
struct  LevelOperator
 
struct  LevelWithWorkspace
 
struct  MIS2Aggregator
 
struct  PairwiseAggregator
 
struct  PairwiseCoarsenSettings
 
struct  par_csr
 
struct  Relaxation
 
struct  RelaxationParameters
 
struct  SASolver
 
struct  seq_csr
 
struct  SimpleAggregator
 
struct  span
 
struct  Strength
 
struct  symagg_strength
 
struct  UASolver
 

Typedefs

using coarse_ops_type = std::tuple< std::shared_ptr< AMP::Operator::Operator >, std::shared_ptr< AMP::Operator::LinearOperator >, std::shared_ptr< AMP::Operator::Operator > >
 
using KCycleLevel = LevelWithWorkspace< num_work_kcycle >
 
template<class A , class T >
using rebind_alloc = typename std::allocator_traits< A >::template rebind_alloc< T >
 

Enumerations

enum class  norm { abs , min }
 

Functions

coarse_ops_type aggregator_coarsen (std::shared_ptr< AMP::Operator::Operator > fine, Aggregator &aggregator)
 
template<std::size_t N>
void clone_workspace (LevelWithWorkspace< N > &level, const LinearAlgebra::Vector &donor)
 
template<class StrengthPolicy , class Mat >
Strength< Matcompute_soc (csr_view< Mat > A, float threshold)
 
template<class Config >
 csr_view (const LinearAlgebra::CSRMatrix< Config > &) -> csr_view< LinearAlgebra::CSRMatrix< Config > >
 
template<class Config , class ColID >
 csr_view (par_csr< Config, ColID >) -> csr_view< par_csr< Config, ColID > >
 
coarse_ops_type pairwise_coarsen (std::shared_ptr< AMP::Operator::Operator > fine, const PairwiseCoarsenSettings &settings)
 
template<class T , std::enable_if_t< is_level_v< T >, bool > = true>
void print_summary (const std::string &amg_name, const std::vector< T > &ml, const SolverStrategy &cg_solver)
 
void save_hierarchy (std::string_view base_name, const std::vector< KCycleLevel > &levels)
 

Variables

constexpr std::size_t dynamic_extent = std::numeric_limits<std::size_t>::max()
 
template<class T >
constexpr bool is_level_v = std::is_base_of_v<Level, T>
 
constexpr std::size_t num_work_kcycle = 5
 

Typedef Documentation

◆ coarse_ops_type

using AMP::Solver::AMG::coarse_ops_type = typedef std::tuple<std::shared_ptr<AMP::Operator::Operator>, std::shared_ptr<AMP::Operator::LinearOperator>, std::shared_ptr<AMP::Operator::Operator> >

Definition at line 12 of file Aggregation.h.

◆ KCycleLevel

Definition at line 50 of file Cycle.h.

◆ rebind_alloc

template<class A , class T >
using AMP::Solver::AMG::rebind_alloc = typedef typename std::allocator_traits<A>::template rebind_alloc<T>

Definition at line 114 of file Util.h.

Enumeration Type Documentation

◆ norm

enum class AMP::Solver::AMG::norm
strong
Enumerator
abs 
min 

Definition at line 121 of file Strength.h.

Function Documentation

◆ aggregator_coarsen()

coarse_ops_type AMP::Solver::AMG::aggregator_coarsen ( std::shared_ptr< AMP::Operator::Operator fine,
Aggregator aggregator 
)

◆ clone_workspace()

template<std::size_t N>
void AMP::Solver::AMG::clone_workspace ( LevelWithWorkspace< N > &  level,
const LinearAlgebra::Vector donor 
)

Initialize workspace by cloning a vector

Parameters
[in]levelLevel with workspace to initialize
[in]donorVector to use as donor for workspace vector clones

◆ compute_soc()

template<class StrengthPolicy , class Mat >
Strength< Mat > AMP::Solver::AMG::compute_soc ( csr_view< Mat A,
float  threshold 
)

◆ csr_view() [1/2]

template<class Config >
AMP::Solver::AMG::csr_view ( const LinearAlgebra::CSRMatrix< Config > &  ) -> csr_view< LinearAlgebra::CSRMatrix< Config > >

◆ csr_view() [2/2]

template<class Config , class ColID >
AMP::Solver::AMG::csr_view ( par_csr< Config, ColID >  ) -> csr_view< par_csr< Config, ColID > >

◆ pairwise_coarsen()

coarse_ops_type AMP::Solver::AMG::pairwise_coarsen ( std::shared_ptr< AMP::Operator::Operator fine,
const PairwiseCoarsenSettings settings 
)

◆ print_summary()

template<class T , std::enable_if_t< is_level_v< T >, bool > = true>
void AMP::Solver::AMG::print_summary ( const std::string &  amg_name,
const std::vector< T > &  ml,
const SolverStrategy cg_solver 
)

Print summary of an AMG Hierarchy.

Parameters
[in]amg_namename of solver containing hierarchy
[in]mlmultilevel hierarchy
[in]cg_solverCoarse grid solver for hierarchy

◆ save_hierarchy()

void AMP::Solver::AMG::save_hierarchy ( std::string_view  base_name,
const std::vector< KCycleLevel > &  levels 
)

Save level matrices to file for external inspection

Parameters
[in]base_nameString to build each matrices dumped filename from
[in]levelsVector of all levels in hierarchy to be saved

Variable Documentation

◆ dynamic_extent

constexpr std::size_t AMP::Solver::AMG::dynamic_extent = std::numeric_limits<std::size_t>::max()
inlineconstexpr

Definition at line 16 of file Util.h.

Referenced by AMP::Solver::AMG::span< T, Extent >::subspan().

◆ is_level_v

template<class T >
constexpr bool AMP::Solver::AMG::is_level_v = std::is_base_of_v<Level, T>
constexpr

Definition at line 38 of file Cycle.h.

◆ num_work_kcycle

constexpr std::size_t AMP::Solver::AMG::num_work_kcycle = 5
inlineconstexpr

Definition at line 49 of file Cycle.h.



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