Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
core/materials/IMeshBlock.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IMeshBlock.h (C) 2000-2022 */
9/* */
10/* Interface d'un bloc d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_IMESHBLOCK_H
13#define ARCANE_CORE_MATERIALS_IMESHBLOCK_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemTypes.h"
18#include "arcane/core/materials/MaterialsCoreGlobal.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane::Materials
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \ingroup ArcaneMaterials
30 * \brief Interface d'un bloc d'un maillage.
31 *
32 * Les blocs sont créés via IMeshMaterialMng::createBlock().
33 *
34 * Les blocs ne peuvent pas être détruits et doivent être créés lors
35 * de l'initialisation.
36 *
37 * La notion de bloc est optionnelle et il n'est pas nécessaire d'avoir
38 * des blocs pour utiliser les milieux et les matériaux.
39 *
40 * Un bloc se caractérise par un nom (name()), un groupe de mailles (cells())
41 * et une liste de milieux (environments()).
42 *
43 * A noter qu'en théorie le groupe de mailles (cells())
44 * est indépendant de la liste des milieux mais que pour des raisons de
45 * cohérence, il est préférable que ce groupe corresponde à l'union des
46 * milieux du bloc. Cependant, aucune vérification de cette cohérence n'est effectuée.
47 *
48 * Il est possible d'utiliser une instance ce cette classe comme argument à
49 * ENUMERATE_ENV ou à ENUMERATE_ALLENVCELL.
50 */
51class ARCANE_CORE_EXPORT IMeshBlock
52{
53 public:
54
55 virtual ~IMeshBlock(){}
56
57 public:
58
59 //! Gestionnaire associé.
61
62 //! Nom du bloc
63 virtual const String& name() const =0;
64
65 /*!
66 * \brief Groupe des mailles de ce bloc.
67 */
68 virtual const CellGroup& cells() const =0;
69
70 //! Liste des milieux de ce bloc
72
73 //! Nombre de milieux dans le bloc
74 virtual Integer nbEnvironment() const =0;
75
76 /*!
77 * \brief Identifiant du bloc.
78 * Il s'agit aussi de l'indice (en commencant par 0) de ce bloc
79 * dans la liste des blocs.
80 */
81 virtual Int32 id() const =0;
82
83 //! Vue sur les mailles milieux correspondant à ce bloc.
85};
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90} // End namespace Arcane::Materials
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
95#endif
96
Interface d'un bloc d'un maillage.
virtual IMeshMaterialMng * materialMng()=0
Gestionnaire associé.
virtual Int32 id() const =0
Identifiant du bloc. Il s'agit aussi de l'indice (en commencant par 0) de ce bloc dans la liste des b...
virtual AllEnvCellVectorView view()=0
Vue sur les mailles milieux correspondant à ce bloc.
virtual ConstArrayView< IMeshEnvironment * > environments()=0
Liste des milieux de ce bloc.
virtual Integer nbEnvironment() const =0
Nombre de milieux dans le bloc.
virtual const CellGroup & cells() const =0
Groupe des mailles de ce bloc.
virtual const String & name() const =0
Nom du bloc.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.