12#ifndef ARCANE_CARTESIANMESH_CARTESIANPATCHGROUP_H
13#define ARCANE_CARTESIANMESH_CARTESIANPATCHGROUP_H
17#include "AMRPatchPositionLevelGroup.h"
18#include "arcane/cartesianmesh/CartesianMeshGlobal.h"
20#include "arcane/core/ItemGroup.h"
22#include "arcane/utils/UniqueArray.h"
23#include "arcane/utils/Ref.h"
24#include "arcane/utils/TraceAccessor.h"
26#include "arcane/cartesianmesh/CartesianMeshPatchListView.h"
42class ARCANE_CARTESIANMESH_EXPORT CartesianPatchGroup
52 void saveInfosInProperties();
53 void recreateFromDump();
156 void applyPatchEdit(
bool remove_empty_patches,
bool update_higher_level);
168 void beginAdaptMesh(
Int32 nb_levels,
Int32 level_to_refine_first);
170 void adaptLevel(
Int32 level_to_adapt,
bool do_fatal_if_useless);
172 void clearRefineRelatedFlags()
const;
178 void setOverlapLayerSizeTopLevel(
Integer size_of_overlap_layer_top_level);
186 void _increaseOverlapSizeLevel(
Int32 level_to_increate,
Int32 new_size);
187 void _reduceOverlapSizeLevel(
Int32 level_to_reduce,
Int32 new_size);
189 void _updateHigherLevel();
191 void _changeOverlapSizeLevel(
Int32 level,
Int32 previous_higher_level,
Int32 new_higher_level);
193 void _coarsenUselessCells(
bool use_cells_level);
194 void _coarsenUselessCellsInLevel(
Int32 level);
196 void _updatePatchFlagsOfItemsLevel(
Int32 level,
bool use_cell_groups);
197 void _updatePatchFlagsOfItemsGroundLevel();
198 void _removePatchFlagsOfItemsLevel(
Int32 level);
200 void _checkPatchesAndMesh();
204 Integer _nextIndexForNewPatch();
208 void _removeOnePatch(
Integer index);
210 void _removeAllPatches();
211 void _createGroundPatch();
214 void _updateCellGroups(
Integer index,
bool update_flags);
229 Int32 m_index_new_patches;
231 Integer m_size_of_overlap_layer_top_level;
232 Int32 m_higher_level;
233 Int32 m_target_nb_levels;
234 Int32 m_latest_call_level;
Classe permettant de définir la position d'un patch dans le maillage cartésien.
Classe permettant de définir une zone d'un maillage.
Vue sur une liste de patchs.
Informations par direction pour chaque genre d'entité du maillage.
void updateLevelsAndAddGroundPatch()
Méthode permettant de remonter tous les patchs d'un niveau, de mettre à jour le niveau ground et de c...
void addPatch(ConstArrayView< Int32 > cells_local_id)
Méthode permettant de créer un patch contenant les mailles données en paramètre.
CellGroup overlapCells(Integer index)
Méthode permettant de récupérer le groupe des mailles de recouvrement du patch demandé.
CellGroup allCells(Integer index)
Méthode permettant de récupérer le groupe de toutes les mailles du patch demandé.
void removeCellsInZone(const AMRZonePosition &zone_to_delete)
Méthode permettant de supprimer une zone de mailles.
void removePatch(Integer index)
Méthode permettant de supprimer un patch.
void applyPatchEdit(bool remove_empty_patches, bool update_higher_level)
Méthode permettant de supprimer les patchs en attente de suppression.
void clear()
Méthode permettant de supprimer tous les patchs. Attention, les mailles des patchs ne seront pas supp...
Ref< CartesianMeshPatch > groundPatch()
Méthode permettant de récupérer le patch de niveau 0.
void removeCellsInAllPatches(ConstArrayView< Int32 > cells_local_id)
Méthode permettant de supprimer des mailles de tous les patchs.
CellGroup inPatchCells(Integer index)
Méthode permettant de récupérer le groupe des mailles du patch demandé.
Vue constante d'un tableau de type T.
Interface d'un maillage cartésien.
Référence à une instance.
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.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.