Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshBlock.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/* MeshBlock.h (C) 2000-2016 */
9/* */
10/* Bloc d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MESHBLOCK_H
13#define ARCANE_MATERIALS_MESHBLOCK_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
19#include "arcane/ItemGroup.h"
20
21#include "arcane/materials/IMeshBlock.h"
22#include "arcane/materials/MeshBlockBuildInfo.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ARCANE_BEGIN_NAMESPACE
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32MATERIALS_BEGIN_NAMESPACE
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39/*!
40 * \internal
41 * \brief Bloc d'un maillage.
42 *
43 * Cette classe est à usage interne à Arcane et ne doit pas être utilisée
44 * explicitement. Il faut utiliser l'interface IMeshBlock pour accéder
45 * aux milieux.
46 */
47class MeshBlock
48: public TraceAccessor
49, public IMeshBlock
50{
51 public:
52
53 MeshBlock(IMeshMaterialMng* mm,Int32 block_id,const MeshBlockBuildInfo& infos);
54 virtual ~MeshBlock(){}
55
56 public:
57
58 virtual IMeshMaterialMng* materialMng() { return m_material_mng; }
59 virtual const String& name() const { return m_name; }
60 virtual const CellGroup& cells() const { return m_cells; }
62 {
63 return m_environments;
64 }
65 virtual Integer nbEnvironment() const
66 {
67 return m_environments.size();
68 }
69 virtual Int32 id() const
70 {
71 return m_block_id;
72 }
73
74 virtual AllEnvCellVectorView view();
75
76 public:
77
78 //! Fonctions publiques mais réservées au IMeshMaterialMng
79 //@{
80 void build();
81 void addEnvironment(IMeshEnvironment* env);
82 void removeEnvironment(IMeshEnvironment* env);
83 //@}
84
85 private:
86
87 //! Gestionnaire de matériaux
88 IMeshMaterialMng* m_material_mng;
89
90 //! Identifiant du milieu (indice de ce milieu dans la liste des milieux)
91 Int32 m_block_id;
92
93 //! Nom du milieu
94 String m_name;
95
96 //! Liste des mailles de ce milieu
97 CellGroup m_cells;
98
99 //! Liste des milieux de ce bloc.
100 UniqueArray<IMeshEnvironment*> m_environments;
101};
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
109MATERIALS_END_NAMESPACE
110ARCANE_END_NAMESPACE
111
112/*---------------------------------------------------------------------------*/
113/*---------------------------------------------------------------------------*/
114
115#endif
116
Vue constante d'un tableau de type T.
Interface d'un bloc d'un maillage.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Informations pour la création d'un bloc.
virtual ConstArrayView< IMeshEnvironment * > environments()
Liste des milieux de ce bloc.
Definition MeshBlock.h:61
virtual IMeshMaterialMng * materialMng()
Gestionnaire associé.
Definition MeshBlock.h:58
virtual Integer nbEnvironment() const
Nombre de milieux dans le bloc.
Definition MeshBlock.h:65
virtual const CellGroup & cells() const
Groupe des mailles de ce bloc.
Definition MeshBlock.h:60
virtual Int32 id() const
Identifiant du bloc. Il s'agit aussi de l'indice (en commencant par 0) de ce bloc dans la liste des b...
Definition MeshBlock.h:69
virtual const String & name() const
Nom du bloc.
Definition MeshBlock.h:59
Chaîne de caractères unicode.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Vecteur 1D de données avec sémantique par valeur (style STL).
ItemGroupT< Cell > CellGroup
Groupe de mailles.
Definition ItemTypes.h:183
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.