Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VariableArray.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* VariableArray.h (C) 2000-2024 */
9/* */
10/* Variable tableau 1D. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_VARIABLE_ARRAY_H
13#define ARCANE_VARIABLE_ARRAY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/Variable.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \internal
29 * \brief Implémentation d'une variable sur un tableau 1D.
30 *
31 * Les méthodes de cette classe sont internes à %Arcane.
32 */
33template<class T>
35: public Variable
36{
37 public:
38
39 typedef Array<T> ValueType;
40 typedef IArrayDataT<T> ValueDataType;
42 typedef Variable BaseClass;
43
44 protected:
45
46 //! Construit une variable basée sur la référence \a v
48
49 public:
50
51 ~VariableArrayT() override;
52
53 public:
54
55 static ARCANE_CORE_EXPORT ThatClass* getReference(IVariable* var);
56 static ARCANE_CORE_EXPORT ThatClass* getReference(const VariableBuildInfo& v,const VariableInfo& vi);
57
58 public:
59
60 Integer checkIfSame(IDataReader* reader,int max_print,bool compare_ghost) override;
61 void synchronize() override;
62 void synchronize(Int32ConstArrayView local_ids) override;
63 virtual void resizeWithReserve(Integer n,Integer nb_additional);
64 Real allocatedMemory() const override;
65 Integer checkIfSync(int max_print) override;
66 bool initialize(const ItemGroup& group,const String& value) override;
67 Integer nbElement() const override { return m_value->view().size(); }
68 ARCCORE_DEPRECATED_2021("use valueView() instead")
69 ARCANE_CORE_EXPORT ValueType& value();
70 ConstArrayView<T> constValueView() const { return m_value->view(); }
71 ConstArrayView<T> valueView() const { return m_value->view(); }
72 ArrayView<T> valueView() { return m_value->view(); }
73 ARCANE_CORE_EXPORT void shrinkMemory() override;
74 ARCANE_CORE_EXPORT Integer capacity();
75 void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) override;
77 Int32ConstArrayView second_source,
78 Int32ConstArrayView destination) override;
79 void compact(Int32ConstArrayView old_to_new_ids) override;
80 void print(std::ostream& o) const override;
81 void setIsSynchronized() override;
82 void setIsSynchronized(const ItemGroup& item_group) override;
83 IData* data() override { return m_value; }
84 const IData* data() const override { return m_value; }
85
86 virtual void fill(const T& v);
87 virtual void fill(const T& v,const ItemGroup& item_group);
88
89 public:
90
91 ARCANE_CORE_EXPORT void swapValues(ThatClass& rhs);
92 ValueDataType* trueData() { return m_value; }
93
94 protected:
95
96 void _internalResize(Integer new_size,Integer nb_additional_element) override;
97 Integer _checkIfSameOnAllReplica(IParallelMng* replica_pm,int max_print) override;
98
99 private:
100
101 ValueDataType* m_value;
102};
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107} // End namespace Arcane
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
111
112#endif
Interface de lecture des données d'une variable.
Definition IDataReader.h:41
Interface d'une donnée.
Definition IData.h:33
Groupe d'entités de maillage.
Definition ItemGroup.h:49
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 shrinkMemory() override
Libère l'éventuelle mémoire supplémentaire allouée pour les données.
Integer nbElement() const override
Nombre d'éléments de la variable.
void compact(Int32ConstArrayView old_to_new_ids) override
Compacte les valeurs de la variable.
bool initialize(const ItemGroup &group, const String &value) override
Initialise la variable.
void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) override
Copie les valeurs des entités numéros source dans les entités numéro destination.
const IData * data() const override
Données associées à la variable.
IData * data() override
Données associées à la variable.
void print(std::ostream &o) const override
Imprime les valeurs de la variable sur le flot o.
void setIsSynchronized() override
Indique que la variable est synchronisée.
Real allocatedMemory() const override
Taille mémoire (en Koctet) utilisée par la variable.
void synchronize() override
Synchronise la variable.
Paramètres nécessaires à la construction d'une variable.
Infos caractérisant une variable.
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
-*- 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
Int32 Integer
Type représentant un entier.