Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IMeshMaterialVariableSynchronizer.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/* IMeshMaterialVariableSynchronizer.h (C) 2000-2023 */
9/* */
10/* Interface of the material variable synchronizer. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_IMESHMATERIALVARIABLESYNCHRONIZER_H
13#define ARCANE_MATERIALS_INTERNAL_IMESHMATERIALVARIABLESYNCHRONIZER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include "arcane/utils/ArrayView.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
27}
28
29namespace Arcane::Materials
30{
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35/*!
36 * \internal
37 * \brief Interface of the material variable synchronizer.
38 */
40{
41 public:
42
44
45 public:
46
47 //! Associated classical variable synchronizer.
49
50 /*!
51 * \brief List of shared MatVarIndex for index rank \a index
52 * in the variableSynchronizer::communicatingRanks() array;
53 */
55
56 /*!
57 * \brief List of ghost MatVarIndex for index rank \a index
58 * in the variableSynchronizer::communicatingRanks() array;
59 */
61
62 //! Recalculates synchronization information.
63 virtual void recompute() = 0;
64
65 //! Recalculates synchronization information if necessary.
66 virtual void checkRecompute() = 0;
67
68 //! Common buffer for messages.
70
71 //! Memory resource to use for communication buffers
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78} // End namespace Arcane::Materials
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83#endif
Constant view of an array of type T.
Interface of a variable synchronization service.
virtual ConstArrayView< MatVarIndex > ghostItems(Int32 index)=0
List of ghost MatVarIndex for index rank index in the variableSynchronizer::communicatingRanks() arra...
virtual IVariableSynchronizer * variableSynchronizer()=0
Associated classical variable synchronizer.
virtual eMemoryRessource bufferMemoryRessource() const =0
Memory resource to use for communication buffers.
virtual void checkRecompute()=0
Recalculates synchronization information if necessary.
virtual Ref< IMeshMaterialSynchronizeBuffer > commonBuffer()=0
Common buffer for messages.
virtual ConstArrayView< MatVarIndex > sharedItems(Int32 index)=0
List of shared MatVarIndex for index rank index in the variableSynchronizer::communicatingRanks() arr...
virtual void recompute()=0
Recalculates synchronization information.
Reference to an instance.
Always enables tracing in Arcane parts concerning materials.
class ARCANE_MATERIALS_EXPORT(64) SimdMatVarIndex
SIMD indexer on a component.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Arcane::eMemoryResource eMemoryRessource
Typedef for the historical Arcane version (with 2's').
std::int32_t Int32
Signed integer type of 32 bits.