Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IMeshChecker.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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 for mesh verification methods. */
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/*!
29 * \brief Interface for mesh verification methods.
30 */
32{
33 public:
34
35 virtual ~IMeshChecker() = default; //!< Frees resources
36
37 public:
38
39 //! Associated mesh
40 virtual IMesh* mesh() = 0;
41
42 /*!
43 * \brief Sets the mesh verification level.
44 *
45 * 0 - tests disabled
46 * 1 - partial tests, after endUpdate()
47 * 2 - full tests, after endUpdate()
48 */
49 virtual void setCheckLevel(Integer level) = 0;
50
51 //! Current verification level
52 virtual Integer checkLevel() const = 0;
53
54 /*!
55 * \brief Verification of the validity of internal mesh structures (internal).
56 */
57 virtual void checkValidMesh() = 0;
58
59 /*!
60 * \brief Verification of mesh validity.
61 *
62 * This is a global verification across all subdomains.
63 *
64 * It checks, in particular, that the connectivity is consistent between
65 * subdomains.
66 *
67 * The verification can be quite CPU time-intensive.
68 * This method is collective.
69 */
70 virtual void checkValidMeshFull() = 0;
71
72 /*!
73 * \brief Checks that subdomains are correctly replicated.
74 *
75 * The following checks are performed:
76 * - same entity families and same values for these families.
77 * - same mesh node coordinates.
78 */
79 virtual void checkValidReplication() = 0;
80
81 /*!
82 * \brief Checks variable synchronization.
83 *
84 * Checks for each variable that its values on ghost entities are
85 * the same as the value on the entity's owning subdomain.
86 *
87 * Variables on particles are not compared.
88 *
89 * Raises a FatalErrorException in case of error.
90 */
92
93 /*!
94 * \brief Checks synchronization on entity groups.
95 *
96 * Checks for each group of each family (other than particles)
97 * that the entities are the same on each subdomain.
98 *
99 * Raises a FatalErrorException in case of error.
100 */
102
103 /*!
104 * \brief Indicates whether entity owner verification is active.
105 *
106 * This verification is performed when calling checkValidConnectivity().
107 * If it is active, we check that the nodes, edges, and
108 * faces have the same owner as one of the cells they are
109 * connected to.
110 *
111 * This is always the case if the owners are managed by %Arcane
112 * and it is therefore preferable to always perform this verification to
113 * ensure consistency of information in parallel. However, if the
114 * owner management is done by the user, it is possible
115 * to disable this verification.
116 */
117 virtual void setIsCheckItemsOwner(bool v) = 0;
118
119 //! Indicates whether entity owner verification is active (true by default)
120 virtual bool isCheckItemsOwner() const = 0;
121};
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
125
126} // namespace Arcane
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131#endif
Declarations of Arcane's general types.
Interface for mesh verification methods.
virtual IMesh * mesh()=0
Associated mesh.
virtual void checkValidMeshFull()=0
Verification of mesh validity.
virtual ~IMeshChecker()=default
Frees resources.
virtual void checkValidReplication()=0
Checks that subdomains are correctly replicated.
virtual void checkValidMesh()=0
Verification of the validity of internal mesh structures (internal).
virtual void setCheckLevel(Integer level)=0
Sets the mesh verification level.
virtual Integer checkLevel() const =0
Current verification level.
virtual void checkItemGroupsSynchronization()=0
Checks synchronization on entity groups.
virtual bool isCheckItemsOwner() const =0
Indicates whether entity owner verification is active (true by default).
virtual void setIsCheckItemsOwner(bool v)=0
Indicates whether entity owner verification is active.
virtual void checkVariablesSynchronization()=0
Checks variable synchronization.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.