Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
ComponentSimd.h File Reference
#include "arcane/core/ArcaneTypes.h"
#include "arcane/core/SimdItem.h"
#include "arcane/materials/MatItem.h"
#include "arcane/materials/MatItemEnumerator.h"
#include "arcane/materials/ComponentPartItemVectorView.h"
Include dependency graph for ComponentSimd.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Arcane::Materials::ComponentPartSimdCellEnumerator
 SIMD enumerator on a sub-part (pure or partial) of a subset of the cells of a component (material or medium). More...
class  Arcane::Materials::LoopFunctorEnvPartSimdCell
class  Arcane::Materials::MatVariableViewBase
 Base class for variable views. More...
class  Arcane::Materials::MatItemVariableScalarInViewT< ItemType, DataType >
 Read view on a scalar mesh variable. More...
class  Arcane::Materials::MatItemVariableScalarOutViewT< ItemType, DataType >
 Read view on a scalar mesh variable. More...

Namespaces

namespace  Arcane
 -- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
namespace  Arcane::Materials
 Always enables tracing in Arcane parts concerning materials.

Macros

#define A_ALIGNED_64
#define ENUMERATE_SIMD_COMPONENTCELL(iname, env)
#define ENUMERATE_COMPONENTITEM_LAMBDA(iter_type, iter, container)
 Macro to iterate over the entities of a component via a C++11 lambda function.

Functions

class Arcane::Materials::ARCANE_MATERIALS_EXPORT (64) SimdMatVarIndex
 SIMD indexer on a component.
ComponentPartSimdCellEnumerator Arcane::Materials::arcaneImplCreateConstituentEnumerator (ComponentPartSimdCell, ComponentPartItemVectorView v)
template<typename Lambda>
void Arcane::Materials::simple_simd_env_loop (ComponentPartItemVectorView pure_items, ComponentPartItemVectorView impure_items, const Lambda &lambda)
template<typename DataType>
MatItemVariableScalarInViewT< Cell, DataType > Arcane::Materials::viewIn (const CellMaterialVariableScalarRef< DataType > &var)
 Read view.
template<typename DataType>
MatItemVariableScalarOutViewT< Cell, DataType > Arcane::Materials::viewOut (CellMaterialVariableScalarRef< DataType > &var)
 Write view.

Detailed Description

This file contains the different types to manage vectorization on components (materials and media).

Definition in file ComponentSimd.h.

Macro Definition Documentation

◆ A_ALIGNED_64

#define A_ALIGNED_64

Definition at line 37 of file ComponentSimd.h.

◆ ENUMERATE_COMPONENTITEM_LAMBDA

#define ENUMERATE_COMPONENTITEM_LAMBDA ( iter_type,
iter,
container )
Value:
Arcane::Materials::LoopFunctor##iter_type ::create((container)) << [=](Arcane::Materials::LoopFunctor##iter_type ::IterType iter)

Macro to iterate over the entities of a component via a C++11 lambda function.

The arguments are the same as for the ENUMERATE_COMPONENTITEM() macro.

The code after the macro corresponds to the body of the C++11 lambda function. It must therefore be enclosed between two curly braces '{' '}' and end with a semicolon ';'. For example:

};
#define ENUMERATE_COMPONENTITEM_LAMBDA(iter_type, iter, container)
Macro to iterate over the entities of a component via a C++11 lambda function.
Note
Even if the code is similar to that of a loop, it is a C++11 lambda function and therefore it is not possible to use keywords like 'break' or 'continue'. If you want to stop an iteration you must use the keyword 'return'.

Definition at line 210 of file ComponentSimd.h.

◆ ENUMERATE_SIMD_COMPONENTCELL

#define ENUMERATE_SIMD_COMPONENTCELL ( iname,
env )
Value:
A_ENUMERATE_COMPONENTCELL(ComponentPartSimdCell, iname, env)

Definition at line 132 of file ComponentSimd.h.