Arcane  v3.14.10.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-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/* VariableScalar.h (C) 2000-2024 */
9/* */
10/* Variable scalaire. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_VARIABLE_SCALAR_H
13#define ARCANE_VARIABLE_SCALAR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/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;
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 Integer checkIfSame(IDataReader* reader,int max_print,bool compare_ghost) override;
55 void synchronize() override;
56 void synchronize(Int32ConstArrayView local_ids) override;
57 Real allocatedMemory() const override;
58 Integer nbElement() const override { return 1; }
59 ValueType& value() { return m_value->value(); }
60 void shrinkMemory() override { }
61 void print(std::ostream& o) const override;
62 IData* data() override { return m_value; }
63 const IData* data() const override { return m_value; }
64
65 public:
66
67 void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) override;
69 Int32ConstArrayView second_source,
70 Int32ConstArrayView destination) override;
71 void compact(Int32ConstArrayView new_to_old_ids) override;
72 void setIsSynchronized() override;
73 void setIsSynchronized(const ItemGroup& item_group) override;
74
75 public:
76
77 ARCANE_CORE_EXPORT void swapValues(ThatClass& rhs);
78
79 protected:
80
81 void _internalResize(Integer new_size,Integer nb_additional_element) override
82 {
83 ARCANE_UNUSED(new_size);
84 ARCANE_UNUSED(nb_additional_element);
85 }
86 Integer _checkIfSameOnAllReplica(IParallelMng* replica_pm,int max_print) override;
87
88 private:
89
90 ValueDataType* m_value;
91};
92
93/*---------------------------------------------------------------------------*/
94/*---------------------------------------------------------------------------*/
95
96} // End namespace Arcane
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101#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
Paramètres nécessaires à la construction d'une variable.
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.
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...
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.
const IData * data() const override
Données associées à la variable.
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-