Alien
1.3.0
Developer documentation
Loading...
Searching...
No Matches
DoKBackEnd.h
1
/*
2
* Copyright 2020 IFPEN-CEA
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
* SPDX-License-Identifier: Apache-2.0
17
*/
18
19
#pragma once
20
21
#include <alien/core/backend/BackEnd.h>
22
23
/*---------------------------------------------------------------------------*/
24
25
namespace
Alien
26
{
27
28
/*---------------------------------------------------------------------------*/
29
30
class
DoKLinearSolver;
31
class
DoKMatrix
;
32
class
DoKVector
;
33
class
Space
;
34
template
<
class
Matrix,
class
Vector>
35
class
IInternalLinearAlgebra
;
36
template
<
class
Matrix,
class
Vector>
37
class
IInternalLinearSolver
;
38
39
extern
IInternalLinearAlgebra<DoKMatrix, DoKVector>
* DoKLinearAlgebraFactory();
40
41
extern
IInternalLinearSolver<DoKMatrix, DoKVector>
* DoKLinearSolverFactory(
42
IMessagePassingMng* p_mng);
43
44
/*---------------------------------------------------------------------------*/
45
46
namespace
BackEnd::tag
47
{
48
struct
DoK
49
{};
50
}
// namespace BackEnd::tag
51
52
template
<>
53
struct
AlgebraTraits
<BackEnd::tag::DoK>
54
{
55
typedef
DoKMatrix
matrix_type;
56
typedef
DoKVector
vector_type;
57
typedef
IInternalLinearAlgebra<matrix_type, vector_type>
algebra_type;
58
typedef
IInternalLinearSolver<matrix_type, vector_type>
solver_type;
59
static
algebra_type* algebra_factory() {
return
DoKLinearAlgebraFactory(); }
60
static
solver_type* solver_factory(IMessagePassingMng* p_mng)
61
{
62
return
DoKLinearSolverFactory(p_mng);
63
}
64
static
BackEndId name() {
return
"DoK"
; }
65
};
66
67
/*---------------------------------------------------------------------------*/
68
69
}
// namespace Alien
70
71
/*---------------------------------------------------------------------------*/
Alien::DoKMatrix
Definition
DoKMatrixT.h:39
Alien::DoKVector
Definition
DoKVector.h:43
Alien::IInternalLinearAlgebra
Internal linear algebra interface.
Definition
IInternalLinearAlgebraT.h:34
Alien::IInternalLinearSolver
Internal linear solver interface.
Definition
IInternalLinearSolverT.h:37
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::DoK
Definition
DoKBackEnd.h:49
core
alien
kernels
dok
DoKBackEnd.h
Generated on
for Alien by
1.16.1