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