Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SubMeshTools.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/* SubMeshTools.h (C) 2000-2024 */
9/* */
10/* Algorithmes spécifiques aux sous-maillages. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_SUBMESHTOOLS_H
13#define ARCANE_MESH_SUBMESHTOOLS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16/*
17 * Cette section devrait contenir à terme l'ensemble de l'implémentation spécifique des sous-maillages
18 */
19
20#include "arcane/mesh/MeshGlobal.h"
21
22#include "arcane/utils/TraceAccessor.h"
23#include "arcane/utils/String.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28ARCANE_BEGIN_NAMESPACE
29
30class IItemFamily;
31class IParallelMng;
32class IMesh;
33class ItemInternal;
34class Cell;
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
39ARCANE_MESH_BEGIN_NAMESPACE
40
41class DynamicMesh;
42class DynamicMeshIncrementalBuilder;
43
44/*---------------------------------------------------------------------------*/
45/*---------------------------------------------------------------------------*/
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
51: public TraceAccessor
52{
53 public:
54 SubMeshTools(DynamicMesh * mesh, DynamicMeshIncrementalBuilder * mesh_builder);
56
57 public:
58 void removeDeadGhostCells();
59 void removeGhostMesh();
60 void removeFloatingItems();
61 void updateGhostMesh();
62 void updateGhostFamily(IItemFamily * family);
63 static void display(IMesh * mesh, const String msg = String());
64
65 private:
66
67 void _fillGhostItems(ItemFamily* family, Array<Int32>& items_local_id);
68 void _fillFloatingItems(ItemFamily* family, Array<Int32>& items_local_id);
69 void _checkValidItemOwner();
70 void _checkFloatingItems();
71
72 private:
73 DynamicMesh* m_mesh;
74 DynamicMeshIncrementalBuilder* m_mesh_builder;
75 IParallelMng* m_parallel_mng;
76
77 private:
78
79 void _updateGroups();
80 void _removeCell(Cell cell);
81};
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86ARCANE_MESH_END_NAMESPACE
87ARCANE_END_NAMESPACE
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
92#endif
Maille d'un maillage.
Definition Item.h:1178
Interface d'une famille d'entités.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Chaîne de caractères unicode.