Types et macros pour gérer les boucles sur les entités du maillage. Plus de détails...
#include "arcane/ItemEnumerator.h"
Aller au code source de ce fichier.
Classes | |
class | Arcane::Loop::ItemLoopFunctor< ItemType > |
Classe template pour encapsuler une boucle sur les entités. Plus de détails... | |
Espaces de nommage | |
namespace | Arcane |
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*- | |
namespace | Arcane::Loop |
Espace de nom contenant les différentes classes gérant les boucles sur les entités. | |
Macros | |
#define | ENUMERATE_ITEM_LAMBDA(item_type, iter, container) Arcane::Loop:: ItemLoopFunctor ## item_type :: create ( (container) ) << [=]( Arcane::Loop:: ItemLoopFunctor ## item_type :: IterType iter) |
Enumérateur sur une entité via une fonction lambda. | |
Définitions de type | |
typedef ItemLoopFunctor< Cell > | Arcane::Loop::ItemLoopFunctorCell |
typedef ItemLoopFunctor< Node > | Arcane::Loop::ItemLoopFunctorNode |
Fonctions | |
template<typename IterType , typename Lambda > | |
void | Arcane::Loop::_InternalSimpleItemLoop (ItemVectorView view, const Lambda &lambda) |
Fonctor de boucle d'entité permettant de supprimer les indirections si les indices locaux de view sont consécutifs. | |
Types et macros pour gérer les boucles sur les entités du maillage.
Définition dans le fichier ItemLoop.h.
#define ENUMERATE_ITEM_LAMBDA | ( | item_type, | |
iter, | |||
container | |||
) | Arcane::Loop:: ItemLoopFunctor ## item_type :: create ( (container) ) << [=]( Arcane::Loop:: ItemLoopFunctor ## item_type :: IterType iter) |
Enumérateur sur une entité via une fonction lambda.
item_type | type de l'entité (Arcane::Node, Arcane::Cell, Arcane::Edge, ....) |
iter | nom de l'itérateur |
container | conteneur associé (de type Arcane::ItemGroup ou Arcane::ItemVectorView). |
Cette macro génère une lambda et il faut donc terminer l'expression par un ';'.
Par exemple, pour itérer sur toutes les mailles:
L'itérateur est de type item_type :: Index (par exemple Cell::Index pour une maille). Il ne dispose donc pas des méthodes classiques sur les entités (comme par exemple Arcane::Cell::nbNode()). L'itérateur permet uniquement d'accéder aux valeurs des variables.
La lambda est déclarée avec [=] et il est donc interdit de modifier les variables capturées.
Définition à la ligne 131 du fichier ItemLoop.h.