Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct > Class Template Reference

BiCGStab(L) method. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/alina/arccore/alina/BiCGStabLSolver.h>

Inheritance diagram for Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >:
Collaboration diagram for Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >:

Public Types

using backend_type = Backend
using BackendType = Backend
typedef Backend::vector vector
typedef Backend::value_type value_type
typedef Backend::params backend_params
typedef math::scalar_of< value_type >::type scalar_type
typedef math::inner_product_impl< typenamemath::rhs_of< value_type >::type >::return_type coef_type
using params = BiCGStabLSolverParams

Public Member Functions

 BiCGStabLSolver (size_t n, const params &prm=params(), const backend_params &backend_prm=backend_params(), const InnerProduct &inner_product=InnerProduct())
 Preallocates necessary data structures for the system of size n.
template<class Matrix, class Precond, class Vec1, class Vec2>
SolverResult operator() (const Matrix &A, const Precond &P, const Vec1 &rhs, Vec2 &&x) const
template<class Precond, class Vec1, class Vec2>
SolverResult operator() (const Precond &P, const Vec1 &rhs, Vec2 &&x) const
 Computes the solution for the given right-hand side.
size_t bytes () const
 Memory used in bytes.

Public Attributes

params prm

Private Member Functions

template<class Vec>
scalar_type norm (const Vec &x) const

Private Attributes

size_t n
std::shared_ptr< vector > Rt
std::shared_ptr< vector > X
std::shared_ptr< vector > B
std::shared_ptr< vector > T
std::vector< std::shared_ptr< vector > > R
std::vector< std::shared_ptr< vector > > U
multi_array< coef_type, 2 > MZa
multi_array< coef_type, 2 > MZb
std::vector< coef_type > Y0
std::vector< coef_type > YL
Alina::detail::QRFactorization< coef_type > qr
InnerProduct inner_product

Friends

std::ostream & operator<< (std::ostream &os, const BiCGStabLSolver &s)

Detailed Description

template<class Backend, class InnerProduct = detail::default_inner_product>
class Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >

BiCGStab(L) method.

Definition at line 150 of file BiCGStabLSolver.h.

Member Typedef Documentation

◆ backend_params

template<class Backend, class InnerProduct = detail::default_inner_product>
typedef Backend::params Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::backend_params

Definition at line 160 of file BiCGStabLSolver.h.

◆ backend_type

template<class Backend, class InnerProduct = detail::default_inner_product>
using Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::backend_type = Backend

Definition at line 155 of file BiCGStabLSolver.h.

◆ BackendType

template<class Backend, class InnerProduct = detail::default_inner_product>
using Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::BackendType = Backend

Definition at line 156 of file BiCGStabLSolver.h.

◆ coef_type

template<class Backend, class InnerProduct = detail::default_inner_product>
typedef math::inner_product_impl<typenamemath::rhs_of<value_type>::type>::return_type Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::coef_type

Definition at line 165 of file BiCGStabLSolver.h.

◆ params

template<class Backend, class InnerProduct = detail::default_inner_product>
using Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::params = BiCGStabLSolverParams

Definition at line 167 of file BiCGStabLSolver.h.

◆ scalar_type

template<class Backend, class InnerProduct = detail::default_inner_product>
typedef math::scalar_of<value_type>::type Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::scalar_type

Definition at line 162 of file BiCGStabLSolver.h.

◆ value_type

template<class Backend, class InnerProduct = detail::default_inner_product>
typedef Backend::value_type Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::value_type

Definition at line 159 of file BiCGStabLSolver.h.

◆ vector

template<class Backend, class InnerProduct = detail::default_inner_product>
typedef Backend::vector Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::vector

Definition at line 158 of file BiCGStabLSolver.h.

Constructor & Destructor Documentation

◆ BiCGStabLSolver()

template<class Backend, class InnerProduct = detail::default_inner_product>
Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::BiCGStabLSolver ( size_t n,
const params & prm = params(),
const backend_params & backend_prm = backend_params(),
const InnerProduct & inner_product = InnerProduct() )
inline

Preallocates necessary data structures for the system of size n.

Definition at line 170 of file BiCGStabLSolver.h.

Member Function Documentation

◆ bytes()

