Arcane  v3.15.3.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
40: public TraceAccessor
41, public IMeshChecker
42{
43 public:
44
45 explicit DynamicMeshChecker(IMesh* mesh);
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 */
Interface d'une famille d'entités.
Interface de méthodes de vérification d'un maillage.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
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.