Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
IMatrixImpl.h
Go to the documentation of this file.
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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
12
13#pragma once
14
15#include <arccore/base/String.h>
16
18#include <alien/utils/ObjectWithTrace.h>
19#include <alien/utils/Precomp.h>
20#include <alien/utils/time_stamp/Timestamp.h>
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Alien
26{
27
28typedef String BackEndId;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33class MultiMatrixImpl;
34class ISpace;
35class Block;
36class VBlock;
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
45class ALIEN_EXPORT IMatrixImpl : public Timestamp
46, public ObjectWithTrace
47{
48 public:
50 typedef Arccore::Real ValueType;
51
52 public:
58 explicit IMatrixImpl(const MultiMatrixImpl* multi_impl, BackEndId backend = "");
59
61 virtual ~IMatrixImpl() override = default;
62
63 IMatrixImpl(const IMatrixImpl& src) = delete;
64 IMatrixImpl(IMatrixImpl&& src) = delete;
65 IMatrixImpl& operator=(const IMatrixImpl& src) = delete;
66 IMatrixImpl& operator=(IMatrixImpl&& src) = delete;
67
68 public:
70 virtual void clear() {}
71
76 virtual const ISpace& rowSpace() const;
77
82 virtual const ISpace& colSpace() const;
83
88 virtual const MatrixDistribution& distribution() const;
89
94 virtual BackEndId backend() const { return m_backend; }
95
105 virtual const Block* block() const;
106
116 virtual const VBlock* vblock() const;
117
127 virtual const VBlock* rowBlock() const;
128
138 virtual const VBlock* colBlock() const;
139
140 const MultiMatrixImpl* impls() const {
141 return m_multi_impl;
142 }
143 protected:
147 BackEndId m_backend;
148};
149
150/*---------------------------------------------------------------------------*/
151/*---------------------------------------------------------------------------*/
152
153} // namespace Alien
154
155/*---------------------------------------------------------------------------*/
156/*---------------------------------------------------------------------------*/
MatrixDistribution.h.
Block elements for block matrices.
Definition Block.h:45
virtual void clear()
Wipe out internal data.
Definition IMatrixImpl.h:70
virtual BackEndId backend() const
Definition IMatrixImpl.h:94
BackEndId m_backend
Backend id.
Arccore::Real ValueType
Type of the values stored in the matrix.
Definition IMatrixImpl.h:50
const MultiMatrixImpl * m_multi_impl
Pointer on matrices implementation.
virtual ~IMatrixImpl() override=default
Free resources.
IMatrixImpl(const MultiMatrixImpl *multi_impl, BackEndId backend="")
Constructor.
Interface for algebraic space objects.
Definition ISpace.h:44
Computes a matrix distribution.
Multi matrices representation container.
Variable size block elements for block matrices.
Definition VBlock.h:46
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition BackEnd.h:17