Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond > Class Template Reference

Distributed CPR preconditioner. More...

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

Collaboration diagram for Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >:

Classes

struct  params

Public Types

using BackendType = PPrecond::BackendType
typedef BackendType::value_type value_type
typedef math::scalar_of< value_type >::type scalar_type
typedef BackendType::matrix bmatrix
typedef BackendType::vector vector
typedef BackendType::params backend_params
typedef DistributedMatrix< BackendType > matrix
typedef BuiltinBackend< value_type >::matrix build_matrix

Public Member Functions

template<class Matrix>
 DistributedCPRPreconditioner (mpi_communicator comm, const Matrix &K, const params &prm=params(), const backend_params &bprm=backend_params())
 DistributedCPRPreconditioner (mpi_communicator comm, std::shared_ptr< matrix > K, const params &prm=params(), const backend_params &bprm=backend_params())
template<class Vec1, class Vec2>
void apply (const Vec1 &rhs, Vec2 &&x) const
std::shared_ptr< matrix > system_matrix_ptr () const
const matrix & system_matrix () const

Public Attributes

params prm

Private Member Functions

void init (std::shared_ptr< matrix > K, const backend_params &bprm)
void invert (multi_array< value_type, 2 > &A, value_type *y)

Private Attributes

mpi_communicator comm
size_t n
size_t np
std::shared_ptr< PPrecond > P
std::shared_ptr< SPrecond > S
std::shared_ptr< bmatrix > Fpp
std::shared_ptr< bmatrix > Scatter
std::shared_ptr< vector > rp
std::shared_ptr< vector > xp
std::shared_ptr< vector > rs

Friends

template<class P, class S>
std::ostream & operator<< (std::ostream &os, const DistributedCPRPreconditioner< P, S > &cpr)

Detailed Description

template<class PPrecond, class SPrecond>
class Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >

Distributed CPR preconditioner.

Definition at line 44 of file DistributedCPRPreconditioner.h.

Member Typedef Documentation

◆ backend_params

template<class PPrecond, class SPrecond>
typedef BackendType::params Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::backend_params

Definition at line 59 of file DistributedCPRPreconditioner.h.

◆ BackendType

template<class PPrecond, class SPrecond>
using Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::BackendType = PPrecond::BackendType

Definition at line 53 of file DistributedCPRPreconditioner.h.

◆ bmatrix

template<class PPrecond, class SPrecond>
typedef BackendType::matrix Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::bmatrix

Definition at line 57 of file DistributedCPRPreconditioner.h.

◆ build_matrix

template<class PPrecond, class SPrecond>
typedef BuiltinBackend<value_type>::matrix Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::build_matrix

Definition at line 62 of file DistributedCPRPreconditioner.h.

◆ matrix

template<class PPrecond, class SPrecond>
typedef DistributedMatrix<BackendType> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::matrix

Definition at line 61 of file DistributedCPRPreconditioner.h.

◆ scalar_type

template<class PPrecond, class SPrecond>
typedef math::scalar_of<value_type>::type Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::scalar_type

Definition at line 56 of file DistributedCPRPreconditioner.h.

◆ value_type

template<class PPrecond, class SPrecond>
typedef BackendType::value_type Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::value_type

Definition at line 55 of file DistributedCPRPreconditioner.h.

◆ vector

template<class PPrecond, class SPrecond>
typedef BackendType::vector Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::vector

Definition at line 58 of file DistributedCPRPreconditioner.h.

Constructor & Destructor Documentation

◆ DistributedCPRPreconditioner() [1/2]

template<class PPrecond, class SPrecond>
template<class Matrix>
Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::DistributedCPRPreconditioner ( mpi_communicator comm,
const Matrix & K,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 93 of file DistributedCPRPreconditioner.h.

◆ DistributedCPRPreconditioner() [2/2]

template<class PPrecond, class SPrecond>
Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::DistributedCPRPreconditioner ( mpi_communicator comm,
std::shared_ptr< matrix > K,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Definition at line 104 of file DistributedCPRPreconditioner.h.

Member Function Documentation

◆ apply()

template<class PPrecond, class SPrecond>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::apply ( const Vec1 & rhs,
Vec2 && x ) const
inline

Definition at line 116 of file DistributedCPRPreconditioner.h.

◆ init()

template<class PPrecond, class SPrecond>
void Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::init ( std::shared_ptr< matrix > K,
const backend_params & bprm )
inlineprivate

Definition at line 155 of file DistributedCPRPreconditioner.h.

◆ invert()

template<class PPrecond, class SPrecond>
void Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::invert ( multi_array< value_type, 2 > & A,
value_type * y )
inlineprivate

Definition at line 444 of file DistributedCPRPreconditioner.h.

◆ system_matrix()

template<class PPrecond, class SPrecond>
const matrix & Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::system_matrix ( ) const
inline

Definition at line 135 of file DistributedCPRPreconditioner.h.

◆ system_matrix_ptr()

template<class PPrecond, class SPrecond>
std::shared_ptr< matrix > Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::system_matrix_ptr ( ) const
inline

Definition at line 130 of file DistributedCPRPreconditioner.h.

◆ operator<<

template<class PPrecond, class SPrecond>
template<class P, class S>
std::ostream & operator<< ( std::ostream & os,
const DistributedCPRPreconditioner< P, S > & cpr )
friend

Definition at line 477 of file DistributedCPRPreconditioner.h.

Member Data Documentation

◆ comm

template<class PPrecond, class SPrecond>
mpi_communicator Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::comm
private

Definition at line 146 of file DistributedCPRPreconditioner.h.

◆ Fpp

template<class PPrecond, class SPrecond>
std::shared_ptr<bmatrix> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::Fpp
private

Definition at line 152 of file DistributedCPRPreconditioner.h.

◆ n

template<class PPrecond, class SPrecond>
size_t Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::n
private

Definition at line 147 of file DistributedCPRPreconditioner.h.

◆ np

template<class PPrecond, class SPrecond>
size_t Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::np
private

Definition at line 147 of file DistributedCPRPreconditioner.h.

◆ P

template<class PPrecond, class SPrecond>
std::shared_ptr<PPrecond> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::P
private

Definition at line 149 of file DistributedCPRPreconditioner.h.

◆ prm

template<class PPrecond, class SPrecond>
params Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::prm

Definition at line 142 of file DistributedCPRPreconditioner.h.

◆ rp

template<class PPrecond, class SPrecond>
std::shared_ptr<vector> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::rp
private

Definition at line 153 of file DistributedCPRPreconditioner.h.

◆ rs

template<class PPrecond, class SPrecond>
std::shared_ptr<vector> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::rs
private

Definition at line 153 of file DistributedCPRPreconditioner.h.

◆ S

template<class PPrecond, class SPrecond>
std::shared_ptr<SPrecond> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::S
private

Definition at line 150 of file DistributedCPRPreconditioner.h.

◆ Scatter

template<class PPrecond, class SPrecond>
std::shared_ptr<bmatrix> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::Scatter
private

Definition at line 152 of file DistributedCPRPreconditioner.h.

◆ xp

template<class PPrecond, class SPrecond>
std::shared_ptr<vector> Arcane::Alina::DistributedCPRPreconditioner< PPrecond, SPrecond >::xp
private

Definition at line 153 of file DistributedCPRPreconditioner.h.


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