Alien
1.3.0
Developer documentation
Loading...
Searching...
No Matches
CompositeMultiMatrixImpl.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 <memory>
22
#include <tuple>
23
24
#include <
alien/core/impl/MultiMatrixImpl.h
>
25
26
/*---------------------------------------------------------------------------*/
27
/*---------------------------------------------------------------------------*/
28
29
namespace
Alien
30
{
31
32
/*---------------------------------------------------------------------------*/
33
/*---------------------------------------------------------------------------*/
34
35
namespace
CompositeKernel
36
{
37
38
/*---------------------------------------------------------------------------*/
39
/*---------------------------------------------------------------------------*/
40
41
class
Space
;
42
43
/*---------------------------------------------------------------------------*/
44
/*---------------------------------------------------------------------------*/
45
46
struct
ObjectWithTwoCompositeSpaces
47
{
48
ObjectWithTwoCompositeSpaces() =
default
;
49
50
std::shared_ptr<Space> m_composite_row_space;
51
std::shared_ptr<Space> m_composite_col_space;
52
};
53
54
/*---------------------------------------------------------------------------*/
55
/*---------------------------------------------------------------------------*/
56
57
class
ALIEN_EXPORT MultiMatrixImpl
58
:
private
std::tuple<std::shared_ptr<Space>, std::shared_ptr<Space>>
59
,
public
Alien::MultiMatrixImpl
60
{
61
public
:
62
MultiMatrixImpl();
63
64
virtual
~MultiMatrixImpl
() {}
65
66
Space
& rowSpace() {
return
*std::get<0>(*this).get(); }
67
Space
& colSpace() {
return
*std::get<1>(*this).get(); }
68
};
69
70
/*---------------------------------------------------------------------------*/
71
/*---------------------------------------------------------------------------*/
72
73
}
// namespace CompositeKernel
74
75
/*---------------------------------------------------------------------------*/
76
/*---------------------------------------------------------------------------*/
77
78
}
// namespace Alien
79
80
/*---------------------------------------------------------------------------*/
81
/*---------------------------------------------------------------------------*/
MultiMatrixImpl.h
MultiMatrixImpl.h.
Alien::CompositeKernel::MultiMatrixImpl::~MultiMatrixImpl
virtual ~MultiMatrixImpl()
Free resources.
Definition
CompositeMultiMatrixImpl.h:64
Alien::CompositeKernel::Space
Definition
CompositeSpace.h:41
Alien::MultiMatrixImpl
Multi matrices representation container.
Definition
MultiMatrixImpl.h:69
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
core
alien
kernels
composite
CompositeMultiMatrixImpl.h
Generated on
for Alien by
1.16.1