Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VariableScalar.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/* VariableScalar.h (C) 2000-2025 */
9/* */
10/* Variable scalaire. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_VARIABLESCALAR_H
13#define ARCANE_CORE_VARIABLESCALAR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/Variable.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \internal
29 * \brief Variable scalaire.
30 */
31template<class T>
33: public Variable
34{
35 public:
36
37 typedef T ValueType;
38 typedef IScalarDataT<T> ValueDataType;
39 typedef VariableScalarT<T> ThatClass;
40 typedef Variable BaseClass;
41
42 protected:
43
44 //! Construit une variable basée sur la référence \a v
46
47 public:
48
49 static ARCANE_CORE_EXPORT ThatClass* getReference(const VariableBuildInfo& v,const VariableInfo& vi);
50 static ARCANE_CORE_EXPORT ThatClass* getReference(IVariable* var);
51
52 public:
53
54 void synchronize() override;
55 void synchronize(Int32ConstArrayView local_ids) override;
56 Real allocatedMemory() const override;
57 Integer nbElement() const override { return 1; }
58 ValueType& value() { return m_value->value(); }
59 void shrinkMemory() override { }
60 void print(std::ostream& o) const override;
61 IData* data() override { return m_value; }
62 const IData* data() const override { return m_value; }
63
64 public:
65
66 void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) override;
68 Int32ConstArrayView second_source,
69 Int32ConstArrayView destination) override;
70 void compact(Int32ConstArrayView new_to_old_ids) override;
71 void setIsSynchronized() override;
72 void setIsSynchronized(const ItemGroup& item_group) override;
73
74 public:
75
76 ARCANE_CORE_EXPORT void swapValues(ThatClass& rhs);
77
78 protected:
79
80 void _internalResize(const VariableResizeArgs& resize_args) override
81 {
82 ARCANE_UNUSED(resize_args);
83 }
85
86 private:
87
88 ValueDataType* m_value;
89};
90
91/*---------------------------------------------------------------------------*/
92/*---------------------------------------------------------------------------*/
93
94} // End namespace Arcane
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
99#endif
Interface d'une donnée.
Definition IData.h:33
virtual DataType & value()=0
Valeur de la donnée.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
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.
IData * data() override
Données associées à 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 shrinkMemory() override
Libère l'éventuelle mémoire supplémentaire allouée pour les données.
VariableScalarT(const VariableBuildInfo &v, const VariableInfo &vi)
Construit une variable basée sur la référence v.
void setIsSynchronized(const ItemGroup &item_group) override
Indique que la variable est synchronisée sur le group item_group.
void setIsSynchronized() override
Indique que la variable est synchronisée.
void synchronize() override
Synchronise la variable.
Integer nbElement() const override
Nombre d'éléments de 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...
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 compact(Int32ConstArrayView new_to_old_ids) override
Compacte les valeurs de la variable.
Real allocatedMemory() const override
Taille mémoire (en Koctet) utilisée par la variable.
void synchronize(Int32ConstArrayView local_ids) override
Synchronise la variable sur une liste d'entités.
const IData * data() const override
Données associées à la variable.
Variable(const VariableBuildInfo &v, const VariableInfo &vi)
Créé une variable lié à la référence v.
Definition Variable.cc:335
-*- 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.