Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IMeshExchangeMng.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/* IMeshExchangeMng.h (C) 2000-2025 */
9/* */
10/* Interface for managing mesh exchanges between subdomains. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMESHEXCHANGEMNG_H
13#define ARCANE_CORE_IMESHEXCHANGEMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \brief Interface for managing mesh exchanges between
30 * subdomains.
31 */
32class ARCANE_CORE_EXPORT IMeshExchangeMng
33{
34 public:
35
36 virtual ~IMeshExchangeMng() = default; //!< Frees resources
37
38 public:
39
40 //! Associated mesh
41 virtual IPrimaryMesh* mesh() const = 0;
42
43 /*!
44 * \brief Starts an exchange.
45 *
46 * \pre exchanger()==nullptr.
47 *
48 * While an exchange is in progress, certain
49 * operations on the mesh are forbidden, such as creating a new family
50 * or adding groups.
51 */
53
54 /*!
55 * \brief Signals that the exchange is finished.
56 *
57 * This allows deallocating the structures associated with the exchange.
58 * \post exchanger()==nullptr.
59 */
60 virtual void endExchange() = 0;
61
62 /*!
63 * \brief Current exchanger.
64 *
65 * The exchanger is non-null only if we are between a beginExchange() and an endExchange()
66 */
67 virtual IMeshExchanger* exchanger() = 0;
68};
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73} // namespace Arcane
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78#endif
Declarations of Arcane's general types.
Interface for managing mesh exchanges between subdomains.
virtual ~IMeshExchangeMng()=default
Frees resources.
virtual IMeshExchanger * exchanger()=0
Current exchanger.
virtual IPrimaryMesh * mesh() const =0
Associated mesh.
virtual IMeshExchanger * beginExchange()=0
Starts an exchange.
virtual void endExchange()=0
Signals that the exchange is finished.
Management of a mesh exchange between subdomains.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --