Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MatConcurrency.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/* MatConcurrency.h (C) 2000-2021 */
9/* */
10/* Classes gérant la concurrence pour les matériaux. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MATCONCURRENCY_H
13#define ARCANE_MATERIALS_MATCONCURRENCY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/utils/RangeFunctor.h"
19#include "arcane/utils/FatalErrorException.h"
20
21#include "arcane/Concurrency.h"
22
23#include "arcane/materials/MatItemEnumerator.h"
24#include "arcane/materials/ComponentItemVectorView.h"
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29namespace Arcane::Materials
30{
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
40template<typename ViewType,typename LambdaType>
42: public IRangeFunctor
43{
44 public:
46 : m_items(items_view), m_lambda_function(lambda_function)
47 {
48 }
49
50 public:
51
52 virtual void executeFunctor(Integer begin,Integer size)
53 {
54 ViewType sub_view(m_items._subView(begin,size));
55 m_lambda_function(sub_view);
56 }
57
58 private:
59 ViewType m_items;
60 const LambdaType& m_lambda_function;
61};
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
66} // End namespace Arcane::Materials
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71namespace Arcane
72{
73 using namespace Materials;
79 template<typename LambdaType> inline void
85
91 template<typename LambdaType> inline void
98
104 template<typename LambdaType> inline void
110
116 template<typename LambdaType> inline void
123
129 template<typename LambdaType> inline void
135
141 template<typename LambdaType> inline void
148} // End namespace Arcane
149
150/*---------------------------------------------------------------------------*/
151/*---------------------------------------------------------------------------*/
152
153namespace Arcane::Parallel
154{
155 using namespace Materials;
156 using namespace Arcane;
157
163 template<typename LambdaType> inline void
168
174 template<typename LambdaType> inline void
180
186 template<typename LambdaType> inline void
191
197 template<typename LambdaType> inline void
203
209 template<typename LambdaType> inline void
214
220 template<typename LambdaType> inline void
226
227} // End namespace Arcane::Parallel
228
229/*---------------------------------------------------------------------------*/
230/*---------------------------------------------------------------------------*/
231
232#endif
233
Déclarations des types utilisés dans Arcane.
Interface d'un fonctor sur un interval d'itération.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
Vue sur un vecteur sur les entités d'un composant.
Vue sur un vecteur sur les entités d'un milieu.
Fonctor sur un interval d'itération instancié via une lambda fonction.
virtual void executeFunctor(Integer begin, Integer size)
Exécute la méthode associée.
Vue sur un vecteur sur les entités d'un matériau.
Options d'exécution d'une boucle parallèle en multi-thread.
static void executeParallelFor(Integer begin, Integer size, const ParallelLoopOptions &options, IRangeFunctor *f)
Exécute le fonctor f en concurrence.
void arcaneParallelForeach(const ItemVectorView &items_view, const ForLoopRunInfo &run_info, InstanceType *instance, void(InstanceType::*function)(ItemVectorViewT< ItemType > items))
Applique en concurrence la méthode function de l'instance instance sur la vue items_view avec les opt...
Definition Concurrency.h:54
Active toujours les traces dans les parties Arcane concernant les matériaux.
Implémentation de la concurrence.
void Foreach(const ItemVectorView &items_view, const ParallelLoopOptions &options, InstanceType *instance, void(InstanceType::*function)(ItemVectorViewT< ItemType > items))
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Ensemble des classes assurant la gestion des matériaux et des milieux.