Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT > Class Template Reference
Inheritance diagram for Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >:
Collaboration diagram for Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >:

Public Types

using BaseSolverType = KernelSolverT<TagT>
using AlgebraType = AlgebraT
using MatrixType = typename AlgebraType::MatrixType
using VectorType = typename AlgebraType::VectorType
using ValueType = typename AlgebraType::ValueType
using DefMatrixTagType = Alien::BackEnd::tag::simplecsr
using SolverMatrixType = typename AlgebraTraits<AMGSolverTagT>::matrix_type
using SolverVectorType = typename AlgebraTraits<AMGSolverTagT>::vector_type
using SolverAlgebraType = typename AlgebraTraits<AMGSolverTagT>::algebra_type
using AMGSolverType = KernelSolverT<AMGSolverTagT>
using MatrixConvType = MatrixConverterT<TagT,AMGSolverTagT>
using DefMatrixConvType = MatrixConverterT<DefMatrixTagType,AMGSolverTagT>
using VectorConvFromType = VectorConverterT<TagT,AMGSolverTagT>
using VectorConvToType = VectorConverterT<AMGSolverTagT,TagT>
Public Types inherited from Alien::KernelSolverT< TagT >
using MatrixType
 The type of the solver.
using VectorType
using AlgebraType

Public Member Functions

 KernelAMGSolverT (AlgebraT &alg, AMGSolverType *solver)
 KernelAMGSolverT (AlgebraT &alg, Alien::ILinearSolver *solver)
void init ()
void start ()
void init (MatrixType const &A)
 Initialize the linear solver.
void end ()
bool solve (const VectorType &b, VectorType &x)
Public Member Functions inherited from Alien::KernelSolverT< TagT >
virtual void init (MatrixType const &A)=0
 Initialize the linear solver.
virtual bool solve (const VectorType &b, VectorType &x)=0
 Solve the linear system A * x = b.

Private Attributes

AlgebraType & m_algebra
AMGSolverType * m_amg_solver = nullptr
MatrixType const * m_matrix = nullptr
std::unique_ptr< SolverMatrixType > m_solver_matrix
std::unique_ptr< SolverVectorType > m_solver_b
std::unique_ptr< SolverVectorType > m_solver_x
MatrixConvType * m_matrix_converter = nullptr
DefMatrixConvType * m_def_matrix_converter = nullptr
VectorConvFromType * m_vector_converter_from = nullptr
VectorConvToType * m_vector_converter_to = nullptr

Detailed Description

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
class Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >

Definition at line 91 of file AMGSolverT.h.

Member Typedef Documentation

◆ AlgebraType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::AlgebraType = AlgebraT

Definition at line 97 of file AMGSolverT.h.

◆ AMGSolverType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::AMGSolverType = KernelSolverT<AMGSolverTagT>

Definition at line 106 of file AMGSolverT.h.

◆ BaseSolverType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::BaseSolverType = KernelSolverT<TagT>

Definition at line 96 of file AMGSolverT.h.

◆ DefMatrixConvType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::DefMatrixConvType = MatrixConverterT<DefMatrixTagType,AMGSolverTagT>

Definition at line 109 of file AMGSolverT.h.

◆ DefMatrixTagType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::DefMatrixTagType = Alien::BackEnd::tag::simplecsr

Definition at line 101 of file AMGSolverT.h.

◆ MatrixConvType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::MatrixConvType = MatrixConverterT<TagT,AMGSolverTagT>

Definition at line 108 of file AMGSolverT.h.

◆ MatrixType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::MatrixType = typename AlgebraType::MatrixType

Definition at line 98 of file AMGSolverT.h.

◆ SolverAlgebraType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::SolverAlgebraType = typename AlgebraTraits<AMGSolverTagT>::algebra_type

Definition at line 105 of file AMGSolverT.h.

◆ SolverMatrixType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::SolverMatrixType = typename AlgebraTraits<AMGSolverTagT>::matrix_type

