Arcane  v3.16.0.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
50class SubMeshTools
51: public TraceAccessor
52{
53 public:
54 SubMeshTools(DynamicMesh * mesh, DynamicMeshIncrementalBuilder * mesh_builder);
55 ~SubMeshTools();
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
Tableau d'items de types quelconques.
Maille d'un maillage.
Definition Item.h:1191
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface du gestionnaire de parallélisme pour un sous-domaine.
Chaîne de caractères unicode.
void _fillGhostItems(ItemFamily *family, Array< Int32 > &items_local_id)
Remplit items_Local_id avec les entités fantomes de la famille family.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.