Arcane  v3.14.10.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-2024 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-2024 */
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
23namespace Arccore
24{
25class ISerializer;
26}
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31namespace Arcane
32{
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
41/*---------------------------------------------------------------------------*/
42/*---------------------------------------------------------------------------*/
43
44class IBase;
45class ISession;
46class IApplication;
47class IRessourceMng;
48class Real2;
49class Real3;
50class Real2x2;
51class Real3x3;
52class IData;
53
54/*---------------------------------------------------------------------------*/
55/*---------------------------------------------------------------------------*/
56
57class IArcaneMain;
58class ApplicationInfo;
59class IMainFactory;
60class VersionInfo;
61class ITimeStats;
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
66class IService;
67class IServiceInfo;
68class IServiceInstance;
69class ISingletonServiceInstance;
70class IModule;
71class ISubDomain;
72class IServiceInstance;
73class ServiceBuildInfoBase;
74class ServiceProperty;
75class ServiceInstanceRef;
76
87namespace Internal
88{
91template<typename InterfaceType>
94class ServiceInfo;
95template<typename ServiceType>
97}
98
99/*---------------------------------------------------------------------------*/
100/*---------------------------------------------------------------------------*/
101
102class IVariableMng;
103class IMeshFactoryMng;
104class IMeshMng;
105class IMesh;
106class IMeshInternal;
107class IMeshBase;
108class IUserDataList;
109class IMeshBuilder;
110class MeshHandle;
111class MeshHandleOrMesh;
112class MeshBuildInfo;
113class MeshKind;
114class IPrimaryMesh;
117class ItemInfoListView;
130class IParallelMng;
142class IIOMng;
143class ITimerMng;
144class IThreadMng;
145enum class eMeshStructure;
146enum class eMeshAMRKind;
147
148/*---------------------------------------------------------------------------*/
149/*---------------------------------------------------------------------------*/
150
162
164static const Integer NB_ITEM_KIND = 6;
165
167extern "C++" ARCANE_CORE_EXPORT const char*
169
171extern "C++" ARCANE_CORE_EXPORT std::ostream&
172operator<< (std::ostream& ostr,eItemKind item_kind);
173
175extern "C++" ARCANE_CORE_EXPORT std::istream&
176operator>> (std::istream& istr,eItemKind& item_kind);
177
178/*---------------------------------------------------------------------------*/
179/*---------------------------------------------------------------------------*/
180
184static const Integer NULL_ITEM_ID = static_cast<Integer>(-1);
185
187static const Integer NULL_ITEM_LOCAL_ID = static_cast<Integer>(-1);
188
190static const Int64 NULL_ITEM_UNIQUE_ID = static_cast<Int64>(-1);
191
193static const Integer NULL_SUB_DOMAIN_ID = static_cast<Integer>(-1);
194
196static const Int32 A_NULL_RANK = static_cast<Int32>(-1);
197
199static const Int16 IT_NullType = 0;
201static const Int16 IT_Vertex = 1;
203static const Int16 IT_Line2 = 2;
205static const Int16 IT_Triangle3 = 3;
207static const Int16 IT_Quad4 = 4;
209static const Int16 IT_Pentagon5 = 5;
211static const Int16 IT_Hexagon6 = 6;
213static const Int16 IT_Tetraedron4 = 7;
215static const Int16 IT_Pyramid5 = 8;
217static const Int16 IT_Pentaedron6 = 9;
219static const Int16 IT_Hexaedron8 = 10;
221static const Int16 IT_Heptaedron10 = 11;
223static const Int16 IT_Octaedron12 = 12;
225static const Int16 IT_HemiHexa7 = 13;
227static const Int16 IT_HemiHexa6 = 14;
229static const Int16 IT_HemiHexa5 = 15;
231static const Int16 IT_AntiWedgeLeft6 = 16;
233static const Int16 IT_AntiWedgeRight6 = 17;
235static const Int16 IT_DiTetra5 = 18;
237static const Int16 IT_DualNode = 19;
239static const Int16 IT_DualEdge = 20;
241static const Int16 IT_DualFace = 21;
243static const Int16 IT_DualCell = 22;
245static const Int16 IT_Link = 23;
247static const Int16 IT_FaceVertex = 24;
249static const Int16 IT_CellLine2 = 25;
251static const Int16 IT_DualParticle = 26;
252
254static const Int16 IT_Enneedron14 = 27;
256static const Int16 IT_Decaedron16 = 28;
257
259static const Int16 IT_Heptagon7 = 29;
260
262static const Int16 IT_Octogon8 = 30;
263
265
266
267static const Int16 IT_Line3 = 31;
269static const Int16 IT_Triangle6 = 32;
271static const Int16 IT_Quad8 = 33;
273static const Int16 IT_Tetraedron10 = 34;
275static const Int16 IT_Hexaedron20 = 35;
277
279static const Integer NB_BASIC_ITEM_TYPE = 36;
280
281extern "C++" ARCANE_CORE_EXPORT eItemKind
282dualItemKind(Integer type);
283
284/*---------------------------------------------------------------------------*/
285/*---------------------------------------------------------------------------*/
290{
291 TP_Computation = 0,
292 TP_Communication,
293 TP_InputOutput
294};
295static const Integer NB_TIME_PHASE = 3;
296
298extern "C++" ARCANE_CORE_EXPORT std::ostream&
299operator<< (std::ostream& ostr,eTimePhase time_phase);
300
302extern "C++" ARCANE_CORE_EXPORT std::istream&
303operator>> (std::istream& istr,eTimePhase& time_phase);
304
305/*---------------------------------------------------------------------------*/
306/*---------------------------------------------------------------------------*/
307
320
322extern "C++" ARCANE_CORE_EXPORT std::ostream&
323operator<<(std::ostream& o,eMeshDirection md);
324
325/*---------------------------------------------------------------------------*/
326/*---------------------------------------------------------------------------*/
327
328class ISubDomain;
329
330template<typename T> class SimplePropertyT;
331
332/*---------------------------------------------------------------------------*/
333/*---------------------------------------------------------------------------*/
334
335template<typename DataType>
336class IScalarDataT;
337template<typename DataType>
338class IArrayDataT;
339template<typename DataType>
340class IArray2DataT;
341template<typename DataType>
342class IMultiArray2DataT;
343
344template<typename DataType>
345class VariableScalarT;
346template<typename DataType>
347class VariableArrayT;
348template<typename DataType>
349class Array2VariableT;
350template<typename DataType>
352
353template<typename DataType>
355template<typename DataType>
357template<typename DataType>
359template<typename DataType>
361
362template<typename DataType>
364template<typename ItemType,class DataType>
366template<typename ItemType,class DataType>
368template<typename DataType>
370template<typename ItemType,class DataType>
372template<typename ItemTypeT, typename DataTypeT>
374template<typename DataTypeT>
376
377/*---------------------------------------------------------------------------*/
378/*---------------------------------------------------------------------------*/
379
380template <typename DataType>
381class DataViewSetter;
382template <typename DataType>
383class DataViewGetter;
384template <typename DataType>
386
387/*---------------------------------------------------------------------------*/
388/*---------------------------------------------------------------------------*/
389
390template <typename ItemType, typename DataType, typename Extents>
392template <typename ItemType, typename DataType, typename Extents>
394
395/*---------------------------------------------------------------------------*/
396/*---------------------------------------------------------------------------*/
397
398class CollectionBase;
399class IItemFamily;
401class IMesh;
402class IMeshPartitioner;
404class IModule;
405class IService;
408class IServiceInstance;
409class IEntryPoint;
410class ITimeLoop;
411class IVariable;
413class VariableRef;
414class Item;
416class ICaseOptions;
417class ICaseFunction;
418class ICaseDocument;
420class ICaseMng;
421class ICaseOptionList;
423class ItemGroup;
424class ITiedInterface;
427
466
487
488/*---------------------------------------------------------------------------*/
489/*---------------------------------------------------------------------------*/
490
497
498/*---------------------------------------------------------------------------*/
499/*---------------------------------------------------------------------------*/
500
501class IDataVisitor;
506class IDataOperation;
507class ISerializedData;
508class IHashAlgorithm;
511class ISerializedData;
512class IDataFactoryMng;
516class IDataInternal;
517template<typename DataType> class IArrayDataInternalT;
518template<typename DataType> class IArray2DataInternalT;
519
520/*---------------------------------------------------------------------------*/
521/*---------------------------------------------------------------------------*/
522
523class IVariableRef;
524class IVariableFactory;
525class VariableTypeInfo;
526class VariableRef;
530class VariableInfo;
531typedef VariableRef* (*VariableFactoryVariableRefCreateFunc)(const VariableBuildInfo& vb);
532
533/*---------------------------------------------------------------------------*/
534/*---------------------------------------------------------------------------*/
535
536namespace Accelerator
537{
538class IAcceleratorMng;
540}
541using Accelerator::IAcceleratorMng;
542using Accelerator::AcceleratorRuntimeInitialisationInfo;
543
544/*---------------------------------------------------------------------------*/
545/*---------------------------------------------------------------------------*/
546
547} // End namespace Arcane
548
549/*---------------------------------------------------------------------------*/
550/*---------------------------------------------------------------------------*/
551
562
563/*---------------------------------------------------------------------------*/
564/*---------------------------------------------------------------------------*/
565
566namespace Arcane
567{
572}
573
574/*---------------------------------------------------------------------------*/
575/*---------------------------------------------------------------------------*/
576
577#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:54
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:120
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:59
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.
Variable tableau bi dimensionnel.
Référence à une variable scalaire.
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.
Interface gérant les statistiques sur l'exécution.
Sentinelle pour collecter les informations temporelles.
Definition TimeMetric.h:101
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:80
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:40
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:24