Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshMaterialModifier.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/* MeshMaterialModifier.h (C) 2000-2024 */
9/* */
10/* Objet permettant de modifier les matériaux. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MESHMATERIALMODIFIER_H
13#define ARCANE_MATERIALS_MESHMATERIALMODIFIER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane::Materials
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \ingroup ArcaneMaterials
30 * \brief Objet permettant de modifier les matériaux ou les milieux.
31 *
32 * Cette classe fournit les méthodes pour modifier la liste des
33 * mailles composant un matériaux ou un milieu.
34 *
35 * Les modifications se font directement sur les matériaux. Les milieux
36 * correspondants sont automatiquement mis à jour. Il est possible
37 * soit d'ajouter des mailles dans un matériaux (addCells())
38 * soit d'en supprimer (removeCells()). Les modifications ne sont
39 * prise en compte que lors de l'appel à endUpdate(). Cette dernière méthode
40 * n'a pas besoin d'être appelée explicitement: elle l'est automatiquement
41 * lors de l'appel au destructeur.
42 * \todo ajouter exemple.
43 */
44class ARCANE_MATERIALS_EXPORT MeshMaterialModifier
45{
46 public:
47
49 ~MeshMaterialModifier() ARCANE_NOEXCEPT_FALSE;
50
51 public:
52
53 /*!
54 * \brief Ajoute les mailles d'indices locaux \a ids au matériau \a mat.
55 */
56 void addCells(IMeshMaterial* mat, SmallSpan<const Int32> ids);
57
58 /*!
59 * \brief Supprime les mailles d'indices locaux \a ids au matériau \a mat.
60 */
61 void removeCells(IMeshMaterial* mat, SmallSpan<const Int32> ids);
62
63 /*!
64 * \brief Met à jour les structures après une modification.
65 *
66 * Cette méthode est automatiquement appelée dans le destructeur de
67 * l'instance si nécessaire.
68 */
69 void endUpdate();
70
71 /*!
72 * \brief Indique si on copie les valeurs entre pure et partiel lors
73 * d'un changement d'état de la maille.
74 *
75 * Si vrai (le défaut), alors on recopie la valeur partielle
76 * d'une maille dans la valeur pure lors du passage de la maille partielle
77 * en maille pure.
78 */
79 void setDoCopyBetweenPartialAndPure(bool v);
80
81 /*!
82 * \brief Indique si on initialise les nouvelles mailles matériaux ou milieux créées
83 *
84 * Si vrai (le défaut), alors les mailles constituants nouvellement créées
85 * sont initialisées. La valeur utilisée pour l'initialisation dépend de
86 * IMeshMaterialMng::isDataInitialisationWithZero().
87 */
88 void setDoInitNewItems(bool v);
89
90 /*!
91 * \brief Indique si on conserve les tableaux de travail entre les modifications
92 *
93 * Si vrai (le défaut), les tableaux de travail sont conservés entres les
94 * instances de cette classe. Cela permet d'éviter de réallouer ces tableaux entre
95 * chaque utilisation de cette classe mais en contrepartie la consommation
96 * mémoire peut augmenter.
97 */
98 void setPersistantWorkBuffer(bool v);
99
100 private:
101
102 MeshMaterialModifierImpl* m_impl = nullptr;
103 bool m_has_update = false;
104 void _checkHasUpdate();
105};
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
110} // namespace Arcane::Materials
111
112/*---------------------------------------------------------------------------*/
113/*---------------------------------------------------------------------------*/
114
115#endif
Déclarations des types utilisés dans Arcane.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Interface d'un matériau d'un maillage.
Objet permettant de modifier les matériaux ou les milieux.
Vue d'un tableau d'éléments de type T.
Definition Span.h:670
Active toujours les traces dans les parties Arcane concernant les matériaux.