Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
PrivateVariableScalar.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/* PrivateVariableScalar.h (C) 2000-2024 */
9/* */
10/* Classe gérant une variable sur une entité du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_PRIVATEVARIABLESCALAR_H
13#define ARCANE_PRIVATEVARIABLESCALAR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/MeshVariableRef.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \ingroup Variable
29 * \brief Classe de factorisation des variables scalaires sur des entités du maillage.
30 */
31template<typename DataType>
33: public MeshVariableRef
34{
35 protected:
36
37 typedef DataType& DataTypeReturnReference;
38 typedef VariableArrayT<DataType> PrivatePartType;
39
40 protected:
41
42 //! Construit une référence liée au module \a module
43 ARCANE_CORE_EXPORT PrivateVariableScalarT(const VariableBuildInfo& vb, const VariableInfo& vi);
44
45 protected:
46
47 ARCANE_CORE_EXPORT PrivateVariableScalarT(const PrivateVariableScalarT& rhs);
48 ARCANE_CORE_EXPORT PrivateVariableScalarT(IVariable* var);
49 ARCANE_CORE_EXPORT PrivateVariableScalarT();
50
51 ARCANE_CORE_EXPORT void operator=(const PrivateVariableScalarT& rhs);
52
53 public:
54
55 ArrayView<DataType> asArray(){ return m_view; }
56 ConstArrayView<DataType> asArray() const { return m_view; }
57 Integer arraySize() const { return 0; }
58
59 ARCANE_CORE_EXPORT void updateFromInternal();
60
61 ARCANE_CORE_EXPORT ItemGroup itemGroup() const;
62
63 public:
64
65 SmallSpan<DataType> _internalSpan() { return m_view; }
66 SmallSpan<const DataType> _internalSpan() const { return m_view; }
67 SmallSpan<const DataType> _internalConstSpan() const { return m_view; }
68
69 protected:
70
71 void _internalInit() { MeshVariableRef::_internalInit(m_private_part); }
72
73 protected:
74
75 const DataType& _value(Integer local_id) const { return m_view[local_id]; }
76 DataTypeReturnReference _value(Integer local_id) { return m_view[local_id]; }
77
78 const DataType& _putValue(Integer index,const DataType& v)
79 {
80 return (_value(index) = v);
81 }
82
83 protected:
84
85 PrivatePartType* m_private_part = nullptr;
86
87 ArrayView<DataType> m_view;
88
89 IMemoryAccessTrace* m_memory_trace = nullptr;
90};
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
95} // End namespace Arcane
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
99
100#endif
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
MeshVariableRef(const VariableBuildInfo &vb)
Construit une référence liée au module module.
Integer arraySize() const
Si la variable est un tableau, retourne sa dimension, sinon retourne 0.
void updateFromInternal()
Mise à jour à partir de la partie interne.
PrivateVariableScalarT(const VariableBuildInfo &vb, const VariableInfo &vi)
Construit une référence liée au module module.
Vue d'un tableau d'éléments de type T.
Definition Span.h:673
Paramètres nécessaires à la construction d'une variable.
Infos caractérisant une variable.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.