Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ArcaneTypes.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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.cc (C) 2000-2012 */
9/* */
10/* Définition des types généraux de Arcane. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/ArcaneTypes.h"
15
16#include "arcane/utils/Iostream.h"
17#include "arcane/utils/String.h"
18
19// Les fichiers .h suivant ne sont utiles que pour exporter les symbols
20// qu'ils contiennent. Cela est nécessaire sous Windows et parfois sous
21// unix suivant les options choisies
22#include "arcane/IParallelExchanger.h"
23#include "arcane/ITransferValuesParallelOperation.h"
24#include "arcane/IMeshFactory.h"
25#include "arcane/IMeshUtilities.h"
26#include "arcane/IMeshReader.h"
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31ARCANE_BEGIN_NAMESPACE
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36extern "C++" ARCANE_CORE_EXPORT const char*
38{
39 switch(kind){
40 case IK_Cell: return "Cell";
41 case IK_Node: return "Node";
42 case IK_Face: return "Face";
43 case IK_Edge: return "Edge";
44 case IK_Particle: return "Particle";
45 case IK_DoF: return "DoF";
46 case IK_Unknown: return "None";
47 }
48 return "Invalid";
49}
50
51/*---------------------------------------------------------------------------*/
52/*---------------------------------------------------------------------------*/
53
54extern "C++" ARCANE_CORE_EXPORT eItemKind
55dualItemKind(Integer type_id)
56{
57 switch(type_id){
58 case IT_DualNode : return IK_Node;
59 case IT_DualEdge : return IK_Edge;
60 case IT_DualFace : return IK_Face;
61 case IT_DualCell : return IK_Cell;
62 case IT_DualParticle : return IK_Particle;
63 default : return IK_Unknown;
64 }
65}
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
70extern "C++" ARCANE_CORE_EXPORT std::ostream&
71operator<< (std::ostream& ostr,eItemKind item_kind)
72{
73 ostr << itemKindName(item_kind);
74 return ostr;
75}
76
77extern "C++" ARCANE_CORE_EXPORT std::istream&
78operator>> (std::istream& istr,eItemKind& item_kind)
79{
80 String buf;
81 istr >> buf;
82 if (buf=="Node"){
83 item_kind = IK_Node;
84 }
85 else if (buf=="Edge"){
86 item_kind = IK_Edge;
87 }
88 else if (buf=="Face"){
89 item_kind = IK_Face;
90 }
91 else if (buf=="Cell"){
92 item_kind = IK_Cell;
93 }
94 else if (buf=="Particle"){
95 item_kind = IK_Particle;
96 }
97 else if (buf=="DoF"){
98 item_kind = IK_DoF;
99 }
100 else if (buf=="None"){
101 item_kind = IK_Unknown;
102 }
103 else
104 istr.setstate(std::ios_base::failbit);
105 return istr;
106}
107
108/*---------------------------------------------------------------------------*/
109/*---------------------------------------------------------------------------*/
110
111ARCANE_CORE_EXPORT const char*
112timePhaseName(eTimePhase time_phase)
113{
114 switch(time_phase){
115 case TP_Computation: return "Computation";
116 case TP_Communication: return "Communication";
117 case TP_InputOutput: return "InputOutput";
118 }
119 return "(Invalid)";
120}
121
122extern "C++" ARCANE_CORE_EXPORT std::ostream&
124{
125 ostr << timePhaseName(time_phase);
126 return ostr;
127}
128
129extern "C++" ARCANE_CORE_EXPORT std::istream&
131{
132 String buf;
133 istr >> buf;
134 if (buf=="Computation"){
135 time_phase = TP_Communication;
136 }
137 else if (buf=="Communication"){
138 time_phase = TP_Communication;
139 }
140 else if (buf=="InputOutput"){
141 time_phase = TP_InputOutput;
142 }
143 else
144 istr.setstate(std::ios_base::failbit);
145 return istr;
146}
147
148
149/*---------------------------------------------------------------------------*/
150/*---------------------------------------------------------------------------*/
151
152extern "C++" ARCANE_CORE_EXPORT std::ostream&
153operator<<(std::ostream& o,eMeshDirection md)
154{
155 if (md==MD_DirX)
156 o << "DirX";
157 else if (md==MD_DirY)
158 o << "DirY";
159 else if (md==MD_DirZ)
160 o << "DirZ";
161 else
162 o << "DirUnknown";
163 return o;
164}
165
166/*---------------------------------------------------------------------------*/
167/*---------------------------------------------------------------------------*/
168
169ARCANE_END_NAMESPACE
170
171/*---------------------------------------------------------------------------*/
172/*---------------------------------------------------------------------------*/
173
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Chaîne de caractères unicode.
eMeshDirection
Type de la direction pour un maillage structuré
@ MD_DirZ
Direction Z.
@ MD_DirY
Direction Y.
@ MD_DirX
Direction X.
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é.
eTimePhase
Phase d'une action temporelle.