Alien
1.3.0
Developer documentation
Loading...
Searching...
No Matches
RedistributorBackEnd.h
1
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
//-----------------------------------------------------------------------------
3
// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4
// See the top-level COPYRIGHT file for details.
5
// SPDX-License-Identifier: Apache-2.0
6
//-----------------------------------------------------------------------------
7
#pragma once
8
9
#include <arccore/message_passing/MessagePassingGlobal.h>
10
#include <alien/core/backend/BackEnd.h>
11
12
/*---------------------------------------------------------------------------*/
13
14
namespace
Alien
15
{
16
17
/*---------------------------------------------------------------------------*/
18
19
class
RedistributorLinearSolver;
20
class
RedistributorMatrix
;
21
class
RedistributorVector
;
22
class
Space
;
23
template
<
class
Matrix,
class
Vector>
24
class
IInternalLinearAlgebra
;
25
template
<
class
Matrix,
class
Vector>
26
class
IInternalLinearSolver
;
27
28
extern
IInternalLinearAlgebra<RedistributorMatrix, RedistributorVector>
*
29
redistributorLinearAlgebraFactory();
30
31
extern
IInternalLinearSolver<RedistributorMatrix, RedistributorVector>
*
32
redistributorLinearSolverFactory(IMessagePassingMng* p_mng);
33
34
/*---------------------------------------------------------------------------*/
35
36
namespace
BackEnd
37
{
38
namespace
tag
39
{
40
struct
redistributor
41
{};
42
}
// namespace tag
43
}
// namespace BackEnd
44
45
template
<>
46
struct
AlgebraTraits
<BackEnd::tag::redistributor>
47
{
48
typedef
RedistributorMatrix
matrix_type;
49
typedef
RedistributorVector
vector_type;
50
typedef
IInternalLinearAlgebra<matrix_type, vector_type>
algebra_type;
51
typedef
IInternalLinearSolver<matrix_type, vector_type>
solver_type;
52
static
algebra_type* algebra_factory() {
return
redistributorLinearAlgebraFactory(); }
53
static
solver_type* solver_factory(IMessagePassingMng* p_mng)
54
{
55
return
redistributorLinearSolverFactory(p_mng);
56
}
57
static
BackEndId name() {
return
"redistributor"
; }
58
};
59
60
/*---------------------------------------------------------------------------*/
61
62
}
// namespace Alien
63
64
/*---------------------------------------------------------------------------*/
Alien::IInternalLinearAlgebra
Internal linear algebra interface.
Definition
IInternalLinearAlgebraT.h:34
Alien::IInternalLinearSolver
Internal linear solver interface.
Definition
IInternalLinearSolverT.h:37
Alien::RedistributorMatrix
Definition
RedistributorMatrix.h:33
Alien::RedistributorVector
Definition
RedistributorVector.h:33
Alien::Space
Implementation of an algebraic space.
Definition
Space.h:47
Alien
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition
BackEnd.h:17
Alien::AlgebraTraits
Definition
BackEnd.h:25
Alien::BackEnd::tag::redistributor
Definition
RedistributorBackEnd.h:41
core
alien
kernels
redistributor
RedistributorBackEnd.h
Generated on
for Alien by
1.16.1