Definition at line 103 of file AMGSolverT.h.

◆ SolverVectorType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::SolverVectorType = typename AlgebraTraits<AMGSolverTagT>::vector_type

Definition at line 104 of file AMGSolverT.h.

◆ ValueType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::ValueType = typename AlgebraType::ValueType

Definition at line 100 of file AMGSolverT.h.

◆ VectorConvFromType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::VectorConvFromType = VectorConverterT<TagT,AMGSolverTagT>

Definition at line 110 of file AMGSolverT.h.

◆ VectorConvToType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::VectorConvToType = VectorConverterT<AMGSolverTagT,TagT>

Definition at line 111 of file AMGSolverT.h.

◆ VectorType

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
using Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::VectorType = typename AlgebraType::VectorType

Definition at line 99 of file AMGSolverT.h.

Constructor & Destructor Documentation

◆ KernelAMGSolverT() [1/2]

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::KernelAMGSolverT ( AlgebraT & alg,
AMGSolverType * solver )
inline

Definition at line 114 of file AMGSolverT.h.

◆ KernelAMGSolverT() [2/2]

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::KernelAMGSolverT ( AlgebraT & alg,
Alien::ILinearSolver * solver )
inline

Definition at line 136 of file AMGSolverT.h.

◆ ~KernelAMGSolverT()

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
virtual Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::~KernelAMGSolverT ( )
inlinevirtual

Definition at line 164 of file AMGSolverT.h.

Member Function Documentation

◆ end()

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
void Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::end ( )
inlinevirtual

Implements Alien::KernelSolverT< TagT >.

Definition at line 197 of file AMGSolverT.h.

◆ init() [1/2]

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
void Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::init ( )
inlinevirtual

Implements Alien::KernelSolverT< TagT >.

Definition at line 169 of file AMGSolverT.h.

◆ init() [2/2]

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
void Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::init ( MatrixType const & A)
inline

Initialize the linear solver.

Definition at line 179 of file AMGSolverT.h.

◆ solve()

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
bool Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::solve ( const VectorType & b,
VectorType & x )
inline

Definition at line 206 of file AMGSolverT.h.

◆ start()

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
void Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::start ( )
inlinevirtual

Implements Alien::KernelSolverT< TagT >.

Definition at line 174 of file AMGSolverT.h.

Member Data Documentation

◆ m_algebra

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
AlgebraType& Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_algebra
private

Definition at line 228 of file AMGSolverT.h.

◆ m_amg_solver

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
AMGSolverType* Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_amg_solver = nullptr
private

Definition at line 229 of file AMGSolverT.h.

◆ m_def_matrix_converter

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
DefMatrixConvType* Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_def_matrix_converter = nullptr
private

Definition at line 235 of file AMGSolverT.h.

◆ m_matrix

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
MatrixType const* Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_matrix = nullptr
private

Definition at line 230 of file AMGSolverT.h.

◆ m_matrix_converter

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
MatrixConvType* Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_matrix_converter = nullptr
private

Definition at line 234 of file AMGSolverT.h.

◆ m_solver_b

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
std::unique_ptr<SolverVectorType> Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_solver_b
private

Definition at line 232 of file AMGSolverT.h.

◆ m_solver_matrix

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
std::unique_ptr<SolverMatrixType> Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_solver_matrix
private

Definition at line 231 of file AMGSolverT.h.

◆ m_solver_x

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
std::unique_ptr<SolverVectorType> Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_solver_x
private

Definition at line 233 of file AMGSolverT.h.

◆ m_vector_converter_from

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
VectorConvFromType* Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_vector_converter_from = nullptr
private

Definition at line 236 of file AMGSolverT.h.

◆ m_vector_converter_to

template<typename TagT, typename AlgebraT, typename AMGSolverTagT>
VectorConvToType* Alien::KernelAMGSolverT< TagT, AlgebraT, AMGSolverTagT >::m_vector_converter_to = nullptr
private

Definition at line 237 of file AMGSolverT.h.


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