Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
DynamicMeshChecker.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/* DynamicMeshChecker.h (C) 2000-2025 */
9/* */
10/* Classe fournissant des méthodes de vérification sur le maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_DYNAMICMESHCHECKER_H
13#define ARCANE_MESH_DYNAMICMESHCHECKER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
20#include "arcane/core/IMeshChecker.h"
21
22#include "arcane/mesh/MeshGlobal.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::mesh
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33class DynamicMesh;
34class ItemFamily;
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
39class DynamicMeshChecker
40: public TraceAccessor
41, public IMeshChecker
42{
43 public:
44
45 explicit DynamicMeshChecker(IMesh* mesh);
46 ~DynamicMeshChecker();
47
48 public:
49
50 IMesh* mesh() override { return m_mesh; }
51 void setCheckLevel(Integer level) override { m_check_level = level; }
52 Integer checkLevel() const override { return m_check_level; }
53
54 void checkValidMesh() override;
55 void checkValidMeshFull() override;
56 void checkValidReplication() override;
57 void checkVariablesSynchronization() override;
58 void checkItemGroupsSynchronization() override;
59
60 public:
61
63 void checkGhostCells();
64 void checkMeshFromReferenceFile();
65 void updateAMRFaceOrientation();
66 void updateAMRFaceOrientation(ArrayView<Int64> ghost_cell_to_refine);
67
68 private:
69
71 void _checkValidItemOwner(IItemFamily* family);
72 void _checkReplicationFamily(IItemFamily* family);
73
74 private:
75
76 IMesh* m_mesh = nullptr;
77 Integer m_check_level = 0;
78
79 VariableCellArrayInt64* m_var_cells_faces = nullptr;
80 VariableCellArrayInt64* m_var_cells_nodes = nullptr;
81
82 bool m_compare_reference_file = false;
83};
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
88}
89
90/*---------------------------------------------------------------------------*/
91/*---------------------------------------------------------------------------*/
92
93#endif /* ARCANE_MESH_DYNAMICMESHCHECKER_H */
Vue modifiable d'un tableau d'un type T.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface de méthodes de vérification d'un maillage.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
void setCheckLevel(Integer level) override
Positionne le niveau de vérification du maillage.
void checkValidMeshFull() override
Vérification de la validité du maillage.
void checkGhostCells()
Vérifie que la couche de mailles fantômes est correcte.
void checkItemGroupsSynchronization() override
Vérifie la synchronisation sur les groupes d'entités.
Integer checkLevel() const override
Niveau actuel de vérification.
void checkVariablesSynchronization() override
Vérifie la synchronisation des variables.
IMesh * mesh() override
Maillage associé
void checkValidMesh() override
Vérification sommaire de la validité du maillage. Les vérifications portent sur les points suivants:
void _checkFacesOrientation()
Vérifie que les faces sont correctement orientées et connectées.
void checkValidReplication() override
Vérifie que les sous-domaines sont correctement répliqués.
Implémentation d'un maillage.
Definition DynamicMesh.h:97
Famille d'entités.
Definition ItemFamily.h:76
MeshVariableArrayRefT< Cell, Int64 > VariableCellArrayInt64
Grandeur au centre des mailles de type tableau d'entiers.
Int32 Integer
Type représentant un entier.