Arcane  v3.14.10.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 */
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
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
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).