Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CartesianPatchGroup.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* CartesianPatchGroup.h (C) 2000-2025 */
9/* */
10/* Gestion du groupe de patchs du maillage cartésien. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CARTESIANMESH_CARTESIANPATCHGROUP_H
13#define ARCANE_CARTESIANMESH_CARTESIANPATCHGROUP_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/cartesianmesh/ICartesianMeshPatch.h"
19#include "arcane/cartesianmesh/CartesianMeshPatchListView.h"
20#include "arcane/cartesianmesh/ICartesianMesh.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28class CartesianMeshPatch;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33class ARCANE_CARTESIANMESH_EXPORT CartesianPatchGroup
34{
35 public:
36
37 explicit CartesianPatchGroup(ICartesianMesh* cmesh) : m_cmesh(cmesh){}
38
39 public:
40 Ref<CartesianMeshPatch> groundPatch();
41
42 void addPatch(CellGroup cell_group);
43
44 Integer nbPatch() const;
45
46 Ref<CartesianMeshPatch> patch(Integer index) const;
47
48 CartesianMeshPatchListView patchListView() const;
49
50 CellGroup cells(Integer index);
51
52 void clear();
53
54 void removePatch(Integer index);
55
56 void removeCellsInAllPatches(ConstArrayView<Int32> cells_local_id);
57
58 void removeCellsInAllPatches(ConstArrayView<Int32> cells_local_id, SharedArray<Integer> altered_patches);
59
60 void applyPatchEdit(bool remove_empty_patches);
61
62 // void repairPatch(Integer index, ICartesianMeshNumberingMng* numbering_mng);
63
64 void updateLevelsBeforeCoarsen();
65
66 Integer nextIndexForNewPatch();
67
68 private:
69 void _addPatchInstance(Ref<CartesianMeshPatch> v);
70
71 void _removeOnePatch(Integer index);
72 void _removeMultiplePatches(ConstArrayView<Integer> indexes);
73 void _createGroundPatch();
74
75 private:
76
77 UniqueArray<CellGroup> m_amr_patch_cell_groups;
78 UniqueArray<ICartesianMeshPatch*> m_amr_patches_pointer;
80 ICartesianMesh* m_cmesh;
81 UniqueArray<Integer> m_patches_to_delete;
82};
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87} // End namespace Arcane
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
92#endif
93
Déclarations de types sur les entités.
Vue constante d'un tableau de type T.
Interface d'un maillage cartésien.
Référence à une instance.
Vecteur 1D de données avec sémantique par référence.
Vecteur 1D de données avec sémantique par valeur (style STL).
ItemGroupT< Cell > CellGroup
Groupe de mailles.
Definition ItemTypes.h:183
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.