template<class Backend, class InnerProduct = detail::default_inner_product>
size_t Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::bytes ( ) const
inlinevirtual

Memory used in bytes.

Implements Arcane::Alina::SolverBase.

Definition at line 444 of file BiCGStabLSolver.h.

◆ norm()

template<class Backend, class InnerProduct = detail::default_inner_product>
template<class Vec>
scalar_type Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::norm ( const Vec & x) const
inlineprivate

Definition at line 500 of file BiCGStabLSolver.h.

◆ operator()() [1/2]

template<class Backend, class InnerProduct = detail::default_inner_product>
template<class Matrix, class Precond, class Vec1, class Vec2>
SolverResult Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::operator() ( const Matrix & A,
const Precond & P,
const Vec1 & rhs,
Vec2 && x ) const
inline

Definition at line 212 of file BiCGStabLSolver.h.

◆ operator()() [2/2]

template<class Backend, class InnerProduct = detail::default_inner_product>
template<class Precond, class Vec1, class Vec2>
SolverResult Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::operator() ( const Precond & P,
const Vec1 & rhs,
Vec2 && x ) const
inline

Computes the solution for the given right-hand side.

Computes the solution for the given right-hand side rhs. The system matrix is the same that was used for the setup of the preconditioner P. Returns the number of iterations made and the achieved residual as a std::tuple. The solution vector x provides initial approximation in input and holds the computed solution on output.

Definition at line 439 of file BiCGStabLSolver.h.

◆ operator<<

template<class Backend, class InnerProduct = detail::default_inner_product>
std::ostream & operator<< ( std::ostream & os,
const BiCGStabLSolver< Backend, InnerProduct > & s )
friend

Definition at line 469 of file BiCGStabLSolver.h.

Member Data Documentation

◆ B

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::B
mutableprivate

Definition at line 487 of file BiCGStabLSolver.h.

◆ inner_product

template<class Backend, class InnerProduct = detail::default_inner_product>
InnerProduct Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::inner_product
private

Definition at line 497 of file BiCGStabLSolver.h.

◆ MZa

template<class Backend, class InnerProduct = detail::default_inner_product>
multi_array<coef_type, 2> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::MZa
mutableprivate

Definition at line 493 of file BiCGStabLSolver.h.

◆ MZb

template<class Backend, class InnerProduct = detail::default_inner_product>
multi_array<coef_type, 2> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::MZb
private

Definition at line 493 of file BiCGStabLSolver.h.

◆ n

template<class Backend, class InnerProduct = detail::default_inner_product>
size_t Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::n
private

Definition at line 483 of file BiCGStabLSolver.h.

◆ prm

template<class Backend, class InnerProduct = detail::default_inner_product>
params Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::prm

Definition at line 479 of file BiCGStabLSolver.h.

◆ qr

template<class Backend, class InnerProduct = detail::default_inner_product>
Alina::detail::QRFactorization<coef_type> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::qr
mutableprivate

Definition at line 495 of file BiCGStabLSolver.h.

◆ R

template<class Backend, class InnerProduct = detail::default_inner_product>
std::vector<std::shared_ptr<vector> > Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::R
mutableprivate

Definition at line 490 of file BiCGStabLSolver.h.

◆ Rt

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::Rt
mutableprivate

Definition at line 485 of file BiCGStabLSolver.h.

◆ T

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::T
mutableprivate

Definition at line 488 of file BiCGStabLSolver.h.

◆ U

template<class Backend, class InnerProduct = detail::default_inner_product>
std::vector<std::shared_ptr<vector> > Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::U
mutableprivate

Definition at line 491 of file BiCGStabLSolver.h.

◆ X

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::X
mutableprivate

Definition at line 486 of file BiCGStabLSolver.h.

◆ Y0

template<class Backend, class InnerProduct = detail::default_inner_product>
std::vector<coef_type> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::Y0
mutableprivate

Definition at line 494 of file BiCGStabLSolver.h.

◆ YL

template<class Backend, class InnerProduct = detail::default_inner_product>
std::vector<coef_type> Arcane::Alina::BiCGStabLSolver< Backend, InnerProduct >::YL
private

Definition at line 494 of file BiCGStabLSolver.h.


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