Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
RedistributedMatrix.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/data/IMatrix.h>
23#include <alien/kernels/redistributor/Redistributor.h>
24#include <alien/ref/AlienRefSemanticPrecomp.h>
25#include <alien/utils/ICopyOnWriteObject.h>
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Alien
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class ALIEN_REFSEMANTIC_EXPORT RedistributedMatrix final : public IMatrix
37{
38 public:
39 RedistributedMatrix() = delete;
40 RedistributedMatrix(RedistributedMatrix&& matrix) = delete;
41 RedistributedMatrix(IMatrix& matrix, Redistributor& redist);
42
43 ~RedistributedMatrix();
44
45 RedistributedMatrix& operator=(RedistributedMatrix&& matrix) = delete;
46
47 RedistributedMatrix(const RedistributedMatrix& matrix) = delete;
48 RedistributedMatrix& operator=(const RedistributedMatrix& matrix) = delete;
49
50 public:
51 // Pour les expressions
52 void visit(ICopyOnWriteMatrix&) const;
53
54 const MatrixDistribution& distribution() const;
55
56 const ISpace& rowSpace() const;
57 const ISpace& colSpace() const;
58
59 void setUserFeature(String feature);
60
61 bool hasUserFeature(String feature) const;
62
63 public:
65
66 const MultiMatrixImpl* impl() const;
67
68 private:
69 std::shared_ptr<MultiMatrixImpl> m_impl;
70};
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75} // namespace Alien
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
IMatrix.h.
MatrixDistribution.h.
IMatrix()
Constructor.
Definition IMatrix.h:54
Interface for algebraic space objects.
Definition ISpace.h:44
Computes a matrix distribution.
Multi matrices representation container.
void visit(ICopyOnWriteMatrix &) const
Visit method.
MultiMatrixImpl * impl()
Get the multimatrix implementation.
const ISpace & colSpace() const
Get col space associated to the matrix.
const ISpace & rowSpace() const
Get row space associated to the matrix.
Change MultiObj current representation to another communicator.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition BackEnd.h:17