Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IVariableParallelOperation.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IVariableParallelOperation.h (C) 2000-2006 */
9/* */
10/* Interface d'une classe d'opérations parallèles sur des variables. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IVARIABLEPARALLELOPERATION_H
13#define ARCANE_IVARIABLEPARALLELOPERATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27class IItemFamily;
28class IVariable;
29class IDataOperation;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33/*!
34 * \internal
35 * \brief Interface d'une classe d'opérations parallèle sur des variables.
36 *
37 Ces opérations sont collectives.
38
39 Avant d'effectuer l'opération, il faut positionner la famille
40 d'entités (setItemFamily()),
41 puis ajouter la liste des variables sur lesquelles seront effectuées
42 les opérations.
43 */
45{
46 public:
47
48 virtual ~IVariableParallelOperation() {} //!< Libère les ressources.
49
50 public:
51
52 virtual void build() =0; //!< Construit l'instance
53
54 public:
55
56 /*! \brief Positionne la famille d'entité sur laquelle on souhaite opérer.
57 *
58 Le maillage doit être positionner avant d'ajouter des variables.
59 Il ne peut l'être qu'une seule fois.
60 */
61 virtual void setItemFamily(IItemFamily* family) =0;
62
63 //! Famille d'entités sur laquelle on opère
64 virtual IItemFamily* itemFamily() =0;
65
66 //! Ajoute \a variable à la liste des variables concernées par l'opération
67 virtual void addVariable(IVariable* variable) =0;
68
69 /*!
70 * \brief Applique l'opération.
71 */
72 virtual void applyOperation(IDataOperation* operation) =0;
73 public:
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79ARCANE_END_NAMESPACE
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
85
Fichier de configuration d'Arcane.
Interface d'une famille d'entités.
virtual void build()=0
Construit l'instance.
virtual ~IVariableParallelOperation()
Libère les ressources.
virtual IItemFamily * itemFamily()=0
Famille d'entités sur laquelle on opère.
virtual void setItemFamily(IItemFamily *family)=0
Positionne la famille d'entité sur laquelle on souhaite opérer.
virtual void addVariable(IVariable *variable)=0
Ajoute variable à la liste des variables concernées par l'opération.
virtual void applyOperation(IDataOperation *operation)=0
Applique l'opération.