12#ifndef ARCANE_MATERIALS_MATCONCURRENCY_H
13#define ARCANE_MATERIALS_MATCONCURRENCY_H
18#include "arcane/utils/RangeFunctor.h"
19#include "arcane/utils/FatalErrorException.h"
21#include "arcane/Concurrency.h"
23#include "arcane/materials/MatItemEnumerator.h"
24#include "arcane/materials/ComponentItemVectorView.h"
40template<
typename ViewType,
typename LambdaType>
46 : m_items(items_view), m_lambda_function(lambda_function)
54 ViewType sub_view(m_items._subView(begin,size));
55 m_lambda_function(sub_view);
60 const LambdaType& m_lambda_function;
79 template<
typename LambdaType>
inline void
82 LambdaMatItemRangeFunctorT<ComponentItemVectorView,LambdaType> ipf(items_view,lambda_function);
91 template<
typename LambdaType>
inline void
93 const LambdaType& lambda_function)
95 LambdaMatItemRangeFunctorT<ComponentItemVectorView,LambdaType> ipf(items_view,lambda_function);
104 template<
typename LambdaType>
inline void
107 LambdaMatItemRangeFunctorT<EnvItemVectorView,LambdaType> ipf(items_view,lambda_function);
116 template<
typename LambdaType>
inline void
118 const LambdaType& lambda_function)
120 LambdaMatItemRangeFunctorT<EnvItemVectorView,LambdaType> ipf(items_view,lambda_function);
129 template<
typename LambdaType>
inline void
132 LambdaMatItemRangeFunctorT<MatItemVectorView,LambdaType> ipf(items_view,lambda_function);
141 template<
typename LambdaType>
inline void
143 const LambdaType& lambda_function)
145 LambdaMatItemRangeFunctorT<MatItemVectorView,LambdaType> ipf(items_view,lambda_function);
163 template<
typename LambdaType>
inline void
174 template<
typename LambdaType>
inline void
176 const LambdaType& lambda_function)
186 template<
typename LambdaType>
inline void
197 template<
typename LambdaType>
inline void
199 const LambdaType& lambda_function)
209 template<
typename LambdaType>
inline void
220 template<
typename LambdaType>
inline void
222 const LambdaType& lambda_function)
Déclarations des types utilisés dans Arcane.
Interface d'un fonctor sur un interval d'itération.
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...
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.