Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
core/materials/MatVarIndex.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/* MatVarIndex.h (C) 2000-2024 */
9/* */
10/* Index sur les variables matériaux. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_MATVARINDEX_H
13#define ARCANE_CORE_MATERIALS_MATVARINDEX_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/materials/MaterialsCoreGlobal.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane::Materials
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
39{
40 public:
41
42 constexpr ARCCORE_HOST_DEVICE MatVarIndex(Int32 array_index, Int32 value_index)
43 : m_array_index(array_index)
44 , m_value_index(value_index)
45 {
46 }
47 ARCCORE_HOST_DEVICE MatVarIndex() {}
48
49 public:
50
52 constexpr ARCCORE_HOST_DEVICE Int32 arrayIndex() const { return m_array_index; }
53
55 constexpr ARCCORE_HOST_DEVICE Int32 valueIndex() const { return m_value_index; }
56
58 constexpr ARCCORE_HOST_DEVICE void setIndex(Int32 array_index, Int32 value_index)
59 {
60 m_array_index = array_index;
61 m_value_index = value_index;
62 }
63
65 constexpr ARCCORE_HOST_DEVICE void reset()
66 {
67 m_array_index = (-1);
68 m_value_index = (-1);
69 }
70
72 constexpr ARCCORE_HOST_DEVICE bool null() const
73 {
74 return m_value_index == (-1);
75 }
76
78 constexpr ARCCORE_HOST_DEVICE bool isNull() const
79 {
80 return m_value_index == (-1);
81 }
82
84 constexpr ARCCORE_HOST_DEVICE friend bool
86 {
87 if (mv1.arrayIndex() != mv2.arrayIndex())
88 return false;
89 return mv1.valueIndex() == mv2.valueIndex();
90 }
91
93 constexpr ARCCORE_HOST_DEVICE friend bool
98
100 ARCANE_CORE_EXPORT friend std::ostream&
101 operator<<(std::ostream& o, const MatVarIndex& mvi);
102
103 private:
104
105 Int32 m_array_index;
106 Int32 m_value_index;
107};
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
116{
117 public:
118
119 explicit ARCCORE_HOST_DEVICE PureMatVarIndex(Int32 idx)
120 : m_index(idx)
121 {}
122
123 public:
124
125 Int32 ARCCORE_HOST_DEVICE valueIndex() const { return m_index; }
126
127 private:
128
129 Int32 m_index;
130};
131
132/*---------------------------------------------------------------------------*/
133/*---------------------------------------------------------------------------*/
134
135} // namespace Arcane::Materials
136
137/*---------------------------------------------------------------------------*/
138/*---------------------------------------------------------------------------*/
139
140#endif
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
Représente un index sur les variables matériaux et milieux.
constexpr ARCCORE_HOST_DEVICE Int32 arrayIndex() const
Retourne l'indice du tableau de valeur dans la liste des variables.
constexpr ARCCORE_HOST_DEVICE bool isNull() const
Indique si l'instance représente l'entité nulle.
constexpr ARCCORE_HOST_DEVICE friend bool operator==(MatVarIndex mv1, MatVarIndex mv2)
Opérateur de comparaison.
constexpr ARCCORE_HOST_DEVICE void reset()
Positionne l'entité à l'instance nulle.
constexpr ARCCORE_HOST_DEVICE Int32 valueIndex() const
Retourne l'indice dans le tableau de valeur.
constexpr ARCCORE_HOST_DEVICE friend bool operator!=(MatVarIndex mv1, MatVarIndex mv2)
Opérateur de comparaison.
constexpr ARCCORE_HOST_DEVICE bool null() const
Indique si l'instance représente l'entité nulle.
friend std::ostream & operator<<(std::ostream &o, const MatVarIndex &mvi)
Opérateur d'écriture.
constexpr ARCCORE_HOST_DEVICE void setIndex(Int32 array_index, Int32 value_index)
Positionne l'index.
Index d'un Item matériaux pure dans une variable.
Active toujours les traces dans les parties Arcane concernant les matériaux.