Arcane
v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshMaterialVariableSynchronizerList.h
1
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
//-----------------------------------------------------------------------------
3
// Copyright 2000-2023 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
/* MeshMaterialVariableSynchronizerList.h (C) 2000-2023 */
9
/* */
10
/* Liste de variables à synchroniser. */
11
/*---------------------------------------------------------------------------*/
12
#ifndef ARCANE_MATERIALS_MESHMATERIALVARIABLESYNCHRONIZERLIST_H
13
#define ARCANE_MATERIALS_MESHMATERIALVARIABLESYNCHRONIZERLIST_H
14
/*---------------------------------------------------------------------------*/
15
/*---------------------------------------------------------------------------*/
16
17
#include "arcane/utils/TraceAccessor.h"
18
#include "arcane/utils/Array.h"
19
20
#include "arcane/materials/MatVarIndex.h"
21
22
/*---------------------------------------------------------------------------*/
23
/*---------------------------------------------------------------------------*/
24
25
namespace
Arcane::Materials
26
{
27
28
/*---------------------------------------------------------------------------*/
29
/*---------------------------------------------------------------------------*/
30
/*!
31
* \brief Synchronisation d'une liste de variables matériaux.
32
*
33
* La méthode add() permet d'ajouter des variables à synchroniser.
34
* Il faut ensuite appeler apply() pour effectuer la synchronisation.
35
*
36
* Une instance de ce cette classe peut-être utilisée plusieurs fois.
37
*/
38
class
ARCANE_MATERIALS_EXPORT
MeshMaterialVariableSynchronizerList
39
{
40
private
:
41
42
class
Impl
;
43
class
SyncInfo
;
44
45
public
:
46
47
explicit
MeshMaterialVariableSynchronizerList
(
IMeshMaterialMng
* material_mng);
48
~MeshMaterialVariableSynchronizerList
();
49
50
public
:
51
52
MeshMaterialVariableSynchronizerList
(
const
MeshMaterialVariableSynchronizerList
&) =
delete
;
53
MeshMaterialVariableSynchronizerList
& operator=(
const
MeshMaterialVariableSynchronizerList
&) =
delete
;
54
MeshMaterialVariableSynchronizerList
(
const
MeshMaterialVariableSynchronizerList
&&) =
delete
;
55
MeshMaterialVariableSynchronizerList
& operator=(
const
MeshMaterialVariableSynchronizerList
&&) =
delete
;
56
57
public
:
58
59
//! Effectue la synchronisation
60
void
apply();
61
62
//! Ajoute la variable \a var à la liste des variables à synchroniser
63
void
add(
MeshMaterialVariable
* var);
64
65
//! Après appel à apply(), contient la taille des messages envoyés
66
Int64 totalMessageSize()
const
;
67
68
/*!
69
* \brief Commence une synchronisation non bloquante.
70
*
71
* Cela est valide uniquement si IMeshMaterialMng::synchronizeVariableVersion() vaut 7.
72
*/
73
void
beginSynchronize();
74
75
/*!
76
* \brief Bloque tant que la synchronisation en cours n'est pas terminé.
77
*
78
* Il faut appeler beginSynchronize() avant cet appel.
79
*/
80
void
endSynchronize();
81
82
private
:
83
84
Impl
* m_p;
85
86
private
:
87
88
static
void
_beginSynchronizeMultiple(
SyncInfo
& sync_info);
89
static
void
_beginSynchronizeMultiple2(
SyncInfo
& sync_info);
90
static
void
_endSynchronizeMultiple2(
SyncInfo
& sync_info);
91
void
_fillSyncInfo(
SyncInfo
& sync_info);
92
void
_beginSynchronize(
bool
is_blocking);
93
void
_endSynchronize(
bool
is_blocking);
94
};
95
96
/*---------------------------------------------------------------------------*/
97
/*---------------------------------------------------------------------------*/
98
99
}
// End namespace Arcane::Materials
100
101
/*---------------------------------------------------------------------------*/
102
/*---------------------------------------------------------------------------*/
103
104
#endif
105
Arcane::Materials::IMeshMaterialMng
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Definition
core/materials/IMeshMaterialMng.h:58
Arcane::Materials::MeshMaterialVariableSynchronizerList::Impl
Definition
MeshMaterialVariableSynchronizerList.cc:66
Arcane::Materials::MeshMaterialVariableSynchronizerList::SyncInfo
Definition
MeshMaterialVariableSynchronizerList.cc:48
Arcane::Materials::MeshMaterialVariableSynchronizerList
Synchronisation d'une liste de variables matériaux.
Definition
MeshMaterialVariableSynchronizerList.h:39
Arcane::Materials::MeshMaterialVariable
Definition
MeshMaterialVariable.h:71
Arcane::Materials
Active toujours les traces dans les parties Arcane concernant les matériaux.
Definition
ItemCompatibility.h:27
arcane
materials
MeshMaterialVariableSynchronizerList.h
Généré le Lundi 18 Novembre 2024 02:56:52 pour Arcane par
1.9.8