Arcane  v3.14.10.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
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Classe de base d'une variable sur des entités du maillage.
Classe de factorisation des variables scalaires sur des entités du maillage.
Integer arraySize() const
Si la variable est un tableau, retourne sa dimension, sinon retourne 0.
void updateFromInternal()
Mise à jour à partir de la partie interne.
Paramètres nécessaires à la construction d'une variable.
Infos caractérisant une variable.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Vue d'un tableau d'éléments de type T.
Definition Span.h:670
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-