Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CartesianMeshAMRPatchMng.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/* CartesianMeshAMRPatchMng.h (C) 2000-2025 */
9/* */
10/* Gestionnaire de l'AMR par patch d'un maillage cartésien. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#ifndef ARCANE_CARTESIANMESH_CARTESIANMESHAMRPATCHMNG_H
15#define ARCANE_CARTESIANMESH_CARTESIANMESHAMRPATCHMNG_H
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
20#include "arcane/cartesianmesh/ICartesianMeshAMRPatchMng.h"
21#include "arcane/cartesianmesh/ICartesianMesh.h"
22#include "arcane/cartesianmesh/ICartesianMeshNumberingMng.h"
23
24#include "arcane/utils/TraceAccessor.h"
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29namespace Arcane
30{
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35class CartesianMeshAMRPatchMng
36: public TraceAccessor
38{
39 public:
40
41 explicit CartesianMeshAMRPatchMng(ICartesianMesh* cmesh, ICartesianMeshNumberingMng* numbering_mng);
42
43 public:
44
45 void flagCellToRefine(Int32ConstArrayView cells_lids, bool clear_old_flags) override;
46 void flagCellToCoarsen(Int32ConstArrayView cells_lids, bool clear_old_flags) override;
47
48 void refine() override;
49 void createSubLevel() override;
50 void coarsen(bool update_parent_flag) override;
51
52 private:
53
54 void _syncFlagCell() const;
55 void _shareInfosOfCellsAroundPatch(ConstArrayView<Cell> patch_cells, std::unordered_map<Int64, Integer>& around_cells_uid_to_owner, std::unordered_map<Int64, Int32>& around_cells_uid_to_flags, Int32 useful_flags) const;
56
57 private:
58
59 IMesh* m_mesh;
60 ICartesianMesh* m_cmesh;
62};
63
64/*---------------------------------------------------------------------------*/
65/*---------------------------------------------------------------------------*/
66
67} // End namespace Arcane
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
71
72#endif //ARCANE_CARTESIANMESH_CARTESIANMESHAMRPATCHMNG_H
void refine() override
Méthode permettant de raffiner les mailles avec le flag "II_Refine".
void createSubLevel() override
Méthode permettant de déraffiner les mailles de niveau 0.
void flagCellToRefine(Int32ConstArrayView cells_lids, bool clear_old_flags) override
Méthode permettant de définir les mailles à raffiner (à marquer avec le flag "II_Refine").
void coarsen(bool update_parent_flag) override
Méthode permettant de retirer les mailles marquées avec le flag "II_Coarsen".
void flagCellToCoarsen(Int32ConstArrayView cells_lids, bool clear_old_flags) override
Méthode permettant de définir les mailles à déraffiner (à marquer avec le flag "II_Coarsen").
Vue constante d'un tableau de type T.
Interface d'un maillage cartésien.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
std::int32_t Int32
Type entier signé sur 32 bits.