Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
internal/MeshComponentPartData.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/* MeshComponentPartData.h (C) 2000-2024 */
9/* */
10/* Données séparées en parties pures et impures d'un constituant. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_MESHCOMPONENTPARTDATA_H
13#define ARCANE_MATERIALS_INTERNAL_MESHCOMPONENTPARTDATA_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/UniqueArray.h"
19#include "arcane/utils/FixedArray.h"
20
21#include "arcane/core/materials/MatVarIndex.h"
22#include "arcane/core/materials/ComponentItemInternal.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::Materials
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
39: public TraceAccessor
40{
41 public:
42
44
45 public:
46
47 Int32 impureVarIdx() const { return m_impure_var_idx; }
48
49 IMeshComponent* component() const { return m_component; }
50
51 void checkValid();
52
55
58
61
62 /*
63 * \brief Fonctor pour recalculer les parties pures et impures suite à une modification.
64 *
65 * Si ce fonctor n'est pas positionné, alors il faut mettre à jour manuellement
66 * l'instance via l'appel à _setFromMatVarIndexes(). \a func doit rester valide
67 * durant toute la durée de vie de cette instance
68 */
69 void setRecomputeFunctor(IFunctor* func) { m_compute_functor = func; }
70
71 void setNeedRecompute() { m_is_need_recompute = true; }
72
73 public:
74
75 void _setConstituentListView(const ConstituentItemLocalIdListView& v);
76 void _setFromMatVarIndexes(ConstArrayView<MatVarIndex> matvar_indexes, RunQueue& queue);
77 void _setFromMatVarIndexes(ConstArrayView<MatVarIndex> globals,
79
80 private:
81
84
86 Int32 m_impure_var_idx = -1;
87
90
93
96
97 IFunctor* m_compute_functor = nullptr;
98 bool m_is_need_recompute = false;
99
100 public:
101
102 // Cette fonction est privée mais doit être rendue publique pour compiler avec CUDA.
104
105 private:
106
107 void _checkNeedRecompute();
108};
109
110/*---------------------------------------------------------------------------*/
111/*---------------------------------------------------------------------------*/
112
113} // End namespace Arcane::Materials
114
115/*---------------------------------------------------------------------------*/
116/*---------------------------------------------------------------------------*/
117
118#endif
File d'exécution pour un accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue sur une partie pure ou partielles des entités d'un composant.
Vue sur une instance de ConstituentItemLocalIdList.
Interface d'un composant (matériau ou milieu) d'un maillage.
Données d'une partie (pure ou partielle) d'un constituant.
FixedArray< UniqueArray< Int32 >, 2 > m_items_internal_indexes
Liste des indices dans m_items_internal de chaque maille matériau.
ComponentPurePartItemVectorView pureView()
Vue sur la partie pure.
ConstituentItemLocalIdListView m_constituent_list_view
Liste des ComponentItem pour ce constituant.
Int32 m_impure_var_idx
Indice du constituant pour l'accès aux valeurs partielles.
FixedArray< UniqueArray< Int32 >, 2 > m_value_indexes
Liste des valueIndex() de chaque partie.
void _notifyValueIndexesChanged(RunQueue *queue)
Notification de changement des m_values_indexes.
ComponentImpurePartItemVectorView impureView()
Vue sur la partie impure.
IMeshComponent * m_component
Gestionnaire de constituants.
ComponentPartItemVectorView partView(eMatPart part)
Vue sur la partie part.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.
eMatPart
Partie d'un composant.