Arcane  v3.16.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
VariableArray.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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-2025 */
9/* */
10/* Variable tableau 1D. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_VARIABLEARRAY_H
13#define ARCANE_CORE_VARIABLEARRAY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/Variable.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
33template<class T>
35: public Variable
36{
37 public:
38
39 typedef Array<T> ValueType;
40 typedef IArrayDataT<T> ValueDataType;
41 typedef VariableArrayT<T> ThatClass;
42 typedef Variable BaseClass;
43
44 protected:
45
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 void synchronize() override;
61 void synchronize(Int32ConstArrayView local_ids) override;
62 virtual void resizeWithReserve(Integer n,Integer nb_additional);
63 Real allocatedMemory() const override;
64 bool initialize(const ItemGroup& group,const String& value) override;
65 Integer nbElement() const override { return m_value->view().size(); }
66 ARCCORE_DEPRECATED_2021("use valueView() instead")
67 ARCANE_CORE_EXPORT ValueType& value();
68 ConstArrayView<T> constValueView() const { return m_value->view(); }
69 ConstArrayView<T> valueView() const { return m_value->view(); }
70 ArrayView<T> valueView() { return m_value->view(); }
71 ARCANE_CORE_EXPORT void shrinkMemory() override;
72 ARCANE_CORE_EXPORT Integer capacity();
73 void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) override;
75 Int32ConstArrayView second_source,
76 Int32ConstArrayView destination) override;
77 void compact(Int32ConstArrayView old_to_new_ids) override;
78 void print(std::ostream& o) const override;
79 void setIsSynchronized() override;
80 void setIsSynchronized(const ItemGroup& item_group) override;
81 IData* data() override { return m_value; }
82 const IData* data() const override { return m_value; }
83
84 virtual void fill(const T& v);
85 virtual void fill(const T& v,const ItemGroup& item_group);
86
87 public:
88
89 ARCANE_CORE_EXPORT void swapValues(ThatClass& rhs);
90 ValueDataType* trueData() { return m_value; }
91
92 protected:
93
94 void _internalResize(const VariableResizeArgs& resize_args) override;
96
97 private:
98
99 ValueDataType* m_value;
100};
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105} // End namespace Arcane
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
110#endif
Tableau d'items de types quelconques.
Vue constante d'un tableau de type T.
Interface d'une donnée tableau d'un type T.
Definition IData.h:292
virtual ConstArrayView< DataType > view() const =0
Vue constante sur la donnée.
Interface d'une donnée.
Definition IData.h:33
Interface d'une variable.
Definition IVariable.h:56
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Chaîne de caractères unicode.
VariableArrayT(const VariableBuildInfo &v, const VariableInfo &vi)
Construit une variable basée sur la référence v.
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 synchronize(Int32ConstArrayView local_ids) override
Synchronise la variable sur une liste d'entités.
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.
void setIsSynchronized(const ItemGroup &item_group) override
Indique que la variable est synchronisée sur le group item_group.
const IData * data() const override
Données associées à la variable.
IData * data() override
Données associées à la variable.
VariableComparerResults _compareVariable(const VariableComparerArgs &compare_args) final
Comparaison de valeurs entre variables.
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.
Arguments des méthodes de VariableComparer.
Résultats d'une opération de comparaison.
Infos caractérisant une variable.
Variable(const VariableBuildInfo &v, const VariableInfo &vi)
Créé une variable lié à la référence v.
Definition Variable.cc:336
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
double Real
Type représentant un réel.