Arcane  v4.1.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Alina::IDRSSolver< Backend, InnerProduct >

IDR(s) method (Induced Dimension Reduction) Plus de détails...

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

+ Graphe d'héritage de Arcane::Alina::IDRSSolver< Backend, InnerProduct >:
+ Graphe de collaboration de Arcane::Alina::IDRSSolver< Backend, InnerProduct >:

Types publics

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::rhs_of< value_type >::type rhs_type
 
typedef math::inner_product_impl< typenamemath::rhs_of< value_type >::type >::return_type coef_type
 
using params = IDRSSolverParams
 

Fonctions membres publiques

 IDRSSolver (size_t n, const params &prm=params(), const backend_params &bprm=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() (Matrix const &A, Precond const &Prec, Vec1 const &rhs, Vec2 &x) const
 Computes the solution for the given system matrix.
 
template<class Precond, class Vec1, class Vec2>
SolverResult operator() (Precond const &P, Vec1 const &rhs, Vec2 &x) const
 Computes the solution for the given right-hand side.
 
size_t bytes () const
 Memory used in bytes.
 

Attributs publics

params prm
 

Fonctions membres privées

template<class Vec>
scalar_type norm (const Vec &x) const
 
template<class Vector1, class Vector2>
coef_type omega (const Vector1 &t, const Vector2 &s) const
 

Attributs privés

size_t n
 
InnerProduct inner_product
 
multi_array< coef_type, 2 > M
 
std::vector< coef_typef
 
std::vector< coef_typec
 
std::shared_ptr< vectorr
 
std::shared_ptr< vectorv
 
std::shared_ptr< vectort
 
std::shared_ptr< vectorx_s
 
std::shared_ptr< vectorr_s
 
std::vector< std::shared_ptr< vector > > P
 
std::vector< std::shared_ptr< vector > > G
 
std::vector< std::shared_ptr< vector > > U
 

Amis

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

Description détaillée

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

IDR(s) method (Induced Dimension Reduction)

Définition à la ligne 138 du fichier IDRSSolver.h.

Documentation des définitions de type membres

◆ backend_params

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

Définition à la ligne 148 du fichier IDRSSolver.h.

◆ backend_type

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

Définition à la ligne 143 du fichier IDRSSolver.h.

◆ BackendType

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

Définition à la ligne 144 du fichier IDRSSolver.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::IDRSSolver< Backend, InnerProduct >::coef_type

Définition à la ligne 153 du fichier IDRSSolver.h.

◆ params

template<class Backend, class InnerProduct = detail::default_inner_product>
using Arcane::Alina::IDRSSolver< Backend, InnerProduct >::params = IDRSSolverParams

Définition à la ligne 155 du fichier IDRSSolver.h.

◆ rhs_type

template<class Backend, class InnerProduct = detail::default_inner_product>
typedef math::rhs_of<value_type>::type Arcane::Alina::IDRSSolver< Backend, InnerProduct >::rhs_type

Définition à la ligne 151 du fichier IDRSSolver.h.

◆ scalar_type

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

Définition à la ligne 150 du fichier IDRSSolver.h.

◆ value_type

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

Définition à la ligne 147 du fichier IDRSSolver.h.

◆ vector

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

Définition à la ligne 146 du fichier IDRSSolver.h.

Documentation des constructeurs et destructeur

◆ IDRSSolver()

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

Preallocates necessary data structures for the system of size n.

Définition à la ligne 158 du fichier IDRSSolver.h.

Documentation des fonctions membres

◆ bytes()

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

Memory used in bytes.

Implémente Arcane::Alina::SolverBase.

Définition à la ligne 405 du fichier IDRSSolver.h.

◆ norm()

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

Définition à la ligne 461 du fichier IDRSSolver.h.

◆ omega()

template<class Backend, class InnerProduct = detail::default_inner_product>
template<class Vector1, class Vector2>
coef_type Arcane::Alina::IDRSSolver< Backend, InnerProduct >::omega ( const Vector1 & t,
const Vector2 & s ) const
inlineprivate

Définition à la ligne 467 du fichier IDRSSolver.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::IDRSSolver< Backend, InnerProduct >::operator() ( Matrix const & A,
Precond const & Prec,
Vec1 const & rhs,
Vec2 & x ) const
inline

Computes the solution for the given system matrix.

Computes the solution for the given system matrix A and the right-hand side rhs. 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.

The system matrix may differ from the matrix used during initialization. This may be used for the solution of non-stationary problems with slowly changing coefficients. There is a strong chance that a preconditioner built for a time step will act as a reasonably good preconditioner for several subsequent time steps [DeSh12]_.

Définition à la ligne 233 du fichier IDRSSolver.h.

◆ operator()() [2/2]

template<class Backend, class InnerProduct = detail::default_inner_product>
template<class Precond, class Vec1, class Vec2>
SolverResult Arcane::Alina::IDRSSolver< Backend, InnerProduct >::operator() ( Precond const & P,
Vec1 const & 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.

Définition à la ligne 400 du fichier IDRSSolver.h.

Documentation des fonctions amies et associées

◆ operator<<

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

Définition à la ligne 433 du fichier IDRSSolver.h.

Documentation des données membres

◆ c

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

Définition à la ligne 452 du fichier IDRSSolver.h.

◆ f

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

Définition à la ligne 452 du fichier IDRSSolver.h.

◆ G

template<class Backend, class InnerProduct = detail::default_inner_product>
std::vector<std::shared_ptr<vector> > Arcane::Alina::IDRSSolver< Backend, InnerProduct >::G
private

Définition à la ligne 458 du fichier IDRSSolver.h.

◆ inner_product

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

Définition à la ligne 449 du fichier IDRSSolver.h.

◆ M

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

Définition à la ligne 451 du fichier IDRSSolver.h.

◆ n

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

Définition à la ligne 447 du fichier IDRSSolver.h.

◆ P

template<class Backend, class InnerProduct = detail::default_inner_product>
std::vector<std::shared_ptr<vector> > Arcane::Alina::IDRSSolver< Backend, InnerProduct >::P
private

Définition à la ligne 458 du fichier IDRSSolver.h.

◆ prm

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

Définition à la ligne 443 du fichier IDRSSolver.h.

◆ r

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::IDRSSolver< Backend, InnerProduct >::r
private

Définition à la ligne 454 du fichier IDRSSolver.h.

◆ r_s

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::IDRSSolver< Backend, InnerProduct >::r_s
private

Définition à la ligne 456 du fichier IDRSSolver.h.

◆ t

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::IDRSSolver< Backend, InnerProduct >::t
private

Définition à la ligne 454 du fichier IDRSSolver.h.

◆ U

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

Définition à la ligne 458 du fichier IDRSSolver.h.

◆ v

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::IDRSSolver< Backend, InnerProduct >::v
private

Définition à la ligne 454 du fichier IDRSSolver.h.

◆ x_s

template<class Backend, class InnerProduct = detail::default_inner_product>
std::shared_ptr<vector> Arcane::Alina::IDRSSolver< Backend, InnerProduct >::x_s
private

Définition à la ligne 455 du fichier IDRSSolver.h.


La documentation de cette classe a été générée à partir du fichier suivant :