Arcane  v3.15.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ArcaneTypes.h
Aller à la documentation de ce fichier.
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* ArcaneTypes.h (C) 2000-2025 */
9/* */
10/* Définition des types généraux de Arcane. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ARCANETYPES_H
13#define ARCANE_CORE_ARCANETYPES_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/datatype/DataTypes.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23// GG: Ne devrait pas être ici. Il faudrait inclure "SerializeGlobal.h" à la
24// place mais cela n'est pas possible tant que certains fichiers de
25// 'arcane/utils' utilisent des fichiers d'en-tête de 'arcane/core'. C'est
26// le cas par exemple des fichiers '*AMR*.h'.
27
28namespace Arccore
29{
30class ISerializer;
31}
32namespace Arcane
33{
35
36}
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
40namespace Arcane
41{
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
50/*---------------------------------------------------------------------------*/
51/*---------------------------------------------------------------------------*/
52
53class IBase;
54class ISession;
55class IApplication;
56class IRessourceMng;
57class Real2;
58class Real3;
59class Real2x2;
60class Real3x3;
61class IData;
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
66class IArcaneMain;
67class ApplicationInfo;
68class IMainFactory;
69class VersionInfo;
70class ITimeStats;
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75class IService;
76class IServiceInfo;
77class IServiceInstance;
78class ISingletonServiceInstance;
79class IModule;
80class ISubDomain;
81class IServiceInstance;
82class ServiceBuildInfoBase;
83class ServiceProperty;
84class ServiceInstanceRef;
85
96namespace Internal
97{
100template<typename InterfaceType>
103class ServiceInfo;
104template<typename ServiceType>
106}
107
108/*---------------------------------------------------------------------------*/
109/*---------------------------------------------------------------------------*/
110
111class IVariableMng;
112class IMeshFactoryMng;
113class IMeshMng;
114class IMesh;
115class IMeshInternal;
116class IMeshBase;
117class IUserDataList;
118class IMeshBuilder;
119class MeshHandle;
120class MeshHandleOrMesh;
121class MeshBuildInfo;
122class MeshKind;
123class IPrimaryMesh;
126class ItemInfoListView;
139class IParallelMng;
151class IIOMng;
152class ITimerMng;
153class IThreadMng;
154enum class eMeshStructure;
155enum class eMeshAMRKind;
156
157/*---------------------------------------------------------------------------*/
158/*---------------------------------------------------------------------------*/
159
171
173static const Integer NB_ITEM_KIND = 6;
174
176extern "C++" ARCANE_CORE_EXPORT const char*
178
180extern "C++" ARCANE_CORE_EXPORT std::ostream&
181operator<< (std::ostream& ostr,eItemKind item_kind);
182
184extern "C++" ARCANE_CORE_EXPORT std::istream&
185operator>> (std::istream& istr,eItemKind& item_kind);
186
187/*---------------------------------------------------------------------------*/
188/*---------------------------------------------------------------------------*/
189
193static const Integer NULL_ITEM_ID = static_cast<Integer>(-1);
194
196static const Integer NULL_ITEM_LOCAL_ID = static_cast<Integer>(-1);
197
199static const Int64 NULL_ITEM_UNIQUE_ID = static_cast<Int64>(-1);
200
202static const Integer NULL_SUB_DOMAIN_ID = static_cast<Integer>(-1);
203
205static const Int32 A_NULL_RANK = static_cast<Int32>(-1);
206
208static const Int16 IT_NullType = 0;
210static const Int16 IT_Vertex = 1;
212static const Int16 IT_Line2 = 2;
214static const Int16 IT_Triangle3 = 3;
216static const Int16 IT_Quad4 = 4;
218static const Int16 IT_Pentagon5 = 5;
220static const Int16 IT_Hexagon6 = 6;
222static const Int16 IT_Tetraedron4 = 7;
224static const Int16 IT_Pyramid5 = 8;
226static const Int16 IT_Pentaedron6 = 9;
228static const Int16 IT_Hexaedron8 = 10;
230static const Int16 IT_Heptaedron10 = 11;
232static const Int16 IT_Octaedron12 = 12;
234static const Int16 IT_HemiHexa7 = 13;
236static const Int16 IT_HemiHexa6 = 14;
238static const Int16 IT_HemiHexa5 = 15;
240static const Int16 IT_AntiWedgeLeft6 = 16;
242static const Int16 IT_AntiWedgeRight6 = 17;
244static const Int16 IT_DiTetra5 = 18;
246static const Int16 IT_DualNode = 19;
248static const Int16 IT_DualEdge = 20;
250static const Int16 IT_DualFace = 21;
252static const Int16 IT_DualCell = 22;
254static const Int16 IT_Link = 23;
256static const Int16 IT_FaceVertex = 24;
258static const Int16 IT_CellLine2 = 25;
260static const Int16 IT_DualParticle = 26;
261
263static const Int16 IT_Enneedron14 = 27;
265static const Int16 IT_Decaedron16 = 28;
266
268static const Int16 IT_Heptagon7 = 29;
269
271static const Int16 IT_Octogon8 = 30;
272
274
275
276static const Int16 IT_Line3 = 31;
278static const Int16 IT_Triangle6 = 32;
280static const Int16 IT_Quad8 = 33;
282static const Int16 IT_Tetraedron10 = 34;
284static const Int16 IT_Hexaedron20 = 35;
286
294static const Int16 IT_Cell3D_Line2 = 36;
296static const Int16 IT_Cell3D_Triangle3 = 37;
298static const Int16 IT_Cell3D_Quad4 = 38;
300
302static const Integer NB_BASIC_ITEM_TYPE = 39;
303
304extern "C++" ARCANE_CORE_EXPORT eItemKind
305dualItemKind(Integer type);
306
307/*---------------------------------------------------------------------------*/
308/*---------------------------------------------------------------------------*/
313{
314 TP_Computation = 0,
315 TP_Communication,
316 TP_InputOutput
317};
318static const Integer NB_TIME_PHASE = 3;
319
321extern "C++" ARCANE_CORE_EXPORT std::ostream&
322operator<< (std::ostream& ostr,eTimePhase time_phase);
323
325extern "C++" ARCANE_CORE_EXPORT std::istream&
326operator>> (std::istream& istr,eTimePhase& time_phase);
327
328/*---------------------------------------------------------------------------*/
329/*---------------------------------------------------------------------------*/
330
343
345extern "C++" ARCANE_CORE_EXPORT std::ostream&
346operator<<(std::ostream& o,eMeshDirection md);
347
348/*---------------------------------------------------------------------------*/
349/*---------------------------------------------------------------------------*/
350
351class ISubDomain;
352
353template<typename T> class SimplePropertyT;
354
355/*---------------------------------------------------------------------------*/
356/*---------------------------------------------------------------------------*/
357
358template<typename DataType>
359class IScalarDataT;
360template<typename DataType>
361class IArrayDataT;
362template<typename DataType>
363class IArray2DataT;
364template<typename DataType>
365class IMultiArray2DataT;
366
367template<typename DataType>
368class VariableScalarT;
369template<typename DataType>
370class VariableArrayT;
371template<typename DataType>
372class Array2VariableT;
373
374template<typename DataType>
375class VariableRefScalarT;
376template<typename DataType>
377class VariableRefArrayT;
378template<typename DataType>
379class VariableRefArray2T;
380// TODO: Ce type n'est plus utilisé. A supprimer fin 2025
381template<typename DataType>
383
384template<typename DataType>
386template<typename ItemType,class DataType>
388template<typename ItemType,class DataType>
390template<typename DataType>
392template<typename ItemType,class DataType>
394template<typename ItemTypeT, typename DataTypeT>
396template<typename DataTypeT>
398
399/*---------------------------------------------------------------------------*/
400/*---------------------------------------------------------------------------*/
401
402template <typename DataType>
403class DataViewSetter;
404template <typename DataType>
405class DataViewGetter;
406template <typename DataType>
408
409/*---------------------------------------------------------------------------*/
410/*---------------------------------------------------------------------------*/
411
412template <typename ItemType, typename DataType, typename Extents>
414template <typename ItemType, typename DataType, typename Extents>
416
417/*---------------------------------------------------------------------------*/
418/*---------------------------------------------------------------------------*/
419
420class CollectionBase;
421class IItemFamily;
423class IMesh;
424class IMeshPartitioner;
426class IModule;
427class IService;
430class IServiceInstance;
431class IEntryPoint;
432class ITimeLoop;
433class IVariable;
435class VariableRef;
436class Item;
438class ICaseOptions;
439class ICaseFunction;
440class ICaseDocument;
442class ICaseMng;
443class ICaseOptionList;
445class ItemGroup;
446class ITiedInterface;
449
488
509
510/*---------------------------------------------------------------------------*/
511/*---------------------------------------------------------------------------*/
512
513class IDataVisitor;
518class IDataOperation;
519class ISerializedData;
520class IHashAlgorithm;
523class ISerializedData;
524class IDataFactoryMng;
528class IDataInternal;
529template<typename DataType> class IArrayDataInternalT;
530template<typename DataType> class IArray2DataInternalT;
531
532/*---------------------------------------------------------------------------*/
533/*---------------------------------------------------------------------------*/
534
535class IVariableRef;
536class IVariableFactory;
537class VariableTypeInfo;
538class VariableRef;
542class VariableInfo;
543typedef VariableRef* (*VariableFactoryVariableRefCreateFunc)(const VariableBuildInfo& vb);
544
545/*---------------------------------------------------------------------------*/
546/*---------------------------------------------------------------------------*/
547
548namespace Accelerator
549{
550class IAcceleratorMng;
552}
553using Accelerator::IAcceleratorMng;
554using Accelerator::AcceleratorRuntimeInitialisationInfo;
555
556/*---------------------------------------------------------------------------*/
557/*---------------------------------------------------------------------------*/
558
559} // End namespace Arcane
560
561/*---------------------------------------------------------------------------*/
562/*---------------------------------------------------------------------------*/
563
574
575/*---------------------------------------------------------------------------*/
576/*---------------------------------------------------------------------------*/
577
578namespace Arcane
579{
584}
585
586/*---------------------------------------------------------------------------*/
587/*---------------------------------------------------------------------------*/
588
589#endif
#define ARCCORE_DECLARE_REFERENCE_COUNTED_CLASS(class_name)
Macro pour déclarer qu'une classe utilise un compteur de référence.
Déclarations des types utilisés dans Arcane.
Interface du gestionnaire des accélérateurs.
Informations pour allouer les entités d'un maillage non structuré.
Source d'un jeu de données d'un cas.
Informations pour construire une option de jeu de données.
Classe de base d'une collection.
Definition Collection.h:33
Informations sur l'allocation d'une donnée.
Informations pour construire une instance de 'IData'.
Informations de type pour un conteneur de données.
Classe pour accéder à un élément d'une vue en lecture/écriture.
Definition DataView.h:245
Classe pour accéder à un élément d'une vue en lecture.
Definition DataView.h:44
Classe pour accéder à un élément d'une vue en écriture.
Definition DataView.h:62
Interface d'une donnée tableau bi-dimensionnel d'un type T.
Interface du pattern visitor pour une donnée tableau 2D.
Interface d'une donnée tableau d'un type T.
Interface du pattern visitor pour une donnée tableau.
Interface d'une partie d'un jeu de données.
Interface d'une classe gérant un document XML du jeu de données.
Interface d'une fonction du jeu de données.
Interface du gestionnaire de cas.
Definition ICaseMng.h:56
Interface d'une liste d'options du jeu de données.
Interface d'une liste d'options du jeu de données.
Interface du gestionnaire de fabrique d'une donnée.
Partie interne de IData.
Interface d'une opération sur une donnée.
Interface d'une fabrique de conteneur d'une donnée.
Interface du pattern visitor pour une donnée.
Interface d'une donnée.
Definition IData.h:33
Interface d'un point d'entrée d'un module.
Definition IEntryPoint.h:34
Opérations pour accéder aux valeurs de variables d'un autre sous-domaine.
Interface d'un algorithme de hashage.
Interface du gestionnaire des entrées sorties.
Definition IIOMng.h:42
API interne à Arcane de IIncrementalItemConnectivity.
Interface pour gérer une connectivité incrémentale.
Interface de la source d'une connectivité incrémentale.
Interface de la cible d'une connectivité incrémentale.
Interface du gestionnaire des connectivités incrémentales indexées sur les entités.
Interface pour gérer une connectivité incrémentale.
Partie interne de IItemFamily.
Interface d'une famille d'entités.
Interface d'un service de création/lecture du maillage.
Interface du gestionnaire de fabriques de maillages.
Interface d'allocation des entités du maillage.
Partie interne de IMesh.
Interface du gestionnaire des maillages.
Definition IMeshMng.h:40
Interface d'un partitionneur de maillage.
Interface d'un partitionneur de maillage.
Informations sur la fabrique d'un module.
Interface d'un module.
Definition IModule.h:39
Interface du pattern visitor pour une donnée tableau 2D à taille variable.
Echange d'informations entre processeurs.
Interface d'une fabrique de conteneur de 'IParallelMng'.
Interface d'un conteneur de 'IParallelMng'.
Partie interne de IParallelMng.
Interface d'une fabrique pour les fonctions utilitaires de IParallelMng.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface des opérations parallèles collectives non bloquantes.
Informations sur la réplication des sous-domaines en parallèle.
Informations sur la topologie d'allocation des coeurs de calcul.
Interface d'un système d'unité.
Interface du pattern visitor pour une donnée scalaire.
Interface d'une donnée sérialisée.
Informations sur la fabrique d'un service.
Interface d'une instance d'un service.
Definition IService.h:73
Interface d'un service.
Definition IService.h:45
Interface d'un gestionnaire de thread.
Definition IThreadMng.h:30
Interface d'un classe gérant une semi-conformité du maillage.
Interface d'une boucle en temps.
Definition ITimeLoop.h:41
Interface d'un gestionnaire de timer.
Definition ITimerMng.h:53
Envoie de valeurs sur différents processeurs.
Interface d'une liste qui gère des données utilisateurs.
Interface d'une fabrique de variables.
Partie interne de Ivariable.
Interface du gestionnaire de variables.
Interface du gestionnaire de synchronisation des variables.
Interface d'un service de synchronisation de variable.
Interface d'une variable.
Definition IVariable.h:56
Fabrique pour un service implémentant l'interface InterfaceType.
Classe permettant de créer et d'enregistrer les fabriques pour un service.
Informations d'un service.
Definition ServiceInfo.h:46
Vue sur les informations génériques d'une famille d'entités.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Vue sur une liste pour obtenir des informations sur les entités.
Enumérateur sur un tableau de tableaux d'entités du maillage.
Variable partielle scalaire sur un type d'entité du maillage.
Variable scalaire sur un type d'entité du maillage.
Classe de base d'un élément de maillage.
Definition Item.h:83
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
Paramètres nécessaires à la construction d'un maillage.
Classe de compatibilité pour contenir un MeshHandle ou un IMesh*.
Definition MeshHandle.h:194
Handle sur un maillage.
Definition MeshHandle.h:47
Caractéristiques d'un maillage.
Definition MeshKind.h:64
Classe de base gérant une variable multi-dimension sur une entité du maillage.
Classe gérant une variable multi-dimension sur une entité du maillage.
Variable scalaire sur un type d'entité du maillage.
Variable tableau sur un type d'entité du maillage.
Variable scalaire sur un type d'entité du maillage.
Constructeur pour une variable nulle.
Informations pour allouer les entités d'un maillage non structuré.
Paramètres nécessaires à la construction d'une variable.
Collection de variables.
Enregistreur d'une fabrique de variables.
Infos caractérisant une variable.
Référence à une variable.
Definition VariableRef.h:56
Arguments de l'évènement notifiant une synchronisation de variables.
Informations caractérisant le type d'une variable.
std::ostream & operator<<(std::ostream &o, eExecutionPolicy exec_policy)
Affiche le nom de la politique d'exécution.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Collection< IService * > ServiceCollection
Collection de services.
List< ISession * > SessionList
Tableau de sessions.
Collection< VariableRef * > VariableRefCollection
Collection de variables.
Collection< ItemGroup > ItemGroupCollection
Collection de groupes d'éléments du maillage.
Collection< IItemFamily * > ItemFamilyCollection
Collection de familles d'entités.
List< ICaseOptions * > CaseOptionsList
Tableau d'options du jeu de données.
Collection< IServiceFactoryInfo * > ServiceFactoryInfoCollection
Collection d'informations sur les fabriques de service.
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection de fabriques de service.
List< ItemGroup > ItemGroupList
Tableau de groupes d'éléments du maillage.
List< IModule * > ModuleList
Tableau de modules.
eMeshStructure
Structure du maillage.
Definition MeshKind.h:29
Collection< IItemFamily * > IItemFamilyCollection
Collection de familles d'entités.
List< IEntryPoint * > EntryPointList
Tableau de points d'entrées.
eMeshDirection
Type de la direction pour un maillage structuré
@ MD_DirInvalid
Direction invalide ou non initialisée.
@ MD_DirZ
Direction Z.
@ MD_DirY
Direction Y.
@ MD_DirX
Direction X.
Collection< SingletonServiceInstanceRef > SingletonServiceInstanceCollection
Collection d'instances de services singletons.
Collection< ICaseOptions * > CaseOptionsCollection
Collection d'options du jeu de données.
Collection< ITimeLoop * > TimeLoopCollection
Collection de boucles en temps.
Ref< ISingletonServiceInstance > SingletonServiceInstanceRef
Référence à l'interface 'ISingletonServiceInstance'.
Definition ArcaneTypes.h:89
List< ISubDomain * > SubDomainList
Tableau de sous-domaines.
Collection< IModuleFactoryInfo * > ModuleFactoryInfoCollection
Collection d'informations sur les fabriques de module.
List< IService * > ServiceList
Tableau de services.
List< ITiedInterface * > TiedInterfaceList
Tableau d'interfaces liées.
std::istream & operator>>(std::istream &istr, eItemKind &item_kind)
Opérateur d'entrée depuis un flot.
eItemKind
Genre d'entité de maillage.
@ IK_Particle
Entité de maillage de genre particule.
@ IK_Node
Entité de maillage de genre noeud.
@ IK_Cell
Entité de maillage de genre maille.
@ IK_Unknown
Entité de maillage de genre inconnu ou non initialisé
@ IK_Face
Entité de maillage de genre face.
@ IK_DoF
Entité de maillage de genre degre de liberte.
@ IK_Edge
Entité de maillage de genre arête.
const char * itemKindName(eItemKind kind)
Nom du genre d'entité.
Collection< Ref< ICaseFunction > > CaseFunctionCollection
Collection de fonctions du jeu de données.
Collection< IModule * > ModuleCollection
Collection de modules.
Collection< IEntryPoint * > EntryPointCollection
Collection de points d'entrées.
List< ITimeLoop * > TimeLoopList
Tableau de boucles en temps.
Collection< IMesh * > MeshCollection
Collection de maillages.
Collection< ISession * > SessionCollection
Collection de sessions.
eTimePhase
Phase d'une action temporelle.
Collection< ISubDomain * > SubDomainCollection
Collection de sous-domaines.
List< VariableRef * > VariableRefList
Tableau de références de variables.
Collection< IMesh * > IMeshCollection
Collection de maillages.
Collection< ServiceInstanceRef > ServiceInstanceCollection
Collection d'instances de services.
eMeshAMRKind
Type de maillage AMR.
Definition MeshKind.h:41
List< Ref< ICaseFunction > > CaseFunctionList
Tableau de fonctions du jeu de données.
Collection< ITiedInterface * > TiedInterfaceCollection
Collection d'interfaces liées.
Espace de nom de Arccore.
Definition ArcaneTypes.h:29