Arcane  v4.1.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IMeshChecker.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/* IMeshChecker.h (C) 2000-2025 */
9/* */
10/* Interface de méthodes de vérification d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMESHCHECKER_H
13#define ARCANE_CORE_IMESHCHECKER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Interface de méthodes de vérification d'un maillage.
29 */
31{
32 public:
33
34 virtual ~IMeshChecker() = default; //!< Libère les ressources
35
36 public:
37
38 //! Maillage associé
39 virtual IMesh* mesh() = 0;
40
41 /*!
42 * \brief Positionne le niveau de vérification du maillage.
43 *
44 * 0 - tests désactivés
45 * 1 - tests partiels, après les endUpdate()
46 * 2 - tests complets, après les endUpdate()
47 */
48 virtual void setCheckLevel(Integer level) = 0;
49
50 //! Niveau actuel de vérification
51 virtual Integer checkLevel() const = 0;
52
53 /*!
54 * \brief Vérification de la validité des structures internes de maillage (interne).
55 */
56 virtual void checkValidMesh() = 0;
57
58 /*!
59 * \brief Vérification de la validité du maillage.
60 *
61 * Il s'agit d'une vérification globale entre tous les sous-domaines.
62 *
63 * Elle vérifie notamment que la connectivité est cohérente entre
64 * les sous-domaines.
65 *
66 * La vérification peut-être assez coûteuse en temps CPU.
67 * Cette méthode est collective.
68 */
69 virtual void checkValidMeshFull() = 0;
70
71 /*!
72 * \brief Vérifie que les sous-domaines sont correctement répliqués.
73 *
74 * Les vérifications suivantes sont faites:
75 * - mêmes familles d'entité et mêmes valeurs pour ces familles.
76 * - mêmes coordonnées des noeuds du maillage.
77 */
78 virtual void checkValidReplication() = 0;
79
80 /*!
81 * \brief Vérifie la synchronisation des variables.
82 *
83 * Vérifie pour chaque variable que ses valeurs sur les entités fantômes sont
84 * les mêmes que la valeur sur le sous-domaine propriétaire de l'entité.
85 *
86 * Les variables sur les particules ne sont pas comparées.
87 *
88 * Lève une exception FatalErrorException en cas d'erreur.
89 */
91
92 /*!
93 * \brief Vérifie la synchronisation sur les groupes d'entités.
94 *
95 * Vérifie pour chaque groupe de chaque famille (autre que les particules)
96 * que les entités sont les mêmes sur chaque sous-domaine.
97 *
98 * Lève une exception FatalErrorException en cas d'erreur.
99 */
101
102 /*!
103 * \brief Indique si on active la vérification des propriétaires des entités.
104 *
105 * Cette vérification est effectuée lors de l'appel à checkValidConnectivity().
106 * Si elle est active, on vérifie que les noeuds, arêtes et
107 * faces ont bien le même propriétaire qu'une des mailles auxquels ils sont
108 * connectés.
109 *
110 * C'est toujours le cas si lorsque les propriétaires sont gérés par %Arcane
111 * et il est donc préférable de toujours faire cette vérification pour
112 * garantir la cohérence des informations en parallèle. Cependant, si la
113 * gestion des propriétaires est faite par l'utilisateur, il est possible
114 * de désactiver cette vérification.
115 */
116 virtual void setIsCheckItemsOwner(bool v) = 0;
117
118 //! Indique si la vérification des propriétaires des entités (vrai par défaut)
119 virtual bool isCheckItemsOwner() const = 0;
120};
121
122/*---------------------------------------------------------------------------*/
123/*---------------------------------------------------------------------------*/
124
125} // namespace Arcane
126
127/*---------------------------------------------------------------------------*/
128/*---------------------------------------------------------------------------*/
129
130#endif
Déclarations des types généraux de Arcane.
Interface de méthodes de vérification d'un maillage.
virtual IMesh * mesh()=0
Maillage associé
virtual void checkValidMeshFull()=0
Vérification de la validité du maillage.
virtual ~IMeshChecker()=default
Libère les ressources.
virtual void checkValidReplication()=0
Vérifie que les sous-domaines sont correctement répliqués.
virtual void checkValidMesh()=0
Vérification de la validité des structures internes de maillage (interne).
virtual void setCheckLevel(Integer level)=0
Positionne le niveau de vérification du maillage.
virtual Integer checkLevel() const =0
Niveau actuel de vérification.
virtual void checkItemGroupsSynchronization()=0
Vérifie la synchronisation sur les groupes d'entités.
virtual bool isCheckItemsOwner() const =0
Indique si la vérification des propriétaires des entités (vrai par défaut)
virtual void setIsCheckItemsOwner(bool v)=0
Indique si on active la vérification des propriétaires des entités.
virtual void checkVariablesSynchronization()=0
Vérifie la synchronisation des variables.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.