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

Base class for distributed direct solver. More...

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

Collaboration diagram for Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >:

Public Types

typedef Backend::value_type value_type
typedef math::scalar_of< value_type >::type scalar_type
typedef math::rhs_of< value_type >::type rhs_type
using col_type = Backend::col_type
using ptr_type = Backend::ptr_type
typedef CSRMatrix< value_type, col_type, ptr_type > build_matrix

Public Member Functions

void init (mpi_communicator comm, const build_matrix &Astrip)
template<class B>
void init (mpi_communicator comm, const DistributedMatrix< B > &A)
Solver & solver ()
const Solver & solver () const
template<class VecF, class VecX>
void operator() (const VecF &f, VecX &x) const

Private Attributes

mpi_communicator comm
int n
int group_master
MPI_Comm masters_comm
std::vector< int > slaves
std::vector< int > counts
std::vector< rhs_type > cons_f
std::vector< rhs_type > cons_x
std::vector< rhs_type > host_v
UniqueArray< MessagePassing::Requestsolve_req

Static Private Attributes

static const int cnt_tag = 5001
static const int col_tag = 5002
static const int val_tag = 5003
static const int rhs_tag = 5004
static const int sol_tag = 5005

Detailed Description

template<typename Backend, class Solver>
class Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >

Base class for distributed direct solver.

Definition at line 41 of file DistributedDirectSolverBase.h.

Member Typedef Documentation

◆ build_matrix

template<typename Backend, class Solver>
typedef CSRMatrix<value_type, col_type, ptr_type> Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::build_matrix

Definition at line 51 of file DistributedDirectSolverBase.h.

◆ col_type

template<typename Backend, class Solver>
using Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::col_type = Backend::col_type

Definition at line 49 of file DistributedDirectSolverBase.h.

◆ ptr_type

template<typename Backend, class Solver>
using Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::ptr_type = Backend::ptr_type

Definition at line 50 of file DistributedDirectSolverBase.h.

◆ rhs_type

template<typename Backend, class Solver>
typedef math::rhs_of<value_type>::type Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::rhs_type

Definition at line 47 of file DistributedDirectSolverBase.h.

◆ scalar_type

template<typename Backend, class Solver>
typedef math::scalar_of<value_type>::type Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::scalar_type

Definition at line 46 of file DistributedDirectSolverBase.h.

◆ value_type

template<typename Backend, class Solver>
typedef Backend::value_type Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::value_type

Definition at line 45 of file DistributedDirectSolverBase.h.

Constructor & Destructor Documentation

◆ DistributedDirectSolverBase()

template<typename Backend, class Solver>
Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::DistributedDirectSolverBase ( )
inline

Definition at line 53 of file DistributedDirectSolverBase.h.

◆ ~DistributedDirectSolverBase()

template<typename Backend, class Solver>
virtual Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::~DistributedDirectSolverBase ( )
inlinevirtual

Definition at line 204 of file DistributedDirectSolverBase.h.

Member Function Documentation

◆ init() [1/2]

template<typename Backend, class Solver>
void Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::init ( mpi_communicator comm,
const build_matrix & Astrip )
inline

Definition at line 55 of file DistributedDirectSolverBase.h.

◆ init() [2/2]

template<typename Backend, class Solver>
template<class B>
void Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::init ( mpi_communicator comm,
const DistributedMatrix< B > & A )
inline

Definition at line 172 of file DistributedDirectSolverBase.h.

◆ operator()()

template<typename Backend, class Solver>
template<class VecF, class VecX>
void Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::operator() ( const VecF & f,
VecX & x ) const
inline

Definition at line 221 of file DistributedDirectSolverBase.h.

◆ solver() [1/2]

template<typename Backend, class Solver>
Solver & Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::solver ( )
inline

Definition at line 210 of file DistributedDirectSolverBase.h.

◆ solver() [2/2]

template<typename Backend, class Solver>
const Solver & Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::solver ( ) const
inline

Definition at line 215 of file DistributedDirectSolverBase.h.

Member Data Documentation

◆ cnt_tag

template<typename Backend, class Solver>
const int Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::cnt_tag = 5001
staticprivate

Definition at line 262 of file DistributedDirectSolverBase.h.

◆ col_tag

template<typename Backend, class Solver>
const int Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::col_tag = 5002
staticprivate

Definition at line 263 of file DistributedDirectSolverBase.h.

◆ comm

template<typename Backend, class Solver>
mpi_communicator Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::comm
private

Definition at line 268 of file DistributedDirectSolverBase.h.

◆ cons_f

template<typename Backend, class Solver>
std::vector<rhs_type> Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::cons_f
mutableprivate

Definition at line 274 of file DistributedDirectSolverBase.h.

◆ cons_x

template<typename Backend, class Solver>
std::vector<rhs_type> Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::cons_x
private

Definition at line 274 of file DistributedDirectSolverBase.h.

◆ counts

template<typename Backend, class Solver>
std::vector<int> Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::counts
private

Definition at line 273 of file DistributedDirectSolverBase.h.

◆ group_master

template<typename Backend, class Solver>
int Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::group_master
private

Definition at line 270 of file DistributedDirectSolverBase.h.

◆ host_v

template<typename Backend, class Solver>
std::vector<rhs_type> Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::host_v
private

Definition at line 274 of file DistributedDirectSolverBase.h.

◆ masters_comm

template<typename Backend, class Solver>
MPI_Comm Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::masters_comm
private

Definition at line 271 of file DistributedDirectSolverBase.h.

◆ n

template<typename Backend, class Solver>
int Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::n
private

Definition at line 269 of file DistributedDirectSolverBase.h.

◆ rhs_tag

template<typename Backend, class Solver>
const int Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::rhs_tag = 5004
staticprivate

Definition at line 265 of file DistributedDirectSolverBase.h.

◆ slaves

template<typename Backend, class Solver>
std::vector<int> Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::slaves
private

Definition at line 272 of file DistributedDirectSolverBase.h.

◆ sol_tag

template<typename Backend, class Solver>
const int Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::sol_tag = 5005
staticprivate

Definition at line 266 of file DistributedDirectSolverBase.h.

◆ solve_req

template<typename Backend, class Solver>
UniqueArray<MessagePassing::Request> Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::solve_req
mutableprivate

Definition at line 275 of file DistributedDirectSolverBase.h.

◆ val_tag

template<typename Backend, class Solver>
const int Arcane::Alina::DistributedDirectSolverBase< Backend, Solver >::val_tag = 5003
staticprivate

Definition at line 264 of file DistributedDirectSolverBase.h.


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