Arcane  v3.14.10.0
Documentation développeur
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/*---------------------------------------------------------------------------*/
31template<typename DataType>
33: public MeshVariableRef
34{
35 protected:
36
37 typedef DataType& DataTypeReturnReference;
39
40 protected:
41
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
Interface d'une variable.
Definition IVariable.h:54
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
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.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-