Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Array2Variable.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/*---------------------------------------------------------------------------*/
8/* Array2Variable.h (C) 2000-2024 */
9/* */
10/* Variable tableau 2D. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ARRAY2VARIABLE_H
13#define ARCANE_ARRAY2VARIABLE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Array2.h"
18
19#include "arcane/core/Variable.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \internal
31 * \brief Variable sur un tableau 2D.
32 */
33template<class T>
35: public Variable
36{
37 public:
38
39 using ValueType = Array2<T>;
40 using ValueDataType = IArray2DataT<T>;
42 using BaseClass = Variable;
43
44 protected:
45
46 //! Construit une variable basée sur la référence \a v
48
49 public:
50
51 static ARCANE_CORE_EXPORT ThatClass* getReference(IVariable* var);
52 static ARCANE_CORE_EXPORT ThatClass* getReference(const VariableBuildInfo& v,const VariableInfo& vi);
53
54 public:
55
56 Integer checkIfSame(IDataReader* reader,int max_print,bool compare_ghost) override;
57 void synchronize() override;
58 void synchronize(Int32ConstArrayView local_ids) override;
59 Real allocatedMemory() const override;
60 Integer checkIfSync(int max_print) override;
61 Integer nbElement() const override { return m_data->view().totalNbElement(); }
62 ARCCORE_DEPRECATED_2021("Use valueView() instead")
63 virtual ValueType& value();
64 ConstArray2View<T> constValueView() const { return m_data->view(); }
65 ConstArray2View<T> valueView() const { return m_data->view(); }
66 Array2View<T> valueView() { return m_data->view(); }
67 void shrinkMemory() override;
68 void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) override;
70 Int32ConstArrayView second_source,
71 Int32ConstArrayView destination) override;
72 void compact(Int32ConstArrayView old_to_new_ids) override;
73 void print(std::ostream& o) const override;
74 void setIsSynchronized() override;
75 void setIsSynchronized(const ItemGroup& item_group) override;
76 IData* data() override { return m_data; }
77 const IData* data() const override { return m_data; }
78
79 public:
80
81 ARCANE_CORE_EXPORT void directResize(Integer dim1);
82 ARCANE_CORE_EXPORT void directResize(Integer dim1,Integer dim2);
83 ARCANE_CORE_EXPORT void directResizeAndReshape(const ArrayShape& shape);
84 ARCANE_CORE_EXPORT void swapValues(ThatClass& rhs);
85 ARCANE_CORE_EXPORT void fillShape(ArrayShape& shape);
86 ValueDataType* trueData() { return m_data; }
87
88 protected:
89
90 void _internalResize(Integer new_size,Integer added_memory) override;
91 Integer _checkIfSameOnAllReplica(IParallelMng* replica_pm,int max_print) override;
92
93 private:
94
95 ValueDataType* m_data = nullptr;
96};
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101} // End namespace Arcane
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106#endif
107
void compact(Int32ConstArrayView old_to_new_ids) override
Compacte les valeurs de la variable.
void setIsSynchronized() override
Indique que la variable est synchronisée.
Integer nbElement() const override
Nombre d'éléments de la variable.
IData * data() override
Données associées à la variable.
void copyItemsMeanValues(Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination) override
Copie les moyennes des valeurs des entités numéros first_source et second_source dans les entités num...
void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) override
Copie les valeurs des entités numéros source dans les entités numéro destination.
void synchronize() override
Synchronise la variable.
const IData * data() const override
Données associées à la variable.
Real allocatedMemory() const override
Taille mémoire (en Koctet) utilisée par la variable.
void print(std::ostream &o) const override
Imprime les valeurs de la variable sur le flot o.
void shrinkMemory() override
Libère l'éventuelle mémoire supplémentaire allouée pour les données.
Forme d'un tableau.
Definition ArrayShape.h:40
Interface de lecture des données d'une variable.
Definition IDataReader.h:41
Interface d'une donnée.
Definition IData.h:33
Paramètres nécessaires à la construction d'une variable.
Infos caractérisant une variable.
Classe représentant un tableau 2D classique.
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:640