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>
41class LambdaMatItemRangeFunctorT
45 LambdaMatItemRangeFunctorT(ViewType items_view,
const LambdaType& lambda_function)
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
91 template<
typename LambdaType>
inline void
93 const LambdaType& lambda_function)
104 template<
typename LambdaType>
inline void
116 template<
typename LambdaType>
inline void
118 const LambdaType& lambda_function)
129 template<
typename LambdaType>
inline void
141 template<
typename LambdaType>
inline void
143 const LambdaType& lambda_function)
156 using namespace Arcane;
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.
Integer nbItem() const
Nombre d'entités dans la vue.
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 -*-
Int32 Integer
Type représentant un entier.
Ensemble des classes assurant la gestion des matériaux et des milieux.