Salome HOME
PERSALYS : implement patch à la EDF - Test
[tools/sat_salome.git] / products / patches / medcoupling_salome_9_0_0.patch
1 diff -Naur MEDCOUPLING_old/CMakeLists.txt MEDCOUPLING_new/CMakeLists.txt
2 --- MEDCOUPLING_old/CMakeLists.txt      2018-04-19 17:04:36.583219652 +0200
3 +++ MEDCOUPLING_new/CMakeLists.txt      2018-04-19 17:25:17.227787276 +0200
4 @@ -30,7 +30,7 @@
5  STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
6  
7  SET(${PROJECT_NAME_UC}_MAJOR_VERSION 8)
8 -SET(${PROJECT_NAME_UC}_MINOR_VERSION 3)
9 +SET(${PROJECT_NAME_UC}_MINOR_VERSION 4)
10  SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
11  SET(${PROJECT_NAME_UC}_VERSION
12    ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
13 @@ -52,7 +52,7 @@
14  # User options
15  # ============
16  INCLUDE(CMakeDependentOption)
17 -OPTION(MEDCOUPLING_MICROMED "Build MED without MED file dependancy." OFF)
18 +OPTION(MEDCOUPLING_MICROMED "Build MED without MED file dependency." OFF)
19  OPTION(MEDCOUPLING_ENABLE_PYTHON "Build PYTHON bindings." ON)
20  OPTION(MEDCOUPLING_ENABLE_PARTITIONER "Build MEDPartitioner." ON)
21  OPTION(MEDCOUPLING_ENABLE_RENUMBER "Build Renumber." ON)
22 @@ -69,9 +69,11 @@
23  CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_METIS "Enable metis graph library in MEDPartitioner."  ${USE_METIS_NOT_PARMETIS}
24          "MEDCOUPLING_ENABLE_PARTITIONER" OFF)
25  CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_SCOTCH "Enable scotch graph library in MEDPartitioner." ON 
26 -        "MEDCOUPLING_ENABLE_PARTITIONER;NOT MEDCOUPLING_USE_MPI" OFF)
27 +        "MEDCOUPLING_ENABLE_PARTITIONER" OFF)
28  CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_PARMETIS "Enable parmetis graph library in MEDPartitioner." ${MEDCOUPLING_USE_MPI} 
29          "MEDCOUPLING_ENABLE_PARTITIONER;MEDCOUPLING_USE_MPI" OFF)
30 +CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_PTSCOTCH "Enable ptscotch graph library in MEDPartitioner." ${MEDCOUPLING_USE_MPI} 
31 +        "MEDCOUPLING_ENABLE_PARTITIONER;MEDCOUPLING_USE_MPI" OFF)
32  SET(XDR_DEFAULT_OPTION ON)
33  IF(WIN32)
34      SET(XDR_DEFAULT_OPTION OFF)
35 @@ -89,6 +91,10 @@
36      MESSAGE(FATAL_ERROR "ParMetis and Metis are mutually exclusive! Make a choice (options MEDCOUPLING_PARTITIONER_METIS and MEDCOUPLING_PARTITIONER_PARMETIS).")
37  ENDIF()
38  
39 +IF(${MEDCOUPLING_PARTITIONER_PTSCOTCH} AND ${MEDCOUPLING_PARTITIONER_SCOTCH})
40 +    MESSAGE(FATAL_ERROR "PTScotch and Scotch are mutually exclusive! Make a choice (options MEDCOUPLING_PARTITIONER_SCOTCH and MEDCOUPLING_PARTITIONER_PTSCOTCH).")
41 +ENDIF()
42 +
43  #
44  # Set list of prerequisites
45  # =========================
46 @@ -138,6 +144,13 @@
47        ADD_DEFINITIONS("-DMED_ENABLE_PARMETIS")
48      ENDIF()
49    ENDIF(MEDCOUPLING_PARTITIONER_PARMETIS)
50 +  IF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
51 +    FIND_PACKAGE(SalomePTScotch)
52 +    SALOME_LOG_OPTIONAL_PACKAGE(PTScotch MEDCOUPLING_PARTITIONER_PTSCOTCH)
53 +    IF(SalomePTScotch_FOUND)
54 +      ADD_DEFINITIONS("-DMED_ENABLE_PTSCOTCH")
55 +    ENDIF(SalomePTScotch_FOUND)
56 +  ENDIF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
57  ENDIF(MEDCOUPLING_USE_MPI)
58  
59  IF(MEDCOUPLING_ENABLE_RENUMBER)
60 @@ -245,7 +258,7 @@
61  # List of targets in this project we want to make visible to the rest of the world.
62  # They all have to be INSTALL'd with the option "EXPORT ${PROJECT_NAME}TargetGroup"
63  SET(_${PROJECT_NAME}_exposed_targets
64 -   interpkernel medcoupling medcouplingremapper)
65 +   interpkernel medcouplingcpp medcouplingremapper)
66  
67  IF(NOT MEDCOUPLING_MICROMED)
68    LIST(APPEND _${PROJECT_NAME}_exposed_targets medloader)
69 diff -Naur MEDCOUPLING_old/doc/tutorial/atestMEDLoaderAdvancedAPI1.rst MEDCOUPLING_new/doc/tutorial/atestMEDLoaderAdvancedAPI1.rst
70 --- MEDCOUPLING_old/doc/tutorial/atestMEDLoaderAdvancedAPI1.rst 2018-04-19 17:04:36.585219692 +0200
71 +++ MEDCOUPLING_new/doc/tutorial/atestMEDLoaderAdvancedAPI1.rst 2018-04-19 17:25:17.221787157 +0200
72 @@ -89,6 +89,6 @@
73         #
74         fMEDFileRead2 = ml.MEDFileField1TS("TargetMesh2.med",fPart.getName(),7,8)
75         fPartRead, pflRead = fMEDFileRead2.getFieldWithProfile(ml.ON_CELLS,0,meshMEDFileRead)
76 -       print "Is the partial field correclty read?", fPartRead.isEqualWithoutConsideringStr(fPart.getArray(),1e-12)
77 +       print "Is the partial field correctly read?", fPartRead.isEqualWithoutConsideringStr(fPart.getArray(),1e-12)
78         print "Is the list of cell identifiers matching?", pflRead.isEqualWithoutConsideringStr(pfl)
79         
80 diff -Naur MEDCOUPLING_old/doc/tutorial/atestMEDLoaderBasicAPI1.rst MEDCOUPLING_new/doc/tutorial/atestMEDLoaderBasicAPI1.rst
81 --- MEDCOUPLING_old/doc/tutorial/atestMEDLoaderBasicAPI1.rst    2018-04-19 17:04:36.585219692 +0200
82 +++ MEDCOUPLING_new/doc/tutorial/atestMEDLoaderBasicAPI1.rst    2018-04-19 17:25:17.170786149 +0200
83 @@ -32,7 +32,7 @@
84         f.setMesh(targetMesh)
85         f.setName("AFieldName")
86         ml.WriteField("MyFirstField.med",f,True)
87 -       # Re-read it ans test equality
88 +       # Re-read it and test equality
89         f2 = ml.ReadFieldCell("MyFirstField.med", f.getMesh().getName(), 0, f.getName(), 7, 8)
90         print "Is the read field identical to 'f' ?", f2.isEqual(f,1e-12,1e-12)
91         # Writing in several steps 
92 diff -Naur MEDCOUPLING_old/doc/tutorial/medcoupling_2Dpolygon.rst MEDCOUPLING_new/doc/tutorial/medcoupling_2Dpolygon.rst
93 --- MEDCOUPLING_old/doc/tutorial/medcoupling_2Dpolygon.rst      2018-04-19 17:04:36.627220529 +0200
94 +++ MEDCOUPLING_new/doc/tutorial/medcoupling_2Dpolygon.rst      2018-04-19 17:25:17.133785418 +0200
95 @@ -20,7 +20,7 @@
96  
97         from math import *
98  
99 -Then we must instanciate a meshing object::
100 +Then we must instantiate a meshing object::
101  
102         mesh=MEDCouplingUMesh.New()
103         mesh.setMeshDimension(2)
104 diff -Naur MEDCOUPLING_old/doc/tutorial/medcoupling_3Dcube.rst MEDCOUPLING_new/doc/tutorial/medcoupling_3Dcube.rst
105 --- MEDCOUPLING_old/doc/tutorial/medcoupling_3Dcube.rst 2018-04-19 17:04:36.627220529 +0200
106 +++ MEDCOUPLING_new/doc/tutorial/medcoupling_3Dcube.rst 2018-04-19 17:25:17.106784884 +0200
107 @@ -39,7 +39,7 @@
108  Classical method
109  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
110  
111 -First instanciate a meshing object. Therefore, we need to define :
112 +First instantiate a meshing object. Therefore, we need to define :
113  
114   * its name
115   * its dimension
116 @@ -248,7 +248,7 @@
117   * its values
118  
119   
120 -The field will be a sin function dependant of distance of the barycenter of each cell from origin. So we need to create a barycenter field on the 3D mesh::
121 +The field will be a sin function dependent of distance of the barycenter of each cell from origin. So we need to create a barycenter field on the 3D mesh::
122  
123         # Creation of field : with following definition
124         # => Definition of the mesh support
125 diff -Naur MEDCOUPLING_old/doc/tutorial/medcoupling_dataarray1_fr.rst MEDCOUPLING_new/doc/tutorial/medcoupling_dataarray1_fr.rst
126 --- MEDCOUPLING_old/doc/tutorial/medcoupling_dataarray1_fr.rst  2018-04-19 17:04:36.627220529 +0200
127 +++ MEDCOUPLING_new/doc/tutorial/medcoupling_dataarray1_fr.rst  2018-04-19 17:25:17.128785319 +0200
128 @@ -179,7 +179,7 @@
129  La méthode ``findCommonTuples()`` retourne ainsi 2 paramètres: un tableau contenant la liste des tuples communs 
130  et un tableau d'index qui permet de naviguer dans le premier tableau.    
131  Il s'agit d'une forme de retour très classique dans MEDCoupling, appelée *indirect indexing*. Cela apparaît souvent dans la manipulation des 
132 -maillages non structurés. Cette représentation est rappelée sur l'image ci-dessous, où le premier tableau et en haut, 
133 +maillages non structurés. Cette représentation est rappelée sur l'image ci-dessous, où le premier tableau est en haut, 
134  et le deuxième tableau permettant de la parcourir en bas:
135  
136  .. image:: images/IndirectIndex.jpg
137 @@ -288,7 +288,7 @@
138  
139         d3 += [3.3,4.4]
140  
141 -Constuire un maillage non strucuturé
142 +Constuire un maillage non structuré
143  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
144  
145  On chercher maintenant à créer le maillage final montré dans la figure. Nous avons déjà construit le tableau
146 diff -Naur MEDCOUPLING_old/doc/tutorial/medcouplingloaderex2_en.rst MEDCOUPLING_new/doc/tutorial/medcouplingloaderex2_en.rst
147 --- MEDCOUPLING_old/doc/tutorial/medcouplingloaderex2_en.rst    2018-04-19 17:04:36.628220549 +0200
148 +++ MEDCOUPLING_new/doc/tutorial/medcouplingloaderex2_en.rst    2018-04-19 17:25:17.175786248 +0200
149 @@ -102,7 +102,7 @@
150  .. image:: images/zone1Mobm.jpg
151  
152  From now on we work on "zone1Mobm". We will reduce the working area of "fixm" around "zone1Mobm".
153 -To achive this: reduce "fixm" taking only "fixm" cells located in the bounding box of "zone1Mobm" (MEDCouplingUMesh.getBoundingBox() and MEDCouplingUMesh.getCellsInBoundingBox()).
154 +To achieve this: reduce "fixm" taking only "fixm" cells located in the bounding box of "zone1Mobm" (MEDCouplingUMesh.getBoundingBox() and MEDCouplingUMesh.getCellsInBoundingBox()).
155  Name this object "partFixm", remove its orphan nodes and display it. ::
156  
157         ids2=fixm.getCellsInBoundingBox(zone1Mobm.getBoundingBox(),1e-10)
158 diff -Naur MEDCOUPLING_old/doc/tutorial/medcouplingmultiproc_fr.rst MEDCOUPLING_new/doc/tutorial/medcouplingmultiproc_fr.rst
159 --- MEDCOUPLING_old/doc/tutorial/medcouplingmultiproc_fr.rst    2018-04-19 17:04:36.628220549 +0200
160 +++ MEDCOUPLING_new/doc/tutorial/medcouplingmultiproc_fr.rst    2018-04-19 17:25:17.167786090 +0200
161 @@ -67,14 +67,13 @@
162  L'idée est d'interpoler ``m`` avec ``m2Part``.
163  
164  On récupèrera ensuite la matrice sparse ``myMat`` issue de ``m`` avec ``m2Part``.
165 -Ensuite l'idée et de générer une matrice sparse ``mat2`` à partir de ``myMat`` avec les ids globaux de ``m2``. ::
166 +Ensuite l'idée est de générer une matrice sparse ``mat2`` à partir de ``myMat`` avec les ids globaux de ``m2``. ::
167  
168         def work(inp):
169              m2Part,partToGlob=inp
170             myRemap=mr.MEDCouplingRemapper()
171             assert(myRemap.prepare(m,m2Part,"P0P0")==1)
172             myMat=myRemap.getCrudeCSRMatrix()
173 -           a=mc.DataArrayInt.Range(s.start,s.stop,s.step)
174             indptrnew=mc.DataArrayInt(m2.getNumberOfCells())
175             indptrnew.fillWithZero()
176             d=mc.DataArrayInt(myMat.indptr).deltaShiftIndex()
177 diff -Naur MEDCOUPLING_old/doc/tutorial/medcoupling_umesh1_en.rst MEDCOUPLING_new/doc/tutorial/medcoupling_umesh1_en.rst
178 --- MEDCOUPLING_old/doc/tutorial/medcoupling_umesh1_en.rst      2018-04-19 17:04:36.627220529 +0200
179 +++ MEDCOUPLING_new/doc/tutorial/medcoupling_umesh1_en.rst      2018-04-19 17:25:17.223787197 +0200
180 @@ -189,7 +189,7 @@
181          mesh3DSlice2bis.translate([0.,1000.,0.])
182          mesh3DSlice2All=MEDCouplingUMesh.MergeUMeshes([mesh3DSlice2,mesh3DSlice2bis])
183  
184 -.. note:: My apologies for the name of the method MEDCouplingUMesh.MergeUMeshes. In future version it will be called AggregateUMeshes. For information, to merge two (or more) unstructured meshes, one has to invoke MergeUMeshes(), then mergeNodes() on the result, and finally zipConnectivity().
185 +.. note:: My apologies for the name of the method MEDCouplingUMesh.MergeUMeshes. In future version it will be called AggregateUMeshes. For information, to merge two (or more) unstructured meshes, one has to invoke MergeUMeshes(), then mergeNodes() on the result, and finally zipConnectivityTraducer().
186  
187  
188  Descending connectivity
189 diff -Naur MEDCOUPLING_old/doc/tutorial/medcoupling_umesh1_fr.rst MEDCOUPLING_new/doc/tutorial/medcoupling_umesh1_fr.rst
190 --- MEDCOUPLING_old/doc/tutorial/medcoupling_umesh1_fr.rst      2018-04-19 17:04:36.627220529 +0200
191 +++ MEDCOUPLING_new/doc/tutorial/medcoupling_umesh1_fr.rst      2018-04-19 17:25:17.172786189 +0200
192 @@ -111,8 +111,6 @@
193         critères géométriques.
194         Il s'agit d'abord de calculer les barycentres des cellules 3D de ``mesh3D`` (méthode 
195         ``MEDCouplingUMesh.computeCellCenterOfMass()``).
196 -       (*Note*: le nom -- un peu trop long -- de cette méthode hérite du passé. Le "AndOwner" indique le fait qu'en C++
197 -       l'appelant est responsable de la désallocation de l'objet retourné : il prend l'*ownership* du résultat). 
198         
199         Ensuite sélectionner la composante #2 des barycentres des cellules et mettre le résultat dans ``baryZ``.
200         Ensuite il suffit de selectionner dans ``baryZ`` les tuples qui sont dans l'intervalle ``[zLev[1], zLev[2]]``. 
201 @@ -248,7 +246,7 @@
202         mesh3DSlice2All.writeVTK("mesh3DSlice2All.vtu")
203  
204  .. note:: Pour information pour merger deux (ou plus) maillages non structurés, il faut invoquer ``MEDCouplingUMesh.MergeUMeshes()``
205 -       puis ``MEDCouplingUMesh.mergeNodes()`` sur le résultat, et enfin ``MEDCouplingUMesh.zipConnectivity()``.
206 +       puis ``MEDCouplingUMesh.mergeNodes()`` sur le résultat, et enfin ``MEDCouplingUMesh.zipConnectivityTraducer()``.
207  
208  .. _exo-umesh-desc-connec:
209  
210 diff -Naur MEDCOUPLING_old/doc/tutorial/medloader_advancedAPI1_fr.rst MEDCOUPLING_new/doc/tutorial/medloader_advancedAPI1_fr.rst
211 --- MEDCOUPLING_old/doc/tutorial/medloader_advancedAPI1_fr.rst  2018-04-19 17:04:36.628220549 +0200
212 +++ MEDCOUPLING_new/doc/tutorial/medloader_advancedAPI1_fr.rst  2018-04-19 17:25:17.169786129 +0200
213 @@ -180,7 +180,7 @@
214  
215         fMEDFileRead2 = ml.MEDFileField1TS("TargetMesh2.med",fPart.getName(),7,8)
216         fPartRead, pflRead = fMEDFileRead2.getFieldWithProfile(ml.ON_CELLS,0,meshMEDFileRead)
217 -       print "Is the partial field correclty read?", fPartRead.isEqualWithoutConsideringStr(fPart.getArray(),1e-12)
218 +       print "Is the partial field correctly read?", fPartRead.isEqualWithoutConsideringStr(fPart.getArray(),1e-12)
219         print "Is the list of cell identifiers matching?", pflRead.isEqualWithoutConsideringStr(pfl)
220  
221  Solution
222 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/appendix/install.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/appendix/install.dox
223 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/appendix/install.dox      2018-04-19 17:04:36.629220569 +0200
224 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/appendix/install.dox      2018-04-19 17:25:17.099784746 +0200
225 @@ -22,7 +22,7 @@
226  - \a -DMEDCOUPLING_PARTITIONER_METIS=ON enables metis graph library in MEDPartitioner,
227  - \a -DMEDCOUPLING_PARTITIONER_PARMETIS=ON enables parmetis graph library in MEDPartitioner,
228  - \a -DMEDCOUPLING_PARTITIONER_SCOTCH=ON enables scotch graph library in MEDPartitioner,
229 -- \a -DMEDCOUPLING_MICROMED=ON build MED with MED file dependancy,
230 +- \a -DMEDCOUPLING_MICROMED=ON build MED with MED file dependency,
231  - \a -DMEDCOUPLING_ENABLE_PYTHON=ON builds PYTHON bindings,
232  - \a -DMEDCOUPLING_ENABLE_PARTITIONER builds MEDPartitioner,
233  - \a -DMEDCOUPLING_ENABLE_RENUMBER builds Renumber,
234 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/appendix/porting.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/appendix/porting.dox
235 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/appendix/porting.dox      2018-04-19 17:04:36.629220569 +0200
236 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/appendix/porting.dox      2018-04-19 17:25:17.100784765 +0200
237 @@ -34,9 +34,9 @@
238  The MEDLoader high level API is hence accessible:
239   - at the MEDCoupling namespace level in C++ (direct static functions, no more MEDLoader class)
240   - at the MEDLoader module level in Python. Scripts using the high level API of the MEDLoader
241 -typically need to get read of all the occurences of "MEDLoader." in their code.  
242 +typically need to get read of all the occurrences of "MEDLoader." in their code.  
243  
244 -Note that on the Python side the module MEDLoader is still here, but doesn't containt the MEDLoader class anymore.
245 +Note that on the Python side the module MEDLoader is still here, but doesn't contain the MEDLoader class anymore.
246  As before it re-includes all of MEDCoupling classes, plus the low level MEDLoader classes (MEDFile* classes).
247  
248  \section port-full-ref Name changes - Reference list
249 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/appendix/references.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/appendix/references.dox
250 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/appendix/references.dox   2018-04-19 17:04:36.629220569 +0200
251 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/appendix/references.dox   2018-04-19 17:25:17.097784706 +0200
252 @@ -2,7 +2,7 @@
253  
254  \page references References 
255  
256 -Here follows a list of useful references :
257 +Below is a list of useful references :
258  
259  -# \anchor RefManualMedFile Reference Manual for Med File, V. Lefebvre,  E. Fayolle, Projet PAL: Définition du modèle d'échange de données MED V2.2,  Note technique EDF/SINETICS, HI-26-03-012/A, https://hammi.extra.cea.fr/static/MED/web_med/index.html
260  -# VTK home page: \c http://public.kitware.com/VTK
261 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy MEDCOUPLING_new/doc/user/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy
262 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy   2018-04-19 17:04:36.630220589 +0200
263 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy   2018-04-19 17:25:17.044783658 +0200
264 @@ -102,7 +102,7 @@
265  \snippet MEDCouplingExamplesTest.cxx CppSnippet_MEDCouplingUMesh_buildFacePartOfMySelfNode_2
266  <br>If the last parameter is \c true
267  \ref MEDCoupling::MEDCouplingUMesh::buildFacePartOfMySelfNode "buildFacePartOfMySelfNode()" looks
268 -for segements whose all nodes are given to it, hence it finds segments bounding the cell #0 only.
269 +for segments whose all nodes are given to it, hence it finds segments bounding the cell #0 only.
270  <br>If the last parameter is \c false
271  \ref MEDCoupling::MEDCouplingUMesh::buildFacePartOfMySelfNode "buildFacePartOfMySelfNode()" looks
272  for any segment whose nodes are given to it, hence it adds more segments to \b mesh2.
273 @@ -549,7 +549,7 @@
274    - #4 (== \b desc[ \b descIndx[ 0 ] + 3 ]).
275    <br>Ids are positive since order of nodes in the corresponding cells of \b mesh and \b mesh2
276    are same. For example nodes of SEG2 #3 are [4,1] and nodes of QUAD4 #0 are [0,3,\b 4,\b 1].
277 -- The cell #1 of \b mesh (TRI3) is bound by 3 (== \b descIndx[2] - \b descIndx[1]) segements of
278 +- The cell #1 of \b mesh (TRI3) is bound by 3 (== \b descIndx[2] - \b descIndx[1]) segments of
279    \b mesh2 whose ids in FORTRAN mode are:
280    - #-3 (== \b desc[ \b descIndx[ 1 ]]),
281    - #5 (== \b desc[ \b descIndx[ 1 ] + 1 ]) and
282 @@ -582,7 +582,7 @@
283    - #1 (== \b desc[ \b descIndx[ 0 ] + 1 ]),
284    - #2 (== \b desc[ \b descIndx[ 0 ] + 2 ]) and
285    - #3 (== \b desc[ \b descIndx[ 0 ] + 3 ]).
286 -- The cell #1 of \b mesh (TRI3) is bound by 3 (== \b descIndx[2] - \b descIndx[1]) segements of
287 +- The cell #1 of \b mesh (TRI3) is bound by 3 (== \b descIndx[2] - \b descIndx[1]) segments of
288    \b mesh2 whose ids are:
289    - #2 (== \b desc[ \b descIndx[ 1 ]]),
290    - #4 (== \b desc[ \b descIndx[ 1 ] + 1 ]) and
291 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/examples/medcouplingexamplesother.doxy MEDCOUPLING_new/doc/user/doxygen/doxfiles/examples/medcouplingexamplesother.doxy
292 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/examples/medcouplingexamplesother.doxy    2018-04-19 17:04:36.630220589 +0200
293 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/examples/medcouplingexamplesother.doxy    2018-04-19 17:25:17.047783718 +0200
294 @@ -203,7 +203,7 @@
295  \ref medcoupling "MEDCoupling" allows to make bridges between the approaches. For example \a pfl \ref MEDCoupling::DataArrayInt "DataArrayInt instance" retrieved directly
296  from the file in the second approach can be retrieved starting from first approach.
297  
298 -Starting from mesh \a firstApproachMesh of read field in first approach \a fread, whith the whole mesh \a wholeMesh the profile \a pflComputed can be computed :
299 +Starting from mesh \a firstApproachMesh of read field in first approach \a fread, with the whole mesh \a wholeMesh the profile \a pflComputed can be computed :
300  
301  \snippet MEDLoaderExamplesTest.py PySnippetReadFieldPartial1_5
302  
303 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/faq.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/faq.dox
304 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/faq.dox   2018-04-19 17:04:36.630220589 +0200
305 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/faq.dox   2018-04-19 17:25:17.056783896 +0200
306 @@ -46,7 +46,7 @@
307  Take a look at \ref library
308  
309  \subsubsection f-visu How can I visualize a mesh and/or a field?
310 -Use the PARAVIS module of SALOME to visualize your MED file. The following dedicated fitlers have been 
311 +Use the PARAVIS module of SALOME to visualize your MED file. The following dedicated filters have been 
312  written specifically for MED files: Extract group, Extract cell types, ELNO Mesh, ELNO Points, ELNO Surface.
313  
314  \subsubsection f-p0p1 What does a P0- (or P1-) field mean?
315 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/arrays/arrays.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/arrays/arrays.dox
316 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/arrays/arrays.dox       2018-04-19 17:04:36.630220589 +0200
317 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/arrays/arrays.dox       2018-04-19 17:25:17.094784647 +0200
318 @@ -15,7 +15,7 @@
319  understood to efficiently deal with \ref meshes "Meshes" and \ref fields "Fields".
320  
321  \ref MEDCoupling::DataArray "DataArrays" are the atomic element of potentially heavy-memory objects in 
322 -the 3 modules mentionned above.
323 +the 3 modules mentioned above.
324  
325  There are for the moment two types of arrays :
326   - double precision float (64 bits) array incarnated by \ref MEDCoupling::DataArrayDouble "DataArrayDouble class".
327 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/arrays/numbering.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/arrays/numbering.dox
328 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/arrays/numbering.dox    2018-04-19 17:04:36.630220589 +0200
329 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/arrays/numbering.dox    2018-04-19 17:25:17.092784607 +0200
330 @@ -16,7 +16,7 @@
331  
332  \section MEDCouplingArrayRenumberingO2N Old-to-new mode
333  
334 -The old to new mode is particularly recommanded for surjective and bijective applications. This 
335 +The old to new mode is particularly recommended for surjective and bijective applications. This 
336  is typically the case of \ref MEDCoupling::MEDCouplingUMesh::mergeNodes "MEDCouplingUMesh::mergeNodes" method.
337  Let's consider a call to \ref MEDCoupling::MEDCouplingUMesh::mergeNodes "mergeNodes" that reduces the 
338  number of nodes from 5 nodes to 3 nodes.\n
339 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/cpp/cpp.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/cpp/cpp.dox
340 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/cpp/cpp.dox     2018-04-19 17:04:36.630220589 +0200
341 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/cpp/cpp.dox     2018-04-19 17:25:17.091784588 +0200
342 @@ -1,5 +1,5 @@
343  /*!
344 -  \page cpp Note for C++ developpers
345 +  \page cpp Note for C++ developers
346    
347  Using the C++ API provided by MED requires you to be familiar with some specificities which are not
348  visible to the Python user.
349 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/distrib/parallel.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/distrib/parallel.dox
350 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/distrib/parallel.dox    2018-04-19 17:04:36.630220589 +0200
351 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/distrib/parallel.dox    2018-04-19 17:25:17.064784054 +0200
352 @@ -12,8 +12,8 @@
353  The core elements of the API are:
354  - \ref CommInterface-det "CommInterface", this is the wrapper around the MPI library, and an instance
355  of this object is required in many constructors of the following objects.  
356 -- \ref ParaMESH-det "ParaMESH", the parallel instanciation of a \ref meshes "MEDCoupling mesh" 
357 -- \ref ParaFIELD-det "ParaFIELD", the parallel instanciation of a \ref fields "MEDCoupling field"
358 +- \ref ParaMESH-det "ParaMESH", the parallel instantiation of a \ref meshes "MEDCoupling mesh" 
359 +- \ref ParaFIELD-det "ParaFIELD", the parallel instantiation of a \ref fields "MEDCoupling field"
360  - \ref MPIProcessorGroup-det "MPIProcessorGroup" (which inherits from the abstract 
361  \ref MEDCoupling::ProcessorGroup "ProcessorGroup"), a group of processors (typically MPI nodes)
362  
363 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/fields/discretization.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/fields/discretization.dox
364 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/fields/discretization.dox       2018-04-19 17:04:36.630220589 +0200
365 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/fields/discretization.dox       2018-04-19 17:25:17.073784232 +0200
366 @@ -23,10 +23,10 @@
367      - Kriging points:  built with \ref MEDCoupling::TypeOfField "ON_NODES_KR"
368  
369  The spatial discretization is at the center of the \ref interpolation "interpolation" mechanisms,
370 -since one of the main interpolation paramter is indeed specifying from which source discretization
371 +since one of the main interpolation parameter is indeed specifying from which source discretization
372  to which target discretization one wants to go. For example:
373 -- a P0->P0 interpolation means that a field on cells will be transfered to another cell-based field;
374 -- a P1->P0 interpolation means that a field on nodes this time will be transfered to a cell-based field. 
375 +- a P0->P0 interpolation means that a field on cells will be transferred to another cell-based field;
376 +- a P1->P0 interpolation means that a field on nodes this time will be transferred to a cell-based field. 
377  - etc ...
378  
379  Finally, in the code itself, the class \ref MEDCoupling::MEDCouplingFieldDiscretization "MEDCouplingFieldDiscretization"
380 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/interpolation/Geometric2D.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/interpolation/Geometric2D.dox
381 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/interpolation/Geometric2D.dox   2018-04-19 17:04:36.630220589 +0200
382 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/interpolation/Geometric2D.dox   2018-04-19 17:25:17.081784390 +0200
383 @@ -106,7 +106,7 @@
384  \subsection interpkernelGeo2DBoolOpStep3 Step3 : Result polygon building.
385  
386  This stage links each edge with wanted loc. \b Contrary to last 2 steps it is obviously boolean
387 -operation dependant. Let's take the case of the intersection that is used in
388 +operation dependent. Let's take the case of the intersection that is used in
389  P0->P0 interpolation. \n The principle of result polygon building is to build polygon by taking
390  edges localized as \b in or \b on.
391  
392 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/interpolation/interptheory.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/interpolation/interptheory.dox
393 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/interpolation/interptheory.dox  2018-04-19 17:04:36.631220609 +0200
394 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/interpolation/interptheory.dox  2018-04-19 17:25:17.084784449 +0200
395 @@ -257,7 +257,7 @@
396      \end{tabular}\right]
397  \f]
398  
399 -This type of nature is particulary recommended to interpolate an intensive \b density
400 +This type of nature is particularly recommended to interpolate an intensive \b density
401  field (moderator density, power density).
402  The difference with \ref TableNatureOfFieldExampleConservVol "conservative volumic" seen above is that here the
403  target field is homogenized to the \b whole target cell. It explains why this nature of field does not follow the maximum principle.
404 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/interpolation/mapped_bary.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/interpolation/mapped_bary.dox
405 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/interpolation/mapped_bary.dox   2018-04-19 17:04:36.631220609 +0200
406 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/interpolation/mapped_bary.dox   2018-04-19 17:25:17.076784291 +0200
407 @@ -46,7 +46,7 @@
408  
409  \subsection{Rectangle}
410  
411 -Finally it is worth puting aside the case \f$\mathbf{N} = 0\f$ (rectangle), which boils down to solving an ordinary
412 +Finally it is worth putting aside the case \f$\mathbf{N} = 0\f$ (rectangle), which boils down to solving an ordinary
413  2-unknows system:
414  \f[ x = \frac{p_x A_y - p_y A_x}{C_x A_y - C_y A_x}, y = \frac{C_x p_y-C_y p_x}{C_x A_y - C_y A_x} \f]
415  
416 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/meshes/meshes.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/meshes/meshes.dox
417 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/meshes/meshes.dox       2018-04-19 17:04:36.632220629 +0200
418 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/meshes/meshes.dox       2018-04-19 17:25:17.070784173 +0200
419 @@ -6,7 +6,7 @@
420  
421  Several types of meshes are available in MEDCoupling:
422  
423 -- \subpage MEDCouplingPointSetPage "Point set mesh" (abstract, can not be instanciated)
424 +- \subpage MEDCouplingPointSetPage "Point set mesh" (abstract, can not be instantiated)
425  - \subpage MEDCouplingUMeshPage "Unstructured meshes"
426  - \subpage MEDCouplingCMeshPage "Cartesian meshes"
427  - \subpage MEDCouplingExtrudedPage "3D Extruded meshes"
428 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/misc/tools.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/misc/tools.dox
429 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/reference/misc/tools.dox  2018-04-19 17:04:36.632220629 +0200
430 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/reference/misc/tools.dox  2018-04-19 17:25:17.086784489 +0200
431 @@ -55,7 +55,7 @@
432          --meshname=<string>    : name of the input mesh (not used with --distributed option)
433          --ndomains=<number>    : number of subdomains in the output file, default is 1
434          --plain-master         : creates a plain masterfile instead of an XML file
435 -        --creates-boundary-faces: creates the necessary faces so that faces joints are created in the output files
436 +        --create-boundary-faces: creates the necessary faces so that faces joints are created in the output files
437          --family-splitting     : preserves the family names instead of focusing on the groups
438  \endcode
439  
440 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/start/library.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/start/library.dox
441 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/start/library.dox 2018-04-19 17:04:36.632220629 +0200
442 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/start/library.dox 2018-04-19 17:25:17.050783777 +0200
443 @@ -8,7 +8,7 @@
444  
445  "MED" can (unfortunately) refer to:
446  - <b>\ref med-file "MED file format"</b>: the file format used to save a mesh (".med" extension)
447 -- <b>\ref med-file "MED-file library"</b>: the C++ library developped by EdF R&D (and provided
448 +- <b>\ref med-file "MED-file library"</b>: the C++ library developed by EdF R&D (and provided
449   with SALOME) to read/write MED file (warning: for advanced users only!)
450  - <b> \ref medcoupling "MEDCoupling"</b>: the (relatively) high level API to deal with mesh and fields in memory
451  - <b>\ref medloader MEDLoader</b>: part of the library dedicated to file I/O = a more user-friendly API than the MED-file library API
452 @@ -19,7 +19,7 @@
453  
454  The most common confusion is between the MED library (what you are reading at present) and
455  the MED-file library ("MED fichier").
456 -The MED-file library is part of the prerequisites of the MED libary, and its only purpose is to read and write
457 +The MED-file library is part of the prerequisites of the MED library, and its only purpose is to read and write
458  MED files. This is a low level API written in C, and giving a fine-grain access to the structure
459  of the MED files (.med). The architecture diagramm below details those points further.
460  
461 diff -Naur MEDCOUPLING_old/doc/user/doxygen/doxfiles/start/start.dox MEDCOUPLING_new/doc/user/doxygen/doxfiles/start/start.dox
462 --- MEDCOUPLING_old/doc/user/doxygen/doxfiles/start/start.dox   2018-04-19 17:04:36.632220629 +0200
463 +++ MEDCOUPLING_new/doc/user/doxygen/doxfiles/start/start.dox   2018-04-19 17:25:17.055783876 +0200
464 @@ -1,7 +1,7 @@
465  /*!
466  \page start Getting started
467  
468 -If you are completly new to MED, this page will help you grasp the main concepts
469 +If you are completely new to MED, this page will help you grasp the main concepts
470  used overall in the \ref library "MED world", and have an idea of what you can achieve with MED.
471  
472  The <a class="el" href="tutorial/index.html">tutorial</a> is also a good way to start.
473 diff -Naur MEDCOUPLING_old/doc/user/doxygen/Doxyfile_med_user.in MEDCOUPLING_new/doc/user/doxygen/Doxyfile_med_user.in
474 --- MEDCOUPLING_old/doc/user/doxygen/Doxyfile_med_user.in       2018-04-19 17:04:36.629220569 +0200
475 +++ MEDCOUPLING_new/doc/user/doxygen/Doxyfile_med_user.in       2018-04-19 17:25:16.841779646 +0200
476 @@ -161,8 +161,13 @@
477                           MEDFileData.*xx \
478                           MEDFileParameter.*xx \
479                           MEDFileMesh.*xx \
480 +                        MEDFileFieldGlobs.*xx \
481 +                        MEDFileFieldInternal.*xx \
482 +                        MEDFileField1TS.*xx \
483 +                        MEDFileFieldMultiTS.*xx \
484                           MEDFileField.*xx \
485 -                         *Servant.*xx \
486 +                        MEDFileFieldVisitor.hxx \
487 +                        *Servant.*xx \
488                           *.dox
489  RECURSIVE              = YES
490  EXCLUDE                = CVS
491 diff -Naur MEDCOUPLING_old/MEDCouplingConfig.cmake.in MEDCOUPLING_new/MEDCouplingConfig.cmake.in
492 --- MEDCOUPLING_old/MEDCouplingConfig.cmake.in  2018-04-19 17:04:36.584219672 +0200
493 +++ MEDCOUPLING_new/MEDCouplingConfig.cmake.in  2018-04-19 17:25:18.169805896 +0200
494 @@ -1,6 +1,6 @@
495  # - Config file for the @PROJECT_NAME@ package
496  # It defines the following variables. 
497 -# Specific to the pacakge @PROJECT_NAME@ itself:
498 +# Specific to the package @PROJECT_NAME@ itself:
499  #  @PROJECT_NAME_UC@_ROOT_DIR_EXP - the root path of the installation providing this CMake file
500  #
501  
502 @@ -30,7 +30,7 @@
503  # Load the dependencies for the libraries of @PROJECT_NAME@ 
504  # (contains definitions for IMPORTED targets). This is only 
505  # imported if we are not built as a subproject (in this case targets are already there)
506 -IF(NOT TARGET medcoupling AND NOT @PROJECT_NAME@_BINARY_DIR)
507 +IF(NOT TARGET medcouplingcpp AND NOT @PROJECT_NAME@_BINARY_DIR)
508    INCLUDE("@PACKAGE_MEDCOUPLING_INSTALL_CMAKE_LOCAL@/@PROJECT_NAME@Targets.cmake")
509  ENDIF()   
510  
511 @@ -114,7 +114,8 @@
512  
513  # Exposed MEDCoupling targets:
514  SET(MEDCoupling_interpkernel interpkernel)
515 -SET(MEDCoupling_medcoupling medcoupling)
516 +SET(MEDCoupling_medcouplingcpp medcouplingcpp)
517 +SET(MEDCoupling_medcoupling    medcouplingcpp)
518  SET(MEDCoupling_medcouplingremapper medcouplingremapper)
519  SET(MEDCoupling_medloader medloader)
520  SET(MEDCoupling_renumbercpp renumbercpp)
521 diff -Naur MEDCOUPLING_old/src/CMakeLists.txt MEDCOUPLING_new/src/CMakeLists.txt
522 --- MEDCOUPLING_old/src/CMakeLists.txt  2018-04-19 17:04:36.669221367 +0200
523 +++ MEDCOUPLING_new/src/CMakeLists.txt  2018-04-19 17:25:17.367790043 +0200
524 @@ -27,6 +27,7 @@
525  ADD_SUBDIRECTORY(MEDCoupling)
526  IF(MEDCOUPLING_ENABLE_PYTHON)
527    ADD_SUBDIRECTORY(MEDCoupling_Swig)
528 +  ADD_SUBDIRECTORY(PyWrapping)
529  ENDIF(MEDCOUPLING_ENABLE_PYTHON)
530  
531  IF(NOT MEDCOUPLING_MICROMED)
532 diff -Naur MEDCOUPLING_old/src/CTestTestfileInstall.cmake MEDCOUPLING_new/src/CTestTestfileInstall.cmake
533 --- MEDCOUPLING_old/src/CTestTestfileInstall.cmake      2018-04-19 17:04:36.669221367 +0200
534 +++ MEDCOUPLING_new/src/CTestTestfileInstall.cmake      2018-04-19 17:25:18.144805402 +0200
535 @@ -30,3 +30,5 @@
536  #SUBDIRS(ParaMEDMEMTest)
537  SUBDIRS(MEDPartitioner_Swig)
538  SUBDIRS(RENUMBER_Swig)
539 +SUBDIRS(PyWrapping)
540 +
541 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Bases/InterpKernelAssert.hxx MEDCOUPLING_new/src/INTERP_KERNEL/Bases/InterpKernelAssert.hxx
542 --- MEDCOUPLING_old/src/INTERP_KERNEL/Bases/InterpKernelAssert.hxx      1970-01-01 01:00:00.000000000 +0100
543 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Bases/InterpKernelAssert.hxx      2018-04-19 17:25:17.507792810 +0200
544 @@ -0,0 +1,34 @@
545 +// Copyright (C) 2018  CEA/DEN, EDF R&D
546 +//
547 +// This library is free software; you can redistribute it and/or
548 +// modify it under the terms of the GNU Lesser General Public
549 +// License as published by the Free Software Foundation; either
550 +// version 2.1 of the License, or (at your option) any later version.
551 +//
552 +// This library is distributed in the hope that it will be useful,
553 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
554 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
555 +// Lesser General Public License for more details.
556 +//
557 +// You should have received a copy of the GNU Lesser General Public
558 +// License along with this library; if not, write to the Free Software
559 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
560 +//
561 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
562 +//
563 +// Author : Anthony Geay (EDF R&D)
564 +
565 +#ifndef __INTERPKERNELASSERT_HXX__
566 +#define __INTERPKERNELASSERT_HXX__
567 +
568 +#include "InterpKernelException.hxx"
569 +
570 +#include <sstream>
571 +
572 +#define IKAssert(a) { bool verdict(a);           \
573 +    if(!verdict) { std::ostringstream osszz; osszz << "Assertion \"" << #a << "\" failed into " << __FILE__ << " at line " << __LINE__ << " !"; throw INTERP_KERNEL::Exception(osszz.str()); } }
574 +
575 +#define IKAssertMsg(a,b) { bool verdict(a);           \
576 +    if(!verdict) { std::ostringstream osszz; osszz << "Assertion \"" << #a << "\" failed into " << __FILE__ << " at line " << __LINE__ << " with message \"" << b << "\" !"; throw INTERP_KERNEL::Exception(osszz.str()); } }
577 +
578 +#endif
579 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Bases/NormalizedGeometricTypes MEDCOUPLING_new/src/INTERP_KERNEL/Bases/NormalizedGeometricTypes
580 --- MEDCOUPLING_old/src/INTERP_KERNEL/Bases/NormalizedGeometricTypes    2018-04-19 17:04:36.670221387 +0200
581 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Bases/NormalizedGeometricTypes    2018-04-19 17:25:17.505792771 +0200
582 @@ -47,6 +47,7 @@
583        NORM_HEXGP12 = 22,
584        NORM_PYRA13  = 23,
585        NORM_PENTA15 = 25,
586 +      NORM_PENTA18 = 28,
587        NORM_HEXA20  = 30,
588        NORM_HEXA27  = 27,
589        NORM_POLYHED = 31,
590 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/BoundingBox.cxx MEDCOUPLING_new/src/INTERP_KERNEL/BoundingBox.cxx
591 --- MEDCOUPLING_old/src/INTERP_KERNEL/BoundingBox.cxx   2018-04-19 17:04:36.670221387 +0200
592 +++ MEDCOUPLING_new/src/INTERP_KERNEL/BoundingBox.cxx   2018-04-19 17:25:17.462791921 +0200
593 @@ -162,4 +162,14 @@
594      return valid;
595    }
596  
597 +  void BoundingBox::toCompactData(double data[6]) const
598 +  {
599 +    data[0]=_coords[XMIN];
600 +    data[1]=_coords[XMAX];
601 +    data[2]=_coords[YMIN];
602 +    data[3]=_coords[YMAX];
603 +    data[4]=_coords[ZMIN];
604 +    data[5]=_coords[ZMAX];
605 +  }
606 +
607  }
608 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/BoundingBox.hxx MEDCOUPLING_new/src/INTERP_KERNEL/BoundingBox.hxx
609 --- MEDCOUPLING_old/src/INTERP_KERNEL/BoundingBox.hxx   2018-04-19 17:04:36.670221387 +0200
610 +++ MEDCOUPLING_new/src/INTERP_KERNEL/BoundingBox.hxx   2018-04-19 17:25:17.537793403 +0200
611 @@ -53,6 +53,8 @@
612  
613      inline void dumpCoords() const;
614  
615 +    void toCompactData(double data[6]) const;
616 +
617    private:
618      
619      bool isValid() const;
620 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/CellModel.cxx MEDCOUPLING_new/src/INTERP_KERNEL/CellModel.cxx
621 --- MEDCOUPLING_old/src/INTERP_KERNEL/CellModel.cxx     2018-04-19 17:04:36.671221407 +0200
622 +++ MEDCOUPLING_new/src/INTERP_KERNEL/CellModel.cxx     2018-04-19 17:25:17.403790755 +0200
623 @@ -16,7 +16,7 @@
624  //
625  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
626  //
627 -// Author : Anthony Geay (CEA/DEN)
628 +// Author : Anthony Geay (EDF R&D)
629  
630  #include "CellModel.hxx"
631  
632 @@ -36,7 +36,7 @@
633                                              "NORM_SEG4", "", "", "", "NORM_TETRA4",//10->14
634                                              "NORM_PYRA5", "NORM_PENTA6", "", "NORM_HEXA8", "",//15->19
635                                              "NORM_TETRA10", "", "NORM_HEXGP12", "NORM_PYRA13", "",//20->24
636 -                                            "NORM_PENTA15", "", "NORM_HEXA27", "", "",//25->29
637 +                                            "NORM_PENTA15", "", "NORM_HEXA27", "NORM_PENTA18", "",//25->29
638                                              "NORM_HEXA20", "NORM_POLYHED", "NORM_QPOLYG", "NORM_POLYL", "",//30->34
639                                              "", "", "", "", "",//35->39
640                                              "NORM_ERROR"};
641 @@ -100,6 +100,7 @@
642      _map_of_unique_instance.insert(std::make_pair(NORM_HEXGP12,CellModel(NORM_HEXGP12)));
643      _map_of_unique_instance.insert(std::make_pair(NORM_PYRA13,CellModel(NORM_PYRA13)));
644      _map_of_unique_instance.insert(std::make_pair(NORM_PENTA15,CellModel(NORM_PENTA15)));
645 +    _map_of_unique_instance.insert(std::make_pair(NORM_PENTA18,CellModel(NORM_PENTA18)));
646      _map_of_unique_instance.insert(std::make_pair(NORM_HEXA20,CellModel(NORM_HEXA20)));
647      _map_of_unique_instance.insert(std::make_pair(NORM_HEXA27,CellModel(NORM_HEXA27)));
648      _map_of_unique_instance.insert(std::make_pair(NORM_POLYGON,CellModel(NORM_POLYGON)));
649 @@ -352,6 +353,26 @@
650            _little_sons_con[0][0]=0; _little_sons_con[0][1]=1; _little_sons_con[0][2]=6;  _nb_of_little_sons=9;
651            _little_sons_con[1][0]=1; _little_sons_con[1][1]=2; _little_sons_con[1][2]=7;
652            _little_sons_con[2][0]=2; _little_sons_con[2][1]=0; _little_sons_con[2][2]=8;
653 +          _little_sons_con[3][0]=3; _little_sons_con[3][1]=4; _little_sons_con[3][2]=9;
654 +          _little_sons_con[4][0]=4; _little_sons_con[4][1]=5; _little_sons_con[4][2]=10;
655 +          _little_sons_con[5][0]=5; _little_sons_con[5][1]=3; _little_sons_con[5][2]=11;
656 +          _little_sons_con[6][0]=0; _little_sons_con[6][1]=3; _little_sons_con[6][2]=12;
657 +          _little_sons_con[7][0]=1; _little_sons_con[7][1]=4; _little_sons_con[7][2]=13;
658 +          _little_sons_con[8][0]=2; _little_sons_con[8][1]=5; _little_sons_con[8][2]=14;
659 +        }
660 +        break;
661 +      case NORM_PENTA18:
662 +        {
663 +          _nb_of_pts=18; _nb_of_sons=5; _dim=3; _linear_type=NORM_PENTA6; _is_simplex=false;
664 +          _sons_type[0]=NORM_TRI6; _sons_type[1]=NORM_TRI6; _sons_type[2]=NORM_QUAD9; _sons_type[3]=NORM_QUAD9; _sons_type[4]=NORM_QUAD9;
665 +          _sons_con[0][0]=0; _sons_con[0][1]=1; _sons_con[0][2]=2; _sons_con[0][3]=6; _sons_con[0][4]=7; _sons_con[0][5]=8; _nb_of_sons_con[0]=6;
666 +          _sons_con[1][0]=3; _sons_con[1][1]=5; _sons_con[1][2]=4; _sons_con[1][3]=11; _sons_con[1][4]=10; _sons_con[1][5]=9; _nb_of_sons_con[1]=6;
667 +          _sons_con[2][0]=0; _sons_con[2][1]=3; _sons_con[2][2]=4; _sons_con[2][3]=1; _sons_con[2][4]=12; _sons_con[2][5]=9; _sons_con[2][6]=13; _sons_con[2][7]=6; _sons_con[2][8]=15; _nb_of_sons_con[2]=9;
668 +          _sons_con[3][0]=1; _sons_con[3][1]=4; _sons_con[3][2]=5; _sons_con[3][3]=2; _sons_con[3][4]=13; _sons_con[3][5]=10; _sons_con[3][6]=14; _sons_con[3][7]=7; _sons_con[3][8]=16; _nb_of_sons_con[3]=9;
669 +          _sons_con[4][0]=2; _sons_con[4][1]=4; _sons_con[4][2]=5; _sons_con[4][3]=0; _sons_con[4][4]=14; _sons_con[4][5]=11; _sons_con[4][6]=12; _sons_con[4][7]=8; _sons_con[4][8]=17; _nb_of_sons_con[4]=9; _quadratic=true;
670 +          _little_sons_con[0][0]=0; _little_sons_con[0][1]=1; _little_sons_con[0][2]=6;  _nb_of_little_sons=9;
671 +          _little_sons_con[1][0]=1; _little_sons_con[1][1]=2; _little_sons_con[1][2]=7;
672 +          _little_sons_con[2][0]=2; _little_sons_con[2][1]=0; _little_sons_con[2][2]=8;
673            _little_sons_con[3][0]=3; _little_sons_con[3][1]=4; _little_sons_con[3][2]=9;
674            _little_sons_con[4][0]=4; _little_sons_con[4][1]=5; _little_sons_con[4][2]=10;
675            _little_sons_con[5][0]=5; _little_sons_con[5][1]=3; _little_sons_con[5][2]=11;
676 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/CMakeLists.txt MEDCOUPLING_new/src/INTERP_KERNEL/CMakeLists.txt
677 --- MEDCOUPLING_old/src/INTERP_KERNEL/CMakeLists.txt    2018-04-19 17:04:36.670221387 +0200
678 +++ MEDCOUPLING_new/src/INTERP_KERNEL/CMakeLists.txt    2018-04-19 17:25:17.404790774 +0200
679 @@ -37,6 +37,7 @@
680    Interpolation3D.cxx
681    Interpolation2D3D.cxx
682    Interpolation3D1D.cxx
683 +  Interpolation1D0D.cxx
684    MeshElement.cxx
685    InterpKernelMeshQuality.cxx
686    InterpKernelCellSimplify.cxx
687 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/CurveIntersector.txx MEDCOUPLING_new/src/INTERP_KERNEL/CurveIntersector.txx
688 --- MEDCOUPLING_old/src/INTERP_KERNEL/CurveIntersector.txx      2018-04-19 17:04:36.671221407 +0200
689 +++ MEDCOUPLING_new/src/INTERP_KERNEL/CurveIntersector.txx      2018-04-19 17:25:17.483792336 +0200
690 @@ -104,7 +104,7 @@
691    }
692  
693    /*!
694 -    Computes the bouding box of a given element. iP in numPol mode.
695 +    Computes the bounding box of a given element. iP in numPol mode.
696    */
697    template<class MyMeshType, class MyMatrix>
698    void CurveIntersector<MyMeshType,MyMatrix>::getElemBB (double*           bb,
699 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/DirectedBoundingBox.cxx MEDCOUPLING_new/src/INTERP_KERNEL/DirectedBoundingBox.cxx
700 --- MEDCOUPLING_old/src/INTERP_KERNEL/DirectedBoundingBox.cxx   2018-04-19 17:04:36.671221407 +0200
701 +++ MEDCOUPLING_new/src/INTERP_KERNEL/DirectedBoundingBox.cxx   2018-04-19 17:25:17.426791209 +0200
702 @@ -201,7 +201,7 @@
703  
704    //================================================================================
705    /*!
706 -   * \brief Creates empty box intended to further initalization via setData()
707 +   * \brief Creates empty box intended to further initialization via setData()
708     */
709    //================================================================================
710  
711 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx MEDCOUPLING_new/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx
712 --- MEDCOUPLING_old/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx       2018-04-19 17:04:36.672221426 +0200
713 +++ MEDCOUPLING_new/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx       2018-04-19 17:25:17.650795637 +0200
714 @@ -547,7 +547,7 @@
715  }
716  
717  /*!
718 - * This method has the responsability to see if this->_expr can be seen as a unary function of something.
719 + * This method has the responsibility to see if this->_expr can be seen as a unary function of something.
720   * Something defined as the contain of highest level barckets.
721   * Typically '(3*x+2)' and 'cos(4*l+p*n)' will be intercepted by this method whereas '3*x+2' not...etc..
722   */
723 @@ -594,9 +594,9 @@
724  }
725  
726  /*!
727 - *  This method has the responsability to see if this->_expr is interpretable without any recursion.
728 + *  This method has the responsibility to see if this->_expr is interpretable without any recursion.
729   * \return true if no recursion needed, false if this->_expr is too complex to be interpreted at this level.
730 - * \throw exception if this->_expr is simple enough to try to interprate this and this expression contains an error.
731 + * \throw exception if this->_expr is simple enough to try to interpret this and this expression contains an error.
732   */
733  bool ExprParser::tryToInterpALeaf()
734  {
735 @@ -917,7 +917,7 @@
736            if(curLevel==0)
737              {
738                std::ostringstream errMsg;
739 -              char MSGTYP1[]="Error in brackets : closing brackets ')' before openning '('";
740 +              char MSGTYP1[]="Error in brackets : closing brackets ')' before opening '('";
741                errMsg << EXPR_PARSE_ERR_MSG << MSGTYP1;
742                LocateError(errMsg,_expr,(int)std::distance(_expr.begin(),iter));
743                throw INTERP_KERNEL::Exception(errMsg.str().c_str());
744 @@ -941,7 +941,7 @@
745   */
746  double ExprParser::ReplaceAndTraduce(std::string& expr, int id, std::size_t bg, std::size_t end, int& delta)
747  {
748 -  static const char MSG[]="Interal error : A string expected to be a float is not one ! Bug to signal !";
749 +  static const char MSG[]="Internal error : A string expected to be a float is not one ! Bug to signal !";
750    std::istringstream stream;
751    std::ostringstream oss;
752    std::size_t end2=end!=std::string::npos?end-bg:end;
753 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx MEDCOUPLING_new/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx
754 --- MEDCOUPLING_old/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx     2018-04-19 17:04:36.672221426 +0200
755 +++ MEDCOUPLING_new/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx     2018-04-19 17:25:17.653795696 +0200
756 @@ -83,7 +83,7 @@
757  
758    /*!
759     * This class deals with units.
760 -   * This class has two main responsabilities :
761 +   * This class has two main responsibilities :
762     *      - interprete units by giving simply their representation in string type.
763     *      - performing operations on these units.
764     *
765 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/GaussPoints/CleanUpGauss.py MEDCOUPLING_new/src/INTERP_KERNEL/GaussPoints/CleanUpGauss.py
766 --- MEDCOUPLING_old/src/INTERP_KERNEL/GaussPoints/CleanUpGauss.py       2018-04-19 17:04:36.672221426 +0200
767 +++ MEDCOUPLING_new/src/INTERP_KERNEL/GaussPoints/CleanUpGauss.py       2018-04-19 17:25:17.481792296 +0200
768 @@ -18,7 +18,6 @@
769  # Author : Anthony Geay (EDF R&D)
770  
771  import re
772 -import sys
773  
774  s1=2709
775  s2=2848
776 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/GenMathFormulae.hxx MEDCOUPLING_new/src/INTERP_KERNEL/GenMathFormulae.hxx
777 --- MEDCOUPLING_old/src/INTERP_KERNEL/GenMathFormulae.hxx       2018-04-19 17:04:36.673221446 +0200
778 +++ MEDCOUPLING_new/src/INTERP_KERNEL/GenMathFormulae.hxx       2018-04-19 17:25:17.407790834 +0200
779 @@ -28,7 +28,7 @@
780  namespace INTERP_KERNEL
781  {
782    /*!
783 -   * This method computes eigenvalues of a 3x3 symetric matrix stored with 6 values in 'matrix'. The convension chosen for 'matrix' is described here:
784 +   * This method computes eigenvalues of a 3x3 symmetric matrix stored with 6 values in 'matrix'. The convension chosen for 'matrix' is described here:
785     * matrix[0]=m_xx, matrix[1]=m_yy, matrix[2]=m_zz,
786     * matrix[3]=m_xy, matrix[4]=m_yz, matrix[5]=m_xz
787     * This method returns the 3 eigenvalues in 'eigenVals'.
788 @@ -55,7 +55,7 @@
789    }
790    
791    /*!
792 -   * This method computes one eigenvector of a 3x3 symetric matrix stored with 6 values in 'matrix'. The convension chosen for 'matrix' is described here:
793 +   * This method computes one eigenvector of a 3x3 symmetric matrix stored with 6 values in 'matrix'. The convension chosen for 'matrix' is described here:
794     * matrix[0]=m_xx, matrix[1]=m_yy, matrix[2]=m_zz,
795     * matrix[3]=m_xy, matrix[4]=m_yz, matrix[5]=m_xz
796     * This method returns the eigenvector of the corresponding eigenvalue in 'eigenVal'. The returned eigenValue is normalized.
797 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx
798 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx   2018-04-19 17:04:36.673221446 +0200
799 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx   2018-04-19 17:25:17.625795143 +0200
800 @@ -148,15 +148,16 @@
801  
802  Bounds *Bounds::nearlyAmIIntersectingWith(const Bounds& other) const
803  {
804 -  if( (other._x_min > _x_max+QUADRATIC_PLANAR::_precision) || (other._x_max < _x_min-QUADRATIC_PLANAR::_precision) || (other._y_min > _y_max+QUADRATIC_PLANAR::_precision) 
805 -      || (other._y_max < _y_min-QUADRATIC_PLANAR::_precision) )
806 +  double eps = QuadraticPlanarPrecision::getPrecision();
807 +  if( (other._x_min > _x_max+eps) || (other._x_max < _x_min-eps) || (other._y_min > _y_max+eps)
808 +      || (other._y_max < _y_min-eps) )
809      return 0;
810    if( (other._x_min >= _x_max ) || (other._x_max <= _x_min) || (other._y_min >= _y_max) || (other._y_max <= _y_min) )
811      {
812 -      return new Bounds(std::max(_x_min-QUADRATIC_PLANAR::_precision,other._x_min),
813 -          std::min(_x_max+QUADRATIC_PLANAR::_precision,other._x_max),
814 -          std::max(_y_min-QUADRATIC_PLANAR::_precision,other._y_min),
815 -          std::min(_y_max+QUADRATIC_PLANAR::_precision,other._y_max));//In approx cases.
816 +      return new Bounds(std::max(_x_min-eps,other._x_min),
817 +          std::min(_x_max+eps,other._x_max),
818 +          std::max(_y_min-eps,other._y_min),
819 +          std::min(_y_max+eps,other._y_max));//In approx cases.
820      }
821    else
822      return new Bounds(std::max(_x_min,other._x_min),std::min(_x_max,other._x_max),std::max(_y_min,other._y_min),std::min(_y_max,other._y_max));
823 @@ -183,7 +184,7 @@
824    bool thinY=Node::areDoubleEquals(_y_min,_y_max);
825    if(!thinX)
826      {
827 -      if((Node::areDoubleEquals(x,_x_min) || Node::areDoubleEquals(x,_x_max)) && ((y<_y_max+QUADRATIC_PLANAR::_precision) && (y>_y_min-QUADRATIC_PLANAR::_precision)))
828 +      if((Node::areDoubleEquals(x,_x_min) || Node::areDoubleEquals(x,_x_max)) && ((y<_y_max+QuadraticPlanarPrecision::getPrecision()) && (y>_y_min-QuadraticPlanarPrecision::getPrecision())))
829          return ON_BOUNDARY_POS;
830      }
831    else
832 @@ -191,7 +192,7 @@
833        return OUT;
834    if(!thinY)
835      {
836 -      if((Node::areDoubleEquals(y,_y_min) || Node::areDoubleEquals(y,_y_max)) && ((x<_x_max+QUADRATIC_PLANAR::_precision) && (x>_x_min-QUADRATIC_PLANAR::_precision)))
837 +      if((Node::areDoubleEquals(y,_y_min) || Node::areDoubleEquals(y,_y_max)) && ((x<_x_max+QuadraticPlanarPrecision::getPrecision()) && (x>_x_min-QuadraticPlanarPrecision::getPrecision())))
838          return ON_BOUNDARY_POS;
839      }
840    else
841 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx
842 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx     2018-04-19 17:04:36.673221446 +0200
843 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx     2018-04-19 17:25:17.634795321 +0200
844 @@ -541,14 +541,14 @@
845    std::set<Node *> nodes;
846    getAllNodes(nodes);
847    for(std::set<Node *>::const_iterator iter=nodes.begin();iter!=nodes.end();iter++)
848 -    if(sqrt((*iter)->distanceWithSq(*nodeToTest))<QUADRATIC_PLANAR::_precision)
849 +    if(sqrt((*iter)->distanceWithSq(*nodeToTest))<QuadraticPlanarPrecision::getPrecision())
850        return true;
851    double ref(isInOrOutAlg(nodeToTest,nodes,inOutSwitch));
852    bool ret(false);
853    for(std::set< IntersectElement >::iterator iter4=inOutSwitch.begin();iter4!=inOutSwitch.end();iter4++)
854      {
855        double val((*iter4).getVal1());
856 -      if(fabs(val-ref)>=QUADRATIC_PLANAR::_precision)
857 +      if(fabs(val-ref)>=QuadraticPlanarPrecision::getPrecision())
858          {
859            if(val<ref)
860              {
861 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx
862 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx    2018-04-19 17:04:36.673221446 +0200
863 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx    2018-04-19 17:25:17.619795024 +0200
864 @@ -131,7 +131,7 @@
865        a2.getCenter(centerL); radiusL=a2.getRadius();
866        a1.getCenter(centerB); radiusB=a1.getRadius();
867      }
868 -  // dividing from the begining by radiusB^2 to keep precision
869 +  // dividing from the beginning by radiusB^2 to keep precision
870    distBetweenCenters=Node::distanceBtw2PtSq(centerL,centerB);
871    cst=distBetweenCenters/(radiusB*radiusB);
872    cst+=radiusL*radiusL/(radiusB*radiusB);
873 @@ -174,7 +174,7 @@
874  {
875    _dist=Node::distanceBtw2Pt(getE1().getCenter(),getE2().getCenter());
876    double radius1=getE1().getRadius(); double radius2=getE2().getRadius();
877 -  if(_dist>radius1+radius2+QUADRATIC_PLANAR::_precision || _dist+std::min(radius1,radius2)+QUADRATIC_PLANAR::_precision<std::max(radius1,radius2))
878 +  if(_dist>radius1+radius2+QuadraticPlanarPrecision::getPrecision() || _dist+std::min(radius1,radius2)+QuadraticPlanarPrecision::getPrecision()<std::max(radius1,radius2))
879      {
880        obviousNoIntersection=true;
881        areOverlapped=false;
882 @@ -328,7 +328,7 @@
883        ((*(_e2.getStartNode()))[0]-center[0])*((*(_e2.getEndNode()))[1]-center[1])-
884        ((*(_e2.getStartNode()))[1]-center[1])*((*(_e2.getEndNode()))[0]-center[0]);
885    _determinant=getE1().getRadius()*getE1().getRadius()/_drSq-_cross*_cross/(_drSq*_drSq);
886 -  if(_determinant>-2*QUADRATIC_PLANAR::_precision)//QUADRATIC_PLANAR::_precision*QUADRATIC_PLANAR::_precision*_drSq*_drSq/(2.*_dx*_dx))
887 +  if(_determinant>-2*QuadraticPlanarPrecision::getPrecision())//QuadraticPlanarPrecision::getPrecision()*QuadraticPlanarPrecision::getPrecision()*_drSq*_drSq/(2.*_dx*_dx))
888      obviousNoIntersection=false;
889    else
890      obviousNoIntersection=true;   
891 @@ -351,7 +351,7 @@
892  {
893    std::list< IntersectElement > ret;
894    const double *center=getE1().getCenter();
895 -  if(!(fabs(_determinant)<(2.*QUADRATIC_PLANAR::_precision)))//QUADRATIC_PLANAR::_precision*QUADRATIC_PLANAR::_precision*_drSq*_drSq/(2.*_dx*_dx))
896 +  if(!(fabs(_determinant)<(2.*QuadraticPlanarPrecision::getPrecision())))//QuadraticPlanarPrecision::getPrecision()*QuadraticPlanarPrecision::getPrecision()*_drSq*_drSq/(2.*_dx*_dx))
897      {
898        double determinant=EdgeArcCircle::SafeSqrt(_determinant);
899        double x1=(_cross*_dy/_drSq+Node::sign(_dy)*_dx*determinant)+center[0];
900 @@ -466,7 +466,7 @@
901  /*!
902   * 'eps' is expected to be > 0.
903   * 'conn' is of size 3. conn[0] is start id, conn[1] is end id and conn[2] is middle id.
904 - * 'offset' is typically the number of nodes already existing in global 2D curve mesh. Additionnal coords 'addCoo' ids will be put after the already existing.
905 + * 'offset' is typically the number of nodes already existing in global 2D curve mesh. Additional coords 'addCoo' ids will be put after the already existing.
906   */
907  void EdgeArcCircle::tesselate(const int *conn, int offset, double eps, std::vector<int>& newConn, std::vector<double>& addCoo) const
908  {
909 @@ -644,9 +644,9 @@
910    //
911    double myDelta1(angle1-_angle0),myDelta2(angle2-_angle0);
912    if(_angle>0.)
913 -    { myDelta1=myDelta1>-QUADRATIC_PLANAR::_precision?myDelta1:myDelta1+2.*M_PI; myDelta2=myDelta2>-QUADRATIC_PLANAR::_precision?myDelta2:myDelta2+2.*M_PI; }
914 +    { myDelta1=myDelta1>-QuadraticPlanarPrecision::getPrecision()?myDelta1:myDelta1+2.*M_PI; myDelta2=myDelta2>-QuadraticPlanarPrecision::getPrecision()?myDelta2:myDelta2+2.*M_PI; }
915    else
916 -    { myDelta1=myDelta1<QUADRATIC_PLANAR::_precision?myDelta1:myDelta1-2.*M_PI; myDelta2=myDelta2<QUADRATIC_PLANAR::_precision?myDelta2:myDelta2-2.*M_PI; }
917 +    { myDelta1=myDelta1<QuadraticPlanarPrecision::getPrecision()?myDelta1:myDelta1-2.*M_PI; myDelta2=myDelta2<QuadraticPlanarPrecision::getPrecision()?myDelta2:myDelta2-2.*M_PI; }
918    ////
919    mid[0]=_center[0]+_radius*cos(_angle0+(myDelta1+myDelta2)/2.);
920    mid[1]=_center[1]+_radius*sin(_angle0+(myDelta1+myDelta2)/2.);
921 @@ -703,14 +703,14 @@
922    double myDelta2=val2-_angle0;
923    if(_angle>0.)
924      {
925 -      myDelta1=myDelta1>-(_radius*QUADRATIC_PLANAR::_precision)?myDelta1:myDelta1+2.*M_PI;//in some cases val1 or val2 are so close to angle0 that myDelta is close to 0. but negative.
926 -      myDelta2=myDelta2>-(_radius*QUADRATIC_PLANAR::_precision)?myDelta2:myDelta2+2.*M_PI;
927 +      myDelta1=myDelta1>-(_radius*QuadraticPlanarPrecision::getPrecision())?myDelta1:myDelta1+2.*M_PI;//in some cases val1 or val2 are so close to angle0 that myDelta is close to 0. but negative.
928 +      myDelta2=myDelta2>-(_radius*QuadraticPlanarPrecision::getPrecision())?myDelta2:myDelta2+2.*M_PI;
929        return myDelta1<myDelta2;
930      }
931    else
932      {
933 -      myDelta1=myDelta1<(_radius*QUADRATIC_PLANAR::_precision)?myDelta1:myDelta1-2.*M_PI;
934 -      myDelta2=myDelta2<(_radius*QUADRATIC_PLANAR::_precision)?myDelta2:myDelta2-2.*M_PI;
935 +      myDelta1=myDelta1<(_radius*QuadraticPlanarPrecision::getPrecision())?myDelta1:myDelta1-2.*M_PI;
936 +      myDelta2=myDelta2<(_radius*QuadraticPlanarPrecision::getPrecision())?myDelta2:myDelta2-2.*M_PI;
937        return myDelta2<myDelta1;
938      }
939  }
940 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx
941 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx     2018-04-19 17:04:36.673221446 +0200
942 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx     2018-04-19 17:25:17.627795182 +0200
943 @@ -288,7 +288,7 @@
944  }
945  
946  /*!
947 - * This methode is const because 'node' is supposed to be equal geomitrically to _node.
948 + * This method is const because 'node' is supposed to be equal geometrically to _node.
949   */
950  void IntersectElement::setNode(Node *node) const
951  {
952 @@ -746,7 +746,7 @@
953    if(intersector->intersect(whereToFind,newNodes,order,commonNode))
954      {
955        if(newNodes.empty())
956 -        throw Exception("Internal error occured - error in intersector implementation!");// This case should never happen
957 +        throw Exception("Internal error occurred - error in intersector implementation!");// This case should never happen
958        std::vector<Node *>::iterator iter=newNodes.begin();
959        std::vector<Node *>::reverse_iterator iterR=newNodes.rbegin();
960        f1->addSubEdgeInVector(f1->getStartNode(),*iter,outValForF1);
961 @@ -930,7 +930,7 @@
962  
963  inline bool eqpair(const std::pair<double,Node *>& p1, const std::pair<double,Node *>& p2)
964  {
965 -  return fabs(p1.first-p2.first)<QUADRATIC_PLANAR::_precision;
966 +  return fabs(p1.first-p2.first)<QuadraticPlanarPrecision::getPrecision();
967  }
968  
969  /**
970 @@ -1005,12 +1005,12 @@
971    for(std::vector< std::pair<double,Node *> >::const_iterator it=an2.begin();it!=itend;it++)
972      {
973        int idd=(*mapp2.find((*it).second)).second;
974 -      if((*it).first<QUADRATIC_PLANAR::_precision)
975 +      if((*it).first<QuadraticPlanarPrecision::getPrecision())
976          {
977            startId=idd;
978            continue;
979          }
980 -      if((*it).first>1-QUADRATIC_PLANAR::_precision)
981 +      if((*it).first>1-QuadraticPlanarPrecision::getPrecision())
982          {
983            endId=idd;
984            continue;
985 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx
986 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx     2018-04-19 17:04:36.673221446 +0200
987 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx     2018-04-19 17:25:17.616794965 +0200
988 @@ -146,7 +146,7 @@
989    class INTERPKERNEL_EXPORT EdgeIntersector
990    {
991    protected:
992 -    //! All non symetric methods are relative to 'e1'.
993 +    //! All non symmetric methods are relative to 'e1'.
994      EdgeIntersector(const Edge& e1, const Edge& e2):_e1(e1),_e2(e2) { }
995    public:
996      virtual ~EdgeIntersector() { }
997 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx
998 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx  2018-04-19 17:04:36.674221466 +0200
999 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx  2018-04-19 17:25:17.609794826 +0200
1000 @@ -108,20 +108,20 @@
1001  bool SegSegIntersector::areColinears() const
1002  {
1003    double determinant=_matrix[0]*_matrix[3]-_matrix[1]*_matrix[2];
1004 -  return fabs(determinant)<QUADRATIC_PLANAR::_arc_detection_precision;
1005 +  return fabs(determinant)<QuadraticPlanarArcDetectionPrecision::getArcDetectionPrecision();
1006  }
1007  
1008  /*!
1009   * Should be called \b once ! non const method.
1010   * \param whereToFind specifies the box where final seek should be done. Essentially it is used for caracteristic reason.
1011 - * \param colinearity returns if regarding QUADRATIC_PLANAR::_precision ; e1 and e2 are colinears
1012 + * \param colinearity returns if regarding QuadraticPlanarPrecision::getPrecision() ; e1 and e2 are colinears
1013   *                    If true 'this' is modified ! So this method be called once above all if true is returned for this parameter.
1014   * \param areOverlapped if colinearity if true, this parameter looks if e1 and e2 are overlapped.
1015   */
1016  void SegSegIntersector::areOverlappedOrOnlyColinears(const Bounds *whereToFind, bool& colinearity, bool& areOverlapped)
1017  {
1018    double determinant=_matrix[0]*_matrix[3]-_matrix[1]*_matrix[2];
1019 -  if(fabs(determinant)>2.*QUADRATIC_PLANAR::_precision)//2*_precision due to max of offset on _start and _end
1020 +  if(fabs(determinant)>2.*QuadraticPlanarPrecision::getPrecision())//2*_precision due to max of offset on _start and _end
1021      {
1022        colinearity=false; areOverlapped=false;
1023        _matrix[0]/=determinant; _matrix[1]/=determinant; _matrix[2]/=determinant; _matrix[3]/=determinant;
1024 @@ -136,7 +136,7 @@
1025        double deno=sqrt(_matrix[0]*_matrix[0]+_matrix[1]*_matrix[1]);
1026        double x=(*(_e1.getStartNode()))[0]-(*(_e2.getStartNode()))[0];
1027        double y=(*(_e1.getStartNode()))[1]-(*(_e2.getStartNode()))[1];
1028 -      areOverlapped=fabs((_matrix[1]*y+_matrix[0]*x)/deno)<QUADRATIC_PLANAR::_precision;
1029 +      areOverlapped=fabs((_matrix[1]*y+_matrix[0]*x)/deno)<QuadraticPlanarPrecision::getPrecision();
1030      }
1031  }
1032  
1033 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx
1034 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx     2018-04-19 17:04:36.674221466 +0200
1035 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx     2018-04-19 17:25:17.631795261 +0200
1036 @@ -88,9 +88,9 @@
1037      static double dot(const double *vect1, const double *vect2) { return vect1[0]*vect2[0]+vect1[1]*vect2[1]; }
1038      static double sign(double val) { if(val>=0) return 1.; else return -1.; }
1039      static double norm(const double *vect) { return sqrt(vect[0]*vect[0]+vect[1]*vect[1]); }
1040 -    static bool areDoubleEquals(double a, double b) { return fabs(a-b) < QUADRATIC_PLANAR::_precision; }
1041 +    static bool areDoubleEquals(double a, double b) { return fabs(a-b) < QuadraticPlanarPrecision::getPrecision(); }
1042      //! idem areDoubleEquals except that precision of comparison is modified.
1043 -    static bool areDoubleEqualsWP(double a, double b, double k) { return fabs(a-b) < k*QUADRATIC_PLANAR::_precision; }
1044 +    static bool areDoubleEqualsWP(double a, double b, double k) { return fabs(a-b) < k*QuadraticPlanarPrecision::getPrecision(); }
1045      static double distanceBtw2Pt(const double *a, const double *b) { return sqrt((a[0]-b[0])*(a[0]-b[0])+(a[1]-b[1])*(a[1]-b[1])); }
1046      static double distanceBtw2PtSq(const double *a, const double *b) { return (a[0]-b[0])*(a[0]-b[0])+(a[1]-b[1])*(a[1]-b[1]); }
1047      //
1048 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx
1049 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx        2018-04-19 17:04:36.674221466 +0200
1050 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx        2018-04-19 17:25:17.621795064 +0200
1051 @@ -20,16 +20,38 @@
1052  
1053  #include "InterpKernelGeo2DPrecision.hxx"
1054  
1055 -double INTERP_KERNEL::QUADRATIC_PLANAR::_precision=1e-14;
1056 +double INTERP_KERNEL::QuadraticPlanarPrecision::_precision=1e-14;
1057 +double INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::_arc_detection_precision=1e-14;
1058 +
1059 +INTERP_KERNEL::QuadraticPlanarPrecision::QuadraticPlanarPrecision(double precision):
1060 +    _initial_precision(_precision)
1061 +{
1062 +  _precision=precision;
1063 +}
1064 +
1065 +INTERP_KERNEL::QuadraticPlanarPrecision::~QuadraticPlanarPrecision()
1066 +{
1067 +  _precision = _initial_precision;
1068 +}
1069 +
1070 +INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::QuadraticPlanarArcDetectionPrecision(double precision):
1071 +    _initial_arc_detection_precision(_arc_detection_precision)
1072 +{
1073 +  _arc_detection_precision=precision;
1074 +}
1075 +
1076 +INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::~QuadraticPlanarArcDetectionPrecision()
1077 +{
1078 +  _arc_detection_precision = _initial_arc_detection_precision;
1079 +}
1080  
1081 -double INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=1e-14;
1082  
1083 -void INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(double precision)
1084 +void INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(double precision)
1085  { 
1086 -  INTERP_KERNEL::QUADRATIC_PLANAR::_precision=precision;
1087 +  _precision=precision;
1088  }
1089  
1090 -void INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(double precision)
1091 +void INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(double precision)
1092  {
1093 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=precision;
1094 +  _arc_detection_precision=precision;
1095  }
1096 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx
1097 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx        2018-04-19 17:04:36.674221466 +0200
1098 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx        2018-04-19 17:25:17.623795103 +0200
1099 @@ -25,14 +25,50 @@
1100  
1101  namespace INTERP_KERNEL
1102  {
1103 -  class INTERPKERNEL_EXPORT QUADRATIC_PLANAR
1104 +  /* !!TODO: a more global review of the code should be done, so that eps is always a parameter of all methods
1105 +     instead of being stored as a static attribute.
1106 +  */
1107 +
1108 +  /** Class storing the precision for the detection of colinear segments, coincident points, etc ...
1109 +   * in Geometric2D computations.
1110 +   *
1111 +   * RAII pattern allowing to temporarily override Geometric2D precision.
1112 +   * When the instance is destroyed, the previous precision is set back.
1113 +   *
1114 +   */
1115 +  class QuadraticPlanarPrecision
1116    {
1117    public:
1118 -    static double _precision;
1119 -    static double _arc_detection_precision;
1120 +    QuadraticPlanarPrecision(double prec);
1121 +    virtual ~QuadraticPlanarPrecision();
1122 +
1123      static void setPrecision(double precision);
1124 +    inline static double getPrecision() { return _precision; }
1125 +  private:
1126 +    static double _precision;
1127 +    double _initial_precision;
1128 +  };
1129 +
1130 +  /** Class storing the precision for the detection of degenerated arc of circles
1131 +   * in Geometric2D computations.
1132 +   *
1133 +   * RAII pattern allowing to temporarily override Geometric2D precision.
1134 +   * When the instance is destroyed, the previous precision is set back.
1135 +   */
1136 +  class QuadraticPlanarArcDetectionPrecision
1137 +  {
1138 +  public:
1139 +    QuadraticPlanarArcDetectionPrecision(double prec);
1140 +    virtual ~QuadraticPlanarArcDetectionPrecision();
1141 +
1142      static void setArcDetectionPrecision(double precision);
1143 +    inline static double getArcDetectionPrecision() { return _arc_detection_precision; }
1144 +  private:
1145 +    static double _arc_detection_precision;
1146 +    double _initial_arc_detection_precision;
1147 +
1148    };
1149  }
1150  
1151  #endif
1152 +
1153 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx
1154 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx 2018-04-19 17:04:36.674221466 +0200
1155 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx 2018-04-19 17:25:17.628795202 +0200
1156 @@ -267,11 +267,11 @@
1157  }
1158  
1159  /*!
1160 - * This method splits 'this' with 'other' into smaller pieces localizable. 'mapThis' is a map that gives the correspondance
1161 + * This method splits 'this' with 'other' into smaller pieces localizable. 'mapThis' is a map that gives the correspondence
1162   * between nodes contained in 'this' and node ids in a global mesh.
1163 - * In the same way, 'mapOther' gives the correspondance between nodes contained in 'other' and node ids in a
1164 - * global mesh from wich 'other' is extracted.
1165 - * This method has 1 out paramater : 'edgesThis', After the call of this method, it contains the nodal connectivity (including type)
1166 + * In the same way, 'mapOther' gives the correspondence between nodes contained in 'other' and node ids in a
1167 + * global mesh from which 'other' is extracted.
1168 + * This method has 1 out parameter : 'edgesThis', After the call of this method, it contains the nodal connectivity (including type)
1169   * of 'this' into globlal "this mesh".
1170   * This method has 2 in/out parameters : 'subDivOther' and 'addCoo'.'otherEdgeIds' is useful to put values in
1171   * 'edgesThis', 'subDivOther' and 'addCoo'.
1172 @@ -1090,7 +1090,7 @@
1173      }
1174    if(!found)
1175      throw Exception("Internal error: polygons incompatible with each others. Should never happen!");
1176 -  //Ok we found correspondance between this and pol1. Searching for right direction to close polygon.
1177 +  //Ok we found correspondence between this and pol1. Searching for right direction to close polygon.
1178    ElementaryEdge *e=_sub_edges.back();
1179    if(e->getLoc()==FULL_ON_1)
1180      {
1181 @@ -1140,7 +1140,7 @@
1182    if(!direction)
1183      it.previousLoop();
1184    Node *nodeToTest;
1185 -  int szMax(pol1Splitted.size()+1),ii(0);// here a protection against agressive users of IntersectMeshes of invalid input meshes
1186 +  int szMax(pol1Splitted.size()+1),ii(0);// here a protection against aggressive users of IntersectMeshes of invalid input meshes
1187    std::list<QuadraticPolygon *>::iterator ret;
1188    do
1189      {
1190 @@ -1157,7 +1157,7 @@
1191        ii++;
1192      }
1193    while(ret==iEnd && ii<szMax);
1194 -  if(ii==szMax)// here a protection against agressive users of IntersectMeshes of invalid input meshes
1195 +  if(ii==szMax)// here a protection against aggressive users of IntersectMeshes of invalid input meshes
1196      throw INTERP_KERNEL::Exception("QuadraticPolygon::fillAsMuchAsPossibleWith : Something is invalid with input polygons !");
1197    return ret;
1198  }
1199 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2DIntersector.hxx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2DIntersector.hxx
1200 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2DIntersector.hxx        2018-04-19 17:04:36.674221466 +0200
1201 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2DIntersector.hxx        2018-04-19 17:25:17.415790992 +0200
1202 @@ -54,6 +54,8 @@
1203      QuadraticPolygon *buildPolygonOfOneEdgeFrom(const std::vector<double>& coords, NormalizedCellType type);
1204      QuadraticPolygon *buildPolygonAFrom(ConnType cell, int nbOfPoints, NormalizedCellType type);
1205      QuadraticPolygon *buildPolygonBFrom(ConnType cell, int nbOfPoints, NormalizedCellType type);
1206 +
1207 +    QuadraticPlanarPrecision _precision;
1208    };
1209  }
1210  
1211 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2DIntersector.txx MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2DIntersector.txx
1212 --- MEDCOUPLING_old/src/INTERP_KERNEL/Geometric2DIntersector.txx        2018-04-19 17:04:36.674221466 +0200
1213 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Geometric2DIntersector.txx        2018-04-19 17:25:17.398790656 +0200
1214 @@ -44,9 +44,9 @@
1215    GEO2D_INTERSECTOR::Geometric2DIntersector(const MyMeshType& meshT, const MyMeshType& meshS,
1216                                              double dimCaracteristic, double md3DSurf, double minDot3DSurf, double medianPlane,
1217                                              double precision, int orientation):
1218 -    InterpType<MyMeshType,MyMatrix,GEO2D_INTERSECTOR >(meshT,meshS,dimCaracteristic, precision, md3DSurf, minDot3DSurf, medianPlane, true, orientation, 0)
1219 +    InterpType<MyMeshType,MyMatrix,GEO2D_INTERSECTOR >(meshT,meshS,dimCaracteristic, precision, md3DSurf, minDot3DSurf, medianPlane, true, orientation, 0),
1220 +    _precision(precision)
1221    {
1222 -    QUADRATIC_PLANAR::_precision=precision;
1223    }
1224    
1225    INTERSECTOR_TEMPLATE
1226 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation1D0D.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation1D0D.cxx
1227 --- MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation1D0D.cxx     1970-01-01 01:00:00.000000000 +0100
1228 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation1D0D.cxx     2018-04-19 17:25:17.662795874 +0200
1229 @@ -0,0 +1,57 @@
1230 +// Copyright (C) 2018  CEA/DEN, EDF R&D
1231 +//
1232 +// This library is free software; you can redistribute it and/or
1233 +// modify it under the terms of the GNU Lesser General Public
1234 +// License as published by the Free Software Foundation; either
1235 +// version 2.1 of the License, or (at your option) any later version.
1236 +//
1237 +// This library is distributed in the hope that it will be useful,
1238 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
1239 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1240 +// Lesser General Public License for more details.
1241 +//
1242 +// You should have received a copy of the GNU Lesser General Public
1243 +// License along with this library; if not, write to the Free Software
1244 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
1245 +//
1246 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
1247 +//
1248 +// Author : Anthony GEAY (EDF R&D)
1249 +
1250 +#include "Interpolation1D0D.hxx"
1251 +#include "Interpolation1D0D.txx"
1252 +
1253 +namespace INTERP_KERNEL
1254 +{
1255 +  /**
1256 +   * \class Interpolation1D0D
1257 +   * \brief Class used to calculate the interpolation between a 1D mesh and 0D mesh (in 3D space)
1258 +   * Can be seen as a specialization of Interpolation3D, and allows notably the adjustment of bounind boxes.
1259 +   * 
1260 +   */
1261 +
1262 +  Interpolation1D0D::Interpolation1D0D()
1263 +  {}
1264 +
1265 +  Interpolation1D0D::Interpolation1D0D(const InterpolationOptions& io):Interpolation<Interpolation1D0D>(io)
1266 +  {}
1267 +
1268 +  /**
1269 +   * Inspired from PlanarIntersector<MyMeshType,MyMatrix>::adjustBoundingBoxes
1270 +   */
1271 +  void Interpolation1D0D::adjustBoundingBoxes(std::vector<double>& bbox)
1272 +  {
1273 +    const int SPACE_DIM = 3;
1274 +    const double adj(getPrecision());// here precision is used instead of getBoundingBoxAdjustment and getBoundingBoxAdjustmentAbs because in the context only precision is relevant
1275 +
1276 +    long size = bbox.size()/(2*SPACE_DIM);
1277 +    for (int i=0; i<size; i++)
1278 +      {
1279 +        for(int idim=0; idim<SPACE_DIM; idim++)
1280 +          {
1281 +            bbox[i*2*SPACE_DIM+2*idim  ] -= adj;
1282 +            bbox[i*2*SPACE_DIM+2*idim+1] += adj;
1283 +          }
1284 +      }
1285 +  }
1286 +}
1287 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation1D0D.hxx MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation1D0D.hxx
1288 --- MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation1D0D.hxx     1970-01-01 01:00:00.000000000 +0100
1289 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation1D0D.hxx     2018-04-19 17:25:17.637795380 +0200
1290 @@ -0,0 +1,45 @@
1291 +// Copyright (C) 2018  CEA/DEN, EDF R&D
1292 +//
1293 +// This library is free software; you can redistribute it and/or
1294 +// modify it under the terms of the GNU Lesser General Public
1295 +// License as published by the Free Software Foundation; either
1296 +// version 2.1 of the License, or (at your option) any later version.
1297 +//
1298 +// This library is distributed in the hope that it will be useful,
1299 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
1300 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1301 +// Lesser General Public License for more details.
1302 +//
1303 +// You should have received a copy of the GNU Lesser General Public
1304 +// License along with this library; if not, write to the Free Software
1305 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
1306 +//
1307 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
1308 +//
1309 +// Author : A Geay (EDF R&D)
1310 +
1311 +#ifndef __INTERPOLATION1D0D_HXX__
1312 +#define __INTERPOLATION1D0D_HXX__
1313 +
1314 +#include "INTERPKERNELDefines.hxx"
1315 +#include "Interpolation.hxx"
1316 +#include "NormalizedUnstructuredMesh.hxx"
1317 +#include "InterpolationOptions.hxx"
1318 +
1319 +#include <vector>
1320 +
1321 +namespace INTERP_KERNEL
1322 +{
1323 +  class INTERPKERNEL_EXPORT Interpolation1D0D : public Interpolation<Interpolation1D0D>
1324 +  {
1325 +  public:
1326 +    Interpolation1D0D();
1327 +    Interpolation1D0D(const InterpolationOptions& io);
1328 +    template<class MyMeshType, class MatrixType>
1329 +    int interpolateMeshes(const MyMeshType& srcMesh, const MyMeshType& targetMesh, MatrixType& result, const std::string& method);
1330 +  private:
1331 +    void adjustBoundingBoxes(std::vector<double>& bbox);
1332 +  };
1333 +}
1334 +
1335 +#endif
1336 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation1D0D.txx MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation1D0D.txx
1337 --- MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation1D0D.txx     1970-01-01 01:00:00.000000000 +0100
1338 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation1D0D.txx     2018-04-19 17:25:17.423791150 +0200
1339 @@ -0,0 +1,123 @@
1340 +// Copyright (C) 2018  CEA/DEN, EDF R&D
1341 +//
1342 +// This library is free software; you can redistribute it and/or
1343 +// modify it under the terms of the GNU Lesser General Public
1344 +// License as published by the Free Software Foundation; either
1345 +// version 2.1 of the License, or (at your option) any later version.
1346 +//
1347 +// This library is distributed in the hope that it will be useful,
1348 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
1349 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1350 +// Lesser General Public License for more details.
1351 +//
1352 +// You should have received a copy of the GNU Lesser General Public
1353 +// License along with this library; if not, write to the Free Software
1354 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
1355 +//
1356 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
1357 +//
1358 +// Author : Anthony Geay (EDF R&D)
1359 +
1360 +#ifndef __INTERPOLATION1D0D_TXX__
1361 +#define __INTERPOLATION1D0D_TXX__
1362 +
1363 +#include "Interpolation1D0D.hxx"
1364 +#include "Interpolation.txx"
1365 +#include "MeshElement.txx"
1366 +#include "PointLocator3DIntersectorP0P0.txx"
1367 +#include "PointLocator3DIntersectorP0P1.txx"
1368 +#include "PointLocator3DIntersectorP1P0.txx"
1369 +#include "PointLocator3DIntersectorP1P1.txx"
1370 +#include "Log.hxx"
1371 +
1372 +#include "BBTree.txx"
1373 +
1374 +#include "InterpKernelAssert.hxx"
1375 +
1376 +namespace INTERP_KERNEL
1377 +{
1378 +  /**
1379 +   *  Very similar to Interpolation3D::interpolateMeshes, except for the bounding boxes that can be
1380 +   *  adjusted in a similar fashion as in InterpolationPlanar::performAdjustmentOfBB()
1381 +   **/
1382 +  template<class MyMeshType, class MatrixType>
1383 +  int Interpolation1D0D::interpolateMeshes(const MyMeshType& srcMesh, const MyMeshType& targetMesh, MatrixType& result, const std::string& method)
1384 +  {
1385 +#if __cplusplus >= 201103L
1386 +    constexpr int SPACEDIM=MyMeshType::MY_SPACEDIM;
1387 +    using ConnType=typename MyMeshType::MyConnType;
1388 +    IKAssert(SPACEDIM==3);
1389 +
1390 +    if(InterpolationOptions::getIntersectionType() != PointLocator)
1391 +      INTERP_KERNEL::Exception("Invalid 1D/0D intersection type specified : must be PointLocator.");
1392 +
1393 +    std::string methC ( InterpolationOptions::filterInterpolationMethod(method) );
1394 +    if(methC!="P1P1")
1395 +      throw Exception("Invalid method chosen must be in \"P1P1\".");
1396 +
1397 +    const double epsilon(getPrecision());
1398 +    // create MeshElement objects corresponding to each element of the two meshes
1399 +    const unsigned long numSrcElems(srcMesh.getNumberOfElements()), numTargetElems(targetMesh.getNumberOfElements());
1400 +
1401 +    LOG(2, "Source mesh has " << numSrcElems << " elements and target mesh has " << numTargetElems << " elements ");
1402 +
1403 +    std::vector<MeshElement<ConnType>*> srcElems(numSrcElems);
1404 +
1405 +    std::map<MeshElement<ConnType>*, int> indices;
1406 +
1407 +    for(unsigned long i = 0 ; i < numSrcElems ; ++i)
1408 +      srcElems[i] = new MeshElement<ConnType>(i, srcMesh);       
1409 +
1410 +    // create empty maps for all source elements
1411 +    result.resize(targetMesh.getNumberOfNodes());
1412 +
1413 +    // create BBTree structure
1414 +    // - get bounding boxes
1415 +    std::vector<double> bboxes(2*SPACEDIM*numSrcElems);
1416 +    int* srcElemIdx = new int[numSrcElems];
1417 +    for(unsigned long i = 0; i < numSrcElems ; ++i)
1418 +      {
1419 +        // get source bboxes in right order
1420 +        srcElems[i]->getBoundingBox()->toCompactData(bboxes.data()+6*i);
1421 +        srcElemIdx[i] = srcElems[i]->getIndex();
1422 +      }
1423 +
1424 +    adjustBoundingBoxes(bboxes);
1425 +    const double *bboxPtr(nullptr);
1426 +    if(numSrcElems>0)
1427 +      bboxPtr=&bboxes[0];
1428 +    BBTree<SPACEDIM,ConnType> tree(bboxPtr, srcElemIdx, 0, numSrcElems);
1429 +    const ConnType *trgConnPtr(targetMesh.getConnectivityPtr()),*trgConnIPtr(targetMesh.getConnectivityIndexPtr());
1430 +    const ConnType *srcConnPtr(srcMesh.getConnectivityPtr()),*srcConnIPtr(srcMesh.getConnectivityIndexPtr());
1431 +    const double *trgCooPtr(targetMesh.getCoordinatesPtr()),*srcCooPtr(srcMesh.getCoordinatesPtr());
1432 +    for(unsigned long i = 0; i < numTargetElems; ++i)
1433 +      {
1434 +        IKAssert(trgConnIPtr[i+1]==i+1 && trgConnIPtr[i]==i);
1435 +        std::vector<ConnType> srcSegCondidates;
1436 +        const double *trgCellPosition(trgCooPtr+SPACEDIM*trgConnPtr[i]);
1437 +        typename MatrixType::value_type& resRow(result[trgConnPtr[i]]);
1438 +        tree.getElementsAroundPoint(trgCellPosition, srcSegCondidates);
1439 +        for(auto srcSeg: srcSegCondidates)
1440 +          {
1441 +            IKAssertMsg(srcConnIPtr[srcSeg+1]==2*(srcSeg+1) && srcConnIPtr[srcSeg]==2*srcSeg,"Only implemented for linear 1D source");
1442 +            double bc0(0.),bc1(0.);
1443 +            ConnType srcNode0(srcConnPtr[2*srcSeg]),srcNode1(srcConnPtr[2*srcSeg+1]);
1444 +            if(IsPointOn3DSeg(srcCooPtr+SPACEDIM*srcNode0,srcCooPtr+SPACEDIM*srcNode1,trgCellPosition,epsilon,bc0,bc1))
1445 +              {
1446 +                resRow.insert(std::make_pair(srcNode0,bc0));
1447 +                resRow.insert(std::make_pair(srcNode1,bc1));
1448 +                continue;
1449 +              }
1450 +          }
1451 +      }
1452 +    delete [] srcElemIdx;
1453 +    for(unsigned long i = 0 ; i < numSrcElems ; ++i)
1454 +      delete srcElems[i];
1455 +    return srcMesh.getNumberOfNodes();
1456 +  }
1457 +#else
1458 +  throw INTERP_KERNEL::Exception("Go buying a C++11 compiler :)");
1459 +#endif
1460 +}
1461 +
1462 +#endif
1463 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation2D1D.txx MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation2D1D.txx
1464 --- MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation2D1D.txx     2018-04-19 17:04:36.676221506 +0200
1465 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation2D1D.txx     2018-04-19 17:25:17.485792376 +0200
1466 @@ -94,7 +94,7 @@
1467  
1468      /****************************************************************/
1469      /* Create a search tree based on the bounding boxes             */
1470 -    /* Instanciate the intersector and initialise the result vector */
1471 +    /* Instantiate the intersector and initialise the result vector */
1472      /****************************************************************/
1473  
1474      long start_filtering=clock();
1475 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation2DCurve.hxx MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation2DCurve.hxx
1476 --- MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation2DCurve.hxx  2018-04-19 17:04:36.676221506 +0200
1477 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation2DCurve.hxx  2018-04-19 17:25:17.521793087 +0200
1478 @@ -31,7 +31,7 @@
1479    public:
1480      Interpolation2DCurve();
1481      Interpolation2DCurve(const InterpolationOptions& io);
1482 -    // geometric precision, intersection tolerance, coice of the median line,
1483 +    // geometric precision, intersection tolerance, choice of the median line,
1484      void setOptions(double precision, double tolerance, double medianLine);
1485    };
1486  }
1487 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation3DSurf.cxx MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation3DSurf.cxx
1488 --- MEDCOUPLING_old/src/INTERP_KERNEL/Interpolation3DSurf.cxx   2018-04-19 17:04:36.676221506 +0200
1489 +++ MEDCOUPLING_new/src/INTERP_KERNEL/Interpolation3DSurf.cxx   2018-04-19 17:25:17.640795439 +0200
1490 @@ -42,13 +42,13 @@
1491       - Values: between 0 and 1.
1492       - Default: 0.5.
1493       -# doRotat: rotate the coordinate system such that the target cell is in the Oxy plane.
1494 -     - Values: true (necessarilly if Intersection_type=Triangle), false.
1495 +     - Values: true (necessarily if Intersection_type=Triangle), false.
1496       - Default: true (as default Intersection_type=Triangle)
1497       -# precision: Level of precision of the computations is precision times the characteristic size of the mesh.
1498       - Values: positive real number.
1499       - Default: 1.0E-12.
1500       -# printLevel: Level of verboseness during the computations.
1501 -     - Values: interger between 0 and 3.
1502 +     - Values: integer between 0 and 3.
1503       - Default: 0.
1504    */
1505    void Interpolation3DSurf::setOptions(double precision, int printLevel, double medianPlan, 
1506 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationCurve.txx MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationCurve.txx
1507 --- MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationCurve.txx    2018-04-19 17:04:36.676221506 +0200
1508 +++ MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationCurve.txx    2018-04-19 17:25:17.384790379 +0200
1509 @@ -168,7 +168,7 @@
1510        throw INTERP_KERNEL::Exception("Invalid method specified ! Must be in : \"P0P0\" \"P0P1\" \"P1P0\" or \"P1P1\"");
1511      /****************************************************************/
1512      /* Create a search tree based on the bounding boxes             */
1513 -    /* Instanciate the intersector and initialise the result vector */
1514 +    /* Instantiate the intersector and initialise the result vector */
1515      /****************************************************************/
1516   
1517      long start_filtering=clock();
1518 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationOptions.cxx MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationOptions.cxx
1519 --- MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationOptions.cxx  2018-04-19 17:04:36.676221506 +0200
1520 +++ MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationOptions.cxx  2018-04-19 17:25:17.660795835 +0200
1521 @@ -96,12 +96,12 @@
1522  
1523  double INTERP_KERNEL::InterpolationOptions::getArcDetectionPrecision() const
1524  {
1525 -  return INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision;
1526 +  return INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::getArcDetectionPrecision();
1527  }
1528  
1529  void INTERP_KERNEL::InterpolationOptions::setArcDetectionPrecision(double p)
1530  {
1531 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=p;
1532 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(p);
1533  }
1534  
1535  std::string INTERP_KERNEL::InterpolationOptions::getIntersectionTypeRepr() const
1536 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationPlanar.hxx MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationPlanar.hxx
1537 --- MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationPlanar.hxx   2018-04-19 17:04:36.676221506 +0200
1538 +++ MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationPlanar.hxx   2018-04-19 17:25:17.387790438 +0200
1539 @@ -37,7 +37,7 @@
1540      InterpolationPlanar();
1541      InterpolationPlanar(const InterpolationOptions & io);
1542  
1543 -    // geometric precision, debug print level, coice of the median plane, intersection etc ...
1544 +    // geometric precision, debug print level, choice of the median plane, intersection etc ...
1545      void setOptions(double precision, int printLevel,
1546                      IntersectionType intersectionType, int orientation=0);
1547      
1548 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationPlanar.txx MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationPlanar.txx
1549 --- MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationPlanar.txx   2018-04-19 17:04:36.676221506 +0200
1550 +++ MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationPlanar.txx   2018-04-19 17:25:17.370790102 +0200
1551 @@ -79,7 +79,7 @@
1552     *   - Values: positive real number.
1553     *   - Default: 1.0E-12.
1554     *  -# PrintLevel: Level of verboseness during the computations.
1555 -   *   - Values: interger between 0 and 3.
1556 +   *   - Values: integer between 0 and 3.
1557     *   - Default: 0.
1558     */
1559    template<class RealPlanar>
1560 @@ -376,7 +376,7 @@
1561        throw INTERP_KERNEL::Exception("Invalid method specified or intersection type ! Must be in : \"P0P0\" \"P0P1\" \"P1P0\" or \"P1P1\"");
1562      /****************************************************************/
1563      /* Create a search tree based on the bounding boxes             */
1564 -    /* Instanciate the intersector and initialise the result vector */
1565 +    /* Instantiate the intersector and initialise the result vector */
1566      /****************************************************************/
1567   
1568      long start_filtering=clock();
1569 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationUtils.hxx MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationUtils.hxx
1570 --- MEDCOUPLING_old/src/INTERP_KERNEL/InterpolationUtils.hxx    2018-04-19 17:04:36.676221506 +0200
1571 +++ MEDCOUPLING_new/src/INTERP_KERNEL/InterpolationUtils.hxx    2018-04-19 17:25:17.449791664 +0200
1572 @@ -68,7 +68,7 @@
1573    /*   calcul la surface d'un triangle                  */
1574    /*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
1575  
1576 -  inline double Surf_Tri(const double* P_1,const double* P_2,const double* P_3)
1577 +  inline double Surf_Tri(const double *P_1,const double *P_2,const double *P_3)
1578    {
1579      double A=(P_3[1]-P_1[1])*(P_2[0]-P_1[0])-(P_2[1]-P_1[1])*(P_3[0]-P_1[0]);
1580      double Surface = 0.5*fabs(A);
1581 @@ -83,9 +83,9 @@
1582    //fonction qui calcul le determinant des vecteurs: P3P1 et P3P2
1583    //(cf doc CGAL).
1584  
1585 -  inline double mon_determinant(const double* P_1,
1586 -                                const double*  P_2,
1587 -                                const double* P_3)
1588 +  inline double mon_determinant(const double *P_1,
1589 +                                const double *P_2,
1590 +                                const double *P_3)
1591    {
1592      double mon_det=(P_1[0]-P_3[0])*(P_2[1]-P_3[1])-(P_2[0]-P_3[0])*(P_1[1]-P_3[1]);
1593      return mon_det;
1594 @@ -98,8 +98,7 @@
1595    {
1596      double X=P_1[0]-P_2[0];
1597      double Y=P_1[1]-P_2[1];
1598 -    double norme=sqrt(X*X+Y*Y);
1599 -    return norme;
1600 +    return sqrt(X*X+Y*Y);
1601    }
1602  
1603    /*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
1604 @@ -537,6 +536,29 @@
1605    }
1606  
1607    /*!
1608 +   * Compute barycentric coords of point \a point relative to segment S [segStart,segStop] in 3D space.
1609 +   * If point \a point is further from S than eps false is returned.
1610 +   * If point \a point projection on S is outside S false is also returned.
1611 +   * If point \a point is closer from S than eps and its projection inside S true is returned and \a bc0 and \a bc1 output parameter set.
1612 +   */
1613 +  inline bool IsPointOn3DSeg(const double segStart[3], const double segStop[3], const double point[3], double eps, double& bc0, double& bc1)
1614 +  {
1615 +    double AB[3]={segStop[0]-segStart[0],segStop[1]-segStart[1],segStop[2]-segStart[2]},AP[3]={point[0]-segStart[0],point[1]-segStart[1],point[2]-segStart[2]};
1616 +    double l_AB(sqrt(AB[0]*AB[0]+AB[1]*AB[1]+AB[2]*AB[2]));
1617 +    double AP_dot_AB((AP[0]*AB[0]+AP[1]*AB[1]+AP[2]*AB[2])/(l_AB*l_AB));
1618 +    double projOfPOnAB[3]={segStart[0]+AP_dot_AB*AB[0],segStart[1]+AP_dot_AB*AB[1],segStart[2]+AP_dot_AB*AB[2]};
1619 +    double V_dist_P_AB[3]={point[0]-projOfPOnAB[0],point[1]-projOfPOnAB[1],point[2]-projOfPOnAB[2]};
1620 +    double dist_P_AB(sqrt(V_dist_P_AB[0]*V_dist_P_AB[0]+V_dist_P_AB[1]*V_dist_P_AB[1]+V_dist_P_AB[2]*V_dist_P_AB[2]));
1621 +    if(dist_P_AB>=eps)
1622 +      return false;//to far from segment [segStart,segStop]
1623 +    if(AP_dot_AB<-eps || AP_dot_AB>1.+eps)
1624 +      return false;
1625 +    AP_dot_AB=std::max(AP_dot_AB,0.); AP_dot_AB=std::min(AP_dot_AB,1.);
1626 +    bc0=1.-AP_dot_AB; bc1=AP_dot_AB;
1627 +    return true;
1628 +  }
1629 +
1630 +  /*!
1631     * Calculate pseudo barycentric coordinates of a point p with respect to the quadrangle vertices.
1632     * This method makes the assumption that:
1633     *  - spacedim == meshdim (2 here).
1634 @@ -837,7 +859,7 @@
1635    }
1636  
1637    /*! Function that compares two angles from the values of the pairs (sin,cos)*/
1638 -  /*! Angles are considered in [0, 2Pi] bt are not computed explicitely */
1639 +  /*! Angles are considered in [0, 2Pi] bt are not computed explicitly */
1640    class AngleLess
1641    {
1642    public:
1643 @@ -1048,9 +1070,9 @@
1644      // just to be able to compile
1645    }
1646    
1647 -  /*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _*/
1648 -  /* Checks wether point A is inside the quadrangle BCDE */
1649 -  /*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _*/  
1650 +  /*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
1651 +  /* Checks whether point A is inside the quadrangle BCDE */
1652 +  /*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
1653  
1654    template<int dim> inline double check_inside(const double* A,const double* B,const double* C,const double* D,
1655                                                 const double* E,double* ABC, double* ADE)
1656 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/MeshElement.txx MEDCOUPLING_new/src/INTERP_KERNEL/MeshElement.txx
1657 --- MEDCOUPLING_old/src/INTERP_KERNEL/MeshElement.txx   2018-04-19 17:04:36.678221546 +0200
1658 +++ MEDCOUPLING_new/src/INTERP_KERNEL/MeshElement.txx   2018-04-19 17:25:17.535793364 +0200
1659 @@ -61,8 +61,6 @@
1660      delete _box;
1661    }
1662  
1663 -  
1664 -
1665    /////////////////////////////////////////////////////////////////////
1666    /// ElementBBoxOrder                                    /////////////
1667    /////////////////////////////////////////////////////////////////////
1668 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/PlanarIntersector.txx MEDCOUPLING_new/src/INTERP_KERNEL/PlanarIntersector.txx
1669 --- MEDCOUPLING_old/src/INTERP_KERNEL/PlanarIntersector.txx     2018-04-19 17:04:36.678221546 +0200
1670 +++ MEDCOUPLING_new/src/INTERP_KERNEL/PlanarIntersector.txx     2018-04-19 17:25:17.604794728 +0200
1671 @@ -93,7 +93,7 @@
1672    }
1673  
1674    /*!
1675 -    Computes the bouding box of a given element. iP in numPol mode.
1676 +    Computes the bounding box of a given element. iP in numPol mode.
1677    */
1678    template<class MyMeshType, class MyMatrix>
1679    void PlanarIntersector<MyMeshType,MyMatrix>::getElemBB(double* bb, const MyMeshType& mesh, ConnType iP, ConnType nb_nodes)
1680 @@ -380,7 +380,7 @@
1681                Coords_B[SPACEDIM*i_B+idim] -=  proj*linear_comb[idim];
1682            }
1683          
1684 -        //Buid the matrix sending  A into the Oxy plane and apply it to A and B  
1685 +        //Build the matrix sending  A into the Oxy plane and apply it to A and B  
1686          if(do_rotate)
1687            {
1688              TranslationRotationMatrix rotation;
1689 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/PointLocator2DIntersector.txx MEDCOUPLING_new/src/INTERP_KERNEL/PointLocator2DIntersector.txx
1690 --- MEDCOUPLING_old/src/INTERP_KERNEL/PointLocator2DIntersector.txx     2018-04-19 17:04:36.679221566 +0200
1691 +++ MEDCOUPLING_new/src/INTERP_KERNEL/PointLocator2DIntersector.txx     2018-04-19 17:25:17.513792929 +0200
1692 @@ -118,7 +118,7 @@
1693                                                 const double *             sourceTria,
1694                                                 std::vector<double>&       res)
1695    {
1696 -    throw INTERP_KERNEL::Exception("intersectGeoBary incompatible with PointLocator. Desactivate P1P0Bary to avoid the problem");
1697 +    throw INTERP_KERNEL::Exception("intersectGeoBary incompatible with PointLocator. Deactivate P1P0Bary to avoid the problem");
1698      return 0.;
1699    }
1700  
1701 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/PolygonAlgorithms.txx MEDCOUPLING_new/src/INTERP_KERNEL/PolygonAlgorithms.txx
1702 --- MEDCOUPLING_old/src/INTERP_KERNEL/PolygonAlgorithms.txx     2018-04-19 17:04:36.679221566 +0200
1703 +++ MEDCOUPLING_new/src/INTERP_KERNEL/PolygonAlgorithms.txx     2018-04-19 17:25:17.599794629 +0200
1704 @@ -37,7 +37,7 @@
1705    /*************************************************************/
1706    /* Computes the 3D intersection between two COPLANAR         */
1707    /* Segments [A,B] and [C,D], stores the result in V.         */
1708 -  /* If A belongs to [CD] then the vertex E (preceeding A)     */
1709 +  /* If A belongs to [CD] then the vertex E (preceding A)      */
1710    /* is used to decide if the crossing is real. If A coincides */
1711    /* with C or D, a special treatment is performed             */
1712    /*************************************************************/
1713 @@ -71,7 +71,7 @@
1714              {
1715                if(distance2<DIM>(A,D)<_epsilon)
1716                  crossprod<DIM>(A,C,E,_vdouble);//store the crossprod between vectors AC and AE (E=vertex preceding A)                     
1717 -              return false;//case of paralell segments
1718 +              return false;//case of parallel segments
1719              }
1720            case 3://beware AB and CD may belong to a vertical plane
1721              det = determinant(&AB[1],&DC[1]);//determinant of the last two coefficients
1722 @@ -94,7 +94,7 @@
1723                    {
1724                      if(distance2<DIM>(A,D)<_epsilon)
1725                        crossprod<DIM>(A,C,E,_vdouble);//store the crossprod between vectors AC and AE (E=vertex preceding A)                     
1726 -                    return false;//case of paralell segments
1727 +                    return false;//case of parallel segments
1728                    }
1729                }
1730            }
1731 @@ -123,7 +123,7 @@
1732                  return true;
1733                }
1734              else if( same_side > _epsilon ) _terminus= !_is_in_intersection;//reflexion
1735 -            else //separation of overlaping edges
1736 +            else //separation of overlapping edges
1737                {
1738                  if(_Inter.empty() ) _terminus=true;
1739                  else if(!_is_in_intersection)
1740 @@ -147,7 +147,7 @@
1741                  return true;
1742                }
1743              else if(fabs(in_between)<=_epsilon && dotprod<DIM>(Vdoublebis,Vdoublebis) > _epsilon)
1744 -              //ie _vdouble=0, separation of overlaping edges at a double point
1745 +              //ie _vdouble=0, separation of overlapping edges at a double point
1746                {
1747                  //crossprod<DIM>(A,E,B,_vdouble); 
1748                  if(dotprod<DIM>(_vdouble,Vdoublebis) >=_epsilon )//crossing
1749 @@ -269,7 +269,7 @@
1750    /*******************************************************/
1751    /* adds the possible crossings between segments [A,B] (with end-point global indices i and i_next) */
1752    /*and segments [C,D] and [E,F] to the list inter and updates _End_segments */
1753 -  /* In cases of ambiguity, the vertex G is used to decide wether the crossing should be accepted */
1754 +  /* In cases of ambiguity, the vertex G is used to decide whether the crossing should be accepted */
1755    /*******************************************************/
1756    template<int DIM>
1757    inline void PolygonAlgorithms<DIM>::addCrossings( const double * A, const double * B, int i , int i_next,
1758 @@ -405,7 +405,7 @@
1759  
1760      std::multimap< int, std::pair< int,bool> >::iterator mi;
1761  
1762 -    /********** Initalisation of events with P1 and P2 vertices ************/
1763 +    /********** Initialisation of events with P1 and P2 vertices ************/
1764      for(i_loc=0;i_loc<N1;i_loc++)
1765        mmap_events.insert(std::make_pair(&P_1[DIM*i_loc],i_loc));
1766      for(i_loc=0;i_loc<N2;i_loc++)
1767 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/SplitterTetra.hxx MEDCOUPLING_new/src/INTERP_KERNEL/SplitterTetra.hxx
1768 --- MEDCOUPLING_old/src/INTERP_KERNEL/SplitterTetra.hxx 2018-04-19 17:04:36.680221586 +0200
1769 +++ MEDCOUPLING_new/src/INTERP_KERNEL/SplitterTetra.hxx 2018-04-19 17:25:17.497792613 +0200
1770 @@ -88,7 +88,7 @@
1771      };
1772    
1773    // Each sub-node is the barycenter of 4 other nodes.
1774 -  // For the faces, these are on the orignal mesh.
1775 +  // For the faces, these are on the original mesh.
1776    // For the barycenter, the four face sub-nodes are used.
1777    static const int GENERAL_24_SUB_NODES[28] = 
1778      {
1779 @@ -175,7 +175,7 @@
1780  
1781    // Define 8 hexahedral subzones as in Grandy, p449
1782    // the values correspond to the nodes that correspond to nodes 1,2,3,4,5,6,7,8 in the subcell
1783 -  // For the correspondance of the nodes, see the GENERAL_48_SUB_NODES table in calculateSubNodes
1784 +  // For the correspondence of the nodes, see the GENERAL_48_SUB_NODES table in calculateSubNodes
1785    static const int GENERAL_48_SUBZONES[64] = 
1786      {
1787        0,8,21,12,9,20,26,22,
1788 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/SplitterTetra.txx MEDCOUPLING_new/src/INTERP_KERNEL/SplitterTetra.txx
1789 --- MEDCOUPLING_old/src/INTERP_KERNEL/SplitterTetra.txx 2018-04-19 17:04:36.680221586 +0200
1790 +++ MEDCOUPLING_new/src/INTERP_KERNEL/SplitterTetra.txx 2018-04-19 17:25:17.465791980 +0200
1791 @@ -1108,7 +1108,7 @@
1792    {
1793      // The two nodes of the original mesh cell used in each tetrahedron.
1794      // The tetrahedra all have nodes (cellCenter, faceCenter, edgeNode1, edgeNode2)
1795 -    // For the correspondance of the nodes, see the GENERAL_48_SUB_NODES table in calculateSubNodes
1796 +    // For the correspondence of the nodes, see the GENERAL_48_SUB_NODES table in calculateSubNodes
1797      
1798      // nodes to use for tetrahedron
1799      const double* nodes[4];
1800 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangle.hxx MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangle.hxx
1801 --- MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangle.hxx   2018-04-19 17:04:36.680221586 +0200
1802 +++ MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangle.hxx   2018-04-19 17:25:17.390790498 +0200
1803 @@ -89,7 +89,7 @@
1804     * For the other two halfstrips (above the xy and yz edges), other double products are used, which 
1805     * are stored in the table DP_FOR_HALFSTRIP_INTERSECTION. This allows us to treat
1806     * all the edges equally, avoiding switch() - statements. It is the careful choice of order of the enumeration types that makes this
1807 -   * possible. Notably, there is a correspondance between the TetraEdge type and the DoubleProduct type (see Grandy, table III) that
1808 +   * possible. Notably, there is a correspondence between the TetraEdge type and the DoubleProduct type (see Grandy, table III) that
1809     * is used throughout the code, permitting statements such as DoubleProduct(some_edge) to work.
1810     *    When an intersection point has been detected it is calculated with a corresponding calc* - method in the cases where it
1811     * is not known directly. It is then added to the polygon A and/or B as necessary.
1812 @@ -347,7 +347,7 @@
1813  
1814      static const double TRIPLE_PRODUCT_ANGLE_THRESHOLD;
1815  
1816 -    // correspondance facet - double product
1817 +    // correspondence facet - double product
1818      // Grandy, table IV
1819      static const DoubleProduct DP_FOR_SEG_FACET_INTERSECTION[12];
1820  
1821 @@ -362,14 +362,14 @@
1822      // for Segment-Facet and Segment-Edge intersections
1823      static const int DP_INDEX[12];
1824  
1825 -    // correspondance edge - corners
1826 +    // correspondence edge - corners
1827      static const TetraCorner CORNERS_FOR_EDGE[12];
1828  
1829 -    // correspondance edge - facets
1830 +    // correspondence edge - facets
1831      // facets shared by each edge
1832      static const TetraFacet FACET_FOR_EDGE[12];
1833  
1834 -    // correspondance edge - corners
1835 +    // correspondence edge - corners
1836      static const TetraEdge EDGES_FOR_CORNER[12];
1837     
1838      // double products used in segment-halfstrip test
1839 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangleInline.hxx MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangleInline.hxx
1840 --- MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangleInline.hxx     2018-04-19 17:04:36.680221586 +0200
1841 +++ MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangleInline.hxx     2018-04-19 17:25:17.491792494 +0200
1842 @@ -170,7 +170,7 @@
1843    
1844    //  assert(edge < H01);
1845    
1846 -  // correspondance edge - triple products
1847 +  // correspondence edge - triple products
1848    // for edges OX, ..., ZX (Grandy, table III)
1849    static const TetraCorner TRIPLE_PRODUCTS[12] = 
1850      {
1851 @@ -212,8 +212,8 @@
1852  
1853  inline bool TransformedTriangle::testSegmentIntersectsFacet(const TriSegment seg, const TetraFacet facet) const
1854  {
1855 -  // use correspondance facet a = 0 <=> offset for coordinate a in _coords
1856 -  // and also correspondance segment AB => corner A
1857 +  // use correspondence facet a = 0 <=> offset for coordinate a in _coords
1858 +  // and also correspondence segment AB => corner A
1859    const double coord1 = _coords[5*seg + facet];
1860    const double coord2 = _coords[5*( (seg + 1) % 3) + facet];
1861    
1862 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx
1863 --- MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx  2018-04-19 17:04:36.680221586 +0200
1864 +++ MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx  2018-04-19 17:25:17.526793186 +0200
1865 @@ -28,10 +28,10 @@
1866  {
1867  
1868    // ----------------------------------------------------------------------------------
1869 -  //  Correspondance tables describing all the variations of formulas. 
1870 +  //  Correspondence tables describing all the variations of formulas. 
1871    // ----------------------------------------------------------------------------------
1872  
1873 -  /// \brief Correspondance between facets and double products.
1874 +  /// \brief Correspondence between facets and double products.
1875    ///
1876    /// This table encodes Grandy, table IV. Use 3*facet + {0,1,2} as index
1877    const TransformedTriangle::DoubleProduct TransformedTriangle::DP_FOR_SEG_FACET_INTERSECTION[12] = 
1878 @@ -78,7 +78,7 @@
1879        9, 10, 11  // XYZ
1880      };
1881  
1882 -  /// \brief Correspondance edge - corners.
1883 +  /// \brief Correspondence edge - corners.
1884    ///
1885    /// Gives the two corners associated with each edge
1886    /// Use 2*edge + {0, 1} as index
1887 @@ -92,7 +92,7 @@
1888        Z, X  // ZX
1889      };
1890  
1891 -  /// \brief Correspondance edge - facets.
1892 +  /// \brief Correspondence edge - facets.
1893    ///
1894    /// Gives the two facets shared by and edge. Use 2*facet + {0, 1} as index
1895    const TransformedTriangle::TetraFacet TransformedTriangle::FACET_FOR_EDGE[12] =
1896 @@ -105,7 +105,7 @@
1897        OZX, XYZ  // ZX
1898      };
1899  
1900 -  /// \brief Correspondance corners - edges.
1901 +  /// \brief Correspondence corners - edges.
1902    ///
1903    /// Gives edges meeting at a given corner. Use 3*corner + {0,1,2} as index
1904    const TransformedTriangle::TetraEdge TransformedTriangle::EDGES_FOR_CORNER[12] =
1905 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangleMath.cxx MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangleMath.cxx
1906 --- MEDCOUPLING_old/src/INTERP_KERNEL/TransformedTriangleMath.cxx       2018-04-19 17:04:36.699221965 +0200
1907 +++ MEDCOUPLING_new/src/INTERP_KERNEL/TransformedTriangleMath.cxx       2018-04-19 17:25:17.452791723 +0200
1908 @@ -127,7 +127,7 @@
1909            }
1910        }
1911    
1912 -    // -- (2) check that each double product statisfies Grandy, [47], else set to 0
1913 +    // -- (2) check that each double product satisfies Grandy, [47], else set to 0
1914      for(TriSegment seg = PQ ; seg <= RP ; seg = TriSegment(seg + 1))
1915        {
1916          for(DoubleProduct dp = C_YZ ; dp <=  C_10 ; dp = DoubleProduct(dp + 1))
1917 @@ -270,7 +270,7 @@
1918            {
1919              const DoubleProduct dp = DP_FOR_DETERMINANT_EXPANSION[3*corner + (row - 1)];
1920  
1921 -            // get edge by using correspondance between Double Product and Edge
1922 +            // get edge by using correspondence between Double Product and Edge
1923              TetraEdge edge = TetraEdge(dp);
1924             
1925              // use edge only if it is surrounded by the surface
1926 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/VolSurfUser.cxx MEDCOUPLING_new/src/INTERP_KERNEL/VolSurfUser.cxx
1927 --- MEDCOUPLING_old/src/INTERP_KERNEL/VolSurfUser.cxx   2018-04-19 17:04:36.700221985 +0200
1928 +++ MEDCOUPLING_new/src/INTERP_KERNEL/VolSurfUser.cxx   2018-04-19 17:25:17.411790913 +0200
1929 @@ -246,7 +246,7 @@
1930    }
1931  
1932    /*!
1933 -   * \param [out] matrix contain a dense matrix of size 12 with 3 rows containing each 4 colums. This matrix is the reduction of 4x4 matrix but the last
1934 +   * \param [out] matrix contain a dense matrix of size 12 with 3 rows containing each 4 columns. This matrix is the reduction of 4x4 matrix but the last
1935     *              line containing [0,0,0,1] is omitted.
1936     */
1937    bool ComputeRotTranslationMatrixToPut3PointsOnOXY(const double *p0, const double *p1, const double *p2, double *matrix)
1938 diff -Naur MEDCOUPLING_old/src/INTERP_KERNEL/VolSurfUser.txx MEDCOUPLING_new/src/INTERP_KERNEL/VolSurfUser.txx
1939 --- MEDCOUPLING_old/src/INTERP_KERNEL/VolSurfUser.txx   2018-04-19 17:04:36.700221985 +0200
1940 +++ MEDCOUPLING_new/src/INTERP_KERNEL/VolSurfUser.txx   2018-04-19 17:25:17.435791387 +0200
1941 @@ -156,6 +156,7 @@
1942              
1943        case INTERP_KERNEL::NORM_PENTA6 :
1944        case INTERP_KERNEL::NORM_PENTA15 :
1945 +      case INTERP_KERNEL::NORM_PENTA18 :
1946          {
1947            int N1 = OTT<ConnType,numPol>::coo2C(connec[0]);
1948            int N2 = OTT<ConnType,numPol>::coo2C(connec[1]);
1949 diff -Naur MEDCOUPLING_old/src/INTERP_KERNELTest/CMakeLists.txt MEDCOUPLING_new/src/INTERP_KERNELTest/CMakeLists.txt
1950 --- MEDCOUPLING_old/src/INTERP_KERNELTest/CMakeLists.txt        2018-04-19 17:04:36.701222005 +0200
1951 +++ MEDCOUPLING_new/src/INTERP_KERNELTest/CMakeLists.txt        2018-04-19 17:25:17.930801172 +0200
1952 @@ -89,7 +89,7 @@
1953  TARGET_LINK_LIBRARIES(InterpKernelTestUtils interpkernel)
1954  ADD_LIBRARY(InterpKernelTest ${InterpKernelTest_SOURCES})
1955  
1956 -SET(InterpKernelTest_LIBS medcoupling interpkernel ${CPPUNIT_LIBRARIES})
1957 +SET(InterpKernelTest_LIBS medcouplingcpp interpkernel ${CPPUNIT_LIBRARIES})
1958  IF(NOT MEDCOUPLING_MICROMED)
1959    SET(InterpKernelTest_LIBS medloader ${InterpKernelTest_LIBS})
1960  ENDIF(NOT MEDCOUPLING_MICROMED)
1961 diff -Naur MEDCOUPLING_old/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx MEDCOUPLING_new/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx
1962 --- MEDCOUPLING_old/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx  2018-04-19 17:04:36.701222005 +0200
1963 +++ MEDCOUPLING_new/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx  2018-04-19 17:25:17.927801112 +0200
1964 @@ -79,7 +79,7 @@
1965      MEDCouplingNormalizedUnstructuredMesh<2,2> wrap_target_mesh(target_mesh_mc);
1966      // Go for interpolation...
1967      INTERP_KERNEL::Interpolation2D myInterpolator;
1968 -    //optionnal call to parametrize your interpolation. First precision, tracelevel, intersector wanted.
1969 +    //optional call to parametrize your interpolation. First precision, tracelevel, intersector wanted.
1970      myInterpolator.setPrecision(1e-7);
1971      myInterpolator.setPrintLevel(1);
1972      source_mesh->decrRef();
1973 diff -Naur MEDCOUPLING_old/src/INTERP_KERNELTest/MeshTestToolkit.txx MEDCOUPLING_new/src/INTERP_KERNELTest/MeshTestToolkit.txx
1974 --- MEDCOUPLING_old/src/INTERP_KERNELTest/MeshTestToolkit.txx   2018-04-19 17:04:36.701222005 +0200
1975 +++ MEDCOUPLING_new/src/INTERP_KERNELTest/MeshTestToolkit.txx   2018-04-19 17:25:17.943801429 +0200
1976 @@ -402,7 +402,7 @@
1977     * @param  mesh2path   the path to the file containing the target mesh, relative to {$MEDCOUPLING_ROOT_DIR}/share/resources/med/
1978     * @param  mesh2       the name of the target mesh
1979     * @param  correctVol  the total volume of the intersection of the two meshes
1980 -   * @param  prec        maximum relative error to be tolerated in volume comparisions
1981 +   * @param  prec        maximum relative error to be tolerated in volume comparisons
1982     * @param  doubleTest  if false, only the test with mesh 1 as the source mesh and mesh 2 as the target mesh will be performed
1983     *
1984     */
1985 @@ -467,7 +467,7 @@
1986     * @param  mesh1       the name of the source mesh
1987     * @param  mesh2       the name of the target mesh
1988     * @param  correctVol  the total volume of the intersection of the two meshes
1989 -   * @param  prec        maximum relative error to be tolerated in volume comparisions
1990 +   * @param  prec        maximum relative error to be tolerated in volume comparisons
1991     * @param  doubleTest  if false, only the test with mesh 1 as the source mesh and mesh 2 as the target mesh will be performed
1992     *
1993     */
1994 diff -Naur MEDCOUPLING_old/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx MEDCOUPLING_new/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx
1995 --- MEDCOUPLING_old/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx        2018-04-19 17:04:36.702222025 +0200
1996 +++ MEDCOUPLING_new/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx        2018-04-19 17:25:17.924801053 +0200
1997 @@ -349,7 +349,7 @@
1998        delete intersector; e2->decrRef(); e1->decrRef();
1999      }
2000    // Tangent intersection
2001 -  QUADRATIC_PLANAR::setPrecision(1e-5);
2002 +  QuadraticPlanarPrecision::setPrecision(1e-5);
2003    for(unsigned k=0;k<8;k++)
2004      {
2005        double center2[2]; center[0]=0.; center[1]=0.;
2006 @@ -361,7 +361,7 @@
2007        bool obvious,areOverlapped;
2008        intersector->areOverlappedOrOnlyColinears(0,obvious,areOverlapped);
2009        CPPUNIT_ASSERT(!obvious && !areOverlapped);
2010 -      CPPUNIT_ASSERT(intersector->intersect(0,v4,order,v3)); CPPUNIT_ASSERT(order); // order has no sence here because v4.size() expected to 1 but for valgrind serenity test.
2011 +      CPPUNIT_ASSERT(intersector->intersect(0,v4,order,v3)); CPPUNIT_ASSERT(order); // order has no sense here because v4.size() expected to 1 but for valgrind serenity test.
2012        CPPUNIT_ASSERT_EQUAL(1,(int)v4.size()); CPPUNIT_ASSERT_EQUAL(0,(int)v3.getNumberOfAssociations());
2013        CPPUNIT_ASSERT_DOUBLES_EQUAL(e1->getRadius(),Node::distanceBtw2Pt(e1->getCenter(),(*(v4[0]))),ADMISSIBLE_ERROR);
2014        CPPUNIT_ASSERT_DOUBLES_EQUAL(e2->getRadius(),Node::distanceBtw2Pt(e2->getCenter(),(*(v4[0]))),ADMISSIBLE_ERROR);
2015 @@ -370,7 +370,7 @@
2016        v4.clear(); v4.clear();
2017        delete intersector; e2->decrRef(); e1->decrRef();
2018      }
2019 -  QUADRATIC_PLANAR::setPrecision(1e-14);
2020 +  QuadraticPlanarPrecision::setPrecision(1e-14);
2021    // Extremities # 1
2022    for(unsigned k=0;k<8;k++)
2023      {
2024 diff -Naur MEDCOUPLING_old/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx MEDCOUPLING_new/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx
2025 --- MEDCOUPLING_old/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx        2018-04-19 17:04:36.702222025 +0200
2026 +++ MEDCOUPLING_new/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx        2018-04-19 17:25:17.961801784 +0200
2027 @@ -495,8 +495,8 @@
2028   */
2029  void QuadraticPlanarInterpTest::checkHighLevelFunctionTest1()
2030  {
2031 -  QUADRATIC_PLANAR::setPrecision(1e-12);
2032 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-9);
2033 +  QuadraticPlanarPrecision::setPrecision(1e-12);
2034 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-9);
2035    double coords[]={
2036      8.8334591186000004, 5.0999999999999996,
2037      7.1014083111000001, 6.0999999999999996,
2038 @@ -581,13 +581,13 @@
2039    pol=QuadraticPolygon::BuildArcCirclePolygon(nodes);
2040    pol->getBarycenter(tmp,tmp2);
2041    delete pol;
2042 -  QUADRATIC_PLANAR::setPrecision(1e-14);
2043 +  QuadraticPlanarPrecision::setPrecision(1e-14);
2044  }
2045  
2046  void QuadraticPlanarInterpTest::check1DInterpLin()
2047  {
2048 -  QUADRATIC_PLANAR::setPrecision(1e-7);
2049 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-9);
2050 +  QuadraticPlanarPrecision::setPrecision(1e-7);
2051 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-9);
2052    const int NB_OF_CELL_AXIAL_1=30;
2053    static const double Z_VALS_1[NB_OF_CELL_AXIAL_1+1]=
2054      { -0.1550 , -0.1356, -0.1162, -0.0969, -0.0775 ,-0.0581, -0.0387, -0.0194,  0.0000 , 0.0500, 
2055 @@ -631,7 +631,7 @@
2056        CPPUNIT_ASSERT_EQUAL(1,(int)m[i+2].size());
2057        CPPUNIT_ASSERT_DOUBLES_EQUAL(1.,m[i+2][i+9],1e-12);
2058      }
2059 -  QUADRATIC_PLANAR::setPrecision(1e-14);
2060 +  QuadraticPlanarPrecision::setPrecision(1e-14);
2061  }
2062  
2063  /*!
2064 @@ -639,8 +639,8 @@
2065   */
2066  void QuadraticPlanarInterpTest::checkEpsilonCoherency1()
2067  {
2068 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-12);
2069 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-5);
2070 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-12);
2071 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-5);
2072  
2073    const double pol1[]={
2074      -2.1083388455000001, 1.2172499999999999,
2075 @@ -709,8 +709,8 @@
2076  
2077  void QuadraticPlanarInterpTest::checkNonRegression2()
2078  {
2079 -  QUADRATIC_PLANAR::setPrecision(1e-12);
2080 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-9);
2081 +  QuadraticPlanarPrecision::setPrecision(1e-12);
2082 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-9);
2083    double coords1[]=
2084      {
2085        15.141499999899999, -26.226033271399999,
2086 @@ -801,8 +801,8 @@
2087  
2088  void QuadraticPlanarInterpTest::checkNonRegression4()
2089  {
2090 -  QUADRATIC_PLANAR::setPrecision(1e-12);
2091 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-9);
2092 +  QuadraticPlanarPrecision::setPrecision(1e-12);
2093 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-9);
2094    double coords1[]=
2095      {
2096        10.962340811000001, -22.417749999000002,
2097 @@ -857,8 +857,8 @@
2098  
2099  void QuadraticPlanarInterpTest::checkNonRegression5()
2100  {
2101 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-12);
2102 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-5);
2103 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-12);
2104 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-5);
2105    double coords1[]=
2106      {
2107        -1.7320508075000001, 1,
2108 @@ -913,8 +913,8 @@
2109  
2110  void QuadraticPlanarInterpTest::checkNonRegression6()
2111  {
2112 -  QUADRATIC_PLANAR::setPrecision(1e-12);
2113 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-5);
2114 +  QuadraticPlanarPrecision::setPrecision(1e-12);
2115 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-5);
2116    double coords1[]=
2117      {
2118        10.962340811000001, -22.417749999000002,
2119 @@ -965,8 +965,8 @@
2120  
2121  void QuadraticPlanarInterpTest::checkNonRegression7()
2122  {
2123 -  QUADRATIC_PLANAR::setPrecision(1e-5);
2124 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-5);
2125 +  QuadraticPlanarPrecision::setPrecision(1e-5);
2126 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-5);
2127    double coords1[]=
2128      {
2129        -2., 0,
2130 @@ -1017,8 +1017,8 @@
2131  
2132  void QuadraticPlanarInterpTest::checkNonRegression8()
2133  {
2134 -  QUADRATIC_PLANAR::setPrecision(1e-3);
2135 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-5);
2136 +  QuadraticPlanarPrecision::setPrecision(1e-3);
2137 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-5);
2138    double coords1[]=
2139      {
2140        -13.933240959000001, -28.559499999,
2141 @@ -1068,8 +1068,8 @@
2142  
2143  void QuadraticPlanarInterpTest::checkNonRegression9()
2144  {
2145 -  QUADRATIC_PLANAR::setPrecision(1e-7);
2146 -  QUADRATIC_PLANAR::setArcDetectionPrecision(1e-8);
2147 +  QuadraticPlanarPrecision::setPrecision(1e-7);
2148 +  QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-8);
2149    double coords1[]=
2150      {
2151        -0.04476229252902969, -0.085118027765365603,
2152 @@ -1119,8 +1119,8 @@
2153  
2154  void QuadraticPlanarInterpTest::checkNonRegression10()
2155  {
2156 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2157 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2158 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2159 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2160    double coords1[]=
2161      { -0.002269581957210453, -0.09851030343724453,
2162        -0.004268022334182935, -0.1059685844580936,
2163 @@ -1149,8 +1149,8 @@
2164  
2165  void QuadraticPlanarInterpTest::checkNonRegression11()
2166  {
2167 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2168 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2169 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2170 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2171    double coords1[]=
2172      { -0.002269581957210453, -0.09851030343724453,
2173        -0.004268022334182935, -0.1059685844580936,
2174 @@ -1200,8 +1200,8 @@
2175  
2176  void QuadraticPlanarInterpTest::checkNonRegression12()
2177  {
2178 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-6);
2179 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2180 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-6);
2181 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2182    double coords1[]=
2183      { -0.5032251558760915, -0.8716087994449138,
2184        -0.4695268343089433, -0.8806382374805872,
2185 @@ -1252,8 +1252,8 @@
2186  
2187  void QuadraticPlanarInterpTest::checkNonRegression13()
2188  {
2189 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2190 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-6);
2191 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2192 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-6);
2193  
2194    double coords_1[194]={ 
2195      0, 0, 0.304375, -7.454791178893722e-17, 0.2152256265236553, -0.2152256265236555, -5.591093384170291e-17, -0.304375, 
2196 @@ -1348,8 +1348,8 @@
2197  */
2198  void QuadraticPlanarInterpTest::checkNonRegression14()
2199  {
2200 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2201 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-6);
2202 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2203 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-6);
2204  
2205    double coords[72]={
2206      1.,0.,1.3,0.,-1.3,0.,-1.,0.,1.15,0.,0.,1.3,-1.15,0.,0.,1.,
2207 @@ -1418,8 +1418,8 @@
2208   */
2209  void QuadraticPlanarInterpTest::checkNonRegression15()
2210  {
2211 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2212 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-6);
2213 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2214 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-6);
2215  
2216    double coords[72]={
2217      1.,0.,1.3,0.,-1.3,0.,-1.,0.,1.15,0.,0.,1.3,-1.15,0.,0.,1.,
2218 @@ -1494,8 +1494,8 @@
2219   */
2220  void QuadraticPlanarInterpTest::checkNonRegression16()
2221  {
2222 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2223 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2224 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2225 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2226    double coords1[194]={ 
2227      0, 0, 0.304375, 0, 0.2152256265236554, 0.2152256265236554, 1.86369779472343e-17, 0.304375, 
2228      -0.2152256265236554, 0.2152256265236554, -0.304375, 3.727395589446861e-17, -0.2152256265236555, -0.2152256265236554, -5.591093384170291e-17, -0.304375, 
2229 @@ -1574,8 +1574,8 @@
2230   */
2231  void QuadraticPlanarInterpTest::checkNonRegression17()
2232  {
2233 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2234 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2235 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2236 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2237    double coords[16]={
2238      -1., 0., 1., 0. , 1.5, 0., -1.5, 0., 
2239      0. , 1., 1.25, 0., 0., 1.5, -1.25, 0.};
2240 @@ -1614,7 +1614,7 @@
2241  
2242  void QuadraticPlanarInterpTest::checkNormalize()
2243  {
2244 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-14);
2245 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-14);
2246    Node *n1=new Node(0.,0.);                Node *n4=new Node(0.,-3.);
2247    Node *n2=new Node(10.,0.);               Node *n5=new Node(10.,-3.);
2248    Node *n3=new Node(5.,10.);               Node *n6=new Node(5.,7.);
2249 @@ -1665,7 +1665,7 @@
2250  
2251  void QuadraticPlanarInterpTest::checkMakePartitionAbs1()
2252  {
2253 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-14);
2254 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-14);
2255    Node *n0=new Node(0.,0.);                Node *n4=new Node(0.5,0.25);
2256    Node *n1=new Node(0.,0.5);               Node *n5=new Node(0.3,1.2);
2257    Node *n2=new Node(1.,0.5);               Node *n6=new Node(1.1,1.3);
2258 diff -Naur MEDCOUPLING_old/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx MEDCOUPLING_new/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx
2259 --- MEDCOUPLING_old/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx        2018-04-19 17:04:36.702222025 +0200
2260 +++ MEDCOUPLING_new/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx        2018-04-19 17:25:17.951801587 +0200
2261 @@ -45,8 +45,8 @@
2262  
2263  void QuadraticPlanarInterpTest::checkNonRegressionOmar0000()
2264  {
2265 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2266 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2267 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2268 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2269    double coords[16]={
2270      -0.383022221559489, 0.3213938048432697, -0.5745333323392334, 0.4820907072649046, 0.5745333323392335, 0.4820907072649044, 0.383022221559489, 0.3213938048432696,
2271      -0.4787777769493612, 0.4017422560540872, 4.592273826833915e-17, 0.75, 0.4787777769493612, 0.401742256054087, 3.061515884555943e-17, 0.5 };
2272 @@ -71,8 +71,8 @@
2273  
2274  void QuadraticPlanarInterpTest::checkNonRegressionOmar0001()
2275  {
2276 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2277 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2278 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2279 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2280    double coords[16]={
2281      -0.383022221559489, 0.3213938048432697, -0.5745333323392334, 0.4820907072649046, 0.5745333323392335, 0.4820907072649044, 0.383022221559489, 0.3213938048432696,
2282      -0.4787777769493612, 0.4017422560540872, 4.592273826833915e-17, 0.75, 0.4787777769493612, 0.401742256054087, 3.061515884555943e-17, 0.5 };
2283 @@ -97,8 +97,8 @@
2284  
2285  void QuadraticPlanarInterpTest::checkNonRegressionOmar0002()
2286  {
2287 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2288 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2289 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2290 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2291    double coords[16]={
2292      -0.383022221559489, 0.3213938048432697, -0.5745333323392334, 0.4820907072649046, 0.5745333323392335, 0.4820907072649044, 0.383022221559489, 0.3213938048432696,
2293      -0.4787777769493612, 0.4017422560540872, 4.592273826833915e-17, 0.75, 0.4787777769493612, 0.401742256054087, 3.061515884555943e-17, 0.5 };
2294 @@ -123,8 +123,8 @@
2295  
2296  void QuadraticPlanarInterpTest::checkNonRegressionOmar0003()
2297  {
2298 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2299 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2300 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2301 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2302    double coords[16]={
2303      -0.3535533905932737, 0.3535533905932738, -0.5303300858899106, 0.5303300858899107, 0.5303300858899107, 0.5303300858899106, 0.3535533905932738, 0.3535533905932737,
2304      -0.4419417382415922, 0.4419417382415922, 4.592273826833915e-17, 0.75, 0.4419417382415922, 0.4419417382415922, 3.061515884555943e-17, 0.5 };
2305 @@ -149,8 +149,8 @@
2306  
2307  void QuadraticPlanarInterpTest::checkNonRegressionOmar0004()
2308  {
2309 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2310 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2311 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2312 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2313    double coords[16]={
2314      -0.4596194077712559, 0.4596194077712559, -0.5303300858899106, 0.5303300858899107, 0.5303300858899107, 0.5303300858899106, 0.4596194077712559, 0.4596194077712559,
2315      -0.4949747468305832, 0.4949747468305833, 4.592273826833915e-17, 0.75, 0.4949747468305833, 0.4949747468305832, 3.979970649922726e-17, 0.65 };
2316 @@ -175,8 +175,8 @@
2317  
2318  void QuadraticPlanarInterpTest::checkNonRegressionOmar0005()
2319  {
2320 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2321 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2322 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2323 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2324    double coords[16]={
2325      -0.383022221559489, 0.3213938048432697, -0.6128355544951823, 0.5142300877492316, 0.6128355544951825, 0.5142300877492314, 0.383022221559489, 0.3213938048432696,
2326      -0.4979288880273356, 0.4178119462962507, 4.898425415289509e-17, 0.8, 0.4979288880273357, 0.4178119462962505, 3.061515884555943e-17, 0.5 };
2327 @@ -201,8 +201,8 @@
2328  
2329  void QuadraticPlanarInterpTest::checkNonRegressionOmar0006()
2330  {
2331 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2332 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2333 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2334 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2335    double coords[16]={
2336      -0.383022221559489, 0.3213938048432697, -0.5362311101832845, 0.4499513267805776, 0.5362311101832846, 0.4499513267805774, 0.383022221559489, 0.3213938048432696,
2337      -0.4596266658713867, 0.3856725658119237, 4.28612223837832e-17, 0.7, 0.4596266658713868, 0.3856725658119236, 3.061515884555943e-17, 0.5 };
2338 @@ -227,8 +227,8 @@
2339  
2340  void QuadraticPlanarInterpTest::checkNonRegressionOmar0007()
2341  {
2342 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2343 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2344 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2345 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2346    double coords[16]={
2347      -0.383022221559489, 0.3213938048432697, -0.5362311101832845, 0.4499513267805776, 0.5362311101832846, 0.4499513267805774, 0.383022221559489, 0.3213938048432696,
2348      -0.4596266658713867, 0.3856725658119237, 4.28612223837832e-17, 0.7, 0.4596266658713868, 0.3856725658119236, 3.061515884555943e-17, 0.5 };
2349 @@ -253,8 +253,8 @@
2350  
2351  void QuadraticPlanarInterpTest::checkNonRegressionOmar0008()
2352  {
2353 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2354 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2355 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2356 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2357    double coords[16]={
2358      -0.383022221559489, 0.3213938048432697, -0.5362311101832845, 0.4499513267805776, 0.5362311101832846, 0.4499513267805774, 0.383022221559489, 0.3213938048432696,
2359      -0.4596266658713867, 0.3856725658119237, 4.28612223837832e-17, 0.7, 0.4596266658713868, 0.3856725658119236, 3.061515884555943e-17, 0.5 };
2360 @@ -279,8 +279,8 @@
2361  
2362  void QuadraticPlanarInterpTest::checkNonRegressionOmar0009()
2363  {
2364 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2365 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2366 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2367 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2368    double coords[16]={
2369      -0.3863703305156274, -0.1035276180410081, -0.4829629131445342, -0.1294095225512602, 0.4829629131445342, -0.1294095225512604, 0.3863703305156274, -0.1035276180410083,
2370      -0.4346666218300808, -0.1164685702961342, 1.416374613080751e-16, 0.5, 0.4346666218300808, -0.1164685702961343, 1.133099690464601e-16, 0.4 };
2371 @@ -304,8 +304,8 @@
2372  
2373  void QuadraticPlanarInterpTest::checkNonRegressionOmar0010()
2374  {
2375 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2376 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2377 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2378 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2379    double coords[16]={
2380      -0.3863703305156274, -0.1035276180410081, -0.4829629131445342, -0.1294095225512602, 0.4829629131445342, -0.1294095225512604, 0.3863703305156274, -0.1035276180410083,
2381  -0.4346666218300808, -0.1164685702961342, 1.416374613080751e-16, 0.5, 0.4346666218300808, -0.1164685702961343, 1.133099690464601e-16, 0.4 };
2382 @@ -329,8 +329,8 @@
2383  
2384  void QuadraticPlanarInterpTest::checkNonRegressionOmar0011()
2385  {
2386 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2387 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2388 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2389 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2390    double coords[16]={
2391      -0.3863703305156274, -0.1035276180410081, -0.4829629131445342, -0.1294095225512602, 0.4829629131445342, -0.1294095225512604, 0.3863703305156274, -0.1035276180410083,
2392  -0.4346666218300808, -0.1164685702961342, 1.416374613080751e-16, 0.5, 0.4346666218300808, -0.1164685702961343, 1.133099690464601e-16, 0.4 };
2393 @@ -372,8 +372,8 @@
2394  
2395  void QuadraticPlanarInterpTest::checkNonRegressionOmar2511()
2396  {
2397 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2398 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2399 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2400 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2401    double coords[16]={
2402      -0.3863703305156274, -0.1035276180410081, -0.4829629131445342, -0.1294095225512602, 0.4829629131445342, -0.1294095225512604, 0.3863703305156274, -0.1035276180410083,
2403      -0.4346666218300808, -0.1164685702961342, 1.416374613080751e-16, 0.5, 0.4346666218300808, -0.1164685702961343, 1.133099690464601e-16, 0.4, };
2404 @@ -416,8 +416,8 @@
2405  
2406  void QuadraticPlanarInterpTest::checkNonRegressionOmar0012()
2407  {
2408 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2409 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2410 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2411 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2412    double coords[16]={
2413      -1, 1.224606353822377e-16, -1.6, 1.959370166115804e-16, 9.796850830579018e-17, 1.6, 6.123031769111886e-17, 1,
2414      -1.3, 1.591988259969091e-16, -1.131370849898476, 1.131370849898476, 7.959941299845453e-17, 1.3, -0.7071067811865475, 0.7071067811865476 };
2415 @@ -450,8 +450,8 @@
2416  
2417  void QuadraticPlanarInterpTest::checkNonRegressionOmar0013()
2418  {
2419 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2420 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2421 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2422 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2423    double coords[16]={
2424      -1, 1.224606353822377e-16, -1.6, 1.959370166115804e-16, 9.796850830579018e-17, 1.6, 6.123031769111886e-17, 1,
2425      -1.3, 1.591988259969091e-16, -1.131370849898476, 1.131370849898476, 7.959941299845453e-17, 1.3, -0.7071067811865475, 0.7071067811865476 };
2426 @@ -484,8 +484,8 @@
2427  
2428  void QuadraticPlanarInterpTest::checkNonRegressionOmar0014()
2429  {
2430 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2431 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2432 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2433 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2434    double coords[16]={
2435      -1, 1.224606353822377e-16, -1.6, 1.959370166115804e-16, 9.796850830579018e-17, 1.6, 6.123031769111886e-17, 1,
2436  -1.3, 1.591988259969091e-16, -1.131370849898476, 1.131370849898476, 7.959941299845453e-17, 1.3, -0.7071067811865475, 0.7071067811865476 };
2437 @@ -528,8 +528,8 @@
2438  
2439  void QuadraticPlanarInterpTest::checkNonRegressionOmar0015()
2440  {
2441 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2442 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2443 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2444 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2445    double coords[16]={
2446      -1, 1.224606353822377e-16, -1.6, 1.959370166115804e-16, 9.796850830579018e-17, 1.6, 6.123031769111886e-17, 1,
2447  -1.3, 1.591988259969091e-16, -1.131370849898476, 1.131370849898476, 7.959941299845453e-17, 1.3, -0.7071067811865475, 0.7071067811865476 };
2448 @@ -572,8 +572,8 @@
2449  
2450  void QuadraticPlanarInterpTest::checkNonRegressionOmar0016()
2451  {
2452 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2453 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2454 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2455 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2456    double coords[16]={
2457      -1, 1.224606353822377e-16, -1.6, 1.959370166115804e-16, 9.796850830579018e-17, 1.6, 6.123031769111886e-17, 1,
2458  -1.3, 1.591988259969091e-16, -1.131370849898476, 1.131370849898476, 7.959941299845453e-17, 1.3, -0.7071067811865475, 0.7071067811865476 };
2459 @@ -616,8 +616,8 @@
2460  
2461  void QuadraticPlanarInterpTest::checkNonRegressionOmar0017()
2462  {
2463 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2464 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2465 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2466 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2467    double coords[16]={
2468      -1, 1.224606353822377e-16, -1.6, 1.959370166115804e-16, 9.796850830579018e-17, 1.6, 6.123031769111886e-17, 1,
2469      -1.3, 1.591988259969091e-16, -1.131370849898476, 1.131370849898476, 7.959941299845453e-17, 1.3, -0.7071067811865475, 0.7071067811865476 };
2470 @@ -661,8 +661,8 @@
2471  
2472  void QuadraticPlanarInterpTest::checkNonRegressionOmar0018()
2473  {
2474 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2475 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2476 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2477 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2478    double coords[16]={
2479      -1, 1.224606353822377e-16, -1.6, 1.959370166115804e-16, 9.796850830579018e-17, 1.6, 6.123031769111886e-17, 1,
2480      -1.3, 1.591988259969091e-16, -1.131370849898476, 1.131370849898476, 7.959941299845453e-17, 1.3, -0.7071067811865475, 0.7071067811865476 };
2481 @@ -706,8 +706,8 @@
2482  
2483  void QuadraticPlanarInterpTest::checkNonRegressionOmar0019()
2484  {
2485 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2486 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2487 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2488 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2489    double coords[16]={
2490      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2491      -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5 };
2492 @@ -732,8 +732,8 @@
2493  
2494  void QuadraticPlanarInterpTest::checkNonRegressionOmar0020()
2495  {
2496 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2497 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2498 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2499 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2500    double coords[16]={
2501      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2502      -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5 };
2503 @@ -777,8 +777,8 @@
2504  
2505  void QuadraticPlanarInterpTest::checkNonRegressionOmar0021()
2506  {
2507 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2508 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2509 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2510 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2511    double coords[16]={
2512      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2513      -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5 };
2514 @@ -821,8 +821,8 @@
2515  }
2516  void QuadraticPlanarInterpTest::checkNonRegressionOmar0022()
2517  {
2518 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2519 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2520 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2521 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2522    double coords[16]={
2523      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2524      -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5 };
2525 @@ -847,8 +847,8 @@
2526  
2527  void QuadraticPlanarInterpTest::checkNonRegressionOmar0023()
2528  {
2529 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2530 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2531 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2532 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2533    double coords[16]={
2534      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2535      -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5, };
2536 @@ -873,8 +873,8 @@
2537  
2538  void QuadraticPlanarInterpTest::checkNonRegressionOmar0024()
2539  {
2540 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2541 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2542 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2543 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2544    double coords[16]={
2545      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2546  -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5 };
2547 @@ -898,8 +898,8 @@
2548  
2549  void QuadraticPlanarInterpTest::checkNonRegressionOmar2524()
2550  {
2551 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2552 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2553 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2554 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2555    double coords[16]={
2556      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2557  -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5 };
2558 @@ -923,8 +923,8 @@
2559  
2560  void QuadraticPlanarInterpTest::checkNonRegressionOmar0025()
2561  {
2562 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2563 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2564 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2565 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2566    double coords[16]={
2567      -0.5, 6.123031769111886e-17, -0.8, 9.796850830579018e-17, 0.8, 0, 0.5, 0,
2568      -0.65, 7.959941299845453e-17, 4.898425415289509e-17, 0.8, 0.65, 0, 3.061515884555943e-17, 0.5 };
2569 @@ -958,8 +958,8 @@
2570  
2571  void QuadraticPlanarInterpTest::checkNonRegressionOmar0026()
2572  {
2573 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2574 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2575 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2576 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2577    double coords[16]={
2578      -0.4, 4.898425415289509e-17, -0.75, 9.184547653667829e-17, 0.75, 0, 0.4, 0,
2579      -0.575, 7.041486534478669e-17, 4.592273826833915e-17, 0.75, 0.575, 0, 2.449212707644755e-17, 0.4 };
2580 @@ -993,8 +993,8 @@
2581  
2582  void QuadraticPlanarInterpTest::checkNonRegressionOmar0027()
2583  {
2584 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2585 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2586 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2587 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2588    double coords[16]={
2589      -0.4, 4.898425415289509e-17, -0.75, 9.184547653667829e-17, 0.75, 0, 0.4, 0,
2590      -0.575, 7.041486534478669e-17, 4.592273826833915e-17, 0.75, 0.575, 0, 2.449212707644755e-17, 0.4 };
2591 @@ -1038,8 +1038,8 @@
2592  
2593  void QuadraticPlanarInterpTest::checkNonRegressionOmar0028()
2594  {
2595 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2596 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2597 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2598 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2599    double coords[16]={
2600      -0.4, 4.898425415289509e-17, -0.75, 9.184547653667829e-17, 0.75, 0, 0.4, 0,
2601      -0.575, 7.041486534478669e-17, 4.592273826833915e-17, 0.75, 0.575, 0, 2.449212707644755e-17, 0.4 };
2602 @@ -1083,8 +1083,8 @@
2603  
2604  void QuadraticPlanarInterpTest::checkNonRegressionOmar0029()
2605  {
2606 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2607 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2608 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2609 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2610    double coords[16]={
2611      -0.4, 4.898425415289509e-17, -0.75, 9.184547653667829e-17, 0.75, 0, 0.4, 0,
2612      -0.575, 7.041486534478669e-17, 4.592273826833915e-17, 0.75, 0.575, 0, 2.449212707644755e-17, 0.4 };
2613 @@ -1128,8 +1128,8 @@
2614  
2615  void QuadraticPlanarInterpTest::checkNonRegressionOmar0030()
2616  {
2617 -  INTERP_KERNEL::QUADRATIC_PLANAR::setPrecision(1e-7);
2618 -  INTERP_KERNEL::QUADRATIC_PLANAR::setArcDetectionPrecision(1e-7);
2619 +  INTERP_KERNEL::QuadraticPlanarPrecision::setPrecision(1e-7);
2620 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision::setArcDetectionPrecision(1e-7);
2621    double coords[16]={
2622      -0.4, 4.898425415289509e-17, -0.75, 9.184547653667829e-17, 0.75, 0, 0.4, 0,
2623      -0.575, 7.041486534478669e-17, 4.592273826833915e-17, 0.75, 0.575, 0, 2.449212707644755e-17, 0.4 };
2624 diff -Naur MEDCOUPLING_old/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx MEDCOUPLING_new/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx
2625 --- MEDCOUPLING_old/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx  2018-04-19 17:04:36.703222045 +0200
2626 +++ MEDCOUPLING_new/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx  2018-04-19 17:25:17.937801310 +0200
2627 @@ -231,7 +231,7 @@
2628    {
2629      INTERP_KERNEL::PolygonAlgorithms<2> intersector (_Epsilon, _Precision);;
2630      /*
2631 -      ////////////////// TEST DESACTIVATED by A. GEAY because memory fault : 
2632 +      ////////////////// TEST DEACTIVATED by A. GEAY because memory fault : 
2633        // conditional jump INTERP_KERNEL::PolygonAlgorithms<2>::intersectConvexPolygons(double const*, double const*, int, int) (PolygonAlgorithms.txx:629)
2634      std::deque< double > actual_result = intersector.intersectConvexPolygons(_square1,_square1,4,4);
2635      std::deque< double > expected_result;
2636 diff -Naur MEDCOUPLING_old/src/MEDCoupling/CMakeLists.txt MEDCOUPLING_new/src/MEDCoupling/CMakeLists.txt
2637 --- MEDCOUPLING_old/src/MEDCoupling/CMakeLists.txt      2018-04-19 17:04:36.704222065 +0200
2638 +++ MEDCOUPLING_new/src/MEDCoupling/CMakeLists.txt      2018-04-19 17:25:18.014802832 +0200
2639 @@ -80,12 +80,13 @@
2640    MEDCouplingRemapper.cxx
2641    )
2642  
2643 -ADD_LIBRARY(medcoupling ${medcoupling_SOURCES})
2644 -TARGET_LINK_LIBRARIES(medcoupling interpkernel)
2645 -INSTALL(TARGETS medcoupling EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${MEDCOUPLING_INSTALL_LIBS})
2646 +ADD_LIBRARY(medcouplingcpp ${medcoupling_SOURCES})
2647 +SET_TARGET_PROPERTIES(medcouplingcpp PROPERTIES OUTPUT_NAME "medcoupling")
2648 +TARGET_LINK_LIBRARIES(medcouplingcpp interpkernel)
2649 +INSTALL(TARGETS medcouplingcpp EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${MEDCOUPLING_INSTALL_LIBS})
2650  
2651  ADD_LIBRARY(medcouplingremapper ${medcouplingremapper_SOURCES})
2652 -TARGET_LINK_LIBRARIES(medcouplingremapper medcoupling)
2653 +TARGET_LINK_LIBRARIES(medcouplingremapper medcouplingcpp)
2654  INSTALL(TARGETS medcouplingremapper EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${MEDCOUPLING_INSTALL_LIBS})
2655  
2656  FILE(GLOB medcoupling_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
2657 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MCAuto.hxx MEDCOUPLING_new/src/MEDCoupling/MCAuto.hxx
2658 --- MEDCOUPLING_old/src/MEDCoupling/MCAuto.hxx  2018-04-19 17:04:36.704222065 +0200
2659 +++ MEDCOUPLING_new/src/MEDCoupling/MCAuto.hxx  2018-04-19 17:25:18.015802852 +0200
2660 @@ -101,6 +101,7 @@
2661      const T& operator*() { return *_ptr; }
2662      const T& operator*() const { return *_ptr; }
2663      operator const T *() const { return _ptr; }
2664 +    T *shameOnMeConstCast() const { return const_cast<T*>(_ptr); }
2665    private:
2666      void referPtr(const T *ptr) { _ptr=ptr; if(_ptr) _ptr->incrRef(); }
2667      void destroyPtr() { if(_ptr) _ptr->decrRef(); }
2668 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCoupling1GTUMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCoupling1GTUMesh.cxx
2669 --- MEDCOUPLING_old/src/MEDCoupling/MEDCoupling1GTUMesh.cxx     2018-04-19 17:04:36.704222065 +0200
2670 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCoupling1GTUMesh.cxx     2018-04-19 17:25:18.048803504 +0200
2671 @@ -145,7 +145,7 @@
2672   * \a this is composed in cell types.
2673   * The returned array is of size 3*n where n is the number of different types present in \a this. 
2674   * For every k in [0,n] ret[3*k+2]==-1 because it has no sense here. 
2675 - * This parameter is kept only for compatibility with other methode listed above.
2676 + * This parameter is kept only for compatibility with other method listed above.
2677   */
2678  std::vector<int> MEDCoupling1GTUMesh::getDistributionOfTypes() const
2679  {
2680 @@ -178,7 +178,7 @@
2681   *          - After \a code contains [NORM_...,nbCells,0], \a idsInPflPerType [[0,1]] and \a idsPerType is [[1,2]] <br>
2682  
2683   */
2684 -void MEDCoupling1GTUMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const
2685 +void MEDCoupling1GTUMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller) const
2686  {
2687    if(!profile)
2688      throw INTERP_KERNEL::Exception("MEDCoupling1GTUMesh::splitProfilePerType : input profile is NULL !");
2689 @@ -188,7 +188,7 @@
2690    code.resize(3); idsInPflPerType.resize(1);
2691    code[0]=(int)getCellModelEnum(); code[1]=nbTuples;
2692    idsInPflPerType.resize(1);
2693 -  if(profile->isIota(nbOfCells))
2694 +  if(smartPflKiller && profile->isIota(nbOfCells))
2695      {
2696        code[2]=-1;
2697        idsInPflPerType[0]=const_cast<DataArrayInt *>(profile); idsInPflPerType[0]->incrRef();
2698 @@ -1635,7 +1635,7 @@
2699  }
2700  
2701  /*!
2702 - * \return DataArrayInt * - the internal reference to the nodal connectivity. The caller is not reponsible to deallocate it.
2703 + * \return DataArrayInt * - the internal reference to the nodal connectivity. The caller is not responsible to deallocate it.
2704   */
2705  DataArrayInt *MEDCoupling1SGTUMesh::getNodalConnectivity() const
2706  {
2707 @@ -1646,7 +1646,7 @@
2708  /*!
2709   * Allocates memory to store an estimation of the given number of cells. Closer is the estimation to the number of cells effectively inserted,
2710   * less will be the needs to realloc. If the number of cells to be inserted is not known simply put 0 to this parameter.
2711 - * If a nodal connectivity previouly existed before the call of this method, it will be reset.
2712 + * If a nodal connectivity previously existed before the call of this method, it will be reset.
2713   *
2714   *  \param [in] nbOfCells - estimation of the number of cell \a this mesh will contain.
2715   */
2716 @@ -1666,7 +1666,7 @@
2717   * \param [in] nodalConnOfCellEnd - the end (excluded) of nodal connectivity of the cell to add.
2718   * \throw If the length of the input nodal connectivity array of the cell to add is not equal to number of nodes per cell relative to the unique geometric type
2719   *        attached to \a this.
2720 - * \thow If the nodal connectivity array in \a this is null (call MEDCoupling1SGTUMesh::allocateCells before).
2721 + * \throw If the nodal connectivity array in \a this is null (call MEDCoupling1SGTUMesh::allocateCells before).
2722   */
2723  void MEDCoupling1SGTUMesh::insertNextCell(const int *nodalConnOfCellBg, const int *nodalConnOfCellEnd)
2724  {
2725 @@ -3302,7 +3302,7 @@
2726   * \param [in] nodalConnOfCellEnd - the end (excluded) of nodal connectivity of the cell to add.
2727   * \throw If the length of the input nodal connectivity array of the cell to add is not equal to number of nodes per cell relative to the unique geometric type
2728   *        attached to \a this.
2729 - * \thow If the nodal connectivity array in \a this is null (call MEDCoupling1SGTUMesh::allocateCells before).
2730 + * \throw If the nodal connectivity array in \a this is null (call MEDCoupling1SGTUMesh::allocateCells before).
2731   */
2732  void MEDCoupling1DGTUMesh::insertNextCell(const int *nodalConnOfCellBg, const int *nodalConnOfCellEnd)
2733  {
2734 @@ -3338,7 +3338,7 @@
2735  }
2736  
2737  /*!
2738 - * \return DataArrayInt * - the internal reference to the nodal connectivity. The caller is not reponsible to deallocate it.
2739 + * \return DataArrayInt * - the internal reference to the nodal connectivity. The caller is not responsible to deallocate it.
2740   */
2741  DataArrayInt *MEDCoupling1DGTUMesh::getNodalConnectivity() const
2742  {
2743 @@ -3347,7 +3347,7 @@
2744  }
2745  
2746  /*!
2747 - * \return DataArrayInt * - the internal reference to the nodal connectivity index. The caller is not reponsible to deallocate it.
2748 + * \return DataArrayInt * - the internal reference to the nodal connectivity index. The caller is not responsible to deallocate it.
2749   */
2750  DataArrayInt *MEDCoupling1DGTUMesh::getNodalConnectivityIndex() const
2751  {
2752 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCoupling1GTUMesh.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCoupling1GTUMesh.hxx
2753 --- MEDCOUPLING_old/src/MEDCoupling/MEDCoupling1GTUMesh.hxx     2018-04-19 17:04:36.705222084 +0200
2754 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCoupling1GTUMesh.hxx     2018-04-19 17:25:18.029803128 +0200
2755 @@ -46,7 +46,7 @@
2756      MEDCOUPLING_EXPORT INTERP_KERNEL::NormalizedCellType getTypeOfCell(std::size_t cellId) const;
2757      MEDCOUPLING_EXPORT std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const;
2758      MEDCOUPLING_EXPORT std::vector<int> getDistributionOfTypes() const;
2759 -    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const;
2760 +    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller=true) const;
2761      MEDCOUPLING_EXPORT DataArrayInt *checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const;
2762      MEDCOUPLING_EXPORT void writeVTKLL(std::ostream& ofs, const std::string& cellData, const std::string& pointData, DataArrayByte *byteData) const;
2763      MEDCOUPLING_EXPORT std::string getVTKDataSetType() const;
2764 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingAMRAttribute.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingAMRAttribute.cxx
2765 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingAMRAttribute.cxx 2018-04-19 17:04:36.705222084 +0200
2766 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingAMRAttribute.cxx 2018-04-19 17:25:18.120804927 +0200
2767 @@ -802,7 +802,7 @@
2768  
2769  /*!
2770   * Assign the info on components for all DataArrayDouble instance recursively stored in \a this.
2771 - * The first dim of input \a compNames is the field id in the same order than those implicitely specified in \a fieldNames parameter of MEDCouplingAMRAttribute::New.
2772 + * The first dim of input \a compNames is the field id in the same order than those implicitly specified in \a fieldNames parameter of MEDCouplingAMRAttribute::New.
2773   * The second dim of \a compNames represent the component names component per component corresponding to the field. The size of this 2nd dimension has
2774   * to perfectly fit with those specified in MEDCouplingAMRAttribute::New.
2775   */
2776 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingCartesianAMRMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingCartesianAMRMesh.cxx
2777 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingCartesianAMRMesh.cxx     2018-04-19 17:04:36.706222105 +0200
2778 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingCartesianAMRMesh.cxx     2018-04-19 17:25:17.991802377 +0200
2779 @@ -385,7 +385,7 @@
2780  
2781  /*!
2782   * \a p1 is expected to be more refined than \a p2. \a p1 and \a p2 have to share a common ancestor. Compared to UpdateNeighborsOfOneWithTwoExt here \a p1 and \a p2 are \b not at the same level !
2783 - * This method has 3 outputs. 2 two first are the resp the position of \a p1 and \a p2 relative to \a p1. And \a factToApplyOn2 is the coeff of refinement to be applied on \a p2 to be virtualy
2784 + * This method has 3 outputs. 2 two first are the resp the position of \a p1 and \a p2 relative to \a p1. And \a factToApplyOn2 is the coeff of refinement to be applied on \a p2 to be virtually
2785   * on the same level as \a p1.
2786   */
2787  void MEDCouplingCartesianAMRPatch::ComputeZonesOfTwoRelativeToOneDiffLev(int ghostLev, const MEDCouplingCartesianAMRPatch *p1, const MEDCouplingCartesianAMRPatch *p2, std::vector< std::pair<int,int> >& p1Zone, std::vector< std::pair<int,int> >& p2Zone, std::vector<int>& factToApplyOn2)
2788 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingCMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingCMesh.cxx
2789 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingCMesh.cxx        2018-04-19 17:04:36.705222084 +0200
2790 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingCMesh.cxx        2018-04-19 17:25:18.020802951 +0200
2791 @@ -770,7 +770,7 @@
2792  
2793  void MEDCouplingCMesh::renumberCells(const int *old2NewBg, bool check)
2794  {
2795 -  throw INTERP_KERNEL::Exception("Functionnality of renumbering cell not available for CMesh !");
2796 +  throw INTERP_KERNEL::Exception("Functionality of renumbering cell not available for CMesh !");
2797  }
2798  
2799  void MEDCouplingCMesh::getTinySerializationInformation(std::vector<double>& tinyInfoD, std::vector<int>& tinyInfo, std::vector<std::string>& littleStrings) const
2800 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingCurveLinearMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingCurveLinearMesh.cxx
2801 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingCurveLinearMesh.cxx      2018-04-19 17:04:36.706222105 +0200
2802 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingCurveLinearMesh.cxx      2018-04-19 17:25:18.098804492 +0200
2803 @@ -255,7 +255,7 @@
2804    double tt=getTime(tmpp1,tmpp2);
2805    ret << "Time attached to the mesh [unit] : " << tt << " [" << getTimeUnit() << "]\n";
2806    ret << "Iteration : " << tmpp1  << " Order : " << tmpp2 << "\n";
2807 -  ret << "The nodal stucture of curve linear mesh is : [";
2808 +  ret << "The nodal structure of curve linear mesh is : [";
2809    std::copy(_structure.begin(),_structure.end(),std::ostream_iterator<int>(ret,",")); ret << "]\n";
2810    ret << "The coords array is this : ";
2811    if((const DataArrayDouble *)_coords)
2812 @@ -375,7 +375,7 @@
2813  }
2814  
2815  /*!
2816 - * \param [in,out] f field feeded with good values.
2817 + * \param [in,out] f field fed with good values.
2818   * \sa MEDCouplingCurveLinearMesh::getMeasureField
2819   */
2820  void MEDCouplingCurveLinearMesh::getMeasureFieldMeshDim1(bool isAbs, MEDCouplingFieldDouble *field) const
2821 @@ -401,7 +401,7 @@
2822  }
2823  
2824  /*!
2825 - * \param [in,out] f field feeded with good values.
2826 + * \param [in,out] f field fed with good values.
2827   * \sa MEDCouplingCurveLinearMesh::getMeasureField
2828   */
2829  void MEDCouplingCurveLinearMesh::getMeasureFieldMeshDim2(bool isAbs, MEDCouplingFieldDouble *field) const
2830 @@ -427,7 +427,7 @@
2831  }
2832  
2833  /*!
2834 - * \param [in,out] f field feeded with good values.
2835 + * \param [in,out] f field fed with good values.
2836   * \sa MEDCouplingCurveLinearMesh::getMeasureField
2837   */
2838  void MEDCouplingCurveLinearMesh::getMeasureFieldMeshDim3(bool isAbs, MEDCouplingFieldDouble *field) const
2839 @@ -733,7 +733,7 @@
2840  }
2841  
2842  /*!
2843 - * \param [in,out] bary Barycenter array feeded with good values.
2844 + * \param [in,out] bary Barycenter array fed with good values.
2845   * \sa MEDCouplingCurveLinearMesh::computeCellCenterOfMass
2846   */
2847  void MEDCouplingCurveLinearMesh::getBarycenterAndOwnerMeshDim3(DataArrayDouble *bary) const
2848 @@ -759,7 +759,7 @@
2849  }
2850  
2851  /*!
2852 - * \param [in,out] bary Barycenter array feeded with good values.
2853 + * \param [in,out] bary Barycenter array fed with good values.
2854   * \sa MEDCouplingCurveLinearMesh::computeCellCenterOfMass
2855   */
2856  void MEDCouplingCurveLinearMesh::getBarycenterAndOwnerMeshDim2(DataArrayDouble *bary) const
2857 @@ -782,7 +782,7 @@
2858  }
2859  
2860  /*!
2861 - * \param [in,out] bary Barycenter array feeded with good values.
2862 + * \param [in,out] bary Barycenter array fed with good values.
2863   * \sa MEDCouplingCurveLinearMesh::computeCellCenterOfMass
2864   */
2865  void MEDCouplingCurveLinearMesh::getBarycenterAndOwnerMeshDim1(DataArrayDouble *bary) const
2866 @@ -794,7 +794,7 @@
2867  
2868  void MEDCouplingCurveLinearMesh::renumberCells(const int *old2NewBg, bool check)
2869  {
2870 -  throw INTERP_KERNEL::Exception("Functionnality of renumbering cell not available for CurveLinear Mesh !");
2871 +  throw INTERP_KERNEL::Exception("Functionality of renumbering cell not available for CurveLinear Mesh !");
2872  }
2873  
2874  void MEDCouplingCurveLinearMesh::getTinySerializationInformation(std::vector<double>& tinyInfoD, std::vector<int>& tinyInfo, std::vector<std::string>& littleStrings) const
2875 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingDefinitionTime.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingDefinitionTime.cxx
2876 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingDefinitionTime.cxx       2018-04-19 17:04:36.706222105 +0200
2877 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingDefinitionTime.cxx       2018-04-19 17:25:18.101804552 +0200
2878 @@ -53,9 +53,9 @@
2879          return new MEDCouplingDefinitionTimeSliceLT(f,meshId,arrId[0],arrId[1],fieldId);
2880        }
2881      case NO_TIME:
2882 -      throw INTERP_KERNEL::Exception("Invalide time discretization ! NO_TIME ! Impossible to build a definition time slice !");
2883 +      throw INTERP_KERNEL::Exception("Invalid time discretization ! NO_TIME ! Impossible to build a definition time slice !");
2884      default:
2885 -      throw INTERP_KERNEL::Exception("Invalide time discretization : Not recognized !");
2886 +      throw INTERP_KERNEL::Exception("Invalid time discretization : Not recognized !");
2887    }
2888  }
2889  
2890 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingField.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingField.cxx
2891 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingField.cxx        2018-04-19 17:04:36.706222105 +0200
2892 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingField.cxx        2018-04-19 17:25:17.999802535 +0200
2893 @@ -34,7 +34,7 @@
2894      throw INTERP_KERNEL::Exception("MEDCouplingField::checkConsistencyLight : no spatial discretization !");
2895  }
2896  
2897 -bool MEDCouplingField::isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec, std::string& reason) const
2898 +bool MEDCouplingField::isEqualIfNotWhyProtected(const MEDCouplingField *other, double meshPrec, std::string& reason) const
2899  {
2900    if(!other)
2901      throw INTERP_KERNEL::Exception("MEDCouplingField::isEqualIfNotWhy : other instance is NULL !");
2902 @@ -57,7 +57,7 @@
2903        reason=oss.str();
2904        return false;
2905      }
2906 -  if(!_type->isEqualIfNotWhy(other->_type,valsPrec,reason))
2907 +  if(!_type->isEqualIfNotWhy(other->_type,meshPrec,reason))
2908      {
2909        reason.insert(0,"Spatial discretizations differ :");
2910        return false;
2911 @@ -78,36 +78,21 @@
2912  }
2913  
2914  /*!
2915 - * Checks if \a this and another MEDCouplingField are fully equal.
2916 - *  \param [in] other - the field to compare with \a this one.
2917 - *  \param [in] meshPrec - precision used to compare node coordinates of the underlying mesh.
2918 - *  \param [in] valsPrec - precision used to compare field values.
2919 - *  \return bool - \c true if the two fields are equal, \c false else.
2920 - *  \throw If \a other is NULL.
2921 - */
2922 -bool MEDCouplingField::isEqual(const MEDCouplingField *other, double meshPrec, double valsPrec) const
2923 -{
2924 -  std::string tmp;
2925 -  return isEqualIfNotWhy(other,meshPrec,valsPrec,tmp);
2926 -}
2927 -
2928 -/*!
2929   * Checks if \a this and another MEDCouplingField are equal. The textual
2930   * information like names etc. is not considered.
2931   *  \param [in] other - the field to compare with \a this one.
2932   *  \param [in] meshPrec - precision used to compare node coordinates of the underlying mesh.
2933 - *  \param [in] valsPrec - precision used to compare field values.
2934   *  \return bool - \c true if the two fields are equal, \c false else.
2935   *  \throw If \a other is NULL.
2936   *  \throw If the spatial discretization of \a this field is NULL.
2937   */
2938 -bool MEDCouplingField::isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const
2939 +bool MEDCouplingField::isEqualWithoutConsideringStrProtected(const MEDCouplingField *other, double meshPrec) const
2940  {
2941    if(!other)
2942      throw INTERP_KERNEL::Exception("MEDCouplingField::isEqualWithoutConsideringStr : input field is NULL !");
2943    if(!_type)
2944      throw INTERP_KERNEL::Exception("MEDCouplingField::isEqualWithoutConsideringStr : spatial discretization of this is NULL !");
2945 -  if(!_type->isEqualWithoutConsideringStr(other->_type,valsPrec))
2946 +  if(!_type->isEqualWithoutConsideringStr(other->_type,meshPrec))
2947      return false;
2948    if(_nature!=other->_nature)
2949      return false;
2950 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx
2951 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx  2018-04-19 17:04:36.707222124 +0200
2952 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx  2018-04-19 17:25:18.104804611 +0200
2953 @@ -140,7 +140,7 @@
2954      case MEDCouplingFieldDiscretizationKriging::TYPE:
2955        return new MEDCouplingFieldDiscretizationKriging;
2956      default:
2957 -      throw INTERP_KERNEL::Exception("Choosen discretization is not implemented yet.");
2958 +      throw INTERP_KERNEL::Exception("Chosen discretization is not implemented yet.");
2959    }
2960  }
2961  
2962 @@ -361,7 +361,7 @@
2963  
2964  /*!
2965   * This method is typically the first step of renumbering. The implementation is empty it is not a bug only gauss is impacted
2966 - * virtualy by this method.
2967 + * virtually by this method.
2968   */
2969  void MEDCouplingFieldDiscretization::renumberCells(const int *old2NewBg, bool check)
2970  {
2971 @@ -1183,7 +1183,7 @@
2972  
2973  /*!
2974   * This method is typically the first step of renumbering. The impact on _discr_per_cell is necessary here.
2975 - * virtualy by this method.
2976 + * virtually by this method.
2977   */
2978  void MEDCouplingFieldDiscretizationPerCell::renumberCells(const int *old2NewBg, bool check)
2979  {
2980 @@ -1663,7 +1663,7 @@
2981      {
2982        if(dc[i]>=nbOfDesc)
2983          {
2984 -          std::ostringstream oss; oss << "Cell # " << i << " of mesh \"" << mesh->getName() << "\" has an undefined gauss location ! Should never happend !";
2985 +          std::ostringstream oss; oss << "Cell # " << i << " of mesh \"" << mesh->getName() << "\" has an undefined gauss location ! Should never happened !";
2986            throw INTERP_KERNEL::Exception(oss.str().c_str());
2987          }
2988        if(dc[i]<0)
2989 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldDouble.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldDouble.cxx
2990 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldDouble.cxx  2018-04-19 17:04:36.708222144 +0200
2991 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldDouble.cxx  2018-04-19 17:25:18.027803089 +0200
2992 @@ -22,12 +22,14 @@
2993  #include "MEDCouplingFieldTemplate.hxx"
2994  #include "MEDCouplingFieldT.txx"
2995  #include "MEDCouplingFieldInt.hxx"
2996 +#include "MEDCouplingFieldFloat.hxx"
2997  #include "MEDCouplingUMesh.hxx"
2998  #include "MEDCouplingTimeDiscretization.hxx"
2999  #include "MEDCouplingFieldDiscretization.hxx"
3000  #include "MCAuto.txx"
3001  #include "MEDCouplingVoronoi.hxx"
3002  #include "MEDCouplingNatureOfField.hxx"
3003 +#include "MEDCouplingMemArray.txx"
3004  
3005  #include "InterpKernelAutoPtr.hxx"
3006  #include "InterpKernelGaussCoords.hxx"
3007 @@ -188,8 +190,8 @@
3008  }
3009  
3010  /*!
3011 - * This method converts a field on nodes (\a this) to a cell field (returned field). The convertion is a \b non \b conservative remapping !
3012 - * This method is useful only for users that need a fast convertion from node to cell spatial discretization. The algorithm applied is simply to attach
3013 + * This method converts a field on nodes (\a this) to a cell field (returned field). The conversion is a \b non \b conservative remapping !
3014 + * This method is useful only for users that need a fast conversion from node to cell spatial discretization. The algorithm applied is simply to attach
3015   * to each cell the average of values on nodes constituting this cell.
3016   *
3017   * \return MEDCouplingFieldDouble* - a new instance of MEDCouplingFieldDouble. The
3018 @@ -244,8 +246,8 @@
3019  }
3020  
3021  /*!
3022 - * This method converts a field on cell (\a this) to a node field (returned field). The convertion is a \b non \b conservative remapping !
3023 - * This method is useful only for users that need a fast convertion from cell to node spatial discretization. The algorithm applied is simply to attach
3024 + * This method converts a field on cell (\a this) to a node field (returned field). The conversion is a \b non \b conservative remapping !
3025 + * This method is useful only for users that need a fast conversion from cell to node spatial discretization. The algorithm applied is simply to attach
3026   * to each node the average of values on cell sharing this node. If \a this lies on a mesh having orphan nodes the values applied on them will be NaN (division by 0.).
3027   *
3028   * \return MEDCouplingFieldDouble* - a new instance of MEDCouplingFieldDouble. The
3029 @@ -368,76 +370,6 @@
3030  }
3031  
3032  /*!
3033 - * Permutes values of \a this field according to a given permutation array for cells
3034 - * renumbering. The underlying mesh is deeply copied and its cells are also permuted. 
3035 - * The number of cells remains the same; for that the permutation array \a old2NewBg
3036 - * should not contain equal ids.
3037 - * ** Warning, this method modifies the mesh aggreagated by \a this (by performing a deep copy ) **.
3038 - *
3039 - *  \param [in] old2NewBg - the permutation array in "Old to New" mode. Its length is
3040 - *         to be equal to \a this->getMesh()->getNumberOfCells().
3041 - *  \param [in] check - if \c true, \a old2NewBg is transformed to a new permutation
3042 - *         array, so that its maximal cell id to correspond to (be less than) the number
3043 - *         of cells in mesh. This new array is then used for the renumbering. If \a 
3044 - *         check == \c false, \a old2NewBg is used as is, that is less secure as validity 
3045 - *         of ids in \a old2NewBg is not checked.
3046 - *  \throw If the mesh is not set.
3047 - *  \throw If the spatial discretization of \a this field is NULL.
3048 - *  \throw If \a check == \c true and \a old2NewBg contains equal ids.
3049 - *  \throw If mesh nature does not allow renumbering (e.g. structured mesh).
3050 - * 
3051 - *  \if ENABLE_EXAMPLES
3052 - *  \ref cpp_mcfielddouble_renumberCells "Here is a C++ example".<br>
3053 - *  \ref  py_mcfielddouble_renumberCells "Here is a Python example".
3054 - *  \endif
3055 - */
3056 -void MEDCouplingFieldDouble::renumberCells(const int *old2NewBg, bool check)
3057 -{
3058 -  renumberCellsWithoutMesh(old2NewBg,check);
3059 -  MCAuto<MEDCouplingMesh> m=_mesh->deepCopy();
3060 -  m->renumberCells(old2NewBg,check);
3061 -  setMesh(m);
3062 -  updateTime();
3063 -}
3064 -
3065 -/*!
3066 - * Permutes values of \a this field according to a given permutation array for cells
3067 - * renumbering. The underlying mesh is \b not permuted. 
3068 - * The number of cells remains the same; for that the permutation array \a old2NewBg
3069 - * should not contain equal ids.
3070 - * This method performs a part of job of renumberCells(). The reasonable use of this
3071 - * method is only for multi-field instances lying on the same mesh to avoid a
3072 - * systematic duplication and renumbering of _mesh attribute. 
3073 - * \warning Use this method with a lot of care!
3074 - *  \param [in] old2NewBg - the permutation array in "Old to New" mode. Its length is
3075 - *         to be equal to \a this->getMesh()->getNumberOfCells().
3076 - *  \param [in] check - if \c true, \a old2NewBg is transformed to a new permutation
3077 - *         array, so that its maximal cell id to correspond to (be less than) the number
3078 - *         of cells in mesh. This new array is then used for the renumbering. If \a 
3079 - *         check == \c false, \a old2NewBg is used as is, that is less secure as validity 
3080 - *         of ids in \a old2NewBg is not checked.
3081 - *  \throw If the mesh is not set.
3082 - *  \throw If the spatial discretization of \a this field is NULL.
3083 - *  \throw If \a check == \c true and \a old2NewBg contains equal ids.
3084 - *  \throw If mesh nature does not allow renumbering (e.g. structured mesh).
3085 - */
3086 -void MEDCouplingFieldDouble::renumberCellsWithoutMesh(const int *old2NewBg, bool check)
3087 -{
3088 -  if(!_mesh)
3089 -    throw INTERP_KERNEL::Exception("Expecting a defined mesh to be able to operate a renumbering !");
3090 -  if(_type.isNull())
3091 -    throw INTERP_KERNEL::Exception("Expecting a spatial discretization to be able to operate a renumbering !");
3092 -  //
3093 -  _type->renumberCells(old2NewBg,check);
3094 -  std::vector<DataArrayDouble *> arrays;
3095 -  timeDiscr()->getArrays(arrays);
3096 -  std::vector<DataArray *> arrays2(arrays.size()); std::copy(arrays.begin(),arrays.end(),arrays2.begin());
3097 -  _type->renumberArraysForCell(_mesh,arrays2,old2NewBg,check);
3098 -  //
3099 -  updateTime();
3100 -}
3101 -
3102 -/*!
3103   * Permutes values of \a this field according to a given permutation array for node
3104   * renumbering. The underlying mesh is deeply copied and its nodes are also permuted. 
3105   * The number of nodes can change, contrary to renumberCells().
3106 @@ -449,7 +381,7 @@
3107   *  \throw If the spatial discretization of \a this field is NULL.
3108   *  \throw If \a check == \c true and \a old2NewBg contains equal ids.
3109   *  \throw If mesh nature does not allow renumbering (e.g. structured mesh).
3110 - *  \throw If values at merged nodes deffer more than \a eps.
3111 + *  \throw If values at merged nodes differ more than \a eps.
3112   * 
3113   *  \if ENABLE_EXAMPLES
3114   *  \ref cpp_mcfielddouble_renumberNodes "Here is a C++ example".<br>
3115 @@ -489,7 +421,7 @@
3116   *         the values differ more than \a eps, an exception is thrown.
3117   *  \throw If the mesh is not set.
3118   *  \throw If the spatial discretization of \a this field is NULL.
3119 - *  \throw If values at merged nodes deffer more than \a eps.
3120 + *  \throw If values at merged nodes differ more than \a eps.
3121   */
3122  void MEDCouplingFieldDouble::renumberNodesWithoutMesh(const int *old2NewBg, int newNbOfNodes, double eps)
3123  {
3124 @@ -522,21 +454,32 @@
3125    return getArray()->findIdsInRange(vmin,vmax);
3126  }
3127  
3128 -MEDCouplingFieldInt *MEDCouplingFieldDouble::convertToIntField() const
3129 +template<class U>
3130 +typename Traits<U>::FieldType *ConvertToUField(const MEDCouplingFieldDouble *self)
3131  {
3132 -  MCAuto<MEDCouplingFieldTemplate> tmp(MEDCouplingFieldTemplate::New(*this));
3133 +  MCAuto<MEDCouplingFieldTemplate> tmp(MEDCouplingFieldTemplate::New(*self));
3134    int t1,t2;
3135 -  double t0(getTime(t1,t2));
3136 -  MCAuto<MEDCouplingFieldInt> ret(MEDCouplingFieldInt::New(*tmp,getTimeDiscretization()));
3137 +  double t0(self->getTime(t1,t2));
3138 +  MCAuto<typename Traits<U>::FieldType > ret(Traits<U>::FieldType::New(*tmp,self->getTimeDiscretization()));
3139    ret->setTime(t0,t1,t2);
3140 -  if(getArray())
3141 +  if(self->getArray())
3142      {
3143 -      MCAuto<DataArrayInt> arr(getArray()->convertToIntArr());
3144 +      MCAuto<typename Traits<U>::ArrayType> arr(self->getArray()->convertToOtherTypeOfArr<U>());
3145        ret->setArray(arr);
3146      }
3147    return ret.retn();
3148  }
3149  
3150 +MEDCouplingFieldInt *MEDCouplingFieldDouble::convertToIntField() const
3151 +{
3152 +  return ConvertToUField<int>(this);
3153 +}
3154 +
3155 +MEDCouplingFieldFloat *MEDCouplingFieldDouble::convertToFloatField() const
3156 +{
3157 +  return ConvertToUField<float>(this);
3158 +}
3159 +
3160  MEDCouplingFieldDouble::MEDCouplingFieldDouble(TypeOfField type, TypeOfTimeDiscretization td):MEDCouplingFieldT<double>(type,MEDCouplingTimeDiscretization::New(td))
3161  {
3162  }
3163 @@ -616,7 +559,7 @@
3164  /*!
3165   * Returns the maximal value and all its locations within \a this scalar field.
3166   * Only the first of available data arrays is checked.
3167 - *  \param [out] tupleIds - a new instance of DataArrayInt containg indices of
3168 + *  \param [out] tupleIds - a new instance of DataArrayInt containing indices of
3169   *               tuples holding the maximal value. The caller is to delete it using
3170   *               decrRef() as it is no more needed.
3171   *  \return double - the maximal value among all values of the first array of \a this filed.
3172 @@ -680,7 +623,7 @@
3173  /*!
3174   * Returns the minimal value and all its locations within \a this scalar field.
3175   * Only the first of available data arrays is checked.
3176 - *  \param [out] tupleIds - a new instance of DataArrayInt containg indices of
3177 + *  \param [out] tupleIds - a new instance of DataArrayInt containing indices of
3178   *               tuples holding the minimal value. The caller is to delete it using
3179   *               decrRef() as it is no more needed.
3180   *  \return double - the minimal value among all values of the first array of \a this filed.
3181 @@ -1644,7 +1587,7 @@
3182   *  \throw If \a other == NULL.
3183   *  \throw If any of the meshes is not well defined.
3184   *  \throw If the two meshes do not match.
3185 - *  \throw If field values at merged nodes (if any) deffer more than \a eps.
3186 + *  \throw If field values at merged nodes (if any) differ more than \a eps.
3187   *
3188   *  \if ENABLE_EXAMPLES
3189   *  \ref cpp_mcfielddouble_changeUnderlyingMesh "Here is a C++ example".<br>
3190 @@ -1692,7 +1635,7 @@
3191   *  \throw If any of the meshes is not set or is not well defined.
3192   *  \throw If the two meshes do not match.
3193   *  \throw If the two fields are not coherent for merge.
3194 - *  \throw If field values at merged nodes (if any) deffer more than \a eps.
3195 + *  \throw If field values at merged nodes (if any) differ more than \a eps.
3196   *
3197   *  \if ENABLE_EXAMPLES
3198   *  \ref cpp_mcfielddouble_substractInPlaceDM "Here is a C++ example".<br>
3199 @@ -1725,7 +1668,7 @@
3200   *  \throw If the mesh is not well defined.
3201   *  \throw If the spatial discretization of \a this field is NULL.
3202   *  \throw If the data array is not set.
3203 - *  \throw If field values at merged nodes (if any) deffer more than \a epsOnVals.
3204 + *  \throw If field values at merged nodes (if any) differ more than \a epsOnVals.
3205   */
3206  bool MEDCouplingFieldDouble::mergeNodes(double eps, double epsOnVals)
3207  {
3208 @@ -1764,7 +1707,7 @@
3209   *  \throw If the mesh is not well defined.
3210   *  \throw If the spatial discretization of \a this field is NULL.
3211   *  \throw If the data array is not set.
3212 - *  \throw If field values at merged nodes (if any) deffer more than \a epsOnVals.
3213 + *  \throw If field values at merged nodes (if any) differ more than \a epsOnVals.
3214   */
3215  bool MEDCouplingFieldDouble::mergeNodesCenter(double eps, double epsOnVals)
3216  {
3217 @@ -1801,7 +1744,7 @@
3218   *  \throw If the mesh is not well defined.
3219   *  \throw If the spatial discretization of \a this field is NULL.
3220   *  \throw If the data array is not set.
3221 - *  \throw If field values at merged nodes (if any) deffer more than \a epsOnVals.
3222 + *  \throw If field values at merged nodes (if any) differ more than \a epsOnVals.
3223   */
3224  bool MEDCouplingFieldDouble::zipCoords(double epsOnVals)
3225  {
3226 @@ -1842,7 +1785,7 @@
3227   *  \throw If the mesh is not well defined.
3228   *  \throw If the spatial discretization of \a this field is NULL.
3229   *  \throw If the data array is not set.
3230 - *  \throw If field values at merged cells (if any) deffer more than \a epsOnVals.
3231 + *  \throw If field values at merged cells (if any) differ more than \a epsOnVals.
3232   */
3233  bool MEDCouplingFieldDouble::zipConnectivity(int compType, double epsOnVals)
3234  {
3235 @@ -2070,7 +2013,7 @@
3236  
3237  /*!
3238   * This is expected to be a 3 components vector field on nodes (if not an exception will be thrown). \a this is also expected to lie on a MEDCouplingPointSet mesh.
3239 - * Finaly \a this is also expected to be consistent.
3240 + * Finally \a this is also expected to be consistent.
3241   * In these conditions this method returns a newly created field (to be dealed by the caller).
3242   * The returned field will also 3 compo vector field be on nodes lying on the same mesh than \a this.
3243   * 
3244 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldDouble.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldDouble.hxx
3245 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldDouble.hxx  2018-04-19 17:04:36.708222144 +0200
3246 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldDouble.hxx  2018-04-19 17:25:17.994802437 +0200
3247 @@ -41,8 +41,6 @@
3248      MEDCOUPLING_EXPORT std::string writeVTK(const std::string& fileName, bool isBinary=true) const;
3249      MEDCOUPLING_EXPORT bool areCompatibleForMerge(const MEDCouplingField *other) const;
3250      MEDCOUPLING_EXPORT bool areCompatibleForMeld(const MEDCouplingFieldDouble *other) const;
3251 -    MEDCOUPLING_EXPORT void renumberCells(const int *old2NewBg, bool check=true);
3252 -    MEDCOUPLING_EXPORT void renumberCellsWithoutMesh(const int *old2NewBg, bool check=true);
3253      MEDCOUPLING_EXPORT void renumberNodes(const int *old2NewBg, double eps=1e-15);
3254      MEDCOUPLING_EXPORT void renumberNodesWithoutMesh(const int *old2NewBg, int newNbOfNodes, double eps=1e-15);
3255      MEDCOUPLING_EXPORT DataArrayInt *findIdsInRange(double vmin, double vmax) const;
3256 @@ -52,6 +50,7 @@
3257      MEDCOUPLING_EXPORT MEDCouplingFieldDouble *nodeToCellDiscretization() const;
3258      MEDCOUPLING_EXPORT MEDCouplingFieldDouble *cellToNodeDiscretization() const;
3259      MEDCOUPLING_EXPORT MEDCouplingFieldInt *convertToIntField() const;
3260 +    MEDCOUPLING_EXPORT MEDCouplingFieldFloat *convertToFloatField() const;
3261      MEDCOUPLING_EXPORT double getIJK(int cellId, int nodeIdInCell, int compoId) const;
3262      MEDCOUPLING_EXPORT double accumulate(int compId) const;
3263      MEDCOUPLING_EXPORT void accumulate(double *res) const;
3264 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingField.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingField.hxx
3265 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingField.hxx        2018-04-19 17:04:36.706222105 +0200
3266 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingField.hxx        2018-04-19 17:25:18.045803445 +0200
3267 @@ -48,9 +48,6 @@
3268      MEDCOUPLING_EXPORT virtual bool areCompatibleForMerge(const MEDCouplingField *other) const;
3269      MEDCOUPLING_EXPORT virtual bool areStrictlyCompatible(const MEDCouplingField *other) const;
3270      MEDCOUPLING_EXPORT virtual bool areStrictlyCompatibleForMulDiv(const MEDCouplingField *other) const;
3271 -    MEDCOUPLING_EXPORT virtual bool isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec, std::string& reason) const;
3272 -    MEDCOUPLING_EXPORT virtual bool isEqual(const MEDCouplingField *other, double meshPrec, double valsPrec) const;
3273 -    MEDCOUPLING_EXPORT virtual bool isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const;
3274      MEDCOUPLING_EXPORT virtual void copyTinyStringsFrom(const MEDCouplingField *other);
3275      MEDCOUPLING_EXPORT void setMesh(const MEDCoupling::MEDCouplingMesh *mesh);
3276      MEDCOUPLING_EXPORT const MEDCoupling::MEDCouplingMesh *getMesh() const { return _mesh; }
3277 @@ -96,6 +93,8 @@
3278      MEDCOUPLING_EXPORT MEDCouplingField(const MEDCouplingField& other, bool deepCopy=true);
3279      MEDCOUPLING_EXPORT MEDCouplingField(MEDCouplingFieldDiscretization *type, NatureOfField nature=NoNature);
3280      MEDCOUPLING_EXPORT virtual ~MEDCouplingField();
3281 +    MEDCOUPLING_EXPORT bool isEqualIfNotWhyProtected(const MEDCouplingField *other, double meshPrec, std::string& reason) const;
3282 +    MEDCOUPLING_EXPORT bool isEqualWithoutConsideringStrProtected(const MEDCouplingField *other, double meshPrec) const;
3283    protected:
3284      std::string _name;
3285      std::string _desc;
3286 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldTemplate.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldTemplate.cxx
3287 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldTemplate.cxx        2018-04-19 17:04:36.708222144 +0200
3288 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldTemplate.cxx        2018-04-19 17:25:18.095804433 +0200
3289 @@ -59,6 +59,22 @@
3290    return new MEDCouplingFieldTemplate(f,false);
3291  }
3292  
3293 +bool MEDCouplingFieldTemplate::isEqualIfNotWhy(const MEDCouplingFieldTemplate *other, double meshPrec, std::string& reason) const
3294 +{
3295 +  return isEqualIfNotWhyProtected(other,meshPrec,reason);
3296 +}
3297 +
3298 +bool MEDCouplingFieldTemplate::isEqual(const MEDCouplingFieldTemplate *other, double meshPrec) const
3299 +{
3300 +  std::string tmp;
3301 +  return isEqualIfNotWhyProtected(other,meshPrec,tmp);
3302 +}
3303 +
3304 +bool MEDCouplingFieldTemplate::isEqualWithoutConsideringStr(const MEDCouplingFieldTemplate *other, double meshPrec) const
3305 +{
3306 +  return isEqualWithoutConsideringStrProtected(other,meshPrec);
3307 +}
3308 +
3309  /*!
3310   * The user should \b not use this method. Only useful for CORBA serialization/unserialization.
3311   */
3312 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldTemplate.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldTemplate.hxx
3313 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldTemplate.hxx        2018-04-19 17:04:36.708222144 +0200
3314 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldTemplate.hxx        2018-04-19 17:25:18.043803405 +0200
3315 @@ -48,6 +48,9 @@
3316      MEDCOUPLING_EXPORT static MEDCouplingFieldTemplate *NewWithoutCheck(const MEDCouplingFieldDouble& f);
3317      MEDCOUPLING_EXPORT static MEDCouplingFieldTemplate *NewWithoutCheck(const MEDCouplingFieldFloat& f);
3318      MEDCOUPLING_EXPORT static MEDCouplingFieldTemplate *NewWithoutCheck(const MEDCouplingFieldInt& f);
3319 +    MEDCOUPLING_EXPORT bool isEqualIfNotWhy(const MEDCouplingFieldTemplate *other, double meshPrec, std::string& reason) const;
3320 +    MEDCOUPLING_EXPORT bool isEqual(const MEDCouplingFieldTemplate *other, double meshPrec) const;
3321 +    MEDCOUPLING_EXPORT bool isEqualWithoutConsideringStr(const MEDCouplingFieldTemplate *other, double meshPrec) const;
3322      MEDCOUPLING_EXPORT std::string simpleRepr() const;
3323      MEDCOUPLING_EXPORT std::string advancedRepr() const;
3324      MEDCOUPLING_EXPORT void checkConsistencyLight() const;
3325 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldT.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldT.hxx
3326 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldT.hxx       2018-04-19 17:04:36.708222144 +0200
3327 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldT.hxx       2018-04-19 17:25:18.038803306 +0200
3328 @@ -75,8 +75,9 @@
3329      MEDCOUPLING_EXPORT double getStartTime(int& iteration, int& order) const { return _time_discr->getStartTime(iteration,order); }
3330      MEDCOUPLING_EXPORT double getEndTime(int& iteration, int& order) const { return _time_discr->getEndTime(iteration,order); }
3331      MEDCOUPLING_EXPORT T getIJ(int tupleId, int compoId) const { return getArray()->getIJ(tupleId,compoId); }
3332 -    MEDCOUPLING_EXPORT bool isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec, std::string& reason) const;
3333 -    MEDCOUPLING_EXPORT bool isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const;
3334 +    MEDCOUPLING_EXPORT virtual bool isEqual(const MEDCouplingFieldT<T> *other, double meshPrec, T valsPrec) const;
3335 +    MEDCOUPLING_EXPORT virtual bool isEqualIfNotWhy(const MEDCouplingFieldT<T> *other, double meshPrec, T valsPrec, std::string& reason) const;
3336 +    MEDCOUPLING_EXPORT virtual bool isEqualWithoutConsideringStr(const MEDCouplingFieldT<T> *other, double meshPrec, T valsPrec) const;
3337      MEDCOUPLING_EXPORT void copyTinyStringsFrom(const MEDCouplingField *other);
3338      MEDCOUPLING_EXPORT bool areStrictlyCompatible(const MEDCouplingField *other) const;
3339      MEDCOUPLING_EXPORT bool areStrictlyCompatibleForMulDiv(const MEDCouplingField *other) const;
3340 @@ -87,6 +88,8 @@
3341      MEDCOUPLING_EXPORT bool areCompatibleForDiv(const MEDCouplingField *other) const;
3342      MEDCOUPLING_EXPORT void copyTinyAttrFrom(const MEDCouplingFieldT<T> *other);
3343      MEDCOUPLING_EXPORT void copyAllTinyAttrFrom(const MEDCouplingFieldT<T> *other);
3344 +    MEDCOUPLING_EXPORT void renumberCells(const int *old2NewBg, bool check=true);
3345 +    MEDCOUPLING_EXPORT void renumberCellsWithoutMesh(const int *old2NewBg, bool check=true);
3346      //
3347      MEDCOUPLING_EXPORT void getTinySerializationIntInformation(std::vector<int>& tinyInfo) const;
3348      MEDCOUPLING_EXPORT void getTinySerializationDbleInformation(std::vector<double>& tinyInfo) const;
3349 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldT.txx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldT.txx
3350 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingFieldT.txx       2018-04-19 17:04:36.708222144 +0200
3351 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingFieldT.txx       2018-04-19 17:25:18.037803287 +0200
3352 @@ -117,21 +117,22 @@
3353        }
3354      return ret.retn();
3355    }
3356 +
3357 +  template<class T>
3358 +  bool MEDCouplingFieldT<T>::isEqual(const MEDCouplingFieldT<T> *other, double meshPrec, T valsPrec) const
3359 +  {
3360 +    std::string tmp;
3361 +    return isEqualIfNotWhy(other,meshPrec,valsPrec,tmp);
3362 +  }
3363    
3364    template<class T>
3365 -  bool MEDCouplingFieldT<T>::isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec, std::string& reason) const
3366 +  bool MEDCouplingFieldT<T>::isEqualIfNotWhy(const MEDCouplingFieldT<T> *other, double meshPrec, T valsPrec, std::string& reason) const
3367    {
3368      if(!other)
3369        throw INTERP_KERNEL::Exception("MEDCouplingFieldT::isEqualIfNotWhy : other instance is NULL !");
3370 -    const MEDCouplingFieldT<T> *otherC(dynamic_cast<const MEDCouplingFieldT<T> *>(other));
3371 -    if(!otherC)
3372 -      {
3373 -        reason="field given in input is not castable in MEDCouplingFieldT !";
3374 -        return false;
3375 -      }
3376 -    if(!MEDCouplingField::isEqualIfNotWhy(other,meshPrec,valsPrec,reason))
3377 +    if(!isEqualIfNotWhyProtected(other,meshPrec,reason))
3378        return false;
3379 -    if(!_time_discr->isEqualIfNotWhy(otherC->_time_discr,T(valsPrec),reason))
3380 +    if(!_time_discr->isEqualIfNotWhy(other->_time_discr,T(valsPrec),reason))
3381        {
3382          reason.insert(0,"In FieldT time discretizations differ :");
3383          return false;
3384 @@ -150,14 +151,13 @@
3385     *  \throw If the spatial discretization of \a this field is NULL.
3386     */
3387    template<class T>
3388 -  bool MEDCouplingFieldT<T>::isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const
3389 +  bool MEDCouplingFieldT<T>::isEqualWithoutConsideringStr(const MEDCouplingFieldT<T> *other, double meshPrec, T valsPrec) const
3390    {
3391 -    const MEDCouplingFieldT<T> *otherC(dynamic_cast<const MEDCouplingFieldT<T> *>(other));
3392 -    if(!otherC)
3393 +    if(!other)
3394        return false;
3395 -    if(!MEDCouplingField::isEqualWithoutConsideringStr(other,meshPrec,valsPrec))
3396 +    if(!isEqualWithoutConsideringStrProtected(other,meshPrec))
3397        return false;
3398 -    if(!_time_discr->isEqualWithoutConsideringStr(otherC->_time_discr,T(valsPrec)))
3399 +    if(!_time_discr->isEqualWithoutConsideringStr(other->_time_discr,valsPrec))
3400        return false;
3401      return true;
3402    }
3403 @@ -204,6 +204,78 @@
3404    }
3405    
3406    /*!
3407 +   * Permutes values of \a this field according to a given permutation array for cells
3408 +   * renumbering. The underlying mesh is deeply copied and its cells are also permuted. 
3409 +   * The number of cells remains the same; for that the permutation array \a old2NewBg
3410 +   * should not contain equal ids.
3411 +   * ** Warning, this method modifies the mesh aggreagated by \a this (by performing a deep copy ) **.
3412 +   *
3413 +   *  \param [in] old2NewBg - the permutation array in "Old to New" mode. Its length is
3414 +   *         to be equal to \a this->getMesh()->getNumberOfCells().
3415 +   *  \param [in] check - if \c true, \a old2NewBg is transformed to a new permutation
3416 +   *         array, so that its maximal cell id to correspond to (be less than) the number
3417 +   *         of cells in mesh. This new array is then used for the renumbering. If \a 
3418 +   *         check == \c false, \a old2NewBg is used as is, that is less secure as validity 
3419 +   *         of ids in \a old2NewBg is not checked.
3420 +   *  \throw If the mesh is not set.
3421 +   *  \throw If the spatial discretization of \a this field is NULL.
3422 +   *  \throw If \a check == \c true and \a old2NewBg contains equal ids.
3423 +   *  \throw If mesh nature does not allow renumbering (e.g. structured mesh).
3424 +   * 
3425 +   *  \if ENABLE_EXAMPLES
3426 +   *  \ref cpp_mcfielddouble_renumberCells "Here is a C++ example".<br>
3427 +   *  \ref  py_mcfielddouble_renumberCells "Here is a Python example".
3428 +   *  \endif
3429 +   */
3430 +  template<class T>
3431 +  void MEDCouplingFieldT<T>::renumberCells(const int *old2NewBg, bool check)
3432 +  {
3433 +    renumberCellsWithoutMesh(old2NewBg,check);
3434 +    MCAuto<MEDCouplingMesh> m(_mesh->deepCopy());
3435 +    m->renumberCells(old2NewBg,check);
3436 +    setMesh(m);
3437 +    updateTime();
3438 +  }
3439 +
3440 +  /*!
3441 +   * Permutes values of \a this field according to a given permutation array for cells
3442 +   * renumbering. The underlying mesh is \b not permuted. 
3443 +   * The number of cells remains the same; for that the permutation array \a old2NewBg
3444 +   * should not contain equal ids.
3445 +   * This method performs a part of job of renumberCells(). The reasonable use of this
3446 +   * method is only for multi-field instances lying on the same mesh to avoid a
3447 +   * systematic duplication and renumbering of _mesh attribute. 
3448 +   * \warning Use this method with a lot of care!
3449 +   *  \param [in] old2NewBg - the permutation array in "Old to New" mode. Its length is
3450 +   *         to be equal to \a this->getMesh()->getNumberOfCells().
3451 +   *  \param [in] check - if \c true, \a old2NewBg is transformed to a new permutation
3452 +   *         array, so that its maximal cell id to correspond to (be less than) the number
3453 +   *         of cells in mesh. This new array is then used for the renumbering. If \a 
3454 +   *         check == \c false, \a old2NewBg is used as is, that is less secure as validity 
3455 +   *         of ids in \a old2NewBg is not checked.
3456 +   *  \throw If the mesh is not set.
3457 +   *  \throw If the spatial discretization of \a this field is NULL.
3458 +   *  \throw If \a check == \c true and \a old2NewBg contains equal ids.
3459 +   *  \throw If mesh nature does not allow renumbering (e.g. structured mesh).
3460 +   */
3461 +  template<class T>
3462 +  void MEDCouplingFieldT<T>::renumberCellsWithoutMesh(const int *old2NewBg, bool check)
3463 +  {
3464 +    if(!_mesh)
3465 +      throw INTERP_KERNEL::Exception("Expecting a defined mesh to be able to operate a renumbering !");
3466 +    if(_type.isNull())
3467 +      throw INTERP_KERNEL::Exception("Expecting a spatial discretization to be able to operate a renumbering !");
3468 +    //
3469 +    _type->renumberCells(old2NewBg,check);
3470 +    std::vector< typename MEDCoupling::Traits<T>::ArrayType *> arrays;
3471 +    timeDiscrSafe()->getArrays(arrays);
3472 +    std::vector<DataArray *> arrays2(arrays.size()); std::copy(arrays.begin(),arrays.end(),arrays2.begin());
3473 +    _type->renumberArraysForCell(_mesh,arrays2,old2NewBg,check);
3474 +    //
3475 +    updateTime();
3476 +  }
3477 +  
3478 +  /*!
3479     * This method is more strict than MEDCouplingField::areCompatibleForMerge method.
3480     * This method is used for operation on fields to operate a first check before attempting operation.
3481     */
3482 @@ -369,7 +441,7 @@
3483    }
3484  
3485    /*!
3486 -   * Builds a newly created field, that the caller will have the responsability to deal with.
3487 +   * Builds a newly created field, that the caller will have the responsibility to deal with.
3488     * \n This method makes the assumption that \a this field is correctly defined when this method is called (\a this->checkConsistencyLight() returns without any exception thrown), **no check of this will be done**.
3489     * \n This method returns a restriction of \a this so that only tuple ids specified in [ \a partBg , \a partEnd ) will be contained in the returned field.
3490     * \n Parameter [\a partBg, \a partEnd ) specifies **cell ids whatever the spatial discretization** of \a this (
3491 @@ -432,7 +504,7 @@
3492    }
3493  
3494    /*!
3495 -   * Builds a newly created field, that the caller will have the responsability to deal with (decrRef()).
3496 +   * Builds a newly created field, that the caller will have the responsibility to deal with (decrRef()).
3497     * This method makes the assumption that the field is correctly defined when this method is called, no check of this will be done.
3498     * This method returns a restriction of \a this so that only tuples with ids specified in \a part will be contained in the returned field.
3499     * Parameter \a part specifies **cell ids whatever the spatial discretization of this** (
3500 @@ -646,7 +718,7 @@
3501    }
3502  
3503    /*!
3504 -   * Contrary to MEDCouplingPointSet class the returned arrays are \b not the responsabilities of the caller.
3505 +   * Contrary to MEDCouplingPointSet class the returned arrays are \b not the responsibilities of the caller.
3506     * The values returned must be consulted only in readonly mode.
3507     */
3508    template<class T>
3509 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingIMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingIMesh.cxx
3510 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingIMesh.cxx        2018-04-19 17:04:36.709222164 +0200
3511 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingIMesh.cxx        2018-04-19 17:25:18.019802931 +0200
3512 @@ -270,7 +270,7 @@
3513  
3514  /*!
3515   * This static method is useful to condense field on cells of a MEDCouplingIMesh instance coming from a refinement ( MEDCouplingIMesh::refineWithFactor for example)
3516 - * to a coarse MEDCouplingIMesh instance. So this method can be seen as a specialization in P0P0 conservative interpolation non overlaping from fine image mesh
3517 + * to a coarse MEDCouplingIMesh instance. So this method can be seen as a specialization in P0P0 conservative interpolation non overlapping from fine image mesh
3518   * to a coarse image mesh. Only tuples ( deduced from \a fineLocInCoarse ) of \a coarseDA will be modified. Other tuples of \a coarseDA will be let unchanged.
3519   *
3520   * \param [in] coarseSt The cell structure of coarse mesh.
3521 @@ -396,7 +396,7 @@
3522  
3523  /*!
3524   * This static method is useful to condense field on cells of a MEDCouplingIMesh instance coming from a refinement ( MEDCouplingIMesh::refineWithFactor for example)
3525 - * to a coarse MEDCouplingIMesh instance. So this method can be seen as a specialization in P0P0 conservative interpolation non overlaping from fine image mesh
3526 + * to a coarse MEDCouplingIMesh instance. So this method can be seen as a specialization in P0P0 conservative interpolation non overlapping from fine image mesh
3527   * to a coarse image mesh. Only tuples ( deduced from \a fineLocInCoarse ) of \a coarseDA will be modified. Other tuples of \a coarseDA will be let unchanged.
3528   *
3529   * \param [in] coarseSt The cell structure of coarse mesh.
3530 @@ -1232,7 +1232,7 @@
3531  
3532  void MEDCouplingIMesh::renumberCells(const int *old2NewBg, bool check)
3533  {
3534 -  throw INTERP_KERNEL::Exception("Functionnality of renumbering cell not available for IMesh !");
3535 +  throw INTERP_KERNEL::Exception("Functionality of renumbering cell not available for IMesh !");
3536  }
3537  
3538  void MEDCouplingIMesh::getTinySerializationInformation(std::vector<double>& tinyInfoD, std::vector<int>& tinyInfo, std::vector<std::string>& littleStrings) const
3539 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.cxx
3540 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.cxx   2018-04-19 17:04:36.709222164 +0200
3541 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.cxx   2018-04-19 17:25:17.989802338 +0200
3542 @@ -178,7 +178,7 @@
3543  
3544  const DataArrayDouble *MEDCouplingMappedExtrudedMesh::getDirectAccessOfCoordsArrIfInStructure() const
3545  {
3546 -  throw INTERP_KERNEL::Exception("MEDCouplingMappedExtrudedMesh::getDirectAccessOfCoordsArrIfInStructure : no direct acess of DataArrayDouble holding nodes !");
3547 +  throw INTERP_KERNEL::Exception("MEDCouplingMappedExtrudedMesh::getDirectAccessOfCoordsArrIfInStructure : no direct access of DataArrayDouble holding nodes !");
3548  }
3549  
3550  bool MEDCouplingMappedExtrudedMesh::isEqualIfNotWhy(const MEDCouplingMesh *other, double prec, std::string& reason) const
3551 @@ -442,7 +442,7 @@
3552  
3553  void MEDCouplingMappedExtrudedMesh::renumberCells(const int *old2NewBg, bool check)
3554  {
3555 -  throw INTERP_KERNEL::Exception("Functionnality of renumbering cells unavailable for ExtrudedMesh");
3556 +  throw INTERP_KERNEL::Exception("Functionality of renumbering cells unavailable for ExtrudedMesh");
3557  }
3558  
3559  /*!
3560 @@ -709,7 +709,7 @@
3561    throw INTERP_KERNEL::Exception("Not implemented yet !");
3562  }
3563  
3564 -void MEDCouplingMappedExtrudedMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const
3565 +void MEDCouplingMappedExtrudedMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller) const
3566  {
3567    throw INTERP_KERNEL::Exception("Not implemented yet !");
3568  }
3569 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.hxx
3570 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.hxx   2018-04-19 17:04:36.709222164 +0200
3571 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMappedExtrudedMesh.hxx   2018-04-19 17:25:18.036803267 +0200
3572 @@ -92,7 +92,7 @@
3573      MEDCOUPLING_EXPORT void scale(const double *point, double factor);
3574      MEDCOUPLING_EXPORT std::vector<int> getDistributionOfTypes() const;
3575      MEDCOUPLING_EXPORT DataArrayInt *checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const;
3576 -    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const;
3577 +    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller=true) const;
3578      MEDCOUPLING_EXPORT MEDCouplingMesh *buildPart(const int *start, const int *end) const;
3579      MEDCOUPLING_EXPORT MEDCouplingMesh *buildPartAndReduceNodes(const int *start, const int *end, DataArrayInt*& arr) const;
3580      MEDCOUPLING_EXPORT DataArrayInt *simplexize(int policy);
3581 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArrayChar.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArrayChar.cxx
3582 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArrayChar.cxx 2018-04-19 17:04:36.714222264 +0200
3583 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArrayChar.cxx 2018-04-19 17:25:18.138805283 +0200
3584 @@ -845,7 +845,7 @@
3585  {
3586    std::size_t lgth=st.length();
3587    if(lgth==0)
3588 -    throw INTERP_KERNEL::Exception("DataArrayAsciiChar contructor with string ! Size of input string is null !");
3589 +    throw INTERP_KERNEL::Exception("DataArrayAsciiChar constructor with string ! Size of input string is null !");
3590    alloc(1,lgth);
3591    std::copy(st.begin(),st.begin()+lgth,getPointer());
3592  }
3593 @@ -882,12 +882,12 @@
3594  DataArrayAsciiChar::DataArrayAsciiChar(const std::vector<std::string>& vst, char defaultChar)
3595  {
3596    if(vst.empty())
3597 -    throw INTERP_KERNEL::Exception("DataArrayAsciiChar contructor with vector of strings ! Empty array !");
3598 +    throw INTERP_KERNEL::Exception("DataArrayAsciiChar constructor with vector of strings ! Empty array !");
3599    std::size_t nbCompo=0;
3600    for(std::vector<std::string>::const_iterator it=vst.begin();it!=vst.end();it++)
3601      nbCompo=std::max(nbCompo,(*it).length());
3602    if(nbCompo==0)
3603 -    throw INTERP_KERNEL::Exception("DataArrayAsciiChar contructor with vector of strings ! All strings in not empty vector are empty !");
3604 +    throw INTERP_KERNEL::Exception("DataArrayAsciiChar constructor with vector of strings ! All strings in not empty vector are empty !");
3605    int nbTuples=(int)vst.size();
3606    alloc(nbTuples,(int)nbCompo);
3607    char *pt=getPointer();
3608 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArray.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArray.cxx
3609 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArray.cxx     2018-04-19 17:04:36.713222244 +0200
3610 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArray.cxx     2018-04-19 17:25:18.118804888 +0200
3611 @@ -25,6 +25,12 @@
3612  #include "InterpKernelAutoPtr.hxx"
3613  #include "InterpKernelExprParser.hxx"
3614  
3615 +#include "InterpKernelAutoPtr.hxx"
3616 +#include "InterpKernelGeo2DEdgeArcCircle.hxx"
3617 +#include "InterpKernelAutoPtr.hxx"
3618 +#include "InterpKernelGeo2DNode.hxx"
3619 +#include "InterpKernelGeo2DEdgeLin.hxx"
3620 +
3621  #include <set>
3622  #include <cmath>
3623  #include <limits>
3624 @@ -631,7 +637,7 @@
3625  
3626  /*!
3627   * This method checks that [\b start, \b end) is compliant with ref length \b value.
3628 - * typicaly start in [0,\b value) and end in [0,\b value). If value==start and start==end, it is supported.
3629 + * typically start in [0,\b value) and end in [0,\b value). If value==start and start==end, it is supported.
3630   */
3631  void DataArray::CheckValueInRangeEx(int value, int start, int end, const std::string& msg)
3632  {
3633 @@ -665,9 +671,9 @@
3634   *
3635   * The input \a sliceId should be an id in [0, \a nbOfSlices) that specifies the slice of work.
3636   *
3637 - * \param [in] start - the start of the input slice of the whole work to perform splitted into slices.
3638 - * \param [in] stop - the stop of the input slice of the whole work to perform splitted into slices.
3639 - * \param [in] step - the step (that can be <0) of the input slice of the whole work to perform splitted into slices.
3640 + * \param [in] start - the start of the input slice of the whole work to perform split into slices.
3641 + * \param [in] stop - the stop of the input slice of the whole work to perform split into slices.
3642 + * \param [in] step - the step (that can be <0) of the input slice of the whole work to perform split into slices.
3643   * \param [in] sliceId - the slice id considered
3644   * \param [in] nbOfSlices - the number of slices (typically the number of cores on which the work is expected to be sliced)
3645   * \param [out] startSlice - the start of the slice considered
3646 @@ -1517,7 +1523,7 @@
3647  
3648  /*!
3649   * Returns the maximal value and all its locations within \a this one-dimensional array.
3650 - *  \param [out] tupleIds - a new instance of DataArrayInt containg indices of
3651 + *  \param [out] tupleIds - a new instance of DataArrayInt containing indices of
3652   *               tuples holding the maximal value. The caller is to delete it using
3653   *               decrRef() as it is no more needed.
3654   *  \return double - the maximal value among all values of \a this array.
3655 @@ -1535,7 +1541,7 @@
3656  
3657  /*!
3658   * Returns the minimal value and all its locations within \a this one-dimensional array.
3659 - *  \param [out] tupleIds - a new instance of DataArrayInt containg indices of
3660 + *  \param [out] tupleIds - a new instance of DataArrayInt containing indices of
3661   *               tuples holding the minimal value. The caller is to delete it using
3662   *               decrRef() as it is no more needed.
3663   *  \return double - the minimal value among all values of \a this array.
3664 @@ -1611,7 +1617,7 @@
3665  
3666  /*!
3667   * Returns the maximum norm of the vector defined by \a this array.
3668 - * This method works even if the number of components is diferent from one.
3669 + * This method works even if the number of components is different from one.
3670   * If the number of elements in \a this is 0, -1. is returned.
3671   *  \return double - the value of the maximum norm, i.e.
3672   *          the maximal absolute value among values of \a this array (whatever its number of components).
3673 @@ -1634,7 +1640,7 @@
3674  
3675  /*!
3676   * Returns the minimum norm (absolute value) of the vector defined by \a this array.
3677 - * This method works even if the number of components is diferent from one.
3678 + * This method works even if the number of components is different from one.
3679   * If the number of elements in \a this is 0, std::numeric_limits<double>::max() is returned.
3680   *  \return double - the value of the minimum norm, i.e.
3681   *          the minimal absolute value among values of \a this array (whatever its number of components).
3682 @@ -2490,6 +2496,38 @@
3683  }
3684  
3685  /*!
3686 + * This method expects that \a this stores 3 tuples containing 2 components each.
3687 + * Each of this tuples represent a point into 2D space.
3688 + * This method tries to find an arc of circle starting from first point (tuple) to 2nd and middle point (tuple) along 3nd and last point (tuple).
3689 + * If such arc of circle exists, the corresponding center, radius of circle is returned. And additionnaly the length of arc expressed with an \a ang output variable in ]0,2*pi[.
3690 + *  
3691 + *  \throw If \a this is not allocated.
3692 + *  \throw If \a this has not 3 tuples of 2 components
3693 + *  \throw If tuples/points in \a this are aligned
3694 + */
3695 +void DataArrayDouble::asArcOfCircle(double center[2], double& radius, double& ang) const
3696 +{
3697 +  checkAllocated();
3698 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(1e-14);
3699 +  if(getNumberOfTuples()!=3 && getNumberOfComponents()!=2)
3700 +    throw INTERP_KERNEL::Exception("DataArrayDouble::asArcCircle : this method expects");
3701 +  const double *pt(begin());
3702 +  MCAuto<INTERP_KERNEL::Node> n0(new INTERP_KERNEL::Node(pt[0],pt[1])),n1(new INTERP_KERNEL::Node(pt[2],pt[3])),n2(new INTERP_KERNEL::Node(pt[4],pt[5]));
3703 +  {
3704 +    INTERP_KERNEL::AutoCppPtr<INTERP_KERNEL::EdgeLin> e1(new INTERP_KERNEL::EdgeLin(n0,n2)),e2(new INTERP_KERNEL::EdgeLin(n2,n1));
3705 +    INTERP_KERNEL::SegSegIntersector inters(*e1,*e2);
3706 +    bool colinearity(inters.areColinears());
3707 +    if(colinearity)
3708 +      throw INTERP_KERNEL::Exception("DataArrayDouble::asArcOfCircle : 3 points in this have been detected as colinear !");
3709 +  }
3710 +  INTERP_KERNEL::AutoCppPtr<INTERP_KERNEL::EdgeArcCircle> ret(new INTERP_KERNEL::EdgeArcCircle(n0,n2,n1));
3711 +  const double *c(ret->getCenter());
3712 +  center[0]=c[0]; center[1]=c[1];
3713 +  radius=ret->getRadius();
3714 +  ang=ret->getAngle();
3715 +}
3716 +
3717 +/*!
3718   * Sorts value within every tuple of \a this array.
3719   *  \param [in] asc - if \a true, the values are sorted in ascending order, else,
3720   *              in descending order.
3721 @@ -3005,7 +3043,7 @@
3722  }
3723  
3724  /*!
3725 - * Returns a new DataArrayInt contating indices of tuples of \a this one-dimensional
3726 + * Returns a new DataArrayInt containing indices of tuples of \a this one-dimensional
3727   * array whose values are within a given range. Textual data is not copied.
3728   *  \param [in] vmin - a lowest acceptable value (included).
3729   *  \param [in] vmax - a greatest acceptable value (included).
3730 @@ -3036,7 +3074,7 @@
3731  }
3732  
3733  /*!
3734 - * Returns a new DataArrayInt contating indices of tuples of \a this one-dimensional
3735 + * Returns a new DataArrayInt containing indices of tuples of \a this one-dimensional
3736   * array whose values are not within a given range. Textual data is not copied.
3737   *  \param [in] vmin - a lowest not acceptable value (excluded).
3738   *  \param [in] vmax - a greatest not acceptable value (excluded).
3739 @@ -3955,7 +3993,7 @@
3740   *  \throw If any value of \a this can't be used as a valid index for 
3741   *         [\a indArrBg, \a indArrEnd).
3742   *
3743 - *  \sa changeValue
3744 + *  \sa changeValue, findIdForEach
3745   */
3746  void DataArrayInt::transformWithIndArr(const int *indArrBg, const int *indArrEnd)
3747  {
3748 @@ -3970,7 +4008,7 @@
3749        else
3750          {
3751            std::ostringstream oss; oss << "DataArrayInt::transformWithIndArr : error on tuple #" << i << " of this value is " << *pt << ", should be in [0," << nbElemsIn << ") !";
3752 -          throw INTERP_KERNEL::Exception(oss.str().c_str());
3753 +          throw INTERP_KERNEL::Exception(oss.str());
3754          }
3755      }
3756    this->declareAsNew();
3757 @@ -3981,7 +4019,7 @@
3758    this->checkAllocated();
3759    if(this->getNumberOfComponents()!=1)
3760      throw INTERP_KERNEL::Exception("Call transformWithIndArr method on DataArrayInt with only one component, you can call 'rearrange' method before !");
3761 -  const std::map<int,int> dat(m.data());
3762 +  const std::map<int,int>& dat(m.data());
3763    int nbOfTuples(getNumberOfTuples()),*pt(getPointer());
3764    for(int i=0;i<nbOfTuples;i++,pt++)
3765      {
3766 @@ -3991,7 +4029,7 @@
3767        else
3768          {
3769            std::ostringstream oss; oss << "DataArrayInt::transformWithIndArr : error on tuple #" << i << " of this value is " << *pt << " not in map !";
3770 -          throw INTERP_KERNEL::Exception(oss.str().c_str());
3771 +          throw INTERP_KERNEL::Exception(oss.str());
3772          }
3773      }
3774    this->declareAsNew();
3775 @@ -4169,14 +4207,16 @@
3776   *  \sa invertArrayN2O2O2N
3777   *  \endif
3778   */
3779 -MCAuto< MapKeyVal<int> > DataArrayInt::invertArrayN2O2O2NOptimized() const
3780 +MCAuto< MapKeyVal<int> > DataArrayInt32::invertArrayN2O2O2NOptimized() const
3781  {
3782    checkAllocated();
3783 +  if(getNumberOfComponents()!=1)
3784 +    throw INTERP_KERNEL::Exception("DataArrayInt32::invertArrayN2O2O2NOptimized : single component expected !");
3785    MCAuto< MapKeyVal<int> > ret(MapKeyVal<int>::New());
3786    std::map<int,int>& m(ret->data());
3787    const int *new2Old(begin());
3788 -  int nbOfNewElems(this->getNumberOfTuples());
3789 -  for(int i=0;i<nbOfNewElems;i++)
3790 +  std::size_t nbOfNewElems(this->getNumberOfTuples());
3791 +  for(std::size_t i=0;i<nbOfNewElems;i++)
3792      {
3793        int v(new2Old[i]);
3794        m[v]=i;
3795 @@ -4212,17 +4252,25 @@
3796  }
3797  
3798  /*!
3799 - * This method tries to find the permutation to apply to the first input \a ids1 to obtain the same array (without considering strings informations) the second
3800 + * This method tries to find the permutation to apply to the first input \a ids1 to obtain the same array (without considering strings information) the second
3801   * input array \a ids2.
3802   * \a ids1 and \a ids2 are expected to be both a list of ids (both with number of components equal to one) not sorted and with values that can be negative.
3803   * This method will throw an exception is no such permutation array can be obtained. It is typically the case if there is some ids in \a ids1 not in \a ids2 or
3804   * inversely.
3805 - * In case of success (no throw) : \c ids1->renumber(ret)->isEqual(ids2) where \a ret is the return of this method.
3806 + * In case of success both assertion will be true (no throw) :
3807 + * \c ids1->renumber(ret)->isEqual(ids2) where \a ret is the return of this method.
3808 + * \c ret->transformWithIndArr(ids2)->isEqual(ids1)
3809 + *
3810 + * \b Example:
3811 + * - \a ids1 : [3,1,103,4,6,10,-7,205]
3812 + * - \a ids2 : [-7,1,205,10,6,3,103,4]
3813 + * - \a return is : [5,1,6,7,4,3,0,2] because ids2[5]==ids1[0], ids2[1]==ids1[1], ids2[6]==ids1[2]...
3814   *
3815   * \return DataArrayInt * - a new instance of DataArrayInt. The caller is to delete this
3816   *          array using decrRef() as it is no more needed.
3817   * \throw If either ids1 or ids2 is null not allocated or not with one components.
3818   * 
3819 + * \sa DataArrayInt32::findIdForEach
3820   */
3821  DataArrayInt *DataArrayInt::FindPermutationFromFirstToSecond(const DataArrayInt *ids1, const DataArrayInt *ids2)
3822  {
3823 @@ -4655,6 +4703,47 @@
3824  }
3825  
3826  /*!
3827 + * This method finds for each element \a ELT in [valsBg,valsEnd) elements in \a this equal to it. Associated to ELT
3828 + * this method will return the tuple id of last element found. If there is no element in \a this equal to ELT
3829 + * an exception will be thrown.
3830 + *
3831 + * In case of success this[ret]==vals. Samely ret->transformWithIndArr(this->begin(),this->end())==vals.
3832 + * Where \a vals is the [valsBg,valsEnd) array and \a ret the array returned by this method.
3833 + * This method can be seen as an extension of FindPermutationFromFirstToSecond.
3834 + * <br>
3835 + * \b Example: <br>
3836 + * - \a this: [17,27,2,10,-4,3,12,27,16]
3837 + * - \a val : [3,16,-4,27,17]
3838 + * - result: [5,8,4,7,0]
3839 + *
3840 + * \return - An array of size std::distance(valsBg,valsEnd)
3841 + *
3842 + * \sa DataArrayInt32::FindPermutationFromFirstToSecond
3843 + */
3844 +MCAuto<DataArrayInt32> DataArrayInt32::findIdForEach(const int *valsBg, const int *valsEnd) const
3845 +{
3846 +  MCAuto<DataArrayInt32> ret(DataArrayInt32::New());
3847 +  std::size_t nbOfTuplesOut(std::distance(valsBg,valsEnd));
3848 +  ret->alloc(nbOfTuplesOut,1);
3849 +  MCAuto< MapKeyVal<int> > zeMap(invertArrayN2O2O2NOptimized());
3850 +  const std::map<int,int>& dat(zeMap->data());
3851 +  int *ptToFeed(ret->getPointer());
3852 +  for(const int *pt=valsBg;pt!=valsEnd;pt++)
3853 +    {
3854 +      std::map<int,int>::const_iterator it(dat.find(*pt));
3855 +      if(it!=dat.end())
3856 +        *ptToFeed++=(*it).second;
3857 +      else
3858 +        {
3859 +          std::ostringstream oss; oss << "DataArrayInt32::findIdForEach : error for element at place " << std::distance(valsBg,pt);
3860 +          oss << " of input array value is " << *pt << " which is not in this !";
3861 +          throw INTERP_KERNEL::Exception(oss.str());
3862 +        }
3863 +    }
3864 +  return ret;
3865 +}
3866 +
3867 +/*!
3868   * Assigns \a newValue to all elements holding \a oldValue within \a this
3869   * one-dimensional array.
3870   *  \param [in] oldValue - the value to replace.
3871 @@ -5567,7 +5656,7 @@
3872  }
3873  
3874  /*!
3875 - * This method allows to put a vector of vector of integer into a more compact data stucture (skyline). 
3876 + * This method allows to put a vector of vector of integer into a more compact data structure (skyline). 
3877   * This method is not available into python because no available optimized data structure available to map std::vector< std::vector<int> >.
3878   *
3879   * \param [in] v the input data structure to be translate into skyline format.
3880 @@ -5791,7 +5880,7 @@
3881   * "MEDCouplingUMesh::buildDescendingConnectivity" and
3882   * \ref MEDCoupling::MEDCouplingUMesh::getNodalConnectivityIndex
3883   * "MEDCouplingUMesh::getNodalConnectivityIndex" etc.
3884 - * This method preforms the reverse operation of DataArrayInt::computeOffsetsFull.
3885 + * This method performs the reverse operation of DataArrayInt::computeOffsetsFull.
3886   *  \return DataArrayInt * - a new instance of DataArrayInt, whose number of tuples
3887   *          equals to \a this->getNumberOfComponents() - 1, and number of components is 1.
3888   *          The caller is to delete this array using decrRef() as it is no more needed. 
3889 @@ -5867,7 +5956,7 @@
3890   * components remains the same and number of tuples is inceamented by one.<br>
3891   * This method is useful for allToAllV in MPI with contiguous policy. This method
3892   * differs from computeOffsets() in that the number of tuples is changed by this one.
3893 - * This method preforms the reverse operation of DataArrayInt::deltaShiftIndex.
3894 + * This method performs the reverse operation of DataArrayInt::deltaShiftIndex.
3895   *  \throw If \a this is not allocated.
3896   *  \throw If \a this->getNumberOfComponents() != 1.
3897   *
3898 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArray.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArray.hxx
3899 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArray.hxx     2018-04-19 17:04:36.713222244 +0200
3900 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArray.hxx     2018-04-19 17:25:18.131805145 +0200
3901 @@ -234,6 +234,8 @@
3902      MEDCOUPLING_EXPORT const T *getConstPointer() const { return _mem.getConstPointer(); }
3903      MEDCOUPLING_EXPORT const T *begin() const { return getConstPointer(); }
3904      MEDCOUPLING_EXPORT const T *end() const { return getConstPointer()+getNbOfElems(); }
3905 +    MEDCOUPLING_EXPORT T *rwBegin() { return getPointer(); }
3906 +    MEDCOUPLING_EXPORT T *rwEnd() { return getPointer()+getNbOfElems(); }
3907      void alloc(std::size_t nbOfTuple, std::size_t nbOfCompo=1);
3908      void useArray(const T *array, bool ownership, DeallocType type, int nbOfTuple, int nbOfCompo);
3909      void useExternalArrayWithRWAccess(const T *array, int nbOfTuple, int nbOfCompo);
3910 @@ -285,6 +287,8 @@
3911      void setContigPartOfSelectedValuesSlice(int tupleIdStart, const DataArray *aBase, int bg, int end2, int step);
3912      T getMaxValue(int& tupleId) const;
3913      T getMaxValueInArray() const;
3914 +    T getMaxAbsValue(std::size_t& tupleId) const;
3915 +    T getMaxAbsValueInArray() const;
3916      T getMinValue(int& tupleId) const;
3917      T getMinValueInArray() const;
3918      MEDCOUPLING_EXPORT void getTuple(int tupleId, T *res) const { std::copy(_mem.getConstPointerLoc(tupleId*_info_on_compo.size()),_mem.getConstPointerLoc((tupleId+1)*_info_on_compo.size()),res); }
3919 @@ -349,13 +353,13 @@
3920      MEDCOUPLING_EXPORT void reprZipWithoutNameStream(std::ostream& stream) const;
3921      MEDCOUPLING_EXPORT void reprNotTooLongWithoutNameStream(std::ostream& stream) const;
3922      MEDCOUPLING_EXPORT std::string reprNotTooLong() const;
3923 +    template<class U>
3924 +    MCAuto< typename Traits<U>::ArrayType > convertToOtherTypeOfArr() const;
3925    protected:
3926      static typename Traits<T>::ArrayType *PerformCopyOrIncrRef(bool dCpy, const typename Traits<T>::ArrayType& self);
3927      template<class OP>
3928      MCAuto<DataArrayInt32> findIdsAdv(const OP& op) const;
3929    private:
3930 -    template<class U>
3931 -    MCAuto< typename Traits<U>::ArrayType > convertToOtherTypeOfArr() const;
3932      template<class FCT>
3933      void somethingEqual(const typename Traits<T>::ArrayType *other);
3934    };
3935 @@ -470,6 +474,7 @@
3936      MEDCOUPLING_EXPORT DataArrayDouble *maxPerTupleWithCompoId(DataArrayInt32* &compoIdOfMaxPerTuple) const;
3937      MEDCOUPLING_EXPORT DataArrayDouble *buildEuclidianDistanceDenseMatrix() const;
3938      MEDCOUPLING_EXPORT DataArrayDouble *buildEuclidianDistanceDenseMatrixWith(const DataArrayDouble *other) const;
3939 +    MEDCOUPLING_EXPORT void asArcOfCircle(double center[2], double& radius, double& ang) const;
3940      MEDCOUPLING_EXPORT void sortPerTuple(bool asc);
3941      MEDCOUPLING_EXPORT void applyInv(double numerator);
3942      MEDCOUPLING_EXPORT void applyPow(double val);
3943 @@ -596,6 +601,7 @@
3944      MEDCOUPLING_EXPORT DataArrayInt32 *findIdsEqualList(const int *valsBg, const int *valsEnd) const;
3945      MEDCOUPLING_EXPORT DataArrayInt32 *findIdsNotEqualList(const int *valsBg, const int *valsEnd) const;
3946      MEDCOUPLING_EXPORT DataArrayInt32 *findIdsEqualTuple(const int *tupleBg, const int *tupleEnd) const;
3947 +    MEDCOUPLING_EXPORT MCAuto<DataArrayInt32> findIdForEach(const int *valsBg, const int *valsEnd) const;
3948      MEDCOUPLING_EXPORT int changeValue(int oldValue, int newValue);
3949      MEDCOUPLING_EXPORT int findIdFirstEqualTuple(const std::vector<int>& tupl) const;
3950      MEDCOUPLING_EXPORT int findIdFirstEqual(int value) const;
3951 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArray.txx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArray.txx
3952 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMemArray.txx     2018-04-19 17:04:36.714222264 +0200
3953 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMemArray.txx     2018-04-19 17:25:18.136805243 +0200
3954 @@ -404,7 +404,7 @@
3955    /*!
3956     * This method performs systematically an allocation of \a newNbOfElements elements in \a this.
3957     * \a _nb_of_elem and \a _nb_of_elem_alloc will be equal even if only std::min<std::size_t>(_nb_of_elem,newNbOfElements) come from the .
3958 -   * The remaing part of the new allocated chunk are available but not set previouly !
3959 +   * The remaining part of the new allocated chunk are available but not set previously !
3960     * 
3961     * So this method should not be confused with MemArray<T>::reserve that is close to MemArray<T>::reAlloc but not same.
3962     */
3963 @@ -704,7 +704,7 @@
3964    }
3965    
3966    /*!
3967 -   * This method desallocated \a this without modification of informations relative to the components.
3968 +   * This method deallocated \a this without modification of information relative to the components.
3969     * After call of this method, DataArrayDouble::isAllocated will return false.
3970     * If \a this is already not allocated, \a this is let unchanged.
3971     */
3972 @@ -718,7 +718,7 @@
3973     * This method reserve nbOfElems elements in memory ( nbOfElems*8 bytes ) \b without impacting the number of tuples in \a this.
3974     * If \a this has already been allocated, this method checks that \a this has only one component. If not an INTERP_KERNEL::Exception will be thrown.
3975     * If \a this has not already been allocated, number of components is set to one.
3976 -   * This method allows to reduce number of reallocations on invokation of DataArrayDouble::pushBackSilent and DataArrayDouble::pushBackValsSilent on \a this.
3977 +   * This method allows to reduce number of reallocations on invocation of DataArrayDouble::pushBackSilent and DataArrayDouble::pushBackValsSilent on \a this.
3978     * 
3979     * \sa DataArrayDouble::pack, DataArrayDouble::pushBackSilent, DataArrayDouble::pushBackValsSilent
3980     */
3981 @@ -769,7 +769,7 @@
3982    }
3983    
3984    /*!
3985 -   * This method adds at the end of \a this a serie of values [\c valsBg,\c valsEnd). This method do \b not update its time label to avoid useless incrementation
3986 +   * This method adds at the end of \a this a series of values [\c valsBg,\c valsEnd). This method do \b not update its time label to avoid useless incrementation
3987     * of counter. So the caller is expected to call TimeLabel::declareAsNew on \a this at the end of the push session.
3988     *
3989     *  \param [in] valsBg - an array of values to push at the end of \c this.
3990 @@ -2185,6 +2185,7 @@
3991     *  \return double - the maximal value among all values of \a this array.
3992     *  \throw If \a this->getNumberOfComponents() != 1
3993     *  \throw If \a this->getNumberOfTuples() < 1
3994 +   *  \sa getMaxAbsValue, getMinValue
3995     */
3996    template<class T>
3997    T DataArrayTemplate<T>::getMaxValue(int& tupleId) const
3998 @@ -2206,6 +2207,7 @@
3999     *  one component.
4000     *  \return double - the maximal value among all values of \a this array.
4001     *  \throw If \a this is not allocated.
4002 +   *  \sa getMaxAbsValueInArray, getMinValueInArray
4003     */
4004    template<class T>
4005    T DataArrayTemplate<T>::getMaxValueInArray() const
4006 @@ -2216,6 +2218,50 @@
4007    }
4008    
4009    /*!
4010 +   * Returns the maximal absolute value in \a this and the first occurrence location associated to it.
4011 +   * \return the element in this (positive or negative) having the max abs value in \a this.
4012 +   *  \throw If \a this is not allocated.
4013 +   *  \throw If \a this is non one component array.
4014 +   *  \throw If \a this is empty.
4015 +   */
4016 +  template<class T>
4017 +  T DataArrayTemplate<T>::getMaxAbsValue(std::size_t& tupleId) const
4018 +  {
4019 +    checkAllocated();
4020 +    if(getNumberOfComponents()!=1)
4021 +      throw INTERP_KERNEL::Exception("DataArrayDouble::getMaxAbsValue : must be applied on DataArrayDouble with only one component, you can call 'rearrange' method before or call 'getMaxValueInArray' method !");
4022 +    std::size_t nbTuples(this->getNumberOfTuples());
4023 +    if(nbTuples==0)
4024 +      throw INTERP_KERNEL::Exception("DataArrayTemplate<T>::getMaxAbsValue : empty array !");
4025 +    T ret((T)-1);
4026 +    tupleId=0;
4027 +    const T *pt(begin());
4028 +    for(std::size_t i=0;i<nbTuples;i++,pt++)
4029 +      {
4030 +        T cand(std::abs(*pt));
4031 +        if(cand>ret)
4032 +          {
4033 +            ret=cand;
4034 +            tupleId=i;
4035 +          }
4036 +      }
4037 +    return this->getIJ(tupleId,0);
4038 +  }
4039 +
4040 +  /*!
4041 +   * Returns the maximal absolute value in \a this.
4042 +   *  \throw If \a this is not allocated.
4043 +   *  \throw If \a this is non one component array.
4044 +   *  \throw If \a this is empty.
4045 +   */
4046 +  template<class T>
4047 +  T DataArrayTemplate<T>::getMaxAbsValueInArray() const
4048 +  {
4049 +    std::size_t dummy;
4050 +    return getMaxAbsValue(dummy);
4051 +  }
4052 +
4053 +  /*!
4054     * Returns the minimal value and its location within \a this one-dimensional array.
4055     *  \param [out] tupleId - index of the tuple holding the minimal value.
4056     *  \return double - the minimal value among all values of \a this array.
4057 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMesh.cxx
4058 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMesh.cxx 2018-04-19 17:04:36.715222284 +0200
4059 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMesh.cxx 2018-04-19 17:25:18.028803109 +0200
4060 @@ -237,7 +237,7 @@
4061  }
4062  
4063  /*!
4064 - * This method is very poor and looks only if \a this and \a other are candidate for merge of fields lying repectively on them.
4065 + * This method is very poor and looks only if \a this and \a other are candidate for merge of fields lying respectively on them.
4066   */
4067  bool MEDCouplingMesh::areCompatibleForMerge(const MEDCouplingMesh *other) const
4068  {
4069 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMesh.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMesh.hxx
4070 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingMesh.hxx 2018-04-19 17:04:36.715222284 +0200
4071 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingMesh.hxx 2018-04-19 17:25:17.980802160 +0200
4072 @@ -109,7 +109,7 @@
4073      MEDCOUPLING_EXPORT virtual const DataArrayDouble *getDirectAccessOfCoordsArrIfInStructure() const = 0;
4074      MEDCOUPLING_EXPORT virtual std::vector<int> getDistributionOfTypes() const = 0;
4075      MEDCOUPLING_EXPORT virtual DataArrayInt *checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const = 0;
4076 -    MEDCOUPLING_EXPORT virtual void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const = 0;
4077 +    MEDCOUPLING_EXPORT virtual void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller=true) const = 0;
4078      MEDCOUPLING_EXPORT virtual void getBoundingBox(double *bbox) const = 0;
4079      MEDCOUPLING_EXPORT virtual MEDCouplingFieldDouble *getMeasureField(bool isAbs) const = 0;
4080      MEDCOUPLING_EXPORT virtual MEDCouplingFieldDouble *getMeasureFieldOnNode(bool isAbs) const = 0;
4081 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx
4082 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx   2018-04-19 17:04:36.715222284 +0200
4083 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx   2018-04-19 17:25:18.106804650 +0200
4084 @@ -22,6 +22,7 @@
4085  #define __MEDCOUPLINGNORMALIZEDUNSTRUCTUREDMESH_TXX__
4086  
4087  #include "MEDCouplingNormalizedUnstructuredMesh.hxx"
4088 +#include "InterpKernelAssert.hxx"
4089  
4090  #include "MEDCouplingUMesh.hxx"
4091  #include "MEDCoupling1GTUMesh.hxx"
4092 @@ -124,6 +125,7 @@
4093  template<int SPACEDIM,int MESHDIM>
4094  void MEDCouplingNormalizedUnstructuredMesh<SPACEDIM,MESHDIM>::prepare()
4095  {
4096 +  IKAssert(_mesh->getSpaceDimension()==SPACEDIM);
4097    const MEDCoupling::MEDCouplingUMesh *m1(dynamic_cast<const MEDCoupling::MEDCouplingUMesh *>(_mesh));
4098    if(m1)
4099      {
4100 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingPointSet.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingPointSet.cxx
4101 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingPointSet.cxx     2018-04-19 17:04:36.716222304 +0200
4102 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingPointSet.cxx     2018-04-19 17:25:18.113804789 +0200
4103 @@ -371,7 +371,7 @@
4104  /*!
4105   * @param comm in param in the same format than one returned by findCommonNodes method (\ref numbering-indirect).
4106   * @param commI in param in the same format than one returned by findCommonNodes method (\ref numbering-indirect).
4107 - * @return the old to new correspondance array.
4108 + * @return the old to new correspondence array.
4109   */
4110  DataArrayInt *MEDCouplingPointSet::buildNewNumberingFromCommonNodesFormat(const DataArrayInt *comm, const DataArrayInt *commIndex,
4111                                                                            int& newNbOfNodes) const
4112 @@ -1042,7 +1042,7 @@
4113  {
4114    if(!srcMesh || !trgMesh)
4115      throw INTERP_KERNEL::Exception("MEDCouplingPointSet::ComputeNbOfInteractionsWithSrcCells : the input meshes must be not NULL !");
4116 -  MCAuto<DataArrayDouble> sbbox(srcMesh->getBoundingBoxForBBTree()),tbbox(trgMesh->getBoundingBoxForBBTree());
4117 +  MCAuto<DataArrayDouble> sbbox(srcMesh->getBoundingBoxForBBTree(eps)),tbbox(trgMesh->getBoundingBoxForBBTree(eps));
4118    return tbbox->computeNbOfInteractionsWith(sbbox,eps);
4119  }
4120  
4121 @@ -1112,7 +1112,7 @@
4122   * \param [out] beginOut valid only if \a arr not NULL !
4123   * \param [out] endOut valid only if \a arr not NULL !
4124   * \param [out] stepOut valid only if \a arr not NULL !
4125 - * \param [out] arr correspondance old to new in node ids.
4126 + * \param [out] arr correspondence old to new in node ids.
4127   * 
4128   * \sa MEDCouplingUMesh::buildPartOfMySelfSlice
4129   */
4130 @@ -1181,6 +1181,9 @@
4131   */
4132  bool MEDCouplingPointSet::isButterfly2DCell(const std::vector<double>& res, bool isQuad, double eps)
4133  {
4134 +  INTERP_KERNEL::QuadraticPlanarPrecision prec(eps);
4135 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(eps);
4136 +
4137    std::size_t nbOfNodes(res.size()/2);
4138    std::vector<INTERP_KERNEL::Node *> nodes(nbOfNodes);
4139    for(std::size_t i=0;i<nbOfNodes;i++)
4140 @@ -1188,8 +1191,6 @@
4141        INTERP_KERNEL::Node *tmp=new INTERP_KERNEL::Node(res[2*i],res[2*i+1]);
4142        nodes[i]=tmp;
4143      }
4144 -  INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps;
4145 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps;
4146    INTERP_KERNEL::QuadraticPolygon *pol=0;
4147    if(isQuad)
4148      pol=INTERP_KERNEL::QuadraticPolygon::BuildArcCirclePolygon(nodes);
4149 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRefCountObject.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRefCountObject.cxx
4150 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRefCountObject.cxx       2018-04-19 17:04:36.716222304 +0200
4151 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRefCountObject.cxx       2018-04-19 17:25:17.998802516 +0200
4152 @@ -75,6 +75,15 @@
4153      return BIGENDIAN_STR;
4154  }
4155  
4156 +bool MEDCoupling::IsCXX11Compiled()
4157 +{
4158 +#if __cplusplus >= 201103L
4159 +  return true;
4160 +#else
4161 +  return false;
4162 +#endif
4163 +}
4164 +
4165  //=
4166  
4167  std::size_t BigMemoryObject::getHeapMemorySize() const
4168 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRefCountObject.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRefCountObject.hxx
4169 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRefCountObject.hxx       2018-04-19 17:04:36.716222304 +0200
4170 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRefCountObject.hxx       2018-04-19 17:25:18.001802575 +0200
4171 @@ -64,7 +64,8 @@
4172    MEDCOUPLING_EXPORT int MEDCouplingSizeOfVoidStar();
4173    MEDCOUPLING_EXPORT bool MEDCouplingByteOrder();
4174    MEDCOUPLING_EXPORT const char *MEDCouplingByteOrderStr();
4175 -
4176 +  MEDCOUPLING_EXPORT bool IsCXX11Compiled();
4177 +  
4178    class BigMemoryObject
4179    {
4180    public:
4181 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRemapper.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRemapper.cxx
4182 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRemapper.cxx     2018-04-19 17:04:36.716222304 +0200
4183 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRemapper.cxx     2018-04-19 17:25:17.996802476 +0200
4184 @@ -36,6 +36,7 @@
4185  #include "Interpolation2D1D.txx"
4186  #include "Interpolation2D3D.txx"
4187  #include "Interpolation3D1D.txx"
4188 +#include "Interpolation1D0D.txx"
4189  #include "InterpolationCU.txx"
4190  #include "InterpolationCC.txx"
4191  
4192 @@ -70,14 +71,8 @@
4193   */
4194  int MEDCouplingRemapper::prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method)
4195  {
4196 -  if(!srcMesh || !targetMesh)
4197 -    throw INTERP_KERNEL::Exception("MEDCouplingRemapper::prepare : presence of NULL input pointer !");
4198 -  std::string srcMethod,targetMethod;
4199 -  INTERP_KERNEL::Interpolation<INTERP_KERNEL::Interpolation3D>::CheckAndSplitInterpolationMethod(method,srcMethod,targetMethod);
4200 -  MCAuto<MEDCouplingFieldTemplate> src=MEDCouplingFieldTemplate::New(MEDCouplingFieldDiscretization::GetTypeOfFieldFromStringRepr(srcMethod));
4201 -  src->setMesh(srcMesh);
4202 -  MCAuto<MEDCouplingFieldTemplate> target=MEDCouplingFieldTemplate::New(MEDCouplingFieldDiscretization::GetTypeOfFieldFromStringRepr(targetMethod));
4203 -  target->setMesh(targetMesh);
4204 +  MCAuto<MEDCouplingFieldTemplate> src,target;
4205 +  BuildFieldTemplatesFrom(srcMesh,targetMesh,method,src,target);
4206    return prepareEx(src,target);
4207  }
4208  
4209 @@ -92,19 +87,52 @@
4210   */
4211  int MEDCouplingRemapper::prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target)
4212  {
4213 -  if(!src || !target)
4214 -    throw INTERP_KERNEL::Exception("MEDCouplingRemapper::prepareEx : presence of NULL input pointer !");
4215 -  if(!src->getMesh() || !target->getMesh())
4216 -    throw INTERP_KERNEL::Exception("MEDCouplingRemapper::prepareEx : presence of NULL mesh pointer in given field template !");
4217 -  releaseData(true);
4218 -  _src_ft=const_cast<MEDCouplingFieldTemplate *>(src); _src_ft->incrRef();
4219 -  _target_ft=const_cast<MEDCouplingFieldTemplate *>(target); _target_ft->incrRef();
4220 +  restartUsing(src,target);
4221    if(isInterpKernelOnlyOrNotOnly())
4222      return prepareInterpKernelOnly();
4223    else
4224      return prepareNotInterpKernelOnly();
4225  }
4226  
4227 +void MEDCouplingRemapper::setCrudeMatrix(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method, const std::vector<std::map<int,double> >& m)
4228 +{
4229 +  MCAuto<MEDCouplingFieldTemplate> src,target;
4230 +  BuildFieldTemplatesFrom(srcMesh,targetMesh,method,src,target);
4231 +  setCrudeMatrixEx(src,target,m);
4232 +}
4233 +
4234 +void MEDCouplingRemapper::setCrudeMatrixEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target, const std::vector<std::map<int,double> >& m)
4235 +{
4236 +#if __cplusplus >= 201103L
4237 +  restartUsing(src,target);
4238 +  if(m.size()!=target->getNumberOfTuplesExpected())
4239 +    {
4240 +      std::ostringstream oss; oss << "MEDCouplingRemapper::setMatrixEx : input matrix has " << m.size() << " rows whereas there are " << target->getNumberOfTuplesExpected() << " expected !";
4241 +      throw INTERP_KERNEL::Exception(oss.str());
4242 +    }
4243 +  auto srcNbElem(src->getNumberOfTuplesExpected());
4244 +  for(auto it: m)
4245 +    {
4246 +      for(auto it2: it)
4247 +        {
4248 +          auto idToTest(it2.first);
4249 +          if(idToTest<0 || idToTest>=srcNbElem)
4250 +            {
4251 +              std::ostringstream oss; oss << "MEDCouplingRemapper::setMatrixEx : presence of elt #" << idToTest << " ! not in [0," << srcNbElem << ") !";
4252 +              throw INTERP_KERNEL::Exception(oss.str());
4253 +            }
4254 +        }
4255 +    }
4256 +  _matrix=m;
4257 +  _deno_multiply.clear();
4258 +  _deno_multiply.resize(_matrix.size());
4259 +  _deno_reverse_multiply.clear();
4260 +  _deno_reverse_multiply.resize(srcNbElem);
4261 +#else
4262 +  throw INTERP_KERNEL::Exception("Breaking news : 10% off for C++11 compiler :)");
4263 +#endif
4264 +}
4265 +
4266  int MEDCouplingRemapper::prepareInterpKernelOnly()
4267  {
4268    int meshInterpType=((int)_src_ft->getMesh()->getType()*16)+(int)_target_ft->getMesh()->getType();
4269 @@ -311,14 +339,14 @@
4270  }
4271  
4272  /*!
4273 - * This method returns the interpolation matrix policy. This policy specifies which interpolation matrix method to keep or prefered.
4274 + * This method returns the interpolation matrix policy. This policy specifies which interpolation matrix method to keep or preferred.
4275   * If interpolation matrix policy is :
4276   *
4277 - * - set to IK_ONLY_PREFERED (0) (the default) : the INTERP_KERNEL only method is prefered. That is to say, if it is possible to treat the case
4278 + * - set to IK_ONLY_PREFERED (0) (the default) : the INTERP_KERNEL only method is preferred. That is to say, if it is possible to treat the case
4279   *   regarding spatial discretization of source and target with INTERP_KERNEL only method, INTERP_KERNEL only method will be performed.
4280   *   If not, the \b not only INTERP_KERNEL method will be attempt.
4281   * 
4282 - * - set to NOT_IK_ONLY_PREFERED (1) : the \b NOT only INTERP_KERNEL method is prefered. That is to say, if it is possible to treat the case
4283 + * - set to NOT_IK_ONLY_PREFERED (1) : the \b NOT only INTERP_KERNEL method is preferred. That is to say, if it is possible to treat the case
4284   *   regarding spatial discretization of source and target with \b NOT only INTERP_KERNEL method, \b NOT only INTERP_KERNEL method, will be performed.
4285   *   If not, the INTERP_KERNEL only method will be attempt.
4286   * 
4287 @@ -340,11 +368,11 @@
4288   *
4289   * If interpolation matrix policy is :
4290   *
4291 - * - set to IK_ONLY_PREFERED (0) (the default) : the INTERP_KERNEL only method is prefered. That is to say, if it is possible to treat the case
4292 + * - set to IK_ONLY_PREFERED (0) (the default) : the INTERP_KERNEL only method is preferred. That is to say, if it is possible to treat the case
4293   *   regarding spatial discretization of source and target with INTERP_KERNEL only method, INTERP_KERNEL only method will be performed.
4294   *   If not, the \b not only INTERP_KERNEL method will be attempt.
4295   * 
4296 - * - set to NOT_IK_ONLY_PREFERED (1) : the \b NOT only INTERP_KERNEL method is prefered. That is to say, if it is possible to treat the case
4297 + * - set to NOT_IK_ONLY_PREFERED (1) : the \b NOT only INTERP_KERNEL method is preferred. That is to say, if it is possible to treat the case
4298   *   regarding spatial discretization of source and target with \b NOT only INTERP_KERNEL method, \b NOT only INTERP_KERNEL method, will be performed.
4299   *   If not, the INTERP_KERNEL only method will be attempt.
4300   * 
4301 @@ -440,6 +468,15 @@
4302        INTERP_KERNEL::Interpolation3D1D interpolation(*this);
4303        nbCols=interpolation.interpolateMeshes(source_mesh_wrapper,target_mesh_wrapper,_matrix,method);
4304      }
4305 +  else if(srcMeshDim==1 && trgMeshDim==0 && srcSpaceDim==3)
4306 +    {
4307 +      if(getIntersectionType()!=INTERP_KERNEL::PointLocator)
4308 +        throw INTERP_KERNEL::Exception("Invalid interpolation requested between 1D and 0D into 3D space ! Select PointLocator as intersection type !");
4309 +      MEDCouplingNormalizedUnstructuredMesh<3,3> source_mesh_wrapper(src_mesh);
4310 +      MEDCouplingNormalizedUnstructuredMesh<3,3> target_mesh_wrapper(target_mesh);
4311 +      INTERP_KERNEL::Interpolation1D0D interpolation(*this);
4312 +      nbCols=interpolation.interpolateMeshes(source_mesh_wrapper,target_mesh_wrapper,_matrix,method);
4313 +    }
4314    else if(srcMeshDim==1 && trgMeshDim==3 && srcSpaceDim==3)
4315      {
4316        if(getIntersectionType()!=INTERP_KERNEL::PointLocator)
4317 @@ -507,7 +544,7 @@
4318            INTERP_KERNEL::Interpolation2D1D::DuplicateFacesType duplicateFaces=interpolation.retrieveDuplicateFaces();
4319            if(!duplicateFaces.empty())
4320              {
4321 -              std::ostringstream oss; oss << "An unexpected situation happend ! For the following 1D Cells are part of edges shared by 2D cells :\n";
4322 +              std::ostringstream oss; oss << "An unexpected situation happened ! For the following 1D Cells are part of edges shared by 2D cells :\n";
4323                for(std::map<int,std::set<int> >::const_iterator it=duplicateFaces.begin();it!=duplicateFaces.end();it++)
4324                  {
4325                    oss << "1D Cell #" << (*it).first << " is part of common edge of following 2D cells ids : ";
4326 @@ -526,7 +563,7 @@
4327        INTERP_KERNEL::Interpolation2D3D::DuplicateFacesType duplicateFaces=interpolation.retrieveDuplicateFaces();
4328        if(!duplicateFaces.empty())
4329          {
4330 -          std::ostringstream oss; oss << "An unexpected situation happend ! For the following 2D Cells are part of edges shared by 3D cells :\n";
4331 +          std::ostringstream oss; oss << "An unexpected situation happened ! For the following 2D Cells are part of edges shared by 3D cells :\n";
4332            for(std::map<int,std::set<int> >::const_iterator it=duplicateFaces.begin();it!=duplicateFaces.end();it++)
4333              {
4334                oss << "2D Cell #" << (*it).first << " is part of common face of following 3D cells ids : ";
4335 @@ -557,7 +594,7 @@
4336            INTERP_KERNEL::Interpolation2D3D::DuplicateFacesType duplicateFaces=interpolation.retrieveDuplicateFaces();
4337            if(!duplicateFaces.empty())
4338              {
4339 -              std::ostringstream oss; oss << "An unexpected situation happend ! For the following 2D Cells are part of edges shared by 3D cells :\n";
4340 +              std::ostringstream oss; oss << "An unexpected situation happened ! For the following 2D Cells are part of edges shared by 3D cells :\n";
4341                for(std::map<int,std::set<int> >::const_iterator it=duplicateFaces.begin();it!=duplicateFaces.end();it++)
4342                  {
4343                    oss << "2D Cell #" << (*it).first << " is part of common face of following 3D cells ids : ";
4344 @@ -951,7 +988,7 @@
4345  
4346  /*!
4347   * This method builds a code considering already set field discretization int \a this : \a _src_ft and \a _target_ft.
4348 - * This method returns 3 informations (2 in ouput parameters and 1 in return).
4349 + * This method returns 3 information (2 in output parameters and 1 in return).
4350   * 
4351   * \param [out] srcMeth the string code of the discretization of source field template
4352   * \param [out] trgMeth the string code of the discretization of target field template
4353 @@ -975,6 +1012,18 @@
4354    return method;
4355  }
4356  
4357 +void MEDCouplingRemapper::BuildFieldTemplatesFrom(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method, MCAuto<MEDCouplingFieldTemplate>& src, MCAuto<MEDCouplingFieldTemplate>& target)
4358 +{
4359 +  if(!srcMesh || !targetMesh)
4360 +    throw INTERP_KERNEL::Exception("MEDCouplingRemapper::BuildFieldTemplatesFrom : presence of NULL input pointer !");
4361 +  std::string srcMethod,targetMethod;
4362 +  INTERP_KERNEL::Interpolation<INTERP_KERNEL::Interpolation3D>::CheckAndSplitInterpolationMethod(method,srcMethod,targetMethod);
4363 +  src=MEDCouplingFieldTemplate::New(MEDCouplingFieldDiscretization::GetTypeOfFieldFromStringRepr(srcMethod));
4364 +  src->setMesh(srcMesh);
4365 +  target=MEDCouplingFieldTemplate::New(MEDCouplingFieldDiscretization::GetTypeOfFieldFromStringRepr(targetMethod));
4366 +  target->setMesh(targetMesh);
4367 +}
4368 +
4369  void MEDCouplingRemapper::releaseData(bool matrixSuppression)
4370  {
4371    _src_ft=0;
4372 @@ -987,6 +1036,17 @@
4373      }
4374  }
4375  
4376 +void MEDCouplingRemapper::restartUsing(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target)
4377 +{
4378 +  if(!src || !target)
4379 +    throw INTERP_KERNEL::Exception("MEDCouplingRemapper::restartUsingData : presence of NULL input pointer !");
4380 +  if(!src->getMesh() || !target->getMesh())
4381 +    throw INTERP_KERNEL::Exception("MEDCouplingRemapper::prepareEx : presence of NULL mesh pointer in given field template !");
4382 +  releaseData(true);
4383 +  _src_ft.takeRef(const_cast<MEDCouplingFieldTemplate *>(src));
4384 +  _target_ft.takeRef(const_cast<MEDCouplingFieldTemplate *>(target));
4385 +}
4386 +
4387  void MEDCouplingRemapper::transferUnderground(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, bool isDftVal, double dftValue)
4388  {
4389    if(!srcField || !targetField)
4390 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRemapper.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRemapper.hxx
4391 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingRemapper.hxx     2018-04-19 17:04:36.716222304 +0200
4392 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingRemapper.hxx     2018-04-19 17:25:18.125805026 +0200
4393 @@ -56,6 +56,8 @@
4394      MEDCOUPLINGREMAPPER_EXPORT ~MEDCouplingRemapper();
4395      MEDCOUPLINGREMAPPER_EXPORT int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method);
4396      MEDCOUPLINGREMAPPER_EXPORT int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target);
4397 +    MEDCOUPLINGREMAPPER_EXPORT void setCrudeMatrix(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method, const std::vector<std::map<int,double> >& m);
4398 +    MEDCOUPLINGREMAPPER_EXPORT void setCrudeMatrixEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target, const std::vector<std::map<int,double> >& m);
4399      MEDCOUPLINGREMAPPER_EXPORT void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue);
4400      MEDCOUPLINGREMAPPER_EXPORT void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField);
4401      MEDCOUPLINGREMAPPER_EXPORT void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue);
4402 @@ -75,6 +77,7 @@
4403      MEDCOUPLINGREMAPPER_EXPORT int getNumberOfColsOfMatrix() const;
4404      MEDCOUPLINGREMAPPER_EXPORT static void PrintMatrix(const std::vector<std::map<int,double> >& m);
4405      MEDCOUPLINGREMAPPER_EXPORT static std::string BuildMethodFrom(const std::string& meth1, const std::string& meth2);
4406 +    MEDCOUPLINGREMAPPER_EXPORT void BuildFieldTemplatesFrom(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method, MCAuto<MEDCouplingFieldTemplate>& src, MCAuto<MEDCouplingFieldTemplate>& target);
4407    private:
4408      int prepareInterpKernelOnly();
4409      int prepareInterpKernelOnlyUU();
4410 @@ -93,6 +96,7 @@
4411      void checkPrepare() const;
4412      std::string checkAndGiveInterpolationMethodStr(std::string& srcMeth, std::string& trgMeth) const;
4413      void releaseData(bool matrixSuppression);
4414 +    void restartUsing(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target);
4415      void transferUnderground(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, bool isDftVal, double dftValue);
4416      void computeDeno(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField);
4417      void computeDenoFromScratch(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField);
4418 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingSkyLineArray.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingSkyLineArray.cxx
4419 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingSkyLineArray.cxx 2018-04-19 17:04:36.716222304 +0200
4420 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingSkyLineArray.cxx 2018-04-19 17:25:18.009802733 +0200
4421 @@ -20,6 +20,8 @@
4422  #include "MEDCouplingSkyLineArray.hxx"
4423  
4424  #include <sstream>
4425 +#include <deque>
4426 +#include <set>
4427  
4428  using namespace MEDCoupling;
4429  
4430 @@ -384,8 +386,6 @@
4431   */
4432  void MEDCouplingSkyLineArray::deletePack(const int superIdx, const int idx)
4433  {
4434 -  using namespace std;
4435 -
4436    checkSuperIndex("deletePack");
4437    validSuperIndexAndIndex("deletePack", superIdx, idx);
4438  
4439 @@ -393,12 +393,12 @@
4440    int * siP(_super_index->getPointer()), *iP(_index->getPointer());
4441    const int start = iP[siP[superIdx]+idx], end = iP[siP[superIdx]+idx+1];
4442    // _values
4443 -  copy(vP+end, vP+_values->getNbOfElems(), vP+start);
4444 +  std::copy(vP+end, vP+_values->getNbOfElems(), vP+start);
4445    _values->reAlloc(_values->getNbOfElems() - (end-start));
4446  
4447    // _index
4448    int nt = _index->getNbOfElems();
4449 -  copy(iP+siP[superIdx]+idx+1, iP+nt, iP+siP[superIdx]+idx);
4450 +  std::copy(iP+siP[superIdx]+idx+1, iP+nt, iP+siP[superIdx]+idx);
4451    _index->reAlloc(nt-1); iP = _index->getPointer();  // better not forget this ...
4452    for(int ii = siP[superIdx]+idx; ii < nt-1; ii++)
4453      iP[ii] -= (end-start);
4454 @@ -408,6 +408,128 @@
4455      (siP[ii])--;
4456  }
4457  
4458 +void MEDCouplingSkyLineArray::deleteSimplePack(const int idx)
4459 +{
4460 +  validIndex("deleteSimplePack", idx);
4461 +  
4462 +  int* iP(_index->getPointer());
4463 +  const int start(iP[idx]), end(iP[idx+1]);
4464 +
4465 +  // _values
4466 +  int initValSz( _values->getNbOfElems() );
4467 +  int deltaSz( start-end );  // should be negative
4468 +  int *vP(_values->getPointer());
4469 +  if (deltaSz < 0)
4470 +    {
4471 +      std::copy(vP+end, vP+initValSz, vP+start);
4472 +      _values->reAlloc(initValSz+deltaSz);
4473 +    }
4474 +  else
4475 +    throw INTERP_KERNEL::Exception("MEDCouplingSkyLineArray::deleteSimplePack");
4476 +  // _index
4477 +  int nt(_index->getNbOfElems());
4478 +  std::copy(iP+idx+1, iP+nt, iP+idx);
4479 +  for(int ii = idx; ii < nt-1; ii++)
4480 +    iP[ii] += deltaSz;
4481 +  _index->reAlloc(nt-1);
4482 +}
4483 +
4484 +void MEDCouplingSkyLineArray::replaceSimplePacks(const DataArrayInt* idx, const std::vector<const DataArrayInt*>& packs)
4485 +{    
4486 +  if (idx->empty())
4487 +    return;
4488 +    
4489 +  for (const int * id = idx->begin(); id != idx->end(); id++)
4490 +    validIndex("deleteSimplePacks", *id);
4491 +    
4492 +  if (idx->getNbOfElems() != packs.size())
4493 +    throw INTERP_KERNEL::Exception("MEDCouplingSkyLineArray::deleteSimplePacks: size of list of pack is incorrect");
4494 +    
4495 +  // copy _index, _values into a deque<set<int>>
4496 +  std::deque< std::set<int> > valuesByIdx;
4497 +  int* vP(_values->getPointer());
4498 +  int* iP(_index->getPointer());
4499 +  std::size_t nt ( _index->getNbOfElems() );
4500 +  for (int ii = 0; ii < nt-1; ii++)
4501 +    valuesByIdx.push_back(std::set<int>(vP+iP[ii], vP+iP[ii+1]));
4502 +    
4503 +  // modify the deque<set<int>> according to idx and packs
4504 +  int ii(0);
4505 +  for (const int *id = idx->begin(); id != idx->end(); id++)
4506 +    {
4507 +      valuesByIdx[*id] = std::set<int>(packs[ii]->begin(), packs[ii]->end());
4508 +      ii++;
4509 +    }
4510 +  // copy back the deque<set<int>> into _index, _values
4511 +  int valSz(0);
4512 +  *iP = 0;
4513 +  for (std::deque< std::set<int> >::const_iterator values=valuesByIdx.begin();values!=valuesByIdx.end();values++)
4514 +    {
4515 +      valSz += (*values).size();
4516 +      *(++iP) = valSz;
4517 +    }
4518 +  _values->reAlloc(valSz);
4519 +  iP = _index->getPointer();
4520 +  vP = _values->getPointer();
4521 +  for (auto values : valuesByIdx)
4522 +    {
4523 +      std::copy(values.begin(), values.end(), vP+(*iP));
4524 +      iP++;
4525 +    }
4526 +}
4527 +
4528 +void MEDCouplingSkyLineArray::deleteSimplePacks(const DataArrayInt* idx)
4529 +{    
4530 +  for (auto id = idx->begin(); id != idx->end(); id++)
4531 +    validIndex("deleteSimplePacks", *id);
4532 +  
4533 +  std::set<int> packsToDelete(idx->begin(), idx->end());
4534 +    
4535 +  // _values
4536 +  int* iP(_index->getPointer());
4537 +  int initValSz = _values->getNbOfElems();
4538 +  int *vP(_values->getPointer());
4539 +  int end_prec(0),start_prec(0);
4540 +  for(std::set<int>::const_iterator ii=packsToDelete.begin();ii!=packsToDelete.end();ii++)
4541 +    {
4542 +      int start = iP[*ii];
4543 +      if (end_prec != 0)
4544 +        std::copy(vP+end_prec, vP+start, vP+start_prec);
4545 +      start_prec += start-end_prec;
4546 +      end_prec = iP[*ii+1];
4547 +    }
4548 +  if (end_prec != 0)
4549 +    std::copy(vP+end_prec, vP+initValSz, vP+start_prec);
4550 +  _values->reAlloc(initValSz-(end_prec-start_prec));
4551 +    
4552 +  // _index
4553 +  int nt = _index->getNbOfElems();
4554 +  int offset = 0;
4555 +  end_prec = 0;
4556 +  start_prec = 0;
4557 +  int deleted = 0;
4558 +  for(std::set<int>::const_iterator ii=packsToDelete.begin();ii!=packsToDelete.end();ii++)
4559 +    {
4560 +      if (end_prec != 0)
4561 +        {
4562 +          std::copy(iP+end_prec, iP+*ii, iP+start_prec);
4563 +          for (int i=start_prec; i<*ii; i++)
4564 +            iP[i] -= offset;
4565 +        }
4566 +      offset += iP[*ii+1] - iP[*ii];
4567 +      start_prec = *ii-deleted;
4568 +      end_prec = *ii+1;
4569 +      deleted += 1;
4570 +    }
4571 +  if (end_prec != 0)
4572 +    {
4573 +      std::copy(iP+end_prec, iP+nt, iP+start_prec);
4574 +      for (int i=start_prec; i<nt; i++)
4575 +        iP[i] -= offset;
4576 +    }
4577 +  _index->reAlloc(nt-deleted);
4578 +}
4579 +
4580  /**!
4581   * Insert a new pack in super-pack at index 'superIdx'. The pack is inserted at the end of the pack list of the chosen super-pack.
4582   */
4583 @@ -448,12 +570,10 @@
4584   */
4585  void MEDCouplingSkyLineArray::replaceSimplePack(const int idx, const int * packBg, const int * packEnd)
4586  {
4587 -  using namespace std;
4588 -
4589    validIndex("replaceSimplePack", idx);
4590  
4591    int * iP(_index->getPointer());
4592 -  int newSz = distance(packBg, packEnd);
4593 +  int newSz = std::distance(packBg, packEnd);
4594    const int start = iP[idx], end = iP[idx+1];
4595  
4596    // _values
4597 @@ -464,13 +584,13 @@
4598        if (deltaSz > 0)
4599          _values->reAlloc(initValSz+deltaSz);
4600        int *vP(_values->getPointer());
4601 -      copy(vP+end, vP+initValSz, vP+end+deltaSz);
4602 +      std::copy(vP+end, vP+initValSz, vP+end+deltaSz);
4603        if (deltaSz < 0)
4604          _values->reAlloc(initValSz+deltaSz);
4605      }
4606  
4607    // copy new pack
4608 -  copy(packBg, packEnd, _values->getPointer()+start);
4609 +  std::copy(packBg, packEnd, _values->getPointer()+start);
4610  
4611    // _index
4612    for(int ii = idx+1; ii < (int)_index->getNbOfElems(); ii++)
4613 @@ -481,15 +601,13 @@
4614   * Replace pack with super index 'superIdx' and index 'idx' with the provided new pack.
4615   * Function can be used only for 3-level SkyLine.
4616   */
4617 -void MEDCouplingSkyLineArray::replacePack(const int superIdx, const int idx, const int * packBg, const int * packEnd)
4618 +void MEDCouplingSkyLineArray::replacePack(const int superIdx, const int idx, const int *packBg, const int *packEnd)
4619  {
4620 -  using namespace std;
4621 -
4622    checkSuperIndex("replacePack");
4623    validSuperIndexAndIndex("replacePack", superIdx, idx);
4624  
4625    int * siP(_super_index->getPointer()), *iP(_index->getPointer());
4626 -  int newSz = distance(packBg, packEnd);
4627 +  int newSz = std::distance(packBg, packEnd);
4628    const int start = iP[siP[superIdx]+idx], end = iP[siP[superIdx]+idx+1];
4629  
4630    // _values
4631 @@ -500,13 +618,13 @@
4632        if (deltaSz > 0)
4633          _values->reAlloc(initValSz+deltaSz);
4634        int *vP(_values->getPointer());
4635 -      copy(vP+end, vP+initValSz, vP+end+deltaSz);
4636 +      std::copy(vP+end, vP+initValSz, vP+end+deltaSz);
4637        if (deltaSz < 0)
4638          _values->reAlloc(initValSz+deltaSz);
4639      }
4640  
4641    // copy new pack
4642 -  copy(packBg, packEnd, _values->getPointer()+start);
4643 +  std::copy(packBg, packEnd, _values->getPointer()+start);
4644  
4645    // _index
4646    for(int ii = siP[superIdx]+idx+1; ii < (int)_index->getNbOfElems(); ii++)
4647 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingSkyLineArray.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingSkyLineArray.hxx
4648 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingSkyLineArray.hxx 2018-04-19 17:04:36.716222304 +0200
4649 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingSkyLineArray.hxx 2018-04-19 17:25:18.042803386 +0200
4650 @@ -90,11 +90,15 @@
4651                       std::vector<int>& out) const;
4652  
4653      void deletePack(const int superIdx, const int idx);
4654 +    void deleteSimplePack(const int idx);
4655      void pushBackPack(const int superIdx, const int * packBg, const int * packEnd);
4656  
4657      void replaceSimplePack(const int idx, const int * packBg, const int * packEnd);
4658      void replacePack(const int superIdx, const int idx, const int * packBg, const int * packEnd);
4659  
4660 +    void deleteSimplePacks(const DataArrayInt* idx);
4661 +    void replaceSimplePacks(const DataArrayInt* idx, const std::vector<const DataArrayInt*>& packs);
4662 +    
4663      void convertToPolyhedronConn( MCAuto<DataArrayInt>& c,  MCAuto<DataArrayInt>& cI) const;
4664  
4665    private:
4666 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingStructuredMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingStructuredMesh.cxx
4667 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingStructuredMesh.cxx       2018-04-19 17:04:36.716222304 +0200
4668 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingStructuredMesh.cxx       2018-04-19 17:25:18.023803010 +0200
4669 @@ -310,7 +310,7 @@
4670   *          - After \a code contains [NORM_...,nbCells,0], \a idsInPflPerType [[0,1]] and \a idsPerType is [[1,2]] <br>
4671  
4672   */
4673 -void MEDCouplingStructuredMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const
4674 +void MEDCouplingStructuredMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller) const
4675  {
4676    if(!profile || !profile->isAllocated())
4677      throw INTERP_KERNEL::Exception("MEDCouplingStructuredMesh::splitProfilePerType : input profile is NULL or not allocated !");
4678 @@ -321,7 +321,7 @@
4679    code.resize(3); idsInPflPerType.resize(1);
4680    code[0]=(int)getTypeOfCell(0); code[1]=nbOfCells;
4681    idsInPflPerType.resize(1);
4682 -  if(profile->isIota(nbOfCells))
4683 +  if(smartPflKiller && profile->isIota(nbOfCells))
4684      {
4685        code[2]=-1;
4686        idsInPflPerType[0]=profile->deepCopy();
4687 @@ -1887,7 +1887,7 @@
4688  
4689  /*!
4690   * This method builds the explicit entity array from the structure in \a st and the range in \a partCompactFormat.
4691 - * If the range contains invalid values regarding sructure an exception will be thrown.
4692 + * If the range contains invalid values regarding structure an exception will be thrown.
4693   *
4694   * \return DataArrayInt * - a new object.
4695   * \sa MEDCouplingStructuredMesh::IsPartStructured, MEDCouplingStructuredMesh::DeduceNumberOfGivenRangeInCompactFrmt, SwitchOnIdsFrom, ExtractFieldOfBoolFrom, ExtractFieldOfDoubleFrom, MultiplyPartOf
4696 @@ -1956,7 +1956,7 @@
4697   * \param [in] st - the structure of grid ( \b without considering ghost cells).
4698   * \param [in] part - the part in the structure ( \b without considering ghost cells) contained in grid whose structure is defined by \a st.
4699   * \param [in] factor - the factor, the tuples in \a da will be multiply by.
4700 - * \param [in,out] da - The DataArray in wich only tuples specified by \a part will be modified.
4701 + * \param [in,out] da - The DataArray in which only tuples specified by \a part will be modified.
4702   *
4703   * \sa BuildExplicitIdsFrom
4704   */
4705 @@ -2037,7 +2037,7 @@
4706   * \param [in] part - the part in the structure ( \b without considering ghost cells) contained in grid whose structure is defined by \a st.
4707   * \param [in] ghostSize - \a ghostSize must be >= 0.
4708   * \param [in] factor - the factor, the tuples in \a da will be multiply by.
4709 - * \param [in,out] da - The DataArray in wich only tuples specified by \a part will be modified.
4710 + * \param [in,out] da - The DataArray in which only tuples specified by \a part will be modified.
4711   *
4712   * \sa MultiplyPartOf, PutInGhostFormat
4713   */
4714 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingStructuredMesh.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingStructuredMesh.hxx
4715 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingStructuredMesh.hxx       2018-04-19 17:04:36.717222324 +0200
4716 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingStructuredMesh.hxx       2018-04-19 17:25:18.142805362 +0200
4717 @@ -49,7 +49,7 @@
4718      //tools
4719      MEDCOUPLING_EXPORT std::vector<int> getDistributionOfTypes() const;
4720      MEDCOUPLING_EXPORT DataArrayInt *checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const;
4721 -    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const;
4722 +    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller=true) const;
4723      MEDCOUPLING_EXPORT MEDCoupling1SGTUMesh *build1SGTUnstructured() const;
4724      MEDCOUPLING_EXPORT MEDCouplingUMesh *buildUnstructured() const;
4725      MEDCOUPLING_EXPORT MEDCouplingMesh *buildPart(const int *start, const int *end) const;
4726 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx
4727 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx   2018-04-19 17:04:36.717222324 +0200
4728 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx   2018-04-19 17:25:18.007802694 +0200
4729 @@ -374,7 +374,7 @@
4730        if(arrays1[i]!=0 && arrays2[i]!=0)
4731          arrays1[i]->setSelectedComponents(arrays2[i],compoIds);
4732        else if(arrays1[i]!=0 || arrays2[i]!=0)
4733 -        throw INTERP_KERNEL::Exception("TimeDiscretization::setSelectedComponents : some time array in correspondance are not defined symetrically !");
4734 +        throw INTERP_KERNEL::Exception("TimeDiscretization::setSelectedComponents : some time array in correspondence are not defined symmetrically !");
4735      }
4736  }
4737  
4738 @@ -710,7 +710,7 @@
4739      case MEDCouplingTimeDiscretizationInt::DISCRETIZATION:
4740        return new MEDCouplingTimeDiscretizationInt;
4741      default:
4742 -      throw INTERP_KERNEL::Exception("Time discretization not implemented yet for intergers !");
4743 +      throw INTERP_KERNEL::Exception("Time discretization not implemented yet for integers !");
4744    }
4745  }
4746  
4747 @@ -771,14 +771,12 @@
4748      case MEDCouplingTimeDiscretizationFloat::DISCRETIZATION:
4749        return new MEDCouplingTimeDiscretizationFloat;
4750      default:
4751 -      throw INTERP_KERNEL::Exception("Time discretization not implemented yet for intergers !");
4752 +      throw INTERP_KERNEL::Exception("Time discretization not implemented yet for integers !");
4753    }
4754  }
4755  
4756  bool MEDCouplingTimeDiscretizationFloat::isEqualIfNotWhy(const MEDCouplingTimeDiscretizationTemplate<float> *other, float prec, std::string& reason) const
4757  {
4758 -  if(prec!=0)
4759 -    throw INTERP_KERNEL::Exception("isEqualIfNotWhy : only precision equal to 0 supported for int !");
4760    if(!other)
4761      {
4762        reason="Time discretization is NULL.";
4763 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingTimeLabel.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingTimeLabel.cxx
4764 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingTimeLabel.cxx    2018-04-19 17:04:36.717222324 +0200
4765 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingTimeLabel.cxx    2018-04-19 17:25:18.132805164 +0200
4766 @@ -54,7 +54,7 @@
4767  }
4768  
4769  /*!
4770 - * This method has to be called with a lot of care. It set agressively the time in this with the
4771 + * This method has to be called with a lot of care. It set aggressively the time in this with the
4772   * time in \a other.
4773   */
4774  void TimeLabel::forceTimeOfThis(const TimeLabel& other) const
4775 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh.cxx
4776 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh.cxx        2018-04-19 17:04:36.722222424 +0200
4777 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh.cxx        2018-04-19 17:25:17.986802279 +0200
4778 @@ -56,8 +56,8 @@
4779  double MEDCouplingUMesh::EPS_FOR_POLYH_ORIENTATION=1.e-14;
4780  
4781  /// @cond INTERNAL
4782 -const INTERP_KERNEL::NormalizedCellType MEDCouplingUMesh::MEDMEM_ORDER[N_MEDMEM_ORDER] = { INTERP_KERNEL::NORM_POINT1, INTERP_KERNEL::NORM_SEG2, INTERP_KERNEL::NORM_SEG3, INTERP_KERNEL::NORM_SEG4, INTERP_KERNEL::NORM_POLYL, INTERP_KERNEL::NORM_TRI3, INTERP_KERNEL::NORM_QUAD4, INTERP_KERNEL::NORM_TRI6, INTERP_KERNEL::NORM_TRI7, INTERP_KERNEL::NORM_QUAD8, INTERP_KERNEL::NORM_QUAD9, INTERP_KERNEL::NORM_POLYGON, INTERP_KERNEL::NORM_QPOLYG, INTERP_KERNEL::NORM_TETRA4, INTERP_KERNEL::NORM_PYRA5, INTERP_KERNEL::NORM_PENTA6, INTERP_KERNEL::NORM_HEXA8, INTERP_KERNEL::NORM_HEXGP12, INTERP_KERNEL::NORM_TETRA10, INTERP_KERNEL::NORM_PYRA13, INTERP_KERNEL::NORM_PENTA15, INTERP_KERNEL::NORM_HEXA20, INTERP_KERNEL::NORM_HEXA27, INTERP_KERNEL::NORM_POLYHED };
4783 -const int MEDCouplingUMesh::MEDCOUPLING2VTKTYPETRADUCER[INTERP_KERNEL::NORM_MAXTYPE+1]={1,3,21,5,9,7,22,34,23,28,-1,-1,-1,-1,10,14,13,-1,12,-1,24,-1,16,27,-1,26,-1,29,-1,-1,25,42,36,4};
4784 +const INTERP_KERNEL::NormalizedCellType MEDCouplingUMesh::MEDMEM_ORDER[N_MEDMEM_ORDER] = { INTERP_KERNEL::NORM_POINT1, INTERP_KERNEL::NORM_SEG2, INTERP_KERNEL::NORM_SEG3, INTERP_KERNEL::NORM_SEG4, INTERP_KERNEL::NORM_POLYL, INTERP_KERNEL::NORM_TRI3, INTERP_KERNEL::NORM_QUAD4, INTERP_KERNEL::NORM_TRI6, INTERP_KERNEL::NORM_TRI7, INTERP_KERNEL::NORM_QUAD8, INTERP_KERNEL::NORM_QUAD9, INTERP_KERNEL::NORM_POLYGON, INTERP_KERNEL::NORM_QPOLYG, INTERP_KERNEL::NORM_TETRA4, INTERP_KERNEL::NORM_PYRA5, INTERP_KERNEL::NORM_PENTA6, INTERP_KERNEL::NORM_HEXA8, INTERP_KERNEL::NORM_HEXGP12, INTERP_KERNEL::NORM_TETRA10, INTERP_KERNEL::NORM_PYRA13, INTERP_KERNEL::NORM_PENTA15, INTERP_KERNEL::NORM_PENTA18, INTERP_KERNEL::NORM_HEXA20, INTERP_KERNEL::NORM_HEXA27, INTERP_KERNEL::NORM_POLYHED };
4785 +const int MEDCouplingUMesh::MEDCOUPLING2VTKTYPETRADUCER[INTERP_KERNEL::NORM_MAXTYPE+1]={1,3,21,5,9,7,22,34,23,28,-1,-1,-1,-1,10,14,13,-1,12,-1,24,-1,16,27,-1,26,-1,29,32,-1,25,42,36,4};
4786  /// @endcond
4787  
4788  MEDCouplingUMesh *MEDCouplingUMesh::New()
4789 @@ -301,9 +301,10 @@
4790  }
4791  
4792  /*!
4793 - * Allocates memory to store an estimation of the given number of cells. The closer is the estimation to the number of cells effectively inserted,
4794 - * the less will the library need to reallocate memory. If the number of cells to be inserted is not known simply put 0 to this parameter.
4795 - * If a nodal connectivity previouly existed before the call of this method, it will be reset.
4796 + * Allocates memory to store an estimation of the given number of cells. 
4797 + * The closer the estimation to the number of cells effectively inserted, the less need the library requires
4798 + * to reallocate memory. If the number of cells to be inserted is not known simply assign 0 to this parameter.
4799 + * If a nodal connectivity previously existed before the call of this method, it will be reset.
4800   *
4801   *  \param [in] nbOfCells - estimation of the number of cell \a this mesh will contain.
4802   *
4803 @@ -403,7 +404,7 @@
4804  
4805  /*!
4806   * Entry point for iteration over cells groups geo types per geotypes. Warning the returned cell iterator should be deallocated.
4807 - * If \a this is not so that that cells are grouped by geo types this method will throw an exception.
4808 + * If \a this is not so that the cells are grouped by geo types, this method will throw an exception.
4809   * In this case MEDCouplingUMesh::sortCellsInMEDFileFrmt or MEDCouplingUMesh::rearrange2ConsecutiveCellTypes methods for example can be called before invoking this method.
4810   * Useful for python users.
4811   */
4812 @@ -975,7 +976,12 @@
4813    {
4814      int *neighIdx(neighborsIdx->getPointer());
4815      for(std::vector< std::set<int> >::const_iterator it=st0.begin();it!=st0.end();it++,neighIdx++)
4816 -      neighIdx[1]=neighIdx[0]+(*it).size()-1;
4817 +      {
4818 +        if ((*it).empty())
4819 +          neighIdx[1]=neighIdx[0];
4820 +        else
4821 +          neighIdx[1]=neighIdx[0]+(*it).size()-1;
4822 +      }
4823    }
4824    neighbors=DataArrayInt::New(); neighbors->alloc(neighborsIdx->back(),1);
4825    {
4826 @@ -1308,12 +1314,14 @@
4827    connINew->alloc(nbOfCells+1,1);
4828    int *connINewPtr=connINew->getPointer(); *connINewPtr++=0;
4829    MCAuto<DataArrayInt> connNew=DataArrayInt::New(); connNew->alloc(0,1);
4830 +  MCAuto<DataArrayInt> E_Fi(DataArrayInt::New()), E_F(DataArrayInt::New()), F_Ei(DataArrayInt::New()), F_E(DataArrayInt::New());
4831 +  MCAuto<MEDCouplingUMesh> m_faces(buildDescendingConnectivity(E_F, E_Fi, F_E, F_Ei));
4832    bool changed=false;
4833    for(int i=0;i<nbOfCells;i++,connINewPtr++)
4834      {
4835        if(conn[index[i]]==(int)INTERP_KERNEL::NORM_POLYHED)
4836          {
4837 -          SimplifyPolyhedronCell(eps,coords,conn+index[i],conn+index[i+1],connNew);
4838 +          SimplifyPolyhedronCell(eps,coords, i,connNew, m_faces, E_Fi, E_F, F_Ei, F_E);
4839            changed=true;
4840          }
4841        else
4842 @@ -1698,7 +1706,7 @@
4843   * \param [in] startCellId specifies the cellId starting from which the equality computation will be carried out. By default it is 0, which it means that all cells in \a this will be scanned.
4844   * \param [out] commonCellsArr common cells ids (\ref numbering-indirect)
4845   * \param [out] commonCellsIArr common cells ids (\ref numbering-indirect)
4846 - * \return the correspondance array old to new in a newly allocated array.
4847 + * \return the correspondence array old to new in a newly allocated array.
4848   * 
4849   */
4850  void MEDCouplingUMesh::findCommonCells(int compType, int startCellId, DataArrayInt *& commonCellsArr, DataArrayInt *& commonCellsIArr) const
4851 @@ -1895,7 +1903,7 @@
4852  /*!
4853   * Build a sub part of \b this lying or not on the same coordinates than \b this (regarding value of \b keepCoords).
4854   * By default coordinates are kept. This method is close to MEDCouplingUMesh::buildPartOfMySelf except that here input
4855 - * cellIds is not given explicitely but by a range python like.
4856 + * cellIds is not given explicitly but by a range python like.
4857   * 
4858   * \param start
4859   * \param end
4860 @@ -2277,7 +2285,7 @@
4861   * This method expects that \b this and \b otherDimM1OnSameCoords share the same coordinates array.
4862   * otherDimM1OnSameCoords->getMeshDimension() is expected to be equal to this->getMeshDimension()-1.
4863   * This method searches for nodes needed to be duplicated. These nodes are nodes fetched by \b otherDimM1OnSameCoords which are not part of the boundary of \b otherDimM1OnSameCoords.
4864 - * If a node is in the boundary of \b this \b and in the boundary of \b otherDimM1OnSameCoords this node is considerd as needed to be duplicated.
4865 + * If a node is in the boundary of \b this \b and in the boundary of \b otherDimM1OnSameCoords this node is considered as needed to be duplicated.
4866   * When the set of node ids \b nodeIdsToDuplicate is computed, cell ids in \b this is searched so that their connectivity includes at least 1 node in \b nodeIdsToDuplicate.
4867   *
4868   * \param [in] otherDimM1OnSameCoords a mesh lying on the same coords than \b this and with a mesh dimension equal to those of \b this minus 1. WARNING this input
4869 @@ -2422,7 +2430,7 @@
4870   * This method operates a modification of the connectivity and coords in \b this.
4871   * Every time that a node id in [ \b nodeIdsToDuplicateBg, \b nodeIdsToDuplicateEnd ) will append in nodal connectivity of \b this 
4872   * its ids will be modified to id this->getNumberOfNodes()+std::distance(nodeIdsToDuplicateBg,std::find(nodeIdsToDuplicateBg,nodeIdsToDuplicateEnd,id)).
4873 - * More explicitely the renumber array in nodes is not explicitely given in old2new to avoid to build a big array of renumbering whereas typically few node ids needs to be
4874 + * More explicitly the renumber array in nodes is not explicitly given in old2new to avoid to build a big array of renumbering whereas typically few node ids needs to be
4875   * renumbered. The node id nodeIdsToDuplicateBg[0] will have id this->getNumberOfNodes()+0, node id nodeIdsToDuplicateBg[1] will have id this->getNumberOfNodes()+1,
4876   * node id nodeIdsToDuplicateBg[2] will have id this->getNumberOfNodes()+2...
4877   * 
4878 @@ -2563,7 +2571,7 @@
4879   * Coordinates are \b NOT considered here and will remain unchanged by this method. this->_coords can ever been null for the needs of this method.
4880   * Every time that a node id in [ \b nodeIdsToDuplicateBg, \b nodeIdsToDuplicateEnd ) will append in nodal connectivity of \b this 
4881   * its ids will be modified to id offset+std::distance(nodeIdsToDuplicateBg,std::find(nodeIdsToDuplicateBg,nodeIdsToDuplicateEnd,id)).
4882 - * More explicitely the renumber array in nodes is not explicitely given in old2new to avoid to build a big array of renumbering whereas typically few node ids needs to be
4883 + * More explicitly the renumber array in nodes is not explicitly given in old2new to avoid to build a big array of renumbering whereas typically few node ids needs to be
4884   * renumbered. The node id nodeIdsToDuplicateBg[0] will have id offset+0, node id nodeIdsToDuplicateBg[1] will have id offset+1,
4885   * node id nodeIdsToDuplicateBg[2] will have id offset+2...
4886   * 
4887 @@ -2934,7 +2942,7 @@
4888  }
4889  
4890  /*!
4891 - * This method builds a newly allocated instance (with the same name than \a this) that the caller has the responsability to deal with.
4892 + * This method builds a newly allocated instance (with the same name than \a this) that the caller has the responsibility to deal with.
4893   * This method returns an instance with all arrays allocated (connectivity, connectivity index, coordinates)
4894   * but with length of these arrays set to 0. It allows to define an "empty" mesh (with nor cells nor nodes but compliant with
4895   * some algos).
4896 @@ -2996,7 +3004,7 @@
4897  
4898  /*!
4899   * Returns types of cells of the specified part of \a this mesh.
4900 - * This method avoids computing sub-mesh explicitely to get its types.
4901 + * This method avoids computing sub-mesh explicitly to get its types.
4902   *  \param [in] begin - an array of cell ids of interest.
4903   *  \param [in] end - the end of \a begin, i.e. a pointer to its (last+1)-th element.
4904   *  \return std::set<INTERP_KERNEL::NormalizedCellType> - a set of enumeration items
4905 @@ -3839,7 +3847,7 @@
4906   * If not an exception will thrown. If this is an empty mesh with no cell an exception will be thrown too.
4907   * No consideration of coordinate is done by this method.
4908   * A 1D mesh is said contiguous if : a cell i with nodal connectivity (k,p) the cell i+1 the nodal connectivity should be (p,m)
4909 - * If not false is returned. In case that false is returned a call to MEDCoupling::MEDCouplingUMesh::mergeNodes could be usefull.
4910 + * If not false is returned. In case that false is returned a call to MEDCoupling::MEDCouplingUMesh::mergeNodes could be useful.
4911   */
4912  bool MEDCouplingUMesh::isContiguous1D() const
4913  {
4914 @@ -5417,6 +5425,8 @@
4915  DataArrayDouble *MEDCouplingUMesh::getBoundingBoxForBBTree2DQuadratic(double arcDetEps) const
4916  {
4917    checkFullyDefined();
4918 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(arcDetEps);
4919 +
4920    int spaceDim(getSpaceDimension()),mDim(getMeshDimension()),nbOfCells(getNumberOfCells());
4921    if(spaceDim!=2 || mDim!=2)
4922      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::getBoundingBoxForBBTree2DQuadratic : This method should be applied on mesh with mesh dimension equal to 2 and space dimension also equal to 2!");
4923 @@ -5428,7 +5438,6 @@
4924      {
4925        const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel((INTERP_KERNEL::NormalizedCellType)conn[*connI]));
4926        int sz(connI[1]-connI[0]-1);
4927 -      INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=arcDetEps;
4928        std::vector<INTERP_KERNEL::Node *> nodes(sz);
4929        INTERP_KERNEL::QuadraticPolygon *pol(0);
4930        for(int j=0;j<sz;j++)
4931 @@ -5465,6 +5474,7 @@
4932    int spaceDim(getSpaceDimension()),mDim(getMeshDimension()),nbOfCells(getNumberOfCells());
4933    if(spaceDim!=2 || mDim!=1)
4934      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::getBoundingBoxForBBTree1DQuadratic : This method should be applied on mesh with mesh dimension equal to 1 and space dimension also equal to 2!");
4935 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(arcDetEps);
4936    MCAuto<DataArrayDouble> ret(DataArrayDouble::New()); ret->alloc(nbOfCells,2*spaceDim);
4937    double *bbox(ret->getPointer());
4938    const double *coords(_coords->begin());
4939 @@ -5473,7 +5483,6 @@
4940      {
4941        const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel((INTERP_KERNEL::NormalizedCellType)conn[*connI]));
4942        int sz(connI[1]-connI[0]-1);
4943 -      INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=arcDetEps;
4944        std::vector<INTERP_KERNEL::Node *> nodes(sz);
4945        INTERP_KERNEL::Edge *edge(0);
4946        for(int j=0;j<sz;j++)
4947 @@ -5524,7 +5533,7 @@
4948   * \a this is composed in cell types.
4949   * The returned array is of size 3*n where n is the number of different types present in \a this. 
4950   * For every k in [0,n] ret[3*k+2]==-1 because it has no sense here. 
4951 - * This parameter is kept only for compatibility with other methode listed above.
4952 + * This parameter is kept only for compatibility with other method listed above.
4953   */
4954  std::vector<int> MEDCouplingUMesh::getDistributionOfTypes() const
4955  {
4956 @@ -5569,7 +5578,7 @@
4957   * 
4958   * If all geometric types in \a code are exactly those in \a this null pointer is returned.
4959   * If it exists a geometric type in \a this \b not in \a code \b no exception is thrown 
4960 - * and a DataArrayInt instance is returned that the user has the responsability to deallocate.
4961 + * and a DataArrayInt instance is returned that the user has the responsibility to deallocate.
4962   */
4963  DataArrayInt *MEDCouplingUMesh::checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const
4964  {
4965 @@ -5672,7 +5681,7 @@
4966   *              This vector can be empty in case of all geometric type cells are fully covered in ascending in the given input \a profile.
4967   * \throw if \a profile has not exactly one component. It throws too, if \a profile contains some values not in [0,getNumberOfCells()) or if \a this is not fully defined
4968   */
4969 -void MEDCouplingUMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const
4970 +void MEDCouplingUMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller) const
4971  {
4972    if(!profile)
4973      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::splitProfilePerType : input profile is NULL !");
4974 @@ -5714,7 +5723,7 @@
4975        code[3*i]=(int)types[castId];
4976        code[3*i+1]=tmp3->getNumberOfTuples();
4977        MCAuto<DataArrayInt> tmp4=rankInsideCast->selectByTupleId(tmp3->begin(),tmp3->begin()+tmp3->getNumberOfTuples());
4978 -      if(!tmp4->isIota(typeRangeVals[castId+1]-typeRangeVals[castId]))
4979 +      if(!smartPflKiller || !tmp4->isIota(typeRangeVals[castId+1]-typeRangeVals[castId]))
4980          {
4981            tmp4->copyStringInfoFrom(*profile);
4982            idsPerType2.push_back(tmp4);
4983 @@ -5880,7 +5889,7 @@
4984  /*!
4985   * This method returns 2 newly allocated DataArrayInt instances. The first is an array of size 'this->getNumberOfCells()' with one component,
4986   * that tells for each cell the pos of its type in the array on type given in input parameter. The 2nd output parameter is an array with the same
4987 - * number of tuples than input type array and with one component. This 2nd output array gives type by type the number of occurence of type in 'this'.
4988 + * number of tuples than input type array and with one component. This 2nd output array gives type by type the number of occurrence of type in 'this'.
4989   */
4990  DataArrayInt *MEDCouplingUMesh::getLevArrPerCellTypes(const INTERP_KERNEL::NormalizedCellType *orderBg, const INTERP_KERNEL::NormalizedCellType *orderEnd, DataArrayInt *&nbPerType) const
4991  {
4992 @@ -5919,7 +5928,7 @@
4993  /*!
4994   * This method behaves exactly as MEDCouplingUMesh::getRenumArrForConsecutiveCellTypesSpec but the order is those defined in MED file spec.
4995   *
4996 - * \return a new object containing the old to new correspondance.
4997 + * \return a new object containing the old to new correspondence.
4998   *
4999   * \sa MEDCouplingUMesh::getRenumArrForConsecutiveCellTypesSpec, MEDCouplingUMesh::sortCellsInMEDFileFrmt.
5000   */
5001 @@ -5929,7 +5938,7 @@
5002  }
5003  
5004  /*!
5005 - * This method is similar to method MEDCouplingUMesh::rearrange2ConsecutiveCellTypes except that the type order is specfied by [ \a orderBg , \a orderEnd ) (as MEDCouplingUMesh::checkConsecutiveCellTypesAndOrder method) and that this method is \b const and performs \b NO permutation in \a this.
5006 + * This method is similar to method MEDCouplingUMesh::rearrange2ConsecutiveCellTypes except that the type order is specified by [ \a orderBg , \a orderEnd ) (as MEDCouplingUMesh::checkConsecutiveCellTypesAndOrder method) and that this method is \b const and performs \b NO permutation in \a this.
5007   * This method returns an array of size getNumberOfCells() that gives a renumber array old2New that can be used as input of MEDCouplingMesh::renumberCells.
5008   * The mesh after this call to MEDCouplingMesh::renumberCells will pass the test of MEDCouplingUMesh::checkConsecutiveCellTypesAndOrder with the same inputs.
5009   * The returned array minimizes the permutations that is to say the order of cells inside same geometric type remains the same.
5010 @@ -5948,7 +5957,7 @@
5011   * This method tries to minimizes the number of needed permutations. So, this method behaves not exactly as
5012   * MEDCouplingUMesh::sortCellsInMEDFileFrmt.
5013   *
5014 - * \return the array giving the correspondance old to new.
5015 + * \return the array giving the correspondence old to new.
5016   */
5017  DataArrayInt *MEDCouplingUMesh::rearrange2ConsecutiveCellTypes()
5018  {
5019 @@ -6121,7 +6130,7 @@
5020  /*!
5021   * This method takes in input a vector of MEDCouplingUMesh instances lying on the same coordinates with same mesh dimensions.
5022   * Each mesh in \b ms must be sorted by type with the same order (typically using MEDCouplingUMesh::sortCellsInMEDFileFrmt).
5023 - * This method is particulary useful for MED file interaction. It allows to aggregate several meshes and keeping the type sorting
5024 + * This method is particularly useful for MED file interaction. It allows to aggregate several meshes and keeping the type sorting
5025   * and the track of the permutation by chunk of same geotype cells to retrieve it. The traditional formats old2new and new2old
5026   * are not used here to avoid the build of big permutation array.
5027   *
5028 @@ -6784,7 +6793,7 @@
5029   * Makes all given meshes share the nodal connectivity array. The common connectivity
5030   * array is created by concatenating the connectivity arrays of all given meshes. All
5031   * the given meshes must be of the same space dimension but dimension of cells **can
5032 - * differ**. This method is particulary useful in MEDLoader context to build a \ref
5033 + * differ**. This method is particularly useful in MEDLoader context to build a \ref
5034   * MEDCoupling::MEDFileUMesh "MEDFileUMesh" instance that expects that underlying
5035   * MEDCouplingUMesh'es of different dimension share the same nodal connectivity array.
5036   *  \param [in,out] meshes - a vector of meshes to update.
5037 @@ -6838,7 +6847,7 @@
5038  /*!
5039   * Merges nodes coincident with a given precision within all given meshes that share
5040   * the nodal connectivity array. The given meshes **can be of different** mesh
5041 - * dimension. This method is particulary useful in MEDLoader context to build a \ref
5042 + * dimension. This method is particularly useful in MEDLoader context to build a \ref
5043   * MEDCoupling::MEDFileUMesh "MEDFileUMesh" instance that expects that underlying
5044   * MEDCouplingUMesh'es of different dimension share the same nodal connectivity array. 
5045   *  \param [in,out] meshes - a vector of meshes to update.
5046 @@ -6889,7 +6898,7 @@
5047  
5048  
5049  /*!
5050 - * This static operates only for coords in 3D. The polygon is specfied by its connectivity nodes in [ \a begin , \a end ).
5051 + * This static operates only for coords in 3D. The polygon is specified by its connectivity nodes in [ \a begin , \a end ).
5052   */
5053  bool MEDCouplingUMesh::IsPolygonWellOriented(bool isQuadratic, const double *vec, const int *begin, const int *end, const double *coords)
5054  {
5055 @@ -6933,7 +6942,7 @@
5056  }
5057  
5058  /*!
5059 - * The polyhedron is specfied by its connectivity nodes in [ \a begin , \a end ).
5060 + * The polyhedron is specified by its connectivity nodes in [ \a begin , \a end ).
5061   */
5062  bool MEDCouplingUMesh::IsPolyhedronWellOriented(const int *begin, const int *end, const double *coords)
5063  {
5064 @@ -7019,48 +7028,62 @@
5065   * \param [in] end end of nodal connectivity of a single polyhedron cell (excluded)
5066   * \param [out] res the result is put at the end of the vector without any alteration of the data.
5067   */
5068 -void MEDCouplingUMesh::SimplifyPolyhedronCell(double eps, const DataArrayDouble *coords, const int *begin, const int *end, DataArrayInt *res)
5069 +void MEDCouplingUMesh::SimplifyPolyhedronCell(double eps, const DataArrayDouble *coords, int index, DataArrayInt *res, MEDCouplingUMesh *faces,
5070 +                                              DataArrayInt *E_Fi, DataArrayInt *E_F, DataArrayInt *F_Ei, DataArrayInt *F_E)
5071  {
5072 -  int nbFaces=std::count(begin+1,end,-1)+1;
5073 +  int nbFaces = E_Fi->getIJ(index + 1, 0) - E_Fi->getIJ(index, 0);
5074    MCAuto<DataArrayDouble> v=DataArrayDouble::New(); v->alloc(nbFaces,3);
5075    double *vPtr=v->getPointer();
5076 -  MCAuto<DataArrayDouble> p=DataArrayDouble::New(); p->alloc(nbFaces,1);
5077 +  MCAuto<DataArrayDouble> p=DataArrayDouble::New(); p->alloc(nbFaces,2);
5078    double *pPtr=p->getPointer();
5079 -  const int *stFaceConn=begin+1;
5080 +  int *e_fi = E_Fi->getPointer(), *e_f = E_F->getPointer(), *f_ei = F_Ei->getPointer(), *f_e = F_E->getPointer();
5081 +  const int *f_idx = faces->getNodalConnectivityIndex()->getPointer(), *f_cnn = faces->getNodalConnectivity()->getPointer();
5082    for(int i=0;i<nbFaces;i++,vPtr+=3,pPtr++)
5083      {
5084 -      const int *endFaceConn=std::find(stFaceConn,end,-1);
5085 -      ComputeVecAndPtOfFace(eps,coords->begin(),stFaceConn,endFaceConn,vPtr,pPtr);
5086 -      stFaceConn=endFaceConn+1;
5087 +      int face = e_f[e_fi[index] + i];
5088 +      ComputeVecAndPtOfFace(eps, coords->begin(), f_cnn + f_idx[face] + 1, f_cnn + f_idx[face + 1], vPtr, pPtr);
5089 +      // to differentiate faces going to different cells:
5090 +      pPtr++, *pPtr = 0;
5091 +      for (int j = f_ei[face]; j < f_ei[face + 1]; j++)
5092 +        *pPtr += f_e[j];
5093      }
5094    pPtr=p->getPointer(); vPtr=v->getPointer();
5095    DataArrayInt *comm1=0,*commI1=0;
5096    v->findCommonTuples(eps,-1,comm1,commI1);
5097 +  for (int i = 0; i < nbFaces; i++)
5098 +    if (comm1->findIdFirstEqual(i) < 0)
5099 +      {
5100 +        comm1->pushBackSilent(i);
5101 +        commI1->pushBackSilent(comm1->getNumberOfTuples());
5102 +      }
5103    MCAuto<DataArrayInt> comm1Auto(comm1),commI1Auto(commI1);
5104    const int *comm1Ptr=comm1->begin();
5105    const int *commI1Ptr=commI1->begin();
5106    int nbOfGrps1=commI1Auto->getNumberOfTuples()-1;
5107    res->pushBackSilent((int)INTERP_KERNEL::NORM_POLYHED);
5108    //
5109 -  MCAuto<MEDCouplingUMesh> mm=MEDCouplingUMesh::New("",3);
5110 -  mm->setCoords(const_cast<DataArrayDouble *>(coords)); mm->allocateCells(1); mm->insertNextCell(INTERP_KERNEL::NORM_POLYHED,(int)std::distance(begin+1,end),begin+1);
5111 -  mm->finishInsertingCells();
5112 -  //
5113    for(int i=0;i<nbOfGrps1;i++)
5114      {
5115        int vecId=comm1Ptr[commI1Ptr[i]];
5116        MCAuto<DataArrayDouble> tmpgrp2=p->selectByTupleId(comm1Ptr+commI1Ptr[i],comm1Ptr+commI1Ptr[i+1]);
5117        DataArrayInt *comm2=0,*commI2=0;
5118        tmpgrp2->findCommonTuples(eps,-1,comm2,commI2);
5119 +      for (int j = 0; j < commI1Ptr[i+1] - commI1Ptr[i]; j++)
5120 +        if (comm2->findIdFirstEqual(j) < 0)
5121 +          {
5122 +            comm2->pushBackSilent(j);
5123 +            commI2->pushBackSilent(comm2->getNumberOfTuples());
5124 +          }
5125        MCAuto<DataArrayInt> comm2Auto(comm2),commI2Auto(commI2);
5126        const int *comm2Ptr=comm2->begin();
5127        const int *commI2Ptr=commI2->begin();
5128        int nbOfGrps2=commI2Auto->getNumberOfTuples()-1;
5129        for(int j=0;j<nbOfGrps2;j++)
5130          {
5131 -          if(commI2Ptr[j+1]-commI2Ptr[j]<=1)
5132 +          if(commI2Ptr[j+1] == commI2Ptr[j] + 1)
5133              {
5134 -              res->insertAtTheEnd(begin,end);
5135 +              int face = e_f[e_fi[index] + comm1Ptr[commI1Ptr[i] + comm2Ptr[commI2Ptr[j]]]]; //hmmm
5136 +              res->insertAtTheEnd(f_cnn + f_idx[face] + 1, f_cnn + f_idx[face + 1]);
5137                res->pushBackSilent(-1);
5138              }
5139            else
5140 @@ -7068,13 +7091,12 @@
5141                int pointId=comm1Ptr[commI1Ptr[i]+comm2Ptr[commI2Ptr[j]]];
5142                MCAuto<DataArrayInt> ids2=comm2->selectByTupleIdSafeSlice(commI2Ptr[j],commI2Ptr[j+1],1);
5143                ids2->transformWithIndArr(comm1Ptr+commI1Ptr[i],comm1Ptr+commI1Ptr[i+1]);
5144 -              DataArrayInt *tmp0=DataArrayInt::New(),*tmp1=DataArrayInt::New(),*tmp2=DataArrayInt::New(),*tmp3=DataArrayInt::New();
5145 -              MCAuto<MEDCouplingUMesh> mm2=mm->buildDescendingConnectivity(tmp0,tmp1,tmp2,tmp3); tmp0->decrRef(); tmp1->decrRef(); tmp2->decrRef(); tmp3->decrRef();
5146 -              MCAuto<MEDCouplingUMesh> mm3=static_cast<MEDCouplingUMesh *>(mm2->buildPartOfMySelf(ids2->begin(),ids2->end(),true));
5147 +              ids2->transformWithIndArr(e_f + e_fi[index], e_f + e_fi[index + 1]);
5148 +              MCAuto<MEDCouplingUMesh> mm3=static_cast<MEDCouplingUMesh *>(faces->buildPartOfMySelf(ids2->begin(),ids2->end(),true));
5149                MCAuto<DataArrayInt> idsNodeTmp=mm3->zipCoordsTraducer();
5150                MCAuto<DataArrayInt> idsNode=idsNodeTmp->invertArrayO2N2N2O(mm3->getNumberOfNodes());
5151                const int *idsNodePtr=idsNode->begin();
5152 -              double center[3]; center[0]=pPtr[pointId]*vPtr[3*vecId]; center[1]=pPtr[pointId]*vPtr[3*vecId+1]; center[2]=pPtr[pointId]*vPtr[3*vecId+2];
5153 +              double center[3]; center[0]=pPtr[2*pointId]*vPtr[3*vecId]; center[1]=pPtr[2*pointId]*vPtr[3*vecId+1]; center[2]=pPtr[2*pointId]*vPtr[3*vecId+2];
5154                double vec[3]; vec[0]=vPtr[3*vecId+1]; vec[1]=-vPtr[3*vecId]; vec[2]=0.;
5155                double norm=vec[0]*vec[0]+vec[1]*vec[1]+vec[2]*vec[2];
5156                if(std::abs(norm)>eps)
5157 @@ -7884,7 +7906,7 @@
5158   * This method works on an input pair (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn.
5159   * This method builds an output pair (\b arrOut,\b arrIndexOut) that is a copy from \b arrIn for all cell ids \b not \b in [ \b idsOfSelectBg , \b idsOfSelectEnd ) and for
5160   * cellIds \b in [ \b idsOfSelectBg , \b idsOfSelectEnd ) a copy coming from the corresponding values in input pair (\b srcArr, \b srcArrIndex).
5161 - * This method is an generalization of MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx that performs the same thing but by without building explicitely a result output arrays.
5162 + * This method is an generalization of MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx that performs the same thing but by without building explicitly a result output arrays.
5163   *
5164   * \param [in] idsOfSelectBg begin of set of ids of the input extraction (included)
5165   * \param [in] idsOfSelectEnd end of set of ids of the input extraction (excluded)
5166 @@ -7950,7 +7972,7 @@
5167  
5168  /*!
5169   * This method works on an input pair (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn.
5170 - * This method is an specialization of MEDCouplingUMesh::SetPartOfIndexedArrays in the case of assignement do not modify the index in \b arrIndxIn.
5171 + * This method is an specialization of MEDCouplingUMesh::SetPartOfIndexedArrays in the case of assignment do not modify the index in \b arrIndxIn.
5172   *
5173   * \param [in] idsOfSelectBg begin of set of ids of the input extraction (included)
5174   * \param [in] idsOfSelectEnd end of set of ids of the input extraction (excluded)
5175 @@ -8047,7 +8069,7 @@
5176   * This method works on an input pair (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn.
5177   * This method builds an output pair (\b arrOut,\b arrIndexOut) that is a copy from \b arrIn for all cell ids \b not \b in [ \b idsOfSelectBg , \b idsOfSelectEnd ) and for
5178   * cellIds \b in [\b idsOfSelectBg, \b idsOfSelectEnd) a copy coming from the corresponding values in input pair (\b srcArr, \b srcArrIndex).
5179 - * This method is an generalization of MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx that performs the same thing but by without building explicitely a result output arrays.
5180 + * This method is an generalization of MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx that performs the same thing but by without building explicitly a result output arrays.
5181   *
5182   * \param [in] start begin of set of ids of the input extraction (included)
5183   * \param [in] end end of set of ids of the input extraction (excluded)
5184 @@ -8112,7 +8134,7 @@
5185  
5186  /*!
5187   * This method works on an input pair (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn.
5188 - * This method is an specialization of MEDCouplingUMesh::SetPartOfIndexedArrays in the case of assignement do not modify the index in \b arrIndxIn.
5189 + * This method is an specialization of MEDCouplingUMesh::SetPartOfIndexedArrays in the case of assignment do not modify the index in \b arrIndxIn.
5190   *
5191   * \param [in] start begin of set of ids of the input extraction (included)
5192   * \param [in] end end of set of ids of the input extraction (excluded)
5193 @@ -8282,7 +8304,7 @@
5194   *         decrRef() as it is no more needed.
5195   * \return MEDCoupling1SGTUMesh * - the mesh containing only INTERP_KERNEL::NORM_TETRA4 cells.
5196   *
5197 - * \warning This method operates on each cells in this independantly ! So it can leads to non conform mesh in returned value ! If you expect to have a conform mesh in output
5198 + * \warning This method operates on each cells in this independently ! So it can leads to non conform mesh in returned value ! If you expect to have a conform mesh in output
5199   * the policy PLANAR_FACE_6 should be used on a mesh sorted with MEDCoupling1SGTUMesh::sortHexa8EachOther.
5200   * 
5201   * \throw If \a this is not a 3D mesh (spaceDim==3 and meshDim==3).
5202 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh.hxx
5203 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh.hxx        2018-04-19 17:04:36.722222424 +0200
5204 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh.hxx        2018-04-19 17:25:18.041803366 +0200
5205 @@ -196,6 +196,7 @@
5206      MEDCOUPLING_EXPORT void orientCorrectlyPolyhedrons();
5207      MEDCOUPLING_EXPORT void invertOrientationOfAllCells();
5208      MEDCOUPLING_EXPORT void getFastAveragePlaneOfThis(double *vec, double *pos) const;
5209 +    MEDCOUPLING_EXPORT void attractSeg3MidPtsAroundNodes(double ratio, const int *nodeIdsBg, const int *nodeIdsEnd);
5210      //Mesh quality
5211      MEDCOUPLING_EXPORT MEDCouplingFieldDouble *getEdgeRatioField() const;
5212      MEDCOUPLING_EXPORT MEDCouplingFieldDouble *getAspectRatioField() const;
5213 @@ -205,7 +206,7 @@
5214      //utilities for MED File RW
5215      MEDCOUPLING_EXPORT std::vector<int> getDistributionOfTypes() const;
5216      MEDCOUPLING_EXPORT DataArrayInt *checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const;
5217 -    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const;
5218 +    MEDCOUPLING_EXPORT void splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType, bool smartPflKiller=true) const;
5219      MEDCOUPLING_EXPORT MEDCouplingUMesh *emulateMEDMEMBDC(const MEDCouplingUMesh *nM1LevMesh, DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *&revDesc, DataArrayInt *&revDescIndx, DataArrayInt *& nM1LevMeshIds, DataArrayInt *&meshnM1Old2New) const;
5220      MEDCOUPLING_EXPORT DataArrayInt *sortCellsInMEDFileFrmt();
5221      MEDCOUPLING_EXPORT bool checkConsecutiveCellTypes() const;
5222 @@ -251,7 +252,8 @@
5223      MEDCOUPLING_EXPORT static void CorrectExtrudedStaticCell(int *begin, int *end);
5224      MEDCOUPLING_EXPORT static bool IsTetra4WellOriented(const int *begin, const int *end, const double *coords);
5225      MEDCOUPLING_EXPORT static bool IsPyra5WellOriented(const int *begin, const int *end, const double *coords);
5226 -    MEDCOUPLING_EXPORT static void SimplifyPolyhedronCell(double eps, const DataArrayDouble *coords, const int *begin, const int *end, DataArrayInt *res);
5227 +    MEDCOUPLING_EXPORT static void SimplifyPolyhedronCell(double eps, const DataArrayDouble *coords, int index, DataArrayInt *res, MEDCouplingUMesh *faces,
5228 +                                                          DataArrayInt *E_Fi, DataArrayInt *E_F, DataArrayInt *F_Ei, DataArrayInt *F_E);
5229      MEDCOUPLING_EXPORT static void ComputeVecAndPtOfFace(double eps, const double *coords, const int *begin, const int *end, double *v, double *p);
5230      MEDCOUPLING_EXPORT static void TryToCorrectPolyhedronOrientation(int *begin, int *end, const double *coords);
5231      MEDCOUPLING_EXPORT static MEDCouplingUMesh *Intersect2DMeshes(const MEDCouplingUMesh *m1, const MEDCouplingUMesh *m2, double eps, DataArrayInt *&cellNb1, DataArrayInt *&cellNb2);
5232 @@ -355,9 +357,10 @@
5233                                                  std::vector<int> & pointIds, std::vector<int> & hitSegs);
5234      static void ReplaceEdgeInFace(const int * sIdxConn, const int * sIdxConnE, int startNode, int endNode,
5235                                        const std::vector<int>& insidePoints, std::vector<int>& modifiedFace);
5236 +    void attractSeg3MidPtsAroundNodesUnderground(double ratio, const int *nodeIdsBg, const int *nodeIdsEnd);
5237    public:
5238      MEDCOUPLING_EXPORT static DataArrayInt *ComputeRangesFromTypeDistribution(const std::vector<int>& code);
5239 -    MEDCOUPLING_EXPORT static const int N_MEDMEM_ORDER=24;
5240 +    MEDCOUPLING_EXPORT static const int N_MEDMEM_ORDER=25;
5241      MEDCOUPLING_EXPORT static const INTERP_KERNEL::NormalizedCellType MEDMEM_ORDER[N_MEDMEM_ORDER];
5242      MEDCOUPLING_EXPORT static const int MEDCOUPLING2VTKTYPETRADUCER[INTERP_KERNEL::NORM_MAXTYPE+1];
5243      /// @endcond
5244 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh_internal.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh_internal.cxx
5245 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh_internal.cxx       2018-04-19 17:04:36.722222424 +0200
5246 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh_internal.cxx       2018-04-19 17:25:18.122804967 +0200
5247 @@ -348,7 +348,7 @@
5248    double epsa=fabs(eps);
5249    if(epsa<std::numeric_limits<double>::min())
5250      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::tessellate2DCurveInternal : epsilon is null ! Please specify a higher epsilon. If too tiny it can lead to a huge amount of nodes and memory !");
5251 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=1.e-10;
5252 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(1.e-10);  // RAII
5253    int nbCells=getNumberOfCells();
5254    int nbNodes=getNumberOfNodes();
5255    const int *conn=_nodal_connec->begin();
5256 @@ -414,7 +414,7 @@
5257  
5258  /*!
5259   * This private method is used to subdivide edges of a mesh with meshdim==2. If \a this has no a meshdim equal to 2 an exception will be thrown.
5260 - * This method completly ignore coordinates.
5261 + * This method completely ignores coordinates.
5262   * \param nodeSubdived is the nodal connectivity of subdivision of edges
5263   * \param nodeIndxSubdived is the nodal connectivity index of subdivision of edges
5264   * \param desc is descending connectivity in format specified in MEDCouplingUMesh::buildDescendingConnectivity2
5265 @@ -1585,7 +1585,7 @@
5266   * This method is part of the Slice3D algorithm. It is the first step of assembly process, ones coordinates have been computed (by MEDCouplingUMesh::split3DCurveWithPlane method).
5267   * This method allows to compute given the status of 3D curve cells and the descending connectivity 3DSurf->3DCurve to deduce the intersection of each 3D surf cells
5268   * with a plane. The result will be put in 'cut3DSuf' out parameter.
5269 - * \param [in] cut3DCurve  input paramter that gives for each 3DCurve cell if it owns fully to the plane or partially.
5270 + * \param [in] cut3DCurve  input parameter that gives for each 3DCurve cell if it owns fully to the plane or partially.
5271   * \param [out] nodesOnPlane, returns all the nodes that are on the plane.
5272   * \param [in] nodal3DSurf is the nodal connectivity of 3D surf mesh.
5273   * \param [in] nodalIndx3DSurf is the nodal connectivity index of 3D surf mesh.
5274 @@ -1663,7 +1663,7 @@
5275   * This method is part of the Slice3D algorithm. It is the second step of assembly process, ones coordinates have been computed (by MEDCouplingUMesh::split3DCurveWithPlane method).
5276   * This method allows to compute given the result of 3D surf cells with plane and the descending connectivity 3D->3DSurf to deduce the intersection of each 3D cells
5277   * with a plane. The result will be put in 'nodalRes' 'nodalResIndx' and 'cellIds' out parameters.
5278 - * \param cut3DSurf  input paramter that gives for each 3DSurf its intersection with plane (result of MEDCouplingUMesh::AssemblyForSplitFrom3DCurve).
5279 + * \param cut3DSurf  input parameter that gives for each 3DSurf its intersection with plane (result of MEDCouplingUMesh::AssemblyForSplitFrom3DCurve).
5280   * \param desc is the descending connectivity 3D->3DSurf
5281   * \param descIndx is the descending connectivity index 3D->3DSurf
5282   */
5283 @@ -1754,3 +1754,88 @@
5284            types.insert((INTERP_KERNEL::NormalizedCellType)conn[*pt]);
5285      }
5286  }
5287 +
5288 +/*!
5289 + * This method expects that \a this a quadratic 1D, 2D or 3D mesh.
5290 + * This method will 'attract' middle points of seg3 (deduced from this by explosion if needed) of cells connected to nodes specified in [\a nodeIdsBg, \a nodeIdsEnd )
5291 + * For those selected mid points, their coordinates will be modified by applying a dilation between node in input [\a nodeIdsBg, \a nodeIdsEnd ) and the corresponding mid points using \a ratio input value.
5292 + * So this method is non const because coordinates are modified.
5293 + * If there is a couple of 2 points in [\a nodeIdsBg, \a nodeIdsEnd ) that are boundaries of a seg3, the corresponding mid point will remain untouched.
5294 + *
5295 + * \param [in] ratio - ratio of dilation
5296 + * \param [in] nodeIdsBg - start (included) of input node list
5297 + * \param [in] nodeIdsEnd - end (excluded) of input node list
5298 + * \throw if there is a point in [\a nodeIdsBg, \a nodeIdsEnd ) that is a mid point of a seg3
5299 + * \warning in case of throw the coordinates may be partially modified before the exception arises
5300 + */
5301 +void MEDCouplingUMesh::attractSeg3MidPtsAroundNodes(double ratio, const int *nodeIdsBg, const int *nodeIdsEnd)
5302 +{
5303 +  checkFullyDefined();
5304 +  int mdim(getMeshDimension());
5305 +  if(mdim==2 || mdim==3)
5306 +    {
5307 +      MCAuto<MEDCouplingUMesh> edges;
5308 +      {
5309 +        MCAuto<DataArrayInt> a,b,c,d;
5310 +        edges=this->explodeIntoEdges(a,b,c,d);
5311 +      }
5312 +      return edges->attractSeg3MidPtsAroundNodesUnderground(ratio,nodeIdsBg,nodeIdsEnd);
5313 +    }
5314 +  if(mdim==1)
5315 +    return attractSeg3MidPtsAroundNodesUnderground(ratio,nodeIdsBg,nodeIdsEnd);
5316 +  throw INTERP_KERNEL::Exception("MEDCouplingUMesh::attractSeg3MidPtsAroundNodes : not managed dimension ! Should be in [1,2,3] !");
5317 +}
5318 +
5319 +/*!
5320 + * \a this is expected to have meshdim==1.
5321 + */
5322 +void MEDCouplingUMesh::attractSeg3MidPtsAroundNodesUnderground(double ratio, const int *nodeIdsBg, const int *nodeIdsEnd)
5323 +{
5324 +#if __cplusplus >= 201103L
5325 +  int spaceDim(getSpaceDimension());
5326 +  double *coords(getCoords()->getPointer());
5327 +  auto nbNodes(getNumberOfNodes());
5328 +  auto nbCells(getNumberOfCells());
5329 +  std::vector<bool> fastFinder(nbNodes,false);
5330 +  for(auto work=nodeIdsBg;work!=nodeIdsEnd;work++)
5331 +    if(*work>=0 && *work<nbNodes)
5332 +      fastFinder[*work]=true;
5333 +  MCAuto<DataArrayInt> cellsIds(getCellIdsLyingOnNodes(nodeIdsBg,nodeIdsEnd,false));
5334 +  const int *nc(_nodal_connec->begin()),*nci(_nodal_connec_index->begin());
5335 +  for(auto cellId=0;cellId<nbCells;cellId++,nci++)
5336 +    {
5337 +      const int *isSelected(std::find_if(nc+nci[0]+1,nc+nci[1],[&fastFinder](int v) { return fastFinder[v]; }));
5338 +      if(isSelected!=nc+nci[1])
5339 +        {
5340 +          if((INTERP_KERNEL::NormalizedCellType)nc[nci[0]]==INTERP_KERNEL::NORM_SEG3 && nci[1]-nci[0]==4)
5341 +            {
5342 +              bool aa(fastFinder[nc[*nci+1]]),bb(fastFinder[nc[*nci+2]]),cc(fastFinder[nc[*nci+3]]);
5343 +              if(!cc)
5344 +                {
5345 +                  if(aa^bb)
5346 +                    {
5347 +                      auto ptToMove(nc[*nci+3]);
5348 +                      auto attractor(aa?nc[*nci+1]:nc[*nci+2]),endPt(aa?nc[*nci+2]:nc[*nci+1]);
5349 +                      std::transform(coords+spaceDim*attractor,coords+spaceDim*(attractor+1),coords+spaceDim*endPt,
5350 +                                     coords+spaceDim*ptToMove,[ratio](const double& stPt, const double& endPt) { return stPt+ratio*(endPt-stPt); });
5351 +                    }
5352 +                  else
5353 +                    continue;//both 2 boundary nodes of current seg3 are un nodeIds input list -> skip it.
5354 +                }
5355 +              else
5356 +                {
5357 +                  std::ostringstream oss; oss << "MEDCouplingUMesh::attractSeg3MidPtsAroundNodes : cell #" << cellId << " has a mid point " << nc[*nci+3] << " ! This node is in input list !";
5358 +                  throw INTERP_KERNEL::Exception(oss.str());
5359 +                }
5360 +            }
5361 +          else
5362 +            {
5363 +              std::ostringstream oss; oss << "MEDCouplingUMesh::attractSeg3MidPtsAroundNodes : cell #" << cellId << " sharing one of the input nodes list its geo type is NOT SEG3 !";
5364 +              throw INTERP_KERNEL::Exception(oss.str());
5365 +            }
5366 +        }
5367 +    }
5368 +#else
5369 +  throw INTERP_KERNEL::Exception("MEDCouplingUMesh::attractSeg3MidPtsAroundNodes : for your information new compiler have arrived since Fortran66 compiler :)");
5370 +#endif 
5371 +}
5372 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh_internal.hxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh_internal.hxx
5373 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh_internal.hxx       2018-04-19 17:04:36.722222424 +0200
5374 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh_internal.hxx       2018-04-19 17:25:18.111804749 +0200
5375 @@ -102,6 +102,10 @@
5376  void MEDCouplingUMesh::getCellsContainingPointsAlg(const double *coords, const double *pos, int nbOfPoints,
5377                                                     double eps, MCAuto<DataArrayInt>& elts, MCAuto<DataArrayInt>& eltsIndex) const
5378  {
5379 +  // Override precision for this method only:
5380 +  INTERP_KERNEL::QuadraticPlanarPrecision prec(eps);
5381 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(eps);
5382 +
5383    elts=DataArrayInt::New(); eltsIndex=DataArrayInt::New(); eltsIndex->alloc(nbOfPoints+1,1); eltsIndex->setIJ(0,0,0); elts->alloc(0,1);
5384    int *eltsIndexPtr(eltsIndex->getPointer());
5385    MCAuto<DataArrayDouble> bboxArr(getBoundingBoxForBBTree(eps));
5386 @@ -132,8 +136,6 @@
5387              {
5388                if(SPACEDIM!=2)
5389                  throw INTERP_KERNEL::Exception("MEDCouplingUMesh::getCellsContainingPointsAlg : not implemented yet for POLYGON and QPOLYGON in spaceDim 3 !");
5390 -              INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps;
5391 -              INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps;
5392                std::vector<INTERP_KERNEL::Node *> nodes(sz);
5393                INTERP_KERNEL::QuadraticPolygon *pol(0);
5394                for(int j=0;j<sz;j++)
5395 diff -Naur MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh_intersection.cxx MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh_intersection.cxx
5396 --- MEDCOUPLING_old/src/MEDCoupling/MEDCouplingUMesh_intersection.cxx   2018-04-19 17:04:36.723222444 +0200
5397 +++ MEDCOUPLING_new/src/MEDCoupling/MEDCouplingUMesh_intersection.cxx   2018-04-19 17:25:18.034803227 +0200
5398 @@ -282,7 +282,7 @@
5399    }
5400  
5401    /**
5402 -   * Construct a mapping between set of Nodes and the standart MEDCoupling connectivity format (c, cI).
5403 +   * Construct a mapping between set of Nodes and the standard MEDCoupling connectivity format (c, cI).
5404     */
5405    void MEDCouplingUMeshBuildQPFromMesh3(const double *coo1, int offset1, const double *coo2, int offset2, const std::vector<double>& addCoo,
5406                                          const int *desc1Bg, const int *desc1End, const std::vector<std::vector<int> >& intesctEdges1,
5407 @@ -337,7 +337,7 @@
5408        // This initializes posBaseElt.
5409        if(nbOfTurn==0)
5410          {
5411 -          for(unsigned i=1;i<nbs && nbOfHit<maxNbOfHit;i++) // 2nd condition is to avoid ending with a cell wih one single edge
5412 +          for(unsigned i=1;i<nbs && nbOfHit<maxNbOfHit;i++) // 2nd condition is to avoid ending with a cell with one single edge
5413              {
5414                cm.fillSonCellNodalConnectivity2(nbs-i,connBg+1,sz,tmpConn,typeOfSon);
5415                INTERP_KERNEL::Edge *eCand(MEDCouplingUMeshBuildQPFromEdge2(typeOfSon,tmpConn,coords,m));
5416 @@ -357,7 +357,7 @@
5417          }
5418        // Now move forward:
5419        const unsigned fwdStart = (nbOfTurn == 0 ? 0 : posBaseElt);  // the first element to be inspected going forward
5420 -      for(unsigned j=fwdStart+1;j<nbs && nbOfHit<maxNbOfHit;j++)  // 2nd condition is to avoid ending with a cell wih one single edge
5421 +      for(unsigned j=fwdStart+1;j<nbs && nbOfHit<maxNbOfHit;j++)  // 2nd condition is to avoid ending with a cell with one single edge
5422          {
5423            cm.fillSonCellNodalConnectivity2((int)j,connBg+1,sz,tmpConn,typeOfSon); // get edge #j's connectivity
5424            INTERP_KERNEL::Edge *eCand(MEDCouplingUMeshBuildQPFromEdge2(typeOfSon,tmpConn,coords,m));
5425 @@ -375,9 +375,9 @@
5426                break;
5427          }
5428        //push [posBaseElt,posEndElt) in newConnOfCell using e
5429 -      // The if clauses below are (volontary) not mutually exclusive: on a quad cell with 2 edges, the end of the connectivity is also its begining!
5430 +      // The if clauses below are (voluntary) not mutually exclusive: on a quad cell with 2 edges, the end of the connectivity is also its beginning!
5431        if(nbOfTurn==0)
5432 -        // at the begining of the connectivity (insert type)
5433 +        // at the beginning of the connectivity (insert type)
5434          EnterTheResultOf2DCellFirst(e,posBaseElt,posEndElt,(int)nbs,cm.isQuadratic(),coords,connBg+1,offset,newConnOfCell,appendedCoords,middles);
5435        else if((nbOfHit+nbOfTurn) != (nbs-1))
5436          // in the middle
5437 @@ -430,7 +430,7 @@
5438   * (Only present for its coords in case of 'subDiv' shares some nodes of 'm1')
5439   * \param m2 is expected to be a mesh of meshDimension equal to 1 and spaceDim equal to 2. No check of that is performed by this method.
5440   * \param addCoo input parameter with additional nodes linked to intersection of the 2 meshes.
5441 - * \param[out] intersectEdge the same content as subDiv, but correclty oriented.
5442 + * \param[out] intersectEdge the same content as subDiv, but correctly oriented.
5443   */
5444  void MEDCouplingUMesh::BuildIntersectEdges(const MEDCouplingUMesh *m1, const MEDCouplingUMesh *m2,
5445                                             const std::vector<double>& addCoo,
5446 @@ -1170,11 +1170,11 @@
5447                                           std::vector< std::vector<int> >& intersectEdge1, std::vector< std::vector<int> >& colinear2, std::vector< std::vector<int> >& subDiv2, std::vector<double>& addCoo, std::map<int,int>& mergedNodes)
5448  {
5449    static const int SPACEDIM=2;
5450 -  INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps;
5451 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps;
5452 +  INTERP_KERNEL::QuadraticPlanarPrecision prec(eps);
5453 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(eps);
5454    const int *c1(m1Desc->getNodalConnectivity()->begin()),*ci1(m1Desc->getNodalConnectivityIndex()->begin());
5455    // Build BB tree of all edges in the tool mesh (second mesh)
5456 -  MCAuto<DataArrayDouble> bbox1Arr(m1Desc->getBoundingBoxForBBTree()),bbox2Arr(m2Desc->getBoundingBoxForBBTree());
5457 +  MCAuto<DataArrayDouble> bbox1Arr(m1Desc->getBoundingBoxForBBTree(eps)),bbox2Arr(m2Desc->getBoundingBoxForBBTree(eps));
5458    const double *bbox1(bbox1Arr->begin()),*bbox2(bbox2Arr->begin());
5459    int nDescCell1(m1Desc->getNumberOfCells()),nDescCell2(m2Desc->getNumberOfCells());
5460    intersectEdge1.resize(nDescCell1);
5461 @@ -1206,7 +1206,7 @@
5462            for(std::size_t iii=0;iii<szz;iii++,itt++)
5463              { (*itt)->incrRef(); nodesSafe[iii]=*itt; }
5464            // end of protection
5465 -          // Performs egde cutting:
5466 +          // Performs edge cutting:
5467            pol1->splitAbs(*pol2,map1,map2,offset1,offset2,candidates2,intersectEdge1[i],i,colinear2,subDiv2,addCoo,mergedNodes);
5468            delete pol2;
5469            delete pol1;
5470 @@ -1252,7 +1252,7 @@
5471   * (newly created) nodes corresponding to the edge intersections.
5472   * Output params:
5473   * @param[out] cr, crI connectivity of the resulting mesh
5474 - * @param[out] cNb1, cNb2 correspondance arrays giving for the merged mesh the initial cells IDs in m1 / m2
5475 + * @param[out] cNb1, cNb2 correspondence arrays giving for the merged mesh the initial cells IDs in m1 / m2
5476   * TODO: describe input parameters
5477   */
5478  void MEDCouplingUMesh::BuildIntersecting2DCellsFromEdges(double eps, const MEDCouplingUMesh *m1, const int *desc1, const int *descIndx1,
5479 @@ -1269,7 +1269,7 @@
5480    const int *conn2(m2->getNodalConnectivity()->begin()),*connI2(m2->getNodalConnectivityIndex()->begin());
5481    int offset2(offset1+m2->getNumberOfNodes());
5482    int offset3(offset2+((int)addCoords.size())/2);
5483 -  MCAuto<DataArrayDouble> bbox1Arr(m1->getBoundingBoxForBBTree()),bbox2Arr(m2->getBoundingBoxForBBTree());
5484 +  MCAuto<DataArrayDouble> bbox1Arr(m1->getBoundingBoxForBBTree(eps)),bbox2Arr(m2->getBoundingBoxForBBTree(eps));
5485    const double *bbox1(bbox1Arr->begin()),*bbox2(bbox2Arr->begin());
5486    // Here a BBTree on 2D-cells, not on segments:
5487    BBTree<SPACEDIM,int> myTree(bbox2,0,0,m2->getNumberOfCells(),eps);
5488 @@ -1431,7 +1431,7 @@
5489  }
5490  
5491  /*!
5492 - * It is the linear part of MEDCouplingUMesh::split2DCells. Here no additionnal nodes will be added in \b this. So coordinates pointer remain unchanged (is not even touch).
5493 + * It is the linear part of MEDCouplingUMesh::split2DCells. Here no additional nodes will be added in \b this. So coordinates pointer remain unchanged (is not even touch).
5494   *
5495   * \sa MEDCouplingUMesh::split2DCells
5496   */
5497 @@ -1467,7 +1467,7 @@
5498  
5499  
5500  /*!
5501 - * It is the quadratic part of MEDCouplingUMesh::split2DCells. Here some additionnal nodes can be added at the end of coordinates array object.
5502 + * It is the quadratic part of MEDCouplingUMesh::split2DCells. Here some additional nodes can be added at the end of coordinates array object.
5503   *
5504   * \return  int - the number of new nodes created.
5505   * \sa MEDCouplingUMesh::split2DCells
5506 @@ -1567,6 +1567,8 @@
5507      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::Intersect2DMeshes : input meshes must be not NULL !");
5508    m1->checkFullyDefined();
5509    m2->checkFullyDefined();
5510 +  INTERP_KERNEL::QuadraticPlanarPrecision prec(eps);
5511 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(eps);
5512    if(m1->getMeshDimension()!=2 || m1->getSpaceDimension()!=2 || m2->getMeshDimension()!=2 || m2->getSpaceDimension()!=2)
5513      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::Intersect2DMeshes works on umeshes m1 AND m2  with meshdim equal to 2 and spaceDim equal to 2 too!");
5514  
5515 @@ -1617,7 +1619,7 @@
5516  /*!
5517   * Partitions the first given 2D mesh using the second given 1D mesh as a tool.
5518   * Thus the final result contains the aggregation of nodes of \a mesh2D, then nodes of \a mesh1D, then new nodes that are the result of the intersection
5519 - * and finaly, in case of quadratic polygon the centers of edges new nodes.
5520 + * and finally, in case of quadratic polygon the centers of edges new nodes.
5521   * The meshes should be in 2D space. In addition, returns two arrays mapping cells of the resulting mesh to cells of the input.
5522   *
5523   * \param [in] mesh2D - the 2D mesh (spacedim=meshdim=2) to be intersected using \a mesh1D tool. The mesh must be so that each point in the space covered by \a mesh2D
5524 @@ -1647,8 +1649,8 @@
5525    // Step 1: compute all edge intersections (new nodes)
5526    std::vector< std::vector<int> > intersectEdge1, colinear2, subDiv2;
5527    std::vector<double> addCoo,addCoordsQuadratic;  // coordinates of newly created nodes
5528 -  INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps;
5529 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps;
5530 +  INTERP_KERNEL::QuadraticPlanarPrecision prec(eps);
5531 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(eps);
5532    //
5533    // Build desc connectivity
5534    DataArrayInt *desc1(DataArrayInt::New()),*descIndx1(DataArrayInt::New()),*revDesc1(DataArrayInt::New()),*revDescIndx1(DataArrayInt::New());
5535 @@ -1702,7 +1704,9 @@
5536    MCAuto<DataArrayDouble> baryRet1(ret1NonCol->computeCellCenterOfMass());
5537    MCAuto<DataArrayInt> elts,eltsIndex;
5538    mesh2D->getCellsContainingPoints(baryRet1->begin(),baryRet1->getNumberOfTuples(),eps,elts,eltsIndex);
5539 -  MCAuto<DataArrayInt> eltsIndex2(eltsIndex->deltaShiftIndex());
5540 +  MCAuto<DataArrayInt> eltsIndex2(DataArrayInt::New()); eltsIndex2->alloc(0,1);
5541 +  if (eltsIndex->getNumberOfTuples() > 1)
5542 +    eltsIndex2 = eltsIndex->deltaShiftIndex();
5543    MCAuto<DataArrayInt> eltsIndex3(eltsIndex2->findIdsEqual(1));
5544    if(eltsIndex2->count(0)+eltsIndex3->getNumberOfTuples()!=ret1NonCol->getNumberOfCells())
5545      throw INTERP_KERNEL::Exception("Intersect2DMeshWith1DLine : internal error 1 !");
5546 @@ -1809,7 +1813,7 @@
5547   * \b WARNING this method lead to have a non geometric type sorted mesh (for MED file users) !
5548   * This method performs a conformization of \b this. So if a edge in \a this can be split into entire edges in \a this this method
5549   * will suppress such edges to use sub edges in \a this. So this method does not add nodes in \a this if merged edges are both linear (INTERP_KERNEL::NORM_SEG2).
5550 - * In the other cases new nodes can be created. If any are created, they will be appended at the end of the coordinates object before the invokation of this method.
5551 + * In the other cases new nodes can be created. If any are created, they will be appended at the end of the coordinates object before the invocation of this method.
5552   *
5553   * Whatever the returned value, this method does not alter the order of cells in \a this neither the orientation of cells.
5554   * The modified cells, if any, are systematically declared as NORM_POLYGON or NORM_QPOLYG depending on the initial quadraticness of geometric type.
5555 @@ -1836,14 +1840,14 @@
5556    MCAuto<DataArrayInt> desc1(DataArrayInt::New()),descIndx1(DataArrayInt::New()),revDesc1(DataArrayInt::New()),revDescIndx1(DataArrayInt::New());
5557    MCAuto<MEDCouplingUMesh> mDesc(buildDescendingConnectivity(desc1,descIndx1,revDesc1,revDescIndx1));
5558    const int *c(mDesc->getNodalConnectivity()->begin()),*ci(mDesc->getNodalConnectivityIndex()->begin()),*rd(revDesc1->begin()),*rdi(revDescIndx1->begin());
5559 -  MCAuto<DataArrayDouble> bboxArr(mDesc->getBoundingBoxForBBTree());
5560 +  MCAuto<DataArrayDouble> bboxArr(mDesc->getBoundingBoxForBBTree(eps));
5561    const double *bbox(bboxArr->begin()),*coords(getCoords()->begin());
5562    int nCell(getNumberOfCells()),nDescCell(mDesc->getNumberOfCells());
5563    std::vector< std::vector<int> > intersectEdge(nDescCell),overlapEdge(nDescCell);
5564    std::vector<double> addCoo;
5565    BBTree<SPACEDIM,int> myTree(bbox,0,0,nDescCell,-eps);
5566 -  INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps;
5567 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps;
5568 +  INTERP_KERNEL::QuadraticPlanarPrecision prec(eps);
5569 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(eps);
5570    for(int i=0;i<nDescCell;i++)
5571      {
5572        std::vector<int> candidates;
5573 @@ -1948,7 +1952,7 @@
5574   * If yes, the cell is "repaired" to minimize at most its number of edges. So this method do not change the overall shape of cells in \a this (with eps precision).
5575   * This method do not take care of shared edges between cells, so this method can lead to a non conform mesh (\a this). If a conform mesh is required you're expected
5576   * to invoke MEDCouplingUMesh::mergeNodes and MEDCouplingUMesh::conformize2D right after this call.
5577 - * This method works on any 2D geometric types of cell (even static one). If a cell is touched its type becomes dynamic automaticaly. For 2D "repaired" quadratic cells
5578 + * This method works on any 2D geometric types of cell (even static one). If a cell is touched its type becomes dynamic automatically. For 2D "repaired" quadratic cells
5579   * new nodes for center of merged edges is are systematically created and appended at the end of the previously existing nodes.
5580   *
5581   * If the returned array is empty it means that nothing has changed in \a this (as if it were a const method). If the array is not empty the connectivity of \a this is modified
5582 @@ -1970,8 +1974,8 @@
5583    checkConsistencyLight();
5584    if(getSpaceDimension()!=2 || getMeshDimension()!=2)
5585      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::colinearize2D : This method only works for meshes with spaceDim=2 and meshDim=2 !");
5586 -  INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps;
5587 -  INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps;
5588 +  INTERP_KERNEL::QuadraticPlanarPrecision prec(eps);
5589 +  INTERP_KERNEL::QuadraticPlanarArcDetectionPrecision arcPrec(eps);
5590    int nbOfCells(getNumberOfCells()),nbOfNodes(getNumberOfNodes());
5591    const int *cptr(_nodal_connec->begin()),*ciptr(_nodal_connec_index->begin());
5592    MCAuto<DataArrayInt> newc(DataArrayInt::New()),newci(DataArrayInt::New()); newci->alloc(nbOfCells+1,1); newc->alloc(0,1); newci->setIJ(0,0,0);
5593 @@ -2084,7 +2088,7 @@
5594      throw INTERP_KERNEL::Exception("MEDCouplingUMesh::ReplaceEdgeInFace: internal error, should never happen!");
5595    int d = distance(startPos, endPos);
5596    if (d == 1 || d == (1-dst)) // don't use modulo, for neg numbers, result is implementation defined ...
5597 -    modifiedFace.insert(++startPos, ++insidePoints.begin(), --insidePoints.end());  // insidePoints also contains start and end node. Those dont need to be inserted.
5598 +    modifiedFace.insert(++startPos, ++insidePoints.begin(), --insidePoints.end());  // insidePoints also contains start and end node. Those don't need to be inserted.
5599    else
5600      modifiedFace.insert(++endPos, ++insidePoints.rbegin(), --insidePoints.rend());
5601  }
5602 @@ -2138,7 +2142,7 @@
5603      MCAuto<MEDCouplingSkyLineArray> connSlaDesc(MEDCouplingSkyLineArray::New(mDesc->getNodalConnectivityIndex(), mDesc->getNodalConnectivity()));
5604  
5605      // Build BBTree
5606 -    MCAuto<DataArrayDouble> bboxArr(mDesc->getBoundingBoxForBBTree());
5607 +    MCAuto<DataArrayDouble> bboxArr(mDesc->getBoundingBoxForBBTree(eps));
5608      const double *bbox(bboxArr->begin()); getCoords()->begin();
5609      int nDescCell(mDesc->getNumberOfCells());
5610      BBTree<SPACEDIM,int> myTree(bbox,0,0,nDescCell,-eps);
5611 @@ -2162,7 +2166,7 @@
5612      fill(hit.begin(), hit.end(), false);
5613      vector<int> hitPoly; // the final result: which 3D cells have been modified.
5614  
5615 -    for( vector<pair<double,int>>::const_iterator it = S.begin(); it != S.end(); it++)
5616 +    for( vector<pair<double,int> >::const_iterator it = S.begin(); it != S.end(); it++)
5617        {
5618          int faceIdx = (*it).second;
5619          if (hit[faceIdx]) continue;
5620 @@ -2260,7 +2264,7 @@
5621            {
5622              if (packsIds[jj] == -1)
5623                // The below should never happen - if a face is used several times, with a different layout of the nodes
5624 -              // it means that is is already conform, so it is *not* hit by the algorithm. The algorithm only hits
5625 +              // it means that it is already conform, so it is *not* hit by the algorithm. The algorithm only hits
5626                // faces which are actually used only once, by a single cell. This is different for edges below.
5627                throw INTERP_KERNEL::Exception("MEDCouplingUMesh::conformize3D: Could not find face in connectivity! Internal error.");
5628              else
5629 @@ -2308,7 +2312,7 @@
5630  //    mDesc2->writeVTK("/tmp/toto_desc2_confInter.vtu");
5631      const int *revDescIP2(revDescI2->getConstPointer()), *revDescP2(revDesc2->getConstPointer());
5632      const int *cDesc2(mDesc2->getNodalConnectivity()->begin()),*cIDesc2(mDesc2->getNodalConnectivityIndex()->begin());
5633 -    MCAuto<DataArrayDouble> bboxArr(mDesc2->getBoundingBoxForBBTree());
5634 +    MCAuto<DataArrayDouble> bboxArr(mDesc2->getBoundingBoxForBBTree(eps));
5635      const double *bbox2(bboxArr->begin());
5636      int nDesc2Cell=mDesc2->getNumberOfCells();
5637      BBTree<SPACEDIM,int> myTree2(bbox2,0,0,nDesc2Cell,-eps);
5638 @@ -2318,7 +2322,7 @@
5639      DataArrayDouble * lens = lenF->getArray();
5640  
5641      // Sort edges by decreasing length:
5642 -    vector<pair<double,int>> S;
5643 +    vector<pair<double,int> > S;
5644      for(std::size_t i=0;i < lens->getNumberOfTuples();i++)
5645        {
5646          pair<double,int> p = make_pair(lens->getIJ(i, 0), i);
5647 @@ -2329,7 +2333,7 @@
5648      vector<bool> hit(nDesc2Cell);
5649      fill(hit.begin(), hit.end(), false);
5650  
5651 -    for( vector<pair<double,int>>::const_iterator it = S.begin(); it != S.end(); it++)
5652 +    for( vector<pair<double,int> >::const_iterator it = S.begin(); it != S.end(); it++)
5653        {
5654          int eIdx = (*it).second;
5655          if (hit[eIdx])
5656 @@ -2397,7 +2401,7 @@
5657              mPartCand->getNodalConnectivity()->begin(), mPartCand->getNodalConnectivityIndex()->begin(),
5658              idsGoodLine->begin(), idsGoodLine->end(),
5659              /*out*/insidePoints, hitSegs);
5660 -        // Optim: smaller segments completly included in eIdx and not split won't need any further treatment:
5661 +        // Optim: smaller segments completely included in eIdx and not split won't need any further treatment:
5662          for (vector<int>::const_iterator its=hitSegs.begin(); its != hitSegs.end(); ++its)
5663            hit[cands2[*its]] = true;
5664  
5665 diff -Naur MEDCOUPLING_old/src/MEDCoupling/Test/CMakeLists.txt MEDCOUPLING_new/src/MEDCoupling/Test/CMakeLists.txt
5666 --- MEDCOUPLING_old/src/MEDCoupling/Test/CMakeLists.txt 2018-04-19 17:04:36.723222444 +0200
5667 +++ MEDCOUPLING_new/src/MEDCoupling/Test/CMakeLists.txt 2018-04-19 17:25:18.061803761 +0200
5668 @@ -57,7 +57,7 @@
5669  SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
5670  
5671  ADD_EXECUTABLE(TestMEDCoupling ${TestMEDCoupling_SOURCES})
5672 -TARGET_LINK_LIBRARIES(TestMEDCoupling medcoupling ${CPPUNIT_LIBRARIES} ${PLATFORM_LIBS})
5673 +TARGET_LINK_LIBRARIES(TestMEDCoupling medcouplingcpp ${CPPUNIT_LIBRARIES} ${PLATFORM_LIBS})
5674  ADD_TEST(TestMEDCoupling TestMEDCoupling)
5675  SET_TESTS_PROPERTIES(TestMEDCoupling PROPERTIES ENVIRONMENT "${tests_env}")
5676  
5677 @@ -67,7 +67,7 @@
5678  SET_TESTS_PROPERTIES(TestMEDCouplingRemapper PROPERTIES ENVIRONMENT "${tests_env}")
5679  
5680  ADD_EXECUTABLE(TestMEDCouplingExamples ${TestMEDCouplingExamples_SOURCES})
5681 -TARGET_LINK_LIBRARIES(TestMEDCouplingExamples medcoupling ${CPPUNIT_LIBRARIES} ${PLATFORM_LIBS})
5682 +TARGET_LINK_LIBRARIES(TestMEDCouplingExamples medcouplingcpp ${CPPUNIT_LIBRARIES} ${PLATFORM_LIBS})
5683  ADD_TEST(TestMEDCouplingExamples TestMEDCouplingExamples)
5684  SET_TESTS_PROPERTIES(TestMEDCouplingExamples PROPERTIES ENVIRONMENT "${tests_env}")
5685  
5686 diff -Naur MEDCOUPLING_old/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx MEDCOUPLING_new/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx
5687 --- MEDCOUPLING_old/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx     2018-04-19 17:04:36.725222483 +0200
5688 +++ MEDCOUPLING_new/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx     2018-04-19 17:25:18.083804196 +0200
5689 @@ -937,7 +937,7 @@
5690    m->checkConsistency();//OK because we are in polyhedron connec
5691    m->getNodalConnectivity()->setIJ(36,0,14);
5692    m->checkConsistencyLight();
5693 -  CPPUNIT_ASSERT_THROW(m->checkConsistency(),INTERP_KERNEL::Exception);//Throw beacause now cell 5 is a TETRA4 (14) so mimatch of number index and static type.
5694 +  CPPUNIT_ASSERT_THROW(m->checkConsistency(),INTERP_KERNEL::Exception);//Throw because now cell 5 is a TETRA4 (14) so mismatch of number index and static type.
5695    m->decrRef();
5696  }
5697  
5698 diff -Naur MEDCOUPLING_old/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx MEDCOUPLING_new/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx
5699 --- MEDCOUPLING_old/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx        2018-04-19 17:04:36.726222503 +0200
5700 +++ MEDCOUPLING_new/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx        2018-04-19 17:25:18.077804077 +0200
5701 @@ -1465,7 +1465,7 @@
5702    sourceMesh->allocateCells(0);
5703    sourceMesh->finishInsertingCells();
5704    DataArrayDouble *myCoords=DataArrayDouble::New();
5705 -  myCoords->alloc(0,0);
5706 +  myCoords->alloc(0,2);
5707    sourceMesh->setCoords(myCoords);
5708    myCoords->decrRef();
5709    MEDCouplingUMesh *targetMesh=MEDCouplingUMesh::New();
5710 diff -Naur MEDCOUPLING_old/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx MEDCOUPLING_new/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx
5711 --- MEDCOUPLING_old/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx    2018-04-19 17:04:36.727222523 +0200
5712 +++ MEDCOUPLING_new/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx    2018-04-19 17:25:18.066803860 +0200
5713 @@ -2378,7 +2378,7 @@
5714    fieldOnCells->setMesh(mesh);
5715    mesh->decrRef(); // no more need of mesh because mesh has been attached to fieldOnCells
5716    MEDCoupling::DataArrayDouble *array=MEDCoupling::DataArrayDouble::New();
5717 -  array->alloc(fieldOnCells->getMesh()->getNumberOfCells(),9);//Implicitely fieldOnCells will be a 9 components field.
5718 +  array->alloc(fieldOnCells->getMesh()->getNumberOfCells(),9);//Implicitly fieldOnCells will be a 9 components field.
5719    array->fillWithValue(7.);
5720    fieldOnCells->setArray(array);
5721    array->decrRef();
5722 @@ -2430,7 +2430,7 @@
5723    fieldOnNodes->setMesh(mesh);
5724    mesh->decrRef(); // no more need of mesh because mesh has been attached to fieldOnNodes
5725    MEDCoupling::DataArrayDouble *array=MEDCoupling::DataArrayDouble::New();
5726 -  array->alloc(fieldOnNodes->getMesh()->getNumberOfNodes(),1);//Implicitely fieldOnNodes will be a 1 component field.
5727 +  array->alloc(fieldOnNodes->getMesh()->getNumberOfNodes(),1);//Implicitly fieldOnNodes will be a 1 component field.
5728    array->fillWithValue(8.);
5729    fieldOnNodes->setArray(array);
5730    array->decrRef();
5731 @@ -2457,7 +2457,7 @@
5732    fieldOnCells->setMesh(mesh);
5733    mesh->decrRef(); // no more need of mesh because mesh has been attached to fieldOnCells
5734    MEDCoupling::DataArrayDouble *array=MEDCoupling::DataArrayDouble::New();
5735 -  array->alloc(fieldOnCells->getMesh()->getNumberOfCells(),2);//Implicitely fieldOnCells will be a 2 components field.
5736 +  array->alloc(fieldOnCells->getMesh()->getNumberOfCells(),2);//Implicitly fieldOnCells will be a 2 components field.
5737    array->fillWithValue(7.);
5738    fieldOnCells->setArray(array);
5739    array->decrRef();
5740 @@ -2485,7 +2485,7 @@
5741    fieldOnNodes->setMesh(mesh);
5742    mesh->decrRef(); // no more need of mesh because mesh has been attached to fieldOnNodes
5743    MEDCoupling::DataArrayDouble *array=MEDCoupling::DataArrayDouble::New();
5744 -  array->alloc(fieldOnNodes->getMesh()->getNumberOfNodes(),3);//Implicitely fieldOnNodes will be a 3 components field.
5745 +  array->alloc(fieldOnNodes->getMesh()->getNumberOfNodes(),3);//Implicitly fieldOnNodes will be a 3 components field.
5746    array->fillWithValue(8.);
5747    fieldOnNodes->setArray(array);
5748    array->decrRef();
5749 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/CMakeLists.txt MEDCOUPLING_new/src/MEDCoupling_Swig/CMakeLists.txt
5750 --- MEDCOUPLING_old/src/MEDCoupling_Swig/CMakeLists.txt 2018-04-19 17:04:36.728222543 +0200
5751 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/CMakeLists.txt 2018-04-19 17:25:17.264788007 +0200
5752 @@ -46,6 +46,7 @@
5753  SET (MC_Swig_interf
5754      MEDCoupling.i
5755      MEDCouplingCommon.i
5756 +    MEDCouplingRemapperCommon.i
5757      MEDCouplingRefCountObject.i
5758      MEDCouplingMemArray.i
5759      MEDCouplingFieldDiscretization.i
5760 @@ -60,7 +61,7 @@
5761  INCLUDE_DIRECTORIES(
5762    ${PYTHON_INCLUDE_DIRS}
5763    ${NUMPY_INCLUDE_DIR}
5764 -  ${PTHREAD_INCLUDE_DIR} # pthread dependancy due to python2.7 library
5765 +  ${PTHREAD_INCLUDE_DIR} # pthread dependency due to python2.7 library
5766    ${CMAKE_CURRENT_SOURCE_DIR}
5767    ${CMAKE_CURRENT_BINARY_DIR}
5768    ${CMAKE_CURRENT_SOURCE_DIR}/../MEDCoupling
5769 @@ -87,7 +88,7 @@
5770  ENDIF()
5771  
5772  SWIG_ADD_MODULE(MEDCoupling python MEDCoupling.i)
5773 -SWIG_LINK_LIBRARIES(MEDCoupling ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} medcoupling)
5774 +SWIG_LINK_LIBRARIES(MEDCoupling ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} medcouplingcpp)
5775  SWIG_CHECK_GENERATION(MEDCoupling)
5776  SET_SOURCE_FILES_PROPERTIES(MEDCouplingRemapper.i PROPERTIES CPLUSPLUS ON)
5777  IF ("${PYTHON_VERSION_MAJOR}" STREQUAL "3")
5778 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingBasicsTest3.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingBasicsTest3.py
5779 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingBasicsTest3.py      2018-04-19 17:04:36.729222563 +0200
5780 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingBasicsTest3.py      2018-04-19 17:25:17.250787731 +0200
5781 @@ -1444,7 +1444,7 @@
5782          m.checkConsistency();#OK because we are in polyhedron connec
5783          m.getNodalConnectivity().setIJ(36,0,14);
5784          m.checkConsistencyLight();
5785 -        self.assertRaises(InterpKernelException,m.checkConsistency);#Throw beacause now cell 5 is a TETRA4 (14) so mimatch of number index and static type.
5786 +        self.assertRaises(InterpKernelException,m.checkConsistency);#Throw because now cell 5 is a TETRA4 (14) so mismatch of number index and static type.
5787          pass
5788  
5789      def testUnPolyze2(self):
5790 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py
5791 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py      2018-04-19 17:04:36.732222623 +0200
5792 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py      2018-04-19 17:25:17.247787671 +0200
5793 @@ -17,7 +17,6 @@
5794  #
5795  # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
5796  #
5797 -
5798  from MEDCoupling import *
5799  import unittest
5800  from math import pi,e,sqrt,cos,sin
5801 @@ -1462,7 +1461,7 @@
5802          self.assertEqual(f4.getMesh(),None)
5803          pass
5804  
5805 -    # test a simple node to cell convertion of a field
5806 +    # test a simple node to cell conversion of a field
5807      def testSwig2NodeToCellDiscretization1(self):
5808          f=MEDCouplingFieldDouble(ON_NODES) ; f.setTime(1.1,2,3)
5809          a1=DataArrayDouble(4) ; a1.iota()
5810 @@ -1891,7 +1890,7 @@
5811          gaussCoords=refCoords[:] ; gaussCoords[14]=0.9999999999999 # change z of point #4 0.999... instead of 1. because with shape function it leads to division by 0. !
5812          fGauss.setGaussLocalizationOnType(NORM_PYRA13,refCoords,gaussCoords,weights)
5813          arrOfDisc2=fGauss.getLocalizationOfDiscr()
5814 -        self.assertTrue(arrOfDisc2.isEqual(coo,1e-10)) # be less exigent 1e-10 instead of 1e-12 due to shape function sensitivity arount 0.,0.,1. !
5815 +        self.assertTrue(arrOfDisc2.isEqual(coo,1e-10)) # be less exigent 1e-10 instead of 1e-12 due to shape function sensitivity around 0.,0.,1. !
5816          pass
5817  
5818      def testSwig2Tri7GP1(self):
5819 @@ -2123,7 +2122,7 @@
5820          pass
5821  
5822      def testSwig2Colinearize2D3(self):
5823 -        """ colinearize was too agressive, potentially producing cells with one edge """
5824 +        """ colinearize was too aggressive, potentially producing cells with one edge """
5825          # Flat polygon  with 3 edges - nothing should happen (min number of edges for a linear polyg)
5826          coo = DataArrayDouble([0.0,0.0,  2.0,0.0,   1.5,0.0,  1.0,0.0,  0.5,0.0], 5,2)
5827          m = MEDCouplingUMesh("m", 2)
5828 @@ -3902,32 +3901,32 @@
5829          arr2=DataArrayInt([(0,1),(2,3),(4,5),(6,7),(8,9),(10,11),(12,13),(14,15),(16,17),(18,19),(20,21),(22,23)]) ; arr2.setInfoOnComponents(["aa","bbb"])
5830          f2.setArray(arr2) ; f2.setName("f1") ; f2.setTime(2.,3,4)
5831          #
5832 -        self.assertTrue(f1.isEqual(f2,1e-12,0.))
5833 +        self.assertTrue(f1.isEqual(f2,1e-12,0))
5834          f1.getArray()[:]*=2
5835 -        self.assertTrue(not f1.isEqual(f2,1e-12,0.))
5836 -        self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,0.))
5837 +        self.assertTrue(not f1.isEqual(f2,1e-12,0))
5838 +        self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,0))
5839          f1.getArray()[:]/=2
5840 -        self.assertTrue(f1.isEqual(f2,1e-12,0.))
5841 +        self.assertTrue(f1.isEqual(f2,1e-12,0))
5842          #
5843          f1.setName("F1")
5844 -        self.assertTrue(not f1.isEqual(f2,1e-12,0.))
5845 +        self.assertTrue(not f1.isEqual(f2,1e-12,0))
5846          f1.setName("f1")
5847 -        self.assertTrue(f1.isEqual(f2,1e-12,0.))
5848 +        self.assertTrue(f1.isEqual(f2,1e-12,0))
5849          #
5850          f1.getArray().setInfoOnComponents(["aa","bbbb"])
5851 -        self.assertTrue(not f1.isEqual(f2,1e-12,0.))
5852 -        self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,0.))
5853 +        self.assertTrue(not f1.isEqual(f2,1e-12,0))
5854 +        self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,0))
5855          f1.getArray().setInfoOnComponents(["aa","bbb"])
5856 -        self.assertTrue(f1.isEqual(f2,1e-12,0.))
5857 +        self.assertTrue(f1.isEqual(f2,1e-12,0))
5858          #
5859          f3=f2.deepCopy()
5860 -        self.assertTrue(f1.isEqual(f3,1e-12,0.))
5861 +        self.assertTrue(f1.isEqual(f3,1e-12,0))
5862          #
5863          for fd,expected in ((ON_NODES,False),(ON_CELLS,True)):
5864              f4=MEDCouplingFieldInt(fd) ; f4.setMesh(m2) ; f4.setTime(2.,3,4)
5865              arr4=DataArrayInt([(0,1),(2,3),(4,5),(6,7),(8,9),(10,11),(12,13),(14,15),(16,17),(18,19),(20,21),(22,23)]) ; arr4.setInfoOnComponents(["aa","bbb"])
5866              f4.setArray(arr4) ; f4.setName("f1")
5867 -            self.assertEqual(f1.isEqual(f4,1e-12,0.),expected)
5868 +            self.assertEqual(f1.isEqual(f4,1e-12,0),expected)
5869              pass
5870          pass
5871  
5872 @@ -4276,6 +4275,35 @@
5873          self.assertEqual(fieldOnCell.getMesh().buildDescendingConnectivity()[0].getNumberOfCells(),2*7+21)
5874          pass
5875  
5876 +    def testVoronoi3D_8(self):
5877 +        """More aggressive 3D test. Bug EDF 15094"""
5878 +        mesh = MEDCouplingUMesh("myMeshForAnthony",3)
5879 +        coords = [2.20449946892035, 0.0015302058397972198, -0.014025000000000001, 2.20449522028465, 0.00459061457029268, -0.0109750000232271, 2.20449946892035, 0.0015302058397972198, -0.0125000000116135, 2.20577243296484, 0.00153108944037966, -0.0137555135576553, 2.20517315768831, 0.0045920262990614006, -0.010764118475206199, 2.2054749202977, 0.0015308829283677198, -0.012259816016430801, 2.20449787568164, 0.00306041094231961, -0.0125000000116135, 2.20449787568164, 0.00306041094231961, -0.011737500017420301, 2.20449946892035, 0.0015302058397972198, -0.0132625000058068, 2.20513595094259, 0.0015306476400884401, -0.0138902567788277, 2.20483418898648, 0.0045913204346770395, -0.0108695592492167, 2.20498719460902, 0.00153054438408247, -0.0123799080140222, 2.20547332635401, 0.0030617651191343705, -0.012259816016430801, 2.20532457012796, 0.00306155860717217, -0.0115119672458185, 2.20562367663127, 0.0015309861843736902, -0.013007664787043, 2.20582504233773, 0.0045933837758852306, -0.010139577890770399, 2.20642582267143, 0.004594634833691141, -0.009125379014333041, 2.20612543250458, 0.00459400930478819, -0.00963247845255172, 2.2069524110381, 0.004595731395029229, -0.00776049693994639, 2.20668911685476, 0.004595183114360191, -0.00844293797713971, 2.20832419990944, 0.0076643330146060895, -0.0108392857142857, 2.20832419990944, 0.0076643330146060895, -0.008671428571428571, 2.20704504094678, 0.00765989349423635, -0.008671428571428571, 2.20704504094678, 0.00765989349423635, -0.0108392857142857, 2.2062381754171, 0.00459424407928538, -0.00868052596233734, 2.20832419990944, 0.0076643330146060895, -0.00975535714285714, 2.20768462042811, 0.00766211325442122, -0.008671428571428571, 2.20704504094678, 0.00765989349423635, -0.00975535714285714, 2.20768462042811, 0.00766211325442122, -0.0108392857142857, 2.20737554490036, 0.00612882358882901, -0.009982332364309381, 2.20763883863969, 0.00612955462931014, -0.00821596275568748, 2.2066421405633703, 0.00612678727660696, -0.00867597726688296, 2.20643557437203, 0.006126213741329251, -0.0104894318025281, 2.2065952932276, 0.00459498773715731, -0.00822051145114186, 2.20603160887741, 0.00459381392758531, -0.00941005192655387]
5880 +        da = DataArrayDouble.New(coords,35,3)
5881 +        mesh.setCoords(da)
5882 +        mesh.allocateCells()
5883 +        mesh.insertNextCell(NORM_PENTA15, [0, 2, 1, 3, 5, 4, 8, 7, 6, 14, 13, 12, 9, 11, 10])
5884 +        mesh.insertNextCell(NORM_HEXA20, [20, 23, 22, 21, 16, 15, 24, 18, 28, 27, 26, 25, 17, 34, 33, 19, 29, 32, 31, 30])
5885 +        mesh.zipCoords()
5886 +        f=MEDCouplingFieldDouble(ON_GAUSS_PT)
5887 +        f.setMesh(mesh)
5888 +        f.setName("myFieldForAnthony")
5889 +        f.setGaussLocalizationOnCells([0],[-1, 1, 0, -1, 0, 0, -1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, -1, 0.5, 0, -1, 0, 0.5, -1, 0.5, 0.5, 1, 0.5, 0, 1, 0, 0.5, 1, 0.5, 0.5, 0, 1, 0, 0, 0, 0, 0, 0, 1],[-0.774597, 0.333333, 0.333333, -0.774597, 0.470142, 0.470142, -0.774597, 0.0597159, 0.470142, -0.774597, 0.470142, 0.0597159, -0.774597, 0.101287, 0.101287, -0.774597, 0.797427, 0.101287, -0.774597, 0.101287, 0.797427, 0, 0.333333, 0.333333, 0, 0.470142, 0.470142, 0, 0.0597159, 0.470142, 0, 0.470142, 0.0597159, 0, 0.101287, 0.101287, 0, 0.797427, 0.101287, 0, 0.101287, 0.797427, 0.774597, 0.333333, 0.333333, 0.774597, 0.470142, 0.470142, 0.774597, 0.0597159, 0.470142, 0.774597, 0.470142, 0.0597159, 0.774597, 0.101287, 0.101287, 0.774597, 0.797427, 0.101287, 0.774597, 0.101287, 0.797427],[0.0625, 0.0367762, 0.0367762, 0.0367762, 0.0349831, 0.0349831, 0.0349831, 0.1, 0.0588418, 0.0588418, 0.0588418, 0.055973, 0.055973, 0.055973, 0.0625, 0.0367762, 0.0367762, 0.0367762, 0.0349831, 0.0349831, 0.0349831])
5890 +        f.setGaussLocalizationOnCells([1],[-1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 0, -1, 0, 1, -1, 1, 0, -1, 0, -1, -1, -1, 0, 1, 0, 1, 1, 1, 0, 1, 0, -1, 1, -1, -1, 0, -1, 1, 0, 1, 1, 0, 1, -1, 0],[-0.774597, -0.774597, -0.774597, -0.774597, -0.774597, 0, -0.774597, -0.774597, 0.774597, -0.774597, 0, -0.774597, -0.774597, 0, 0, -0.774597, 0, 0.774597, -0.774597, 0.774597, -0.774597, -0.774597, 0.774597, 0, -0.774597, 0.774597, 0.774597, 0, -0.774597, -0.774597, 0, -0.774597, 0, 0, -0.774597, 0.774597, 0, 0, -0.774597, 0, 0, 0, 0, 0, 0.774597, 0, 0.774597, -0.774597, 0, 0.774597, 0, 0, 0.774597, 0.774597, 0.774597, -0.774597, -0.774597, 0.774597, -0.774597, 0, 0.774597, -0.774597, 0.774597, 0.774597, 0, -0.774597, 0.774597, 0, 0, 0.774597, 0, 0.774597, 0.774597, 0.774597, -0.774597, 0.774597, 0.774597, 0, 0.774597, 0.774597, 0.774597],[0.171468, 0.274348, 0.171468, 0.274348, 0.438957, 0.274348, 0.171468, 0.274348, 0.171468, 0.274348, 0.438957, 0.274348, 0.438957, 0.702332, 0.438957, 0.274348, 0.438957, 0.274348, 0.171468, 0.274348, 0.171468, 0.274348, 0.438957, 0.274348, 0.171468, 0.274348, 0.171468])
5891 +        arr = DataArrayDouble(48, 3)
5892 +        arr[:, 0] = list(range(48))
5893 +        arr[:, 1] = 100 + arr[:, 0]
5894 +        arr[:, 2] = 200 + arr[:, 0]
5895 +        f.setArray(arr)
5896 +        fieldOnCell=f.voronoize(1e-12) # hot point
5897 +        fieldOnCell.checkConsistencyLight()
5898 +        self.assertEqual(fieldOnCell.getMesh().getNumberOfCells(),48)
5899 +        self.assertEqual(fieldOnCell.getMesh().getNumberOfNodes(),127)
5900 +        meaRef=f.getMesh().getMeasureField(True).getArray(); meaRef.rearrange(2); meaRef2 = meaRef.sumPerTuple()
5901 +        mea=fieldOnCell.getMesh().getMeasureField(True).getArray(); mea.rearrange(48); mea2 = mea.sumPerTuple()
5902 +        self.assertTrue(mea2.isEqual(meaRef2,1e-9))
5903 +        pass
5904 +
5905      def testVoronoi3DSurf_1(self):
5906          tmp=MEDCouplingCMesh("mesh")
5907          arr=DataArrayDouble(5) ; arr.iota()
5908 @@ -4445,7 +4473,7 @@
5909          self.assertTrue(f3.getMesh().getMeasureField(False).getArray().isEqual(ref,1e-12))
5910          self.assertTrue(f3.getArray().isEqual(DataArrayDouble([0,1,2,3]),1e-12))
5911          pass
5912 -    
5913 +
5914      def testVoronoi3D_4(self):
5915          """Idem testVoronoi3D_3 except that here quadratic cells are considered"""
5916          coo=DataArrayDouble([0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.5,0.0,0.0,0.0,0.5,0.0,0.5,0.5,0.5,0.5,0.0,0.5,0.0,0.0,0.5,0.0,0.5],10,3)
5917 @@ -4592,8 +4620,16 @@
5918      def testUMeshComputeEnlargedNeighborsOfNodes(self):
5919          m=MEDCouplingCMesh() ; arr=DataArrayDouble(4) ; arr.iota() ; m.setCoords(arr,arr) ; m=m.buildUnstructured()
5920          a,b=m.computeEnlargedNeighborsOfNodes()
5921 -        self.assertTrue(a.isEqual(DataArrayInt([1,4,5,0,2,4,5,6,1,3,5,6,7,2,6,7,0,1,5,8,9,0,1,2,4,6,8,9,10,1,2,3,5,7,9,10,11,2,3,6,10,11,4,5,9,12,13,4,5,6,8,10,12,13,14,5,6,7,9,11,13,14,15,6,7,10,14,15,8,9,13,8,9,10,12,14,9,10,11,13,15,10,11,14])))
5922 -        self.assertTrue(b.isEqual(DataArrayInt([0,3,8,13,16,21,29,37,42,47,55,63,68,71,76,81,84])))
5923 +        aExp=DataArrayInt([1,4,5,0,2,4,5,6,1,3,5,6,7,2,6,7,0,1,5,8,9,0,1,2,4,6,8,9,10,1,2,3,5,7,9,10,11,2,3,6,10,11,4,5,9,12,13,4,5,6,8,10,12,13,14,5,6,7,9,11,13,14,15,6,7,10,14,15,8,9,13,8,9,10,12,14,9,10,11,13,15,10,11,14])
5924 +        bExp=DataArrayInt([0,3,8,13,16,21,29,37,42,47,55,63,68,71,76,81,84])
5925 +        self.assertTrue(a.isEqual(aExp))
5926 +        self.assertTrue(b.isEqual(bExp))
5927 +        m2=m[[1,2,3]]
5928 +        c,d=m2.computeEnlargedNeighborsOfNodes()
5929 +        cExp=DataArrayInt([2,5,6,1,3,5,6,7,2,6,7,5,8,9,1,2,4,6,8,9,1,2,3,5,7,2,3,6,4,5,9,4,5,8])
5930 +        dExp=DataArrayInt([0,0,3,8,11,14,20,25,28,31,34,34,34,34,34,34,34])
5931 +        self.assertTrue(c.isEqual(cExp))
5932 +        self.assertTrue(d.isEqual(dExp))
5933          pass
5934  
5935      def testDAIfindIdsExt1(self):
5936 @@ -4738,7 +4774,22 @@
5937          m.insertNextCell(NORM_POLYGON,[0,1,2,3,4,5])
5938          self.assertTrue(m.computePlaneEquationOf3DFaces().isEqual(DataArrayDouble([0,1,0,-1],1,4),1e-12))
5939          pass
5940 -    
5941 +
5942 +    def testSimplifyPolyhedra(self):
5943 +        mesh = MEDCouplingUMesh('mesh', 3)
5944 +        coo = DataArrayDouble([(-0.01225,-0.0212176,0.02),(-0.00634107,-0.0236652,0.02),(1.50019e-18,-0.0245,0.02),(0.00634107,-0.0236652,0.02),(0.01225,-0.0212176,0.02),(-0.0153864,-0.02665,0),(-0.00714085,-0.02665,0),(1.63184e-18,-0.02665,0),(0.00714085,-0.02665,0),(0.0153864,-0.02665,0),(-0.00714085,-0.02665,0.0101475),(1.63184e-18,-0.02665,0.013145),(0.00714085,-0.02665,0.0101475),(-0.013,-0.0225167,0.02),(-0.0067293,-0.0251141,0.02),(1.59204e-18,-0.026,0.02),(0.0067293,-0.0251141,0.02),(0.013,-0.0225167,0.02),(-0.0161658,-0.028,0),(-0.00750258,-0.028,0),(1.71451e-18,-0.028,0),(0.00750258,-0.028,0),(0.0161658,-0.028,0),(-0.00750258,-0.028,0.0105625),(1.71451e-18,-0.028,0.0136825),(0.00750258,-0.028,0.0105625)])
5945 +        mesh.setCoords(coo)
5946 +        c = DataArrayInt([31, 13, 14, 15, 16, 17, 4, 3, 2, 1, 0, -1, 18, 5, 6, 7, 8, 9, 22, 21, 20, 19, -1, 19, 23, 18, -1, 23, 14, 13, 18, -1, 20, 24, 23, 19, -1, 24, 15, 14, 23, -1, 21, 25, 24, 20, -1, 25, 16, 15, 24, -1, 22, 25, 21, -1, 22, 17, 16, 25, -1, 9, 4, 17, 22, -1, 8, 12, 9, -1, 12, 3, 4, 9, -1, 7, 11, 12, 8, -1, 11, 2, 3, 12, -1, 6, 10, 11, 7, -1, 10, 1, 2, 11, -1, 5, 10, 6, -1, 5, 0, 1, 10, -1, 18, 13, 0, 5])
5947 +        cI = DataArrayInt([0, 108])
5948 +        mesh.setConnectivity(c, cI)
5949 +        mesh.simplifyPolyhedra(1.0e-8)
5950 +        c, cI = mesh.getNodalConnectivity(), mesh.getNodalConnectivityIndex()
5951 +        tgt_c = DataArrayInt([31, 23, 18, 19, 20, 21, 22, 25, 24, -1, 12, 9, 8, 7, 6, 5, 10, 11, -1, 13, 14, 15, 16, 17, 4, 3, 2, 1, 0, -1, 18, 5, 6, 7, 8, 9, 22, 21, 20, 19, -1, 23, 14, 13, 18, -1, 24, 15, 14, 23, -1, 25, 16, 15, 24, -1, 22, 17, 16, 25, -1, 9, 4, 17, 22, -1, 12, 3, 4, 9, -1, 11, 2, 3, 12, -1, 10, 1, 2, 11, -1, 5, 0, 1, 10, -1, 18, 13, 0, 5])
5952 +        tgt_cI = DataArrayInt([0, 90])
5953 +        self.assertEqual(c.getValues(), tgt_c.getValues())
5954 +        self.assertEqual(cI.getValues(), tgt_cI.getValues())
5955 +        pass
5956 +
5957      pass
5958  
5959  if __name__ == '__main__':
5960 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingBasicsTest6.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingBasicsTest6.py
5961 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingBasicsTest6.py      2018-04-19 17:04:36.732222623 +0200
5962 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingBasicsTest6.py      2018-04-19 17:25:17.252787770 +0200
5963 @@ -106,6 +106,112 @@
5964          level3(self)
5965          gtumesh(self)
5966          pass
5967 +
5968 +    def testPenta18_1(self):
5969 +        arr=DataArrayDouble([
5970 +            (0.,1.,1.),(0.,0.,1.),(1.,0.,1.),
5971 +            (0.,1.,0.),(0.,0.,0.),(1.,0.,0.),
5972 +            (0.,0.5,1.),(0.5,0.,1.),(0.5,0.5,1.),
5973 +            (0.,0.5,0.),(0.5,0.,0.),(0.5,0.5,0.),
5974 +            (0.,1.,0.5),(0.,0.,0.5),(1.,0.,0.5),
5975 +            (0.,0.5,0.5),(0.5,0.,0.5),(0.5,0.5,0.5)])
5976 +        m=MEDCouplingUMesh("mesh",3)
5977 +        m.setCoords(arr)
5978 +        m.allocateCells(1)
5979 +        m.insertNextCell(NORM_PENTA18,list(range(18)))
5980 +        m.checkConsistencyLight()
5981 +        self.assertTrue(m.getMeasureField(True).getArray().isEqual(DataArrayDouble([0.5]),1e-12))
5982 +        #
5983 +        f=MEDCouplingFieldDouble(ON_NODES)
5984 +        f.setMesh(m)
5985 +        f.setName("FieldOnPenta18")
5986 +        f.setArray(DataArrayDouble(list(range(18))))
5987 +        f.checkConsistencyLight()
5988 +        #
5989 +        m2,d,di,rd,rdi=m.buildDescendingConnectivity()
5990 +        self.assertTrue(m2.getNodalConnectivity().isEqual(DataArrayInt([6,0,1,2,6,7,8,6,3,5,4,11,10,9,9,0,3,4,1,12,9,13,6,15,9,1,4,5,2,13,10,14,7,16,9,2,4,5,0,14,11,12,8,17])))
5991 +        self.assertTrue(m2.getNodalConnectivityIndex().isEqual(DataArrayInt([0,7,14,24,34,44])))
5992 +        self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4])))
5993 +        self.assertTrue(di.isEqual(DataArrayInt([0,5])))
5994 +        self.assertTrue(rd.isEqual(DataArrayInt([0,0,0,0,0])))
5995 +        self.assertTrue(rdi.isEqual(DataArrayInt([0,1,2,3,4,5])))
5996 +        #
5997 +        f2=MEDCouplingFieldDouble(ON_NODES)
5998 +        f2.setMesh(m)
5999 +        f2.setName("FieldOnPenta18Sub")
6000 +        f2.setArray(DataArrayDouble(list(range(18))))
6001 +        f2.checkConsistencyLight()
6002 +        pass
6003 +
6004 +    def testSKLAReplaceDeletePacks(self):
6005 +        index=DataArrayInt([0,3,5,6,6])
6006 +        value=DataArrayInt([1,2,3, 2,3, 3  ])
6007 +        sla=MEDCouplingSkyLineArray(index,value)
6008 +        idx=DataArrayInt([0,3])
6009 +        packs=[DataArrayInt([4,5]),DataArrayInt([6,7,8])]
6010 +        sla.replaceSimplePacks(idx,packs)
6011 +        self.assertTrue(sla.getIndexArray().isEqual(DataArrayInt([0,2,4,5,8])))
6012 +        self.assertTrue(sla.getValuesArray().isEqual(DataArrayInt([4,5, 2,3, 3, 6,7,8])))
6013 +        sla.deleteSimplePacks(idx)
6014 +        self.assertTrue(sla.getIndexArray().isEqual(DataArrayInt([0,2,3])))
6015 +        self.assertTrue(sla.getValuesArray().isEqual(DataArrayInt([2,3, 3])))
6016 +        sla.deleteSimplePack(1)
6017 +        self.assertTrue(sla.getIndexArray().isEqual(DataArrayInt([0,2])))
6018 +        self.assertTrue(sla.getValuesArray().isEqual(DataArrayInt([2,3])))
6019 +        pass
6020 +
6021 +    def testDADAsArcOfCircle(self):
6022 +        d=DataArrayDouble([3.06915124862645,2.1464466094067824,2.85355345827285,2.3620444674400574,2.637955532559882,2.1464467447661937],3,2)
6023 +        center,radius,ang=d.asArcOfCircle()
6024 +        self.assertTrue((d-center).magnitude().isUniform(radius,1e-10))
6025 +        self.assertAlmostEqual(ang,-4.712389294301196,12)
6026 +        pass
6027 +
6028 +    def testDAMaxAbsValue(self):
6029 +        d=DataArrayDouble([-2,3,1.2,-2.9])
6030 +        a,b=d.getMaxAbsValue()
6031 +        self.assertAlmostEqual(a,3.,13)
6032 +        self.assertEqual(b,1)
6033 +        a,b=(-d).getMaxAbsValue()
6034 +        self.assertAlmostEqual(a,-3.,13)
6035 +        self.assertEqual(b,1)
6036 +        self.assertAlmostEqual((-d).getMaxAbsValueInArray(),-3.,13)
6037 +        pass
6038 +
6039 +    def testDAIFindIdForEach1(self):
6040 +        a1=DataArrayInt([17,27,2,10,-4,3,12,27,16])
6041 +        b1=DataArrayInt([3,16,-4,27,17])
6042 +        ret=a1.findIdForEach(b1)
6043 +        self.assertTrue(ret.isEqual(DataArrayInt([5,8,4,7,0])))
6044 +        self.assertTrue(a1[ret].isEqual(b1))
6045 +        b2=DataArrayInt([3,16,22,27,17])
6046 +        self.assertRaises(InterpKernelException,a1.findIdForEach,b2) # 22 not in a1 !
6047 +        a1.rearrange(3)
6048 +        self.assertRaises(InterpKernelException,a1.findIdForEach,b1) # a1 is not single component
6049 +        pass
6050 +    
6051 +    @unittest.skipUnless(IsCXX11Compiled(),"requires C++11")
6052 +    def testAttractSeg3MidPtsAroundNodes1(self):
6053 +        """ Test of MEDCouplingUMesh.attractSeg3MidPtsAroundNodes methods """
6054 +        ptsExpToBeModified=DataArrayInt([95,96,97,98,101,103,104,106,108,110])
6055 +        eps=1e-12
6056 +        a=2./3.
6057 +        b=1./3.
6058 +        coo=DataArrayDouble([10,0,0,10,10,0,10,0,3.+b,10,0,6.+a,10,10,3.+b,10,10,6.+a,10,3.+b,0,10,6.+a,0,3.+b,0,0,6.+a,0,0,3.+b,10,0,6.+a,10,0,10,3.+b,6.+a,10,6.+a,6.+a,10,3.+b,3.+b,10,6.+a,3.+b,3.+b,0,3.+b,3.+b,0,6.+a,6.+a,0,3.+b,6.+a,0,6.+a,6.+a,10,3.+b,6.+a,10,6.+a,3.+b,10,3.+b,3.+b,10,6.+a,3.+b,3.+b,0,6.+a,3.+b,0,3.+b,6.+a,0,6.+a,6.+a,0,3.+b,3.+b,6.+a,6.+a,3.+b,6.+a,3.+b,6.+a,6.+a,6.+a,6.+a,6.+a,3.+b,3.+b,3.+b,6.+a,3.+b,3.+b,3.+b,6.+a,3.+b,6.+a,6.+a,3.+b,10,0,1.+a,10,0,5.,10,10,1.+a,10,10,5.,10,1.+a,0,10,5.,0,10,8.+b,0,5.,0,0,8.+b,0,0,5.,10,0,8.+b,10,0,10,1.+a,6.+a,10,5.,6.+a,10,8.+b,6.+a,10,1.+a,3.+b,10,3.+b,5.,10,5.,3.+b,10,6.+a,5.,10,8.+b,3.+b,10,3.+b,1.+a,10,6.+a,1.+a,3.+b,0,1.+a,3.+b,0,5.,6.+a,0,1.+a,5.,0,3.+b,6.+a,0,5.,5.,0,6.+a,8.+b,0,3.+b,8.+b,0,6.+a,6.+a,10,1.+a,8.+b,10,3.+b,6.+a,10,5.,8.+b,10,6.+a,3.+b,10,1.+a,5.,10,3.+b,3.+b,10,5.,5.,10,6.+a,3.+b,1.+a,0,5.,3.+b,0,6.+a,1.+a,0,8.+b,3.+b,0,3.+b,5.,0,5.,6.+a,0,6.+a,5.,0,8.+b,6.+a,0,3.+b,8.+b,0,6.+a,8.+b,0,3.+b,1.+a,6.+a,6.+a,1.+a,6.+a,5.,3.+b,6.+a,8.+b,3.+b,6.+a,3.+b,5.,6.+a,6.+a,5.,6.+a,5.,6.+a,6.+a,8.+b,6.+a,6.+a,3.+b,8.+b,6.+a,6.+a,8.+b,6.+a,3.+b,3.+b,5,3.+b,1.+a,3.+b,6.+a,3.+b,5.,6.+a,1.+a,3.+b,5.,3.+b,3.+b,8.+b,3.+b,3.+b,3.+b,6.+a,5.,3.+b,5.,3.+b,6.+a,6.+a,5.,6.+a,5.,3.+b,5.,6.+a,3.+b,8.+b,6.+a,3.+b,3.+b,8.+b,3.+b,6.+a,8.+b,3.+b,3.+b,3.+b,1.+a,6.+a,3.+b,1.+a,3.+b,6.+a,1.+a,6.+a,6.+a,1.+a],111,3)
6059 +        conn=DataArrayInt([30,17,28,32,16,19,29,33,18,83,93,94,58,84,95,96,61,62,85,97,60,30,19,29,33,18,3,12,14,2,84,95,96,61,47,51,50,37,64,86,98,63,30,28,30,34,32,29,31,35,33,87,99,100,93,88,101,102,95,85,89,103,97,30,29,31,35,33,12,13,15,14,88,101,102,95,48,53,52,51,86,90,104,98,30,30,23,22,34,31,21,20,35,91,71,105,99,92,67,106,101,89,72,70,103,30,31,21,20,35,13,5,4,15,92,67,106,101,49,39,54,53,90,68,66,104,30,16,32,24,8,18,33,25,9,94,107,73,57,96,108,75,59,60,97,74,43,30,18,33,25,9,2,14,6,0,96,108,75,59,50,55,40,36,63,98,76,44,30,32,34,26,24,33,35,27,25,100,109,77,107,102,110,79,108,97,103,78,74,30,33,35,27,25,14,15,7,6,102,110,79,108,52,56,41,55,98,104,80,76,30,34,22,10,26,35,20,11,27,105,69,81,109,106,65,82,110,103,70,45,78,30,35,20,11,27,15,4,1,7,106,65,82,110,54,38,42,56,104,66,46,80])
6060 +        connI=DataArrayInt([0,21,42,63,84,105,126,147,168,189,210,231,252])
6061 +        m=MEDCouplingUMesh("mesh",3)
6062 +        m.setConnectivity(conn,connI,True)
6063 +        m.setCoords(coo.deepCopy())# deep copy coo because next line is going to modify it, if it works normaly
6064 +        m.attractSeg3MidPtsAroundNodes(0.1,DataArrayInt([33,35])) # ze call is here !
6065 +        self.assertTrue(not m.getCoords().isEqual(coo,eps)) # some points have had their position changed...
6066 +        ptsExpNotToBeModified=ptsExpToBeModified.buildComplement(len(coo))
6067 +        self.assertTrue(m.getCoords()[ptsExpNotToBeModified].isEqual(coo[ptsExpNotToBeModified],eps))
6068 +        self.assertTrue((m.getCoords()[ptsExpToBeModified]-coo[ptsExpToBeModified]).magnitude().isUniform(4./3.,1e-12))
6069 +        ptsPosExp=DataArrayDouble([6.+a,3.+b,3.+a,6.+a,3.,3.+b,6.+b,3.+b,3.+b,7.,3.+b,3.+b,6.+a,6.+a,3.+a,6.+b,6.+a,3.+b,7.,6.+a,3.+b,6.+a,7.,3.+b,6.+a,3.+b,3.,6.+a,6.+a,3.],10,3)
6070 +        self.assertTrue(m.getCoords()[ptsExpToBeModified].isEqual(ptsPosExp,1e-12))
6071 +        pass
6072 +    
6073      pass
6074  
6075  if __name__ == '__main__':
6076 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingCommon.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingCommon.i
6077 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingCommon.i    2018-04-19 17:04:36.733222643 +0200
6078 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingCommon.i    2018-04-19 17:25:17.277788264 +0200
6079 @@ -1,4 +1,4 @@
6080 -// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
6081 +// Copyright (C) 2017  CEA/DEN, EDF R&D
6082  //
6083  // This library is free software; you can redistribute it and/or
6084  // modify it under the terms of the GNU Lesser General Public
6085 @@ -16,9 +16,7 @@
6086  //
6087  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
6088  //
6089 -// Author : Anthony Geay (CEA/DEN)
6090 -
6091 -%module MEDCoupling
6092 +// Author : Anthony Geay (EDF R&D)
6093  
6094  #ifdef WITH_DOCSTRINGS
6095  %include MEDCoupling_doc.i
6096 @@ -147,6 +145,18 @@
6097  //$$$$$$$$$$$$$$$$$$
6098  
6099  ////////////////////
6100 +%typemap(out) MEDCoupling::MEDCouplingField*
6101 +{
6102 +  $result=convertField($1,$owner);
6103 +}
6104 +
6105 +%typemap(out) MEDCouplingField*
6106 +{
6107 +  $result=convertField($1,$owner);
6108 +}
6109 +//$$$$$$$$$$$$$$$$$$
6110 +
6111 +////////////////////
6112  %typemap(out) MEDCoupling::MEDCouplingMultiFields*
6113  {
6114    $result=convertMultiFields($1,$owner);
6115 @@ -188,6 +198,7 @@
6116  %newobject MEDCoupling::MEDCouplingFieldDouble::MergeFields;
6117  %newobject MEDCoupling::MEDCouplingFieldDouble::MeldFields;
6118  %newobject MEDCoupling::MEDCouplingFieldDouble::convertToIntField;
6119 +%newobject MEDCoupling::MEDCouplingFieldDouble::convertToFloatField;
6120  %newobject MEDCoupling::MEDCouplingFieldDouble::doublyContractedProduct;
6121  %newobject MEDCoupling::MEDCouplingFieldDouble::determinant;
6122  %newobject MEDCoupling::MEDCouplingFieldDouble::eigenValues;
6123 @@ -448,6 +459,8 @@
6124  %feature("unref") MEDCouplingFieldDiscretizationGaussNE "$this->decrRef();"
6125  %feature("unref") MEDCouplingFieldDiscretizationKriging "$this->decrRef();"
6126  %feature("unref") MEDCouplingFieldDouble "$this->decrRef();"
6127 +%feature("unref") MEDCouplingFieldFloat "$this->decrRef();"
6128 +%feature("unref") MEDCouplingFieldInt "$this->decrRef();"
6129  %feature("unref") MEDCouplingMultiFields "$this->decrRef();"
6130  %feature("unref") MEDCouplingFieldTemplate "$this->decrRef();"
6131  %feature("unref") MEDCouplingMultiFields "$this->decrRef();"
6132 @@ -951,12 +964,12 @@
6133            return self->checkTypeConsistencyAndContig(code,idsPerType);
6134          }
6135  
6136 -        PyObject *splitProfilePerType(const DataArrayInt *profile) const throw(INTERP_KERNEL::Exception)
6137 +        PyObject *splitProfilePerType(const DataArrayInt *profile, bool smartPflKiller=true) const throw(INTERP_KERNEL::Exception)
6138          {
6139            std::vector<int> code;
6140            std::vector<DataArrayInt *> idsInPflPerType;
6141            std::vector<DataArrayInt *> idsPerType;
6142 -          self->splitProfilePerType(profile,code,idsInPflPerType,idsPerType);
6143 +          self->splitProfilePerType(profile,code,idsInPflPerType,idsPerType,smartPflKiller);
6144            PyObject *ret=PyTuple_New(3);
6145            //
6146            if(code.size()%3!=0)
6147 @@ -1070,14 +1083,6 @@
6148             self->resizeForUnserialization(tinyInfo,a1,a2,littleStrings);
6149           }
6150           
6151 -         PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
6152 -         {// put an empty dict in input to say to __new__ to call __init__...
6153 -           PyObject *ret(PyTuple_New(1));
6154 -           PyObject *ret0(PyDict_New());
6155 -           PyTuple_SetItem(ret,0,ret0);
6156 -           return ret;
6157 -         }
6158 -         
6159           PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
6160           {
6161             PyObject *ret0(MEDCoupling_MEDCouplingMesh_getTinySerializationInformation(self));
6162 @@ -1221,6 +1226,9 @@
6163      
6164      void deletePack(const int i, const int j) throw(INTERP_KERNEL::Exception);
6165      
6166 +    void deleteSimplePack(const int i) throw(INTERP_KERNEL::Exception);
6167 +    void deleteSimplePacks(const DataArrayInt* idx) throw(INTERP_KERNEL::Exception);
6168 +    
6169      %extend 
6170      {
6171        MEDCouplingSkyLineArray() throw(INTERP_KERNEL::Exception)
6172 @@ -1304,6 +1312,13 @@
6173            self->replaceSimplePack(idx, vpack.data(), vpack.data()+vpack.size());
6174          }
6175          
6176 +      void replaceSimplePacks(const DataArrayInt* idx, PyObject *listePacks) throw(INTERP_KERNEL::Exception)
6177 +        {
6178 +          std::vector<const DataArrayInt*> packs;
6179 +          convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayInt*>(listePacks,SWIGTYPE_p_MEDCoupling__DataArrayInt,"DataArrayInt",packs);
6180 +          self->replaceSimplePacks(idx, packs);
6181 +        }
6182 +        
6183        void replacePack(const int superIdx, const int idx, PyObject *pack) throw(INTERP_KERNEL::Exception)
6184          {
6185            std::vector<int> vpack;
6186 @@ -1497,8 +1512,8 @@
6187                 DataArrayDoubleTuple *aa,*aa2;
6188                 std::vector<double> bb,bb2;
6189                 int sw;
6190 -               const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 1st paramater for point.";
6191 -               const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 2nd paramater for vector.";
6192 +               const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 1st parameter for point.";
6193 +               const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnLine : 2nd parameter for vector.";
6194                 const double *p=convertObjToPossibleCpp5_Safe(pt,sw,val,a,aa,bb,msg,1,spaceDim,true);
6195                 const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true);
6196                 std::vector<int> nodes;
6197 @@ -1516,8 +1531,8 @@
6198                 DataArrayDoubleTuple *aa,*aa2;
6199                 std::vector<double> bb,bb2;
6200                 int sw;
6201 -               const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 1st paramater for point.";
6202 -               const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 2nd paramater for vector.";
6203 +               const char msg[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 1st parameter for point.";
6204 +               const char msg2[]="Python wrap of MEDCouplingPointSet::findNodesOnPlane : 2nd parameter for vector.";
6205                 const double *p=convertObjToPossibleCpp5_Safe(pt,sw,val,a,aa,bb,msg,1,spaceDim,true);
6206                 const double *v=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true);
6207                 std::vector<int> nodes;
6208 @@ -1994,12 +2009,6 @@
6209          return MEDCouplingUMesh::New(meshName,meshDim);
6210        }
6211  
6212 -      // serialization
6213 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6214 -      {
6215 -        return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDCouplingUMesh");
6216 -      }
6217 -
6218        std::string __str__() const throw(INTERP_KERNEL::Exception)
6219        {
6220          return self->simpleRepr();
6221 @@ -2380,6 +2389,14 @@
6222            }
6223        }
6224  
6225 +      void attractSeg3MidPtsAroundNodes(double ratio, PyObject *nodeIds) throw(INTERP_KERNEL::Exception)
6226 +      {
6227 +        int szArr,sw,iTypppArr;
6228 +        std::vector<int> stdvecTyyppArr;
6229 +        const int *nodeIdsPtr(convertIntStarLikePyObjToCppIntStar(nodeIds,sw,szArr,iTypppArr,stdvecTyyppArr));
6230 +        self->attractSeg3MidPtsAroundNodes(ratio,nodeIdsPtr,nodeIdsPtr+szArr);
6231 +      }
6232 +
6233        PyObject *getLevArrPerCellTypes(PyObject *li) const throw(INTERP_KERNEL::Exception)
6234        {
6235          int sz;
6236 @@ -2924,8 +2941,8 @@
6237          DataArrayDoubleTuple *aa,*aa2;
6238          std::vector<double> bb,bb2;
6239          int sw;
6240 -        const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 1st paramater for origin.";
6241 -        const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 2nd paramater for vector.";
6242 +        const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 1st parameter for origin.";
6243 +        const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3D : 2nd parameter for vector.";
6244          const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true);
6245          const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true);
6246          //
6247 @@ -2947,8 +2964,8 @@
6248          DataArrayDoubleTuple *aa,*aa2;
6249          std::vector<double> bb,bb2;
6250          int sw;
6251 -        const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 1st paramater for origin.";
6252 -        const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 2nd paramater for vector.";
6253 +        const char msg[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 1st parameter for origin.";
6254 +        const char msg2[]="Python wrap of MEDCouplingUMesh::buildSlice3DSurf : 2nd parameter for vector.";
6255          const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true);
6256          const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true);
6257          //
6258 @@ -2967,8 +2984,8 @@
6259          DataArrayDoubleTuple *aa,*aa2;
6260          std::vector<double> bb,bb2;
6261          int sw;
6262 -        const char msg[]="Python wrap of MEDCouplingUMesh::clipSingle3DCellByPlane : 1st paramater for origin.";
6263 -        const char msg2[]="Python wrap of MEDCouplingUMesh::clipSingle3DCellByPlane : 2nd paramater for vector.";
6264 +        const char msg[]="Python wrap of MEDCouplingUMesh::clipSingle3DCellByPlane : 1st parameter for origin.";
6265 +        const char msg2[]="Python wrap of MEDCouplingUMesh::clipSingle3DCellByPlane : 2nd parameter for vector.";
6266          const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,3,true);
6267          const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,3,true);
6268          MCAuto<MEDCouplingUMesh> ret(self->clipSingle3DCellByPlane(orig,vect,eps));
6269 @@ -2985,8 +3002,8 @@
6270          DataArrayDoubleTuple *aa,*aa2;
6271          std::vector<double> bb,bb2;
6272          int sw;
6273 -        const char msg[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 1st paramater for origin.";
6274 -        const char msg2[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 2nd paramater for vector.";
6275 +        const char msg[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 1st parameter for origin.";
6276 +        const char msg2[]="Python wrap of MEDCouplingUMesh::getCellIdsCrossingPlane : 2nd parameter for vector.";
6277          const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true);
6278          const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true);
6279          return self->getCellIdsCrossingPlane(orig,vect,eps);
6280 @@ -3058,11 +3075,6 @@
6281        {
6282          return MEDCouplingMappedExtrudedMesh::New();
6283        }
6284 -
6285 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6286 -      {
6287 -        return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDCouplingMappedExtrudedMesh");
6288 -      }
6289        
6290        std::string __str__() const throw(INTERP_KERNEL::Exception)
6291        {
6292 @@ -3168,11 +3180,6 @@
6293          return MEDCoupling1SGTUMesh::New(m);
6294        }
6295  
6296 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6297 -      {
6298 -        return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDCoupling1SGTUMesh");
6299 -      }
6300 -
6301        std::string __str__() const throw(INTERP_KERNEL::Exception)
6302        {
6303          return self->simpleRepr();
6304 @@ -3240,11 +3247,6 @@
6305          return MEDCoupling1DGTUMesh::New(m);
6306        }
6307  
6308 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6309 -      {
6310 -        return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDCoupling1DGTUMesh");
6311 -      }
6312 -
6313        std::string __str__() const throw(INTERP_KERNEL::Exception)
6314        {
6315          return self->simpleRepr();
6316 @@ -3589,11 +3591,6 @@
6317        {
6318          return MEDCouplingCMesh::New(meshName);
6319        }
6320 -      // serialization
6321 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6322 -      {
6323 -        return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDCouplingCMesh");
6324 -      }
6325        std::string __str__() const throw(INTERP_KERNEL::Exception)
6326        {
6327          return self->simpleRepr();
6328 @@ -3633,10 +3630,6 @@
6329        {
6330          return MEDCouplingCurveLinearMesh::New(meshName);
6331        }
6332 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6333 -      {
6334 -        return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDCouplingCurveLinearMesh");
6335 -      }
6336        std::string __str__() const throw(INTERP_KERNEL::Exception) 
6337        {
6338          return self->simpleRepr();
6339 @@ -3714,11 +3707,6 @@
6340          return MEDCoupling_MEDCouplingIMesh_New__SWIG_1(meshName,spaceDim,nodeStrct,origin,dxyz);
6341        }
6342  
6343 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6344 -      {
6345 -        return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDCouplingIMesh");
6346 -      }
6347 -
6348        void setNodeStruct(PyObject *nodeStrct) throw(INTERP_KERNEL::Exception)
6349        {
6350          int sw,sz,val0;
6351 @@ -3810,8 +3798,6 @@
6352    public:
6353      virtual void checkConsistencyLight() const throw(INTERP_KERNEL::Exception);
6354      virtual bool areCompatibleForMerge(const MEDCouplingField *other) const throw(INTERP_KERNEL::Exception);
6355 -    virtual bool isEqual(const MEDCouplingField *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception);
6356 -    virtual bool isEqualWithoutConsideringStr(const MEDCouplingField *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception);
6357      virtual void copyTinyStringsFrom(const MEDCouplingField *other) throw(INTERP_KERNEL::Exception);
6358      void setMesh(const MEDCoupling::MEDCouplingMesh *mesh) throw(INTERP_KERNEL::Exception);
6359      void setName(const char *name) throw(INTERP_KERNEL::Exception);
6360 @@ -3857,18 +3843,6 @@
6361          return convertIntArrToPyList3(ret);
6362        }
6363  
6364 -      PyObject *isEqualIfNotWhy(const MEDCouplingField *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception)
6365 -      {
6366 -        std::string ret1;
6367 -        bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1);
6368 -        PyObject *ret=PyTuple_New(2);
6369 -        PyObject *ret0Py=ret0?Py_True:Py_False;
6370 -        Py_XINCREF(ret0Py);
6371 -        PyTuple_SetItem(ret,0,ret0Py);
6372 -        PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
6373 -        return ret;
6374 -      }
6375 -
6376        PyObject *buildSubMeshData(PyObject *li) const throw(INTERP_KERNEL::Exception)
6377        {
6378          DataArrayInt *ret1=0;
6379 @@ -3971,6 +3945,8 @@
6380      static MEDCouplingFieldTemplate *New(TypeOfField type);
6381      std::string simpleRepr() const throw(INTERP_KERNEL::Exception);
6382      std::string advancedRepr() const throw(INTERP_KERNEL::Exception);
6383 +    bool isEqual(const MEDCouplingFieldTemplate *other, double meshPrec) const throw(INTERP_KERNEL::Exception);
6384 +    bool isEqualWithoutConsideringStr(const MEDCouplingFieldTemplate *other, double meshPrec) const throw(INTERP_KERNEL::Exception);
6385      %extend
6386         {
6387           MEDCouplingFieldTemplate(const MEDCouplingFieldDouble& f) throw(INTERP_KERNEL::Exception)
6388 @@ -4004,16 +3980,45 @@
6389             self->reprQuickOverview(oss);
6390             return oss.str();
6391           }
6392 +
6393 +         PyObject *isEqualIfNotWhy(const MEDCouplingFieldTemplate *other, double meshPrec) const throw(INTERP_KERNEL::Exception)
6394 +         {
6395 +           std::string ret1;
6396 +           bool ret0=self->isEqualIfNotWhy(other,meshPrec,ret1);
6397 +           PyObject *ret=PyTuple_New(2);
6398 +           PyObject *ret0Py=ret0?Py_True:Py_False;
6399 +           Py_XINCREF(ret0Py);
6400 +           PyTuple_SetItem(ret,0,ret0Py);
6401 +           PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
6402 +           return ret;
6403 +         }
6404         }
6405    };
6406 +
6407 +  template<class T>
6408 + class MEDCouplingFieldT : public MEDCoupling::MEDCouplingField
6409 +  {
6410 +  public:
6411 +    TypeOfTimeDiscretization getTimeDiscretization() const throw(INTERP_KERNEL::Exception);
6412 +  protected:
6413 +    MEDCouplingFieldT();
6414 +    ~MEDCouplingFieldT();
6415 +  };
6416 +
6417 +  %template(MEDCouplingFieldTdouble) MEDCoupling::MEDCouplingFieldT<double>;
6418 +  %template(MEDCouplingFieldTfloat) MEDCoupling::MEDCouplingFieldT<float>;
6419 +  %template(MEDCouplingFieldTint) MEDCoupling::MEDCouplingFieldT<int>;
6420    
6421    class MEDCouplingFieldInt;
6422 +  class MEDCouplingFieldFloat;
6423    
6424 -  class MEDCouplingFieldDouble : public MEDCoupling::MEDCouplingField
6425 +  class MEDCouplingFieldDouble : public MEDCouplingFieldT<double>
6426    {
6427    public:
6428      static MEDCouplingFieldDouble *New(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME);
6429      static MEDCouplingFieldDouble *New(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME);
6430 +    bool isEqual(const MEDCouplingFieldDouble *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception);
6431 +    bool isEqualWithoutConsideringStr(const MEDCouplingFieldDouble *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception);
6432      void setTimeUnit(const std::string& unit);
6433      std::string getTimeUnit() const;
6434      void synchronizeTimeWithSupport() throw(INTERP_KERNEL::Exception);
6435 @@ -4023,13 +4028,13 @@
6436      std::string advancedRepr() const throw(INTERP_KERNEL::Exception);
6437      std::string  writeVTK(const std::string& fileName, bool isBinary=true) const throw(INTERP_KERNEL::Exception);
6438      MEDCouplingFieldInt *convertToIntField() const throw(INTERP_KERNEL::Exception);
6439 +    MEDCouplingFieldFloat *convertToFloatField() const throw(INTERP_KERNEL::Exception);
6440      MEDCouplingFieldDouble *clone(bool recDeepCpy) const;
6441      MEDCouplingFieldDouble *cloneWithMesh(bool recDeepCpy) const;
6442      MEDCouplingFieldDouble *deepCopy() const;
6443      MEDCouplingFieldDouble *buildNewTimeReprFromThis(TypeOfTimeDiscretization td, bool deepCopy) const throw(INTERP_KERNEL::Exception);
6444      MEDCouplingFieldDouble *nodeToCellDiscretization() const throw(INTERP_KERNEL::Exception);
6445      MEDCouplingFieldDouble *cellToNodeDiscretization() const throw(INTERP_KERNEL::Exception);
6446 -    TypeOfTimeDiscretization getTimeDiscretization() const throw(INTERP_KERNEL::Exception);
6447      double getIJ(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception);
6448      double getIJK(int cellId, int nodeIdInCell, int compoId) const throw(INTERP_KERNEL::Exception);
6449      void synchronizeTimeWithMesh() throw(INTERP_KERNEL::Exception);
6450 @@ -4130,6 +4135,18 @@
6451          self->reprQuickOverview(oss);
6452          return oss.str();
6453        }
6454 +
6455 +      PyObject *isEqualIfNotWhy(const MEDCouplingFieldDouble *other, double meshPrec, double valsPrec) const throw(INTERP_KERNEL::Exception)
6456 +      {
6457 +        std::string ret1;
6458 +        bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1);
6459 +        PyObject *ret=PyTuple_New(2);
6460 +        PyObject *ret0Py=ret0?Py_True:Py_False;
6461 +        Py_XINCREF(ret0Py);
6462 +        PyTuple_SetItem(ret,0,ret0Py);
6463 +        PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
6464 +        return ret;
6465 +      }
6466        
6467        MEDCouplingFieldDouble *voronoize(double eps) const throw(INTERP_KERNEL::Exception)
6468        {
6469 @@ -4426,8 +4443,8 @@
6470          std::vector<double> bb,bb2;
6471          int sw;
6472          int spaceDim=3;
6473 -        const char msg[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 1st paramater for origin.";
6474 -        const char msg2[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 2nd paramater for vector.";
6475 +        const char msg[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 1st parameter for origin.";
6476 +        const char msg2[]="Python wrap of MEDCouplingFieldDouble::extractSlice3D : 2nd parameter for vector.";
6477          const double *orig=convertObjToPossibleCpp5_Safe(origin,sw,val,a,aa,bb,msg,1,spaceDim,true);
6478          const double *vect=convertObjToPossibleCpp5_Safe(vec,sw,val2,a2,aa2,bb2,msg2,1,spaceDim,true);
6479          //
6480 @@ -5028,16 +5045,6 @@
6481          return field_serialize<double>(self);
6482        }
6483  
6484 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6485 -      {
6486 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInputGeneral<SinglePyObjExpectToBeAListOfSz2>(cls,args,"MEDCouplingFieldDouble");
6487 -      }
6488 -
6489 -      PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
6490 -      {// put an empty dict in input to say to __new__ to call __init__...
6491 -        return field__getnewargs__<MEDCouplingFieldDouble>(self);
6492 -      }
6493 -
6494        PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
6495        {
6496          return field__getstate__<MEDCouplingFieldDouble>(self,MEDCoupling_MEDCouplingFieldDouble_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldDouble_serialize);
6497 @@ -5207,11 +5214,13 @@
6498         }
6499    };
6500  
6501 -  class MEDCouplingFieldInt : public MEDCouplingField
6502 +  class MEDCouplingFieldInt : public MEDCouplingFieldT<int>
6503    {
6504    public:
6505      static MEDCouplingFieldInt *New(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME);
6506      static MEDCouplingFieldInt *New(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME);
6507 +    bool isEqual(const MEDCouplingFieldInt *other, double meshPrec, int valsPrec) const throw(INTERP_KERNEL::Exception);
6508 +    bool isEqualWithoutConsideringStr(const MEDCouplingFieldInt *other, double meshPrec, int valsPrec) const throw(INTERP_KERNEL::Exception);
6509      void setTimeUnit(const std::string& unit) throw(INTERP_KERNEL::Exception);
6510      std::string getTimeUnit() const throw(INTERP_KERNEL::Exception);
6511      void setTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception);
6512 @@ -5232,6 +5241,18 @@
6513          return MEDCouplingFieldInt::New(ft,td);
6514        }
6515  
6516 +      PyObject *isEqualIfNotWhy(const MEDCouplingFieldInt *other, double meshPrec, int valsPrec) const throw(INTERP_KERNEL::Exception)
6517 +      {
6518 +        std::string ret1;
6519 +        bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1);
6520 +        PyObject *ret=PyTuple_New(2);
6521 +        PyObject *ret0Py=ret0?Py_True:Py_False;
6522 +        Py_XINCREF(ret0Py);
6523 +        PyTuple_SetItem(ret,0,ret0Py);
6524 +        PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
6525 +        return ret;
6526 +      }
6527 +      
6528        std::string __str__() const throw(INTERP_KERNEL::Exception)
6529        {
6530          return self->simpleRepr();
6531 @@ -5283,16 +5304,6 @@
6532          return field_serialize<int>(self);
6533        }
6534  
6535 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6536 -      {
6537 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInputGeneral<SinglePyObjExpectToBeAListOfSz2>(cls,args,"MEDCouplingFieldInt");
6538 -      }
6539 -
6540 -      PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
6541 -      {// put an empty dict in input to say to __new__ to call __init__...
6542 -        return field__getnewargs__<MEDCouplingFieldInt>(self);
6543 -      }
6544 -
6545        PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
6546        {
6547          return field__getstate__<MEDCouplingFieldInt>(self,MEDCoupling_MEDCouplingFieldInt_getTinySerializationInformation,MEDCoupling_MEDCouplingFieldInt_serialize);
6548 @@ -5305,11 +5316,13 @@
6549      }
6550    };
6551  
6552 -  class MEDCouplingFieldFloat : public MEDCouplingField
6553 +  class MEDCouplingFieldFloat : public MEDCouplingFieldT<float>
6554    {
6555    public:
6556      static MEDCouplingFieldFloat *New(TypeOfField type, TypeOfTimeDiscretization td=ONE_TIME);
6557      static MEDCouplingFieldFloat *New(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td=ONE_TIME);
6558 +    bool isEqual(const MEDCouplingFieldFloat *other, double meshPrec, float valsPrec) const throw(INTERP_KERNEL::Exception);
6559 +    bool isEqualWithoutConsideringStr(const MEDCouplingFieldFloat *other, double meshPrec, float valsPrec) const throw(INTERP_KERNEL::Exception);
6560      void setTimeUnit(const std::string& unit) throw(INTERP_KERNEL::Exception);
6561      std::string getTimeUnit() const throw(INTERP_KERNEL::Exception);
6562      void setTime(double val, int iteration, int order) throw(INTERP_KERNEL::Exception);
6563 @@ -5330,6 +5343,18 @@
6564          return MEDCouplingFieldFloat::New(ft,td);
6565        }
6566  
6567 +      PyObject *isEqualIfNotWhy(const MEDCouplingFieldFloat *other, double meshPrec, float valsPrec) const throw(INTERP_KERNEL::Exception)
6568 +      {
6569 +        std::string ret1;
6570 +        bool ret0=self->isEqualIfNotWhy(other,meshPrec,valsPrec,ret1);
6571 +        PyObject *ret=PyTuple_New(2);
6572 +        PyObject *ret0Py=ret0?Py_True:Py_False;
6573 +        Py_XINCREF(ret0Py);
6574 +        PyTuple_SetItem(ret,0,ret0Py);
6575 +        PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
6576 +        return ret;
6577 +      }
6578 +
6579        std::string __str__() const throw(INTERP_KERNEL::Exception)
6580        {
6581          return self->simpleRepr();
6582 @@ -5380,16 +5405,6 @@
6583        {
6584          return field_serialize<float>(self);
6585        }
6586 -        
6587 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
6588 -      {
6589 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInputGeneral<SinglePyObjExpectToBeAListOfSz2>(cls,args,"MEDCouplingFieldFloat");
6590 -      }
6591 -      
6592 -      PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
6593 -      {// put an empty dict in input to say to __new__ to call __init__...
6594 -        return field__getnewargs__<MEDCouplingFieldFloat>(self);
6595 -      }
6596        
6597        PyObject *__getstate__() const throw(INTERP_KERNEL::Exception)
6598        {
6599 @@ -6000,6 +6015,35 @@
6600  }
6601  
6602  %pythoncode %{
6603 +def MEDCouplingUMeshReduce(self):
6604 +    return MEDCouplingStdReduceFunct,(MEDCouplingUMesh,((),(self.__getstate__()),))
6605 +def MEDCouplingCMeshReduce(self):
6606 +    return MEDCouplingStdReduceFunct,(MEDCouplingCMesh,((),(self.__getstate__()),))
6607 +def MEDCouplingIMeshReduce(self):
6608 +    return MEDCouplingStdReduceFunct,(MEDCouplingIMesh,((),(self.__getstate__()),))
6609 +def MEDCouplingMappedExtrudedMeshReduce(self):
6610 +    return MEDCouplingStdReduceFunct,(MEDCouplingMappedExtrudedMesh,((),(self.__getstate__()),))
6611 +def MEDCouplingCurveLinearMeshReduce(self):
6612 +    return MEDCouplingStdReduceFunct,(MEDCouplingCurveLinearMesh,((),(self.__getstate__()),))
6613 +def MEDCoupling1SGTUMeshReduce(self):
6614 +    return MEDCouplingStdReduceFunct,(MEDCoupling1SGTUMesh,((),(self.__getstate__()),))
6615 +def MEDCoupling1DGTUMeshReduce(self):
6616 +    return MEDCouplingStdReduceFunct,(MEDCoupling1DGTUMesh,((),(self.__getstate__()),))
6617 +def MEDCouplingFieldDoubleReduce(self):
6618 +    self.checkConsistencyLight()
6619 +    d=(self.getTypeOfField(),self.getTimeDiscretization())
6620 +    return MEDCouplingStdReduceFunct,(MEDCouplingFieldDouble,(d,(self.__getstate__()),))
6621 +def MEDCouplingFieldIntReduce(self):
6622 +    self.checkConsistencyLight()
6623 +    d=(self.getTypeOfField(),self.getTimeDiscretization())
6624 +    return MEDCouplingStdReduceFunct,(MEDCouplingFieldInt,(d,(self.__getstate__()),))
6625 +def MEDCouplingFieldFloatReduce(self):
6626 +    self.checkConsistencyLight()
6627 +    d=(self.getTypeOfField(),self.getTimeDiscretization())
6628 +    return MEDCouplingStdReduceFunct,(MEDCouplingFieldFloat,(d,(self.__getstate__()),))
6629 +%}
6630 +
6631 +%pythoncode %{
6632  import os
6633  __filename=os.environ.get('PYTHONSTARTUP')
6634  if __filename and os.path.isfile(__filename):
6635 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingDataArrayTraits.hxx MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingDataArrayTraits.hxx
6636 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingDataArrayTraits.hxx 2018-04-19 17:04:36.733222643 +0200
6637 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingDataArrayTraits.hxx 2018-04-19 17:25:17.286788442 +0200
6638 @@ -37,7 +37,7 @@
6639  #ifdef WITH_NUMPY
6640  // specific DataArray deallocator callback. This deallocator is used both in the constructor of DataArray and in the toNumPyArr
6641  // method. This dellocator uses weakref to determine if the linked numArr is still alive or not. If alive the ownership is given to it.
6642 -// if no more alive the "standart" DataArray deallocator is called.
6643 +// if no more alive the "standard" DataArray deallocator is called.
6644  void numarrdeal(void *pt, void *wron)
6645  {
6646    void **wronc=(void **)wron;
6647 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingDataArrayTypemaps.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingDataArrayTypemaps.i
6648 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingDataArrayTypemaps.i 2018-04-19 17:04:36.733222643 +0200
6649 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingDataArrayTypemaps.i 2018-04-19 17:25:17.255787829 +0200
6650 @@ -1,4 +1,4 @@
6651 -// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
6652 +// Copyright (C) 2007-2017  CEA/DEN, EDF R&D
6653  //
6654  // This library is free software; you can redistribute it and/or
6655  // modify it under the terms of the GNU Lesser General Public
6656 @@ -50,7 +50,7 @@
6657  }
6658  
6659  /*!
6660 - * This method is an extention of PySlice_GetIndices but less
6661 + * This method is an extension of PySlice_GetIndices but less
6662   * open than PySlice_GetIndicesEx that accepts too many situations.
6663   */
6664  void GetIndicesOfSlice(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, const char *msgInCaseOfFailure)
6665 @@ -236,27 +236,27 @@
6666  
6667      /*
6668       * Don't allow infinite chains of views, always set the base
6669 -     * to the first owner of the data.  
6670 -     * That is, either the first object which isn't an array, 
6671 +     * to the first owner of the data.
6672 +     * That is, either the first object which isn't an array,
6673       * or the first object which owns its own data.
6674       */
6675  
6676      while (PyArray_Check(obj) && (PyObject *)arr != obj) {
6677          PyArrayObject *obj_arr = (PyArrayObject *)obj;
6678          PyObject *tmp;
6679
6680 +
6681  
6682          /* If this array owns its own data, stop collapsing */
6683 -        if (PyArray_CHKFLAGS(obj_arr, MED_NUMPY_OWNDATA )) { 
6684 +        if (PyArray_CHKFLAGS(obj_arr, MED_NUMPY_OWNDATA )) {
6685              break;
6686 -        }   
6687 +        }
6688  
6689          tmp = PyArray_BASE(obj_arr);
6690          /* If there's no base, stop collapsing */
6691          if (tmp == NULL) {
6692              break;
6693          }
6694 -        /* Stop the collapse new base when the would not be of the same 
6695 +        /* Stop the collapse new base when the would not be of the same
6696           * type (i.e. different subclass).
6697           */
6698          if (Py_TYPE(tmp) != Py_TYPE(arr)) {
6699 @@ -293,7 +293,7 @@
6700    MEDCoupling::MemArray<T>& mem=self->accessToMemArray();
6701    if(nbComp==0)
6702      {
6703 -      std::ostringstream oss; oss << MCDataStr << "::toNumPyArray : number of components of this is 0 ! Should be > 0 !"; 
6704 +      std::ostringstream oss; oss << MCDataStr << "::toNumPyArray : number of components of this is 0 ! Should be > 0 !";
6705        throw INTERP_KERNEL::Exception(oss.str().c_str());
6706      }
6707    int nbDims=nbComp==1?1:2;
6708 @@ -489,7 +489,7 @@
6709        if(msg)
6710          oss << msg;
6711        else
6712 -        oss << "PyWrap convertPyObjectToStr : expect a sting like py object !";
6713 +        oss << "PyWrap convertPyObjectToStr : expect a string like py object !";
6714        throw INTERP_KERNEL::Exception(oss.str());
6715      }
6716    return ret;
6717 @@ -1394,7 +1394,7 @@
6718      }
6719    status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayIntTuple,0|0);
6720    if(SWIG_IsOK(status))
6721 -    {  
6722 +    {
6723        daIntTuple=reinterpret_cast< MEDCoupling::DataArrayIntTuple * >(argp);
6724        sw=4;
6725        return ;
6726 @@ -1474,7 +1474,7 @@
6727      }
6728    status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayIntTuple,0|0);
6729    if(SWIG_IsOK(status))
6730 -    {  
6731 +    {
6732        MEDCoupling::DataArrayIntTuple *daIntTuple=reinterpret_cast< MEDCoupling::DataArrayIntTuple * >(argp);
6733        sw=4; sz=daIntTuple->getNumberOfCompo();
6734        return daIntTuple->getConstPointer();
6735 @@ -1690,14 +1690,14 @@
6736    void *argp;
6737    int status=SWIG_ConvertPtr(value,&argp,ti_da,0|0);
6738    if(SWIG_IsOK(status))
6739 -    {  
6740 +    {
6741        d=reinterpret_cast< typename MEDCoupling::Traits<T>::ArrayType * >(argp);
6742        sw=2;
6743        return ;
6744      }
6745    status=SWIG_ConvertPtr(value,&argp,ti_tuple,0|0);
6746    if(SWIG_IsOK(status))
6747 -    {  
6748 +    {
6749        e=reinterpret_cast< typename MEDCoupling::Traits<T>::ArrayTuple * >(argp);
6750        sw=3;
6751        return ;
6752 @@ -1719,6 +1719,19 @@
6753  }
6754  
6755  /*!
6756 + * if value int -> cpp val sw=1
6757 + * if value double -> cpp val sw=1
6758 + * if value DataArrayDouble -> cpp DataArrayDouble sw=2
6759 + * if value DataArrayDoubleTuple -> cpp DataArrayDoubleTuple sw=3
6760 + * if value list[int,double] -> cpp std::vector<double> sw=4
6761 + * if value tuple[int,double] -> cpp std::vector<double> sw=4
6762 + */
6763 +static void convertFloatStarLikePyObjToCpp_2(PyObject *value, int& sw, float& val, MEDCoupling::DataArrayFloat *&d, MEDCoupling::DataArrayFloatTuple *&e, std::vector<float>& f)
6764 +{
6765 +  convertFPStarLikePyObjToCpp_2<float>(value,sw,val,d,e,f,SWIGTYPE_p_MEDCoupling__DataArrayFloat,SWIGTYPE_p_MEDCoupling__DataArrayFloatTuple);
6766 +}
6767 +
6768 +/*!
6769   * if python int -> cpp int sw=1
6770   * if python list[int] -> cpp vector<int> sw=2
6771   * if python tuple[int] -> cpp vector<int> sw=2
6772 @@ -2068,7 +2081,7 @@
6773        sw=1;
6774        if(nbTuplesExpected*nbCompExpected!=1)
6775          {
6776 -          std::ostringstream oss; oss << msg << "dimension expected to be " << nbTuplesExpected*nbCompExpected << " , and your data in input has dimension one (single PyFloat) !"; 
6777 +          std::ostringstream oss; oss << msg << "dimension expected to be " << nbTuplesExpected*nbCompExpected << " , and your data in input has dimension one (single PyFloat) !";
6778            throw INTERP_KERNEL::Exception(oss.str().c_str());
6779          }
6780        return &val;
6781 @@ -2079,7 +2092,7 @@
6782        sw=1;
6783        if(nbTuplesExpected*nbCompExpected!=1)
6784          {
6785 -          std::ostringstream oss; oss << msg << "dimension expected to be " << nbTuplesExpected*nbCompExpected << " , and your data in input has dimension one (single PyInt) !"; 
6786 +          std::ostringstream oss; oss << msg << "dimension expected to be " << nbTuplesExpected*nbCompExpected << " , and your data in input has dimension one (single PyInt) !";
6787            throw INTERP_KERNEL::Exception(oss.str().c_str());
6788          }
6789        return &val;
6790 @@ -2099,7 +2112,7 @@
6791    void *argp;
6792    int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0);
6793    if(SWIG_IsOK(status))
6794 -    {  
6795 +    {
6796        d=reinterpret_cast< MEDCoupling::DataArrayDouble * >(argp);
6797        sw=2;
6798        if(d)
6799 @@ -2135,7 +2148,7 @@
6800      }
6801    status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDoubleTuple,0|0);
6802    if(SWIG_IsOK(status))
6803 -    {  
6804 +    {
6805        e=reinterpret_cast< MEDCoupling::DataArrayDoubleTuple * >(argp);
6806        sw=3;
6807        if(e->getNumberOfCompo()==nbCompExpected)
6808 @@ -2144,7 +2157,7 @@
6809              return e->getConstPointer();
6810            else
6811              {
6812 -              std::ostringstream oss; oss << msg << "nb of tuples expected to be " << nbTuplesExpected << " , and input DataArrayDoubleTuple has always one tuple by contruction !";
6813 +              std::ostringstream oss; oss << msg << "nb of tuples expected to be " << nbTuplesExpected << " , and input DataArrayDoubleTuple has always one tuple by construction !";
6814                throw INTERP_KERNEL::Exception(oss.str().c_str());
6815              }
6816          }
6817 @@ -2175,7 +2188,7 @@
6818        sw=1;
6819        if(nbCompExpected!=1)
6820          {
6821 -          std::ostringstream oss; oss << msg << "dimension expected to be " << nbCompExpected << " , and your data in input has dimension one (single PyFloat) !"; 
6822 +          std::ostringstream oss; oss << msg << "dimension expected to be " << nbCompExpected << " , and your data in input has dimension one (single PyFloat) !";
6823            throw INTERP_KERNEL::Exception(oss.str().c_str());
6824          }
6825        nbTuples=1;
6826 @@ -2187,7 +2200,7 @@
6827        sw=1;
6828        if(nbCompExpected!=1)
6829          {
6830 -          std::ostringstream oss; oss << msg << "dimension expected to be " << nbCompExpected << " , and your data in input has dimension one (single PyInt) !"; 
6831 +          std::ostringstream oss; oss << msg << "dimension expected to be " << nbCompExpected << " , and your data in input has dimension one (single PyInt) !";
6832            throw INTERP_KERNEL::Exception(oss.str().c_str());
6833          }
6834        nbTuples=1;
6835 @@ -2213,7 +2226,7 @@
6836        sw=4;
6837        if(size%nbCompExpected!=0)
6838          {
6839 -          std::ostringstream oss; oss << msg << "dimension expected to be a multiple of " << nbCompExpected << " , and your data in input has dimension " << f.size() << " !"; 
6840 +          std::ostringstream oss; oss << msg << "dimension expected to be a multiple of " << nbCompExpected << " , and your data in input has dimension " << f.size() << " !";
6841            throw INTERP_KERNEL::Exception(oss.str().c_str());
6842          }
6843        nbTuples=size/nbCompExpected;
6844 @@ -2239,7 +2252,7 @@
6845        sw=4;
6846        if(size%nbCompExpected!=0)
6847          {
6848 -          std::ostringstream oss; oss << msg << "dimension expected to be a multiple of " << nbCompExpected << " , and your data in input has dimension " << f.size() << " !"; 
6849 +          std::ostringstream oss; oss << msg << "dimension expected to be a multiple of " << nbCompExpected << " , and your data in input has dimension " << f.size() << " !";
6850            throw INTERP_KERNEL::Exception(oss.str().c_str());
6851          }
6852        nbTuples=size/nbCompExpected;
6853 @@ -2248,7 +2261,7 @@
6854    void *argp;
6855    int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0);
6856    if(SWIG_IsOK(status))
6857 -    {  
6858 +    {
6859        d=reinterpret_cast< MEDCoupling::DataArrayDouble * >(argp);
6860        sw=2;
6861        if(d)
6862 @@ -2277,7 +2290,7 @@
6863      }
6864    status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDoubleTuple,0|0);
6865    if(SWIG_IsOK(status))
6866 -    {  
6867 +    {
6868        e=reinterpret_cast< MEDCoupling::DataArrayDoubleTuple * >(argp);
6869        sw=3;
6870        if(e)
6871 @@ -2380,7 +2393,7 @@
6872    void *argp;
6873    int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDouble,0|0);
6874    if(SWIG_IsOK(status))
6875 -    {  
6876 +    {
6877        d=reinterpret_cast< MEDCoupling::DataArrayDouble * >(argp);
6878        sw=2;
6879        if(d)
6880 @@ -2409,7 +2422,7 @@
6881      }
6882    status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_MEDCoupling__DataArrayDoubleTuple,0|0);
6883    if(SWIG_IsOK(status))
6884 -    {  
6885 +    {
6886        e=reinterpret_cast< MEDCoupling::DataArrayDoubleTuple * >(argp);
6887        sw=3;
6888        if(e)
6889 @@ -2456,114 +2469,6 @@
6890    return reinterpret_cast< MEDCoupling::DataArray * >(aBasePtrVS);
6891  }
6892  
6893 -static PyObject *NewMethWrapCallInitOnlyIfEmptyDictInInput(PyObject *cls, PyObject *args, const char *clsName)
6894 -{
6895 -  if(!PyTuple_Check(args))
6896 -    {
6897 -      std::ostringstream oss; oss << clsName << ".__new__ : the args in input is expected to be a tuple !";
6898 -      throw INTERP_KERNEL::Exception(oss.str().c_str());
6899 -    }
6900 -  PyObject *builtinsd(PyEval_GetBuiltins());//borrowed
6901 -  PyObject *obj(PyDict_GetItemString(builtinsd,"object"));//borrowed
6902 -  PyObject *selfMeth(PyObject_GetAttrString(obj,"__new__"));
6903 -  //
6904 -  PyObject *tmp0(PyTuple_New(1));
6905 -  PyTuple_SetItem(tmp0,0,cls); Py_XINCREF(cls);
6906 -  PyObject *instance(PyObject_CallObject(selfMeth,tmp0));
6907 -  Py_DECREF(tmp0);
6908 -  Py_DECREF(selfMeth);
6909 -  if(PyTuple_Size(args)==2 && PyDict_Check(PyTuple_GetItem(args,1)) && PyDict_Size(PyTuple_GetItem(args,1))==0 )
6910 -    {// NOT general case. only true if in unpickeling context ! call __init__. Because for all other cases, __init__ is called right after __new__ !
6911 -      PyObject *initMeth(PyObject_GetAttrString(instance,"__init__"));
6912 -      PyObject *tmp3(PyTuple_New(0));
6913 -      PyObject *tmp2(PyObject_CallObject(initMeth,tmp3));
6914 -      Py_XDECREF(tmp2);
6915 -      Py_DECREF(tmp3);
6916 -      Py_DECREF(initMeth);
6917 -    }
6918 -  return instance;
6919 -}
6920 -
6921 -template<class T>
6922 -static PyObject *NewMethWrapCallInitOnlyIfDictWithSingleEltInInputGeneral(PyObject *cls, PyObject *args, const char *clsName)
6923 -{
6924 -  if(!PyTuple_Check(args))
6925 -    {
6926 -      std::ostringstream oss; oss << clsName << ".__new__ : the args in input is expected to be a tuple !";
6927 -      throw INTERP_KERNEL::Exception(oss.str().c_str());
6928 -    }
6929 -  PyObject *builtinsd(PyEval_GetBuiltins());//borrowed
6930 -  PyObject *obj(PyDict_GetItemString(builtinsd,"object"));//borrowed
6931 -  PyObject *selfMeth(PyObject_GetAttrString(obj,"__new__"));
6932 -  //
6933 -  PyObject *tmp0(PyTuple_New(1));
6934 -  PyTuple_SetItem(tmp0,0,cls); Py_XINCREF(cls);
6935 -  PyObject *instance(PyObject_CallObject(selfMeth,tmp0));
6936 -  Py_DECREF(tmp0);
6937 -  Py_DECREF(selfMeth);
6938 -  if(PyTuple_Size(args)==2 && PyDict_Check(PyTuple_GetItem(args,1)) && PyDict_Size(PyTuple_GetItem(args,1))==1 )
6939 -    {// NOT general case. only true if in unpickeling context ! call __init__. Because for all other cases, __init__ is called right after __new__ !
6940 -      PyObject *initMeth(PyObject_GetAttrString(instance,"__init__"));
6941 -      PyObject *zeNumpyRepr(0);
6942 -      {
6943 -        PyObject *tmp1(PyInt_FromLong(0));
6944 -       zeNumpyRepr=PyDict_GetItem(PyTuple_GetItem(args,1),tmp1);//borrowed
6945 -        Py_DECREF(tmp1);
6946 -      }
6947 -      if(!zeNumpyRepr)
6948 -        {
6949 -          std::ostringstream oss; oss << clsName << ".__new__ : the args in input is expected to be a tuple !";
6950 -          throw INTERP_KERNEL::Exception(oss.str().c_str());
6951 -        }
6952 -      T tt;
6953 -      {
6954 -        PyObject *tmp3(0);
6955 -        try
6956 -          {
6957 -            tmp3=tt(zeNumpyRepr);
6958 -          }
6959 -        catch(INTERP_KERNEL::Exception& e)
6960 -          {
6961 -            std::ostringstream oss; oss << clsName << ".__new__ : Invalid type in input " << " : " << e.what();
6962 -            throw INTERP_KERNEL::Exception(oss.str());
6963 -          }
6964 -        {
6965 -          PyObject *tmp2(PyObject_CallObject(initMeth,tmp3));
6966 -          Py_XDECREF(tmp2);
6967 -        }
6968 -        Py_DECREF(tmp3);
6969 -      }
6970 -      Py_DECREF(initMeth);
6971 -    }
6972 -  return instance;
6973 -}
6974 -
6975 -struct SinglePyObjToBePutInATuple
6976 -{
6977 -  PyObject *operator()(PyObject *zeNumpyRepr)
6978 -  {
6979 -    PyObject *tmp3(PyTuple_New(1));
6980 -    PyTuple_SetItem(tmp3,0,zeNumpyRepr); Py_XINCREF(zeNumpyRepr);
6981 -    return tmp3;
6982 -  }
6983 -};
6984 -
6985 -struct SinglePyObjExpectToBeAListOfSz2
6986 -{
6987 -  PyObject *operator()(PyObject *uniqueElt)
6988 -  {
6989 -    if(!PyTuple_Check(uniqueElt) || PyTuple_Size(uniqueElt)!=2)
6990 -      throw INTERP_KERNEL::Exception("Not a tuple of size 2 !");
6991 -    Py_XINCREF(uniqueElt);
6992 -    return uniqueElt;
6993 -  }
6994 -};
6995 -
6996 -static PyObject *NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(PyObject *cls, PyObject *args, const char *clsName)
6997 -{
6998 -  return NewMethWrapCallInitOnlyIfDictWithSingleEltInInputGeneral<SinglePyObjToBePutInATuple>(cls,args,clsName);
6999 -}
7000 -
7001  static PyObject *convertPartDefinition(MEDCoupling::PartDefinition *pd, int owner)
7002  {
7003    PyObject *ret=0;
7004 @@ -3127,6 +3032,83 @@
7005      }
7006  }
7007  
7008 +bool isCSRMatrix(PyObject *m)
7009 +{
7010 +#if defined(WITH_NUMPY) && defined(WITH_SCIPY)
7011 +  PyObject* pdict(PyDict_New());
7012 +  PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins());
7013 +  PyObject *tmp(PyRun_String("from scipy.sparse import csr_matrix", Py_single_input, pdict, pdict));
7014 +  if(!tmp)
7015 +    throw INTERP_KERNEL::Exception("Problem during loading csr_matrix in scipy.sparse ! Is Scipy module available in present ?");
7016 +  PyObject *csrMatrixCls=PyDict_GetItemString(pdict,"csr_matrix");
7017 +  if(!csrMatrixCls)
7018 +    throw INTERP_KERNEL::Exception("csr_matrix not found in scipy.sparse ! Is Scipy module available in present ?");
7019 +  bool ret(PyObject_IsInstance(m,csrMatrixCls));
7020 +  Py_DECREF(pdict); Py_XDECREF(tmp);
7021 +  return ret;
7022 +#else
7023 +  return false;
7024 +#endif
7025 +}
7026 +
7027 +void convertCSR_MCDataToVectMapIntDouble(const MEDCoupling::DataArrayInt *indptrPtr, const MEDCoupling::DataArrayInt *indicesPtr, const MEDCoupling::DataArrayDouble *dataPtr, std::vector<std::map<int,double> >& mCpp)
7028 +{
7029 +#if __cplusplus >= 201103L
7030 +  auto nbOfRows(indptrPtr->getNumberOfTuples()-1);
7031 +  if(nbOfRows<0)
7032 +    throw INTERP_KERNEL::Exception("pywrap of MEDCouplingRemapper::setMatrix : input CSR matrix looks bad regarding indptr array !");
7033 +  mCpp.resize(nbOfRows);
7034 +  auto indPtrCPtr(indptrPtr->begin());
7035 +  auto indicesCPtr(indicesPtr->begin());
7036 +  auto dataCPtr(dataPtr->begin());
7037 +  for(auto i=0;i<nbOfRows;i++)
7038 +    {
7039 +      auto& line(mCpp[i]);
7040 +      for(auto j=indPtrCPtr[i];j<indPtrCPtr[i+1];j++)
7041 +        {
7042 +          line[indicesCPtr[j]]=dataCPtr[j];
7043 +        }
7044 +    }
7045 +#else
7046 +  throw INTERP_KERNEL::Exception("Breaking news : 10% off for C++11 compiler :)");
7047 +#endif
7048 +}
7049 +
7050 +void convertToVectMapIntDouble(PyObject *pyobj, std::vector<std::map<int,double> >& mCpp)
7051 +{
7052 +  if(!PyList_Check(pyobj))
7053 +    throw INTERP_KERNEL::Exception("convertToVectMapIntDouble : input is not a python list !");
7054 +  mCpp.clear();
7055 +  Py_ssize_t sz(PyList_Size(pyobj));
7056 +  mCpp.resize(sz);
7057 +  for(Py_ssize_t i=0;i<sz;i++)
7058 +    {
7059 +      PyObject *elt(PyList_GetItem(pyobj,i));
7060 +      if(!PyDict_Check(elt))
7061 +        {
7062 +          std::ostringstream oss; oss << "convertToVectMapIntDouble : at pos # " << i << " of pylist a dict is exepect !";
7063 +          throw INTERP_KERNEL::Exception(oss.str());
7064 +        }
7065 +      PyObject *key, *value;
7066 +      Py_ssize_t pos(0);
7067 +      std::map<int,double>& mapCpp(mCpp[i]);
7068 +      while(PyDict_Next(elt,&pos,&key,&value))
7069 +        {
7070 +          if(!PyInt_Check(key))
7071 +            {
7072 +              std::ostringstream oss; oss << "convertToVectMapIntDouble : at pos # " << i << " of pylist the dict contains at pos " << pos << " a key not mappable to pyint !";
7073 +              throw INTERP_KERNEL::Exception(oss.str());
7074 +            }
7075 +          if(!PyFloat_Check(value))
7076 +            {
7077 +              std::ostringstream oss; oss << "convertToVectMapIntDouble : at pos # " << i << " of pylist the dict contains at pos " << pos << " the value not mappable to pyfloat !";
7078 +              throw INTERP_KERNEL::Exception(oss.str());
7079 +            }
7080 +          mapCpp[(int)PyInt_AS_LONG(key)]=PyFloat_AS_DOUBLE(value);
7081 +        }
7082 +    }
7083 +}
7084 +
7085  template<class T>
7086  PyObject *DataArrayT_imul__internal(PyObject *trueSelf, PyObject *obj, typename MEDCoupling::Traits<T>::ArrayType *self, swig_type_info *ti_da, swig_type_info *ti_tuple)
7087  {
7088 @@ -3257,7 +3239,7 @@
7089        throw INTERP_KERNEL::Exception(msg);
7090      }
7091  }
7092 -  
7093 +
7094  template<class T>
7095  PyObject *DataArrayT_isub__internal(PyObject *trueSelf, PyObject *obj, typename MEDCoupling::Traits<T>::ArrayType *self, swig_type_info *ti_da, swig_type_info *ti_tuple)
7096  {
7097 @@ -3324,9 +3306,11 @@
7098  swig_type_info *SWIGTITraits<float>::TI_TUPLE=NULL;//unfortunately SWIGTYPE_p_MEDCoupling__DataArrayFloat is null when called here ! Postpone initialization at inlined initializeMe()
7099  swig_type_info *SWIGTITraits<int>::TI_TUPLE=NULL;//unfortunately SWIGTYPE_p_MEDCoupling__DataArrayFloat is null when called here ! Postpone initialization at inlined initializeMe()
7100  
7101 +#ifdef WITH_NUMPY
7102  PyTypeObject *NPYTraits<double>::NPYFunc=&PyCallBackDataArrayDouble_RefType;
7103  
7104  PyTypeObject *NPYTraits<float>::NPYFunc=&PyCallBackDataArrayFloat_RefType;
7105 +#endif
7106  
7107  template<class T>
7108  typename MEDCoupling::Traits<T>::ArrayType *DataArrayT__setitem__(typename MEDCoupling::Traits<T>::ArrayType *self, PyObject *obj, PyObject *value)
7109 @@ -3364,4 +3348,37 @@
7110    return DataArrayT_isub__internal<T>(trueSelf,obj,self,SWIGTITraits<T>::TI,SWIGTITraits<T>::TI_TUPLE);
7111  }
7112  
7113 +template<class T>
7114 +typename MEDCoupling::Traits<T>::ArrayType *DataArrayFPT_rmul(typename MEDCoupling::Traits<T>::ArrayType *self, PyObject *obj)
7115 +{
7116 +  const char msg[]="Unexpected situation in __rmul__ !";
7117 +  T val;
7118 +  typename MEDCoupling::Traits<T>::ArrayType *a;
7119 +  typename MEDCoupling::Traits<T>::ArrayTuple *aa;
7120 +  std::vector<T> bb;
7121 +  int sw;
7122 +  convertFPStarLikePyObjToCpp_2<T>(obj,sw,val,a,aa,bb,SWIGTITraits<T>::TI,SWIGTITraits<T>::TI_TUPLE);
7123 +  switch(sw)
7124 +    {
7125 +    case 1:
7126 +      {
7127 +        typename MEDCoupling::MCAuto<typename MEDCoupling::Traits<T>::ArrayType> ret(self->deepCopy());
7128 +        ret->applyLin(val,0.);
7129 +        return ret.retn();
7130 +      }
7131 +    case 3:
7132 +      {
7133 +        typename MEDCoupling::MCAuto<typename MEDCoupling::Traits<T>::ArrayType> aaa(aa->buildDA(1,self->getNumberOfComponents()));
7134 +        return MEDCoupling::Traits<T>::ArrayType::Multiply(self,aaa);
7135 +      }
7136 +    case 4:
7137 +      {
7138 +        typename MEDCoupling::MCAuto<typename MEDCoupling::Traits<T>::ArrayType> aaa(MEDCoupling::Traits<T>::ArrayType::New()); aaa->useArray(&bb[0],false,MEDCoupling::CPP_DEALLOC,1,(int)bb.size());
7139 +        return MEDCoupling::Traits<T>::ArrayType::Multiply(self,aaa);
7140 +      }
7141 +    default:
7142 +      throw INTERP_KERNEL::Exception(msg);
7143 +    }
7144 +}
7145 +
7146  #endif
7147 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyc MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyc
7148 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyc     1970-01-01 01:00:00.000000000 +0100
7149 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyc     2018-04-19 17:25:17.266788047 +0200
7150 @@ -0,0 +1,271 @@
7151 +\ 3ó\r
7152 +\18;ÕZc\0\0\0\0\0\0\0\0\ 3\0\0\0@\0\0\0s!\0\0\0d\0\0d\ 1\0l\0\0Td\ 2\0d\ 5\0d\ 3\0\84\0\0\83\0\0YZ\ 1\0d\ 4\0S(\ 6\0\0\0iÿÿÿÿ(\ 1\0\0\0t\ 1\0\0\0*t\16\0\0\0MEDCouplingDataForTestc\0\0\0\0\0\0\0\0\ 2\0\0\0B\0\0\0s~\ 2\0\0e\0\0Z\ 1\0d\0\0\84\0\0Z\ 2\0d\ 1\0\84\0\0Z\ 3\0d\ 2\0\84\0\0Z\ 4\0d\ 3\0\84\0\0Z\ 5\0d\ 4\0\84\0\0Z\ 6\0d\ 5\0\84\0\0Z\a\0d\ 6\0\84\0\0Z\b\0d\a\0\84\0\0Z  \0d\b\0\84\0\0Z
7153 +\0d     \0\84\0\0Z\v\0d
7154 +\0\84\0\0Z\f\0d\v\0\84\0\0Z\r\0d\f\0\84\0\0Z\ e\0d\r\0\84\0\0Z\ f\0d\ e\0\84\0\0Z\10\0d\ f\0\84\0\0Z\11\0d\10\0\84\0\0Z\12\0d\11\0\84\0\0Z\13\0d\12\0\84\0\0Z\14\0d\13\0\84\0\0Z\15\0d\14\0\84\0\0Z\16\0d\15\0\84\0\0Z\17\0d\16\0\84\0\0Z\18\0d\17\0\84\0\0Z\19\0d\18\0\84\0\0Z\1a\0d\19\0\84\0\0Z\e\0d\1a\0\84\0\0Z\1c\0d\e\0\84\0\0Z\1d\0d\1c\0\84\0\0Z\1e\0d\1d\0\84\0\0Z\1f\0\0e\ 2\0\83\ 1\0Z\ 2\0\0e\ 3\0\83\ 1\0Z\ 3\0\0e\ 4\0\83\ 1\0Z\ 4\0\0e\ 5\0\83\ 1\0Z\ 5\0\0e\ 6\0\83\ 1\0Z\ 6\0\0e\a\0\83\ 1\0Z\a\0\0e\b\0\83\ 1\0Z\b\0\0e     \0\83\ 1\0Z   \0\0e
7155 +\0\83\ 1\0Z
7156 +\0\0e\v\0\83\ 1\0Z\v\0\0e\f\0\83\ 1\0Z\f\0\0e\r\0\83\ 1\0Z\r\0\0e\ e\0\83\ 1\0Z\ e\0\0e\ f\0\83\ 1\0Z\ f\0\0e\10\0\83\ 1\0Z\10\0\0e\11\0\83\ 1\0Z\11\0\0e\12\0\83\ 1\0Z\12\0\0e\13\0\83\ 1\0Z\13\0\0e\14\0\83\ 1\0Z\14\0\0e\15\0\83\ 1\0Z\15\0\0e\16\0\83\ 1\0Z\16\0\0e\17\0\83\ 1\0Z\17\0\0e\18\0\83\ 1\0Z\18\0\0e\19\0\83\ 1\0Z\19\0\0e\1a\0\83\ 1\0Z\1a\0\0e\e\0\83\ 1\0Z\e\0\0e\1c\0\83\ 1\0Z\1c\0\0e\1d\0\83\ 1\0Z\1d\0\0e\1e\0\83\ 1\0Z\1e\0\0e\1f\0\83\ 1\0Z\1f\0RS(\1e\0\0\0c\ 1\0\0\0\ 5\0\0\0\12\0\0\0C\0\0\0sZ\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0g\12\0}\ 1\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\a\0d\ 6\0d\b\0d\ 6\0d        \0d\b\0d
7157 +\0d\v\0d\ 6\0d\ 5\0d\v\0d\f\0d      \0d\ 6\0g\12\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 3\0d      \0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 6\0|\ 2\0d\ 4\0d\ 6\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\ 5\0|\ 2\0d\ 6\0d\v\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\ 5\0|\ 2\0d\v\0d\r\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 6\0|\ 2\0d\r\0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 6\0|\ 2\0d\ e\0d\ f\0!\83\ 3\0\ 1|\ 3\0j\a\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j       \0|\ 1\0d\10\0d\b\0\83\ 3\0\ 1|\ 3\0j
7158 +\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\11\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i
7159 +\0\0\0i\ e\0\0\0i\12\0\0\0\0\0\0(\v\0\0\0t\10\0\0\0MEDCouplingUMesht\ 3\0\0\0Newt\10\0\0\0setMeshDimensiont\r\0\0\0allocateCellst\ e\0\0\0insertNextCellt
7160 +\0\0\0NORM_QUAD4t \0\0\0NORM_TRI3t\14\0\0\0finishInsertingCellst\ f\0\0\0DataArrayDoublet      \0\0\0setValuest   \0\0\0setCoords(\ 5\0\0\0t\ 3\0\0\0clst\f\0\0\0targetCoordst
7161 +\0\0\0targetConnt
7162 +\0\0\0targetMesht\b\0\0\0myCoords(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build2DTargetMesh_1\18\0\0\0s\1e\0\0\0\0\ 1<\ 1<\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7163 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\b\0\0\0C\0\0\0\0\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0g\b\0}\ 1\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 6\0d\ 4\0g\ 6\0}\ 2\0t\0\0j\ 1\0d\a\0d\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0d\ 6\0\83\ 1\0\ 1|\ 3\0j\ 3\0t\ 4\0d\ 4\0|\ 2\0d\ 3\0d\ 4\0!\83\ 3\0\ 1|\ 3\0j\ 3\0t\ 4\0d\ 4\0|\ 2\0d\ 4\0d\b\0!\83\ 3\0\ 1|\ 3\0j\ 5\0\83\0\0\ 1t\ 6\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\a\0|\ 1\0\0d\ 6\0\83\ 3\0\ 1|\ 3\0j\b\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(
7164 +\0\0\0Ng333333Ó¿gffffffæ?i\0\0\0\0i\ 3\0\0\0i\ 1\0\0\0i\ 2\0\0\0s\12\0\0\0my name of mesh 2Di\ 6\0\0\0i\ 4\0\0\0(   \0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\b\0\0\0R   \0\0\0R
7165 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\r\0\0\0t\f\0\0\0sourceCoordst
7166 +\0\0\0sourceConnt
7167 +\0\0\0sourceMeshR\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build2DSourceMesh_1)\0\0\0s\16\0\0\0\0\ 1\1e\ 1\18\ 1\12\ 1\r\ 1\1a\ 1\1a\ 1
7168 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 6\0\0\0Q\0\0\0C\0\0\0s\\ 2\0\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 3\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 3\0d\ 1\0d\ 3\0d\ 1\0d\ 2\0d\ 3\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 2\0d\ 3\0d\ 1\0d\ 3\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0gQ\0}\ 1\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0\0d
7169 +\0d\v\0d\ 5\0d\f\0d\r\0d\ 6\0d      \0d\ e\0d\ f\0d
7170 +\0d\a\0d\ 6\0d\10\0d\11\0d\v\0d
7171 +\0d\12\0d\13\0d\ 6\0d\r\0d\14\0d\10\0d
7172 +\0d\ f\0d\15\0d\12\0d\b\0\0d
7173 +\0d\v\0d\16\0d\17\0d\18\0d\19\0d      \0d\ e\0d\ f\0d
7174 +\0d\17\0d\1a\0d\e\0d\18\0d\v\0d
7175 +\0d\12\0d\13\0d\19\0d\18\0d\1c\0d\1d\0d
7176 +\0d\ f\0d\15\0d\12\0d\18\0d\e\0d\1e\0d\1c\0g@\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\a\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\v\0\83\ 1\0\ 1x:\0t\ 4\0d\14\0\83\ 1\0D],\0}\ 4\0|\ 3\0j\ 5\0t\ 6\0d\14\0|\ 2\0d\14\0|\ 4\0\14d\14\0|\ 4\0\14d\14\0\17!\83\ 3\0\ 1\ 1W|\ 3\0j\a\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j      \0|\ 1\0d\1f\0d\a\0\83\ 3\0\ 1|\ 3\0j
7177 +\0|\ 5\0\83\ 1\0\ 1|\ 3\0S( \0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0I@g\0\0\0\0\0\0i@i\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 3\0\0\0i     \0\0\0i
7178 +\0\0\0i\r\0\0\0i\f\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\v\0\0\0i\ e\0\0\0i\a\0\0\0i\ 6\0\0\0i\10\0\0\0i\ f\0\0\0i\b\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\16\0\0\0i\15\0\0\0i\14\0\0\0i\17\0\0\0i\19\0\0\0i\18\0\0\0i\1a\0\0\0i\e\0\0\0(\v\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0t\ 5\0\0\0rangeR\ 6\0\0\0t
7179 +\0\0\0NORM_HEXA8R \0\0\0R
7180 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 6\0\0\0R\r\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0t\ 1\0\0\0iR\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build3DTargetMesh_16\0\0\0\0\0\0\0\ 1Q\ 1Q\ 1W\ 1`\ 1f\ 1\f\ 1\r\ 1\r\ 1\13\ 1&\ 1\ 4\ 1
7181 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\00\0\0\0C\0\0\0s\85\ 2\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 1\0d\ 3\0d\ 3\0d\ 3\0g\e\0}\ 1\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d   \0d\ 4\0d
7182 +\0d\ 6\0d\v\0d\f\0d\ 4\0d\b\0d\ 4\0d\v\0d\ 6\0d\b\0d\ 4\0d       \0d\v\0d\b\0d\ 4\0d\ 6\0d\a\0d\ 4\0d\ 5\0d\a\0d      \0d\v\0d\ 5\0d\f\0d\ 4\0d\ 5\0d\ 6\0d\f\0d\ 4\0d      \0d\a\0d\ 4\0d
7183 +\0d\ 4\0d\ 5\0d       \0d\v\0d\a\0d\b\0d\ 4\0d
7184 +\0g0\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\a\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\r\0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d  \0d\v\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\v\0d\ 4\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\ 4\0d\r\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\r\0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\ e\0d\ f\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\ f\0d\10\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\10\0d\11\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\11\0d\12\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\13\0d\14\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\14\0d\15\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\v\0|\ 2\0d\15\0d\16\0!\83\ 3\0\ 1|\ 3\0j\ 6\0\83\0\0\ 1t\a\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\b\0|\ 1\0d\17\0d\a\0\83\ 3\0\ 1|\ 3\0j    \0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\18\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0i@g\0\0\0\0\0\0Y@i\b\0\0\0i\ 1\0\0\0i\a\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\f\0\0\0i\10\0\0\0i\14\0\0\0i\18\0\0\0i\1c\0\0\0\0\0\0i$\0\0\0i(\0\0\0i,\0\0\0i0\0\0\0i   \0\0\0(
7185 +\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0t\v\0\0\0NORM_TETRA4R  \0\0\0R
7186 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0t\ 4\0\0\0selfR\13\0\0\0R\14\0\0\0R\15\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build3DSourceMesh_1H\0\0\0s.\0\0\0\0\ 1-\ 1*\ 1\96\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7187 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\e\0\0\0C\0\0\0su\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 4\0d\ 5\0d\ 1\0d\ 6\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 6\0d\ 1\0d\ 5\0d\ 2\0d\ 3\0d\ 5\0d\ 4\0d\ 5\0d\ 5\0d\ 6\0g\e\0}\ 1\0d\a\0d\b\0d    \0d
7188 +\0d
7189 +\0d     \0d\v\0d   \0d\f\0d\v\0d\r\0d\ e\0d  \0d\b\0d\ e\0d\ f\0d\f\0d  \0g\12\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\v\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\f\0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0\0|\ 2\0d\a\0d        \0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\b\0|\ 2\0d  \0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\b\0|\ 2\0d\ e\0d\10\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d   \0|\ 2\0d\10\0d\11\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d       \0|\ 2\0d\11\0d\12\0!\83\ 3\0\ 1|\ 3\0j\a\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j       \0|\ 1\0d\13\0d\b\0\83\ 3\0\ 1|\ 3\0j
7190 +\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\14\0\0\0Ng333333Ó¿g\0\0\0\0\0\0à?g\9a\99\99\99\99\99É?g\0\0\0\0\0\0ð?gffffffæ?g\0\0\0\0\0\0ø?i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i
7191 +\0\0\0i\ e\0\0\0i\12\0\0\0\0\0\0(\v\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R    \0\0\0R
7192 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\1c\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\17\0\0\0build3DSurfTargetMesh_1b\0\0\0s\1e\0\0\0\0\ 1W\ 1<\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7193 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\a\0\0\0b\ 1\0\0C\0\0\0s»     \0\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 4\0d\ 1\0d\ 5\0d\ 1\0d\ 1\0d\ 5\0d\ 2\0d\ 1\0d\ 2\0d\ 5\0d\ 1\0d\ 1\0d\ 5\0d\ 1\0d\ 6\0d\ 2\0d\ 1\0d\ 6\0d\ 5\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 6\0d\ 1\0d\ 5\0d\ 5\0d\ 1\0d\ 5\0d\ 6\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 4\0d\ 2\0d\ 5\0d\ 1\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 2\0d\ 5\0d\ 2\0d\ 1\0d\ 5\0d\ 2\0d\ 6\0d\ 2\0d\ 2\0d\ 6\0d\ 5\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 6\0d\ 2\0d\ 5\0d\ 5\0d\ 2\0d\ 5\0d\ 6\0d\ 2\0d\ 1\0d\ 1\0d\ 5\0d\ 2\0d\ 2\0d\ 5\0d\ 2\0d\ 3\0d\ 5\0d\ 2\0d\ 1\0d\ 5\0d\ 2\0d\ 4\0d\ 5\0d\ 5\0d\ 1\0d\ 5\0d\ 5\0d\ 2\0d\ 5\0d\ 2\0d\ 5\0d\ 5\0d\ 1\0d\ 5\0d\ 5\0d\ 6\0d\ 2\0d\ 5\0d\ 6\0d\ 5\0d\ 5\0d\ 1\0d\ 2\0d\ 5\0d\ 2\0d\ 6\0d\ 5\0d\ 5\0d\ 5\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 1\0d\ 1\0d\ 6\0d\ 2\0d\ 2\0d\ 6\0d\ 2\0d\ 3\0d\ 6\0d\ 2\0d\ 1\0d\ 6\0d\ 2\0d\ 4\0d\ 6\0d\ 5\0d\ 1\0d\ 6\0d\ 5\0d\ 2\0d\ 6\0d\ 2\0d\ 5\0d\ 6\0d\ 1\0d\ 5\0d\ 6\0d\ 6\0d\ 2\0d\ 6\0d\ 6\0d\ 5\0d\ 6\0d\ 1\0d\ 2\0d\ 6\0d\ 2\0d\ 6\0d\ 6\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0\0}\ 1\0d\a\0d\b\0d     \0d
7194 +\0d\v\0d\f\0d\r\0d\ e\0\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d    \0d\r\0d\15\0d\13\0d\14\0d\13\0d\15\0d\16\0d\12\0d\14\0d\12\0d\11\0d\17\0d\16\0d\14\0d\11\0d\10\0d\18\0d\17\0d\14\0d\10\0d\ f\0d\19\0d\18\0d\14\0d\ f\0d   \0d\r\0d\19\0d\14\0d\r\0d\15\0d\16\0d\17\0d\18\0d\19\0d   \0d\13\0d\1a\0d
7195 +\0d\r\0d\15\0d\e\0d\ e\0d\12\0d\1c\0d\1d\0d\13\0d\16\0d\1e\0d\1f\0d\15\0d\b\0\0d\11\0d\10\0d\ f\0d  \0d\14\0d\b\0d\f\0d\r\0d  \0d\14\0d   \0d\r\0d\19\0d\ f\0d\14\0d\ f\0d\19\0d\18\0d\10\0d\14\0d\10\0d\18\0d\17\0d\11\0d\14\0d\11\0\0d!\0d\17\0d\14\0\0d\b\0d\f\0d!\0d\14\0d\f\0d\r\0d\19\0d\18\0d\17\0d!\0d\11\0d"\0d#\0d\12\0d\17\0d$\0d%\0d\16\0d\v\0d\f\0d\r\0d\ e\0d&\0d'\0d(\0d)\0d\r\0d\19\0d\18\0d\17\0d\16\0d\15\0d\14\0d\r\0d(\0d*\0d\15\0d\14\0d\15\0d*\0d+\0d\16\0d\14\0d\16\0d\17\0d,\0d+\0d\14\0d\17\0d\18\0d-\0d,\0d\14\0d\18\0d\19\0d.\0d-\0d\14\0d\19\0d\r\0d(\0d.\0d\14\0d(\0d*\0d+\0d,\0d-\0d.\0d\r\0d\15\0d\e\0d\ e\0d(\0d*\0d/\0d)\0d\16\0d\1e\0d\1f\0d\15\0d+\0d0\0d1\0d*\0d\f\0d!\0d\17\0d\18\0d\19\0d\r\0d\14\0d\f\0d'\0d(\0d\r\0d\14\0d\r\0d(\0d.\0d\19\0d\14\0d\19\0d.\0d-\0d\18\0d\14\0d\18\0d-\0d,\0d\17\0d\14\0d\17\0d!\0d2\0d,\0d\14\0d!\0d\f\0d'\0d2\0d\14\0d'\0d(\0d.\0d-\0d,\0d2\0d\17\0d$\0d%\0d\16\0d,\0d3\0d4\0d+\0d&\0d'\0d(\0d)\0d5\0d6\0d7\0d8\0d(\0d.\0d-\0d,\0d+\0d*\0d\14\0d(\0d7\0d9\0d*\0d\14\0d*\0d9\0d:\0d+\0d\14\0d+\0d,\0d;\0d:\0d\14\0d,\0d-\0d<\0d;\0d\14\0d-\0d.\0d=\0d<\0d\14\0d.\0d(\0d7\0d=\0d\14\0d7\0d9\0d:\0d;\0d<\0d=\0d(\0d*\0d/\0d)\0d7\0d9\0d>\0d8\0d+\0d0\0d1\0d*\0d:\0d?\0d@\0d9\0d'\0d2\0d,\0d-\0d.\0d(\0d\14\0d'\0d6\0d7\0d(\0d\14\0d(\0d7\0d=\0d.\0d\14\0d.\0d=\0d<\0d-\0d\14\0d-\0d<\0d;\0d,\0d\14\0d,\0d2\0dA\0d;\0d\14\0d2\0d'\0d6\0dA\0d\14\0d6\0d7\0d=\0d<\0d;\0dA\0d,\0d3\0d4\0d+\0d;\0dB\0dC\0d:\0gb\ 1}\ 2\0d\11\0d"\0d#\0d\12\0d\b\0\0d\11\0d\10\0d\ f\0d       \0d\12\0d\1c\0d\1d\0d\13\0d  \0d\13\0d\1a\0d
7196 +\0d     \0d\ f\0d\10\0d\11\0d\12\0d\13\0d\a\0d\b\0\0d
7197 +\0g\1c\0}\ 3\0t\0\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 2\0d
7198 +\0\83\ 1\0\ 1|\ 4\0j\ 3\0d\ e\0\83\ 1\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0d\a\0\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 6\0d+\0|\ 2\0\0d9\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0d9\0dC\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dC\0dD\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 6\0d+\0|\ 2\0dD\0dE\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dE\0dF\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dF\0dG\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 6\0d+\0|\ 2\0dG\0dH\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dH\0dI\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dI\0dJ\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 6\0d+\0|\ 2\0dJ\0dK\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dK\0dL\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dL\0dM\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 6\0d+\0|\ 2\0dM\0dN\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dN\0dO\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dO\0dP\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 6\0d+\0|\ 2\0dP\0dQ\0!\83\ 3\0\ 1|\ 4\0j\ 4\0t\ 5\0\0|\ 2\0dQ\0dR\0!\83\ 3\0\ 1|\ 4\0j\a\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j       \0|\ 1\0dS\0d
7199 +\0\83\ 3\0\ 1|\ 4\0j
7200 +\0|\ 5\0\83\ 1\0\ 1t\0\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j\ 2\0d\ f\0\83\ 1\0\ 1|\ 6\0j\ 3\0d\13\0\83\ 1\0\ 1|\ 6\0j\ 4\0t\v\0d\10\0|\ 3\0d\a\0d\10\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\f\0d\13\0|\ 3\0d\10\0d\1c\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\v\0d\10\0|\ 3\0d\1c\0d#\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\v\0d\10\0|\ 3\0d#\0d\ e\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\f\0d\13\0|\ 3\0d\ e\0d\1f\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\v\0d\10\0|\ 3\0d\1f\0d\16\0!\83\ 3\0\ 1|\ 6\0j\a\0\83\0\0\ 1|\ 6\0j
7201 +\0|\ 5\0\83\ 1\0\ 1|\ 4\0|\ 6\0f\ 2\0S(T\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ô?g\0\0\0\0\0\0ø?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@i\0\0\0\0i\v\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\ f\0\0\0i\1a\0\0\0i\10\0\0\0i\12\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\a\0\0\0i\r\0\0\0i\ 6\0\0\0iÿÿÿÿi\15\0\0\0i\1c\0\0\0i\16\0\0\0i\13\0\0\0i\11\0\0\0i\ 5\0\0\0i\14\0\0\0i
7202 +\0\0\0i   \0\0\0i\19\0\0\0i\18\0\0\0i\b\0\0\0i\17\0\0\0i\f\0\0\0i\ e\0\0\0i\e\0\0\0i\1d\0\0\0i\1e\0\0\0i)\0\0\0i\1f\0\0\0i!\0\0\0i$\0\0\0i+\0\0\0i%\0\0\0i"\0\0\0\0\0\0i#\0\0\0i(\0\0\0i'\0\0\0i&\0\0\0i*\0\0\0i,\0\0\0i-\0\0\0i8\0\0\0i.\0\0\0i0\0\0\0i3\0\0\0i:\0\0\0i4\0\0\0i1\0\0\0i/\0\0\0i2\0\0\0i7\0\0\0i6\0\0\0i5\0\0\0i9\0\0\0i;\0\0\0iC\0\0\0in\0\0\0iv\0\0\0i~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\1f\ 1\0\0i'\ 1\0\0i/\ 1\0\0iZ\ 1\0\0ib\ 1\0\0i<\0\0\0(\r\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\18\0\0\0t\f\0\0\0NORM_POLYHEDR  \0\0\0R
7203 +\0\0\0R\v\0\0\0R\f\0\0\0R\a\0\0\0t\f\0\0\0NORM_POLYGON(\a\0\0\0R\1c\0\0\0t\ 6\0\0\0coordst\ 4\0\0\0connt\ 5\0\0\0conn2t\ 3\0\0\0retR\11\0\0\0t\ 6\0\0\0mesh2D(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\16\0\0\0build3DExtrudedUMesh_1s\0\0\0st\0\0\0\0\ 2Z\ 1-\ 1Z\ 1-\ 1Z\ 1-\ 1Z\ 13\ 4\99\ 10\ 1\81\ 1\18\ 2\99\ 10\ 1\81\ 1\18\ 2\99\ 10\ 1\81\ 1\1e\ 1Z\ 2\f\ 1\r\ 1\r\ 2\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 2\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 2\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 2
7204 +\ 1\f\ 1\13\ 1\r\ 2\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7205 +\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\ 6\0\0\0C\0\0\0\0\0\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0g\ 4\0}\ 1\0d\ 5\0d\ 6\0d\ 6\0d\a\0d\a\0d\b\0g\ 6\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\ 6\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0d\a\0|\ 2\0d\ 5\0d\a\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\a\0|\ 2\0d\a\0\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\a\0|\ 2\0d  \0d
7206 +\0!\83\ 3\0\ 1|\ 3\0j\ 6\0\83\0\0\ 1t\a\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\b\0|\ 1\0\0d\ 6\0\83\ 3\0\ 1|\ 3\0j    \0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\v\0\0\0Ng\0\0\0\0\0\0\0\0g333333Ó?g\0\0\0\0\0\0è?g\0\0\0\0\0\0ð?i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 6\0\0\0(
7207 +\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0t  \0\0\0NORM_SEG2R   \0\0\0R
7208 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\1c\0\0\0R!\0\0\0R"\0\0\0t\ 4\0\0\0meshR\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\ f\0\0\0buildCU1DMesh_U»\0\0\0s\1a\0\0\0\0\ 1\12\ 1\18\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1
7209 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0$\0\0\0C\0\0\0s\90\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 2\0d\ 3\0g$\0}\ 1\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d        \0d
7210 +\0d\v\0d\f\0d\r\0d\ 5\0d\ e\0d\ f\0d\ 6\0d\10\0d\11\0d\12\0d       \0g\12\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d
7211 +\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\a\0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0d\b\0|\ 2\0d\ 4\0d\b\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\13\0|\ 2\0d\b\0d\ 6\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\13\0|\ 2\0d\ 6\0d\v\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\b\0|\ 2\0d\v\0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\b\0|\ 2\0d\ e\0d\14\0!\83\ 3\0\ 1|\ 3\0j\a\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 4\0|\ 4\0\0|\ 1\0d\14\0d
7212 +\0\83\ 3\0\ 1|\ 3\0j
7213 +\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\15\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?i\0\0\0\0i    \0\0\0i\a\0\0\0i\ 5\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\ 2\0\0\0i
7214 +\0\0\0i\v\0\0\0i\b\0\0\0i\ e\0\0\0i\ f\0\0\0i\11\0\0\0i\10\0\0\0i\r\0\0\0i\ 3\0\0\0i\12\0\0\0(\v\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R      \0\0\0R
7215 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\1c\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\1c\0\0\0build2DTargetMeshMergeNode_1Ê\0\0\0s\1e\0\0\0\0\ 1r\ 1<\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7216 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 6\0\0\0]\0\0\0C\0\0\0s\80\ 2\0\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 3\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 3\0d\ 1\0d\ 3\0d\ 1\0d\ 2\0d\ 3\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 2\0d\ 3\0d\ 1\0d\ 3\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0g]\0}\ 1\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d     \0d
7217 +\0d\v\0d\f\0d\r\0d\ e\0d\ 6\0d      \0d\ f\0d\10\0d
7218 +\0d\a\0d\ 6\0d\11\0d\12\0d\v\0d
7219 +\0d\13\0d\14\0d\ 6\0d\ e\0d\15\0d\11\0d
7220 +\0d\10\0d\16\0d\13\0d\b\0\0d
7221 +\0d\v\0d\17\0d\18\0d\19\0d\1a\0d      \0d\ f\0d\10\0d
7222 +\0d\18\0d\e\0d\1c\0d\19\0d\v\0d
7223 +\0d\13\0d\14\0d\1a\0d\19\0d\1d\0d\1e\0d
7224 +\0d\10\0d\16\0d\13\0d\19\0d\1f\0\0d\1d\0g@\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\a\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\v\0\83\ 1\0\ 1x:\0t\ 4\0d\15\0\83\ 1\0D],\0}\ 4\0|\ 3\0j\ 5\0t\ 6\0d\15\0|\ 2\0d\15\0|\ 4\0\14d\15\0|\ 4\0d!\0\17\14!\83\ 3\0\ 1q\16\ 2W|\ 3\0j\a\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j      \0|\ 1\0d"\0d\a\0\83\ 3\0\ 1|\ 3\0j
7225 +\0|\ 5\0\83\ 1\0\ 1|\ 3\0S(#\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0I@g\0\0\0\0\0\0i@i\0\0\0\0i\1d\0\0\0i\ 4\0\0\0i\ 3\0\0\0i     \0\0\0i
7226 +\0\0\0i\r\0\0\0i\f\0\0\0i\1c\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\v\0\0\0i\ e\0\0\0i\a\0\0\0i\ 6\0\0\0i\10\0\0\0i\ f\0\0\0i\b\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\16\0\0\0i\15\0\0\0i\14\0\0\0i\17\0\0\0i\19\0\0\0i\18\0\0\0i\1e\0\0\0i\1a\0\0\0i\ 1\0\0\0i\1f\0\0\0(\v\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\17\0\0\0R\ 6\0\0\0R\18\0\0\0R      \0\0\0R
7227 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 6\0\0\0R\1c\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\19\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\1c\0\0\0build3DTargetMeshMergeNode_1Û\0\0\0\0\0\0\0\ 1Q\ 1Q\ 1{\ 1`\ 1f\ 1\f\ 1\r\ 1\r\ 1\13\ 1&\ 1\ 4\ 1
7228 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\1a\0\0\0C\0\0\0\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 1\0d\ 4\0d\ 1\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0g\1a\0}\ 1\0d\ 5\0d\ 6\0d\a\0d\b\0d\b\0d\a\0d   \0d\a\0d
7229 +\0d     \0d\v\0d\f\0d\a\0d\ 6\0d\f\0d\r\0d
7230 +\0d\a\0d\ e\0d\ f\0d\10\0d\ e\0d\11\0d\ f\0g\18\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\12\0\83\ 1\0\ 1|\ 3\0j\ 3\0d   \0\83\ 1\0\ 1|\ 3\0j\ 4\0d\10\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0d\a\0|\ 2\0d\ 5\0d\a\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d\ 6\0|\ 2\0d\a\0d\f\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d\ 6\0|\ 2\0d\f\0d\10\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\a\0|\ 2\0d\10\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\a\0|\ 2\0d\13\0d\14\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d\ 6\0|\ 2\0d\14\0d\15\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d\ 6\0|\ 2\0d\15\0d\16\0!\83\ 3\0\ 1|\ 3\0j\b\0\83\0\0\ 1t     \0j\ 1\0\83\0\0}\ 4\0|\ 4\0j
7231 +\0|\ 1\0d\17\0d       \0\83\ 3\0\ 1|\ 3\0j\v\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\18\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?g333333û?i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i  \0\0\0i\f\0\0\0i
7232 +\0\0\0i\v\0\0\0t\ 5\0\0\0mergei\ e\0\0\0i\12\0\0\0i\15\0\0\0i\18\0\0\0i\r\0\0\0(\f\0\0\0R\ 2\0\0\0R\ 3\0\0\0t\a\0\0\0setNameR\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R       \0\0\0R
7233 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\1c\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\19\0\0\0build2DTargetMeshMerged_1í\0\0\0s(\0\0\0\0\ 26\ 1\1e\ 36\ 1\18\ 2\f\ 1\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7234 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\18\0\0\0C\0\0\0\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0g\12\0}\ 1\0d\ 4\0d\ 5\0d\ 6\0d\ 4\0d\ 6\0d\a\0d\a\0d\ 6\0d\b\0d\ 6\0d       \0d\b\0d\ 5\0d
7235 +\0d\ 6\0d
7236 +\0d\v\0d\ 6\0d\ 6\0d\v\0\0d\v\0d\f\0d        \0g\18\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\f\0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ 4\0d\ 5\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ 5\0d
7237 +\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d
7238 +\0d\r\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\r\0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ e\0d\ f\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ f\0d\10\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\10\0d\11\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\11\0d\12\0!\83\ 3\0\ 1|\ 3\0j\ 6\0\83\0\0\ 1t\a\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\b\0|\ 1\0d\r\0d\b\0\83\ 3\0\ 1|\ 3\0j       \0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\13\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i     \0\0\0i\f\0\0\0i\ f\0\0\0i\12\0\0\0i\15\0\0\0i\18\0\0\0(
7239 +\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\b\0\0\0R     \0\0\0R
7240 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\r\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build2DTargetMesh_2\a\ 1\0\0s$\0\0\0\0\ 1<\ 1N\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7241 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\b\0\0\0C\0\0\0\0\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 2\0d\ 3\0\83\ 1\0\ 1d\ 4\0d\ 2\0d\ 5\0d\ 6\0d\ 2\0d\ 5\0d\ 6\0d\ 3\0g\b\0}\ 2\0x:\0t\ 3\0d\ 3\0\83\ 1\0D],\0}\ 3\0|\ 1\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ 5\0|\ 3\0\14d\ 5\0|\ 3\0\14d\ 5\0\17!\83\ 3\0\ 1qJ\0W|\ 1\0j\ 6\0\83\0\0\ 1t\a\0j\ 1\0d\a\0d\b\0\0d
7242 +\0d\v\0g\ 5\0d\f\0d\ 2\0\83\ 3\0}\ 4\0|\ 1\0j\b\0|\ 4\0\83\ 1\0\ 1|\ 1\0S(\r\0\0\0Nt\f\0\0\01DSourceMeshi\ 1\0\0\0i\ 4\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 3\0\0\0g333333Ó?gffffffæ?gÍÌÌÌÌÌì?g\0\0\0\0\0\0ð?gìQ¸\1e\85ëñ?i\ 5\0\0\0(        \0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 5\0\0\0R\17\0\0\0R\ 6\0\0\0R'\0\0\0R      \0\0\0R
7243 +\0\0\0R\f\0\0\0(\ 5\0\0\0R\r\0\0\0R$\0\0\0R"\0\0\0R\19\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build1DSourceMesh_2\e\ 1\0\0s\14\0\0\0\0\ 1\12\ 1\r\ 1\1e\ 1\13\ 1&\ 1\ 4\ 1
7244 +\ 1$\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0
7245 +\0\0\0C\0\0\0s       \ 1\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 2\0d\ 3\0\83\ 1\0\ 1d\ 4\0d\ 2\0d\ 5\0d\ 6\0d\ 3\0d\a\0d\b\0d        \0d
7246 +\0d\v\0g
7247 +\0}\ 2\0|\ 1\0j\ 3\0t\ 4\0d\ 6\0|\ 2\0d\ 4\0d\ 6\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 5\0d\ 5\0|\ 2\0d\ 6\0d\b\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 4\0d\ 6\0|\ 2\0d\b\0d\v\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 5\0d\ 5\0|\ 2\0d\v\0d\f\0!\83\ 3\0\ 1|\ 1\0j\ 6\0\83\0\0\ 1d\r\0d\ e\0d\ f\0d\10\0d\11\0d\r\0d\12\0d\13\0d\10\0d\14\0g
7248 +\0}\ 3\0t\a\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\b\0|\ 3\0d\f\0d\ 2\0\83\ 3\0\ 1|\ 1\0j        \0|\ 4\0\83\ 1\0\ 1|\ 1\0S(\15\0\0\0Nt\b\0\0\01DMesh_3i\ 1\0\0\0i\ 4\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\ 5\0\0\0i\a\0\0\0i        \0\0\0i\b\0\0\0i
7249 +\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?g\9a\99\99\99\99\99é?g\0\0\0\0\0\0\14@g×£p=
7250\14@g\9a\99\99\99\99\99ñ?gffffffæ?g=
7251 +ףp=\15@(
7252 +\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 5\0\0\0R\ 6\0\0\0t       \0\0\0NORM_SEG3R'\0\0\0R      \0\0\0R
7253 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\r\0\0\0R$\0\0\0R"\0\0\0R!\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build1DTargetMesh_3'\ 1\0\0s\1a\0\0\0\0\ 1\12\ 1\r\ 1$\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7254 +\ 1$\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\14\0\0\0C\0\0\0s'\ 1\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 2\0d\ 3\0\83\ 1\0\ 1d\ 4\0d\ 2\0d\ 5\0d\ 6\0d\ 3\0d\a\0d\b\0d   \0d
7255 +\0d\v\0g
7256 +\0}\ 2\0|\ 1\0j\ 3\0t\ 4\0d\ 6\0|\ 2\0d\ 4\0d\ 6\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 5\0d\ 5\0|\ 2\0d\ 6\0d\b\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 4\0d\ 6\0|\ 2\0d\b\0d\v\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 5\0d\ 5\0|\ 2\0d\v\0d\f\0!\83\ 3\0\ 1|\ 1\0j\ 6\0\83\0\0\ 1d\r\0d\r\0d\ e\0d\ e\0d\ f\0d\ f\0d\10\0d\10\0d\11\0d\11\0d\r\0d\r\0d\12\0d\12\0d\13\0d\13\0d\10\0d\10\0d\14\0d\14\0g\14\0}\ 3\0t\a\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\b\0|\ 3\0d\f\0d\ 5\0\83\ 3\0\ 1|\ 1\0j    \0|\ 4\0\83\ 1\0\ 1|\ 1\0S(\15\0\0\0Nt\r\0\0\02DCurveMesh_3i\ 1\0\0\0i\ 4\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\ 5\0\0\0i\a\0\0\0i   \0\0\0i\b\0\0\0i
7257 +\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?g\9a\99\99\99\99\99é?g\0\0\0\0\0\0\14@g×£p=
7258\14@g\9a\99\99\99\99\99ñ?gffffffæ?g=
7259 +ףp=\15@(
7260 +\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 5\0\0\0R\ 6\0\0\0R3\0\0\0R'\0\0\0R     \0\0\0R
7261 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\r\0\0\0R$\0\0\0R"\0\0\0R!\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\18\0\0\0build2DCurveTargetMesh_36\ 1\0\0s\1a\0\0\0\0\ 1\12\ 1\r\ 1$\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7262 +\ 1B\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\04\0\0\0C\0\0\0sQ\ 2\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 2\0d\ 3\0\83\ 1\0\ 1d\ 4\0d\ 5\0d\ 2\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\ 4\0d\ 5\0d\ 6\0d\b\0d\a\0d\ 4\0d\ 5\0d\ 2\0d   \0d
7263 +\0d\v\0d\ 4\0d\ 5\0d\ 6\0d\a\0d      \0d\f\0d\ 2\0d\ 3\0d\ 4\0d\ 2\0d\ 5\0d\ 4\0d\a\0d\ 6\0d\ 5\0d\ 4\0d\a\0d\b\0d\ 6\0d\ 5\0d\ 4\0d\ 2\0d\ 5\0d\v\0d
7264 +\0d     \0d\ 4\0d\a\0d\ 6\0d\ 5\0d\ 3\0d\ 2\0d\f\0\0g4\0}\ 2\0|\ 1\0j\ 3\0t\ 4\0d\ 6\0|\ 2\0d\ 4\0d\ 6\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 5\0d\a\0|\ 2\0d\ 6\0d
7265 +\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 6\0d\b\0|\ 2\0d
7266 +\0d\r\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\a\0d    \0|\ 2\0d\r\0d\ e\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\b\0d\v\0|\ 2\0d\ e\0d\ f\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 4\0d\ 6\0|\ 2\0d\ f\0d\10\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 5\0d\a\0|\ 2\0d\10\0d\11\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\ 6\0d\b\0|\ 2\0d\11\0d\12\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\a\0d       \0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 1\0j\ 3\0t\b\0d\v\0|\ 2\0d\13\0d\14\0!\83\ 3\0\ 1|\ 1\0j   \0\83\0\0\ 1d\15\0d\15\0d\16\0d\15\0d\17\0d\16\0d\16\0d\16\0d\15\0d\16\0d\17\0d\18\0d\17\0d\15\0d\19\0d\17\0d\1a\0d\17\0d\16\0d\17\0d\15\0d\17\0g\16\0}\ 3\0t
7267 +\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\v\0|\ 3\0d\e\0d\ 2\0\83\ 3\0\ 1|\ 1\0j\f\0|\ 4\0\83\ 1\0\ 1|\ 1\0j\r\0\83\0\0\ 1|\ 1\0S(\1c\0\0\0Nt\b\0\0\02DMesh_3i\ 2\0\0\0i
7268 +\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i   \0\0\0i\f\0\0\0i\12\0\0\0i\1a\0\0\0i\1d\0\0\0i!\0\0\0i&\0\0\0i,\0\0\0i4\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0è?g\0\0\0\0\0\0Ð?i\v\0\0\0(\ e\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\b\0\0\0R\a\0\0\0\0\0\0\0\0\0NORM_TRI6t
7269 +\0\0\0NORM_QUAD8R \0\0\0R
7270 +\0\0\0R\v\0\0\0R\f\0\0\0t\15\0\0\0checkConsistencyLight(\ 5\0\0\0R\r\0\0\0R$\0\0\0R"\0\0\0R!\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build2DTargetMesh_3E\ 1\0\0s(\0\0\0\0\ 1\12\ 1\r\ 1¢\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7271 +\ 1H\ 1\f\ 1\13\ 1\r\ 1
7272 +\ 1c\ 1\0\0\0\ 5\0\0\0\14\0\0\0C\0\0\0s`\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0g\14\0}\ 1\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\a\0d\ 6\0d\b\0d\ 6\0d     \0d
7273 +\0d\v\0d\f\0d\ 6\0d\ 5\0d\f\0d\r\0d   \0d\ 6\0g\12\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d
7274 +\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\ 6\0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ 4\0d\ 5\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\b\0|\ 2\0d\ 5\0d\v\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 6\0d\b\0|\ 2\0d\v\0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ e\0d\ f\0!\83\ 3\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 5\0|\ 2\0d\ f\0d\10\0!\83\ 3\0\ 1|\ 3\0j\a\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 4\0|\ 4\0\0|\ 1\0d\ e\0d
7275 +\0\83\ 3\0\ 1|\ 3\0j
7276 +\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\11\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?i\0\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\ 2\0\0\0i\a\0\0\0i\b\0\0\0i    \0\0\0i
7277 +\0\0\0i\ e\0\0\0i\12\0\0\0(\v\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\a\0\0\0R\b\0\0\0\0\0\0R
7278 +\0\0\0R\v\0\0\0R\f\0\0\0(\ 5\0\0\0R\r\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build2DTargetMesh_4[\ 1\0\0s\1e\0\0\0\0\ 1B\ 1<\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7279 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\13\0\0\0       \0\0\0C\0\0\0s\96\ 3\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0d\ 1\0\83\ 1\0\ 1t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0\83\ 1\0\ 1d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 5\0}\ 3\0d\b\0\0d
7280 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0g   \0}\ 4\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0g        \0}\ 5\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0g\ 5\0}\ 6\0d\1f\0\0d!\0d"\0d#\0g\ 5\0}\a\0t\ 3\0j\ 4\0\83\0\0}\b\0|\b\0j\ 5\0|\ 3\0d$\0d%\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0\0|      \0j\ 5\0|\ 4\0d&\0d%\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0}
7281 +\0|
7282 +\0j\ 5\0|\ 5\0d&\0d%\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0}\v\0|\v\0j\ 5\0|\ 6\0d$\0d%\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0}\f\0|\f\0j\ 5\0|\a\0d$\0d%\0\83\ 3\0\ 1|\b\0j\ 2\0d'\0\83\ 1\0\ 1|  \0j\ 2\0d(\0\83\ 1\0\ 1|
7283 +\0j\ 2\0d)\0\83\ 1\0\ 1|\v\0j\ 2\0d*\0\83\ 1\0\ 1|\f\0j\ 2\0d+\0\83\ 1\0\ 1|\b\0j\ 6\0d,\0d-\0\83\ 2\0\ 1\0j\ 6\0d,\0d.\0\83\ 2\0\ 1|
7284 +\0j\ 6\0d,\0d/\0\83\ 2\0\ 1|\v\0j\ 6\0d,\0d0\0\83\ 2\0\ 1|\f\0j\ 6\0d,\0d1\0\83\ 2\0\ 1t\a\0j\ 4\0t\b\0t       \0\83\ 2\0}\r\0|\r\0j
7285 +\0|\ 1\0\83\ 1\0\ 1|\r\0j\v\0|\b\0\83\ 1\0\ 1|\r\0j\f\0d\ e\0d$\0d2\0\83\ 3\0\ 1|\r\0j\ 2\0d3\0\83\ 1\0\ 1t\a\0j\ 4\0t\r\0t\ e\0\83\ 2\0}\ e\0|\ e\0j
7286 +\0|\ 1\0\83\ 1\0\ 1|\ e\0j\ f\0|        \0|
7287 +\0g\ 2\0\83\ 1\0\ 1|\ e\0j\10\0d4\0d5\0d6\0\83\ 3\0\ 1|\ e\0j\11\0d7\0d&\0d8\0\83\ 3\0\ 1|\ e\0j\ 2\0d9\0\83\ 1\0\ 1t\a\0j\ 4\0t\b\0t\12\0\83\ 2\0}\ f\0|\ f\0j
7288 +\0|\ 2\0\83\ 1\0\ 1|\ f\0j\v\0|\v\0\83\ 1\0\ 1|\ f\0j\f\0d7\0d:\0d;\0\83\ 3\0\ 1|\ f\0j\11\0d<\0d=\0d>\0\83\ 3\0\ 1|\ f\0j\ 2\0d?\0\83\ 1\0\ 1t\a\0j\ 4\0t\b\0t     \0\83\ 2\0}\10\0|\10\0j
7289 +\0|\ 1\0\83\ 1\0\ 1|\10\0j\v\0|\v\0\83\ 1\0\ 1|\10\0j\f\0d@\0dA\0dB\0\83\ 3\0\ 1|\10\0j\ 2\0dC\0\83\ 1\0\ 1t\a\0j\ 4\0t\b\0t\13\0\83\ 2\0}\11\0|\11\0j
7290 +\0|\ 2\0\83\ 1\0\ 1|\11\0j\v\0|\f\0\83\ 1\0\ 1|\11\0j\ 2\0dD\0\83\ 1\0\ 1t\14\0j\ 4\0|\r\0|\ e\0|\ f\0|\10\0|\11\0g\ 5\0\83\ 1\0}\12\0|\12\0S(E\0\0\0Nt\ 2\0\0\0m1t\ 2\0\0\0m2gffffffæ¿g\0\0\0\0\0\0ð¿g\0\0\0\0\0\0\0Àg\0\0\0\0\0\0\bÀg\0\0\0\0\0\0\10Àg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@g\9a\99\99\99\99\99¹?g\9a\99\99\99\99\99É?g333333Ó?g\9a\99\99\99\99\99Ù?g\0\0\0\0\0@e@g\0\0\0\0\0`e@g\0\0\0\0\0\80e@g\0\0\0\0\0 e@g\0\0\0\0\0Àe@g33333Ce@gfffffFe@g\9a\99\99\99\99Ie@gÍÌÌÌÌLe@g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\18@g\0\0\0\0\0\0\1c@g\0\0\0\0\0\0 @g\0\0\0\0\0\0"@g\0\0\0\0\0\0.@g\0\0\0\0\0\00@g\0\0\0\0\0\01@g\0\0\0\0\0\02@g\0\0\0\0\0\03@i\ 5\0\0\0i\ 1\0\0\0i   \0\0\0t\ 2\0\0\0d0t\ 2\0\0\0d1t\ 4\0\0\0d1_1t\ 2\0\0\0d2t\ 2\0\0\0d4i\0\0\0\0t\ 2\0\0\0c1t\ 2\0\0\0c6t\ 2\0\0\0c9t\ 2\0\0\0c5t\ 2\0\0\0c7i\ 6\0\0\0t\ 2\0\0\0f0gffffffæ?i\a\0\0\0i\b\0\0\0g333333ó?i
7291 +\0\0\0t\ 2\0\0\0f1i\v\0\0\0i\f\0\0\0g\0\0\0\0\0\0ø?i\r\0\0\0i\ e\0\0\0t\ 2\0\0\0f2g333333û?i\ f\0\0\0i\10\0\0\0t\ 2\0\0\0f3t\ 2\0\0\0f4(\15\0\0\0R\ 1\0\0\0R\12\0\0\0R-\0\0\0R
7292 +\0\0\0R\ 3\0\0\0R\v\0\0\0t\12\0\0\0setInfoOnComponentt\16\0\0\0MEDCouplingFieldDoublet\b\0\0\0ON_CELLSt\b\0\0\0ONE_TIMEt\a\0\0\0setMesht\b\0\0\0setArrayt\a\0\0\0setTimet\b\0\0\0ON_NODESt\v\0\0\0LINEAR_TIMEt   \0\0\0setArrayst\f\0\0\0setStartTimet
7293 +\0\0\0setEndTimet\16\0\0\0CONST_ON_TIME_INTERVALt\a\0\0\0NO_TIMEt\16\0\0\0MEDCouplingMultiFields(\13\0\0\0R\r\0\0\0R=\0\0\0R>\0\0\0t\ 5\0\0\0vals0t\ 5\0\0\0vals1t\a\0\0\0vals1_1t\ 5\0\0\0vals2t\ 5\0\0\0vals4R?\0\0\0R@\0\0\0RA\0\0\0RB\0\0\0RC\0\0\0RI\0\0\0RJ\0\0\0RK\0\0\0RL\0\0\0RM\0\0\0R$\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\12\0\0\0buildMultiFields_1l\ 1\0\0sr\0\0\0\0\ 1\f\ 1\r\ 1\f\ 1\r\ 1\15\ 1!\ 1!\ 1\15\ 1\15\ 1\f\ 1\13\ 1\f\ 1\13\ 1\f\ 1\13\ 1\f\ 1\13\ 1\f\ 1\13\ 1\r\0\r\0\r\0\r\0\r\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\12\ 1\r\ 1\r\ 1\13\ 1\r\ 1\12\ 1\r\ 1\13\ 1\13\ 1\13\ 1\r\ 1\12\ 1\r\ 1\r\ 1\13\ 1\13\ 1\r\ 1\12\ 1\r\ 1\r\ 1\13\ 1\r\ 1\12\ 1\r\ 1\r\ 1\r\ 1\1e\ 1c\ 1\0\0\0\12\0\0\0\ 5\0\0\0C\0\0\0so\ 3\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0d\ 1\0\83\ 1\0\ 1t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0\83\ 1\0\ 1d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 5\0}\ 3\0d\b\0d  \0d
7294 +\0d\v\0d\f\0g\ 5\0}\ 4\0d\r\0d\ e\0d\ f\0d\10\0d\11\0g\ 5\0}\ 5\0d\12\0d\13\0d\14\0d\15\0d\16\0g\ 5\0}\ 6\0d\17\0d\18\0d\19\0d\1a\0d\e\0g\ 5\0}\a\0t\ 3\0j\ 4\0\83\0\0}\b\0|\b\0j\ 5\0|\ 3\0d\1c\0d\1d\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0}  \0|      \0j\ 5\0|\ 4\0d\1c\0d\1d\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0}
7295 +\0|
7296 +\0j\ 5\0|\ 5\0d\1c\0d\1d\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0}\v\0|\v\0j\ 5\0|\ 6\0d\1c\0d\1d\0\83\ 3\0\ 1t\ 3\0j\ 4\0\83\0\0}\f\0|\f\0j\ 5\0|\a\0d\1c\0d\1d\0\83\ 3\0\ 1|\b\0j\ 2\0d\1e\0\83\ 1\0\ 1|  \0j\ 2\0d\1f\0\83\ 1\0\ 1|
7297 +\0j\ 2\0\0\83\ 1\0\ 1|\v\0j\ 2\0d!\0\83\ 1\0\ 1|\f\0j\ 2\0d"\0\83\ 1\0\ 1|\b\0j\ 6\0d#\0d$\0\83\ 2\0\ 1\0j\ 6\0d#\0d%\0\83\ 2\0\ 1|
7298 +\0j\ 6\0d#\0d&\0\83\ 2\0\ 1|\v\0j\ 6\0d#\0d'\0\83\ 2\0\ 1|\f\0j\ 6\0d#\0d(\0\83\ 2\0\ 1t\a\0j\ 4\0t\b\0t       \0\83\ 2\0}\r\0|\r\0j
7299 +\0|\ 1\0\83\ 1\0\ 1|\r\0j\v\0|\b\0\83\ 1\0\ 1|\r\0j\f\0d)\0d\1c\0d*\0\83\ 3\0\ 1|\r\0j\ 2\0d+\0\83\ 1\0\ 1t\a\0j\ 4\0t\b\0t\r\0\83\ 2\0}\ e\0|\ e\0j
7300 +\0|\ 1\0\83\ 1\0\ 1|\ e\0j\ e\0|        \0|
7301 +\0g\ 2\0\83\ 1\0\ 1|\ e\0j\ f\0d,\0d-\0d.\0\83\ 3\0\ 1|\ e\0j\10\0d/\0d0\0d1\0\83\ 3\0\ 1|\ e\0j\ 2\0d2\0\83\ 1\0\ 1t\a\0j\ 4\0t\b\0t\11\0\83\ 2\0}\ f\0|\ f\0j
7302 +\0|\ 2\0\83\ 1\0\ 1|\ f\0j\v\0|\v\0\83\ 1\0\ 1|\ f\0j\f\0d/\0d3\0d4\0\83\ 3\0\ 1|\ f\0j\10\0d5\0d6\0d7\0\83\ 3\0\ 1|\ f\0j\ 2\0d8\0\83\ 1\0\ 1t\a\0j\ 4\0t\b\0t     \0\83\ 2\0}\10\0|\10\0j
7303 +\0|\ 1\0\83\ 1\0\ 1|\10\0j\v\0|\v\0\83\ 1\0\ 1|\10\0j\f\0d9\0d:\0d;\0\83\ 3\0\ 1|\10\0j\ 2\0d<\0\83\ 1\0\ 1t\a\0j\ 4\0t\b\0t\12\0\83\ 2\0}\11\0|\11\0j
7304 +\0|\ 2\0\83\ 1\0\ 1|\11\0j\v\0|\f\0\83\ 1\0\ 1|\11\0j\ 2\0d=\0\83\ 1\0\ 1|\r\0|\ e\0|\ f\0|\10\0|\11\0g\ 5\0S(>\0\0\0NR=\0\0\0R>\0\0\0gffffffæ¿g\0\0\0\0\0\0ð¿g\0\0\0\0\0\0\0Àg\0\0\0\0\0\0\bÀg\0\0\0\0\0\0\10Àg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@g\0\0\0\0\0@e@g\0\0\0\0\0`e@g\0\0\0\0\0\80e@g\0\0\0\0\0 e@g\0\0\0\0\0Àe@g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\18@g\0\0\0\0\0\0\1c@g\0\0\0\0\0\0 @g\0\0\0\0\0\0"@g\0\0\0\0\0\0.@g\0\0\0\0\0\00@g\0\0\0\0\0\01@g\0\0\0\0\0\02@g\0\0\0\0\0\03@i\ 5\0\0\0i\ 1\0\0\0R?\0\0\0R@\0\0\0RA\0\0\0RB\0\0\0RC\0\0\0i\0\0\0\0RD\0\0\0RE\0\0\0RF\0\0\0RG\0\0\0RH\0\0\0g\9a\99\99\99\99\99É?i\ 6\0\0\0RI\0\0\0gffffffæ?i\a\0\0\0i\b\0\0\0g333333ó?i        \0\0\0i
7305 +\0\0\0RJ\0\0\0i\v\0\0\0i\f\0\0\0g\0\0\0\0\0\0ø?i\r\0\0\0i\ e\0\0\0RK\0\0\0g333333û?i\ f\0\0\0i\10\0\0\0RL\0\0\0RM\0\0\0(\13\0\0\0R\ 1\0\0\0R\12\0\0\0R-\0\0\0R
7306 +\0\0\0R\ 3\0\0\0R\v\0\0\0RN\0\0\0RO\0\0\0RP\0\0\0RQ\0\0\0RR\0\0\0RS\0\0\0RT\0\0\0RV\0\0\0RW\0\0\0RX\0\0\0RY\0\0\0RZ\0\0\0R[\0\0\0(\12\0\0\0R\r\0\0\0R=\0\0\0R>\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Ra\0\0\0R?\0\0\0R@\0\0\0RA\0\0\0RB\0\0\0RC\0\0\0RI\0\0\0RJ\0\0\0RK\0\0\0RL\0\0\0RM\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\12\0\0\0buildMultiFields_2£\ 1\0\0sp\0\0\0\0\ 1\f\ 1\r\ 1\f\ 1\r\ 1\15\ 1\15\ 1\15\ 1\15\ 1\15\ 1\f\ 1\13\ 1\f\ 1\13\ 1\f\ 1\13\ 1\f\ 1\13\ 1\f\ 1\13\ 1\r\0\r\0\r\0\r\0\r\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\12\ 1\r\ 1\r\ 1\13\ 1\r\ 1\12\ 1\r\ 1\13\ 1\13\ 1\13\ 1\r\ 1\12\ 1\r\ 1\r\ 1\13\ 1\13\ 1\r\ 1\12\ 1\r\ 1\r\ 1\13\ 1\r\ 1\12\ 1\r\ 1\r\ 1\r\ 1c\ 1\0\0\0\ 4\0\0\0\ 6\0\0\0C\0\0\0s\8f\0\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0t\ 2\0j\ 3\0\83\0\0}\ 2\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 2\0g\ 5\0}\ 3\0|\ 1\0j\ 4\0d\ 4\0\83\ 1\0\ 1|\ 1\0j\ 5\0t\ 6\0d\ 4\0|\ 3\0d\ 3\0d\ 4\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\a\0d\ 5\0|\ 3\0d\ 4\0d\ 6\0!\83\ 3\0\ 1|\ 1\0j\b\0\83\0\0\ 1|\ 1\0j      \0|\ 2\0\83\ 1\0\ 1|\ 1\0S(\a\0\0\0Nt\v\0\0\0Multi1DMeshi\ 1\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0(
7307 +\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 1\0\0\0t\1a\0\0\0buildCoordsForMultiTypes_1R\ 5\0\0\0R\ 6\0\0\0R'\0\0\0R3\0\0\0\0\0\0R\f\0\0\0(\ 4\0\0\0R\1c\0\0\0R(\0\0\0t\ 3\0\0\0cooR"\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build1DMultiTypes_1Ù\ 1\0\0s\12\0\0\0\0\ 1\12\ 1\f\ 1\15\ 1\r\ 1\1a\ 1\1a\ 1
7308 +\ 1\r\ 1c\ 1\0\0\0\ 4\0\0\0\15\0\0\0C\0\0\0\0\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0t\ 2\0j\ 3\0\83\0\0}\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d    \0d
7309 +\0d\v\0d\f\0d       \0d
7310 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0g\15\0}\ 3\0|\ 1\0j\ 4\0d\ 4\0\83\ 1\0\ 1|\ 1\0j\ 5\0t\ 6\0d\ 3\0|\ 3\0\0d\ 3\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\a\0d\ 6\0|\ 3\0d\ 3\0d
7311 +\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\b\0d\ 4\0|\ 3\0d
7312 +\0d\ e\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t       \0d\b\0|\ 3\0d\ e\0d\11\0!\83\ 3\0\ 1|\ 1\0j
7313 +\0\83\0\0\ 1|\ 1\0j\v\0|\ 2\0\83\ 1\0\ 1|\ 1\0S(\12\0\0\0Nt\v\0\0\0Multi2DMeshi\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i\0\0\0\0i  \0\0\0i
7314 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\15\0\0\0(\f\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 1\0\0\0Re\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\b\0\0\0R8\0\0\0R\a\0\0\0R9\0\0\0R      \0\0\0R\f\0\0\0(\ 4\0\0\0R\1c\0\0\0R(\0\0\0Rf\0\0\0R"\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build2DMultiTypes_1ä\ 1\0\0s\16\0\0\0\0\ 1\12\ 1\f\ 1E\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7315 +\ 1\r\ 1c\ 1\0\0\0\ 4\0\0\0Q\0\0\0C\0\0\0s\ f\ 2\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0t\ 2\0j\ 3\0\83\0\0}\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0\0d
7316 +\0d\v\0d\f\0d\ 3\0d\r\0d\ e\0d\ f\0d\10\0d\ 3\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\ 3\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\ 3\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0d%\0d&\0d\ 3\0d\ f\0d\ e\0d\r\0d'\0d(\0d)\0d*\0d\ 3\0d\ f\0d\ e\0d\r\0d'\0d(\0d)\0d*\0d\14\0d\13\0d\12\0d\11\0d+\0d,\0d-\0d.\0d/\0d0\0d1\0d2\0gQ\0}\ 3\0|\ 1\0j\ 4\0d3\0\83\ 1\0\ 1|\ 1\0j\ 5\0t\ 6\0d4\0|\ 3\0d\ 3\0d4\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\a\0d\ e\0|\ 3\0d4\0d\12\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\b\0d5\0|\ 3\0d\12\0d\a\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t       \0d\13\0|\ 3\0d\a\0d\e\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t
7317 +\0d6\0|\ 3\0d\e\0d!\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\v\0d\11\0|\ 3\0d!\0d0\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\f\0d3\0|\ 3\0d0\0d7\0!\83\ 3\0\ 1|\ 1\0j\ 5\0t\r\0d\b\0|\ 3\0d7\0d8\0!\83\ 3\0\ 1|\ 1\0j\ e\0\83\0\0\ 1|\ 1\0j\ f\0|\ 2\0\83\ 1\0\ 1|\ 1\0S(9\0\0\0Nt\v\0\0\0Multi3DMeshi\ 3\0\0\0i\0\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\v\0\0\0i
7318 +\0\0\0i   \0\0\0i\19\0\0\0i\ f\0\0\0i\ e\0\0\0i\r\0\0\0i\f\0\0\0i\1a\0\0\0i\e\0\0\0i\1c\0\0\0i\1d\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i&\0\0\0i'\0\0\0i(\0\0\0i)\0\0\0i*\0\0\0i+\0\0\0i,\0\0\0i-\0\0\0i.\0\0\0i/\0\0\0i0\0\0\0i1\0\0\0i2\0\0\0i3\0\0\0i4\0\0\0i5\0\0\0i6\0\0\0i7\0\0\0i\b\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i=\0\0\0iQ\0\0\0(\10\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 1\0\0\0Re\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\e\0\0\0t\f\0\0\0NORM_TETRA10t
7319 +\0\0\0NORM_PYRA5t\v\0\0\0NORM_PYRA13t\v\0\0\0NORM_PENTA6t\f\0\0\0NORM_PENTA15R\18\0\0\0t\v\0\0\0NORM_HEXA20R   \0\0\0R\f\0\0\0(\ 4\0\0\0R\1c\0\0\0R(\0\0\0Rf\0\0\0R"\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0build3DMultiTypes_1ñ\ 1\0\0s,\0\0\0\0\ 1\12\ 1\f\ 1\f\ 1\1e\ 1\ f\ 1'\ 1\12\ 1-\ 1\18\ 1B\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7320 +\ 1\r\ 1c\ 1\0\0\0\ 3\0\0\0¨\0\0\0C\0\0\0sQ\ 2\0\0t\0\0j\ 1\0\83\0\0}\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 1\0d\ 4\0d\ 5\0d\ 1\0d\ 6\0d\a\0d\ 1\0d\ 3\0d\ 4\0d\ 1\0d\b\0d\ 5\0d\ 1\0\0d\ 2\0d\ 1\0d\ 1\0d     \0d\ 1\0d   \0d      \0d\ 1\0d   \0d\ 1\0d\ 1\0d\ 1\0d\ 4\0d\ 1\0d\ 4\0d    \0d\ 1\0d   \0d\ 4\0d\ 1\0d\ 4\0d\ 1\0d\ 1\0d\ 1\0d\ 6\0d\ 1\0d
7321 +\0d
7322 +\0d\ 1\0d\v\0d
7323 +\0d
7324 +\0d\ 1\0d
7325 +\0d\ 1\0d\a\0d\b\0d\ 1\0d\a\0d\a\0d\ 1\0d\f\0d\a\0d\a\0d\f\0d\b\0d\a\0d\r\0d
7326 +\0d\a\0d\ 4\0d\ 4\0d\ 4\0d
7327 +\0d\ 3\0d\ 3\0d
7328 +\0d
7329 +\0d\ 3\0d\ 3\0d
7330 +\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 1\0d
7331 +\0d\ 1\0d\ 4\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 6\0d\ 1\0d
7332 +\0d\ 6\0d
7333 +\0d\ 1\0d\ 6\0d\ 1\0d\a\0d\ 1\0d\a\0d\a\0d\ 1\0d\a\0d\ 1\0d\ 1\0d\ 1\0d\a\0d\ 6\0d\a\0d\a\0d\ 6\0d\a\0d\ 1\0d\ 6\0d\ 1\0d\ 1\0d
7334 +\0d\ 1\0d
7335 +\0d
7336 +\0d
7337 +\0d\ 1\0d
7338 +\0d\ 1\0d\ 1\0d       \0d\ 1\0d   \0d      \0d      \0d      \0d      \0d      \0d\ 1\0d   \0d\ 1\0d\ 4\0d        \0d\ 4\0d   \0d      \0d      \0d\ 4\0d   \0d\ 4\0d\ 1\0d        \0d\ 1\0d\ 1\0d\ 4\0d\ 1\0d  \0d\ 4\0d   \0d      \0d\ 4\0d   \0d\ 1\0d\ 4\0\0}\ 2\0|\ 1\0j\ 2\0|\ 2\0d\ e\0d\ f\0\83\ 3\0\ 1|\ 1\0j\ 3\0d\10\0d\11\0\83\ 2\0\ 1|\ 1\0j\ 3\0d\12\0d\13\0\83\ 2\0\ 1|\ 1\0j\ 3\0d\14\0d\15\0\83\ 2\0\ 1|\ 1\0S(\16\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\ 4@g\0\0\0\0\0\0\18@g\0\0\0\0\0\0ø?g\0\0\0\0\0\0\12@g\0\0\0\0\0\0\10@g\0\0\0\0\0\0\b@gÍÌÌÌÌÌô?gÍÌÌÌÌÌä?g333333\ 1@i8\0\0\0i\ 3\0\0\0i\0\0\0\0s\ 6\0\0\0X (cm)i\ 1\0\0\0s\ 6\0\0\0Y (cm)i\ 2\0\0\0s\ 6\0\0\0Z (cm)(\ 4\0\0\0R
7339 +\0\0\0R\ 3\0\0\0R\v\0\0\0RN\0\0\0(\ 3\0\0\0R\1c\0\0\0R!\0\0\0t\ 4\0\0\0data(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyRe\0\0\0    \ 2\0\0s\12\0\0\0\0\ 1\f\ 1ÿ\0ÿ\0\0\ 1\13\ 1\10\ 1\10\ 1\10\ 1c\ 1\0\0\0\ 6\0\0\0Q\0\0\0C\0\0\0sU\ 2\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0t\ 2\0j\ 1\0\83\0\0}\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 3\0d\ 5\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 5\0d\ 4\0d\ 3\0d\ 3\0d\ 5\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 5\0d\ 5\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 5\0d\ 4\0d\ 4\0d\ 3\0d\ 5\0d\ 4\0d\ 4\0d\ 5\0d\ 4\0d\ 5\0d\ 5\0d\ 4\0d\ 3\0d\ 3\0d\ 5\0d\ 4\0d\ 3\0d\ 5\0d\ 5\0d\ 3\0d\ 5\0d\ 3\0d\ 4\0d\ 5\0d\ 4\0d\ 4\0d\ 5\0d\ 5\0d\ 4\0d\ 5\0d\ 3\0d\ 5\0d\ 5\0d\ 4\0d\ 5\0d\ 5\0d\ 5\0d\ 5\0d\ 5\0gQ\0}\ 3\0|\ 2\0j\ 3\0|\ 3\0d\ 6\0d\ 2\0\83\ 3\0\ 1d\ 2\0d\a\0d\b\0d    \0d
7340 +\0d\v\0d\f\0d\r\0d    \0d\b\0d\ e\0d\ f\0d\r\0d\f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\ 2\0d\a\0d\b\0d    \0d\15\0d\14\0d\16\0d\17\0d  \0d\b\0d\ e\0d\ f\0d\a\0d\18\0d\19\0d\b\0d\v\0d\1a\0d\e\0d\f\0d\b\0d\19\0d\1c\0d\ e\0d\f\0d\e\0d\1d\0d\10\0d\13\0d\1e\0d\1f\0d\14\0d\a\0d\18\0d\19\0d\b\0d\14\0d\1f\0\0d\16\0d\b\0d\19\0d\1c\0d\ e\0g@\0}\ 4\0|\ 1\0j\ 4\0d\17\0\83\ 1\0\ 1x:\0t\ 5\0d\17\0\83\ 1\0D],\0}\ 5\0|\ 1\0j\ 6\0t\a\0d\17\0|\ 4\0d\17\0|\ 5\0\14d\17\0|\ 5\0d\r\0\17\14!\83\ 3\0\ 1q
7341 +\ 2W|\ 1\0j\b\0\83\0\0\ 1|\ 1\0j       \0|\ 2\0\83\ 1\0\ 1|\ 1\0S(!\0\0\0Nt     \0\0\0Hexa8Onlyi\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?i\e\0\0\0i\f\0\0\0i\r\0\0\0i\ 4\0\0\0i\0\0\0\0i  \0\0\0i
7342 +\0\0\0i\ 1\0\0\0i\ e\0\0\0i\ 5\0\0\0i\v\0\0\0i\ 2\0\0\0i\ 6\0\0\0i\ f\0\0\0i\10\0\0\0i\a\0\0\0i\11\0\0\0i\b\0\0\0i\15\0\0\0i\16\0\0\0i\12\0\0\0i\13\0\0\0i\17\0\0\0i\14\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0(
7343 +\0\0\0R\ 2\0\0\0R\ 3\0\0\0R
7344 +\0\0\0R\v\0\0\0R\ 5\0\0\0R\17\0\0\0R\ 6\0\0\0R\18\0\0\0R  \0\0\0R\f\0\0\0(\ 6\0\0\0R\1c\0\0\0R(\0\0\0Rf\0\0\0R!\0\0\0R"\0\0\0R\19\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\10\0\0\0buildHexa8Mesh_1\12\ 2\0\0s&\0\0\0\0\ 1\12\ 1\f\ 1ù\ 1\13\ 1\18\ 1\18\ 1\18\ 1\18\ 1\18\ 1\18\ 1\18\ 1\1e\ 1\r\ 1\13\ 1&\ 1\ 4\ 1
7345 +\ 1\r\ 1c\ 1\0\0\0\b\0\0\0J\0\0\0C\0\0\0s\82\ 3\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0t\0\0j\ 1\0d\ 1\0d\ 3\0\83\ 2\0}\ 2\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 5\0d\ 6\0d\ 4\0d\ 5\0d\ 4\0d\ 6\0d\ 5\0d\a\0d\ 4\0d\ 5\0d\ 4\0d\a\0d\ 5\0d\ 5\0d\ 5\0d\ 6\0d\b\0d\ 5\0d\ 6\0d\b\0d\b\0d\ 6\0d\ 5\0d\b\0d\ 6\0d\ 5\0d\ 5\0\0d\b\0d\ 5\0d        \0d\b\0d\b\0d        \0d\ 5\0d\b\0d        \0d\ 5\0d\ 5\0d
7346 +\0d\b\0d\ 5\0d
7347 +\0d\b\0d\b\0d
7348 +\0d\ 5\0d\b\0d
7349 +\0d\ 4\0d\ 4\0d\v\0g9\0}\ 3\0d\f\0d\r\0d\ 3\0d\ e\0d\f\0d\r\0d\ 2\0d\ 3\0d\f\0d\r\0d\ f\0d\ 2\0d\f\0d\r\0d\ e\0d\ f\0d\r\0d\10\0d\ 2\0d\ 3\0d\r\0d\11\0d\ f\0d\ 2\0d\r\0d\12\0d\ e\0d\ f\0d\r\0d\13\0d\ 3\0d\ e\0d\r\0d\10\0d\ 3\0d\13\0d\r\0d\11\0d\ 2\0d\10\0d\r\0d\12\0d\ f\0d\11\0d\r\0d\13\0d\ e\0d\12\0d\10\0d\11\0d\12\0d\13\0d\r\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\10\0d\11\0d\12\0d\13\0d\14\0d\17\0d\16\0d\15\0d\19\0d\1a\0d\e\0d\1c\0gJ\0}\ 4\0t\ 2\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j\ 3\0|\ 3\0d\1d\0d\ 2\0\83\ 3\0\ 1|\ 1\0j\ 4\0|\ 5\0\83\ 1\0\ 1|\ 2\0j\ 4\0|\ 5\0\83\ 1\0\ 1|\ 1\0j\ 5\0d\16\0\83\ 1\0\ 1x:\0t\ 6\0d\e\0\83\ 1\0D],\0}\ 6\0|\ 1\0j\a\0t\b\0d\ f\0|\ 4\0d\ f\0|\ 6\0\14d\ f\0|\ 6\0\14d\ f\0\17!\83\ 3\0\ 1q\f\ 2W|\ 1\0j\a\0\0d\ e\0|\ 4\0d\1e\0d\1f\0!\83\ 3\0\ 1|\ 1\0j\a\0t       \0d\ e\0|\ 4\0d\1f\0\0!\83\ 3\0\ 1|\ 1\0j\a\0t
7350 +\0d\12\0|\ 4\0\0d!\0!\83\ 3\0\ 1|\ 1\0j\a\0t
7351 +\0d\12\0|\ 4\0d!\0d"\0!\83\ 3\0\ 1|\ 1\0j\v\0\83\0\0\ 1d\f\0d\ e\0d\r\0d\14\0d\18\0d\15\0d\12\0d\11\0d\ f\0d\13\0d\ e\0d\ 3\0d\e\0d\12\0d\13\0d\1c\0d\10\0d\11\0d\12\0d\13\0g\14\0}\a\0|\ 2\0j\ 5\0d\10\0\83\ 1\0\ 1x:\0t\ 6\0d\ f\0\83\ 1\0D],\0}\ 6\0|\ 2\0j\a\0t\f\0d\ 2\0|\a\0d\ 2\0|\ 6\0\14d\ 2\0|\ 6\0\14d\ 2\0\17!\83\ 3\0\ 1q
7352 +\ 3W|\ 2\0j\a\0t\r\0d\ f\0|\a\0d\e\0d\16\0!\83\ 3\0\ 1|\ 2\0j\a\0t\r\0d\ f\0|\a\0d\16\0d#\0!\83\ 3\0\ 1|\ 2\0j\v\0\83\0\0\ 1|\ 1\0|\ 2\0g\ 2\0S($\0\0\0Ns
7353 +\0\0\0Pointe.medi\ 3\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\0Àg\0\0\0\0\0\0ð¿g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@g\0\0\0\0\0\0\14@i\0\0\0\0i\ 1\0\0\0i\ 5\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i    \0\0\0i\ e\0\0\0i\11\0\0\0i\10\0\0\0i\ f\0\0\0i\12\0\0\0i
7354 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\13\0\0\0i0\0\0\0i5\0\0\0i:\0\0\0iB\0\0\0iJ\0\0\0i\14\0\0\0(\ e\0\0\0R\ 2\0\0\0R\ 3\0\0\0R
7355 +\0\0\0R\v\0\0\0R\f\0\0\0R\ 5\0\0\0R\17\0\0\0R\ 6\0\0\0R\e\0\0\0Rl\0\0\0R\18\0\0\0R   \0\0\0R\b\0\0\0R\a\0\0\0(\b\0\0\0R\1c\0\0\0R(\0\0\0t\ 5\0\0\0mesh2R!\0\0\0R"\0\0\0Rf\0\0\0R\19\0\0\0R#\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\r\0\0\0buildPointe_1'\ 2\0\0s4\0\0\0\0\ 1\12\ 1\12\ 1±\ 1ä\ 1\f\ 1\13\ 1\r\ 1\r\ 1\r\ 1\13\ 1&\ 1\ 4\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
7356 +\ 2B\ 1\r\ 1\13\ 1&\ 1\ 4\ 1\1a\ 1\1a\ 1
7357 +\ 1c\ 1\0\0\0\ 6\0\0\0\93\0\0\0C\0\0\0s_\a\0\0t\0\0d\ 1\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 5\0d\ 6\0d\a\0d\b\0d      \0d
7358 +\0d\v\0d\ 2\0d\f\0d\r\0d\ e\0d\ e\0d\ f\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\ 6\0d\ 5\0d\b\0d\a\0d
7359 +\0d     \0d\r\0d\f\0d\14\0d\ 3\0d\15\0d\ 4\0d\16\0d\v\0d\17\0d\ 1\0d\18\0d\ 2\0d\19\0d
7360 +\0d\1a\0d\ 2\0d\e\0d\ 2\0d\1c\0d\ 6\0d\1d\0d\r\0d\1e\0d\ e\0d\1f\0d\b\0\0d\ 2\0d!\0d"\0d#\0d\ 2\0d$\0d%\0d&\0d\ 2\0d'\0d(\0d)\0d*\0d+\0d,\0d-\0d.\0d/\0d0\0d1\0d\ 2\0d2\0d\ f\0d3\0d\13\0d4\0d5\0d6\0d7\0d8\0d9\0d:\0d;\0d<\0d=\0d>\0d?\0d@\0dA\0dB\0dC\0dD\0dE\0dF\0d\11\0dG\0dH\0dI\0dJ\0dK\0dL\0dM\0dN\0dO\0d\f\0dP\0d      \0dQ\0d\a\0dR\0dS\0dT\0dU\0dV\0dW\0dX\0d\ 5\0dY\0dZ\0d[\0d\\0d]\0d^\0d_\0d`\0da\0db\0dc\0dd\0de\0df\0dg\0dh\0di\0dj\0dk\0dl\0dm\0dn\0g\92\0do\0dp\0\83\ 3\0}\ 1\0|\ 1\0j\ 1\0dq\0dr\0g\ 2\0\83\ 1\0\ 1t\ 2\0ds\0dp\0\83\ 2\0}\ 2\0|\ 2\0j\ 3\0dt\0\83\ 1\0\ 1|\ 2\0j\ 4\0du\0\83\ 1\0\ 1|\ 2\0j\ 5\0d1\0dv\0dv\0\83\ 3\0\ 1|\ 2\0j\ 6\0|\ 1\0\83\ 1\0\ 1|\ 2\0j\a\0\83\0\0\ 1dw\0dx\0dy\0g\ 3\0dw\0dy\0dz\0g\ 3\0dx\0d{\0dy\0g\ 3\0d{\0d|\0dy\0g\ 3\0d{\0d}\0d~\0g\ 3\0d{\0d~\0d|\0g\ 3\0dz\0dy\0d\7f\0g\ 3\0dy\0d\80\0d\7f\0g\ 3\0dy\0d|\0d\81\0g\ 3\0dy\0d\81\0d\80\0g\ 3\0d|\0d~\0d\81\0g\ 3\0d~\0d\82\0d\81\0g\ 3\0d\83\0d\84\0d\85\0d\86\0g\ 4\0d\84\0dp\0d\87\0d\85\0g\ 4\0dp\0d\88\0d\89\0d\87\0g\ 4\0d\86\0d\85\0dx\0dw\0g\ 4\0d\85\0d\87\0d{\0dx\0g\ 4\0d\87\0d\89\0d}\0d{\0g\ 4\0d\8a\0d\8b\0d\8c\0d\8d\0d\8e\0d\8f\0g\ 6\0d\8c\0d\90\0d\8a\0d\91\0d\92\0d\8f\0g\ 6\0d\8b\0d\93\0d\8c\0d\94\0d\95\0d\8e\0g\ 6\0d\93\0d\96\0d\8c\0d\97\0d\98\0d\95\0g\ 6\0d\93\0d\99\0d\9a\0d\9b\0d\9c\0d\9d\0g\ 6\0d\9a\0d\96\0d\93\0d\9e\0d\97\0d\9d\0g\ 6\0d\90\0d\8c\0d\9f\0d\91\0\0\0g\ 6\0d\8c\0\0d\9f\0\0\0\0g\ 6\0d\8c\0d\96\0\0d\98\0\0\0g\ 6\0\0\0d\8c\0\0\0\0g\ 6\0d\96\0d\9a\0\0d\9e\0\0\0g\ 6\0d\9a\0\0\0\0\0\0g\ 6\0d\9f\0\0\0\0\0\0\0\0g\b\0\0\0\0\0\0\0\0\0g\b\0\0\0\0\0\0\0\0\0g\b\0\0\0d\81\0d\82\0\0\0\0\0g\b\0\0\0d\80\0d\81\0\0\0\0\0g\b\0\0\0d\7f\0d\80\0\0\0\0\0g\b\0g$\0}\ 3\0x+\0t\b\0d\83\0dz\0\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j  \0t
7361 +\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1\ 4Wx+\0t\b\0dz\0d\82\0\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j     \0t\v\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1\ 4Wx+\0t\b\0d\82\0d\94\0\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j   \0t\f\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1q(\ 5Wx+\0t\b\0d\94\0\0\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j   \0t\r\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1qV\ 5Wt\ e\0j\ f\0t\10\0\83\ 1\0}\ 5\0|\ 5\0j\11\0d¿\0\83\ 1\0\ 1|\ 5\0j\12\0t\13\0\83\ 1\0\ 1|\ 5\0j\14\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\15\0t\16\0t\b\0d\83\0dz\0\83\ 2\0\83\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0g\ 6\0\0\0g\ 2\0\0g\ 1\0\83\ 4\0\ 1|\ 5\0j\15\0t\16\0t\b\0dz\0d\82\0\83\ 2\0\83\ 1\0d1\0d1\0d\ 1\0d1\0d\ 1\0d\ 1\0d1\0d\ 1\0g\b\0\0\0\0\0\0\0\0\0g\b\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0g\ 4\0\83\ 4\0\ 1|\ 5\0j\15\0t\16\0t\b\0d\82\0d\94\0\83\ 2\0\83\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0\0d\ 2\0\0\0d\ 2\0\0g\f\0\0\0\0\0\0\0g\ 6\0\0\0\0g\ 3\0\83\ 4\0\ 1|\ 5\0j\15\0t\16\0t\b\0d\94\0\0\83\ 2\0\83\ 1\0d1\0d1\0d\ 1\0d1\0d\ 1\0d\ 1\0d1\0d\ 1\0d\ 2\0d1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d1\0d\ 2\0g\10\0\0\0\0\0\0\0\0\0d\ 2\0\0\0d\ 2\0d\ 2\0\0\0d\ 2\0d\ 2\0d\ 2\0g\12\0\0\0\0\0\0\0\0\0\0g  \0\83\ 4\0\ 1t\17\0|\ 5\0\83\ 1\0S(Ë\0\0\0Ng\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0gFUUUUUõ?gºªªªªªú?gH\8d2Ïk\90í?gh©®¦â}Ø?gB^Ì4\9dµó?g\94\e\1foìSà?g¦uÿ\81\ 4£ø?g~âæ\8açhä?g\0\0\0\0\0\0\0@g7\8d2Ïk\90ý?gh©®¦â}è?gdúþÝ}+î?g\84\¿ª.Ûò?gã;\7ff\9e ö?g¶;\7ff\9e ö?gÑ;\7ff\9e æ?gÈ;\7ff\9e æ?g\ 4\0\0\0\00\82<g\ 2\0\0\0\0Àj<gúÿÿÿÿæ³¼gúÿÿÿÿ棼g\0\0\0\0\0\0\0Àg¦uÿ\81\ 4£ø¿gºªªªªªú¿gFUUUUUõ¿gH\8d2Ïk\90í¿g7\8d2Ïk\90ý¿gdúþÝ}+î¿gB^Ì4\9dµó¿gFUUUUUý¿g\84\ 1\99\19û¿gîÅÊ\18esæ?g\0\0\0\0\0\0ø¿g,\93O5eìô¿g¸nF(Ð¥Ð?gºªªªªªò¿gcÒ2\8eé>ñ¿gHpvÂÝ\92Ü?gc1\8cw*,ö¿gü\ 3xµb¡í?gôéeÛP,ö¿g\rÿ\ 2ýi^â?gÔlßÌvøð¿gÔlßÌvøð?g¢¡\ e)f\9bê¿gÇh®9;Çá?g\0\0\0\0\0\0ð¿g\84\¿ª.Ûò¿gÑ;\7ff\9e æ¿gÖw£\82~'ú¿g\
7362 +X2DÏÔ?g«\÷Ï\97bÿ¿g\ 1¦i<¸øØ?g\98\85ùÛñ\89÷¿g\81<O-\8aºÒ?g­\÷Ï\97bï¿g\ 2¦i<¸øÈ?g\82iMPÈcø¿gP55JöKð?g4L\9f\88æ½ô¿g4L\9f\88æ½ô?g%Á    Æî¼ñ¿ga6\93÷N´ç?gè\11\91Ú¡
7363 +ï¿g\90Ï \18Žä?g\15\e?"\ efê¿g\15\e?"\ efê?gã;\7ff\9e ö¿g@jM)\vÅü¿g8Ø`7þãÖ?g ¥\8eØNò¿g¸A{F,"Í?g¡¡\ e)f\9bú¿g´h®9;Çñ?gDùÊ\9e\8côó¿g*\9d\85Öتê?gh©®¦â}è¿g~âæ\8açhä¿g\94\e\1foìSà¿gîÅÊ\18esæ¿g\84\ 1\99\19û?g\rÿ\ 2ýi^â¿gôéeÛP,ö?gHpvÂÝ\92Ü¿gcÒ2\8eé>ñ?gh©®¦â}Ø¿gü\ 3xµb¡í¿gc1\8cw*,ö?ga6\93÷N´ç¿g%Á Æî¼ñ?gÇh®9;Çá¿g¢¡\ e)f\9bê?g\
7364 +X2DÏÔ¿gÖw£\82~'ú?g¸nF(Хпg,\93O5eìô?g\ 2¦i<¸øÈ¿g­\÷Ï\97bï?gõÿÿÿÿÿ><gFUUUUUý?güÿÿÿÿÁ±¼g\0\0\0\0\0\0ø?gñÿÿÿÿS¥¼gºªªªªªò?g´h®9;Çñ¿g¡¡\ e)f\9bú?g\14¦i<¸øØ¿g«\÷Ï\97bÿ?iI\0\0\0i\ 2\0\0\0s\f\0\0\0X [INCONNUE]s\f\0\0\0Y [INCONNUE]t\ 3\0\0\0MA1s\13\0\0\0CREE PAR CODE_ASTERs\v\0\0\0SANS UNITESiÿÿÿÿi\v\0\0\0i\b\0\0\0i\r\0\0\0i\f\0\0\0i    \0\0\0i\ e\0\0\0i
7365 +\0\0\0i\ f\0\0\0i\13\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 3\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\14\0\0\0i\16\0\0\0i\15\0\0\0i\1c\0\0\0i)\0\0\0i3\0\0\0i\19\0\0\0i\1d\0\0\0i*\0\0\0i\17\0\0\0i\1e\0\0\0i+\0\0\0i\e\0\0\0i\1f\0\0\0i#\0\0\0i&\0\0\0i\18\0\0\0\0\0\0i,\0\0\0i4\0\0\0i!\0\0\0i2\0\0\0i-\0\0\0i5\0\0\0i'\0\0\0i"\0\0\0i.\0\0\0i\1a\0\0\0i/\0\0\0i6\0\0\0i$\0\0\0i0\0\0\0i(\0\0\0i%\0\0\0i1\0\0\0i8\0\0\0i7\0\0\0i>\0\0\0i:\0\0\0iG\0\0\0i9\0\0\0i?\0\0\0i;\0\0\0i=\0\0\0i@\0\0\0i<\0\0\0iA\0\0\0iD\0\0\0iH\0\0\0iB\0\0\0iE\0\0\0iC\0\0\0iF\0\0\0t\ 5\0\0\0CH1RBgUUUUUUÕ?g\0\0\0\0\0\0à?g\1e3\90E§yâ¿g\1e3\90E§yâ?gUUUUUUÅ?gUUUUUUå?gDr?ô~Éè¿gDr?ô~Éè?g·æ\87EÊÀÓ?gX¤\f\9aß?gàéÖü°Hé?(\18\0\0\0R
7366 +\0\0\0t\13\0\0\0setInfoOnComponentsR\ 2\0\0\0t\ e\0\0\0setDescriptiont\v\0\0\0setTimeUnitRT\0\0\0R\f\0\0\0R\ 5\0\0\0R\17\0\0\0R\ 6\0\0\0R\b\0\0\0R\a\0\0\0R8\0\0\0R9\0\0\0RO\0\0\0R\ 3\0\0\0t\v\0\0\0ON_GAUSS_PTR-\0\0\0t       \0\0\0setNaturet\10\0\0\0IntensiveMaximumRR\0\0\0t\e\0\0\0setGaussLocalizationOnCellst\ 4\0\0\0listt\18\0\0\0MEDCouplingFieldTemplate(\ 6\0\0\0R\1c\0\0\0Rf\0\0\0t\ 1\0\0\0mR"\0\0\0R\19\0\0\0t\ 3\0\0\0fff(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0buildFieldOnGauss_1E\ 2\0\0sB\0\0\0\0\ 1ÿ\0É\ 1\13\ 1\ f\ 1\r\0\r\0\13\ 1\r\ 1
7367 +\ 1ÿ\0ÿ\0\90\ 1\16\ 1\14\ 1\ 4\ 1\16\ 1\14\ 1\ 4\ 1\16\ 1\14\ 1\ 4\ 1\16\ 1\14\ 1\ 4\ 1\ f\0\r\0\r\ 1\r\ 1@\ 1a\ 1d\ 1¦\ 1c\ 1\0\0\0\ 6\0\0\0·\ 1\0\0C\0\0\0\10\0\0t\0\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 2\0d\ 6\0d\ 2\0d\a\0d\b\0d        \0d\ 2\0d
7368 +\0d\ 2\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0d%\0d&\0d'\0d(\0d)\0d*\0d+\0d,\0d-\0d.\0d/\0d0\0d1\0d2\0d3\0d\ 2\0d4\0d5\0d6\0d\ 2\0d7\0d8\0d9\0d\ 2\0d:\0d;\0d<\0d\ 2\0d=\0d>\0d?\0d@\0dA\0dB\0dC\0dD\0dE\0dF\0dG\0dH\0dI\0dJ\0dK\0dL\0dM\0dN\0dO\0dP\0dQ\0dR\0dS\0dT\0dU\0dV\0dW\0dX\0dY\0dZ\0d[\0d\\0d]\0d^\0d_\0d`\0da\0db\0dc\0dd\0de\0df\0dg\0dh\0di\0dj\0dk\0dl\0dm\0dn\0do\0dp\0dq\0dr\0ds\0dt\0du\0dv\0dw\0dx\0dy\0dz\0d{\0d|\0d}\0d~\0d\7f\0d\80\0d\81\0d\82\0d\83\0d\84\0d\85\0d\86\0d\87\0d\88\0d\89\0d\8a\0d\8b\0d\8c\0d\8d\0d\8e\0d\8f\0d\90\0d\91\0d\92\0d\93\0d\94\0d\95\0d\96\0d\97\0d\98\0d\99\0d\9a\0d\9b\0d\9c\0d\9d\0d\9e\0d\9f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0d¿\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dÿ\0d\0\ 1d\ 1\ 1d\ 2\ 1d\ 3\ 1d\ 4\ 1d\ 5\ 1d\ 6\ 1d\a\ 1d\b\ 1d    \ 1d
7369 +\ 1d\v\ 1d\f\ 1d\r\ 1d\ e\ 1d\ f\ 1d\10\ 1d\11\ 1d\12\ 1d\13\ 1d\14\ 1d\15\ 1d\16\ 1d\17\ 1d\18\ 1d\19\ 1d\1a\ 1d\e\ 1d\1c\ 1d\1d\ 1d\1e\ 1d\1f\ 1\ 1d!\ 1d"\ 1d#\ 1d$\ 1d%\ 1d&\ 1d'\ 1d(\ 1d)\ 1d*\ 1d+\ 1d,\ 1d-\ 1d.\ 1d/\ 1d0\ 1d1\ 1d2\ 1d3\ 1d4\ 1d5\ 1d6\ 1d7\ 1d8\ 1d9\ 1d:\ 1d;\ 1d<\ 1d=\ 1d>\ 1d?\ 1d@\ 1dA\ 1dB\ 1dC\ 1dD\ 1dE\ 1dF\ 1dG\ 1dH\ 1dI\ 1dJ\ 1dK\ 1d\ 2\0dL\ 1d\ 2\0dM\ 1d\ 2\0dN\ 1d\ 2\0dO\ 1dP\ 1dQ\ 1dR\ 1dS\ 1dT\ 1dU\ 1dV\ 1dW\ 1dX\ 1dY\ 1dZ\ 1d[\ 1d\\ 1d]\ 1d^\ 1d_\ 1d`\ 1da\ 1db\ 1dc\ 1dd\ 1de\ 1df\ 1dg\ 1dh\ 1di\ 1dj\ 1dk\ 1dl\ 1dm\ 1dn\ 1do\ 1d\ 2\0dp\ 1dq\ 1dr\ 1ds\ 1dt\ 1du\ 1dv\ 1dw\ 1dx\ 1d/\0dy\ 1dq\0dz\ 1d+\0d{\ 1do\0d|\ 1ds\0d}\ 1d~\ 1d\7f\ 1d\80\ 1d\81\ 1d\82\ 1d\83\ 1d\84\ 1d\85\ 1d\86\ 1d\87\ 1d\88\ 1d\89\ 1d\8a\ 1d\8b\ 1d\8c\ 1d\8d\ 1d\8e\ 1d\8f\ 1d\90\ 1d\91\ 1d\92\ 1d\93\ 1d\94\ 1d\95\ 1d\96\ 1d\97\ 1d\98\ 1d\99\ 1d\9a\ 1d\9b\ 1d\9c\ 1d\9d\ 1d\9e\ 1d\9f\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\ 1\83\ 3\0}\ 1\0|\ 1\0j\ 1\0\ 1\ 1g\ 2\0\83\ 1\0\ 1t\ 2\0\ 1\ 1\83\ 2\0}\ 2\0|\ 2\0j\ 3\0\ 1\83\ 1\0\ 1|\ 2\0j\ 4\0\ 1\83\ 1\0\ 1|\ 2\0j\ 5\0do\ 1\ 1\ 1\83\ 3\0\ 1|\ 2\0j\ 6\0|\ 1\0\83\ 1\0\ 1|\ 2\0j\a\0\ 1\83\ 1\0\ 1\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1d¿\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1d¿\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1d¿\ 1\ 1g\ 3\0d¿\ 1\ 1\ 1g\ 3\0d¿\ 1\ 1\ 1g\ 3\0d¿\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1g\ 3\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1g\ 4\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1\ 1\ 1g\ 6\0\ 1\ 1\ 1\ 1dÿ\ 1d\0\ 2g\ 6\0\ 1d\ 1\ 2\ 1d\ 2\ 2d\ 3\ 2d\0\ 2g\ 6\0\ 1\ 1\ 1\ 1d\ 4\ 2dÿ\ 1g\ 6\0\ 1d\ 5\ 2\ 1d\ 6\ 2d\a\ 2d\ 4\ 2g\ 6\0\ 1\ 1d\b\ 2\ 1d     \ 2d
7370 +\ 2g\ 6\0d\b\ 2d\ 5\ 2\ 1d\v\ 2d\ 6\ 2d
7371 +\ 2g\ 6\0\ 1\ 1d\b\ 2\ 1d\f\ 2d   \ 2g\ 6\0\ 1d\r\ 2d\b\ 2d\ e\ 2d\ f\ 2d\f\ 2g\ 6\0d\ 1\ 2\ 1d\10\ 2d\ 2\ 2d\11\ 2d\12\ 2g\ 6\0d\10\ 2d\13\ 2d\ 1\ 2d\14\ 2d\15\ 2d\12\ 2g\ 6\0\ 1d\ 5\ 2d\10\ 2d\a\ 2d\16\ 2d\11\ 2g\ 6\0d\ 5\ 2d\17\ 2d\10\ 2d\18\ 2d\19\ 2d\16\ 2g\ 6\0d\ 5\ 2d\b\ 2d\1a\ 2d\v\ 2d\e\ 2d\1c\ 2g\ 6\0d\1a\ 2d\17\ 2d\ 5\ 2d\1d\ 2d\18\ 2d\1c\ 2g\ 6\0d\b\ 2d\r\ 2d\1a\ 2d\ f\ 2d\1e\ 2d\e\ 2g\ 6\0d\r\ 2d\1f\ 2d\1a\ 2\ 2d!\ 2d\1e\ 2g\ 6\0d\13\ 2d\10\ 2d"\ 2d\14\ 2d#\ 2d$\ 2g\ 6\0d"\ 2d%\ 2d\13\ 2d&\ 2d'\ 2d$\ 2g\ 6\0d\10\ 2d\17\ 2d"\ 2d\19\ 2d(\ 2d#\ 2g\ 6\0d\17\ 2d)\ 2d"\ 2d*\ 2d+\ 2d(\ 2g\ 6\0d\17\ 2d\1a\ 2d,\ 2d\1d\ 2d-\ 2d.\ 2g\ 6\0d,\ 2d)\ 2d\17\ 2d/\ 2d*\ 2d.\ 2g\ 6\0d\1a\ 2d\1f\ 2d,\ 2d!\ 2d0\ 2d-\ 2g\ 6\0d\1f\ 2d1\ 2d,\ 2d2\ 2d3\ 2d0\ 2g\ 6\0d%\ 2d"\ 2d4\ 2d&\ 2d5\ 2d6\ 2g\ 6\0d4\ 2d7\ 2d%\ 2d8\ 2d9\ 2d6\ 2g\ 6\0d"\ 2d)\ 2d4\ 2d+\ 2d:\ 2d5\ 2g\ 6\0d)\ 2d;\ 2d4\ 2d<\ 2d=\ 2d:\ 2g\ 6\0d)\ 2d,\ 2d>\ 2d/\ 2d?\ 2d@\ 2g\ 6\0d>\ 2d;\ 2d)\ 2dA\ 2d<\ 2d@\ 2g\ 6\0d,\ 2d1\ 2d>\ 2d3\ 2dB\ 2d?\ 2g\ 6\0d1\ 2dC\ 2d>\ 2dD\ 2dE\ 2dB\ 2g\ 6\0d7\ 2d4\ 2dF\ 2dG\ 2d8\ 2dH\ 2dI\ 2dJ\ 2g\b\0d4\ 2d;\ 2dK\ 2dF\ 2d=\ 2dL\ 2dM\ 2dH\ 2g\b\0d;\ 2d>\ 2dN\ 2dK\ 2dA\ 2dO\ 2dP\ 2dL\ 2g\b\0d>\ 2dC\ 2dQ\ 2dN\ 2dE\ 2dR\ 2dS\ 2dO\ 2g\b\0dG\ 2dF\ 2dT\ 2dU\ 2dI\ 2dV\ 2dW\ 2dX\ 2g\b\0dF\ 2dK\ 2dY\ 2dT\ 2dM\ 2dZ\ 2d[\ 2dV\ 2g\b\0dK\ 2dN\ 2d\\ 2dY\ 2dP\ 2d]\ 2d^\ 2dZ\ 2g\b\0dN\ 2dQ\ 2d_\ 2d\\ 2dS\ 2d`\ 2da\ 2d]\ 2g\b\0dU\ 2dT\ 2db\ 2dc\ 2dW\ 2dd\ 2de\ 2df\ 2g\b\0dT\ 2dY\ 2dg\ 2db\ 2d[\ 2dh\ 2di\ 2dd\ 2g\b\0dY\ 2d\\ 2dj\ 2dg\ 2d^\ 2dk\ 2dl\ 2dh\ 2g\b\0d\\ 2d_\ 2dm\ 2dj\ 2da\ 2dn\ 2do\ 2dk\ 2g\b\0dc\ 2db\ 2dp\ 2dq\ 2de\ 2dr\ 2ds\ 2dt\ 2g\b\0db\ 2dg\ 2du\ 2dp\ 2di\ 2dv\ 2dw\ 2dr\ 2g\b\0dg\ 2dj\ 2dx\ 2du\ 2dl\ 2dy\ 2dz\ 2dv\ 2g\b\0dj\ 2dm\ 2d{\ 2dx\ 2do\ 2d|\ 2d}\ 2dy\ 2g\b\0dq\ 2dp\ 2\ 1\ 1ds\ 2d~\ 2d\7f\ 2d\80\ 2g\b\0dp\ 2du\ 2\ 1\ 1dw\ 2d\81\ 2d\82\ 2d~\ 2g\b\0du\ 2dx\ 2\ 1\ 1dz\ 2d\83\ 2d\84\ 2d\81\ 2g\b\0dx\ 2d{\ 2\ 1\ 1d}\ 2d\85\ 2d\86\ 2d\83\ 2g\b\0gx\0}\ 3\0x+\0t\b\0\ 1d\ e\ 2\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j   \0t
7372 +\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1q#\ eWx+\0t\b\0d\ e\ 2d;\ 2\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j     \0t\v\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1qQ\ eWx+\0t\b\0d;\ 2dF\ 2\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j   \0t\f\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1q\7f\ eWx+\0t\b\0dF\ 2d[\ 2\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j   \0t\r\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1\ eWt\ e\0j\ f\0t\10\0\83\ 1\0}\ 5\0|\ 5\0j\11\0d\87\ 2\83\ 1\0\ 1|\ 5\0j\12\0t\13\0\83\ 1\0\ 1|\ 5\0j\14\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\15\0t\16\0t\b\0\ 1d\ e\ 2\83\ 2\0\83\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0g\ 6\0d\88\ 2d\88\ 2g\ 2\0d\89\ 2g\ 1\0\83\ 4\0\ 1|\ 5\0j\15\0t\16\0t\b\0d\ e\ 2d;\ 2\83\ 2\0\83\ 1\0do\ 1do\ 1d\ 1\0do\ 1d\ 1\0d\ 1\0do\ 1d\ 1\0g\b\0d\8a\ 2d\8a\ 2d\8b\ 2d\8a\ 2d\8b\ 2d\8b\ 2d\8a\ 2d\8b\ 2g\b\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0g\ 4\0\83\ 4\0\ 1|\ 5\0j\15\0t\16\0t\b\0d;\ 2dF\ 2\83\ 2\0\83\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\89\ 2d\ 2\0d\89\ 2d\89\ 2d\ 2\0d\89\ 2g\f\0d\8c\ 2d\8c\ 2d\8d\ 2d\8c\ 2d\8c\ 2d\8d\ 2g\ 6\0d\8c\ 2d\8c\ 2d\8c\ 2g\ 3\0\83\ 4\0\ 1|\ 5\0j\15\0t\16\0t\b\0dF\ 2d[\ 2\83\ 2\0\83\ 1\0do\ 1do\ 1d\ 1\0do\ 1d\ 1\0d\ 1\0do\ 1d\ 1\0d\ 2\0do\ 1d\ 1\0d\ 2\0d\ 2\0d\ 1\0do\ 1d\ 2\0g\10\0d\8e\ 2d\8e\ 2d\8f\ 2d\8e\ 2d\8f\ 2d\8f\ 2d\8e\ 2d\8f\ 2d\ 2\0d\8e\ 2d\8f\ 2d\ 2\0d\ 2\0d\8f\ 2d\8e\ 2d\ 2\0d\ 2\0d\ 2\0g\12\0d\90\ 2d\90\ 2d\90\ 2d\90\ 2d\91\ 2d\91\ 2d\91\ 2d\91\ 2d\92\ 2g  \0\83\ 4\0\ 1t\17\0|\ 5\0\83\ 1\0S(\93\ 2\0\0Ng\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0g\fg\85\17ÖÙó?g¸\9d±¯Ä\7fÃ?g\0\0\0\0\0\0ô?g\0\0\0\0\0\0ø?gªöí \92Êû?gwvÅÂyLË?g\0\0\0\0\0\0ü?g\0\0\0\0\0\0\0@g\8c>¢%ðÂï?g²bOLÔ2¿?gk\14¬\ 3êgó?g¸óÎw\8fZÓ?gÛ®9\1c4Ò÷?g\17\8a;9\1ffÇ?gÎ\82\8ak\14+û?g\ 2"\88tb\18Û?gx>¢%ðÂÿ?gÕbOLÔ2Ï?g ºy\9f©\fï?g'¹äòK÷Î?gùÒ_\89î«ò?g\ 5\88Â'`«Ü?g\86K\9b7\7fI÷?gÝ\8a+öx9×?g÷À\1f\8dç#ú?gÐøÔ\e\90\11ä?g\18ºy\9f©\fÿ?g\15¹äòK÷Þ?g\b¸ÿ\ eäßí?g8ÓÎ\1f\80ïÖ?gk8¤\11±¨ñ?gP²\96\88cÇâ?gøÉ?\vëgö?gj\1eÛ\17 3á?g\1e\82\7få÷¸ø?glÆ\9f%XJê?gö·ÿ\ eäßý?g@ÓÎ\1f\80ïæ?g\b'mO\eAì?g}P$tÒ\vÞ?g\8et­÷\ ebð?gÚ[\9b6lñæ?gDÝ\91{Ô0õ?gY<\e×Ý\88æ?grÖò\8d®ïö?gFÀlYe\ fð?gö&mO\eAü?g}P$tÒ\vî?g\0\0\0\0\0\0ò?g;C+\15§Ýñ?g\9a§ìj\97\8cÁ?g\0\0\0\0\0\0ö?g¶P¥J\8aô÷?g\1aú'ÍPq·?g\0\0\0\0\0\0ú?gÙÒ\93\1ecÎù?gX\80\0~LYÉ?g\0\0\0\0\0\0þ?g8\16\87c¸ðÿ?gà¢\8a\11ÁA¿?gÇx´i\1fwñ?g\1d¨ ¸\1akÑ?g
7373 +\8bß\19\ 5Öõ?gù\93vôñrÅ?g0Ù6?\1e\99÷?g\9f.OÊ\9e~Ñ?g,ç\92ÑI:ù?ggÖYµí(Ù?g©\1aH#ÁÆý?g·l\8a\a§?Í?gNÌóþÒvÿ?g0>\14c~S×?gz×oHðÍð?g§­È#pÍÙ?g\ f°£\9d´Xõ?gB?ý6\ 4JÕ?gç\81Ú\ e£ãö?g4|xN%ÞÜ?gvÅ/LéEø?g¢\vØ\19\98¢â?gt\1e\82\ 5ß\eý?g\8cm¶3×\aÝ?gÏW#iÙ\84þ?g\1c¨¥\89Ã>ã?gêËZ¹>Éï?gCmTa¦æà?gyÎOÊì\89ô?gub¼+P\89ß?gùý\bSÍÖõ?g#à\13%Àçã?gǯ\880æôö?gg\81\9aiè?gu¼\ fÎå\ 1ü?g\bæÑ\1d\88\80å?gÎRa\19g\1eý?gÔ*Å\86U\8aê?g288$N}í?g©Ò\8b\97\14¦ä?gÁ
7374 +\9bÆÂló?gU÷د ¨ä?gøÃû\ 4\9fvô?gèÅo]v\14é?gâ}a¨FLõ?ge÷É\13sÓí?g Tv\9a       }ú?gp\vâL\15+ì?g,\ 5¥\ 6ÔHû?g§.õèN¸ð?gJ\87\15Y~6ê?gwI|ø¼Zâ?g\80%ÐÂÞ¨ó?g4nºt\e\88ë?g6\87\15Y~6ú?goI|ø¼Zò?gÞm4>söó?gÁ¥öª\18\89³?gL\16\87c¸ðï?gÑ¢\8a\11ÁA¯?g`ßlÄ~õõ?gíO\ f¼4}µ?g\8e3\16W¡òû?g\95NYï\88Y»?gã¤Nݬñý?gºøq\0¥M½?g _XßCªó?g¯MÙû](Í?gOÌóþÒvï?g\1f>\14c~SÇ?g\7f\9cG\ f±¡õ?gÅê\1däf       Ð?g¾R\15\9fø\87û?gh¶±\96\ eiÔ?gp\8f\ 4Ïe\7fý?gUúâ|FÞÕ?gÜ\16¶á\a\13ó?g\1f\12\ flt\ eØ?gâW#iÙ\84î?g\1c¨¥\89Ã>Ó?gbLHxUûô?g2ÇCÝLvÚ?gòìþ;>´ú?g\eóp\18ëÖà?gv"\91Ò\8b\9cü?g\9bM\v
7375 +â?g»ÓÜo\03ò?gÆ:;tu\96à?g½Ra\19g\1eí?gÔ*Å\86U\8aÚ?gðèráæ\ 4ô?gt\8d§Ì\1a?â?gb(56\9azù?gv\85ìÕ
7376 +9ç?g\98=˧\80Lû?g$ØX.°áè?g^#'\84\84\rñ?gDz2£bæä?g?\ 5¥\ 6ÔHë?g\9e.õèN¸à?g«s\91Ä\11Âò?g\e Q\80lýæ?gðÌ>Ýv\ 5ò?g\ 3åªÕÃ<é?g\92\85¹ß÷?g\8d\11­\17\8aBí?gß´:ÆF\94ù?ge·Ëô\93Yï?gÔ.\84s\16\93ø?gÚ\84ô(\115ñ?g\88üû·g÷ñ?g\95ûÝ\99ü\94±?g\fÂÝÐ\95óù?gE¤@Þle¹?gï"i¯Ö²ñ?gøÅv/î=Ê?g\ e\16&o\8b\90ù?g\8dr\80°ÖóÒ?g\84á#Kº*ñ?g\1d]Úú\9b¦Õ?gm·l¥ðËø?g41­¿ýEß?g\86¾Fþ\19að?g/Ð\9d7 ÛÝ?g.\13\9fij¨÷?gÈ2\80}e\90å?gì¥y\87î±î?glÔ\13ÆXÏâ?gE\14fE,+ö?gÀk\8e:\80+ë?gÀ¾3¨×Çç?gÖ\vâ\96\84iå?gu®@\92͹í?gÐ\8e\9a¼åÃê?g\vÏ&¾áÕñ?gî\88)q#\ fð?gêF-³ÜÎô?gTÊ\ 5\ 4T¼ò?gÒO8\81oþä?g8\1c¡´\94&è?gÈc\86a\v>ê?gEcÉá90î?g¿wÔA§}ï?g2Õx\87ï\1cò?gäE\11\91¡^ò?g¬ø\f\1eÂ!õ?g\14ý\11\84èäá?g¨î¨Íy\87ê?gS|\16¥"^æ?g\1d\95\89 ¬\94ð?g\9aû\1aÆ\×ê?gð²>Z\9båó?gàz\1fç\96Pï?gÃÐó\93\8a6÷?g\ 5ÞD+.\ eÝ?go,=\1d \83ì?g¼
7377 +\vÛÜ(â?gÅ;F\12ôÑñ?g\80¦s ¢Êå?gJáí\15Xbõ?gBBÜehlé?gÎ\86\95\19¼òø?g\956:\9dÒÀê?gOM¾)µ\16è?g2\93£CdYð?gHÐvO\16qí?g\11\vª8_Ró?g\8b©\97º»eñ?gÃ\82°-ZKö?g\1eësMì\12ô?gÒY_q=\9eç?gº?5Kg+ë?gÈm­QÙÝì?g_Ã.<\86\9að?gÉÀý\98º\ eñ?gØæÂÒX\9fó?gÒÊ$\89\88®ó?g\7f
7378 +Wi+¤ö?g´<\94\94\85!ä?gz\f^\aiØí?gû»\98µ¿\9aè?g\a$d½#=ò?gB;\9dÖù\13í?gÙA\19÷\12\8eõ?g@ÝÐû\99Æð?g¬_Î0\ 2ßø?gß¼VøùWà?gìhr\10  ð?g¢X¿½¿ùã?g\9e\ e\1a\14&\9aó?geô'\83\85\9bç?g"´Á\17\8a*÷?g\1f\90\90HK=ë?g¨Yi\eîºú?gɾ3¨×Ç÷?gè\vâ\96\84iõ?gÀO8\81oþô?g$\1c¡´\94&ø?g\ 2ý\11\84èäñ?g\96î¨Íy\87ú?g\ 5ÞD+.\ eí?g\7f,=\1d \83ü?gå\8e¢SèMï?g\8e\98áÄ\8cæè?g»U.2XÈò?g\14·\ e¹uáí?göc\8b:¼éõ?g¹ê\9dV/nñ?g^rèB \vù?g\12z´Ð£ëó?gR@ñ\94O  ì?g\18ûæA¯\87ì?g¦&÷òbÒð?gjcWô5\1eñ?g\b­u\e\1e ó?ghI»G\94øó?gj3ôCÙmö?g8/\1f\9bòÒö?gçXz\8f·Yè?g·í,.ð»ï?gß\9d_ßu8í?ga[\81è\
7379 +ó?ghq¢\17\9a\vñ?gù?ì¹Á6ö?gä\13\95?ùzó?g\90$W\8b&cù?g\9aC¿]1Mä?g¨\86»\92\8a;ñ?g\1fQ²£¡\è?gó\aá|Ù­ô?g¤^¥é\11lì?g?\89\ 6g( ø?g\1d\17Á=ð?g\8a
7380 +,Qw\92û?gø\8c»\84aæß?gB\a\ fûXWò?gÃ\87p\1cÔ#ã?g°ÕÞÆj\ 2ö?g\12I\83vwTæ?gð£®\92|­ù?gb
7381 +\96Ð\1a\85é?g0r~^\8eXý?gõ\8e¬\91\92\Û?gF\sé9Ëò?g÷\88gW¾jà?gÊ¡½±x\8dö?gtÊøe3'ã?gyç\az·Oú?gò\v\8at¨ãå?g*-RBö\11þ?goM\e\83\1d Ø?gm9N\85\1aêð?gzÐ= \a\19Þ?gñ~\98MY¬ô?g»)°ÞøÈá?g¡Äâ\15\98nø?g8kAím\85ä?gR
7382 +-ÞÖ0ü?gû\v\8at¨ãÕ?g"-RBö\11î?gUrèB \vé?g\13z´Ð£ëã?gt3ôCÙmæ?gJ/\1f\9bòÒæ?gí\13\95?ùzã?g\90$W\8b&cé?g\14\17Á=à?g\94
7383 +,Qw\92ë?gX
7384 +\96Ð\1a\85Ù?g(r~^\8eXí?g\0\0\0\0\0\0\0Àg\0\0\0\0\0\0ü¿g\0\0\0\0\0\0ø¿g\0\0\0\0\0\0ô¿gʶ8i}iÿ¿gWbvÝmlØ?gá\9f\11¼M|û¿gþ\95Ç!à^Õ?g$\89ê\ e\1e\8f÷¿g¸É\18fRQÒ?g9rÃaî¡ó¿gäúÓT\89\87Î?gBË\97y}«ý¿g\81\96åî\8dùç?göÑdÊ\röù¿g±ã\b1\úä?g}Ø1\e\9e@ö¿gá0,s*ûá?g\ 4ßþk.\8bò¿g ü\9ejñ÷Ý?gä/®¨cÖú¿g
7385 +wp×®mñ?gØi\983\97{÷¿goÐ\ 4ùñ\7fî?g÷£\82¾Ê ô¿g¯²(C\86$ê?géÝlIþÅð¿gæ\94L\8d\1aÉå?g.M¥æÔ\ 4÷¿gürà0¤:ö?g\94£ÐI:$ô¿gÄdĪOsó?gùùû¬\9fCñ¿g_V¨$û«ð?g\88 N 
7386 +Æì¿gØ\8f\18=MÉë?g\0\0\0\0\0\0ð¿g¶8i}iï¿gWbvÝmlÈ?gUË\97y}«í¿g\81\96åî\8dù×?gÜ/®¨cÖê¿g\1cwp×®má?g8M¥æÔ\ 4ç¿g\ esà0¤:æ?gFÀlYe\ fð¿g4nºt\e\88ë¿gÚ[\9b6lñæ¿gwI|ø¼Zâ¿goI|ø¼Zò¿g×\1a\ 6\aê¿g\8e\7fÿ®Ã;ý?gtWåüùÆæ¿g\9c\8f\1f9K\94ù?g\1a\94ÄØú\85ã¿gª\9f?ÃÒìõ?gÀУ´ûDà¿g¸¯_MZEò?gÍ\1a\ 6\aÚ¿g\97\7fÿ®Ã;í?guÆÍ62ËÜ¿g\ e\87N!
7387 +.ÿ?g¬\rôïË1Ù¿g&¶$ÝHHû?gáT\1a©e\98Õ¿g?åú\98\87b÷?g\ 5\9c@bÿþÑ¿gW\14ÑTÆ|ó?guÆÍ62ËÌ¿g\r\87N!
7388 +.ï?g\1eÜ÷ÉXÞ±¿ga\ 5¿x\ 2ûÿ?gEÁqa\eE¯¿gÅ$§)¢ûû?gAÊó.\85ͪ¿gýC\8fÚAü÷?g>ÓuüîU¦¿gbcw\8báüó?g\1eÜ÷ÉXÞ¡¿gj\ 5¿x\ 2ûï?gzS¨g\v\ 6Ô?gpä/\94$\9bÿ?g\aI³úI\85Ñ?gÌç©\ 1À§û?gJ}|\e\11        Î?gTë#o[´÷?gbh\92A\8e\aÉ?g°î\9dÜöÀó?gzS¨g\v\ 6Ä?g_ä/\94$\9bï?iÛ\0\0\0i\ 2\0\0\0s\f\0\0\0X [INCONNUE]s\f\0\0\0Y [INCONNUE]t\ 3\0\0\0MA2s\13\0\0\0CREE PAR CODE_ASTERs\v\0\0\0SANS UNITESiÿÿÿÿi\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\9d\0\0\0i\9e\0\0\0i\9c\0\0\0i\9b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i¿\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\ 1\0\0\0i\e\0\0\0i>\0\0\0iY\0\0\0i\a\0\0\0i\1c\0\0\0i?\0\0\0i\ 3\0\0\0i\1d\0\0\0i@\0\0\0i     \0\0\0i\1e\0\0\0i$\0\0\0i\ 5\0\0\0i\ 4\0\0\0i\1f\0\0\0iA\0\0\0iZ\0\0\0\0\0\0i\ 6\0\0\0i!\0\0\0iB\0\0\0i\v\0\0\0i"\0\0\0i'\0\0\0i\b\0\0\0iC\0\0\0i[\0\0\0i\f\0\0\0i#\0\0\0iD\0\0\0iE\0\0\0i\ e\0\0\0i%\0\0\0i*\0\0\0i
7389 +\0\0\0iF\0\0\0i\\0\0\0i&\0\0\0iG\0\0\0i\10\0\0\0i(\0\0\0i-\0\0\0i\r\0\0\0iH\0\0\0i]\0\0\0i\11\0\0\0i)\0\0\0iI\0\0\0iJ\0\0\0i\13\0\0\0i+\0\0\0i0\0\0\0i\ f\0\0\0iK\0\0\0i^\0\0\0i,\0\0\0iL\0\0\0i\15\0\0\0i.\0\0\0i3\0\0\0i\12\0\0\0iM\0\0\0i_\0\0\0i\16\0\0\0i/\0\0\0iN\0\0\0iO\0\0\0i\18\0\0\0i1\0\0\0i6\0\0\0i\14\0\0\0iP\0\0\0i`\0\0\0i2\0\0\0iQ\0\0\0i\1a\0\0\0i4\0\0\0i9\0\0\0i\17\0\0\0iR\0\0\0ia\0\0\0i;\0\0\0i5\0\0\0iS\0\0\0iT\0\0\0i<\0\0\0i7\0\0\0iU\0\0\0i\19\0\0\0iV\0\0\0ib\0\0\0i8\0\0\0iW\0\0\0i=\0\0\0i:\0\0\0iX\0\0\0id\0\0\0ic\0\0\0i\87\0\0\0is\0\0\0\0\0\0ie\0\0\0i\88\0\0\0it\0\0\0if\0\0\0i\89\0\0\0iu\0\0\0i\83\0\0\0i\8a\0\0\0iv\0\0\0ih\0\0\0ig\0\0\0i\8b\0\0\0iw\0\0\0\0\0\0ii\0\0\0i\8c\0\0\0ix\0\0\0ij\0\0\0i\8d\0\0\0iy\0\0\0i\84\0\0\0i\8e\0\0\0iz\0\0\0il\0\0\0ik\0\0\0i\8f\0\0\0i{\0\0\0\0\0\0im\0\0\0i\90\0\0\0i|\0\0\0in\0\0\0i\91\0\0\0i}\0\0\0i\85\0\0\0i\92\0\0\0i~\0\0\0ip\0\0\0io\0\0\0i\93\0\0\0i\7f\0\0\0\0\0\0iq\0\0\0i\94\0\0\0i\80\0\0\0ir\0\0\0i\95\0\0\0i\81\0\0\0i\86\0\0\0i\96\0\0\0i\82\0\0\0i\97\0\0\0i\9f\0\0\0\0\0\0i\98\0\0\0\0\0\0i\99\0\0\0\0\0\0i\9a\0\0\0\0\0\0t\ 5\0\0\0CH2RBgUUUUUUÕ?g\0\0\0\0\0\0à?g\1e3\90E§yâ¿g\1e3\90E§yâ?gUUUUUUÅ?gUUUUUUå?gDr?ô~Éè¿gDr?ô~Éè?g·æ\87EÊÀÓ?gX¤\f\9aß?gàéÖü°Hé?(\18\0\0\0R
7390 +\0\0\0Ry\0\0\0R\ 2\0\0\0Rz\0\0\0R{\0\0\0RT\0\0\0R\f\0\0\0R\ 5\0\0\0R\17\0\0\0R\ 6\0\0\0R\b\0\0\0R\a\0\0\0R8\0\0\0R9\0\0\0RO\0\0\0R\ 3\0\0\0R|\0\0\0R-\0\0\0R}\0\0\0R~\0\0\0RR\0\0\0R\7f\0\0\0R\80\0\0\0R\81\0\0\0(\ 6\0\0\0R\1c\0\0\0Rf\0\0\0R\82\0\0\0R"\0\0\0R\19\0\0\0R\83\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0buildFieldOnGauss_2b\ 2\0\0sV\0\0\0\0\ 1ÿ\0ÿ\0ÿ\0ÿ\0ÿ\09\ 1\13\ 1\ f\ 1\r\0\r\0\13\ 1\r\ 1\r\ 1ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0~\ 1\16\ 1\14\ 1\ 4\ 1\16\ 1\14\ 1\ 4\ 1\16\ 1\14\ 1\ 4\ 1\16\ 1\14\ 1\ 4\ 1\ f\0\r\0\r\ 1\r\ 1@\ 1a\ 1d\ 1¦\ 1c\ 1\0\0\0\ 6\0\0\0L\0\0\0C\0\0\0\ 4\0\0t\0\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 4\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 2\0d\ 4\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 4\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 5\0d\ 4\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 4\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 5\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 5\0d\ 1\0d\ 2\0d\ 5\0d\ 5\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0gK\0d\ 6\0d\a\0\83\ 3\0}\ 1\0|\ 1\0j\ 1\0d\b\0d        \0d
7391 +\0g\ 3\0\83\ 1\0\ 1t\ 2\0d\v\0d\a\0\83\ 2\0}\ 2\0|\ 2\0j\ 3\0d\f\0\83\ 1\0\ 1|\ 2\0j\ 4\0d\r\0\83\ 1\0\ 1|\ 2\0j\ 5\0d\ e\0d\ f\0d\ f\0\83\ 3\0\ 1|\ 2\0j\ 6\0|\ 1\0\83\ 1\0\ 1|\ 2\0j\a\0d\10\0\83\ 1\0\ 1d\a\0d\11\0d\12\0d\13\0g\ 4\0d\14\0d\15\0d\16\0d\17\0d\18\0g\ 5\0d\10\0d\19\0d\1a\0d\a\0d\12\0d\13\0g\ 6\0d\13\0d\12\0d\11\0d\e\0d\1c\0d\1d\0g\ 6\0d\1e\0d\1f\0\0d\18\0d\14\0d\17\0g\ 6\0d\18\0d\17\0d\16\0d!\0d"\0d#\0g\ 6\0d\1a\0d$\0d\e\0d\13\0d\19\0d%\0d\1c\0d\12\0g\b\0d\1e\0d&\0d!\0d\18\0\0d'\0d"\0d\17\0g\b\0g\b\0}\ 3\0|\ 2\0j\b\0\0|\ 3\0d\10\0\19\83\ 2\0\ 1|\ 2\0j\b\0t
7392 +\0|\ 3\0d\1a\0\19\83\ 2\0\ 1x+\0t\v\0d$\0d\19\0\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j\b\0t\f\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1qH\ 2W|\ 2\0j\b\0t\r\0|\ 3\0d\19\0\19\83\ 2\0\ 1|\ 2\0j\b\0t\r\0|\ 3\0d%\0\19\83\ 2\0\ 1t\ e\0j\ f\0t\10\0\83\ 1\0}\ 5\0|\ 5\0j\11\0d(\0\83\ 1\0\ 1|\ 5\0j\12\0t\13\0\83\ 1\0\ 1|\ 5\0j\14\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\15\0d\10\0g\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 1\0g\f\0d)\0d)\0d)\0g\ 3\0d*\0g\ 1\0\83\ 4\0\ 1|\ 5\0j\15\0d\1a\0g\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ e\0d\ 1\0d\ e\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0g\ f\0d\ 5\0d\ 1\0d+\0d\ 1\0d\ 5\0d+\0d,\0d\ 1\0d+\0d\ 1\0d,\0d+\0d\ 1\0d\ 1\0d-\0g\ f\0d.\0d.\0d.\0d.\0d.\0g\ 5\0\83\ 4\0\ 1|\ 5\0j\15\0d$\0d\a\0d\13\0d\e\0g\ 4\0d\ e\0d\ 2\0d\ 1\0d\ e\0d\ 1\0d\ 1\0d\ e\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0g\12\0d/\0d\ 5\0d\ 5\0d/\0d\ 1\0d\ 5\0d/\0d\ 5\0d\ 1\0d0\0d\ 5\0d\ 5\0d0\0d\ 1\0d\ 5\0d0\0d\ 5\0d\ 1\0g\12\0d*\0d*\0d*\0d*\0d*\0d*\0g\ 6\0\83\ 4\0\ 1|\ 5\0j\15\0d\19\0d%\0g\ 2\0d\ e\0d\ e\0d\ e\0d\ e\0d\ 2\0d\ e\0d\ 2\0d\ 2\0d\ e\0d\ 2\0d\ e\0d\ e\0d\ e\0d\ e\0d\ 2\0d\ e\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ e\0d\ 2\0g\18\0d/\0d/\0d/\0d/\0d/\0d0\0d/\0d0\0d/\0d/\0d0\0d0\0d0\0d/\0d/\0d0\0d/\0d0\0d0\0d0\0d/\0d0\0d0\0d0\0g\18\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0g\b\0\83\ 4\0\ 1t\16\0|\ 5\0\83\ 1\0S(1\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0à?i\19\0\0\0i\ 3\0\0\0s\f\0\0\0X [INCONNUE]s\f\0\0\0Y [INCONNUE]s\f\0\0\0Z [INCONNUE]Rw\0\0\0s\13\0\0\0CREE PAR CODE_ASTERs\v\0\0\0SANS UNITESg\0\0\0\0\0\0ð¿iÿÿÿÿi\0\0\0\0i
7393 +\0\0\0i\b\0\0\0i\ 4\0\0\0i\13\0\0\0i\16\0\0\0i\17\0\0\0i\14\0\0\0i\ e\0\0\0i\ 6\0\0\0i\ 1\0\0\0i\ 5\0\0\0\0\0\0i\v\0\0\0i\f\0\0\0i\10\0\0\0i\11\0\0\0i\ f\0\0\0i\15\0\0\0i\18\0\0\0i\ 2\0\0\0i\a\0\0\0i\r\0\0\0i\12\0\0\0t\ 4\0\0\0CH13g\0\0\0\0\0\0Ð?gUUUUUUÅ?gÝFà\85@\9bÃ?g\0\0\0\0\0\0à¿g#¹\1fz¿dä?g\10\11\11\11\11\11Á?g\1e3\90E§yâ¿g\1e3\90E§yâ?(\17\0\0\0R
7394 +\0\0\0Ry\0\0\0R\ 2\0\0\0Rz\0\0\0R{\0\0\0RT\0\0\0R\f\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\e\0\0\0Rl\0\0\0R\17\0\0\0Rn\0\0\0R\18\0\0\0RO\0\0\0R\ 3\0\0\0R|\0\0\0R-\0\0\0R}\0\0\0R~\0\0\0RR\0\0\0R\7f\0\0\0R\81\0\0\0(\ 6\0\0\0R\1c\0\0\0Rf\0\0\0R\82\0\0\0R"\0\0\0R\19\0\0\0R\83\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0buildFieldOnGauss_3\7f\ 2\0\0s2\0\0\0\0\ 1ó\ 1\16\ 1\ f\ 1\r\0\r\0\13\ 1\r\ 1\r\ 1±\ 1\14\ 1\14\ 1\16\ 1\14\ 1\ 4\ 1\14\ 1\14\ 1\ f\0\r\0\r\ 1\r\ 1I\ 1\82\ 1 \ 1Ä\ 1c\ 1\0\0\0\ 6\0\0\0L\0\0\0C\0\0\0\ 4\0\0t\0\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 3\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 1\0d\ 3\0d\ 4\0d\ 2\0d\ 3\0d\ 4\0d\ 1\0d\ 3\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 1\0d\ 3\0d\ 1\0d\ 5\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 5\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 1\0d\ 5\0d\ 3\0d\ 1\0d\ 6\0d\ 3\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 4\0d\ 6\0d\ 3\0d\ 4\0d\ 2\0d\ 3\0d\ 3\0d\ 5\0d\ 3\0d\ 3\0d\ 6\0d\ 3\0d\ 3\0d\ 2\0d\ 3\0gK\0d\a\0d\b\0\83\ 3\0}\ 1\0|\ 1\0j\ 1\0d    \0d
7395 +\0d\v\0g\ 3\0\83\ 1\0\ 1t\ 2\0d\f\0d\b\0\83\ 2\0}\ 2\0|\ 2\0j\ 3\0d\r\0\83\ 1\0\ 1|\ 2\0j\ 4\0d\ e\0\83\ 1\0\ 1|\ 2\0j\ 5\0d\ f\0d\10\0d\10\0\83\ 3\0\ 1|\ 2\0j\ 6\0|\ 1\0\83\ 1\0\ 1|\ 2\0j\a\0d\11\0\83\ 1\0\ 1d\b\0d\12\0d\13\0d\14\0g\ 4\0d\15\0d\16\0d\17\0d\18\0d\19\0g\ 5\0d\11\0d\1a\0d\e\0d\b\0d\13\0d\14\0g\ 6\0d\14\0d\13\0d\12\0d\1c\0d\1d\0d\1e\0g\ 6\0d\1f\0\0d!\0d\19\0d\15\0d\18\0g\ 6\0d\19\0d\18\0d\17\0d"\0d#\0d$\0g\ 6\0d\e\0d%\0d\1c\0d\14\0d\1a\0d&\0d\1d\0d\13\0g\b\0d\1f\0d'\0d"\0d\19\0d!\0d(\0d#\0d\18\0g\b\0g\b\0}\ 3\0|\ 2\0j\b\0t      \0|\ 3\0d\11\0\19\83\ 2\0\ 1|\ 2\0j\b\0t
7396 +\0|\ 3\0d\e\0\19\83\ 2\0\ 1x+\0t\v\0d%\0d\1a\0\83\ 2\0D]\1a\0}\ 4\0|\ 2\0j\b\0t\f\0|\ 3\0|\ 4\0\19\83\ 2\0\ 1qH\ 2W|\ 2\0j\b\0t\r\0|\ 3\0d\1a\0\19\83\ 2\0\ 1|\ 2\0j\b\0t\r\0|\ 3\0d&\0\19\83\ 2\0\ 1t\ e\0j\ f\0t\10\0\83\ 1\0}\ 5\0|\ 5\0j\11\0d)\0\83\ 1\0\ 1|\ 5\0j\12\0t\13\0\83\ 1\0\ 1|\ 5\0j\14\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\15\0d\11\0g\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 3\0d\ 3\0d\ 1\0d\ 1\0g\f\0d*\0d*\0d*\0g\ 3\0d+\0g\ 1\0\83\ 4\0\ 1|\ 5\0j\15\0d\e\0g\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ f\0d\ 1\0d\ f\0d\ 1\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 3\0g\ f\0d\ 4\0d\ 1\0d,\0d\ 1\0d\ 4\0d,\0d-\0d\ 1\0d,\0d\ 1\0d-\0d,\0d\ 1\0d\ 1\0d.\0g\ f\0d/\0d/\0d/\0d/\0d/\0g\ 5\0\83\ 4\0\ 1|\ 5\0j\15\0d%\0d\b\0d\14\0d\1c\0g\ 4\0d\ f\0d\ 3\0d\ 1\0d\ f\0d\ 1\0d\ 1\0d\ f\0d\ 1\0d\ 3\0d\ 3\0d\ 3\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 3\0g\12\0d0\0d\ 4\0d\ 4\0d0\0d\ 1\0d\ 4\0d0\0d\ 4\0d\ 1\0d1\0d\ 4\0d\ 4\0d1\0d\ 1\0d\ 4\0d1\0d\ 4\0d\ 1\0g\12\0d+\0d+\0d+\0d+\0d+\0d+\0g\ 6\0\83\ 4\0\ 1|\ 5\0j\15\0d\1a\0d&\0g\ 2\0d\ f\0d\ f\0d\ f\0d\ f\0d\ 3\0d\ f\0d\ 3\0d\ 3\0d\ f\0d\ 3\0d\ f\0d\ f\0d\ f\0d\ f\0d\ 3\0d\ f\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ f\0d\ 3\0g\18\0d0\0d0\0d0\0d0\0d0\0d1\0d0\0d1\0d0\0d0\0d1\0d1\0d1\0d0\0d0\0d1\0d0\0d1\0d1\0d1\0d0\0d1\0d1\0d1\0g\18\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0g\b\0\83\ 4\0\ 1t\16\0|\ 5\0\83\ 1\0S(2\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0@g\0\0\0\0\0\0ð?g\0\0\0\0\0\0à?g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\ 4@i\19\0\0\0i\ 3\0\0\0s\f\0\0\0X [INCONNUE]s\f\0\0\0Y [INCONNUE]s\f\0\0\0Z [INCONNUE]R\85\0\0\0s\13\0\0\0CREE PAR CODE_ASTERs\v\0\0\0SANS UNITESg\0\0\0\0\0\0ð¿iÿÿÿÿi\0\0\0\0i
7397 +\0\0\0i\b\0\0\0i\ 4\0\0\0i\13\0\0\0i\16\0\0\0i\17\0\0\0i\14\0\0\0i\ e\0\0\0i\ 6\0\0\0i\ 1\0\0\0i\ 5\0\0\0\0\0\0i\v\0\0\0i\f\0\0\0i\10\0\0\0i\11\0\0\0i\ f\0\0\0i\15\0\0\0i\18\0\0\0i\ 2\0\0\0i\a\0\0\0i\r\0\0\0i\12\0\0\0t\ 4\0\0\0CH23g\0\0\0\0\0\0Ð?gUUUUUUÅ?gÝFà\85@\9bÃ?g\0\0\0\0\0\0à¿g#¹\1fz¿dä?g\10\11\11\11\11\11Á?g\1e3\90E§yâ¿g\1e3\90E§yâ?(\17\0\0\0R
7398 +\0\0\0Ry\0\0\0R\ 2\0\0\0Rz\0\0\0R{\0\0\0RT\0\0\0R\f\0\0\0R\ 5\0\0\0R\ 6\0\0\0R\e\0\0\0Rl\0\0\0R\17\0\0\0Rn\0\0\0R\18\0\0\0RO\0\0\0R\ 3\0\0\0R|\0\0\0R-\0\0\0R}\0\0\0R~\0\0\0RR\0\0\0R\7f\0\0\0R\81\0\0\0(\ 6\0\0\0R\1c\0\0\0Rf\0\0\0R\82\0\0\0R"\0\0\0R\19\0\0\0R\83\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\13\0\0\0buildFieldOnGauss_4\97\ 2\0\0s2\0\0\0\0\ 1ó\ 1\16\ 1\ f\ 1\r\0\r\0\13\ 1\r\ 1\r\ 1±\ 1\14\ 1\14\ 1\16\ 1\14\ 1\ 4\ 1\14\ 1\14\ 1\ f\0\r\0\r\ 1\r\ 1I\ 1\82\ 1 \ 1Ä\ 1c\ 4\0\0\0\f\0\0\0   \0\0\0C\0\0\0s1\ 1\0\0d\ 1\0d\ 2\0l\0\0m\ 1\0}\ 4\0\ 1d\ 1\0d\ 3\0l\ 2\0m\ 3\0}\ 5\0\ 1g\0\0t\ 4\0d\ 4\0\83\ 1\0D]\1d\0}\ 6\0|\ 4\0|\ 3\0|\ 6\0|\ 5\0\14d\ 5\0\15\83\ 2\0^\ 2\0q-\0}\a\0|\a\0d\ 1\0\19j\ 5\0|\a\0d\ 1\0\19j\ 6\0|\a\0d\ 6\0\19j\ 5\0|\a\0d\ 6\0\19j\ 6\0|\a\0d\a\0\19j\ 5\0|\a\0d\a\0\19j\ 6\0|\a\0d\b\0\19j\ 5\0|\a\0d\b\0\19j\ 6\0g\b\0}\b\0t\a\0t\ 4\0d       \0\83\ 1\0\83\ 1\0}        \0t\b\0j   \0d
7399 +\0d\v\0\83\ 2\0}
7400 +\0|
7401 +\0j
7402 +\0d\b\0\83\ 1\0\ 1t\v\0j   \0|\b\0t\f\0|\b\0\83\ 1\0d\v\0\1ad\v\0\83\ 3\0}\v\0|\v\0|\ 1\0|\ 2\0f\ 2\07}\v\0|
7403 +\0j\r\0|\v\0\83\ 1\0\ 1|
7404 +\0j\ e\0t\ f\0|       \0\83\ 2\0\ 1|
7405 +\0j\10\0\83\0\0\ 1|
7406 +\0S(\f\0\0\0Niÿÿÿÿ(\ 1\0\0\0t\ 4\0\0\0rect(\ 1\0\0\0t\ 2\0\0\0pii\b\0\0\0g\0\0\0\0\0\0\10@i\ 3\0\0\0i\ 5\0\0\0i\ 1\0\0\0i\ 4\0\0\0t\ 6\0\0\0circlei\ 2\0\0\0(\11\0\0\0t\ 5\0\0\0cmathR\8c\0\0\0t\ 4\0\0\0mathR\8d\0\0\0R\17\0\0\0t\ 4\0\0\0realt\ 4\0\0\0imagR\80\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 5\0\0\0R
7407 +\0\0\0t\ 3\0\0\0lenR\f\0\0\0R\ 6\0\0\0t\v\0\0\0NORM_QPOLYGR \0\0\0(\f\0\0\0R\1c\0\0\0t\b\0\0\0center_Xt\b\0\0\0center_Yt\ 6\0\0\0radiusR\8c\0\0\0R\8d\0\0\0R\19\0\0\0t\ 1\0\0\0cR!\0\0\0t\ 6\0\0\0connect\b\0\0\0baseMesht
7408 +\0\0\0meshCoords(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\v\0\0\0buildCircle®\ 2\0\0s\1c\0\0\0\0\ 1\10\ 1\10\ 20\ 1(\ 1.\ 1\12\ 1\12\ 1\r\ 1\1f\ 1\10\ 1\r\ 2\10\ 1
7409 +\ 1c\ 4\0\0\0\f\0\0\0\b\0\0\0C\0\0\0s%\ 1\0\0d\ 1\0d\ 2\0l\0\0m\ 1\0}\ 4\0\ 1d\ 1\0d\ 3\0l\ 2\0m\ 3\0}\ 5\0\ 1g\0\0t\ 4\0d\ 4\0\83\ 1\0D]\1d\0}\ 6\0|\ 4\0|\ 3\0|\ 6\0|\ 5\0\14d\ 5\0\15\83\ 2\0^\ 2\0q-\0}\a\0g\0\0}\b\0x5\0t\ 4\0d\ 4\0\83\ 1\0D]'\0}\ 6\0|\b\0j\ 5\0|\a\0|\ 6\0\19j\ 6\0|\a\0|\ 6\0\19j\a\0g\ 2\0\83\ 1\0\ 1qc\0Wd\ 6\0d\a\0d\b\0d        \0d
7410 +\0d\v\0d\f\0d\r\0g\b\0\0t\b\0j   \0d\ e\0d\f\0\83\ 2\0}
7411 +\0|
7412 +\0j
7413 +\0d     \0\83\ 1\0\ 1t\v\0j       \0|\b\0t\f\0|\b\0\83\ 1\0d\f\0\1ad\f\0\83\ 3\0}\v\0|\v\0|\ 1\0|\ 2\0f\ 2\07}\v\0|
7414 +\0j\r\0|\v\0\83\ 1\0\ 1|
7415 +\0j\ e\0t\ f\0|       \0\83\ 2\0\ 1|
7416 +\0j\10\0\83\0\0\ 1|
7417 +\0S(\ f\0\0\0Niÿÿÿÿ(\ 1\0\0\0R\8c\0\0\0(\ 1\0\0\0R\8d\0\0\0i\b\0\0\0g\0\0\0\0\0\0\10@i\a\0\0\0i\ 5\0\0\0i\ 3\0\0\0i\ 1\0\0\0i\ 6\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\0\0\0\0R\8e\0\0\0(\11\0\0\0R\8f\0\0\0R\8c\0\0\0R\90\0\0\0R\8d\0\0\0R\17\0\0\0t\ 6\0\0\0extendR\91\0\0\0R\92\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 5\0\0\0R
7418 +\0\0\0R\93\0\0\0R\f\0\0\0R\ 6\0\0\0R\94\0\0\0R       \0\0\0(\f\0\0\0R\1c\0\0\0R\95\0\0\0R\96\0\0\0R\97\0\0\0R\8c\0\0\0R\8d\0\0\0R\19\0\0\0R\98\0\0\0R!\0\0\0R\99\0\0\0R\9a\0\0\0R\9b\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\f\0\0\0buildCircle2À\ 2\0\0s\1e\0\0\0\0\ 1\10\ 1\10\ 20\ 1\ 6\ 1\13\ 1%\ 1\1e\ 1\12\ 1\r\ 1\1f\ 1\10\ 1\r\ 2\10\ 1
7419 +\ 1(!\0\0\0t\b\0\0\0__name__t
7420 +\0\0\0__module__R\12\0\0\0R\16\0\0\0R\1a\0\0\0R\1d\0\0\0R\1e\0\0\0R&\0\0\0R)\0\0\0R*\0\0\0R+\0\0\0R.\0\0\0R/\0\0\0R1\0\0\0R4\0\0\0R6\0\0\0R;\0\0\0R<\0\0\0Rb\0\0\0Rc\0\0\0Rg\0\0\0Ri\0\0\0Rq\0\0\0Re\0\0\0Rt\0\0\0Rv\0\0\0R\84\0\0\0R\87\0\0\0R\89\0\0\0R\8b\0\0\0R\9c\0\0\0R\9e\0\0\0t\v\0\0\0classmethod(\0\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyR\ 1\0\0\0\17\0\0\0sz\0\0\0\ 6\ 1   \11       \r       \12       \1a       \11       H       \ f       \11       \12       \1a       \14       \f       \ f       \ f       \16       \11       7       6       \v       \r       \18                       \15       \1e       \1d       \1d       \18       \17       \12       \13\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1N(\0\0\0\0(\ 2\0\0\0t\v\0\0\0MEDCouplingR\ 1\0\0\0(\0\0\0\0(\0\0\0\0(\0\0\0\0s}\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDCoupling_Swig/MEDCouplingDataForTest.pyt\b\0\0\0<module>\15\0\0\0s\ 2\0\0\0
7421 +\ 2
7422 \ Pas de fin de ligne à la fin du fichier
7423 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py
7424 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py     2018-04-19 17:04:36.734222663 +0200
7425 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py     2018-04-19 17:25:17.260787928 +0200
7426 @@ -2220,7 +2220,7 @@
7427          fieldOnCells.setName("MyTensorFieldOnCellNoTime")
7428          fieldOnCells.setMesh(mesh)
7429          array=DataArrayDouble()
7430 -        array.alloc(fieldOnCells.getMesh().getNumberOfCells(),9) # Implicitely fieldOnCells will be a 9 components field.
7431 +        array.alloc(fieldOnCells.getMesh().getNumberOfCells(),9) # Implicitly fieldOnCells will be a 9 components field.
7432          array.fillWithValue(7.)
7433          fieldOnCells.setArray(array)
7434          # fieldOnCells is now usable
7435 @@ -2252,7 +2252,7 @@
7436          fieldOnNodes.setName("MyScalarFieldOnNodeNoTime")
7437          fieldOnNodes.setMesh(mesh)
7438          array=DataArrayDouble()
7439 -        array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),1) # Implicitely fieldOnNodes will be a 1 component field.
7440 +        array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),1) # Implicitly fieldOnNodes will be a 1 component field.
7441          array.fillWithValue(7.)
7442          fieldOnNodes.setArray(array)
7443          # fieldOnNodes is now usable
7444 @@ -2272,7 +2272,7 @@
7445          fieldOnCells.setTime(4.22,2,-1) # Time attached is 4.22 ms, iteration id is 2 and order id (or sub iteration id) is -1
7446          fieldOnCells.setMesh(mesh)
7447          array=DataArrayDouble()
7448 -        array.alloc(fieldOnCells.getMesh().getNumberOfCells(),2) # Implicitely fieldOnCells will be a 2 components field.
7449 +        array.alloc(fieldOnCells.getMesh().getNumberOfCells(),2) # Implicitly fieldOnCells will be a 2 components field.
7450          array.fillWithValue(7.)
7451          fieldOnCells.setArray(array)
7452          # fieldOnCells is now usable
7453 @@ -2293,7 +2293,7 @@
7454          fieldOnNodes.setEndTime(6.44,4,-1)# fieldOnNodes is defined in interval [4.22 ms,6.44 ms]
7455          fieldOnNodes.setMesh(mesh)
7456          array=DataArrayDouble()
7457 -        array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),3) # Implicitely fieldOnNodes will be a 3 components field.
7458 +        array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),3) # Implicitly fieldOnNodes will be a 3 components field.
7459          array.fillWithValue(7.)
7460          fieldOnNodes.setArray(array)
7461          # fieldOnNodes is now usable
7462 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingFinalize.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingFinalize.i
7463 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingFinalize.i  2018-04-19 17:04:36.735222683 +0200
7464 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingFinalize.i  2018-04-19 17:25:17.278788284 +0200
7465 @@ -19,7 +19,8 @@
7466  
7467  %pythoncode %{
7468  InterpKernelException.__reduce__=INTERPKERNELExceptionReduce
7469 -DataArrayDouble.__new__=classmethod(MEDCouplingDataArrayDoublenew)
7470 +
7471 +DataArrayDouble.__reduce__=MEDCouplingDataArrayDoubleReduce
7472  DataArrayDouble.__iadd__=MEDCouplingDataArrayDoubleIadd
7473  DataArrayDouble.__isub__=MEDCouplingDataArrayDoubleIsub
7474  DataArrayDouble.__imul__=MEDCouplingDataArrayDoubleImul
7475 @@ -32,7 +33,7 @@
7476  DataArrayDouble.__ifloordiv__=MEDCouplingDataArrayDoubleIdiv
7477  DataArrayDouble.__rfloordiv__=DataArrayDouble.__rdiv__
7478  
7479 -DataArrayInt.__new__=classmethod(MEDCouplingDataArrayIntnew)
7480 +DataArrayInt.__reduce__=MEDCouplingDataArrayIntReduce
7481  DataArrayInt.__iadd__=MEDCouplingDataArrayIntIadd
7482  DataArrayInt.__isub__=MEDCouplingDataArrayIntIsub
7483  DataArrayInt.__imul__=MEDCouplingDataArrayIntImul
7484 @@ -46,9 +47,9 @@
7485  DataArrayInt.__ifloordiv__=MEDCouplingDataArrayIntIdiv
7486  DataArrayInt.__rfloordiv__=DataArrayInt.__rdiv__
7487  
7488 -DataArrayByte.__new__=classmethod(MEDCouplingDataArrayBytenew)
7489 -
7490 -DataArrayFloat.__new__=classmethod(MEDCouplingDataArrayFloatnew)
7491 +DataArrayByte.__reduce__=MEDCouplingDataArrayByteReduce
7492 +  
7493 +DataArrayFloat.__reduce__=MEDCouplingDataArrayFloatReduce
7494  DataArrayFloat.__iadd__=MEDCouplingDataArrayFloatIadd
7495  DataArrayFloat.__isub__=MEDCouplingDataArrayFloatIsub
7496  DataArrayFloat.__imul__=MEDCouplingDataArrayFloatImul
7497 @@ -56,7 +57,7 @@
7498  DataArrayFloat.__itruediv__=MEDCouplingDataArrayFloatIdiv
7499  DataArrayFloat.__ifloordiv__=MEDCouplingDataArrayFloatIdiv
7500  
7501 -MEDCouplingFieldDouble.__new__=classmethod(MEDCouplingFieldDoublenew)
7502 +MEDCouplingFieldDouble.__reduce__=MEDCouplingFieldDoubleReduce
7503  MEDCouplingFieldDouble.__iadd__=MEDCouplingFieldDoubleIadd
7504  MEDCouplingFieldDouble.__isub__=MEDCouplingFieldDoubleIsub
7505  MEDCouplingFieldDouble.__imul__=MEDCouplingFieldDoubleImul
7506 @@ -69,9 +70,9 @@
7507  MEDCouplingFieldDouble.__rfloordiv__=MEDCouplingFieldDouble.__rdiv__
7508  MEDCouplingFieldDouble.__ifloordiv__=MEDCouplingFieldDoubleIdiv
7509  
7510 -MEDCouplingFieldInt.__new__=classmethod(MEDCouplingFieldIntnew)
7511 +MEDCouplingFieldInt.__reduce__=MEDCouplingFieldIntReduce
7512    
7513 -MEDCouplingFieldFloat.__new__=classmethod(MEDCouplingFieldFloatnew)
7514 +MEDCouplingFieldFloat.__reduce__=MEDCouplingFieldFloatReduce
7515  
7516  DataArrayDoubleTuple.__iadd__=MEDCouplingDataArrayDoubleTupleIadd
7517  DataArrayDoubleTuple.__isub__=MEDCouplingDataArrayDoubleTupleIsub
7518 @@ -88,16 +89,16 @@
7519  DataArrayIntTuple.__ifloordiv__=MEDCouplingDataArrayIntTupleIdiv
7520  DataArrayIntTuple.__imod__=MEDCouplingDataArrayIntTupleImod
7521  
7522 -DenseMatrix.__iadd__=ParaMEDMEMDenseMatrixIadd
7523 -DenseMatrix.__isub__=ParaMEDMEMDenseMatrixIsub
7524 +DenseMatrix.__iadd__=MEDCouplingDenseMatrixIadd
7525 +DenseMatrix.__isub__=MEDCouplingDenseMatrixIsub
7526  
7527 -MEDCouplingUMesh.__new__=classmethod(MEDCouplingUMeshnew)
7528 -MEDCoupling1DGTUMesh.__new__=classmethod(MEDCoupling1DGTUMeshnew)
7529 -MEDCoupling1SGTUMesh.__new__=classmethod(MEDCoupling1SGTUMeshnew)
7530 -MEDCouplingCurveLinearMesh.__new__=classmethod(MEDCouplingCurveLinearMeshnew)
7531 -MEDCouplingCMesh.__new__=classmethod(MEDCouplingCMeshnew)
7532 -MEDCouplingIMesh.__new__=classmethod(MEDCouplingIMeshnew)
7533 -MEDCouplingMappedExtrudedMesh.__new__=classmethod(MEDCouplingExtrudedMeshnew)
7534 +MEDCouplingUMesh.__reduce__=MEDCouplingUMeshReduce
7535 +MEDCoupling1DGTUMesh.__reduce__=MEDCoupling1DGTUMeshReduce
7536 +MEDCoupling1SGTUMesh.__reduce__=MEDCoupling1SGTUMeshReduce
7537 +MEDCouplingCurveLinearMesh.__reduce__=MEDCouplingCurveLinearMeshReduce
7538 +MEDCouplingCMesh.__reduce__=MEDCouplingCMeshReduce
7539 +MEDCouplingIMesh.__reduce__=MEDCouplingIMeshReduce
7540 +MEDCouplingMappedExtrudedMesh.__reduce__=MEDCouplingMappedExtrudedMeshReduce
7541  
7542  DataArrayAsciiCharIterator.__next__ = DataArrayAsciiCharIterator.next
7543  DataArrayIntIterator.__next__ = DataArrayIntIterator.next
7544 @@ -106,7 +107,20 @@
7545  MEDCouplingUMeshCellByTypeIterator.__next__ = MEDCouplingUMeshCellByTypeIterator.next
7546  
7547  del INTERPKERNELExceptionReduce
7548 -del MEDCouplingDataArrayDoublenew
7549 +del MEDCouplingDataArrayDoubleReduce
7550 +del MEDCouplingDataArrayFloatReduce
7551 +del MEDCouplingDataArrayIntReduce
7552 +del MEDCouplingDataArrayByteReduce
7553 +del MEDCouplingUMeshReduce
7554 +del MEDCouplingCMeshReduce
7555 +del MEDCouplingIMeshReduce
7556 +del MEDCouplingMappedExtrudedMeshReduce
7557 +del MEDCouplingCurveLinearMeshReduce
7558 +del MEDCoupling1SGTUMeshReduce
7559 +del MEDCoupling1DGTUMeshReduce
7560 +del MEDCouplingFieldDoubleReduce
7561 +del MEDCouplingFieldFloatReduce
7562 +del MEDCouplingFieldIntReduce
7563  del MEDCouplingDataArrayDoubleIadd
7564  del MEDCouplingDataArrayDoubleIsub
7565  del MEDCouplingDataArrayDoubleImul
7566 @@ -116,14 +130,11 @@
7567  del MEDCouplingFieldDoubleImul
7568  del MEDCouplingFieldDoubleIdiv
7569  del MEDCouplingFieldDoubleIpow
7570 -del MEDCouplingDataArrayIntnew
7571  del MEDCouplingDataArrayIntIadd
7572  del MEDCouplingDataArrayIntIsub
7573  del MEDCouplingDataArrayIntImul
7574  del MEDCouplingDataArrayIntIdiv
7575  del MEDCouplingDataArrayIntImod
7576 -del MEDCouplingDataArrayBytenew
7577 -del MEDCouplingDataArrayFloatnew
7578  del MEDCouplingDataArrayFloatIadd
7579  del MEDCouplingDataArrayFloatIsub
7580  del MEDCouplingDataArrayFloatImul
7581 @@ -137,14 +148,6 @@
7582  del MEDCouplingDataArrayIntTupleImul
7583  del MEDCouplingDataArrayIntTupleIdiv
7584  del MEDCouplingDataArrayIntTupleImod
7585 -del ParaMEDMEMDenseMatrixIadd
7586 -del ParaMEDMEMDenseMatrixIsub
7587 -del MEDCouplingUMeshnew
7588 -del MEDCoupling1DGTUMeshnew
7589 -del MEDCoupling1SGTUMeshnew
7590 -del MEDCouplingCurveLinearMeshnew
7591 -del MEDCouplingCMeshnew
7592 -del MEDCouplingIMeshnew
7593 -del MEDCouplingExtrudedMeshnew
7594 -del MEDCouplingFieldDoublenew
7595 +del MEDCouplingDenseMatrixIadd
7596 +del MEDCouplingDenseMatrixIsub
7597  %}
7598 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCoupling.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCoupling.i
7599 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCoupling.i  2018-04-19 17:04:36.728222543 +0200
7600 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCoupling.i  2018-04-19 17:25:17.280788323 +0200
7601 @@ -17,12 +17,11 @@
7602  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
7603  //
7604  
7605 +%module MEDCoupling
7606 +
7607  %include "MEDCouplingCommon.i"
7608  
7609  %pythoncode %{
7610 -def MEDCouplingDataArrayDoublenew(cls,*args):
7611 -    import _MEDCoupling
7612 -    return _MEDCoupling.DataArrayDouble____new___(cls,args)
7613  def MEDCouplingDataArrayDoubleIadd(self,*args):
7614      import _MEDCoupling
7615      return _MEDCoupling.DataArrayDouble____iadd___(self, self, *args)
7616 @@ -38,9 +37,6 @@
7617  def MEDCouplingDataArrayDoubleIpow(self,*args):
7618      import _MEDCoupling
7619      return _MEDCoupling.DataArrayDouble____ipow___(self, self, *args)
7620 -def MEDCouplingFieldDoublenew(cls,*args):
7621 -    import _MEDCoupling
7622 -    return _MEDCoupling.MEDCouplingFieldDouble____new___(cls,args)
7623  def MEDCouplingFieldDoubleIadd(self,*args):
7624      import _MEDCoupling
7625      return _MEDCoupling.MEDCouplingFieldDouble____iadd___(self, self, *args)
7626 @@ -56,15 +52,6 @@
7627  def MEDCouplingFieldDoubleIpow(self,*args):
7628      import _MEDCoupling
7629      return _MEDCoupling.MEDCouplingFieldDouble____ipow___(self, self, *args)
7630 -def MEDCouplingFieldIntnew(cls,*args):
7631 -    import _MEDCoupling
7632 -    return _MEDCoupling.MEDCouplingFieldInt____new___(cls,args)
7633 -def MEDCouplingFieldFloatnew(cls,*args):
7634 -    import _MEDCoupling
7635 -    return _MEDCoupling.MEDCouplingFieldFloat____new___(cls,args)
7636 -def MEDCouplingDataArrayIntnew(cls,*args):
7637 -    import _MEDCoupling
7638 -    return _MEDCoupling.DataArrayInt____new___(cls,args)
7639  def MEDCouplingDataArrayIntIadd(self,*args):
7640      import _MEDCoupling
7641      return _MEDCoupling.DataArrayInt____iadd___(self, self, *args)
7642 @@ -83,12 +70,6 @@
7643  def MEDCouplingDataArrayIntIpow(self,*args):
7644      import _MEDCoupling
7645      return _MEDCoupling.DataArrayInt____ipow___(self, self, *args)
7646 -def MEDCouplingDataArrayBytenew(cls,*args):
7647 -    import _MEDCoupling
7648 -    return _MEDCoupling.DataArrayByte____new___(cls,args)
7649 -def MEDCouplingDataArrayFloatnew(cls,*args):
7650 -    import _MEDCoupling
7651 -    return _MEDCoupling.DataArrayFloat____new___(cls,args)
7652  def MEDCouplingDataArrayFloatIadd(self,*args):
7653      import _MEDCoupling
7654      return _MEDCoupling.DataArrayFloat____iadd___(self, self, *args)
7655 @@ -128,33 +109,12 @@
7656  def MEDCouplingDataArrayIntTupleImod(self,*args):
7657      import _MEDCoupling
7658      return _MEDCoupling.DataArrayIntTuple____imod___(self, self, *args)
7659 -def ParaMEDMEMDenseMatrixIadd(self,*args):
7660 +def MEDCouplingDenseMatrixIadd(self,*args):
7661      import _MEDCoupling
7662      return _MEDCoupling.DenseMatrix____iadd___(self, self, *args)
7663 -def ParaMEDMEMDenseMatrixIsub(self,*args):
7664 +def MEDCouplingDenseMatrixIsub(self,*args):
7665      import _MEDCoupling
7666      return _MEDCoupling.DenseMatrix____isub___(self, self, *args)
7667 -def MEDCouplingUMeshnew(cls,*args):
7668 -    import _MEDCoupling
7669 -    return _MEDCoupling.MEDCouplingUMesh____new___(cls,args)
7670 -def MEDCoupling1DGTUMeshnew(cls,*args):
7671 -    import _MEDCoupling
7672 -    return _MEDCoupling.MEDCoupling1DGTUMesh____new___(cls,args)
7673 -def MEDCoupling1SGTUMeshnew(cls,*args):
7674 -    import _MEDCoupling
7675 -    return _MEDCoupling.MEDCoupling1SGTUMesh____new___(cls,args)
7676 -def MEDCouplingCurveLinearMeshnew(cls,*args):
7677 -    import _MEDCoupling
7678 -    return _MEDCoupling.MEDCouplingCurveLinearMesh____new___(cls,args)
7679 -def MEDCouplingCMeshnew(cls,*args):
7680 -    import _MEDCoupling
7681 -    return _MEDCoupling.MEDCouplingCMesh____new___(cls,args)
7682 -def MEDCouplingIMeshnew(cls,*args):
7683 -    import _MEDCoupling
7684 -    return _MEDCoupling.MEDCouplingIMesh____new___(cls,args)
7685 -def MEDCouplingExtrudedMeshnew(cls,*args):
7686 -    import _MEDCoupling
7687 -    return _MEDCoupling.MEDCouplingMappedExtrudedMesh____new___(cls,args)
7688  %}
7689  
7690  %include "MEDCouplingFinalize.i"
7691 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingIntersectTest.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingIntersectTest.py
7692 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingIntersectTest.py    2018-04-19 17:04:36.735222683 +0200
7693 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingIntersectTest.py    2018-04-19 17:25:17.284788402 +0200
7694 @@ -312,6 +312,56 @@
7695          self.assertTrue(f.getArray().isEqual(valuesExpected,1e-12))
7696          pass
7697  
7698 +    def testIntersect2DMeshes7(self):
7699 +        """ Quadratic precision values were improperly reset before testing colinearities """
7700 +        eps = 1.0e-08
7701 +        mesh1 = MEDCouplingUMesh('assemblyGrid_Pij', 2)
7702 +        coo = DataArrayDouble([(10.80630000000000,10.80630000000000),(9.48750000000000,10.80630000000000),(10.75250000000000,10.80630000000000),(9.48750000000000,9.48750000000000),(10.75250000000000,9.48750000000000),(10.80630000000000,9.48750000000000),(9.48750000000000,10.75250000000000),(10.75250000000000,10.75250000000000),(10.80630000000000,10.75250000000000)])
7703 +        mesh1.setCoords(coo)
7704 +        c = DataArrayInt([5, 4, 3, 6, 7, 5, 5, 4, 7, 8, 5, 1, 2, 7, 6, 5, 2, 0, 8, 7])
7705 +        cI = DataArrayInt([0, 5, 10, 15, 20])
7706 +        mesh1.setConnectivity(c, cI)
7707 +        mesh2 = MEDCouplingUMesh('merge', 2)
7708 +        coo = DataArrayDouble([(9.48750000000001,9.48750000000001),(10.75249999999975,9.48749999999955),(10.12000000000001,9.48750000000001),(10.80629999999976,9.48749999999955),(8.22250000000029,10.75250000000028),(9.48749999999961,10.75249999999971),(8.85500000000029,10.75250000000028),(9.48750000000001,10.12000000000001),(10.75249999999338,10.75249999999338),(10.41000000000001,10.12000000000001),(10.32506096654411,10.32506096654411),(10.12000000000001,10.41000000000001),(9.91493903345591,10.32506096654411),(9.83000000000001,10.12000000000001),(9.91493903345591,9.91493903345591),(10.12000000000001,9.83000000000001),(10.32506096654411,9.91493903345591),(10.11999999999961,10.75249999999971),(10.75249999999975,10.11999999999958),(10.49000000000001,10.12000000000001),(10.38162950903903,10.38162950903903),(10.12000000000001,10.49000000000001),(9.85837049096099,10.38162950903903),(9.75000000000001,10.12000000000001),(9.85837049096099,9.85837049096099),(10.12000000000001,9.75000000000001),(10.38162950903903,9.85837049096099),(9.88665476220845,10.35334523779157),(9.88665476220845,9.88665476220845),(9.67293524548050,9.67293524548050),(9.67293524548050,10.56706475451952),(10.80629999999339,10.75249999999338),(8.22250000000029,10.80630000000028),(9.48749999999961,10.80629999999971),(10.75249999999338,10.80629999999339),(10.80629999999339,10.80629999999339),(10.77939999999976,9.48749999999955),(10.77939999999339,10.75249999999338),(10.80629999999976,10.11999999999958),(8.22250000000029,10.77940000000028),(8.85500000000029,10.80630000000028),(9.48749999999961,10.77939999999971),(10.11999999999961,10.80629999999971),(10.75249999999338,10.77939999999339),(10.77939999999339,10.80629999999339),(10.80629999999339,10.77939999999339)])
7709 +        mesh2.setCoords(coo)
7710 +        c = DataArrayInt([32, 4, 32, 33, 5, 39, 40, 41, 6, 32, 5, 33, 34, 8, 41, 42, 43, 17, 32, 8, 34, 35, 31, 43, 44, 45, 37, 32, 14, 12, 10, 16, 13, 11, 9, 15, 32, 22, 12, 14, 24, 27, 13, 28, 23, 32, 24, 0, 5, 22, 29, 7, 30, 23, 32, 24, 14, 16, 10, 12, 22, 20, 26, 28, 15, 9, 11, 27, 21, 19, 25, 32, 22, 5, 8, 1, 0, 24, 26, 20, 30, 17, 18, 2, 29, 25, 19, 21, 32, 1, 8, 31, 3, 18, 37, 38, 36])
7711 +        cI = DataArrayInt([0, 9, 18, 27, 36, 45, 54, 71, 88, 97])
7712 +        mesh2.setConnectivity(c, cI)
7713 +        result, mapResToInit, mapResToRef = MEDCouplingUMesh.Intersect2DMeshes(mesh1, mesh2, eps)
7714 +        result.zipCoords()
7715 +        exp_coo = [9.48750000000001, 9.48750000000001, 10.75249999999975, 9.48749999999955, 10.80629999999976, 9.48749999999955, 9.48749999999961, 10.75249999999971, 10.75249999999338, 10.75249999999338, 10.32506096654411, 10.32506096654411, 9.91493903345591, 10.32506096654411, 9.91493903345591, 9.91493903345591, 10.32506096654411, 9.91493903345591, 10.38162950903903, 10.38162950903903, 9.85837049096099, 10.38162950903903, 9.85837049096099, 9.85837049096099, 10.38162950903903, 9.85837049096099, 10.80629999999339, 10.75249999999338, 9.48749999999961, 10.80629999999971, 10.75249999999338, 10.80629999999339, 10.80629999999339, 10.80629999999339, 9.830000000000023, 10.120000000000008, 10.120000000000008, 10.410000000000004, 10.41000000000001, 10.120000000000008, 10.120000000000008, 9.830000000000013, 9.886654762208451, 10.353345237791569, 9.830000000000023, 10.120000000000008, 9.886654762208451, 9.886654762208451, 9.750000000000005, 10.12000000000001, 9.487499999999809, 10.11999999999986, 9.6729352454803, 10.56706475451937, 9.750000000000005, 10.12000000000001, 9.672935245480499, 9.672935245480499, 9.886654762208451, 9.886654762208451, 10.120000000000008, 9.830000000000013, 10.41000000000001, 10.120000000000008, 10.120000000000008, 10.410000000000004, 9.886654762208451, 10.353345237791569, 10.120000000000013, 10.490000000000004, 10.489999999999988, 10.120000000000013, 10.120000000000017, 9.750000000000021, 10.119999999996494, 10.752499999996544, 10.752499999996566, 10.119999999996466, 10.11999999999988, 9.48749999999978, 9.672935245480499, 9.672935245480499, 10.120000000000017, 9.750000000000021, 10.489999999999988, 10.120000000000013, 10.120000000000013, 10.490000000000004, 9.6729352454803, 10.56706475451937]
7716 +        e1 = [0, 0, 0, 0, 0, 1, 2, 3]
7717 +        e2 = [3, 4, 5, 6, 7, 8, 1, 2]
7718 +        valuesExpected=DataArrayDouble(exp_coo, len(exp_coo)//2, 2)
7719 +        self.assertTrue(result.getCoords().isEqual(valuesExpected,1e-12))
7720 +        self.assertEqual(e1, mapResToInit.getValues())
7721 +        self.assertEqual(e2, mapResToRef.getValues())
7722 +
7723 +    def testIntersect2DMeshes8(self):
7724 +        """ Quadratic precision values were improperly reset before testing colinearities 
7725 +        This was also impacting the mapping computation. """
7726 +        eps = 1.0e-8
7727 +        mesh1 = MEDCouplingUMesh('assemblyGrid_Pij', 2)
7728 +        coo = DataArrayDouble([(10.80630000000000,-10.80630000000000),(9.48750000000000,-10.80630000000000),(10.75250000000000,-10.80630000000000),(9.48750000000000,-10.75250000000000),(10.75250000000000,-10.75250000000000),(10.80630000000000,-10.75250000000000),(9.48750000000000,-9.48750000000000),(10.75250000000000,-9.48750000000000),(10.80630000000000,-9.48750000000000)])
7729 +        mesh1.setCoords(coo)
7730 +        c = DataArrayInt([5, 2, 1, 3, 4, 5, 0, 2, 4, 5, 5, 4, 3, 6, 7, 5, 5, 4, 7, 8])
7731 +        cI = DataArrayInt([0, 5, 10, 15, 20])
7732 +        mesh1.setConnectivity(c, cI)
7733 +        mesh2 = MEDCouplingUMesh('merge', 2)
7734 +        coo = DataArrayDouble([(9.48749999999998,-10.75249999999999),(9.48750000000018,-10.80629999999998),(10.75250000000047,-10.75250000000063),(10.75249999999318,-10.80629999999318),(10.80630000000048,-10.75250000000063),(10.80629999999318,-10.80629999999318),(9.48750000000001,-9.48750000000001),(9.48749999999998,-10.11999999999999),(10.75249999999975,-9.48750000000004),(10.40999999999999,-10.11999999999999),(10.32506096654408,-9.91493903345589),(10.11999999999999,-9.82999999999999),(9.91493903345589,-9.91493903345589),(9.82999999999998,-10.11999999999999),(9.91493903345589,-10.32506096654409),(10.11999999999999,-10.40999999999999),(10.32506096654408,-10.32506096654409),(10.12000000000001,-9.48750000000001),(10.75250000000047,-10.12000000000058),(10.12000000000018,-10.75249999999998),(9.70121951672794,-10.53878048327204),(9.70121951672794,-9.70121951672794),(10.80629999999976,-9.48750000000004),(9.48750000000018,-10.77939999999998),(10.75249999999318,-10.77939999999318),(10.12000000000018,-10.80629999999998),(10.77940000000048,-10.75250000000063),(10.80629999999318,-10.77939999999318),(10.77939999999318,-10.80629999999318),(10.77939999999976,-9.48750000000004),(10.80630000000048,-10.12000000000058)])
7735 +        mesh2.setCoords(coo)
7736 +        c = DataArrayInt([32, 1, 0, 2, 3, 23, 19, 24, 25, 32, 3, 2, 4, 5, 24, 26, 27, 28, 32, 16, 14, 12, 10, 15, 13, 11, 9, 32, 0, 6, 12, 14, 7, 21, 13, 20, 32, 6, 8, 2, 0, 14, 16, 10, 12, 17, 18, 19, 20, 15, 9, 11, 21, 32, 2, 8, 22, 4, 18, 29, 30, 26])
7737 +        cI = DataArrayInt([0, 9, 18, 27, 36, 53, 62])
7738 +        mesh2.setConnectivity(c, cI)
7739 +        result, mapResToInit, mapResToRef = MEDCouplingUMesh.Intersect2DMeshes(mesh1, mesh2, eps)
7740 +        result.zipCoords()
7741 +        exp_coo = [9.48749999999998, -10.75249999999999, 9.48750000000018, -10.80629999999998, 10.75250000000047, -10.75250000000063, 10.75249999999318, -10.80629999999318, 10.80630000000048, -10.75250000000063, 10.80629999999318, -10.80629999999318, 9.48750000000001, -9.48750000000001, 10.75249999999975, -9.48750000000004, 10.32506096654408, -9.91493903345589, 9.91493903345589, -9.91493903345589, 9.91493903345589, -10.32506096654409, 10.32506096654408, -10.32506096654409, 10.80629999999976, -9.48750000000004, 10.119999999999989, -10.409999999999961, 9.829999999999997, -10.11999999999999, 10.119999999999983, -9.830000000000005, 10.409999999999968, -10.119999999999987, 9.487499999999994, -10.120000000000001, 9.70121951672795, -9.70121951672795, 9.829999999999997, -10.11999999999999, 9.701219516727935, -10.53878048327204, 10.11999999999988, -9.487500000000026, 10.752500000000111, -10.120000000000335, 10.120000000000225, -10.75250000000031, 9.701219516727935, -10.53878048327204, 10.119999999999989, -10.409999999999961, 10.409999999999968, -10.119999999999987, 10.119999999999983, -9.830000000000005, 9.70121951672795, -9.70121951672795]
7742 +        e1 = [0, 1, 2, 2, 2, 3]
7743 +        e2 = [0, 1, 2, 3, 4, 5]
7744 +        valuesExpected=DataArrayDouble(exp_coo, len(exp_coo)//2, 2)
7745 +        self.assertTrue(result.getCoords().isEqual(valuesExpected,1e-10))
7746 +        self.assertEqual(e1, mapResToInit.getValues())
7747 +        self.assertEqual(e2, mapResToRef.getValues())
7748  
7749      def testSwig2Intersect2DMeshesQuadra1(self):
7750          import cmath
7751 @@ -377,7 +427,7 @@
7752          m1.finishInsertingCells()
7753  
7754          m2 = MEDCouplingDataForTest.buildCircle(0.25, 0.2, 0.4)
7755 -        # Was looping indefinitly:
7756 +        # Was looping indefinitely:
7757          m_intersec, resToM1, resToM2 = MEDCouplingUMesh.Intersect2DMeshes(m1, m2, eps)
7758          m_intersec.zipCoords()
7759          coo_tgt = DataArrayDouble([-0.5, -0.5, -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, -0.03284271247461901, 0.4828427124746191,
7760 @@ -388,7 +438,7 @@
7761          connI_tgt = [0, 9, 22]
7762          res1_tgt  = [0, 0]
7763          res2_tgt = [0, -1]
7764 -        self.assert_(coo_tgt.isEqualWithoutConsideringStr(m_intersec.getCoords(), 1e-12))
7765 +        self.assertTrue(coo_tgt.isEqualWithoutConsideringStr(m_intersec.getCoords(), 1e-12))
7766          self.assertEqual(conn_tgt, m_intersec.getNodalConnectivity().getValues())
7767          self.assertEqual(connI_tgt, m_intersec.getNodalConnectivityIndex().getValues())
7768          self.assertEqual(res1_tgt, resToM1.getValues())
7769 @@ -819,6 +869,29 @@
7770          self.assertTrue(d.isEqual(DataArrayInt([(-1,-1),(1,2),(3,0),(3,4),(-1,-1)])))
7771          pass
7772  
7773 +    def testSwig2Intersect2DMeshWith1DLine17(self):
7774 +        """ Single colinear intersection - a deltaShiftIndex() was improperly tested. """
7775 +        eps = 1.0e-12
7776 +        mesh = MEDCouplingUMesh('dummy_layer', 2)
7777 +        coo = DataArrayDouble([(-0.5,-0.5),(-0.5,0.5),(0.5,0.5),(0.5,-0.5),(-0.25,-0.25),(-0.25,0.25),(0.25,0.25),(0.25,-0.25)])
7778 +        mesh.setCoords(coo)
7779 +        c = DataArrayInt([5, 4, 5, 6, 7, 5, 0, 1, 5, 4, 5, 1, 2, 3, 0, 4, 7, 6, 5])
7780 +        cI = DataArrayInt([0, 5, 10, 19])
7781 +        mesh.setConnectivity(c, cI)
7782 +        m_line = MEDCouplingUMesh('segment', 1)
7783 +        coo = DataArrayDouble([(-0.5,0.5),(-0.25,0.25)])
7784 +        m_line.setCoords(coo)
7785 +        c = DataArrayInt([1, 0, 1])
7786 +        cI = DataArrayInt([0, 3])
7787 +        m_line.setConnectivity(c, cI)
7788 +        a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(mesh, m_line, eps)
7789 +        self.assertEqual(mesh.getNodalConnectivity().getValues(),a.getNodalConnectivity().getValues())
7790 +        self.assertEqual(mesh.getNodalConnectivityIndex().getValues(),a.getNodalConnectivityIndex().getValues())
7791 +        self.assertEqual([1,1,5],b.getNodalConnectivity().getValues())
7792 +        self.assertEqual(m_line.getNodalConnectivityIndex().getValues(),b.getNodalConnectivityIndex().getValues())
7793 +        self.assertTrue([0,1,2], c.getValues())
7794 +        self.assertEqual([2,1], d.getValues())
7795 +
7796      def testSwig2Conformize2D1(self):
7797          eps = 1.0e-8
7798          coo = [0.,-0.5,0.,0.,0.5,0.,0.5,-0.5,0.25,
7799 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingMemArray.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingMemArray.i
7800 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingMemArray.i  2018-04-19 17:04:36.736222703 +0200
7801 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingMemArray.i  2018-04-19 17:25:17.290788521 +0200
7802 @@ -73,6 +73,7 @@
7803  %newobject MEDCoupling::DataArrayFloat::iterator;
7804  %newobject MEDCoupling::DataArrayFloat::__iter__;
7805  %newobject MEDCoupling::DataArrayFloat::Meld;
7806 +%newobject MEDCoupling::DataArrayFloat::__rmul__;
7807  %newobject MEDCoupling::DataArrayInt::New;
7808  %newobject MEDCoupling::DataArrayInt::__iter__;
7809  %newobject MEDCoupling::DataArrayInt::performCopyOrIncrRef;
7810 @@ -92,6 +93,7 @@
7811  %newobject MEDCoupling::DataArrayInt::findIdsEqualList;
7812  %newobject MEDCoupling::DataArrayInt::findIdsNotEqualList;
7813  %newobject MEDCoupling::DataArrayInt::findIdsEqualTuple;
7814 +%newobject MEDCoupling::DataArrayInt::findIdForEach;
7815  %newobject MEDCoupling::DataArrayInt::sumPerTuple;
7816  %newobject MEDCoupling::DataArrayInt::negate;
7817  %newobject MEDCoupling::DataArrayInt::computeAbs;
7818 @@ -745,6 +747,18 @@
7819          int nbOfComp(self->getNumberOfComponents()),nbOfTuples(self->getNumberOfTuples());
7820          return convertDblArrToPyListOfTuple<float>(vals,nbOfComp,nbOfTuples);
7821        }
7822 +
7823 +      PyObject *isEqualIfNotWhy(const DataArrayFloat& other, float prec) const throw(INTERP_KERNEL::Exception)
7824 +      {
7825 +        std::string ret1;
7826 +        bool ret0=self->isEqualIfNotWhy(other,prec,ret1);
7827 +        PyObject *ret=PyTuple_New(2);
7828 +        PyObject *ret0Py=ret0?Py_True:Py_False;
7829 +        Py_XINCREF(ret0Py);
7830 +        PyTuple_SetItem(ret,0,ret0Py);
7831 +        PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
7832 +        return ret;
7833 +      }
7834        
7835        PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception)
7836        {
7837 @@ -771,6 +785,11 @@
7838          return DataArrayT_imul<float>(trueSelf,obj,self);
7839        }
7840  
7841 +      DataArrayFloat *__rmul__(PyObject *obj) throw(INTERP_KERNEL::Exception)
7842 +      {
7843 +        return DataArrayFPT_rmul<float>(self,obj);
7844 +      }
7845 +
7846        PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
7847        {
7848          return DataArrayT_idiv<float>(trueSelf,obj,self);
7849 @@ -782,31 +801,6 @@
7850          return ToNumPyArray<DataArrayFloat,float>(self,NPY_FLOAT,"DataArrayFloat");
7851        }
7852  #endif
7853 -
7854 -      // serialization
7855 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
7856 -      {
7857 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"DataArrayFloat");
7858 -      }
7859 -      
7860 -      PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
7861 -      {
7862 -#ifdef WITH_NUMPY
7863 -        if(!self->isAllocated())
7864 -          throw INTERP_KERNEL::Exception("PyWrap of DataArrayFloat.__getnewargs__ : self is not allocated !");
7865 -        PyObject *ret(PyTuple_New(1));
7866 -        PyObject *ret0(PyDict_New());
7867 -        PyObject *numpyArryObj(MEDCoupling_DataArrayFloat_toNumPyArray(self));
7868 -        {// create a dict to discriminite in __new__ if __init__ should be called. Not beautiful but not idea ...
7869 -          PyObject *tmp1(PyInt_FromLong(0));
7870 -          PyDict_SetItem(ret0,tmp1,numpyArryObj); Py_DECREF(tmp1); Py_DECREF(numpyArryObj);
7871 -          PyTuple_SetItem(ret,0,ret0);
7872 -        }
7873 -        return ret;
7874 -#else
7875 -        throw INTERP_KERNEL::Exception("PyWrap of DataArrayByte.__getnewargs__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !");
7876 -#endif
7877 -      }
7878      }
7879    };
7880  
7881 @@ -923,9 +917,8 @@
7882      void checkNoNullValues() const throw(INTERP_KERNEL::Exception);
7883      DataArrayDouble *computeBBoxPerTuple(double epsilon=0.0) const throw(INTERP_KERNEL::Exception);
7884      void recenterForMaxPrecision(double eps) throw(INTERP_KERNEL::Exception);
7885 -    double getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception);
7886      double getMaxValueInArray() const throw(INTERP_KERNEL::Exception);
7887 -    double getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exception);
7888 +    double getMaxAbsValueInArray() const throw(INTERP_KERNEL::Exception);
7889      double getMinValueInArray() const throw(INTERP_KERNEL::Exception);
7890      int count(double value, double eps) const throw(INTERP_KERNEL::Exception);
7891      double getAverageValue() const throw(INTERP_KERNEL::Exception);
7892 @@ -1052,6 +1045,22 @@
7893            }
7894        }
7895  
7896 +      PyObject *asArcOfCircle() const throw(INTERP_KERNEL::Exception)
7897 +      {
7898 +        double center[2],radius,ang;
7899 +        self->asArcOfCircle(center,radius,ang);
7900 +        PyObject *ret(PyTuple_New(3));
7901 +        {
7902 +          PyObject *ret0(PyList_New(2));
7903 +          PyList_SetItem(ret0,0,PyFloat_FromDouble(center[0]));
7904 +          PyList_SetItem(ret0,1,PyFloat_FromDouble(center[1]));
7905 +          PyTuple_SetItem(ret,0,ret0);
7906 +        }
7907 +        PyTuple_SetItem(ret,1,PyFloat_FromDouble(radius));
7908 +        PyTuple_SetItem(ret,2,PyFloat_FromDouble(ang));        
7909 +        return ret;
7910 +      }
7911 +
7912        DataArrayDoubleIterator *__iter__() throw(INTERP_KERNEL::Exception)
7913        {
7914          return self->iterator();
7915 @@ -1284,6 +1293,16 @@
7916          return ret;
7917        }
7918  
7919 +         PyObject *getMaxAbsValue() const throw(INTERP_KERNEL::Exception)
7920 +      {
7921 +        std::size_t tmp;
7922 +        double r1=self->getMaxAbsValue(tmp);
7923 +        PyObject *ret=PyTuple_New(2);
7924 +        PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1));
7925 +        PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
7926 +        return ret;
7927 +      }
7928 +
7929        PyObject *getMaxValue2() const throw(INTERP_KERNEL::Exception)
7930        {
7931          DataArrayInt *tmp;
7932 @@ -1689,34 +1708,7 @@
7933  
7934        DataArrayDouble *__rmul__(PyObject *obj) throw(INTERP_KERNEL::Exception)
7935        {
7936 -        const char msg[]="Unexpected situation in __rmul__ !";
7937 -        double val;
7938 -        DataArrayDouble *a;
7939 -        DataArrayDoubleTuple *aa;
7940 -        std::vector<double> bb;
7941 -        int sw;
7942 -        convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
7943 -        switch(sw)
7944 -          {
7945 -          case 1:
7946 -            {
7947 -              MCAuto<DataArrayDouble> ret=self->deepCopy();
7948 -              ret->applyLin(val,0.);
7949 -              return ret.retn();
7950 -            }
7951 -          case 3:
7952 -            {
7953 -              MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
7954 -              return DataArrayDouble::Multiply(self,aaa);
7955 -            }
7956 -          case 4:
7957 -            {
7958 -              MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size());
7959 -              return DataArrayDouble::Multiply(self,aaa);
7960 -            }
7961 -          default:
7962 -            throw INTERP_KERNEL::Exception(msg);
7963 -          }
7964 +        return DataArrayFPT_rmul<double>(self,obj);
7965        }
7966  
7967        PyObject *___imul___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
7968 @@ -1947,31 +1939,6 @@
7969          PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
7970          return ret;
7971        }
7972 -
7973 -      // serialization
7974 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
7975 -      {
7976 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"DataArrayDouble");
7977 -      }
7978 -
7979 -      PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
7980 -      {
7981 -#ifdef WITH_NUMPY
7982 -        if(!self->isAllocated())
7983 -          throw INTERP_KERNEL::Exception("PyWrap of DataArrayDouble.__getnewargs__ : self is not allocated !");
7984 -        PyObject *ret(PyTuple_New(1));
7985 -        PyObject *ret0(PyDict_New());
7986 -        PyObject *numpyArryObj(MEDCoupling_DataArrayDouble_toNumPyArray(self));
7987 -        {// create a dict to discriminite in __new__ if __init__ should be called. Not beautiful but not idea ...
7988 -          PyObject *tmp1(PyInt_FromLong(0));
7989 -          PyDict_SetItem(ret0,tmp1,numpyArryObj); Py_DECREF(tmp1); Py_DECREF(numpyArryObj);
7990 -          PyTuple_SetItem(ret,0,ret0);
7991 -        }
7992 -        return ret;
7993 -#else
7994 -        throw INTERP_KERNEL::Exception("PyWrap of DataArrayDouble.__getnewargs__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !");
7995 -#endif
7996 -      }
7997      }
7998    };
7999  
8000 @@ -2356,9 +2323,8 @@
8001      bool presenceOfValue(const std::vector<int>& vals) const throw(INTERP_KERNEL::Exception);
8002      int count(int value) const throw(INTERP_KERNEL::Exception);
8003      int accumulate(int compId) const throw(INTERP_KERNEL::Exception);
8004 -    int getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception);
8005      int getMaxValueInArray() const throw(INTERP_KERNEL::Exception);
8006 -    int getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exception);
8007 +    int getMaxAbsValueInArray() const throw(INTERP_KERNEL::Exception);
8008      int getMinValueInArray() const throw(INTERP_KERNEL::Exception);
8009      void abs() throw(INTERP_KERNEL::Exception);
8010      DataArrayInt *computeAbs() const throw(INTERP_KERNEL::Exception);
8011 @@ -2577,6 +2543,15 @@
8012          return self->findIdsEqualTuple(bg,bg+sz);
8013        }
8014  
8015 +      DataArrayInt *findIdForEach(PyObject *vals) const throw(INTERP_KERNEL::Exception)
8016 +      {
8017 +        int sw,sz,val;
8018 +        std::vector<int> val2;
8019 +        const int *bg(convertIntStarLikePyObjToCppIntStar(vals,sw,sz,val,val2));
8020 +        MCAuto<DataArrayInt> ret(self->findIdForEach(bg,bg+sz));
8021 +        return ret.retn();
8022 +      }
8023 +
8024        PyObject *splitInBalancedSlices(int nbOfSlices) const throw(INTERP_KERNEL::Exception)
8025        {
8026          std::vector< std::pair<int,int> > slcs(self->splitInBalancedSlices(nbOfSlices));
8027 @@ -3005,6 +2980,16 @@
8028          PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
8029          return ret;
8030        }
8031 +    
8032 +      PyObject *getMaxAbsValue(std::size_t& tupleId) const throw(INTERP_KERNEL::Exception)
8033 +      {
8034 +       std::size_t tmp;
8035 +        int r1=self->getMaxAbsValue(tmp);
8036 +        PyObject *ret=PyTuple_New(2);
8037 +        PyTuple_SetItem(ret,0,PyInt_FromLong(r1));
8038 +        PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
8039 +        return ret;
8040 +      }
8041  
8042        PyObject *getMinValue() const throw(INTERP_KERNEL::Exception)
8043        {
8044 @@ -4305,31 +4290,6 @@
8045          PyTuple_SetItem(pyRet,1,ret1Py);
8046          return pyRet;
8047        }
8048 -      
8049 -      // serialization
8050 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
8051 -      {
8052 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"DataArrayInt");
8053 -      }
8054 -      
8055 -      PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
8056 -      {
8057 -#ifdef WITH_NUMPY
8058 -        if(!self->isAllocated())
8059 -          throw INTERP_KERNEL::Exception("PyWrap of DataArrayInt.__getnewargs__ : self is not allocated !");
8060 -        PyObject *ret(PyTuple_New(1));
8061 -        PyObject *ret0(PyDict_New());
8062 -        PyObject *numpyArryObj(MEDCoupling_DataArrayInt_toNumPyArray(self));
8063 -        {// create a dict to discriminite in __new__ if __init__ should be called. Not beautiful but not idea ...
8064 -          PyObject *tmp1(PyInt_FromLong(0));
8065 -          PyDict_SetItem(ret0,tmp1,numpyArryObj); Py_DECREF(tmp1); Py_DECREF(numpyArryObj);
8066 -          PyTuple_SetItem(ret,0,ret0);
8067 -        }
8068 -        return ret;
8069 -#else
8070 -        throw INTERP_KERNEL::Exception("PyWrap of DataArrayInt.__getnewargs__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !");
8071 -#endif
8072 -      }
8073      }
8074    };
8075  
8076 @@ -5096,31 +5056,6 @@
8077        }
8078  #endif
8079  
8080 -      // serialization
8081 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
8082 -      {
8083 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"DataArrayByte");
8084 -      }
8085 -
8086 -      PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
8087 -      {
8088 -#ifdef WITH_NUMPY
8089 -        if(!self->isAllocated())
8090 -          throw INTERP_KERNEL::Exception("PyWrap of DataArrayByte.__getnewargs__ : self is not allocated !");
8091 -        PyObject *ret(PyTuple_New(1));
8092 -        PyObject *ret0(PyDict_New());
8093 -        PyObject *numpyArryObj(MEDCoupling_DataArrayByte_toNumPyArray(self));
8094 -        {// create a dict to discriminite in __new__ if __init__ should be called. Not beautiful but not idea ...
8095 -          PyObject *tmp1(PyInt_FromLong(0));
8096 -          PyDict_SetItem(ret0,tmp1,numpyArryObj); Py_DECREF(tmp1); Py_DECREF(numpyArryObj);
8097 -          PyTuple_SetItem(ret,0,ret0);
8098 -        }
8099 -        return ret;
8100 -#else
8101 -        throw INTERP_KERNEL::Exception("PyWrap of DataArrayByte.__getnewargs__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !");
8102 -#endif
8103 -      }
8104 -
8105        DataArrayByte *__setitem__(PyObject *obj, PyObject *value) throw(INTERP_KERNEL::Exception)
8106        {
8107          self->checkAllocated();
8108 @@ -5984,3 +5919,32 @@
8109      }
8110    };
8111  }
8112 +
8113 +%pythoncode %{
8114 +def MEDCouplingStdReduceFunct(cls,params):
8115 +    a,b=params
8116 +    ret=object.__new__(cls)
8117 +    ret.__init__(*a)
8118 +    ret.__setstate__(b)
8119 +    return ret
8120 +
8121 +def MEDCouplingDataArrayDoubleReduce(self):
8122 +    if not MEDCouplingHasNumPyBindings():
8123 +      raise InterpKernelException("PyWrap of DataArrayDouble.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
8124 +    return MEDCouplingStdReduceFunct,(DataArrayDouble,((self.toNumPyArray(),),(self.__getstate__()),))
8125 +
8126 +def MEDCouplingDataArrayIntReduce(self):
8127 +    if not MEDCouplingHasNumPyBindings():
8128 +      raise InterpKernelException("PyWrap of DataArrayInt.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
8129 +    return MEDCouplingStdReduceFunct,(DataArrayInt,((self.toNumPyArray(),),(self.__getstate__()),))
8130 +
8131 +def MEDCouplingDataArrayByteReduce(self):
8132 +    if not MEDCouplingHasNumPyBindings():
8133 +      raise InterpKernelException("PyWrap of DataArrayByte.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
8134 +    return MEDCouplingStdReduceFunct,(DataArrayByte,((self.toNumPyArray(),),(self.__getstate__()),))
8135 +
8136 +def MEDCouplingDataArrayFloatReduce(self):
8137 +    if not MEDCouplingHasNumPyBindings():
8138 +      raise InterpKernelException("PyWrap of DataArrayFloat.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
8139 +    return MEDCouplingStdReduceFunct,(DataArrayFloat,((self.toNumPyArray(),),(self.__getstate__()),))
8140 +%}
8141 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingNumPyTest.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingNumPyTest.py
8142 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingNumPyTest.py        2018-04-19 17:04:36.736222703 +0200
8143 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingNumPyTest.py        2018-04-19 17:25:17.292788561 +0200
8144 @@ -386,7 +386,7 @@
8145      def test19(self):
8146          sz=20
8147          a=array(0,dtype=int32)
8148 -        a.resize(sz/2,2)
8149 +        a.resize(sz//2,2)
8150          a[:]=4
8151          self.assertEqual(getrefcount(a),2)
8152          d=DataArrayInt(a)
8153 @@ -405,7 +405,7 @@
8154      def test20(self):
8155          sz=20
8156          a=array(0,dtype=float64)
8157 -        a.resize(sz/2,2)
8158 +        a.resize(sz//2,2)
8159          a[:]=4
8160          self.assertEqual(getrefcount(a),2)
8161          d=DataArrayDouble(a)
8162 @@ -422,7 +422,7 @@
8163  
8164      @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
8165      def test21(self):
8166 -        #tests that only DataArray*(npArray) contructor is available
8167 +        #tests that only DataArray*(npArray) constructor is available
8168          a=array(0,dtype=int32)
8169          a.resize(20)
8170          DataArrayInt(a)
8171 @@ -918,7 +918,7 @@
8172          """Same as test20 with float32"""
8173          sz=20
8174          a=array(0,dtype=float32)
8175 -        a.resize(sz/2,2)
8176 +        a.resize(sz//2,2)
8177          a[:]=4
8178          self.assertEqual(getrefcount(a),2)
8179          d=DataArrayFloat(a)
8180 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingPickleTest.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingPickleTest.py
8181 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingPickleTest.py       2018-04-19 17:04:36.736222703 +0200
8182 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingPickleTest.py       2018-04-19 17:25:17.282788363 +0200
8183 @@ -84,7 +84,7 @@
8184  
8185      @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
8186      def test4(self):
8187 -        """ Idem test3 except that here serialization/deserialization is done explicitely."""
8188 +        """ Idem test3 except that here serialization/deserialization is done explicitly."""
8189          arr=DataArrayDouble(10) ; arr.iota()
8190          m=MEDCouplingCMesh() ; m.setCoords(arr,arr,arr)
8191          m=m.buildUnstructured()
8192 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRefCountObject.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRefCountObject.i
8193 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRefCountObject.i    2018-04-19 17:04:36.736222703 +0200
8194 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRefCountObject.i    2018-04-19 17:25:17.297788659 +0200
8195 @@ -62,7 +62,8 @@
8196    int MEDCouplingSizeOfVoidStar();
8197    bool MEDCouplingByteOrder();
8198    const char *MEDCouplingByteOrderStr();
8199 -
8200 +  bool IsCXX11Compiled();
8201 +  
8202    class BigMemoryObject
8203    {
8204    public:
8205 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRemapperCommon.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRemapperCommon.i
8206 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRemapperCommon.i    1970-01-01 01:00:00.000000000 +0100
8207 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRemapperCommon.i    2018-04-19 17:25:17.285788422 +0200
8208 @@ -0,0 +1,123 @@
8209 +// Copyright (C) 2017  CEA/DEN, EDF R&D
8210 +//
8211 +// This library is free software; you can redistribute it and/or
8212 +// modify it under the terms of the GNU Lesser General Public
8213 +// License as published by the Free Software Foundation; either
8214 +// version 2.1 of the License, or (at your option) any later version.
8215 +//
8216 +// This library is distributed in the hope that it will be useful,
8217 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
8218 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
8219 +// Lesser General Public License for more details.
8220 +//
8221 +// You should have received a copy of the GNU Lesser General Public
8222 +// License along with this library; if not, write to the Free Software
8223 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
8224 +//
8225 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
8226 +//
8227 +
8228 +#define MEDCOUPLING_EXPORT
8229 +#define INTERPKERNEL_EXPORT
8230 +#define MEDCOUPLINGREMAPPER_EXPORT
8231 +
8232 +%newobject MEDCoupling::MEDCouplingRemapper::transferField;
8233 +%newobject MEDCoupling::MEDCouplingRemapper::reverseTransferField;
8234 +
8235 +%{
8236 +#include "MEDCouplingRemapper.hxx"
8237 +%}
8238 +
8239 +%include "InterpolationOptions.hxx"
8240 +
8241 +namespace MEDCoupling
8242 +{
8243 +  typedef enum
8244 +    {
8245 +      IK_ONLY_PREFERED = 0,
8246 +      NOT_IK_ONLY_PREFERED = 1,
8247 +      IK_ONLY_FORCED = 2,
8248 +      NOT_IK_ONLY_FORCED =3
8249 +    } InterpolationMatrixPolicy;
8250 +
8251 +  class MEDCouplingRemapper : public TimeLabel, public INTERP_KERNEL::InterpolationOptions
8252 +    {
8253 +    private:
8254 +      void updateTime() const;
8255 +    public:
8256 +      MEDCouplingRemapper();
8257 +      ~MEDCouplingRemapper();
8258 +      int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method) throw(INTERP_KERNEL::Exception);
8259 +      int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target) throw(INTERP_KERNEL::Exception);
8260 +      void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
8261 +      void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception);
8262 +      void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
8263 +      MEDCouplingFieldDouble *transferField(const MEDCouplingFieldDouble *srcField, double dftValue) throw(INTERP_KERNEL::Exception);
8264 +      MEDCouplingFieldDouble *reverseTransferField(const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
8265 +      bool setOptionInt(const std::string& key, int value) throw(INTERP_KERNEL::Exception);
8266 +      bool setOptionDouble(const std::string& key, double value) throw(INTERP_KERNEL::Exception);
8267 +      bool setOptionString(const std::string& key, const std::string& value) throw(INTERP_KERNEL::Exception);
8268 +      int getInterpolationMatrixPolicy() const throw(INTERP_KERNEL::Exception);
8269 +      void setInterpolationMatrixPolicy(int newInterpMatPol) throw(INTERP_KERNEL::Exception);
8270 +      //
8271 +      int nullifiedTinyCoeffInCrudeMatrixAbs(double maxValAbs) throw(INTERP_KERNEL::Exception);
8272 +      int nullifiedTinyCoeffInCrudeMatrix(double scaleFactor) throw(INTERP_KERNEL::Exception);
8273 +      double getMaxValueInCrudeMatrix() const throw(INTERP_KERNEL::Exception);
8274 +      int getNumberOfColsOfMatrix() const throw(INTERP_KERNEL::Exception);
8275 +      static std::string BuildMethodFrom(const std::string& meth1, const std::string& meth2) throw(INTERP_KERNEL::Exception);
8276 +      %extend
8277 +         {
8278 +           PyObject *getCrudeMatrix() const throw(INTERP_KERNEL::Exception)
8279 +           {
8280 +             const std::vector<std::map<int,double> >& m=self->getCrudeMatrix();
8281 +             std::size_t sz=m.size();
8282 +             PyObject *ret=PyList_New(sz);
8283 +             for(std::size_t i=0;i<sz;i++)
8284 +               {
8285 +                 const std::map<int,double>& row=m[i];
8286 +                 PyObject *ret0=PyDict_New();
8287 +                 for(std::map<int,double>::const_iterator it=row.begin();it!=row.end();it++)
8288 +                   PyDict_SetItem(ret0,PyInt_FromLong((*it).first),PyFloat_FromDouble((*it).second));
8289 +                 PyList_SetItem(ret,i,ret0);
8290 +               }
8291 +             return ret;
8292 +           }
8293 +#if defined(WITH_NUMPY) && defined(WITH_SCIPY)
8294 +           PyObject *getCrudeCSRMatrix() const throw(INTERP_KERNEL::Exception)
8295 +           {
8296 +             return ToCSRMatrix(self->getCrudeMatrix(),self->getNumberOfColsOfMatrix());
8297 +           }
8298 +#endif
8299 +           void setCrudeMatrix(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method, PyObject *m) throw(INTERP_KERNEL::Exception)
8300 +           {
8301 +             std::vector<std::map<int,double> > mCpp;
8302 +             if(isCSRMatrix(m))
8303 +               {
8304 +#if defined(WITH_NUMPY) && defined(WITH_SCIPY)
8305 +                 PyObject *indptr(PyObject_GetAttrString(m,"indptr"));
8306 +                 PyObject *indices(PyObject_GetAttrString(m,"indices"));
8307 +                 PyObject *data(PyObject_GetAttrString(m,"data"));
8308 +                 MCAuto<DataArrayInt> indptrPtr(MEDCoupling_DataArrayInt_New__SWIG_1(indptr,NULL,NULL));
8309 +                 MCAuto<DataArrayInt> indicesPtr(MEDCoupling_DataArrayInt_New__SWIG_1(indices,NULL,NULL));
8310 +                 MCAuto<DataArrayDouble> dataPtr(MEDCoupling_DataArrayDouble_New__SWIG_1(data,NULL,NULL));
8311 +                 convertCSR_MCDataToVectMapIntDouble(indptrPtr,indicesPtr,dataPtr,mCpp);
8312 +                 Py_XDECREF(data); Py_XDECREF(indptr); Py_XDECREF(indices);
8313 +#else
8314 +                 throw INTERP_KERNEL::Exception("pywrap of MEDCouplingRemapper::setCrudeMatrix : unexpected situation regarding numpy/scipy !");
8315 +#endif
8316 +               }
8317 +             else
8318 +               convertToVectMapIntDouble(m,mCpp);
8319 +             self->setCrudeMatrix(srcMesh,targetMesh,method,mCpp);
8320 +           }
8321 +
8322 +           void setCrudeMatrixEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target, PyObject *m) throw(INTERP_KERNEL::Exception)
8323 +           {
8324 +             std::vector<std::map<int,double> > mCpp;
8325 +             convertToVectMapIntDouble(m,mCpp);
8326 +             self->setCrudeMatrixEx(src,target,mCpp);
8327 +           }
8328 +         }
8329 +    };
8330 +}
8331 +
8332 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRemapper.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRemapper.i
8333 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRemapper.i  2018-04-19 17:04:36.736222703 +0200
8334 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRemapper.i  2018-04-19 17:25:17.298788679 +0200
8335 @@ -19,93 +19,11 @@
8336  
8337  %module MEDCouplingRemapper
8338  
8339 -#define MEDCOUPLING_EXPORT
8340 -#define INTERPKERNEL_EXPORT
8341 -#define MEDCOUPLINGREMAPPER_EXPORT
8342 -
8343 -%{
8344 -#include "MEDCouplingMemArray.hxx"
8345 -#include "MEDCouplingUMesh.hxx"
8346 -#include "MEDCouplingField.hxx"
8347 -#include "MEDCouplingFieldDouble.hxx"
8348 -#include "MEDCouplingRemapper.hxx"
8349 -
8350 -using namespace MEDCoupling;
8351 -using namespace INTERP_KERNEL;
8352 -%}
8353 -
8354 -%newobject MEDCoupling::MEDCouplingRemapper::transferField;
8355 -%newobject MEDCoupling::MEDCouplingRemapper::reverseTransferField;
8356 -
8357  %include "MEDCouplingCommon.i"
8358 -%include "InterpolationOptions.hxx"
8359  
8360 -namespace MEDCoupling
8361 -{
8362 -  typedef enum
8363 -    {
8364 -      IK_ONLY_PREFERED = 0,
8365 -      NOT_IK_ONLY_PREFERED = 1,
8366 -      IK_ONLY_FORCED = 2,
8367 -      NOT_IK_ONLY_FORCED =3
8368 -    } InterpolationMatrixPolicy;
8369 -
8370 -  class MEDCouplingRemapper : public TimeLabel, public INTERP_KERNEL::InterpolationOptions
8371 -    {
8372 -    private:
8373 -      void updateTime() const;
8374 -    public:
8375 -      MEDCouplingRemapper();
8376 -      ~MEDCouplingRemapper();
8377 -      int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const std::string& method) throw(INTERP_KERNEL::Exception);
8378 -      int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target) throw(INTERP_KERNEL::Exception);
8379 -      void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
8380 -      void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception);
8381 -      void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
8382 -      MEDCouplingFieldDouble *transferField(const MEDCouplingFieldDouble *srcField, double dftValue) throw(INTERP_KERNEL::Exception);
8383 -      MEDCouplingFieldDouble *reverseTransferField(const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception);
8384 -      bool setOptionInt(const std::string& key, int value) throw(INTERP_KERNEL::Exception);
8385 -      bool setOptionDouble(const std::string& key, double value) throw(INTERP_KERNEL::Exception);
8386 -      bool setOptionString(const std::string& key, const std::string& value) throw(INTERP_KERNEL::Exception);
8387 -      int getInterpolationMatrixPolicy() const throw(INTERP_KERNEL::Exception);
8388 -      void setInterpolationMatrixPolicy(int newInterpMatPol) throw(INTERP_KERNEL::Exception);
8389 -      //
8390 -      int nullifiedTinyCoeffInCrudeMatrixAbs(double maxValAbs) throw(INTERP_KERNEL::Exception);
8391 -      int nullifiedTinyCoeffInCrudeMatrix(double scaleFactor) throw(INTERP_KERNEL::Exception);
8392 -      double getMaxValueInCrudeMatrix() const throw(INTERP_KERNEL::Exception);
8393 -      int getNumberOfColsOfMatrix() const throw(INTERP_KERNEL::Exception);
8394 -      static std::string BuildMethodFrom(const std::string& meth1, const std::string& meth2) throw(INTERP_KERNEL::Exception);
8395 -      %extend
8396 -         {
8397 -           PyObject *getCrudeMatrix() const throw(INTERP_KERNEL::Exception)
8398 -           {
8399 -             const std::vector<std::map<int,double> >& m=self->getCrudeMatrix();
8400 -             std::size_t sz=m.size();
8401 -             PyObject *ret=PyList_New(sz);
8402 -             for(std::size_t i=0;i<sz;i++)
8403 -               {
8404 -                 const std::map<int,double>& row=m[i];
8405 -                 PyObject *ret0=PyDict_New();
8406 -                 for(std::map<int,double>::const_iterator it=row.begin();it!=row.end();it++)
8407 -                   PyDict_SetItem(ret0,PyInt_FromLong((*it).first),PyFloat_FromDouble((*it).second));
8408 -                 PyList_SetItem(ret,i,ret0);
8409 -               }
8410 -             return ret;
8411 -           }
8412 -#if defined(WITH_NUMPY) && defined(WITH_SCIPY)
8413 -           PyObject *getCrudeCSRMatrix() const throw(INTERP_KERNEL::Exception)
8414 -           {
8415 -             return ToCSRMatrix(self->getCrudeMatrix(),self->getNumberOfColsOfMatrix());
8416 -           }
8417 -#endif
8418 -         }
8419 -    };
8420 -}
8421 +%include "MEDCouplingRemapperCommon.i"
8422  
8423  %pythoncode %{
8424 -def MEDCouplingDataArrayDoublenew(cls,*args):
8425 -    import _MEDCouplingRemapper
8426 -    return _MEDCouplingRemapper.DataArrayDouble____new___(cls,args)
8427  def MEDCouplingDataArrayDoubleIadd(self,*args):
8428      import _MEDCouplingRemapper
8429      return _MEDCouplingRemapper.DataArrayDouble____iadd___(self, self, *args)
8430 @@ -121,9 +39,6 @@
8431  def MEDCouplingDataArrayDoubleIpow(self,*args):
8432      import _MEDCouplingRemapper
8433      return _MEDCouplingRemapper.DataArrayDouble____ipow___(self, self, *args)
8434 -def MEDCouplingFieldDoublenew(cls,*args):
8435 -    import _MEDCouplingRemapper
8436 -    return _MEDCouplingRemapper.MEDCouplingFieldDouble____new___(cls,args)
8437  def MEDCouplingFieldDoubleIadd(self,*args):
8438      import _MEDCouplingRemapper
8439      return _MEDCouplingRemapper.MEDCouplingFieldDouble____iadd___(self, self, *args)
8440 @@ -139,18 +54,6 @@
8441  def MEDCouplingFieldDoubleIpow(self,*args):
8442      import _MEDCouplingRemapper
8443      return _MEDCouplingRemapper.MEDCouplingFieldDouble____ipow___(self, self, *args)
8444 -def MEDCouplingFieldIntnew(cls,*args):
8445 -    import _MEDCouplingRemapper
8446 -    return _MEDCouplingRemapper.MEDCouplingFieldInt____new___(cls,args)
8447 -def MEDCouplingFieldFloatnew(cls,*args):
8448 -    import _MEDCouplingRemapper
8449 -    return _MEDCouplingRemapper.MEDCouplingFieldFloat____new___(cls,args)
8450 -def MEDCouplingDataArrayBytenew(cls,*args):
8451 -    import _MEDCouplingRemapper
8452 -    return _MEDCouplingRemapper.DataArrayByte____new___(cls,args)
8453 -def MEDCouplingDataArrayFloatnew(cls,*args):
8454 -    import _MEDCouplingRemapper
8455 -    return _MEDCouplingRemapper.DataArrayFloat____new___(cls,args)
8456  def MEDCouplingDataArrayFloatIadd(self,*args):
8457      import _MEDCouplingRemapper
8458      return _MEDCouplingRemapper.DataArrayFloat____iadd___(self, self, *args)
8459 @@ -163,9 +66,6 @@
8460  def MEDCouplingDataArrayFloatIdiv(self,*args):
8461      import _MEDCouplingRemapper
8462      return _MEDCouplingRemapper.DataArrayFloat____idiv___(self, self, *args)
8463 -def MEDCouplingDataArrayIntnew(cls,*args):
8464 -    import _MEDCouplingRemapper
8465 -    return _MEDCouplingRemapper.DataArrayInt____new___(cls,args)
8466  def MEDCouplingDataArrayIntIadd(self,*args):
8467      import _MEDCouplingRemapper
8468      return _MEDCouplingRemapper.DataArrayInt____iadd___(self, self, *args)
8469 @@ -211,33 +111,12 @@
8470  def MEDCouplingDataArrayIntTupleImod(self,*args):
8471      import _MEDCouplingRemapper
8472      return _MEDCouplingRemapper.DataArrayIntTuple____imod___(self, self, *args)
8473 -def ParaMEDMEMDenseMatrixIadd(self,*args):
8474 +def MEDCouplingDenseMatrixIadd(self,*args):
8475      import _MEDCouplingRemapper
8476      return _MEDCouplingRemapper.DenseMatrix____iadd___(self, self, *args)
8477 -def ParaMEDMEMDenseMatrixIsub(self,*args):
8478 +def MEDCouplingDenseMatrixIsub(self,*args):
8479      import _MEDCouplingRemapper
8480      return _MEDCouplingRemapper.DenseMatrix____isub___(self, self, *args)
8481 -def MEDCouplingUMeshnew(cls,*args):
8482 -    import _MEDCouplingRemapper
8483 -    return _MEDCouplingRemapper.MEDCouplingUMesh____new___(cls,args)
8484 -def MEDCoupling1DGTUMeshnew(cls,*args):
8485 -    import _MEDCouplingRemapper
8486 -    return _MEDCouplingRemapper.MEDCoupling1DGTUMesh____new___(cls,args)
8487 -def MEDCoupling1SGTUMeshnew(cls,*args):
8488 -    import _MEDCouplingRemapper
8489 -    return _MEDCouplingRemapper.MEDCoupling1SGTUMesh____new___(cls,args)
8490 -def MEDCouplingCurveLinearMeshnew(cls,*args):
8491 -    import _MEDCouplingRemapper
8492 -    return _MEDCouplingRemapper.MEDCouplingCurveLinearMesh____new___(cls,args)
8493 -def MEDCouplingCMeshnew(cls,*args):
8494 -    import _MEDCouplingRemapper
8495 -    return _MEDCouplingRemapper.MEDCouplingCMesh____new___(cls,args)
8496 -def MEDCouplingIMeshnew(cls,*args):
8497 -    import _MEDCouplingRemapper
8498 -    return _MEDCouplingRemapper.MEDCouplingIMesh____new___(cls,args)
8499 -def MEDCouplingExtrudedMeshnew(cls,*args):
8500 -    import _MEDCouplingRemapper
8501 -    return _MEDCouplingRemapper.MEDCouplingMappedExtrudedMesh____new___(cls,args)
8502  %}
8503  
8504  %include "MEDCouplingFinalize.i"
8505 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py
8506 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py     2018-04-19 17:04:36.737222723 +0200
8507 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py     2018-04-19 17:25:17.258787888 +0200
8508 @@ -1108,7 +1108,7 @@
8509          pass
8510  
8511      def testP0P0WithHEXGP12(self):
8512 -        """ Test that HEXGP12 are correclty remapped (elements with polygonal faces were not properly handled) """
8513 +        """ Test that HEXGP12 are correctly remapped (elements with polygonal faces were not properly handled) """
8514          # From Astrid, two disjoint hexagonal prisms:
8515          coo1 = [-4.991193077144312, 8.644999999999998, 0.0, -9.982386154288623, 6.112246755425186e-16, 0.0, -4.991193077144315, -8.644999999999998, 0.0, 4.991193077144309, -8.645000000000005, 0.0, 9.982386154288626, 1.1651321638577316e-15, 0.0, 4.991193077144314, 8.645, 0.0, -4.991193077144312, 8.644999999999998, 7.561799999999991, -9.982386154288623, 6.112246755425186e-16, 7.561799999999991, -4.991193077144315, -8.644999999999998, 7.561799999999991, 4.991193077144309, -8.645000000000005, 7.561799999999991, 9.982386154288626, 1.1651321638577316e-15, 7.561799999999991, 4.991193077144314, 8.645, 7.561799999999991]
8516          coo2 = [-4.991193077144313, -8.645, 0.0, -9.982386154288626, -1.3992140779350848e-15, 0.0, -19.964772308577256, 0.0, 0.0, -24.95596538572157, -8.644999999999998, 0.0, -19.96477230857726, -17.289999999999996, 0.0, -9.982386154288626, -17.289999999999996, 0.0, -4.991193077144313, -8.645, 5.041200000000004, -9.982386154288626, -1.3992140779350848e-15, 5.041200000000004, -19.964772308577256, 0.0, 5.041200000000004, -24.95596538572157, -8.644999999999998, 5.041200000000004, -19.96477230857726, -17.289999999999996, 5.041200000000004, -9.982386154288626, -17.289999999999996, 5.041200000000004]
8517 @@ -1155,6 +1155,130 @@
8518          self.assertEqual(1, len(rmp.getCrudeMatrix()[0]))
8519          pass
8520  
8521 +    @unittest.skipUnless(MEDCouplingHasNumPyBindings() and MEDCouplingHasSciPyBindings() and IsCXX11Compiled(),"requires numpy AND scipy AND C++11")
8522 +    def testP1P1PL3DSpaceFrom1DTo0D(self):
8523 +        from scipy.sparse import csr_matrix
8524 +        from numpy import array
8525 +
8526 +        def generateTrg(eps):
8527 +            trgArr=DataArrayDouble([(0.5,0.5,0.5),(0.2,0.2,0.2),(0.9,0.9,0.9),(0.7+eps*sqrt(3),0.7-eps*sqrt(3),0.7)])
8528 +            trg=MEDCouplingUMesh("trg",0) ; trg.setCoords(trgArr)
8529 +            trg.allocateCells()
8530 +            RenumTrg=[2,3,0,1]
8531 +            for rt in RenumTrg:
8532 +                trg.insertNextCell(NORM_POINT1,[rt])
8533 +            return trg
8534 +
8535 +        srcArr=DataArrayDouble([(0.,0.,1.),(0.,0.,0.),(1.,1.,1.)])
8536 +        src=MEDCouplingUMesh("src",1) ; src.setCoords(srcArr)
8537 +        src.allocateCells()
8538 +        src.insertNextCell(NORM_SEG2,[1,2])
8539 +        #
8540 +        trg=generateTrg(1e-7)# trg point 3 of trg cell 1 is NOT closer enough to source edge #1 -> not intercepted
8541 +        #
8542 +        rem=MEDCouplingRemapper()
8543 +        rem.setIntersectionType(PointLocator)
8544 +        self.assertEqual(rem.prepare(src,trg,"P1P1"),1)
8545 +        mat=rem.getCrudeCSRMatrix()
8546 +        row=array([2,2, 0,0, 1,1]) # here no ref to point 3 !
8547 +        col=array([1,2, 1,2, 1,2])
8548 +        data=array([0.1,0.9, 0.5,0.5, 0.8,0.2])
8549 +        mExp=csr_matrix((data,(row,col)),shape=(4,3))
8550 +        delta=abs(mExp-mat)
8551 +        self.assertAlmostEqual(delta.sum(),0.,14)
8552 +        #
8553 +        trg=generateTrg(1e-14) # trg point 3 of trg cell 1 is closer enough to source edge #1 -> intercepted
8554 +        rem=MEDCouplingRemapper()
8555 +        rem.setIntersectionType(PointLocator)
8556 +        self.assertEqual(rem.prepare(src,trg,"P1P1"),1)
8557 +        mat=rem.getCrudeCSRMatrix()
8558 +        row=array([2,2, 3,3, 0,0, 1,1]) # here ref to target point 3 
8559 +        col=array([1,2, 1,2, 1,2, 1,2])
8560 +        data=array([0.1,0.9, 0.3,0.7, 0.5,0.5, 0.8,0.2])
8561 +        mExp2=csr_matrix((data,(row,col)),shape=(4,3))
8562 +        delta2=abs(mExp2-mat)
8563 +        self.assertAlmostEqual(delta2.sum(),0.,14)
8564 +        pass
8565 +
8566 +    def testSetMatrix1(self):
8567 +        """ Remapper has now setCrudeMatrix method to reload matrix to skip prepare phase """
8568 +        cooS=DataArrayDouble([1,1, 7,1, 7,2, 1,2],4,2)
8569 +        cooT=DataArrayDouble([0,0, 3,0, 3,3, 0,3, 6,0, 12,0, 12,3, 6,3],8,2)
8570 +        ms=MEDCouplingUMesh("source",2) ; ms.allocateCells(1) ; ms.insertNextCell(NORM_QUAD4,[0,1,2,3]) ; ms.setCoords(cooS)
8571 +        mt=MEDCouplingUMesh("target",2) ; mt.allocateCells(2) ; mt.insertNextCell(NORM_QUAD4,[0,1,2,3]) ; mt.insertNextCell(NORM_QUAD4,[4,5,6,7]) ; mt.setCoords(cooT)
8572 +        rem=MEDCouplingRemapper()
8573 +        self.assertEqual(rem.prepare(ms,mt,"P0P0"),1) # [{0: 2.0}, {0: 1.0}]
8574 +        fs=MEDCouplingFieldDouble(ON_CELLS)
8575 +        fs.setMesh(ms)
8576 +        fs.setArray(DataArrayDouble([10]))
8577 +        fs.checkConsistencyLight()
8578 +        #
8579 +        fs.setNature(ExtensiveConservation)
8580 +        self.assertTrue(rem.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([20./3,10./3.]),1e-12))# sum is equal to 10. First value is twice than second value
8581 +        #
8582 +        fs.setNature(ExtensiveMaximum)
8583 +        self.assertTrue(rem.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([20./6.,10./6.]),1e-12))#sum is equal to 5 (10/2. because only half part on input cell is intercepted by the target cells). First value is twice than second value
8584 +        #
8585 +        fs.setNature(IntensiveConservation)
8586 +        self.assertTrue(rem.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([2./9.*10.,1./18.*10.]),1e-12))#
8587 +        #
8588 +        fs.setNature(IntensiveMaximum)
8589 +        self.assertTrue(rem.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([10.,10.]),1e-12))#
8590 +        ####
8591 +        rem2=MEDCouplingRemapper()
8592 +        rem2.setCrudeMatrix(ms,mt,"P0P0",rem.getCrudeMatrix())
8593 +        fs.setNature(ExtensiveConservation)
8594 +        self.assertTrue(rem2.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([20./3,10./3.]),1e-12))
8595 +        #
8596 +        fs.setNature(ExtensiveMaximum)
8597 +        self.assertTrue(rem2.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([20./6.,10./6.]),1e-12))
8598 +        #
8599 +        fs.setNature(IntensiveConservation)
8600 +        self.assertTrue(rem2.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([2./9.*10.,1./18.*10.]),1e-12))
8601 +        #
8602 +        fs.setNature(IntensiveMaximum)
8603 +        self.assertTrue(rem2.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([10.,10.]),1e-12))
8604 +        #
8605 +        srcFt=MEDCouplingFieldTemplate.New(ON_CELLS);
8606 +        trgFt=MEDCouplingFieldTemplate.New(ON_CELLS);
8607 +        srcFt.setMesh(ms);
8608 +        trgFt.setMesh(mt);
8609 +        rem3=MEDCouplingRemapper()
8610 +        rem3.setCrudeMatrixEx(srcFt,trgFt,rem.getCrudeMatrix())
8611 +        fs.setNature(ExtensiveConservation)
8612 +        self.assertTrue(rem3.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([20./3,10./3.]),1e-12))
8613 +        pass
8614 +
8615 +    @unittest.skipUnless(MEDCouplingHasNumPyBindings() and MEDCouplingHasSciPyBindings(),"requires numpy AND scipy")
8616 +    def testSetMatrix2(self):
8617 +        """ Remapper has now setCrudeMatrix method to reload matrix to skip prepare phase. Same as testSetMatrix1 but with CSR scipy matrix """
8618 +        arrx_s=DataArrayDouble(6) ; arrx_s.iota()
8619 +        arry_s=DataArrayDouble(6) ; arry_s.iota()
8620 +        ms=MEDCouplingCMesh() ; ms.setCoords(arrx_s,arry_s)
8621 +        ms=ms.buildUnstructured()
8622 +        #
8623 +        arrx_t=DataArrayDouble([2.5,4.5,5.5])
8624 +        arry_t=DataArrayDouble([2.5,3.5,5.5])
8625 +        mt=MEDCouplingCMesh() ; mt.setCoords(arrx_t,arry_t)
8626 +        mt=mt.buildUnstructured()
8627 +        #
8628 +        rem=MEDCouplingRemapper()
8629 +        self.assertEqual(rem.prepare(ms,mt,"P0P0"),1)
8630 +        #
8631 +        fs=MEDCouplingFieldDouble(ON_CELLS)
8632 +        fs.setMesh(ms)
8633 +        arr=DataArrayDouble(25) ; arr.iota()
8634 +        fs.setArray(arr)
8635 +        fs.checkConsistencyLight()
8636 +        #
8637 +        fs.setNature(ExtensiveConservation)
8638 +        self.assertTrue(rem.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([54.25,11.75,79.25,16.75]),1e-12))
8639 +        mat=rem.getCrudeCSRMatrix()
8640 +        rem2=MEDCouplingRemapper()
8641 +        rem2.setCrudeMatrix(ms,mt,"P0P0",mat)
8642 +        self.assertTrue(rem2.transferField(fs,1e300).getArray().isEqual(DataArrayDouble([54.25,11.75,79.25,16.75]),1e-12))
8643 +        pass
8644 +        
8645      def checkMatrix(self,mat1,mat2,nbCols,eps):
8646          self.assertEqual(len(mat1),len(mat2))
8647          for i in range(len(mat1)):
8648 diff -Naur MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingTypemaps.i MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingTypemaps.i
8649 --- MEDCOUPLING_old/src/MEDCoupling_Swig/MEDCouplingTypemaps.i  2018-04-19 17:04:36.737222723 +0200
8650 +++ MEDCOUPLING_new/src/MEDCoupling_Swig/MEDCouplingTypemaps.i  2018-04-19 17:25:17.296788640 +0200
8651 @@ -83,6 +83,25 @@
8652    return ret;
8653  }
8654  
8655 +static PyObject *convertField(MEDCoupling::MEDCouplingField *f, int owner)
8656 +{
8657 +  PyObject *ret(NULL);
8658 +  if(!f)
8659 +    {
8660 +      Py_XINCREF(Py_None);
8661 +      return Py_None;
8662 +    }
8663 +  if(dynamic_cast<MEDCoupling::MEDCouplingFieldDouble *>(f))
8664 +    ret=SWIG_NewPointerObj(reinterpret_cast<void*>(f),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,owner);
8665 +  if(dynamic_cast<MEDCoupling::MEDCouplingFieldInt *>(f))
8666 +    ret=SWIG_NewPointerObj(reinterpret_cast<void*>(f),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldInt,owner);
8667 +  if(dynamic_cast<MEDCoupling::MEDCouplingFieldFloat *>(f))
8668 +    ret=SWIG_NewPointerObj(reinterpret_cast<void*>(f),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldFloat,owner);
8669 +  if(!ret)
8670 +    throw INTERP_KERNEL::Exception("Not recognized type of field on downcast !");
8671 +  return ret;
8672 +}
8673 +
8674  static PyObject* convertMultiFields(MEDCoupling::MEDCouplingMultiFields *mfs, int owner)
8675  {
8676    PyObject *ret=0;
8677 diff -Naur MEDCOUPLING_old/src/MEDLoader/CMakeLists.txt MEDCOUPLING_new/src/MEDLoader/CMakeLists.txt
8678 --- MEDCOUPLING_old/src/MEDLoader/CMakeLists.txt        2018-04-19 17:04:36.738222743 +0200
8679 +++ MEDCOUPLING_new/src/MEDLoader/CMakeLists.txt        2018-04-19 17:25:17.745797515 +0200
8680 @@ -63,6 +63,10 @@
8681    MEDFileBasis.cxx
8682    MEDFileMeshLL.cxx
8683    MEDFileField.cxx
8684 +  MEDFileFieldInternal.cxx
8685 +  MEDFileFieldGlobs.cxx
8686 +  MEDFileField1TS.cxx
8687 +  MEDFileFieldMultiTS.cxx
8688    MEDFileJoint.cxx
8689    MEDFileEquivalence.cxx
8690    MEDFileParameter.cxx
8691 @@ -80,7 +84,7 @@
8692  
8693  ADD_LIBRARY(medloader ${medloader_SOURCES})
8694  SET_TARGET_PROPERTIES(medloader PROPERTIES COMPILE_FLAGS "")
8695 -TARGET_LINK_LIBRARIES(medloader medcoupling ${MEDFILE_C_LIBRARIES} ${HDF5_LIBRARIES} ${MEDLOADER_XDR_LIBRARIES})
8696 +TARGET_LINK_LIBRARIES(medloader medcouplingcpp ${MEDFILE_C_LIBRARIES} ${HDF5_LIBRARIES} ${MEDLOADER_XDR_LIBRARIES})
8697  INSTALL(TARGETS medloader EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${MEDCOUPLING_INSTALL_LIBS})
8698  
8699  FILE(GLOB medloader_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
8700 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileBlowStrEltUp.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileBlowStrEltUp.cxx
8701 --- MEDCOUPLING_old/src/MEDLoader/MEDFileBlowStrEltUp.cxx       2018-04-19 17:04:36.738222743 +0200
8702 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileBlowStrEltUp.cxx       2018-04-19 17:25:17.812798839 +0200
8703 @@ -23,6 +23,7 @@
8704  #include "MEDFileFieldVisitor.hxx"
8705  #include "MEDCouplingPartDefinition.hxx"
8706  #include "MCAuto.txx"
8707 +#include <numeric>
8708  
8709  using namespace MEDCoupling;
8710  
8711 @@ -337,10 +338,13 @@
8712    void checkUniqueLoc(const std::string& loc) const;
8713    static MCAuto<DataArrayDouble> BuildMeshFromAngleVrille(INTERP_KERNEL::NormalizedCellType gt, const DataArrayDouble *angleDeVrille, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs);
8714    static MCAuto<DataArrayDouble> BuildMeshFromEpaisseur(INTERP_KERNEL::NormalizedCellType gt, const DataArrayDouble *thikness, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs);
8715 +  static MCAuto<DataArrayDouble> BuildMeshPipeSEG3(const DataArrayDouble *angle, const DataArrayDouble *scale, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs);
8716    static MCAuto<MEDCouplingUMesh> BuildMeshCommon(INTERP_KERNEL::NormalizedCellType gt, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs, MCAuto<DataArrayDouble>& ptsForLoc);
8717    static MCAuto<DataArrayDouble> BuildMeshFromStructure(INTERP_KERNEL::NormalizedCellType gt, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs);
8718  public:
8719    static const char ANGLE_DE_VRILLE[];
8720 +  static const char ANGLE[];
8721 +  static const char SCALE[];
8722    static const char EPAISSEUR[];
8723  private:
8724    std::vector<std::string> _locs;
8725 @@ -350,6 +354,10 @@
8726  
8727  const char LocInfo::ANGLE_DE_VRILLE[]="ANGLE DE VRILLE";
8728  
8729 +const char LocInfo::ANGLE[]="ANGLE";
8730 +
8731 +const char LocInfo::SCALE[]="SCALE";
8732 +
8733  const char LocInfo::EPAISSEUR[]="EPAISSEUR";
8734  
8735  LocInfo::LocInfo(const std::vector<FieldWalker2>& fw)
8736 @@ -376,7 +384,7 @@
8737      }
8738  }
8739  
8740 -MCAuto<MEDCouplingUMesh> LocInfo::BuildMeshCommon(INTERP_KERNEL::NormalizedCellType gt,const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs, MCAuto<DataArrayDouble>& ptsForLoc)
8741 +MCAuto<MEDCouplingUMesh> LocInfo::BuildMeshCommon(INTERP_KERNEL::NormalizedCellType gt, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs, MCAuto<DataArrayDouble>& ptsForLoc)
8742  {
8743    MCAuto<DataArrayInt> conn(zeStr->getConn());
8744    conn=conn->deepCopy(); conn->rearrange(1);
8745 @@ -453,6 +461,7 @@
8746  
8747  MCAuto<DataArrayDouble> LocInfo::BuildMeshFromEpaisseur(INTERP_KERNEL::NormalizedCellType gt, const DataArrayDouble *thikness, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs)
8748  {
8749 +#if __cplusplus >= 201103L
8750    MCAuto<DataArrayDouble> ptsForLoc;
8751    MCAuto<MEDCouplingUMesh> geoMesh(BuildMeshCommon(gt,pfl,loc,zeStr,mesh,section,globs,ptsForLoc));
8752    int nbSecPts(section->getNumberOfNodes()),nbCells(geoMesh->getNumberOfCells()),nbg(loc.getGaussWeights().size());
8753 @@ -460,7 +469,6 @@
8754    if(!pfl.empty())
8755      {
8756        const DataArrayInt *pflArr(globs->getProfile(pfl));
8757 -      geoMesh=geoMesh->buildPartOfMySelf(pflArr->begin(),pflArr->end(),true);
8758        zeThikness=thikness->selectByTupleIdSafe(pflArr->begin(),pflArr->end());
8759      }
8760    else
8761 @@ -476,11 +484,14 @@
8762    std::vector< MCAuto<DataArrayDouble> > arrs(nbCells*nbg);
8763    for(int j=0;j<nbCells;j++)
8764      {
8765 -      double thck(zeThikness->getIJ(j,0));
8766 -      MCAuto<DataArrayDouble> fact(DataArrayDouble::New()); fact->alloc(1,nbCompo);
8767 +      double thck(zeThikness->getIJ(j,0)),eccentricity(zeThikness->getIJ(j,1));
8768 +      MCAuto<DataArrayDouble> fact(DataArrayDouble::New()),fact2(DataArrayDouble::New()); fact->alloc(1,nbCompo); fact2->alloc(1,nbCompo);
8769        std::copy(orthoArr->begin()+j*nbCompo,orthoArr->begin()+(j+1)*nbCompo,fact->getPointer());
8770 -      std::transform(fact->begin(),fact->end(),fact->getPointer(),std::bind2nd(std::multiplies<double>(),thck/2.));
8771 +      std::copy(orthoArr->begin()+j*nbCompo,orthoArr->begin()+(j+1)*nbCompo,fact2->getPointer());
8772 +      std::for_each(fact2->rwBegin(),fact2->rwEnd(),[eccentricity](double& val){ val*=eccentricity; });
8773 +      std::transform(fact->begin(),fact->end(),fact->getPointer(),[thck](const double& val){ return val*thck/2.; });
8774        MCAuto<DataArrayDouble> p(DataArrayDouble::Multiply(secPts,fact));
8775 +      p=DataArrayDouble::Add(p,fact2);
8776        for(int l=0;l<nbg;l++)
8777          {
8778            MCAuto<DataArrayDouble> p2(p->deepCopy());
8779 @@ -492,24 +503,131 @@
8780    std::vector<const DataArrayDouble *> arrs2(VecAutoToVecOfCstPt(arrs));
8781    MCAuto<DataArrayDouble> resu(DataArrayDouble::Aggregate(arrs2));
8782    return resu;
8783 +#else
8784 +  throw INTERP_KERNEL::Exception("Broken news : 10% off for C++11 compiler :)");
8785 +#endif
8786 +}
8787 +
8788 +MCAuto<DataArrayDouble> LocInfo::BuildMeshPipeSEG3(const DataArrayDouble *angle, const DataArrayDouble *scale, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs)
8789 +{
8790 +#if __cplusplus >= 201103L
8791 +  static const char MSG1[]="BuildMeshPipeSEG3 : not recognized pattern ! Send mail to anthony.geay@edf.fr with corresponding MED file !";
8792 +  MCAuto<DataArrayDouble> ptsForLoc;
8793 +  MCAuto<MEDCouplingUMesh> geoMesh(BuildMeshCommon(INTERP_KERNEL::NORM_SEG3,pfl,loc,zeStr,mesh,section,globs,ptsForLoc));
8794 +  int nbSecPts(section->getNumberOfNodes()),nbCells(geoMesh->getNumberOfCells()),nbg(loc.getGaussWeights().size());
8795 +  MCConstAuto<DataArrayDouble> zeAngle,zeScale;
8796 +  if(!pfl.empty())
8797 +    {
8798 +      const DataArrayInt *pflArr(globs->getProfile(pfl));
8799 +      zeAngle=angle->selectByTupleIdSafe(pflArr->begin(),pflArr->end());
8800 +      zeScale=scale->selectByTupleIdSafe(pflArr->begin(),pflArr->end());
8801 +    }
8802 +  else
8803 +    {
8804 +      zeAngle.takeRef(angle);
8805 +      zeScale.takeRef(scale);
8806 +    }
8807 +  if(zeAngle->getNumberOfComponents()!=3 || zeScale->getNumberOfComponents()!=2 || nbg!=3)
8808 +    throw INTERP_KERNEL::Exception(MSG1);
8809 +  MCAuto<MEDCouplingFieldDouble> dir;
8810 +  {
8811 +    MCAuto<MEDCouplingUMesh> geoMesh2(geoMesh->deepCopy());
8812 +    geoMesh2->convertQuadraticCellsToLinear();
8813 +    dir=geoMesh2->buildDirectionVectorField();
8814 +  }
8815 +  MCAuto<DataArrayDouble> rot(dir->getArray()->fromCartToSpher());
8816 +  int nbCompo(ptsForLoc->getNumberOfComponents());
8817 +  MCAuto<DataArrayDouble> secPts(section->getCoords()->changeNbOfComponents(nbCompo,0.));
8818 +  {
8819 +    const int TAB[3]={2,0,1};
8820 +    std::vector<int> v(TAB,TAB+3);
8821 +    secPts=secPts->keepSelectedComponents(v);
8822 +  }
8823 +  const double CENTER[3]={0.,0.,0.},AX0[3]={0.,0.,1.};
8824 +  double AX1[3]; AX1[2]=0.;
8825 +  std::vector< MCAuto<DataArrayDouble> > arrs(nbCells*nbg);
8826 +  for(int j=0;j<nbCells;j++)
8827 +    {
8828 +      constexpr int DIM=3;
8829 +      MCAuto<DataArrayDouble> p(secPts->deepCopy());
8830 +      double ang0(rot->getIJ(j,2));
8831 +      double rmin(zeScale->getIJ(j,0)),rmax(zeScale->getIJ(j,1));
8832 +      {
8833 +        auto pt(p->rwBegin());
8834 +        for(int i=0;i<nbSecPts;i++)
8835 +          {
8836 +            auto nrm(sqrt(std::accumulate(pt,pt+DIM,0.,[](double sum, double v) { return sum+v*v; } )));
8837 +            auto sca((rmin+2.*(nrm-0.5)*(rmax-rmin))/nrm);
8838 +            std::for_each(pt,pt+3,[sca](double& val) { val*=sca; } );
8839 +            std::advance(pt,DIM);
8840 +          }
8841 +      }
8842 +      DataArrayDouble::Rotate3DAlg(CENTER,AX0,ang0,nbSecPts,p->begin(),p->getPointer());
8843 +      AX1[0]=-sin(ang0); AX1[1]=cos(ang0);// rot Oy around OZ
8844 +      double ang1(M_PI/2.-rot->getIJ(j,1));
8845 +      DataArrayDouble::Rotate3DAlg(CENTER,AX1,-ang1,nbSecPts,p->begin(),p->getPointer());
8846 +      for(int l=0;l<3;l++)
8847 +        {
8848 +          MCAuto<DataArrayDouble> p3(p->deepCopy());
8849 +          DataArrayDouble::Rotate3DAlg(CENTER,dir->getArray()->begin()+j*3,zeAngle->getIJ(j,l),nbSecPts,p3->begin(),p3->getPointer());
8850 +          MCAuto<DataArrayDouble> p2(p3->deepCopy());
8851 +          for(int k=0;k<nbCompo;k++)
8852 +            p2->applyLin(1.,ptsForLoc->getIJ(j*nbg+l,k),k);
8853 +          arrs[j*nbg+l]=p2;
8854 +        }
8855 +    }
8856 +  std::vector<const DataArrayDouble *> arrs2(VecAutoToVecOfCstPt(arrs));
8857 +  MCAuto<DataArrayDouble> resu(DataArrayDouble::Aggregate(arrs2));
8858 +  return resu;
8859 +#else
8860 +  throw INTERP_KERNEL::Exception("Broken news : 10% off for C++11 compiler :)");
8861 +#endif
8862  }
8863  
8864  MCAuto<DataArrayDouble> LocInfo::BuildMeshFromStructure(INTERP_KERNEL::NormalizedCellType gt, const std::string& pfl, const MEDFileFieldLoc& loc, const MEDFileEltStruct4Mesh *zeStr, const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileFieldGlobsReal *globs)
8865  {
8866    static const char MSG1[]="BuildMeshFromStructure : not recognized pattern ! Send mail to anthony.geay@edf.fr with corresponding MED file !";
8867    const std::vector< MCAuto<DataArray> >& vars(zeStr->getVars());
8868 -  if(vars.size()!=1)
8869 -    throw INTERP_KERNEL::Exception(MSG1);
8870 -  MCAuto<DataArray> zeArr(vars[0]);
8871 -  if(zeArr.isNull())
8872 -    throw INTERP_KERNEL::Exception(MSG1);
8873 -  MCAuto<DataArrayDouble> zeArr2(DynamicCast<DataArray,DataArrayDouble>(zeArr));
8874 -  if(zeArr2.isNull())
8875 -    throw INTERP_KERNEL::Exception(MSG1);
8876 -  if(zeArr2->getName()==ANGLE_DE_VRILLE)
8877 -    return BuildMeshFromAngleVrille(gt,zeArr2,pfl,loc,zeStr,mesh,section,globs);
8878 -  if(zeArr2->getName()==EPAISSEUR)
8879 -    return BuildMeshFromEpaisseur(gt,zeArr2,pfl,loc,zeStr,mesh,section,globs);
8880 +  if(vars.size()==1)
8881 +    {
8882 +      MCAuto<DataArray> zeArr(vars[0]);
8883 +      if(zeArr.isNull())
8884 +        throw INTERP_KERNEL::Exception(MSG1);
8885 +      MCAuto<DataArrayDouble> zeArr2(DynamicCast<DataArray,DataArrayDouble>(zeArr));
8886 +      if(zeArr2.isNull())
8887 +        throw INTERP_KERNEL::Exception(MSG1);
8888 +      if(zeArr2->getName()==ANGLE_DE_VRILLE || zeArr2->getName()==ANGLE)
8889 +        return BuildMeshFromAngleVrille(gt,zeArr2,pfl,loc,zeStr,mesh,section,globs);
8890 +      if(zeArr2->getName()==EPAISSEUR || zeArr2->getName()==SCALE)
8891 +        return BuildMeshFromEpaisseur(gt,zeArr2,pfl,loc,zeStr,mesh,section,globs);
8892 +    }
8893 +  if(vars.size()==2)
8894 +    {
8895 +      MCAuto<DataArray> zeArr0(vars[0]),zeArr1(vars[1]);
8896 +      if(zeArr0.isNull() || zeArr1.isNull())
8897 +        throw INTERP_KERNEL::Exception(MSG1);
8898 +      MCAuto<DataArrayDouble> zeArr00(DynamicCastSafe<DataArray,DataArrayDouble>(zeArr0)),zeArr11(DynamicCastSafe<DataArray,DataArrayDouble>(zeArr1));
8899 +      switch(gt)
8900 +      {
8901 +        case INTERP_KERNEL::NORM_SEG3:
8902 +          {
8903 +            MCAuto<DataArrayDouble> angle,scale;
8904 +            if(zeArr00->getName()==ANGLE)
8905 +              angle=zeArr00;
8906 +            if(zeArr00->getName()==SCALE)
8907 +              scale=zeArr00;
8908 +            if(zeArr11->getName()==ANGLE)
8909 +              angle=zeArr11;
8910 +            if(zeArr11->getName()==SCALE)
8911 +              scale=zeArr11;
8912 +            if(angle.isNull() || scale.isNull())
8913 +              throw INTERP_KERNEL::Exception(MSG1);
8914 +            return BuildMeshPipeSEG3(angle,scale,pfl,loc,zeStr,mesh,section,globs);
8915 +          }
8916 +        default:
8917 +          throw INTERP_KERNEL::Exception(MSG1);
8918 +      }
8919 +    }
8920    throw INTERP_KERNEL::Exception(MSG1);
8921  }
8922  
8923 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileField1TS.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileField1TS.cxx
8924 --- MEDCOUPLING_old/src/MEDLoader/MEDFileField1TS.cxx   1970-01-01 01:00:00.000000000 +0100
8925 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileField1TS.cxx   2018-04-19 17:25:17.799798582 +0200
8926 @@ -0,0 +1,2630 @@
8927 +// Copyright (C) 2017  CEA/DEN, EDF R&D
8928 +//
8929 +// This library is free software; you can redistribute it and/or
8930 +// modify it under the terms of the GNU Lesser General Public
8931 +// License as published by the Free Software Foundation; either
8932 +// version 2.1 of the License, or (at your option) any later version.
8933 +//
8934 +// This library is distributed in the hope that it will be useful,
8935 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
8936 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
8937 +// Lesser General Public License for more details.
8938 +//
8939 +// You should have received a copy of the GNU Lesser General Public
8940 +// License along with this library; if not, write to the Free Software
8941 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
8942 +//
8943 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
8944 +//
8945 +// Author : Anthony Geay (EDF R&D)
8946 +
8947 +#include "MEDFileField1TS.hxx"
8948 +#include "MEDFileFieldVisitor.hxx"
8949 +#include "MEDFileSafeCaller.txx"
8950 +#include "MEDLoaderBase.hxx"
8951 +#include "MEDFileField.txx"
8952 +
8953 +#include "MEDCouplingFieldTemplate.hxx"
8954 +#include "MEDCouplingFieldDouble.hxx"
8955 +
8956 +using namespace MEDCoupling;
8957 +
8958 +extern INTERP_KERNEL::NormalizedCellType typmai2[MED_N_CELL_FIXED_GEO];
8959 +
8960 +template class MEDCoupling::MEDFileField1TSTemplateWithoutSDA<int>;
8961 +template class MEDCoupling::MEDFileField1TSTemplateWithoutSDA<float>;
8962 +template class MEDCoupling::MEDFileField1TSTemplateWithoutSDA<double>;
8963 +template class MEDCoupling::MEDFileField1TSNDTemplateWithoutSDA<int>;
8964 +template class MEDCoupling::MEDFileField1TSNDTemplateWithoutSDA<float>;
8965 +template class MEDCoupling::MEDFileTemplateField1TS<int>;
8966 +template class MEDCoupling::MEDFileTemplateField1TS<float>;
8967 +template class MEDCoupling::MEDFileTemplateField1TS<double>;
8968 +template class MEDCoupling::MEDFileNDTemplateField1TS<int>;
8969 +template class MEDCoupling::MEDFileNDTemplateField1TS<float>;
8970 +
8971 +const char MEDFileField1TSWithoutSDA::TYPE_STR[]="FLOAT64";
8972 +const char MEDFileIntField1TSWithoutSDA::TYPE_STR[]="INT32";
8973 +const char MEDFileFloatField1TSWithoutSDA::TYPE_STR[]="FLOAT32";
8974 +
8975 +//= MEDFileAnyTypeField1TSWithoutSDA
8976 +
8977 +void MEDFileAnyTypeField1TSWithoutSDA::deepCpyLeavesFrom(const MEDFileAnyTypeField1TSWithoutSDA& other)
8978 +{
8979 +  _field_per_mesh.resize(other._field_per_mesh.size());
8980 +  std::size_t i=0;
8981 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=other._field_per_mesh.begin();it!=other._field_per_mesh.end();it++,i++)
8982 +    {
8983 +      if((const MEDFileFieldPerMesh *)*it)
8984 +        _field_per_mesh[i]=(*it)->deepCopy(this);
8985 +    }
8986 +}
8987 +
8988 +void MEDFileAnyTypeField1TSWithoutSDA::accept(MEDFileFieldVisitor& visitor) const
8989 +{
8990 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
8991 +    if((*it).isNotNull())
8992 +      {
8993 +        visitor.newMeshEntry(*it);
8994 +        (*it)->accept(visitor);
8995 +        visitor.endMeshEntry(*it);
8996 +      }
8997 +}
8998 +
8999 +/*!
9000 + * Prints a string describing \a this field into a stream. This string is outputted 
9001 + * by \c print Python command.
9002 + *  \param [in] bkOffset - number of white spaces printed at the beginning of each line.
9003 + *  \param [in,out] oss - the out stream.
9004 + *  \param [in] f1tsId - the field index within a MED file. If \a f1tsId < 0, the tiny
9005 + *          info id printed, else, not.
9006 + */
9007 +void MEDFileAnyTypeField1TSWithoutSDA::simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const
9008 +{
9009 +  std::string startOfLine(bkOffset,' ');
9010 +  oss << startOfLine << "Field ";
9011 +  if(bkOffset==0)
9012 +    oss << "[Type=" << getTypeStr() << "] with name \"" << getName() << "\" ";
9013 +  oss << "on one time Step ";
9014 +  if(f1tsId>=0)
9015 +    oss << "(" << f1tsId << ") ";
9016 +  oss << "on iteration=" << _iteration << " order=" << _order << "." << std::endl;
9017 +  oss << startOfLine << "Time attached is : " << _dt << " [" << _dt_unit << "]." << std::endl;
9018 +  const DataArray *arr=getUndergroundDataArray();
9019 +  if(arr)
9020 +    {
9021 +      const std::vector<std::string> &comps=arr->getInfoOnComponents();
9022 +      if(f1tsId<0)
9023 +        {
9024 +          oss << startOfLine << "Field has " << comps.size() << " components with the following infos :" << std::endl;
9025 +          for(std::vector<std::string>::const_iterator it=comps.begin();it!=comps.end();it++)
9026 +            oss << startOfLine << "  -  \"" << (*it) << "\"" << std::endl;
9027 +        }
9028 +      if(arr->isAllocated())
9029 +        {
9030 +          oss << startOfLine << "Whole field contains " << arr->getNumberOfTuples() << " tuples." << std::endl;
9031 +        }
9032 +      else
9033 +        oss << startOfLine << "The array of the current field has not allocated yet !" << std::endl;
9034 +    }
9035 +  else
9036 +    {
9037 +      oss << startOfLine << "Field infos are empty ! Not defined yet !" << std::endl;
9038 +    }
9039 +  oss << startOfLine << "----------------------" << std::endl;
9040 +  if(!_field_per_mesh.empty())
9041 +    {
9042 +      int i=0;
9043 +      for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it2=_field_per_mesh.begin();it2!=_field_per_mesh.end();it2++,i++)
9044 +        {
9045 +          const MEDFileFieldPerMesh *cur=(*it2);
9046 +          if(cur)
9047 +            cur->simpleRepr(bkOffset,oss,i);
9048 +          else
9049 +            oss << startOfLine << "Field per mesh #" << i << " is not defined !" << std::endl;
9050 +        }
9051 +    }
9052 +  else
9053 +    {
9054 +      oss << startOfLine << "Field is not defined on any meshes !" << std::endl;
9055 +    }
9056 +  oss << startOfLine << "----------------------" << std::endl;
9057 +}
9058 +
9059 +std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > MEDFileAnyTypeField1TSWithoutSDA::splitComponents() const
9060 +{
9061 +  const DataArray *arr(getUndergroundDataArray());
9062 +  if(!arr)
9063 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::splitComponents : no array defined !");
9064 +  int nbOfCompo=arr->getNumberOfComponents();
9065 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret(nbOfCompo);
9066 +  for(int i=0;i<nbOfCompo;i++)
9067 +    {
9068 +      ret[i]=deepCopy();
9069 +      std::vector<int> v(1,i);
9070 +      MCAuto<DataArray> arr2=arr->keepSelectedComponents(v);
9071 +      ret[i]->setArray(arr2);
9072 +    }
9073 +  return ret;
9074 +}
9075 +
9076 +MEDFileAnyTypeField1TSWithoutSDA::MEDFileAnyTypeField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order):MEDFileFieldNameScope(fieldName,meshName),_iteration(iteration),_order(order),_csit(csit),_nb_of_tuples_to_be_allocated(-2)
9077 +{
9078 +}
9079 +
9080 +MEDFileAnyTypeField1TSWithoutSDA::MEDFileAnyTypeField1TSWithoutSDA():_iteration(-1),_order(-1),_dt(0.),_csit(-1),_nb_of_tuples_to_be_allocated(-1)
9081 +{
9082 +}
9083 +
9084 +/*!
9085 + * Returns the maximal dimension of supporting elements. Returns -2 if \a this is
9086 + * empty. Returns -1 if this in on nodes.
9087 + *  \return int - the dimension of \a this.
9088 + */
9089 +int MEDFileAnyTypeField1TSWithoutSDA::getDimension() const
9090 +{
9091 +  int ret=-2;
9092 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9093 +    (*it)->getDimension(ret);
9094 +  return ret;
9095 +}
9096 +
9097 +bool MEDFileAnyTypeField1TSWithoutSDA::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
9098 +{
9099 +  bool ret=false;
9100 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9101 +    {
9102 +      MEDFileFieldPerMesh *cur(*it);
9103 +      if(cur)
9104 +        ret=cur->changeMeshNames(modifTab) || ret;
9105 +    }
9106 +  return ret;
9107 +}
9108 +
9109 +/*!
9110 + * Returns the number of iteration of the state of underlying mesh.
9111 + *  \return int - the iteration number.
9112 + *  \throw If \c _field_per_mesh.empty()
9113 + */
9114 +int MEDFileAnyTypeField1TSWithoutSDA::getMeshIteration() const
9115 +{
9116 +  if(_field_per_mesh.empty())
9117 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::getMeshIteration : No field set !");
9118 +  return _field_per_mesh[0]->getMeshIteration();
9119 +}
9120 +
9121 +/*!
9122 + * Returns the order number of iteration of the state of underlying mesh.
9123 + *  \return int - the order number.
9124 + *  \throw If \c _field_per_mesh.empty()
9125 + */
9126 +int MEDFileAnyTypeField1TSWithoutSDA::getMeshOrder() const
9127 +{
9128 +  if(_field_per_mesh.empty())
9129 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::getMeshOrder : No field set !");
9130 +  return _field_per_mesh[0]->getMeshOrder();
9131 +}
9132 +
9133 +/*!
9134 + * Checks if \a this field is tagged by a given iteration number and a given
9135 + * iteration order number.
9136 + *  \param [in] iteration - the iteration number of interest.
9137 + *  \param [in] order - the iteration order number of interest.
9138 + *  \return bool - \c true if \a this->getIteration() == \a iteration && 
9139 + *          \a this->getOrder() == \a order.
9140 + */
9141 +bool MEDFileAnyTypeField1TSWithoutSDA::isDealingTS(int iteration, int order) const
9142 +{
9143 +  return iteration==_iteration && order==_order;
9144 +}
9145 +
9146 +/*!
9147 + * Returns number of iteration and order number of iteration when
9148 + * \a this field has been calculated.
9149 + *  \return std::pair<int,int> - a pair of the iteration number and the iteration
9150 + *          order number.
9151 + */
9152 +std::pair<int,int> MEDFileAnyTypeField1TSWithoutSDA::getDtIt() const
9153 +{
9154 +  std::pair<int,int> p;
9155 +  fillIteration(p);
9156 +  return p;
9157 +}
9158 +
9159 +/*!
9160 + * Returns number of iteration and order number of iteration when
9161 + * \a this field has been calculated.
9162 + *  \param [in,out] p - a pair returning the iteration number and the iteration
9163 + *          order number.
9164 + */
9165 +void MEDFileAnyTypeField1TSWithoutSDA::fillIteration(std::pair<int,int>& p) const
9166 +{
9167 +  p.first=_iteration;
9168 +  p.second=_order;
9169 +}
9170 +
9171 +/*!
9172 + * Returns all types of spatial discretization of \a this field.
9173 + *  \param [in,out] types - a sequence of types of \a this field.
9174 + */
9175 +void MEDFileAnyTypeField1TSWithoutSDA::fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const
9176 +{
9177 +  std::set<TypeOfField> types2;
9178 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9179 +    {
9180 +      (*it)->fillTypesOfFieldAvailable(types2);
9181 +    }
9182 +  std::back_insert_iterator< std::vector<TypeOfField> > bi(types);
9183 +  std::copy(types2.begin(),types2.end(),bi);
9184 +}
9185 +
9186 +/*!
9187 + * Returns all types of spatial discretization of \a this field.
9188 + *  \return std::vector<TypeOfField> - a sequence of types of spatial discretization
9189 + *          of \a this field.
9190 + */
9191 +std::vector<TypeOfField> MEDFileAnyTypeField1TSWithoutSDA::getTypesOfFieldAvailable() const
9192 +{
9193 +  std::vector<TypeOfField> ret;
9194 +  fillTypesOfFieldAvailable(ret);
9195 +  return ret;
9196 +}
9197 +
9198 +std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getPflsReallyUsed2() const
9199 +{
9200 +  std::vector<std::string> ret;
9201 +  std::set<std::string> ret2;
9202 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9203 +    {
9204 +      std::vector<std::string> tmp=(*it)->getPflsReallyUsed();
9205 +      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
9206 +        if(ret2.find(*it2)==ret2.end())
9207 +          {
9208 +            ret.push_back(*it2);
9209 +            ret2.insert(*it2);
9210 +          }
9211 +    }
9212 +  return ret;
9213 +}
9214 +
9215 +std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getLocsReallyUsed2() const
9216 +{
9217 +  std::vector<std::string> ret;
9218 +  std::set<std::string> ret2;
9219 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9220 +    {
9221 +      std::vector<std::string> tmp=(*it)->getLocsReallyUsed();
9222 +      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
9223 +        if(ret2.find(*it2)==ret2.end())
9224 +          {
9225 +            ret.push_back(*it2);
9226 +            ret2.insert(*it2);
9227 +          }
9228 +    }
9229 +  return ret;
9230 +}
9231 +
9232 +std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getPflsReallyUsedMulti2() const
9233 +{
9234 +  std::vector<std::string> ret;
9235 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9236 +    {
9237 +      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti();
9238 +      ret.insert(ret.end(),tmp.begin(),tmp.end());
9239 +    }
9240 +  return ret;
9241 +}
9242 +
9243 +std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getLocsReallyUsedMulti2() const
9244 +{
9245 +  std::vector<std::string> ret;
9246 +  std::set<std::string> ret2;
9247 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9248 +    {
9249 +      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti();
9250 +      ret.insert(ret.end(),tmp.begin(),tmp.end());
9251 +    }
9252 +  return ret;
9253 +}
9254 +
9255 +void MEDFileAnyTypeField1TSWithoutSDA::changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
9256 +{
9257 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9258 +    (*it)->changePflsRefsNamesGen(mapOfModif);
9259 +}
9260 +
9261 +void MEDFileAnyTypeField1TSWithoutSDA::changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
9262 +{
9263 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9264 +    (*it)->changeLocsRefsNamesGen(mapOfModif);
9265 +}
9266 +
9267 +/*!
9268 + * Returns all attributes of parts of \a this field lying on a given mesh.
9269 + * Each part differs from other ones by a type of supporting mesh entity. The _i_-th
9270 + * item of every of returned sequences refers to the _i_-th part of \a this field.
9271 + * Thus all sequences returned by this method are of the same length equal to number
9272 + * of different types of supporting entities.<br>
9273 + * A field part can include sub-parts with several different spatial discretizations,
9274 + * \ref MEDCoupling::ON_CELLS "ON_CELLS" and \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT"
9275 + * for example. Hence, some of the returned sequences contains nested sequences, and an item
9276 + * of a nested sequence corresponds to a type of spatial discretization.<br>
9277 + * This method allows for iteration over MEDFile DataStructure without any overhead.
9278 + *  \param [in] mname - a name of a mesh of interest. It can be \c NULL, which is valid
9279 + *          for the case with only one underlying mesh. (Actually, the number of meshes is
9280 + *          not checked if \a mname == \c NULL).
9281 + *  \param [in,out] types - a sequence of types of underlying mesh entities. A type per
9282 + *          a field part is returned. 
9283 + *  \param [in,out] typesF - a sequence of sequences of types of spatial discretizations.
9284 + *          This sequence is of the same length as \a types. 
9285 + *  \param [in,out] pfls - a sequence returning a profile name per each type of spatial
9286 + *          discretization. A profile name can be empty.
9287 + *          Length of this and of nested sequences is the same as that of \a typesF.
9288 + *  \param [in,out] locs - a sequence returning a localization name per each type of spatial
9289 + *          discretization. A localization name can be empty.
9290 + *          Length of this and of nested sequences is the same as that of \a typesF.
9291 + *  \return std::vector< std::vector< std::pair<int,int> > > - a sequence holding a range
9292 + *          of ids of tuples within the data array, per each type of spatial
9293 + *          discretization within one mesh entity type. 
9294 + *          Length of this and of nested sequences is the same as that of \a typesF.
9295 + *  \throw If no field is lying on \a mname.
9296 + */
9297 +std::vector< std::vector< std::pair<int,int> > > MEDFileAnyTypeField1TSWithoutSDA::getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
9298 +{
9299 +  if(_field_per_mesh.empty())
9300 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldSplitedByType : This is empty !");
9301 +  return _field_per_mesh[0]->getFieldSplitedByType(types,typesF,pfls,locs);
9302 +}
9303 +
9304 +/*!
9305 + * Returns dimensions of mesh elements \a this field lies on. The returned value is a
9306 + * maximal absolute dimension and values returned via the out parameter \a levs are 
9307 + * dimensions relative to the maximal absolute dimension. <br>
9308 + * This method is designed for MEDFileField1TS instances that have a discretization
9309 + * \ref MEDCoupling::ON_CELLS "ON_CELLS", 
9310 + * \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT", 
9311 + * \ref MEDCoupling::ON_GAUSS_NE "ON_GAUSS_NE".
9312 + * Only these 3 discretizations will be taken into account here. If \a this is
9313 + * \ref MEDCoupling::ON_NODES "ON_NODES", -1 is returned and \a levs are empty.<br>
9314 + * This method is useful to make the link between the dimension of the underlying mesh
9315 + * and the levels of \a this, because it is possible that the highest dimension of \a this
9316 + * field is not equal to the dimension of the underlying mesh.
9317 + * 
9318 + * Let's consider the following case:
9319 + * - mesh \a m1 has a meshDimension 3 and has non empty levels [0,-1,-2] with elements
9320 + * TETRA4, HEXA8, TRI3 and SEG2.
9321 + * - field \a f1 lies on \a m1 and is defined on 3D and 1D elements TETRA4 and SEG2.
9322 + * - field \a f2 lies on \a m1 and is defined on 2D and 1D elements TRI3 and SEG2.
9323 + *
9324 + * In this case \a f1->getNonEmptyLevels() returns (3,[0,-2]) and \a
9325 + * f2->getNonEmptyLevels() returns (2,[0,-1]). <br>
9326 + * The returned values can be used for example to retrieve a MEDCouplingFieldDouble lying
9327 + * on elements of a certain relative level by calling getFieldAtLevel(). \a meshDimRelToMax
9328 + * parameter of getFieldAtLevel() is computed basing on the returned values as this:
9329 + * <em> meshDimRelToMax = absDim - meshDim + relativeLev </em>.
9330 + * For example<br>
9331 + * to retrieve the highest level of
9332 + * \a f1: <em>f1->getFieldAtLevel( ON_CELLS, 3-3+0 ); // absDim - meshDim + relativeLev</em><br> 
9333 + * to retrieve the lowest level of \a f1: <em>f1->getFieldAtLevel( ON_CELLS, 3-3+(-2) );</em><br>
9334 + * to retrieve the highest level of \a f2: <em>f2->getFieldAtLevel( ON_CELLS, 2-3+0 );</em><br>
9335 + * to retrieve the lowest level of \a f2: <em>f2->getFieldAtLevel( ON_CELLS, 2-3+(-1) )</em>.
9336 + *  \param [in] mname - a name of a mesh of interest. It can be \c NULL, which is valid
9337 + *          for the case with only one underlying mesh. (Actually, the number of meshes is
9338 + *          not checked if \a mname == \c NULL).
9339 + *  \param [in,out] levs - a sequence returning the dimensions relative to the maximal
9340 + *          absolute one. They are in decreasing order. This sequence is cleared before
9341 + *          filling it in.
9342 + *  \return int - the maximal absolute dimension of elements \a this fields lies on.
9343 + *  \throw If no field is lying on \a mname.
9344 + */
9345 +int MEDFileAnyTypeField1TSWithoutSDA::getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const
9346 +{
9347 +  levs.clear();
9348 +  std::vector<INTERP_KERNEL::NormalizedCellType> types;
9349 +  std::vector< std::vector<TypeOfField> > typesF;
9350 +  std::vector< std::vector<std::string> > pfls, locs;
9351 +  if(_field_per_mesh.empty())
9352 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getNonEmptyLevels : This is empty !");
9353 +  _field_per_mesh[0]->getFieldSplitedByType(types,typesF,pfls,locs);
9354 +  if(types.empty())
9355 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getNonEmptyLevels : 'this' is empty !");
9356 +  std::set<INTERP_KERNEL::NormalizedCellType> st(types.begin(),types.end());
9357 +  if(st.size()==1 && (*st.begin())==INTERP_KERNEL::NORM_ERROR)
9358 +    return -1;
9359 +  st.erase(INTERP_KERNEL::NORM_ERROR);
9360 +  std::set<int> ret1;
9361 +  for(std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator it=st.begin();it!=st.end();it++)
9362 +    {
9363 +      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(*it);
9364 +      ret1.insert((int)cm.getDimension());
9365 +    }
9366 +  int ret=*std::max_element(ret1.begin(),ret1.end());
9367 +  std::copy(ret1.rbegin(),ret1.rend(),std::back_insert_iterator<std::vector<int> >(levs));
9368 +  std::transform(levs.begin(),levs.end(),levs.begin(),std::bind2nd(std::plus<int>(),-ret));
9369 +  return ret;
9370 +}
9371 +
9372 +void MEDFileAnyTypeField1TSWithoutSDA::convertMedBallIntoClassic()
9373 +{
9374 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it<_field_per_mesh.end();it++)
9375 +    if((*it).isNotNull())
9376 +      (*it)->convertMedBallIntoClassic();
9377 +}
9378 +
9379 +void MEDFileAnyTypeField1TSWithoutSDA::makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl)
9380 +{
9381 +  if(!pfl)
9382 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : null pfl !");
9383 +  std::string name(pfl->getName());
9384 +  pfl->checkAllocated();
9385 +  if(pfl->getNumberOfComponents()!=1)
9386 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : non mono compo array !");
9387 +  if(name.empty())
9388 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : empty pfl name !");
9389 +  if(_field_per_mesh.size()!=1)
9390 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : only single mesh supported !");
9391 +  MCAuto<MEDFileFieldPerMesh> fpm(_field_per_mesh[0]);
9392 +  if(fpm.isNull())
9393 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : only single not null mesh supported !");
9394 +  MEDFileFieldPerMeshPerTypePerDisc *disc(fpm->getLeafGivenTypeAndLocId(ct,0));
9395 +  if(disc->getType()!=tof)
9396 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : error !");
9397 +  int s(disc->getStart()),e(disc->getEnd()),nt(pfl->getNumberOfTuples());
9398 +  DataArray *arr(getUndergroundDataArray());
9399 +  int nt2(arr->getNumberOfTuples()),delta((e-s)-nt);
9400 +  if(delta<0)
9401 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : internal error !");
9402 +  MCAuto<DataArray> arr0(arr->selectByTupleIdSafeSlice(0,s,1)),arr1(arr->selectByTupleIdSafeSlice(s,e,1)),arr2(arr->selectByTupleIdSafeSlice(e,nt2,1));
9403 +  MCAuto<DataArray> arr11(arr1->selectByTupleIdSafe(pfl->begin(),pfl->end()));
9404 +  MCAuto<DataArray> arrOut(arr->buildNewEmptyInstance());
9405 +  arrOut->alloc(nt2-delta,arr->getNumberOfComponents());
9406 +  arrOut->copyStringInfoFrom(*arr);
9407 +  arrOut->setContigPartOfSelectedValuesSlice(0,arr0,0,s,1);
9408 +  arrOut->setContigPartOfSelectedValuesSlice(s,arr11,0,nt,1);
9409 +  arrOut->setContigPartOfSelectedValuesSlice(e-delta,arr2,0,nt2-e,1);
9410 +  setArray(arrOut);
9411 +  disc->setEnd(e-delta);
9412 +  disc->setProfile(name);
9413 +}
9414 +
9415 +/*!
9416 + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
9417 + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
9418 + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
9419 + *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
9420 + */
9421 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId)
9422 +{
9423 +  if(_field_per_mesh.empty())
9424 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId : This is empty !");
9425 +  return _field_per_mesh[0]->getLeafGivenTypeAndLocId(typ,locId);
9426 +}
9427 +
9428 +/*!
9429 + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
9430 + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
9431 + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
9432 + *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
9433 + */
9434 +const MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const
9435 +{
9436 +  if(_field_per_mesh.empty())
9437 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId : This is empty !");
9438 +  return _field_per_mesh[0]->getLeafGivenTypeAndLocId(typ,locId);
9439 +}
9440 +
9441 +/*!
9442 + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
9443 + */
9444 +int MEDFileAnyTypeField1TSWithoutSDA::getMeshIdFromMeshName(const std::string& mName) const
9445 +{
9446 +  if(_field_per_mesh.empty())
9447 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getMeshIdFromMeshName : No field set !");
9448 +  if(mName.empty())
9449 +    return 0;
9450 +  std::string mName2(mName);
9451 +  int ret=0;
9452 +  std::vector<std::string> msg;
9453 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++,ret++)
9454 +    if(mName2==(*it)->getMeshName())
9455 +      return ret;
9456 +    else
9457 +      msg.push_back((*it)->getMeshName());
9458 +  std::ostringstream oss; oss << "MEDFileField1TSWithoutSDA::getMeshIdFromMeshName : No such mesh \"" << mName2 << "\" as underlying mesh of field \"" << getName() << "\" !\n";
9459 +  oss << "Possible meshes are : ";
9460 +  for(std::vector<std::string>::const_iterator it2=msg.begin();it2!=msg.end();it2++)
9461 +    oss << "\"" << (*it2) << "\" ";
9462 +  throw INTERP_KERNEL::Exception(oss.str());
9463 +}
9464 +
9465 +int MEDFileAnyTypeField1TSWithoutSDA::addNewEntryIfNecessary(const MEDCouplingMesh *mesh)
9466 +{
9467 +  if(!mesh)
9468 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::addNewEntryIfNecessary : input mesh is NULL !");
9469 +  std::string tmp(mesh->getName());
9470 +  if(tmp.empty())
9471 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::addNewEntryIfNecessary : empty mesh name ! unsupported by MED file !");
9472 +  setMeshName(tmp);
9473 +  std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();
9474 +  int i=0;
9475 +  for(;it!=_field_per_mesh.end();it++,i++)
9476 +    {
9477 +      if((*it)->getMeshName()==tmp)
9478 +        return i;
9479 +    }
9480 +  int sz=_field_per_mesh.size();
9481 +  _field_per_mesh.resize(sz+1);
9482 +  _field_per_mesh[sz]=MEDFileFieldPerMesh::New(this,mesh);
9483 +  return sz;
9484 +}
9485 +
9486 +bool MEDFileAnyTypeField1TSWithoutSDA::renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N,
9487 +                                                                   MEDFileFieldGlobsReal& glob)
9488 +{
9489 +  bool ret=false;
9490 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9491 +    {
9492 +      MEDFileFieldPerMesh *fpm(*it);
9493 +      if(fpm)
9494 +        ret=fpm->renumberEntitiesLyingOnMesh(meshName,oldCode,newCode,renumO2N,glob) || ret;
9495 +    }
9496 +  return ret;
9497 +}
9498 +
9499 +/*!
9500 + * This method splits \a this into several sub-parts so that each sub parts have exactly one spatial discretization. This method implements the minimal
9501 + * splitting that leads to single spatial discretization of this.
9502 + *
9503 + * \sa splitMultiDiscrPerGeoTypes
9504 + */
9505 +std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > MEDFileAnyTypeField1TSWithoutSDA::splitDiscretizations() const
9506 +{
9507 +  std::vector<INTERP_KERNEL::NormalizedCellType> types;
9508 +  std::vector< std::vector<TypeOfField> > typesF;
9509 +  std::vector< std::vector<std::string> > pfls,locs;
9510 +  std::vector< std::vector<std::pair<int,int> > > bgEnd(getFieldSplitedByType(getMeshName().c_str(),types,typesF,pfls,locs));
9511 +  std::set<TypeOfField> allEnt;
9512 +  for(std::vector< std::vector<TypeOfField> >::const_iterator it1=typesF.begin();it1!=typesF.end();it1++)
9513 +    for(std::vector<TypeOfField>::const_iterator it2=(*it1).begin();it2!=(*it1).end();it2++)
9514 +      allEnt.insert(*it2);
9515 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret(allEnt.size());
9516 +  std::set<TypeOfField>::const_iterator it3(allEnt.begin());
9517 +  for(std::size_t i=0;i<allEnt.size();i++,it3++)
9518 +    {
9519 +      std::vector< std::pair<int,int> > its;
9520 +      ret[i]=shallowCpy();
9521 +      int newLgth(ret[i]->keepOnlySpatialDiscretization(*it3,its));
9522 +      ret[i]->updateData(newLgth,its);
9523 +    }
9524 +  return ret;
9525 +}
9526 +
9527 +/*!
9528 + * This method performs a sub splitting as splitDiscretizations does but finer. This is the finest spliting level that can be done.
9529 + * This method implements the minimal splitting so that each returned elements are mono Gauss discretization per geometric type.
9530 + *
9531 + * \sa splitDiscretizations
9532 + */
9533 +std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > MEDFileAnyTypeField1TSWithoutSDA::splitMultiDiscrPerGeoTypes() const
9534 +{
9535 +  std::vector<INTERP_KERNEL::NormalizedCellType> types;
9536 +  std::vector< std::vector<TypeOfField> > typesF;
9537 +  std::vector< std::vector<std::string> > pfls,locs;
9538 +  std::vector< std::vector<std::pair<int,int> > > bgEnd(getFieldSplitedByType(getMeshName().c_str(),types,typesF,pfls,locs));
9539 +  std::set<TypeOfField> allEnt;
9540 +  std::size_t nbOfMDPGT(0),ii(0);
9541 +  for(std::vector< std::vector<TypeOfField> >::const_iterator it1=typesF.begin();it1!=typesF.end();it1++,ii++)
9542 +    {
9543 +      nbOfMDPGT=std::max(nbOfMDPGT,locs[ii].size());
9544 +      for(std::vector<TypeOfField>::const_iterator it2=(*it1).begin();it2!=(*it1).end();it2++)
9545 +        allEnt.insert(*it2);
9546 +    }
9547 +  if(allEnt.size()!=1)
9548 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::splitMultiDiscrPerGeoTypes : this field is expected to be defined only on one spatial discretization !");
9549 +  if(nbOfMDPGT==0)
9550 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::splitMultiDiscrPerGeoTypes : empty field !");
9551 +  if(nbOfMDPGT==1)
9552 +    {
9553 +      std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret0(1);
9554 +      ret0[0]=const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(this); this->incrRef();
9555 +      return ret0;
9556 +    }
9557 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret(nbOfMDPGT);
9558 +  for(std::size_t i=0;i<nbOfMDPGT;i++)
9559 +    {
9560 +      std::vector< std::pair<int,int> > its;
9561 +      ret[i]=shallowCpy();
9562 +      int newLgth(ret[i]->keepOnlyGaussDiscretization(i,its));
9563 +      ret[i]->updateData(newLgth,its);
9564 +    }
9565 +  return ret;
9566 +}
9567 +
9568 +int MEDFileAnyTypeField1TSWithoutSDA::keepOnlySpatialDiscretization(TypeOfField tof, std::vector< std::pair<int,int> >& its)
9569 +{
9570 +  int globalCounter(0);
9571 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9572 +    (*it)->keepOnlySpatialDiscretization(tof,globalCounter,its);
9573 +  return globalCounter;
9574 +}
9575 +
9576 +int MEDFileAnyTypeField1TSWithoutSDA::keepOnlyGaussDiscretization(std::size_t idOfDisc, std::vector< std::pair<int,int> >& its)
9577 +{
9578 +  int globalCounter(0);
9579 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9580 +    (*it)->keepOnlyGaussDiscretization(idOfDisc,globalCounter,its);
9581 +  return globalCounter;
9582 +}
9583 +
9584 +void MEDFileAnyTypeField1TSWithoutSDA::updateData(int newLgth, const std::vector< std::pair<int,int> >& oldStartStops)
9585 +{
9586 +  if(_nb_of_tuples_to_be_allocated>=0)
9587 +    {
9588 +      _nb_of_tuples_to_be_allocated=newLgth;
9589 +      const DataArray *oldArr(getUndergroundDataArray());
9590 +      if(oldArr)
9591 +        {
9592 +          MCAuto<DataArray> newArr(createNewEmptyDataArrayInstance());
9593 +          newArr->setInfoAndChangeNbOfCompo(oldArr->getInfoOnComponents());
9594 +          setArray(newArr);
9595 +          _nb_of_tuples_to_be_allocated=newLgth;//force the _nb_of_tuples_to_be_allocated because setArray has been used specialy
9596 +        }
9597 +      return ;
9598 +    }
9599 +  if(_nb_of_tuples_to_be_allocated==-1)
9600 +    return ;
9601 +  if(_nb_of_tuples_to_be_allocated==-2 || _nb_of_tuples_to_be_allocated==-3)
9602 +    {
9603 +      const DataArray *oldArr(getUndergroundDataArray());
9604 +      if(!oldArr || !oldArr->isAllocated())
9605 +        throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::updateData : internal error 1 !");
9606 +      MCAuto<DataArray> newArr(createNewEmptyDataArrayInstance());
9607 +      newArr->alloc(newLgth,getNumberOfComponents());
9608 +      if(oldArr)
9609 +        newArr->copyStringInfoFrom(*oldArr);
9610 +      int pos=0;
9611 +      for(std::vector< std::pair<int,int> >::const_iterator it=oldStartStops.begin();it!=oldStartStops.end();it++)
9612 +        {
9613 +          if((*it).second<(*it).first)
9614 +            throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::updateData : the range in the leaves was invalid !");
9615 +          newArr->setContigPartOfSelectedValuesSlice(pos,oldArr,(*it).first,(*it).second,1);
9616 +          pos+=(*it).second-(*it).first;
9617 +        }
9618 +      setArray(newArr);
9619 +      return ;
9620 +    }
9621 +  throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::updateData : internal error 2 !");
9622 +}
9623 +
9624 +void MEDFileAnyTypeField1TSWithoutSDA::writeLL(med_idt fid, const MEDFileWritable& opts, const MEDFileFieldNameScope& nasc) const
9625 +{
9626 +  if(_field_per_mesh.empty())
9627 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::writeLL : empty field !");
9628 +  if(_field_per_mesh.size()>1)
9629 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::writeLL : In MED3.0 mode in writing mode only ONE underlying mesh supported !");
9630 +  _field_per_mesh[0]->copyOptionsFrom(opts);
9631 +  _field_per_mesh[0]->writeLL(fid,nasc);
9632 +}
9633 +
9634 +/*!
9635 + * MED file does not support ' ' at the end of the field name. This method corrects the possibly invalid input \a nonCorrectFieldName to a correct one by right stripping input.
9636 + */
9637 +std::string MEDFileAnyTypeField1TSWithoutSDA::FieldNameToMEDFileConvention(const std::string& nonCorrectFieldName)
9638 +{
9639 +  std::string::size_type pos0(nonCorrectFieldName.find_last_not_of(' '));
9640 +  if(pos0==std::string::npos)
9641 +    return nonCorrectFieldName;
9642 +  if(pos0+1==nonCorrectFieldName.length())
9643 +    return nonCorrectFieldName;
9644 +  return nonCorrectFieldName.substr(0,pos0+1);
9645 +}
9646 +
9647 +/*!
9648 + * This methods returns true is the allocation has been needed leading to a modification of state in \a this->_nb_of_tuples_to_be_allocated.
9649 + * If false is returned the memory allocation is not required.
9650 + */
9651 +bool MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile()
9652 +{
9653 +  if(_nb_of_tuples_to_be_allocated>=0)
9654 +    {
9655 +      getOrCreateAndGetArray()->alloc(_nb_of_tuples_to_be_allocated,getNumberOfComponents());
9656 +      _nb_of_tuples_to_be_allocated=-2;
9657 +      return true;
9658 +    }
9659 +  if(_nb_of_tuples_to_be_allocated==-2 || _nb_of_tuples_to_be_allocated==-3)
9660 +    return false;
9661 +  if(_nb_of_tuples_to_be_allocated==-1)
9662 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile : trying to read from a file an empty instance ! Need to prepare the structure before !");
9663 +  if(_nb_of_tuples_to_be_allocated<-3)
9664 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile : internal error !");
9665 +  throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile : internal error !");
9666 +}
9667 +
9668 +void MEDFileAnyTypeField1TSWithoutSDA::loadOnlyStructureOfDataRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities)
9669 +{
9670 +  med_int numdt,numit;
9671 +  med_float dt;
9672 +  med_int meshnumdt,meshnumit;
9673 +  MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,nasc.getName().c_str(),_csit,&numdt,&numit,&_dt));
9674 +  {
9675 +    med_bool localMesh;
9676 +    med_int nmesh;
9677 +    INTERP_KERNEL::AutoPtr<char> meshName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
9678 +    MEDFILESAFECALLERRD0(MEDfield23ComputingStepMeshInfo,(fid,nasc.getName().c_str(),_csit,&numdt,&numit,&dt,&nmesh,meshName,&localMesh,&meshnumdt,&meshnumit)); // to check with Adrien for legacy MED files
9679 +  }
9680 +  //MEDFILESAFECALLERRD0(MEDfieldComputingStepMeshInfo,(fid,nasc.getName().c_str(),_csit,&numdt,&numit,&_dt,&meshnumdt,&meshnumit));
9681 +  if(_iteration!=numdt || _order!=numit)
9682 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::loadBigArraysRecursively : unexpected exception internal error !");
9683 +  _field_per_mesh.resize(1);
9684 +  //
9685 +  MEDFileMesh *mm(0);
9686 +  if(ms)
9687 +    {
9688 +      mm=ms->getMeshWithName(getMeshName());
9689 +    }
9690 +  //
9691 +  _field_per_mesh[0]=MEDFileFieldPerMesh::NewOnRead(fid,this,0,meshnumdt,meshnumit,nasc,mm,entities);
9692 +  _nb_of_tuples_to_be_allocated=0;
9693 +  _field_per_mesh[0]->loadOnlyStructureOfDataRecursively(fid,_nb_of_tuples_to_be_allocated,nasc);
9694 +}
9695 +
9696 +void MEDFileAnyTypeField1TSWithoutSDA::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
9697 +{
9698 +  allocIfNecessaryTheArrayToReceiveDataFromFile();
9699 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9700 +    (*it)->loadBigArraysRecursively(fid,nasc);
9701 +}
9702 +
9703 +void MEDFileAnyTypeField1TSWithoutSDA::loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc)
9704 +{
9705 +  if(allocIfNecessaryTheArrayToReceiveDataFromFile())
9706 +    for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9707 +      (*it)->loadBigArraysRecursively(fid,nasc);
9708 +}
9709 +
9710 +void MEDFileAnyTypeField1TSWithoutSDA::loadStructureAndBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities)
9711 +{
9712 +  loadOnlyStructureOfDataRecursively(fid,nasc,ms,entities);
9713 +  loadBigArraysRecursively(fid,nasc);
9714 +}
9715 +
9716 +void MEDFileAnyTypeField1TSWithoutSDA::unloadArrays()
9717 +{
9718 +  DataArray *thisArr(getUndergroundDataArray());
9719 +  if(thisArr && thisArr->isAllocated())
9720 +    {
9721 +      _nb_of_tuples_to_be_allocated=thisArr->getNumberOfTuples();
9722 +      thisArr->desallocate();
9723 +    }
9724 +}
9725 +
9726 +std::size_t MEDFileAnyTypeField1TSWithoutSDA::getHeapMemorySizeWithoutChildren() const
9727 +{
9728 +  return _mesh_name.capacity()+_dt_unit.capacity()+_field_per_mesh.capacity()*sizeof(MCAuto< MEDFileFieldPerMesh >);
9729 +}
9730 +
9731 +std::vector<const BigMemoryObject *> MEDFileAnyTypeField1TSWithoutSDA::getDirectChildrenWithNull() const
9732 +{
9733 +  std::vector<const BigMemoryObject *> ret;
9734 +  if(getUndergroundDataArray())
9735 +    ret.push_back(getUndergroundDataArray());
9736 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9737 +    ret.push_back((const MEDFileFieldPerMesh *)*it);
9738 +  return ret;
9739 +}
9740 +
9741 +/*!
9742 + * Adds a MEDCouplingFieldDouble to \a this. The underlying mesh of the given field is
9743 + * checked if its elements are sorted suitable for writing to MED file ("STB" stands for
9744 + * "Sort By Type"), if not, an exception is thrown. 
9745 + *  \param [in] field - the field to add to \a this. The array of field \a field is ignored
9746 + *  \param [in] arr - the array of values.
9747 + *  \param [in,out] glob - the global data where profiles and localization present in
9748 + *          \a field, if any, are added.
9749 + *  \throw If the name of \a field is empty.
9750 + *  \throw If the data array of \a field is not set.
9751 + *  \throw If \a this->_arr is already allocated but has different number of components
9752 + *         than \a field.
9753 + *  \throw If the underlying mesh of \a field has no name.
9754 + *  \throw If elements in the mesh are not in the order suitable for writing to the MED file.
9755 + */
9756 +void MEDFileAnyTypeField1TSWithoutSDA::setFieldNoProfileSBT(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
9757 +{
9758 +  const MEDCouplingMesh *mesh(field->getMesh());
9759 +  //
9760 +  TypeOfField type(field->getTypeOfField());
9761 +  std::vector<DataArrayInt *> dummy;
9762 +  if(mesh)
9763 +    setMeshName(mesh->getName());
9764 +  int start(copyTinyInfoFrom(th,field,arr));
9765 +  int pos(addNewEntryIfNecessary(mesh));
9766 +  if(type!=ON_NODES)
9767 +    {
9768 +      std::vector<int> code=MEDFileField1TSWithoutSDA::CheckSBTMesh(mesh);
9769 +      _field_per_mesh[pos]->assignFieldNoProfileNoRenum(start,code,field,arr,glob,nasc);
9770 +    }
9771 +  else
9772 +    _field_per_mesh[pos]->assignNodeFieldNoProfile(start,field,arr,glob);
9773 +}
9774 +
9775 +/*!
9776 + * Adds a MEDCouplingFieldDouble to \a this. Specified entities of a given dimension
9777 + * of a given mesh are used as the support of the given field (a real support is not used). 
9778 + * Elements of the given mesh must be sorted suitable for writing to MED file. 
9779 + * Order of underlying mesh entities of the given field specified by \a profile parameter
9780 + * is not prescribed; this method permutes field values to have them sorted by element
9781 + * type as required for writing to MED file. A new profile is added only if no equal
9782 + * profile is missing. 
9783 + *  \param [in] field - the field to add to \a this. The field double values are ignored.
9784 + *  \param [in] arrOfVals - the values of the field \a field used.
9785 + *  \param [in] mesh - the supporting mesh of \a field.
9786 + *  \param [in] meshDimRelToMax - a relative dimension of mesh entities \a field lies on.
9787 + *  \param [in] profile - ids of mesh entities on which corresponding field values lie.
9788 + *  \param [in,out] glob - the global data where profiles and localization present in
9789 + *          \a field, if any, are added.
9790 + *  \param [in] nasc - the name scope used to assign names. Depends on the caller on the top call stack
9791 + *  \param [in] smartPflKiller - specifies if this method tries at most to avoid profiles
9792 + *  \throw If either \a field or \a mesh or \a profile has an empty name.
9793 + *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in \a mesh.
9794 + *  \throw If the data array of \a field is not set.
9795 + *  \throw If \a this->_arr is already allocated but has different number of components
9796 + *         than \a field.
9797 + *  \throw If elements in \a mesh are not in the order suitable for writing to the MED file.
9798 + *  \sa setFieldNoProfileSBT()
9799 + */
9800 +void MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arrOfVals, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc, bool smartPflKiller)
9801 +{
9802 +  if(!field)
9803 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : input field is null !");
9804 +  if(!arrOfVals || !arrOfVals->isAllocated())
9805 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : input array is null or not allocated !");
9806 +  TypeOfField type=field->getTypeOfField();
9807 +  std::vector<DataArrayInt *> idsInPflPerType;
9808 +  std::vector<DataArrayInt *> idsPerType;
9809 +  std::vector<int> code,code2;
9810 +  MCAuto<MEDCouplingMesh> m(mesh->getMeshAtLevel(meshDimRelToMax));
9811 +  if(type!=ON_NODES)
9812 +    {
9813 +      m->splitProfilePerType(profile,code,idsInPflPerType,idsPerType,smartPflKiller);
9814 +      std::vector< MCAuto<DataArrayInt> > idsInPflPerType2(idsInPflPerType.size()); std::copy(idsInPflPerType.begin(),idsInPflPerType.end(),idsInPflPerType2.begin());
9815 +      std::vector< MCAuto<DataArrayInt> > idsPerType2(idsPerType.size()); std::copy(idsPerType.begin(),idsPerType.end(),idsPerType2.begin()); 
9816 +      std::vector<const DataArrayInt *> idsPerType3(idsPerType.size()); std::copy(idsPerType.begin(),idsPerType.end(),idsPerType3.begin());
9817 +      // start of check
9818 +      MCAuto<MEDCouplingFieldTemplate> field2=field->clone(false);
9819 +      int nbOfTuplesExp=field2->getNumberOfTuplesExpectedRegardingCode(code,idsPerType3);
9820 +      if(nbOfTuplesExp!=arrOfVals->getNumberOfTuples())
9821 +        {
9822 +          std::ostringstream oss; oss << "MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : The array is expected to have " << nbOfTuplesExp << " tuples ! It has " << arrOfVals->getNumberOfTuples() << " !";
9823 +          throw INTERP_KERNEL::Exception(oss.str());
9824 +        }
9825 +      // end of check
9826 +      int start(copyTinyInfoFrom(th,field,arrOfVals));
9827 +      code2=m->getDistributionOfTypes();
9828 +      //
9829 +      int pos=addNewEntryIfNecessary(m);
9830 +      _field_per_mesh[pos]->assignFieldProfile(start,profile,code,code2,idsInPflPerType,idsPerType,field,arrOfVals,m,glob,nasc);
9831 +    }
9832 +  else
9833 +    {
9834 +      if(!profile || !profile->isAllocated() || profile->getNumberOfComponents()!=1)
9835 +        throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : input profile is null, not allocated or with number of components != 1 !");
9836 +      std::vector<int> v(3); v[0]=-1; v[1]=profile->getNumberOfTuples(); v[2]=0;
9837 +      std::vector<const DataArrayInt *> idsPerType3(1); idsPerType3[0]=profile;
9838 +      int nbOfTuplesExp=field->getNumberOfTuplesExpectedRegardingCode(v,idsPerType3);
9839 +      if(nbOfTuplesExp!=arrOfVals->getNumberOfTuples())
9840 +        {
9841 +          std::ostringstream oss; oss << "MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : For node field, the array is expected to have " << nbOfTuplesExp << " tuples ! It has " << arrOfVals->getNumberOfTuples() << " !";
9842 +          throw INTERP_KERNEL::Exception(oss.str());
9843 +        }
9844 +      int start(copyTinyInfoFrom(th,field,arrOfVals));
9845 +      int pos(addNewEntryIfNecessary(m));
9846 +      _field_per_mesh[pos]->assignNodeFieldProfile(start,profile,field,arrOfVals,glob,nasc);
9847 +    }
9848 +}
9849 +
9850 +/*!
9851 + * \param [in] newNbOfTuples - The new nb of tuples to be allocated.
9852 + */
9853 +void MEDFileAnyTypeField1TSWithoutSDA::allocNotFromFile(int newNbOfTuples)
9854 +{
9855 +  if(_nb_of_tuples_to_be_allocated>=0)
9856 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocNotFromFile : the object is expected to be appended to a data coming from a file but not loaded ! Load before appending data !");
9857 +  DataArray *arr(getOrCreateAndGetArray());
9858 +  arr->alloc(newNbOfTuples,arr->getNumberOfComponents());
9859 +  _nb_of_tuples_to_be_allocated=-3;
9860 +}
9861 +
9862 +/*!
9863 + * Copies tiny info and allocates \a this->_arr instance of DataArrayDouble to
9864 + * append data of a given MEDCouplingFieldDouble. So that the size of \a this->_arr becomes
9865 + * larger by the size of \a field. Returns an id of the first not filled
9866 + * tuple of \a this->_arr.
9867 + *  \param [in] field - the field to copy the info on components and the name from.
9868 + *  \return int - the id of first not initialized tuple of \a this->_arr.
9869 + *  \throw If the name of \a field is empty.
9870 + *  \throw If the data array of \a field is not set.
9871 + *  \throw If \a this->_arr is already allocated but has different number of components
9872 + *         than \a field.
9873 + */
9874 +int MEDFileAnyTypeField1TSWithoutSDA::copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr)
9875 +{
9876 +  if(!field)
9877 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::copyTinyInfoFrom : input field is NULL !");
9878 +  std::string name(field->getName());
9879 +  setName(name.c_str());
9880 +  if(field->getMesh())
9881 +    setMeshName(field->getMesh()->getName());
9882 +  setDtUnit(th->getTimeUnit());
9883 +  if(name.empty())
9884 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::copyTinyInfoFrom : unsupported fields with no name in MED file !");
9885 +  if(!arr)
9886 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::copyTinyInfoFrom : no array set !");
9887 +  if(!arr->isAllocated())
9888 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::copyTinyInfoFrom : array is not allocated !");
9889 +  _dt=th->getTime(_iteration,_order);
9890 +  getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(arr->getInfoOnComponents());
9891 +  if(!getOrCreateAndGetArray()->isAllocated())
9892 +    {
9893 +      allocNotFromFile(arr->getNumberOfTuples());
9894 +      return 0;
9895 +    }
9896 +  else
9897 +    {
9898 +      int oldNbOfTuples=getOrCreateAndGetArray()->getNumberOfTuples();
9899 +      int newNbOfTuples=oldNbOfTuples+arr->getNumberOfTuples();
9900 +      getOrCreateAndGetArray()->reAlloc(newNbOfTuples);
9901 +      _nb_of_tuples_to_be_allocated=-3;
9902 +      return oldNbOfTuples;
9903 +    }
9904 +}
9905 +
9906 +/*!
9907 + * Returns number of components in \a this field
9908 + *  \return int - the number of components.
9909 + */
9910 +int MEDFileAnyTypeField1TSWithoutSDA::getNumberOfComponents() const
9911 +{
9912 +  return getOrCreateAndGetArray()->getNumberOfComponents();
9913 +}
9914 +
9915 +/*!
9916 + * Change info on components in \a this.
9917 + * \throw If size of \a infos is not equal to the number of components already in \a this.
9918 + */
9919 +void MEDFileAnyTypeField1TSWithoutSDA::setInfo(const std::vector<std::string>& infos)
9920 +{
9921 +  DataArray *arr=getOrCreateAndGetArray();
9922 +  arr->setInfoOnComponents(infos);//will throw an exception if number of components mismatches
9923 +}
9924 +
9925 +/*!
9926 + * Returns info on components of \a this field.
9927 + *  \return const std::vector<std::string>& - a sequence of strings each being an
9928 + *          information on _i_-th component.
9929 + */
9930 +const std::vector<std::string>& MEDFileAnyTypeField1TSWithoutSDA::getInfo() const
9931 +{
9932 +  const DataArray *arr=getOrCreateAndGetArray();
9933 +  return arr->getInfoOnComponents();
9934 +}
9935 +
9936 +/*!
9937 + * Returns a mutable info on components of \a this field.
9938 + *  \return std::vector<std::string>& - a sequence of strings each being an
9939 + *          information on _i_-th component.
9940 + */
9941 +std::vector<std::string>& MEDFileAnyTypeField1TSWithoutSDA::getInfo()
9942 +{
9943 +  DataArray *arr=getOrCreateAndGetArray();
9944 +  return arr->getInfoOnComponents();
9945 +}
9946 +
9947 +bool MEDFileAnyTypeField1TSWithoutSDA::presenceOfMultiDiscPerGeoType() const
9948 +{
9949 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9950 +    {
9951 +      const MEDFileFieldPerMesh *fpm(*it);
9952 +      if(!fpm)
9953 +        continue;
9954 +      if(fpm->presenceOfMultiDiscPerGeoType())
9955 +        return true;
9956 +    }
9957 +  return false;
9958 +}
9959 +
9960 +bool MEDFileAnyTypeField1TSWithoutSDA::presenceOfStructureElements() const
9961 +{
9962 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9963 +    if((*it).isNotNull())
9964 +      if((*it)->presenceOfStructureElements())
9965 +        return true;
9966 +  return false;
9967 +}
9968 +
9969 +bool MEDFileAnyTypeField1TSWithoutSDA::onlyStructureElements() const
9970 +{
9971 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9972 +    if((*it).isNotNull())
9973 +      if(!(*it)->onlyStructureElements())
9974 +        return false;
9975 +  return true;
9976 +}
9977 +
9978 +void MEDFileAnyTypeField1TSWithoutSDA::killStructureElements()
9979 +{
9980 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9981 +    if((*it).isNotNull())
9982 +      (*it)->killStructureElements();
9983 +}
9984 +
9985 +void MEDFileAnyTypeField1TSWithoutSDA::keepOnlyStructureElements()
9986 +{
9987 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9988 +    if((*it).isNotNull())
9989 +      (*it)->keepOnlyStructureElements();
9990 +}
9991 +
9992 +void MEDFileAnyTypeField1TSWithoutSDA::keepOnlyOnSE(const std::string& seName)
9993 +{
9994 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
9995 +    if((*it).isNotNull())
9996 +      (*it)->keepOnlyOnSE(seName);
9997 +}
9998 +
9999 +void MEDFileAnyTypeField1TSWithoutSDA::getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const
10000 +{
10001 +  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
10002 +    if((*it).isNotNull())
10003 +      (*it)->getMeshSENames(ps);
10004 +}
10005 +
10006 +MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh(const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
10007 +{
10008 +  static const char MSG0[]="MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the field is too complex to be able to be extracted with  \"field\" method ! Call getFieldOnMeshAtLevel method instead to deal with complexity !";
10009 +  if(_field_per_mesh.empty())
10010 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the field is empty ! Nothing to extract !");
10011 +  if(_field_per_mesh.size()>1)
10012 +    throw INTERP_KERNEL::Exception(MSG0);
10013 +  if(_field_per_mesh[0].isNull())
10014 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the field is inconsistent !");
10015 +  const MEDFileFieldPerMesh *pm(_field_per_mesh[0]);
10016 +  std::set<TypeOfField> types;
10017 +  pm->fillTypesOfFieldAvailable(types);
10018 +  if(types.size()!=1)
10019 +    throw INTERP_KERNEL::Exception(MSG0);
10020 +  TypeOfField type(*types.begin());
10021 +  int meshDimRelToMax(0);
10022 +  if(type==ON_NODES)
10023 +    meshDimRelToMax=0;
10024 +  else
10025 +    {
10026 +      int myDim(std::numeric_limits<int>::max());
10027 +      bool isUnique(pm->isUniqueLevel(myDim));
10028 +      if(!isUnique)
10029 +        throw INTERP_KERNEL::Exception(MSG0);
10030 +      meshDimRelToMax=myDim-mesh->getMeshDimension();
10031 +      if(meshDimRelToMax>0)
10032 +        throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the mesh attached to field is not compatible with the field !");
10033 +    }
10034 +  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,meshDimRelToMax,0/*renumPol*/,glob,mesh,arrOut,nasc);
10035 +}
10036 +
10037 +/*!
10038 + * Returns a new MEDCouplingFieldDouble of given type lying on a given support.
10039 + *  \param [in] type - a spatial discretization of the new field.
10040 + *  \param [in] meshDimRelToMax - a relative dimension of the supporting mesh entities.
10041 + *  \param [in] mName - a name of the supporting mesh.
10042 + *  \param [in] renumPol - specifies how to permute values of the result field according to
10043 + *          the optional numbers of cells and nodes, if any. The valid values are
10044 + *          - 0 - do not permute.
10045 + *          - 1 - permute cells.
10046 + *          - 2 - permute nodes.
10047 + *          - 3 - permute cells and nodes.
10048 + *
10049 + *  \param [in] glob - the global data storing profiles and localization.
10050 + *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
10051 + *          caller is to delete this field using decrRef() as it is no more needed. 
10052 + *  \throw If the MED file is not readable.
10053 + *  \throw If there is no mesh named \a mName in the MED file.
10054 + *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in the mesh.
10055 + *  \throw If no field of \a this is lying on the mesh \a mName.
10056 + *  \throw If no field values of the given \a type or given \a meshDimRelToMax are available.
10057 + */
10058 +MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldAtLevel(TypeOfField type, int meshDimRelToMax, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
10059 +{
10060 +  MCAuto<MEDFileMesh> mm;
10061 +  if(mName.empty())
10062 +    mm=MEDFileMesh::New(glob->getFileName(),getMeshName().c_str(),getMeshIteration(),getMeshOrder());
10063 +  else
10064 +    mm=MEDFileMesh::New(glob->getFileName(),mName,getMeshIteration(),getMeshOrder());
10065 +  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,meshDimRelToMax,renumPol,glob,mm,arrOut,nasc);
10066 +}
10067 +
10068 +/*!
10069 + * Returns a new MEDCouplingFieldDouble of given type lying on a given support.
10070 + *  \param [in] type - a spatial discretization of the new field.
10071 + *  \param [in] meshDimRelToMax - a relative dimension of the supporting mesh entities.
10072 + *  \param [in] renumPol - specifies how to permute values of the result field according to
10073 + *          the optional numbers of cells and nodes, if any. The valid values are
10074 + *          - 0 - do not permute.
10075 + *          - 1 - permute cells.
10076 + *          - 2 - permute nodes.
10077 + *          - 3 - permute cells and nodes.
10078 + *
10079 + *  \param [in] glob - the global data storing profiles and localization.
10080 + *  \param [in] mesh - the supporting mesh.
10081 + *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
10082 + *          caller is to delete this field using decrRef() as it is no more needed. 
10083 + *  \throw If the MED file is not readable.
10084 + *  \throw If no field of \a this is lying on \a mesh.
10085 + *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in the mesh.
10086 + *  \throw If no field values of the given \a type or given \a meshDimRelToMax are available.
10087 + */
10088 +MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
10089 +{
10090 +  MCAuto<MEDCouplingMesh> m(mesh->getMeshAtLevel(meshDimRelToMax,false));
10091 +  const DataArrayInt *d(mesh->getNumberFieldAtLevel(meshDimRelToMax)),*e(mesh->getNumberFieldAtLevel(1));
10092 +  if(meshDimRelToMax==1)
10093 +    (static_cast<MEDCouplingUMesh *>((MEDCouplingMesh *)m))->setMeshDimension(0);
10094 +  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,renumPol,glob,m,d,e,arrOut,nasc);
10095 +}
10096 +
10097 +/*!
10098 + * Returns a new MEDCouplingFieldDouble of a given type lying on the top level cells of a
10099 + * given mesh. 
10100 + *  \param [in] type - a spatial discretization of the new field.
10101 + *  \param [in] mName - a name of the supporting mesh.
10102 + *  \param [in] renumPol - specifies how to permute values of the result field according to
10103 + *          the optional numbers of cells and nodes, if any. The valid values are
10104 + *          - 0 - do not permute.
10105 + *          - 1 - permute cells.
10106 + *          - 2 - permute nodes.
10107 + *          - 3 - permute cells and nodes.
10108 + *
10109 + *  \param [in] glob - the global data storing profiles and localization.
10110 + *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
10111 + *          caller is to delete this field using decrRef() as it is no more needed. 
10112 + *  \throw If the MED file is not readable.
10113 + *  \throw If there is no mesh named \a mName in the MED file.
10114 + *  \throw If there are no mesh entities in the mesh.
10115 + *  \throw If no field values of the given \a type are available.
10116 + */
10117 +MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldAtTopLevel(TypeOfField type, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
10118 +{
10119 +  MCAuto<MEDFileMesh> mm;
10120 +  if(mName.empty())
10121 +    mm=MEDFileMesh::New(glob->getFileName(),getMeshName().c_str(),getMeshIteration(),getMeshOrder());
10122 +  else
10123 +    mm=MEDFileMesh::New(glob->getFileName(),mName,getMeshIteration(),getMeshOrder());
10124 +  int absDim=getDimension();
10125 +  int meshDimRelToMax=absDim-mm->getMeshDimension();
10126 +  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,meshDimRelToMax,renumPol,glob,mm,arrOut,nasc);
10127 +}
10128 +
10129 +/*!
10130 + * Returns a new MEDCouplingFieldDouble of given type lying on a given support.
10131 + *  \param [in] type - a spatial discretization of the new field.
10132 + *  \param [in] renumPol - specifies how to permute values of the result field according to
10133 + *          the optional numbers of cells and nodes, if any. The valid values are
10134 + *          - 0 - do not permute.
10135 + *          - 1 - permute cells.
10136 + *          - 2 - permute nodes.
10137 + *          - 3 - permute cells and nodes.
10138 + *
10139 + *  \param [in] glob - the global data storing profiles and localization.
10140 + *  \param [in] mesh - the supporting mesh.
10141 + *  \param [in] cellRenum - the cell numbers array used for permutation of the result
10142 + *         field according to \a renumPol.
10143 + *  \param [in] nodeRenum - the node numbers array used for permutation of the result
10144 + *         field according to \a renumPol.
10145 + *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
10146 + *          caller is to delete this field using decrRef() as it is no more needed. 
10147 + *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in the mesh.
10148 + *  \throw If no field of \a this is lying on \a mesh.
10149 + *  \throw If no field values of the given \a type or given \a meshDimRelToMax are available.
10150 + */
10151 +MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(TypeOfField type, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, const DataArrayInt *cellRenum, const DataArrayInt *nodeRenum, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
10152 +{
10153 +  static const char msg1[]="MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : request for a renumbered field following mesh numbering whereas it is a profile field !";
10154 +  bool isPfl=false;
10155 +  MCAuto<MEDCouplingFieldDouble> ret=_field_per_mesh[0]->getFieldOnMeshAtLevel(type,glob,mesh,isPfl,arrOut,nasc);
10156 +  switch(renumPol)
10157 +  {
10158 +    case 0:
10159 +      {
10160 +        //no need to test _field_per_mesh.empty() because geMeshName has already done it
10161 +        return ret.retn();
10162 +      }
10163 +    case 3:
10164 +    case 1:
10165 +      {
10166 +        if(isPfl)
10167 +          throw INTERP_KERNEL::Exception(msg1);
10168 +        //no need to test _field_per_mesh.empty() because geMeshName has already done it
10169 +        if(cellRenum)
10170 +          {
10171 +            if((int)cellRenum->getNbOfElems()!=mesh->getNumberOfCells())
10172 +              {
10173 +                std::ostringstream oss; oss << "MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : Request of simple renumbering but it seems that underlying mesh \"" << mesh->getName() << "\" of requested field ";
10174 +                oss << "\"" << getName() << "\" has partial renumbering (some geotype has no renumber) !";
10175 +                throw INTERP_KERNEL::Exception(oss.str());
10176 +              }
10177 +            MEDCouplingFieldDiscretization *disc=ret->getDiscretization();
10178 +            if(!disc) throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel : internal error, no discretization on field !");
10179 +            std::vector<DataArray *> arrOut2(1,arrOut);
10180 +            // 2 following lines replace ret->renumberCells(cellRenum->getConstPointer()) if not DataArrayDouble
10181 +            disc->renumberArraysForCell(ret->getMesh(),arrOut2,cellRenum->getConstPointer(),true);
10182 +            (const_cast<MEDCouplingMesh*>(ret->getMesh()))->renumberCells(cellRenum->getConstPointer(),true);
10183 +          }
10184 +        if(renumPol==1)
10185 +          return ret.retn();
10186 +      }
10187 +    case 2:
10188 +      {
10189 +        //no need to test _field_per_mesh.empty() because geMeshName has already done it
10190 +        if(isPfl)
10191 +          throw INTERP_KERNEL::Exception(msg1);
10192 +        if(nodeRenum)
10193 +          {
10194 +            if((int)nodeRenum->getNbOfElems()!=mesh->getNumberOfNodes())
10195 +              {
10196 +                std::ostringstream oss; oss << "MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : Request of simple renumbering but it seems that underlying mesh \"" << mesh->getName() << "\" of requested field ";
10197 +                oss << "\"" << nasc.getName() << "\" not defined on all nodes !";
10198 +                throw INTERP_KERNEL::Exception(oss.str());
10199 +              }
10200 +            MCAuto<DataArrayInt> nodeRenumSafe=nodeRenum->checkAndPreparePermutation();
10201 +            if(!dynamic_cast<DataArrayDouble *>((DataArray *)arrOut))
10202 +              throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : node renumbering not implemented for not double DataArrays !");
10203 +            ret->renumberNodes(nodeRenumSafe->getConstPointer());
10204 +          }
10205 +        return ret.retn();
10206 +      }
10207 +    default:
10208 +      throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : unsupported renum policy ! Dealing with policy 0 1 2 and 3 !");
10209 +  }
10210 +}
10211 +
10212 +/*!
10213 + * Returns values and a profile of the field of a given type lying on a given support.
10214 + *  \param [in] type - a spatial discretization of the field.
10215 + *  \param [in] meshDimRelToMax - a relative dimension of the supporting mesh entities.
10216 + *  \param [in] mesh - the supporting mesh.
10217 + *  \param [out] pfl - a new instance of DataArrayInt holding ids of mesh entities the
10218 + *          field of interest lies on. If the field lies on all entities of the given
10219 + *          dimension, all ids in \a pfl are zero. The caller is to delete this array
10220 + *          using decrRef() as it is no more needed.  
10221 + *  \param [in] glob - the global data storing profiles and localization.
10222 + *  \return DataArrayDouble * - a new instance of DataArrayDouble holding values of the
10223 + *          field. The caller is to delete this array using decrRef() as it is no more needed.
10224 + *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in \a mesh.
10225 + *  \throw If no field of \a this is lying on \a mesh.
10226 + *  \throw If no field values of the given \a type are available.
10227 + */
10228 +DataArray *MEDFileAnyTypeField1TSWithoutSDA::getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const
10229 +{
10230 +  MCAuto<MEDCouplingMesh> m(mesh->getMeshAtLevel(meshDimRelToMax));
10231 +  MCAuto<DataArray> ret=_field_per_mesh[0]->getFieldOnMeshAtLevelWithPfl(type,m,pfl,glob,nasc);
10232 +  ret->setName(nasc.getName().c_str());
10233 +  return ret.retn();
10234 +}
10235 +
10236 +//= MEDFileField1TSWithoutSDA
10237 +
10238 +/*!
10239 + * Throws if a given value is not a valid (non-extended) relative dimension.
10240 + *  \param [in] meshDimRelToMax - the relative dimension value.
10241 + *  \throw If \a meshDimRelToMax > 0.
10242 + */
10243 +void MEDFileField1TSWithoutSDA::CheckMeshDimRel(int meshDimRelToMax)
10244 +{
10245 +  if(meshDimRelToMax>0)
10246 +    throw INTERP_KERNEL::Exception("CheckMeshDimRel : This is a meshDimRel not a meshDimRelExt ! So value should be <=0 !");
10247 +}
10248 +
10249 +/*!
10250 + * Checks if elements of a given mesh are in the order suitable for writing 
10251 + * to the MED file. If this is not so, an exception is thrown. In a case of success, returns a
10252 + * vector describing types of elements and their number.
10253 + *  \param [in] mesh - the mesh to check.
10254 + *  \return std::vector<int> - a vector holding for each element type (1) item of
10255 + *          INTERP_KERNEL::NormalizedCellType, (2) number of elements, (3) -1. 
10256 + *          These values are in full-interlace mode.
10257 + *  \throw If elements in \a mesh are not in the order suitable for writing to the MED file.
10258 + */
10259 +std::vector<int> MEDFileField1TSWithoutSDA::CheckSBTMesh(const MEDCouplingMesh *mesh)
10260 +{
10261 +  if(!mesh)
10262 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::CheckSBTMesh : input mesh is NULL !");
10263 +  std::set<INTERP_KERNEL::NormalizedCellType> geoTypes=mesh->getAllGeoTypes();
10264 +  int nbOfTypes=geoTypes.size();
10265 +  std::vector<int> code(3*nbOfTypes);
10266 +  MCAuto<DataArrayInt> arr1=DataArrayInt::New();
10267 +  arr1->alloc(nbOfTypes,1);
10268 +  int *arrPtr=arr1->getPointer();
10269 +  std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator it=geoTypes.begin();
10270 +  for(int i=0;i<nbOfTypes;i++,it++)
10271 +    arrPtr[i]=std::distance(typmai2,std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,*it));
10272 +  MCAuto<DataArrayInt> arr2=arr1->checkAndPreparePermutation();
10273 +  const int *arrPtr2=arr2->getConstPointer();
10274 +  int i=0;
10275 +  for(it=geoTypes.begin();it!=geoTypes.end();it++,i++)
10276 +    {
10277 +      int pos=arrPtr2[i];
10278 +      int nbCells=mesh->getNumberOfCellsWithType(*it);
10279 +      code[3*pos]=(int)(*it);
10280 +      code[3*pos+1]=nbCells;
10281 +      code[3*pos+2]=-1;//no profiles
10282 +    }
10283 +  std::vector<const DataArrayInt *> idsPerType;//no profiles
10284 +  DataArrayInt *da=mesh->checkTypeConsistencyAndContig(code,idsPerType);
10285 +  if(da)
10286 +    {
10287 +      da->decrRef();
10288 +      throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::CheckSBTMesh : underlying mesh is not sorted by type as MED file expects !");
10289 +    }
10290 +  return code;
10291 +}
10292 +
10293 +MEDFileField1TSWithoutSDA *MEDFileField1TSWithoutSDA::New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos)
10294 +{
10295 +  return new MEDFileField1TSWithoutSDA(fieldName,meshName,csit,iteration,order,infos);
10296 +}
10297 +
10298 +/*!
10299 + * Returns all attributes and values of parts of \a this field lying on a given mesh.
10300 + * Each part differs from other ones by a type of supporting mesh entity. The _i_-th
10301 + * item of every of returned sequences refers to the _i_-th part of \a this field.
10302 + * Thus all sequences returned by this method are of the same length equal to number
10303 + * of different types of supporting entities.<br>
10304 + * A field part can include sub-parts with several different spatial discretizations,
10305 + * \ref MEDCoupling::ON_CELLS "ON_CELLS" and \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT"
10306 + * for example. Hence, some of the returned sequences contains nested sequences, and an item
10307 + * of a nested sequence corresponds to a type of spatial discretization.<br>
10308 + * This method allows for iteration over MEDFile DataStructure with a reduced overhead.
10309 + * The overhead is due to selecting values into new instances of DataArrayDouble.
10310 + *  \param [in] mname - a name of a mesh of interest. It can be \c NULL, which is valid
10311 + *          for the case with only one underlying mesh. (Actually, the number of meshes is
10312 + *          not checked if \a mname == \c NULL).
10313 + *  \param [in,out] types - a sequence of types of underlying mesh entities. A type per
10314 + *          a field part is returned. 
10315 + *  \param [in,out] typesF - a sequence of sequences of types of spatial discretizations.
10316 + *          A field part can include sub-parts with several different spatial discretizations,
10317 + *          \ref MEDCoupling::ON_CELLS "ON_CELLS" and 
10318 + *          \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT" for example.
10319 + *          This sequence is of the same length as \a types. 
10320 + *  \param [in,out] pfls - a sequence returning a profile name per each type of spatial
10321 + *          discretization. A profile name can be empty.
10322 + *          Length of this and of nested sequences is the same as that of \a typesF.
10323 + *  \param [in,out] locs - a sequence returning a localization name per each type of spatial
10324 + *          discretization. A localization name can be empty.
10325 + *          Length of this and of nested sequences is the same as that of \a typesF.
10326 + *  \return std::vector< std::vector<DataArrayDouble *> > - a sequence holding arrays of values
10327 + *          per each type of spatial discretization within one mesh entity type.
10328 + *          The caller is to delete each DataArrayDouble using decrRef() as it is no more needed.
10329 + *          Length of this and of nested sequences is the same as that of \a typesF.
10330 + *  \throw If no field is lying on \a mname.
10331 + */
10332 +std::vector< std::vector<DataArrayDouble *> > MEDFileField1TSWithoutSDA::getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
10333 +{
10334 +  if(mname.empty())
10335 +    if(_field_per_mesh.empty())
10336 +      throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldSplitedByType : This is empty !");
10337 +  std::vector< std::vector< std::pair<int,int> > > ret0=_field_per_mesh[0]->getFieldSplitedByType(types,typesF,pfls,locs);
10338 +  int nbOfRet=ret0.size();
10339 +  std::vector< std::vector<DataArrayDouble *> > ret(nbOfRet);
10340 +  for(int i=0;i<nbOfRet;i++)
10341 +    {
10342 +      const std::vector< std::pair<int,int> >& p=ret0[i];
10343 +      int nbOfRet1=p.size();
10344 +      ret[i].resize(nbOfRet1);
10345 +      for(int j=0;j<nbOfRet1;j++)
10346 +        {
10347 +          DataArrayDouble *tmp=_arr->selectByTupleIdSafeSlice(p[j].first,p[j].second,1);
10348 +          ret[i][j]=tmp;
10349 +        }
10350 +    }
10351 +  return ret;
10352 +}
10353 +
10354 +const char *MEDFileField1TSWithoutSDA::getTypeStr() const
10355 +{
10356 +  return TYPE_STR;
10357 +}
10358 +
10359 +MEDFileIntField1TSWithoutSDA *MEDFileField1TSWithoutSDA::convertToInt() const
10360 +{
10361 +  MCAuto<MEDFileIntField1TSWithoutSDA> ret(new MEDFileIntField1TSWithoutSDA);
10362 +  ret->MEDFileAnyTypeField1TSWithoutSDA::operator =(*this);
10363 +  ret->deepCpyLeavesFrom(*this);
10364 +  const DataArrayDouble *arr(_arr);
10365 +  if(arr)
10366 +    {
10367 +      MCAuto<DataArrayInt> arr2(arr->convertToIntArr());
10368 +      ret->setArray(arr2);
10369 +    }
10370 +  return ret.retn();
10371 +}
10372 +
10373 +/*!
10374 + * Returns a pointer to the underground DataArrayDouble instance and a
10375 + * sequence describing parameters of a support of each part of \a this field. The
10376 + * caller should not decrRef() the returned DataArrayDouble. This method allows for a
10377 + * direct access to the field values. This method is intended for the field lying on one
10378 + * mesh only.
10379 + *  \param [in,out] entries - the sequence describing parameters of a support of each
10380 + *         part of \a this field. Each item of this sequence consists of two parts. The
10381 + *         first part describes a type of mesh entity and an id of discretization of a
10382 + *         current field part. The second part describes a range of values [begin,end)
10383 + *         within the returned array relating to the current field part.
10384 + *  \return DataArrayDouble * - the pointer to the field values array.
10385 + *  \throw If the number of underlying meshes is not equal to 1.
10386 + *  \throw If no field values are available.
10387 + *  \sa getUndergroundDataArray()
10388 + */
10389 +DataArray *MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
10390 +{
10391 +  return getUndergroundDataArrayTemplateExt(entries);
10392 +}
10393 +
10394 +MEDFileField1TSWithoutSDA::MEDFileField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos):MEDFileField1TSTemplateWithoutSDA<double>(fieldName,meshName,csit,iteration,order)
10395 +{
10396 +  DataArrayDouble *arr(getOrCreateAndGetArrayTemplate());
10397 +  arr->setInfoAndChangeNbOfCompo(infos);
10398 +}
10399 +
10400 +MEDFileField1TSWithoutSDA::MEDFileField1TSWithoutSDA():MEDFileField1TSTemplateWithoutSDA<double>()
10401 +{
10402 +}
10403 +
10404 +MEDFileField1TSWithoutSDA *MEDFileField1TSWithoutSDA::shallowCpy() const
10405 +{
10406 +  MCAuto<MEDFileField1TSWithoutSDA> ret(new MEDFileField1TSWithoutSDA(*this));
10407 +  ret->deepCpyLeavesFrom(*this);
10408 +  return ret.retn();
10409 +}
10410 +
10411 +MEDFileField1TSWithoutSDA *MEDFileField1TSWithoutSDA::deepCopy() const
10412 +{
10413 +  MCAuto<MEDFileField1TSWithoutSDA> ret(shallowCpy());
10414 +  if(_arr.isNotNull())
10415 +    ret->_arr=_arr->deepCopy();
10416 +  return ret.retn();
10417 +}
10418 +
10419 +//= MEDFileIntField1TSWithoutSDA
10420 +
10421 +MEDFileIntField1TSWithoutSDA *MEDFileIntField1TSWithoutSDA::New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos)
10422 +{
10423 +  return new MEDFileIntField1TSWithoutSDA(fieldName,meshName,csit,iteration,order,infos);
10424 +}
10425 +
10426 +MEDFileIntField1TSWithoutSDA::MEDFileIntField1TSWithoutSDA()
10427 +{
10428 +}
10429 +
10430 +MEDFileIntField1TSWithoutSDA::MEDFileIntField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order,
10431 +                                                           const std::vector<std::string>& infos):MEDFileField1TSNDTemplateWithoutSDA<int>(fieldName,meshName,csit,iteration,order,infos)
10432 +{
10433 +  DataArrayInt *arr(getOrCreateAndGetArrayTemplate());
10434 +  arr->setInfoAndChangeNbOfCompo(infos);
10435 +}
10436 +
10437 +const char *MEDFileIntField1TSWithoutSDA::getTypeStr() const
10438 +{
10439 +  return TYPE_STR;
10440 +}
10441 +
10442 +/*!
10443 + * Returns a pointer to the underground DataArrayInt instance and a
10444 + * sequence describing parameters of a support of each part of \a this field. The
10445 + * caller should not decrRef() the returned DataArrayInt. This method allows for a
10446 + * direct access to the field values. This method is intended for the field lying on one
10447 + * mesh only.
10448 + *  \param [in,out] entries - the sequence describing parameters of a support of each
10449 + *         part of \a this field. Each item of this sequence consists of two parts. The
10450 + *         first part describes a type of mesh entity and an id of discretization of a
10451 + *         current field part. The second part describes a range of values [begin,end)
10452 + *         within the returned array relating to the current field part.
10453 + *  \return DataArrayInt * - the pointer to the field values array.
10454 + *  \throw If the number of underlying meshes is not equal to 1.
10455 + *  \throw If no field values are available.
10456 + *  \sa getUndergroundDataArray()
10457 + */
10458 +DataArray *MEDFileIntField1TSWithoutSDA::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
10459 +{
10460 +  return getUndergroundDataArrayIntExt(entries);
10461 +}
10462 +
10463 +/*!
10464 + * Returns a pointer to the underground DataArrayInt instance and a
10465 + * sequence describing parameters of a support of each part of \a this field. The
10466 + * caller should not decrRef() the returned DataArrayInt. This method allows for a
10467 + * direct access to the field values. This method is intended for the field lying on one
10468 + * mesh only.
10469 + *  \param [in,out] entries - the sequence describing parameters of a support of each
10470 + *         part of \a this field. Each item of this sequence consists of two parts. The
10471 + *         first part describes a type of mesh entity and an id of discretization of a
10472 + *         current field part. The second part describes a range of values [begin,end)
10473 + *         within the returned array relating to the current field part.
10474 + *  \return DataArrayInt * - the pointer to the field values array.
10475 + *  \throw If the number of underlying meshes is not equal to 1.
10476 + *  \throw If no field values are available.
10477 + *  \sa getUndergroundDataArray()
10478 + */
10479 +DataArrayInt *MEDFileIntField1TSWithoutSDA::getUndergroundDataArrayIntExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
10480 +{
10481 +  if(_field_per_mesh.size()!=1)
10482 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : field lies on several meshes, this method has no sense !");
10483 +  if(_field_per_mesh[0]==0)
10484 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : no field specified !");
10485 +  _field_per_mesh[0]->getUndergroundDataArrayExt(entries);
10486 +  return getUndergroundDataArrayTemplate();
10487 +}
10488 +
10489 +MEDFileIntField1TSWithoutSDA *MEDFileIntField1TSWithoutSDA::shallowCpy() const
10490 +{
10491 +  MCAuto<MEDFileIntField1TSWithoutSDA> ret(new MEDFileIntField1TSWithoutSDA(*this));
10492 +  ret->deepCpyLeavesFrom(*this);
10493 +  return ret.retn();
10494 +}
10495 +
10496 +MEDFileIntField1TSWithoutSDA *MEDFileIntField1TSWithoutSDA::deepCopy() const
10497 +{
10498 +  MCAuto<MEDFileIntField1TSWithoutSDA> ret(shallowCpy());
10499 +  if(_arr.isNotNull())
10500 +    ret->_arr=_arr->deepCopy();
10501 +  return ret.retn();
10502 +}
10503 +
10504 +//= MEDFileFloatField1TSWithoutSDA
10505 +
10506 +MEDFileFloatField1TSWithoutSDA *MEDFileFloatField1TSWithoutSDA::New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos)
10507 +{
10508 +  return new MEDFileFloatField1TSWithoutSDA(fieldName,meshName,csit,iteration,order,infos);
10509 +}
10510 +
10511 +MEDFileFloatField1TSWithoutSDA::MEDFileFloatField1TSWithoutSDA()
10512 +{
10513 +}
10514 +
10515 +MEDFileFloatField1TSWithoutSDA::MEDFileFloatField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order,
10516 +                                                               const std::vector<std::string>& infos):MEDFileField1TSNDTemplateWithoutSDA<float>(fieldName,meshName,csit,iteration,order,infos)
10517 +{
10518 +  DataArrayFloat *arr(getOrCreateAndGetArrayTemplate());
10519 +  arr->setInfoAndChangeNbOfCompo(infos);
10520 +}
10521 +
10522 +const char *MEDFileFloatField1TSWithoutSDA::getTypeStr() const
10523 +{
10524 +  return TYPE_STR;
10525 +}
10526 +
10527 +/*!
10528 + * Returns a pointer to the underground DataArrayFloat instance and a
10529 + * sequence describing parameters of a support of each part of \a this field. The
10530 + * caller should not decrRef() the returned DataArrayFloat. This method allows for a
10531 + * direct access to the field values. This method is intended for the field lying on one
10532 + * mesh only.
10533 + *  \param [in,out] entries - the sequence describing parameters of a support of each
10534 + *         part of \a this field. Each item of this sequence consists of two parts. The
10535 + *         first part describes a type of mesh entity and an id of discretization of a
10536 + *         current field part. The second part describes a range of values [begin,end)
10537 + *         within the returned array relating to the current field part.
10538 + *  \return DataArrayFloat * - the pointer to the field values array.
10539 + *  \throw If the number of underlying meshes is not equal to 1.
10540 + *  \throw If no field values are available.
10541 + *  \sa getUndergroundDataArray()
10542 + */
10543 +DataArray *MEDFileFloatField1TSWithoutSDA::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
10544 +{
10545 +  return getUndergroundDataArrayFloatExt(entries);
10546 +}
10547 +
10548 +/*!
10549 + * Returns a pointer to the underground DataArrayFloat instance and a
10550 + * sequence describing parameters of a support of each part of \a this field. The
10551 + * caller should not decrRef() the returned DataArrayFloat. This method allows for a
10552 + * direct access to the field values. This method is intended for the field lying on one
10553 + * mesh only.
10554 + *  \param [in,out] entries - the sequence describing parameters of a support of each
10555 + *         part of \a this field. Each item of this sequence consists of two parts. The
10556 + *         first part describes a type of mesh entity and an id of discretization of a
10557 + *         current field part. The second part describes a range of values [begin,end)
10558 + *         within the returned array relating to the current field part.
10559 + *  \return DataArrayFloat * - the pointer to the field values array.
10560 + *  \throw If the number of underlying meshes is not equal to 1.
10561 + *  \throw If no field values are available.
10562 + *  \sa getUndergroundDataArray()
10563 + */
10564 +DataArrayFloat *MEDFileFloatField1TSWithoutSDA::getUndergroundDataArrayFloatExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
10565 +{
10566 +  if(_field_per_mesh.size()!=1)
10567 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : field lies on several meshes, this method has no sense !");
10568 +  if(_field_per_mesh[0]==0)
10569 +    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : no field specified !");
10570 +  _field_per_mesh[0]->getUndergroundDataArrayExt(entries);
10571 +  return getUndergroundDataArrayTemplate();
10572 +}
10573 +
10574 +MEDFileFloatField1TSWithoutSDA *MEDFileFloatField1TSWithoutSDA::shallowCpy() const
10575 +{
10576 +  MCAuto<MEDFileFloatField1TSWithoutSDA> ret(new MEDFileFloatField1TSWithoutSDA(*this));
10577 +  ret->deepCpyLeavesFrom(*this);
10578 +  return ret.retn();
10579 +}
10580 +
10581 +MEDFileFloatField1TSWithoutSDA *MEDFileFloatField1TSWithoutSDA::deepCopy() const
10582 +{
10583 +  MCAuto<MEDFileFloatField1TSWithoutSDA> ret(shallowCpy());
10584 +  if(_arr.isNotNull())
10585 +    ret->_arr=_arr->deepCopy();
10586 +  return ret.retn();
10587 +}
10588 +
10589 +//= MEDFileAnyTypeField1TS
10590 +
10591 +MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS()
10592 +{
10593 +}
10594 +
10595 +MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
10596 +{
10597 +  med_field_type typcha;
10598 +  //
10599 +  std::vector<std::string> infos;
10600 +  std::string dtunit,fieldName,meshName;
10601 +  LocateField2(fid,0,true,fieldName,typcha,infos,dtunit,meshName);
10602 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ret;
10603 +  switch(typcha)
10604 +  {
10605 +    case MED_FLOAT64:
10606 +      {
10607 +        ret=MEDFileField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10608 +        break;
10609 +      }
10610 +    case MED_INT32:
10611 +      {
10612 +        ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10613 +        break;
10614 +      }
10615 +    case MED_FLOAT32:
10616 +      {
10617 +        ret=MEDFileFloatField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10618 +        break;
10619 +      }
10620 +    case MED_INT:
10621 +      {
10622 +        if(sizeof(med_int)==sizeof(int))
10623 +          {
10624 +            ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10625 +            break;
10626 +          }
10627 +      }
10628 +    default:
10629 +      {
10630 +        std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::BuildContentFrom(fid) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of the first field is not in [MED_FLOAT64, MED_INT32] !";
10631 +        throw INTERP_KERNEL::Exception(oss.str());
10632 +      }
10633 +  }
10634 +  ret->setDtUnit(dtunit.c_str());
10635 +  ret->getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(infos);
10636 +  //
10637 +  med_int numdt,numit;
10638 +  med_float dt;
10639 +  MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,fieldName.c_str(),1,&numdt,&numit,&dt));
10640 +  ret->setTime(numdt,numit,dt);
10641 +  ret->_csit=1;
10642 +  if(loadAll)
10643 +    ret->loadStructureAndBigArraysRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
10644 +  else
10645 +    ret->loadOnlyStructureOfDataRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
10646 +  return ret.retn();
10647 +}
10648 +
10649 +MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
10650 +try:MEDFileFieldGlobsReal(fid)
10651 +{
10652 +  _content=BuildContentFrom(fid,loadAll,ms,entities);
10653 +  loadGlobals(fid);
10654 +}
10655 +catch(INTERP_KERNEL::Exception& e)
10656 +{
10657 +    throw e;
10658 +}
10659 +
10660 +MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
10661 +{
10662 +  med_field_type typcha;
10663 +  std::vector<std::string> infos;
10664 +  std::string dtunit,meshName;
10665 +  int nbSteps(0);
10666 +  {
10667 +    int iii=-1;
10668 +    nbSteps=LocateField(fid,fieldName,iii,typcha,infos,dtunit,meshName);
10669 +  }
10670 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ret;
10671 +  switch(typcha)
10672 +  {
10673 +    case MED_FLOAT64:
10674 +      {
10675 +        ret=MEDFileField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10676 +        break;
10677 +      }
10678 +    case MED_INT32:
10679 +      {
10680 +        ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10681 +        break;
10682 +      }
10683 +    case MED_FLOAT32:
10684 +      {
10685 +        ret=MEDFileFloatField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10686 +        break;
10687 +      }
10688 +    case MED_INT:
10689 +      {
10690 +        if(sizeof(med_int)==sizeof(int))
10691 +          {
10692 +            ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
10693 +            break;
10694 +          }
10695 +      }
10696 +    default:
10697 +      {
10698 +        std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::BuildContentFrom(fid,fieldName) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
10699 +        throw INTERP_KERNEL::Exception(oss.str());
10700 +      }
10701 +  }
10702 +  ret->setMeshName(meshName);
10703 +  ret->setDtUnit(dtunit.c_str());
10704 +  ret->getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(infos);
10705 +  //
10706 +  if(nbSteps<1)
10707 +    {
10708 +      std::ostringstream oss; oss << "MEDFileField1TS(fid,fieldName) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but there is no time steps on it !";
10709 +      throw INTERP_KERNEL::Exception(oss.str());
10710 +    }
10711 +  //
10712 +  med_int numdt,numit;
10713 +  med_float dt;
10714 +  MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,fieldName.c_str(),1,&numdt,&numit,&dt));
10715 +  ret->setTime(numdt,numit,dt);
10716 +  ret->_csit=1;
10717 +  if(loadAll)
10718 +    ret->loadStructureAndBigArraysRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
10719 +  else
10720 +    ret->loadOnlyStructureOfDataRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
10721 +  return ret.retn();
10722 +}
10723 +
10724 +MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
10725 +try:MEDFileFieldGlobsReal(fid)
10726 +{
10727 +  _content=BuildContentFrom(fid,fieldName,loadAll,ms,entities);
10728 +  loadGlobals(fid);
10729 +}
10730 +catch(INTERP_KERNEL::Exception& e)
10731 +{
10732 +    throw e;
10733 +}
10734 +
10735 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c)
10736 +{
10737 +  if(!c)
10738 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::BuildNewInstanceFromContent : empty content in input : unable to build a new instance !");
10739 +  if(dynamic_cast<const MEDFileField1TSWithoutSDA *>(c))
10740 +    {
10741 +      MCAuto<MEDFileField1TS> ret(MEDFileField1TS::New());
10742 +      ret->_content=c; c->incrRef();
10743 +      return ret.retn();
10744 +    }
10745 +  if(dynamic_cast<const MEDFileIntField1TSWithoutSDA *>(c))
10746 +    {
10747 +      MCAuto<MEDFileIntField1TS> ret(MEDFileIntField1TS::New());
10748 +      ret->_content=c; c->incrRef();
10749 +      return ret.retn();
10750 +    }
10751 +  if(dynamic_cast<const MEDFileFloatField1TSWithoutSDA *>(c))
10752 +    {
10753 +      MCAuto<MEDFileFloatField1TS> ret(MEDFileFloatField1TS::New());
10754 +      ret->_content=c; c->incrRef();
10755 +      return ret.retn();
10756 +    }
10757 +  throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::BuildNewInstanceFromContent : internal error ! a content of type different from FLOAT64 FLOAT32 and INT32 has been built but not intercepted !");
10758 +}
10759 +
10760 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c, med_idt fid)
10761 +{
10762 +  MEDFileAnyTypeField1TS *ret(BuildNewInstanceFromContent(c));
10763 +  ret->setFileName(FileNameFromFID(fid));
10764 +  return ret;
10765 +}
10766 +
10767 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(const std::string& fileName, bool loadAll)
10768 +{
10769 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
10770 +  return New(fid,loadAll);
10771 +}
10772 +
10773 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(med_idt fid, bool loadAll)
10774 +{
10775 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,loadAll,0,0));
10776 +  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
10777 +  ret->loadGlobals(fid);
10778 +  return ret.retn();
10779 +}
10780 +
10781 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(const std::string& fileName, const std::string& fieldName, bool loadAll)
10782 +{
10783 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
10784 +  return New(fid,fieldName,loadAll);
10785 +}
10786 +
10787 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(med_idt fid, const std::string& fieldName, bool loadAll)
10788 +{
10789 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,fieldName,loadAll,0,0));
10790 +  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
10791 +  ret->loadGlobals(fid);
10792 +  return ret.retn();
10793 +}
10794 +
10795 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll)
10796 +{
10797 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
10798 +  return New(fid,fieldName,iteration,order,loadAll);
10799 +}
10800 +
10801 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll)
10802 +{
10803 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,fieldName,iteration,order,loadAll,0,0));
10804 +  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
10805 +  ret->loadGlobals(fid);
10806 +  return ret.retn();
10807 +}
10808 +
10809 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::NewAdv(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities)
10810 +{
10811 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
10812 +  return NewAdv(fid,fieldName,iteration,order,loadAll,entities);
10813 +}
10814 +
10815 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::NewAdv(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities)
10816 +{
10817 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,fieldName,iteration,order,loadAll,0,entities));
10818 +  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
10819 +  ret->loadGlobals(fid);
10820 +  return ret.retn();
10821 +}
10822 +
10823 +MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::BuildContentFrom(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
10824 +{
10825 +  med_field_type typcha;
10826 +  std::vector<std::string> infos;
10827 +  std::string dtunit,meshName;
10828 +  int iii(-1);
10829 +  int nbOfStep2(LocateField(fid,fieldName,iii,typcha,infos,dtunit,meshName));
10830 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ret;
10831 +  switch(typcha)
10832 +  {
10833 +    case MED_FLOAT64:
10834 +      {
10835 +        ret=MEDFileField1TSWithoutSDA::New(fieldName,meshName,-1,iteration,order,std::vector<std::string>());
10836 +        break;
10837 +      }
10838 +    case MED_INT32:
10839 +      {
10840 +        ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,iteration,order,std::vector<std::string>());
10841 +        break;
10842 +      }
10843 +    case MED_FLOAT32:
10844 +      {
10845 +        ret=MEDFileFloatField1TSWithoutSDA::New(fieldName,meshName,-1,iteration,order,std::vector<std::string>());
10846 +        break;
10847 +      }
10848 +    case MED_INT:
10849 +      {
10850 +        if(sizeof(med_int)==sizeof(int))
10851 +          {
10852 +            ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,iteration,order,std::vector<std::string>());
10853 +            break;
10854 +          }
10855 +      }
10856 +    default:
10857 +      {
10858 +        std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::BuildContentFrom(fid,fieldName,iteration,order) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
10859 +        throw INTERP_KERNEL::Exception(oss.str());
10860 +      }
10861 +  }
10862 +  ret->setDtUnit(dtunit.c_str());
10863 +  ret->getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(infos);
10864 +  //
10865 +  bool found=false;
10866 +  std::vector< std::pair<int,int> > dtits(nbOfStep2);
10867 +  for(int i=0;i<nbOfStep2 && !found;i++)
10868 +    {
10869 +      med_int numdt,numit;
10870 +      med_float dt;
10871 +      MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,fieldName.c_str(),i+1,&numdt,&numit,&dt));
10872 +      if(numdt==iteration && numit==order)
10873 +        {
10874 +          found=true;
10875 +          ret->_csit=i+1;
10876 +        }
10877 +      else
10878 +        dtits[i]=std::pair<int,int>(numdt,numit);
10879 +    }
10880 +  if(!found)
10881 +    {
10882 +      std::ostringstream oss; oss << "No such iteration (" << iteration << "," << order << ") in existing field '" << fieldName << "' in file '" << FileNameFromFID(fid) << "' ! Available iterations are : ";
10883 +      for(std::vector< std::pair<int,int> >::const_iterator iter=dtits.begin();iter!=dtits.end();iter++)
10884 +        oss << "(" << (*iter).first << "," << (*iter).second << "), ";
10885 +      throw INTERP_KERNEL::Exception(oss.str());
10886 +    }
10887 +  if(loadAll)
10888 +    ret->loadStructureAndBigArraysRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
10889 +  else
10890 +    ret->loadOnlyStructureOfDataRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
10891 +  return ret.retn();
10892 +}
10893 +
10894 +MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
10895 +try:MEDFileFieldGlobsReal(fid)
10896 +{
10897 +  _content=BuildContentFrom(fid,fieldName,iteration,order,loadAll,ms,entities);
10898 +  loadGlobals(fid);
10899 +}
10900 +catch(INTERP_KERNEL::Exception& e)
10901 +{
10902 +    throw e;
10903 +}
10904 +
10905 +/*!
10906 + * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
10907 + * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
10908 + *
10909 + * \warning this is a shallow copy constructor
10910 + */
10911 +MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(const MEDFileAnyTypeField1TSWithoutSDA& other, bool shallowCopyOfContent)
10912 +{
10913 +  if(!shallowCopyOfContent)
10914 +    {
10915 +      const MEDFileAnyTypeField1TSWithoutSDA *otherPtr(&other);
10916 +      otherPtr->incrRef();
10917 +      _content=const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(otherPtr);
10918 +    }
10919 +  else
10920 +    {
10921 +      _content=other.shallowCpy();
10922 +    }
10923 +}
10924 +
10925 +int MEDFileAnyTypeField1TS::LocateField2(med_idt fid, int fieldIdCFormat, bool checkFieldId, std::string& fieldName, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName)
10926 +{
10927 +  if(checkFieldId)
10928 +    {
10929 +      int nbFields=MEDnField(fid);
10930 +      if(fieldIdCFormat>=nbFields)
10931 +        {
10932 +          std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::LocateField2(fileName) : in file \'" << FileNameFromFID(fid) << "\' number of fields is " << nbFields << " ! Trying to request for id " << fieldIdCFormat << " !";
10933 +          throw INTERP_KERNEL::Exception(oss.str());
10934 +        }
10935 +    }
10936 +  int ncomp(MEDfieldnComponent(fid,fieldIdCFormat+1));
10937 +  INTERP_KERNEL::AutoPtr<char> comp(MEDLoaderBase::buildEmptyString(ncomp*MED_SNAME_SIZE));
10938 +  INTERP_KERNEL::AutoPtr<char> unit(MEDLoaderBase::buildEmptyString(ncomp*MED_SNAME_SIZE));
10939 +  INTERP_KERNEL::AutoPtr<char> dtunit(MEDLoaderBase::buildEmptyString(MED_LNAME_SIZE));
10940 +  INTERP_KERNEL::AutoPtr<char> nomcha(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
10941 +  INTERP_KERNEL::AutoPtr<char> nomMaa(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
10942 +  med_bool localMesh;
10943 +  int nbOfStep;
10944 +  MEDFILESAFECALLERRD0(MEDfieldInfo,(fid,fieldIdCFormat+1,nomcha,nomMaa,&localMesh,&typcha,comp,unit,dtunit,&nbOfStep));
10945 +  fieldName=MEDLoaderBase::buildStringFromFortran(nomcha,MED_NAME_SIZE);
10946 +  dtunitOut=MEDLoaderBase::buildStringFromFortran(dtunit,MED_LNAME_SIZE);
10947 +  meshName=MEDLoaderBase::buildStringFromFortran(nomMaa,MED_NAME_SIZE);
10948 +  infos.clear(); infos.resize(ncomp);
10949 +  for(int j=0;j<ncomp;j++)
10950 +    infos[j]=MEDLoaderBase::buildUnionUnit((char *)comp+j*MED_SNAME_SIZE,MED_SNAME_SIZE,(char *)unit+j*MED_SNAME_SIZE,MED_SNAME_SIZE);
10951 +  return nbOfStep;
10952 +}
10953 +
10954 +/*!
10955 + * This method throws an INTERP_KERNEL::Exception if \a fieldName field is not in file pointed by \a fid and with name \a fileName.
10956 + * 
10957 + * \param [out]
10958 + * \return in case of success the number of time steps available for the field with name \a fieldName.
10959 + */
10960 +int MEDFileAnyTypeField1TS::LocateField(med_idt fid, const std::string& fieldName, int& posCFormat, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName)
10961 +{
10962 +  int nbFields=MEDnField(fid);
10963 +  bool found=false;
10964 +  std::vector<std::string> fns(nbFields);
10965 +  int nbOfStep2(-1);
10966 +  for(int i=0;i<nbFields && !found;i++)
10967 +    {
10968 +      std::string tmp,tmp2;
10969 +      nbOfStep2=LocateField2(fid,i,false,tmp,typcha,infos,dtunitOut,tmp2);
10970 +      fns[i]=tmp;
10971 +      found=(tmp==fieldName);
10972 +      if(found)
10973 +        {
10974 +          posCFormat=i;
10975 +          meshName=tmp2;
10976 +        }
10977 +    }
10978 +  if(!found)
10979 +    {
10980 +      std::ostringstream oss; oss << "No such field '" << fieldName << "' in file '" << FileNameFromFID(fid) << "' ! Available fields are : ";
10981 +      for(std::vector<std::string>::const_iterator it=fns.begin();it!=fns.end();it++)
10982 +        oss << "\"" << *it << "\" ";
10983 +      throw INTERP_KERNEL::Exception(oss.str());
10984 +    }
10985 +  return nbOfStep2;
10986 +}
10987 +
10988 +/*!
10989 + * This method as MEDFileField1TSW::setLocNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure
10990 + * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutSDA::getFieldSplitedByType or MEDFileField1TSWithoutSDA::getFieldSplitedByType2.
10991 + * This method changes the attribute (here it's profile name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance).
10992 + * It is the responsibility of the caller to invoke MEDFileFieldGlobs::appendProfile or MEDFileFieldGlobs::getProfile
10993 + * to keep a valid instance.
10994 + * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown.
10995 + * If \b newPflName profile name does not already exist the profile with old name will be renamed with name \b newPflName.
10996 + * If \b newPflName already exists and that \b forceRenameOnGlob is false (the default) an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newPflName.
10997 + *
10998 + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
10999 + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
11000 + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
11001 + *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
11002 + * \param [in] newLocName is the new localization name.
11003 + * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newPflName already exists. If true, the renaming is done without check. It can lead to major bug.
11004 + *             If false, an exception will be thrown to force user to change previously the name of the profile with name \b newPflName
11005 + */
11006 +void MEDFileAnyTypeField1TS::setProfileNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob)
11007 +{
11008 +  MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
11009 +  std::string oldPflName=disc->getProfile();
11010 +  std::vector<std::string> vv=getPflsReallyUsedMulti();
11011 +  int nbOfOcc=std::count(vv.begin(),vv.end(),oldPflName);
11012 +  if(forceRenameOnGlob || (!existsPfl(newPflName) && nbOfOcc==1))
11013 +    {
11014 +      disc->setProfile(newPflName);
11015 +      DataArrayInt *pfl=getProfile(oldPflName.c_str());
11016 +      pfl->setName(newPflName);
11017 +    }
11018 +  else
11019 +    {
11020 +      std::ostringstream oss; oss << "MEDFileField1TS::setProfileNameOnLeaf : Profile \"" << newPflName << "\" already exists or referenced more than one !";
11021 +      throw INTERP_KERNEL::Exception(oss.str());
11022 +    }
11023 +}
11024 +
11025 +/*!
11026 + * This method as MEDFileField1TSW::setProfileNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure
11027 + * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutSDA::getFieldSplitedByType or MEDFileField1TSWithoutSDA::getFieldSplitedByType2.
11028 + * This method changes the attribute (here it's localization name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance).
11029 + * It is the responsibility of the caller to invoke MEDFileFieldGlobs::appendProfile or MEDFileFieldGlobs::getProfile
11030 + * to keep a valid instance.
11031 + * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown.
11032 + * This method is an extension of MEDFileField1TSWithoutSDA::setProfileNameOnLeafExt method because it performs a modification of global info.
11033 + * If \b newLocName profile name does not already exist the localization with old name will be renamed with name \b newLocName.
11034 + * If \b newLocName already exists an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newLocName.
11035 + *
11036 + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
11037 + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
11038 + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
11039 + *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
11040 + * \param [in] newLocName is the new localization name.
11041 + * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newLocName already exists. If true, the renaming is done without check. It can lead to major bug.
11042 + *             If false, an exception will be thrown to force user to change previously the name of the profile with name \b newLocName
11043 + */
11044 +void MEDFileAnyTypeField1TS::setLocNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob)
11045 +{
11046 +  MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
11047 +  std::string oldLocName=disc->getLocalization();
11048 +  std::vector<std::string> vv=getLocsReallyUsedMulti();
11049 +  int nbOfOcc=std::count(vv.begin(),vv.end(),oldLocName);
11050 +  if(forceRenameOnGlob || (!existsLoc(newLocName) && nbOfOcc==1))
11051 +    {
11052 +      disc->setLocalization(newLocName);
11053 +      MEDFileFieldLoc& loc=getLocalization(oldLocName.c_str());
11054 +      loc.setName(newLocName);
11055 +    }
11056 +  else
11057 +    {
11058 +      std::ostringstream oss; oss << "MEDFileField1TS::setLocNameOnLeaf : Localization \"" << newLocName << "\" already exists or referenced more than one !";
11059 +      throw INTERP_KERNEL::Exception(oss.str());
11060 +    }
11061 +}
11062 +
11063 +MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::contentNotNullBase()
11064 +{
11065 +  MEDFileAnyTypeField1TSWithoutSDA *ret=_content;
11066 +  if(!ret)
11067 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS : content is expected to be not null !");
11068 +  return ret;
11069 +}
11070 +
11071 +const MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::contentNotNullBase() const
11072 +{
11073 +  const MEDFileAnyTypeField1TSWithoutSDA *ret=_content;
11074 +  if(!ret)
11075 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS : const content is expected to be not null !");
11076 +  return ret;
11077 +}
11078 +
11079 +/*!
11080 + * This method alloc the arrays and load potentially huge arrays contained in this field.
11081 + * This method should be called when a MEDFileAnyTypeField1TS::New constructor has been with false as the last parameter.
11082 + * This method can be also called to refresh or reinit values from a file.
11083 + * 
11084 + * \throw If the fileName is not set or points to a non readable MED file.
11085 + * \sa MEDFileAnyTypeField1TS::loadArraysIfNecessary
11086 + */
11087 +void MEDFileAnyTypeField1TS::loadArrays()
11088 +{
11089 +  if(getFileName().empty())
11090 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::loadArrays : the structure does not come from a file !");
11091 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
11092 +  contentNotNullBase()->loadBigArraysRecursively(fid,*contentNotNullBase());
11093 +}
11094 +
11095 +/*!
11096 + * This method behaves as MEDFileAnyTypeField1TS::loadArrays does, the first call, if \a this was built using a file without loading big arrays.
11097 + * But once data loaded once, this method does nothing. Contrary to MEDFileAnyTypeField1TS::loadArrays and MEDFileAnyTypeField1TS::unloadArrays
11098 + * this method does not throw if \a this does not come from file read.
11099 + * 
11100 + * \sa MEDFileAnyTypeField1TS::loadArrays, MEDFileAnyTypeField1TS::unloadArrays
11101 + */
11102 +void MEDFileAnyTypeField1TS::loadArraysIfNecessary()
11103 +{
11104 +  if(!getFileName().empty())
11105 +    {
11106 +      MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
11107 +      contentNotNullBase()->loadBigArraysRecursivelyIfNecessary(fid,*contentNotNullBase());
11108 +    }
11109 +}
11110 +
11111 +/*!
11112 + * This method releases potentially big data arrays and so returns to the same heap memory than status loaded with 'loadAll' parameter set to false.
11113 + * \b WARNING, this method does release arrays even if \a this does not come from a load of a MED file.
11114 + * So this method can lead to a loss of data. If you want to unload arrays safely call MEDFileAnyTypeField1TS::unloadArraysWithoutDataLoss instead.
11115 + * 
11116 + * \sa MEDFileAnyTypeField1TS::loadArrays, MEDFileAnyTypeField1TS::loadArraysIfNecessary, MEDFileAnyTypeField1TS::unloadArraysWithoutDataLoss
11117 + */
11118 +void MEDFileAnyTypeField1TS::unloadArrays()
11119 +{
11120 +  contentNotNullBase()->unloadArrays();
11121 +}
11122 +
11123 +/*!
11124 + * This method potentially releases big data arrays if \a this is coming from a file. If \a this has been built from scratch this method will have no effect.
11125 + * This method is the symmetrical method of MEDFileAnyTypeField1TS::loadArraysIfNecessary.
11126 + * This method is useful to reduce \b safely amount of heap memory necessary for \a this by using MED file as database.
11127 + * 
11128 + * \sa MEDFileAnyTypeField1TS::loadArraysIfNecessary
11129 + */
11130 +void MEDFileAnyTypeField1TS::unloadArraysWithoutDataLoss()
11131 +{
11132 +  if(!getFileName().empty())
11133 +    contentNotNullBase()->unloadArrays();
11134 +}
11135 +
11136 +void MEDFileAnyTypeField1TS::writeLL(med_idt fid) const
11137 +{
11138 +  int nbComp(getNumberOfComponents());
11139 +  INTERP_KERNEL::AutoPtr<char> comp(MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE));
11140 +  INTERP_KERNEL::AutoPtr<char> unit(MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE));
11141 +  for(int i=0;i<nbComp;i++)
11142 +    {
11143 +      std::string info=getInfo()[i];
11144 +      std::string c,u;
11145 +      MEDLoaderBase::splitIntoNameAndUnit(info,c,u);
11146 +      MEDLoaderBase::safeStrCpy2(c.c_str(),MED_SNAME_SIZE,comp+i*MED_SNAME_SIZE,_too_long_str);
11147 +      MEDLoaderBase::safeStrCpy2(u.c_str(),MED_SNAME_SIZE,unit+i*MED_SNAME_SIZE,_too_long_str);
11148 +    }
11149 +  if(getName().empty())
11150 +    throw INTERP_KERNEL::Exception("MEDFileField1TS::write : MED file does not accept field with empty name !");
11151 +  MEDFILESAFECALLERWR0(MEDfieldCr,(fid,getName().c_str(),getMEDFileFieldType(),nbComp,comp,unit,getDtUnit().c_str(),getMeshName().c_str()));
11152 +  writeGlobals(fid,*this);
11153 +  contentNotNullBase()->writeLL(fid,*this,*contentNotNullBase());
11154 +}
11155 +
11156 +std::size_t MEDFileAnyTypeField1TS::getHeapMemorySizeWithoutChildren() const
11157 +{
11158 +  return MEDFileFieldGlobsReal::getHeapMemorySizeWithoutChildren();
11159 +}
11160 +
11161 +std::vector<const BigMemoryObject *> MEDFileAnyTypeField1TS::getDirectChildrenWithNull() const
11162 +{
11163 +  std::vector<const BigMemoryObject *> ret(MEDFileFieldGlobsReal::getDirectChildrenWithNull());
11164 +  ret.push_back((const MEDFileAnyTypeField1TSWithoutSDA *)_content);
11165 +  return ret;
11166 +}
11167 +
11168 +/*!
11169 + * Returns a string describing \a this field. This string is outputted 
11170 + * by \c print Python command.
11171 + */
11172 +std::string MEDFileAnyTypeField1TS::simpleRepr() const
11173 +{
11174 +  std::ostringstream oss;
11175 +  contentNotNullBase()->simpleRepr(0,oss,-1);
11176 +  simpleReprGlobs(oss);
11177 +  return oss.str();
11178 +}
11179 +
11180 +/*!
11181 + * This method returns all profiles whose name is non empty used.
11182 + * \b WARNING If profile is used several times it will be reported \b only \b once.
11183 + * To get non empty name profiles as time as they appear in \b this call MEDFileField1TS::getPflsReallyUsedMulti instead.
11184 + */
11185 +std::vector<std::string> MEDFileAnyTypeField1TS::getPflsReallyUsed() const
11186 +{
11187 +  return contentNotNullBase()->getPflsReallyUsed2();
11188 +}
11189 +
11190 +/*!
11191 + * This method returns all localizations whose name is non empty used.
11192 + * \b WARNING If localization is used several times it will be reported \b only \b once.
11193 + */
11194 +std::vector<std::string> MEDFileAnyTypeField1TS::getLocsReallyUsed() const
11195 +{
11196 +  return contentNotNullBase()->getLocsReallyUsed2();
11197 +}
11198 +
11199 +/*!
11200 + * This method returns all profiles whose name is non empty used.
11201 + * \b WARNING contrary to MEDFileField1TS::getPflsReallyUsed, if profile is used several times it will be reported as time as it appears.
11202 + */
11203 +std::vector<std::string> MEDFileAnyTypeField1TS::getPflsReallyUsedMulti() const
11204 +{
11205 +  return contentNotNullBase()->getPflsReallyUsedMulti2();
11206 +}
11207 +
11208 +/*!
11209 + * This method returns all localizations whose name is non empty used.
11210 + * \b WARNING contrary to MEDFileField1TS::getLocsReallyUsed if localization is used several times it will be reported as time as it appears.
11211 + */
11212 +std::vector<std::string> MEDFileAnyTypeField1TS::getLocsReallyUsedMulti() const
11213 +{
11214 +  return contentNotNullBase()->getLocsReallyUsedMulti2();
11215 +}
11216 +
11217 +void MEDFileAnyTypeField1TS::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
11218 +{
11219 +  contentNotNullBase()->changePflsRefsNamesGen2(mapOfModif);
11220 +}
11221 +
11222 +void MEDFileAnyTypeField1TS::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
11223 +{
11224 +  contentNotNullBase()->changeLocsRefsNamesGen2(mapOfModif);
11225 +}
11226 +
11227 +int MEDFileAnyTypeField1TS::getDimension() const
11228 +{
11229 +  return contentNotNullBase()->getDimension();
11230 +}
11231 +
11232 +int MEDFileAnyTypeField1TS::getIteration() const
11233 +{
11234 +  return contentNotNullBase()->getIteration();
11235 +}
11236 +
11237 +int MEDFileAnyTypeField1TS::getOrder() const
11238 +{
11239 +  return contentNotNullBase()->getOrder();
11240 +}
11241 +
11242 +double MEDFileAnyTypeField1TS::getTime(int& iteration, int& order) const
11243 +{
11244 +  return contentNotNullBase()->getTime(iteration,order);
11245 +}
11246 +
11247 +void MEDFileAnyTypeField1TS::setTime(int iteration, int order, double val)
11248 +{
11249 +  contentNotNullBase()->setTime(iteration,order,val);
11250 +}
11251 +
11252 +std::string MEDFileAnyTypeField1TS::getName() const
11253 +{
11254 +  return contentNotNullBase()->getName();
11255 +}
11256 +
11257 +void MEDFileAnyTypeField1TS::setName(const std::string& name)
11258 +{
11259 +  contentNotNullBase()->setName(name);
11260 +}
11261 +
11262 +void MEDFileAnyTypeField1TS::simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const
11263 +{
11264 +  contentNotNullBase()->simpleRepr(bkOffset,oss,f1tsId);
11265 +}
11266 +
11267 +std::string MEDFileAnyTypeField1TS::getDtUnit() const
11268 +{
11269 +  return contentNotNullBase()->getDtUnit();
11270 +}
11271 +
11272 +void MEDFileAnyTypeField1TS::setDtUnit(const std::string& dtUnit)
11273 +{
11274 +  contentNotNullBase()->setDtUnit(dtUnit);
11275 +}
11276 +
11277 +std::string MEDFileAnyTypeField1TS::getMeshName() const
11278 +{
11279 +  return contentNotNullBase()->getMeshName();
11280 +}
11281 +
11282 +void MEDFileAnyTypeField1TS::setMeshName(const std::string& newMeshName)
11283 +{
11284 +  contentNotNullBase()->setMeshName(newMeshName);
11285 +}
11286 +
11287 +bool MEDFileAnyTypeField1TS::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
11288 +{
11289 +  return contentNotNullBase()->changeMeshNames(modifTab);
11290 +}
11291 +
11292 +int MEDFileAnyTypeField1TS::getMeshIteration() const
11293 +{
11294 +  return contentNotNullBase()->getMeshIteration();
11295 +}
11296 +
11297 +int MEDFileAnyTypeField1TS::getMeshOrder() const
11298 +{
11299 +  return contentNotNullBase()->getMeshOrder();
11300 +}
11301 +
11302 +int MEDFileAnyTypeField1TS::getNumberOfComponents() const
11303 +{
11304 +  return contentNotNullBase()->getNumberOfComponents();
11305 +}
11306 +
11307 +bool MEDFileAnyTypeField1TS::isDealingTS(int iteration, int order) const
11308 +{
11309 +  return contentNotNullBase()->isDealingTS(iteration,order);
11310 +}
11311 +
11312 +std::pair<int,int> MEDFileAnyTypeField1TS::getDtIt() const
11313 +{
11314 +  return contentNotNullBase()->getDtIt();
11315 +}
11316 +
11317 +void MEDFileAnyTypeField1TS::fillIteration(std::pair<int,int>& p) const
11318 +{
11319 +  contentNotNullBase()->fillIteration(p);
11320 +}
11321 +
11322 +void MEDFileAnyTypeField1TS::fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const
11323 +{
11324 +  contentNotNullBase()->fillTypesOfFieldAvailable(types);
11325 +}
11326 +
11327 +void MEDFileAnyTypeField1TS::setInfo(const std::vector<std::string>& infos)
11328 +{
11329 +  contentNotNullBase()->setInfo(infos);
11330 +}
11331 +
11332 +const std::vector<std::string>& MEDFileAnyTypeField1TS::getInfo() const
11333 +{
11334 +  return contentNotNullBase()->getInfo();
11335 +}
11336 +std::vector<std::string>& MEDFileAnyTypeField1TS::getInfo()
11337 +{
11338 +  return contentNotNullBase()->getInfo();
11339 +}
11340 +
11341 +bool MEDFileAnyTypeField1TS::presenceOfMultiDiscPerGeoType() const
11342 +{
11343 +  return contentNotNullBase()->presenceOfMultiDiscPerGeoType();
11344 +}
11345 +
11346 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TS::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId)
11347 +{
11348 +  return contentNotNullBase()->getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
11349 +}
11350 +
11351 +const MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TS::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const
11352 +{
11353 +  return contentNotNullBase()->getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
11354 +}
11355 +
11356 +int MEDFileAnyTypeField1TS::getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const
11357 +{
11358 +  return contentNotNullBase()->getNonEmptyLevels(mname,levs);
11359 +}
11360 +
11361 +void MEDFileAnyTypeField1TS::convertMedBallIntoClassic()
11362 +{
11363 +  return contentNotNullBase()->convertMedBallIntoClassic();
11364 +}
11365 +
11366 +void MEDFileAnyTypeField1TS::makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl)
11367 +{
11368 +  return contentNotNullBase()->makeReduction(ct,tof,pfl);
11369 +}
11370 +
11371 +std::vector<TypeOfField> MEDFileAnyTypeField1TS::getTypesOfFieldAvailable() const
11372 +{
11373 +  return contentNotNullBase()->getTypesOfFieldAvailable();
11374 +}
11375 +
11376 +std::vector< std::vector<std::pair<int,int> > > MEDFileAnyTypeField1TS::getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
11377 +                                                                                              std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
11378 +{
11379 +  return contentNotNullBase()->getFieldSplitedByType(mname,types,typesF,pfls,locs);
11380 +}
11381 +
11382 +/*!
11383 + * This method returns as MEDFileAnyTypeField1TS new instances as number of components in \a this.
11384 + * The returned instances are deep copy of \a this except that for globals that are shared with those contained in \a this.
11385 + * ** WARNING ** do no forget to rename the output instances to avoid to write n-times in the same MED file field !
11386 + */
11387 +std::vector< MCAuto< MEDFileAnyTypeField1TS > > MEDFileAnyTypeField1TS::splitComponents() const
11388 +{
11389 +  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
11390 +  if(!content)
11391 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::splitComponents : no content in this ! Unable to split components !");
11392 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > contentsSplit=content->splitComponents();
11393 +  std::size_t sz(contentsSplit.size());
11394 +  std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret(sz);
11395 +  for(std::size_t i=0;i<sz;i++)
11396 +    {
11397 +      ret[i]=shallowCpy();
11398 +      ret[i]->_content=contentsSplit[i];
11399 +    }
11400 +  return ret;
11401 +}
11402 +
11403 +/*!
11404 + * This method returns as MEDFileAnyTypeField1TS new instances as number of spatial discretizations in \a this.
11405 + * The returned instances are shallowed copied of \a this except that for globals that are shared with those contained in \a this.
11406 + */
11407 +std::vector< MCAuto< MEDFileAnyTypeField1TS > > MEDFileAnyTypeField1TS::splitDiscretizations() const
11408 +{
11409 +  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
11410 +  if(!content)
11411 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::splitDiscretizations : no content in this ! Unable to split discretization !");
11412 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > contentsSplit(content->splitDiscretizations());
11413 +  std::size_t sz(contentsSplit.size());
11414 +  std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret(sz);
11415 +  for(std::size_t i=0;i<sz;i++)
11416 +    {
11417 +      ret[i]=shallowCpy();
11418 +      ret[i]->_content=contentsSplit[i];
11419 +    }
11420 +  return ret;
11421 +}
11422 +
11423 +/*!
11424 + * This method returns as MEDFileAnyTypeField1TS new instances as number of maximal number of discretization in \a this.
11425 + * The returned instances are shallowed copied of \a this except that for globals that are shared with those contained in \a this.
11426 + */
11427 +std::vector< MCAuto< MEDFileAnyTypeField1TS > > MEDFileAnyTypeField1TS::splitMultiDiscrPerGeoTypes() const
11428 +{
11429 +  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
11430 +  if(!content)
11431 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::splitMultiDiscrPerGeoTypes : no content in this ! Unable to split discretization !");
11432 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > contentsSplit(content->splitMultiDiscrPerGeoTypes());
11433 +  std::size_t sz(contentsSplit.size());
11434 +  std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret(sz);
11435 +  for(std::size_t i=0;i<sz;i++)
11436 +    {
11437 +      ret[i]=shallowCpy();
11438 +      ret[i]->_content=contentsSplit[i];
11439 +    }
11440 +  return ret;
11441 +}
11442 +
11443 +MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::deepCopy() const
11444 +{
11445 +  MCAuto<MEDFileAnyTypeField1TS> ret=shallowCpy();
11446 +  if((const MEDFileAnyTypeField1TSWithoutSDA *)_content)
11447 +    ret->_content=_content->deepCopy();
11448 +  ret->deepCpyGlobs(*this);
11449 +  return ret.retn();
11450 +}
11451 +
11452 +int MEDFileAnyTypeField1TS::copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr)
11453 +{
11454 +  MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::New(*field));
11455 +  return copyTinyInfoFrom(field->timeDiscrSafe(),ft,arr);
11456 +}
11457 +
11458 +int MEDFileAnyTypeField1TS::copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr)
11459 +{
11460 +  return contentNotNullBase()->copyTinyInfoFrom(th,field,arr);
11461 +}
11462 +
11463 +//= MEDFileField1TS
11464 +
11465 +/*!
11466 + * This method performs a copy with datatype modification ( float64->int32 ) of \a this. The globals information are copied
11467 + * following the given input policy.
11468 + *
11469 + * \param [in] isDeepCpyGlobs - a boolean that indicates the behaviour concerning globals (profiles and localizations)
11470 + *                            By default (true) the globals are deeply copied.
11471 + * \return MEDFileIntField1TS * - a new object that is the result of the conversion of \a this to int32 field.
11472 + */
11473 +MEDFileIntField1TS *MEDFileField1TS::convertToInt(bool isDeepCpyGlobs) const
11474 +{
11475 +  MCAuto<MEDFileIntField1TS> ret;
11476 +  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
11477 +  if(content)
11478 +    {
11479 +      const MEDFileField1TSWithoutSDA *contc=dynamic_cast<const MEDFileField1TSWithoutSDA *>(content);
11480 +      if(!contc)
11481 +        throw INTERP_KERNEL::Exception("MEDFileField1TS::convertToInt : the content inside this is not FLOAT64 ! This is incoherent !");
11482 +      MCAuto<MEDFileIntField1TSWithoutSDA> newc(contc->convertToInt());
11483 +      ret=static_cast<MEDFileIntField1TS *>(MEDFileAnyTypeField1TS::BuildNewInstanceFromContent((MEDFileIntField1TSWithoutSDA *)newc));
11484 +    }
11485 +  else
11486 +    ret=MEDFileIntField1TS::New();
11487 +  if(isDeepCpyGlobs)
11488 +    ret->deepCpyGlobs(*this);
11489 +  else
11490 +    ret->shallowCpyGlobs(*this);
11491 +  return ret.retn();
11492 +}
11493 +
11494 +MEDFileField1TS::MEDFileField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
11495 +try:MEDFileTemplateField1TS<double>(fid,loadAll,ms)
11496 +{
11497 +}
11498 +catch(INTERP_KERNEL::Exception& e)
11499 +{ throw e; }
11500 +
11501 +MEDFileField1TS::MEDFileField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms)
11502 +try:MEDFileTemplateField1TS<double>(fid,fieldName,loadAll,ms)
11503 +{
11504 +}
11505 +catch(INTERP_KERNEL::Exception& e)
11506 +{ throw e; }
11507 +
11508 +MEDFileField1TS::MEDFileField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms)
11509 +try:MEDFileTemplateField1TS<double>(fid,fieldName,iteration,order,loadAll,ms)
11510 +{
11511 +}
11512 +catch(INTERP_KERNEL::Exception& e)
11513 +{ throw e; }
11514 +
11515 +/*!
11516 + * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
11517 + * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
11518 + *
11519 + * \warning this is a shallow copy constructor
11520 + */
11521 +MEDFileField1TS::MEDFileField1TS(const MEDFileField1TSWithoutSDA& other, bool shallowCopyOfContent)
11522 +try:MEDFileTemplateField1TS<double>(other,shallowCopyOfContent)
11523 +{
11524 +}
11525 +catch(INTERP_KERNEL::Exception& e)
11526 +{ throw e; }
11527 +
11528 +MEDFileField1TS *MEDFileField1TS::shallowCpy() const
11529 +{
11530 +  return new MEDFileField1TS(*this);
11531 +}
11532 +
11533 +std::vector< std::vector<DataArrayDouble *> > MEDFileField1TS::getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
11534 +                                                                                      std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
11535 +{
11536 +  return contentNotNull()->getFieldSplitedByType2(mname,types,typesF,pfls,locs);
11537 +}
11538 +
11539 +//= MEDFileIntField1TS
11540 +
11541 +MCAuto<MEDCouplingFieldDouble> MEDFileIntField1TS::ConvertFieldIntToFieldDouble(const MEDCouplingFieldInt *f)
11542 +{
11543 +  if(!f)
11544 +    throw INTERP_KERNEL::Exception("MEDFileIntField1TS::ConvertFieldIntToFieldDouble : null input field !");
11545 +  int t1,t2;
11546 +  double t0(f->getTime(t1,t2));
11547 +  std::string tu(f->getTimeUnit());
11548 +  MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::New(*f));
11549 +  MCAuto<MEDCouplingFieldDouble> ret(MEDCouplingFieldDouble::New(*ft));
11550 +  ret->setTime(t0,t1,t2); ret->setTimeUnit(tu);
11551 +  return ret;
11552 +}
11553 +
11554 +//= MEDFileFloatField1TS
11555 +
11556 +//= MEDFileFloatField1TS
11557 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileField1TS.hxx MEDCOUPLING_new/src/MEDLoader/MEDFileField1TS.hxx
11558 --- MEDCOUPLING_old/src/MEDLoader/MEDFileField1TS.hxx   1970-01-01 01:00:00.000000000 +0100
11559 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileField1TS.hxx   2018-04-19 17:25:17.850799590 +0200
11560 @@ -0,0 +1,467 @@
11561 +// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
11562 +//
11563 +// This library is free software; you can redistribute it and/or
11564 +// modify it under the terms of the GNU Lesser General Public
11565 +// License as published by the Free Software Foundation; either
11566 +// version 2.1 of the License, or (at your option) any later version.
11567 +//
11568 +// This library is distributed in the hope that it will be useful,
11569 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
11570 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11571 +// Lesser General Public License for more details.
11572 +//
11573 +// You should have received a copy of the GNU Lesser General Public
11574 +// License along with this library; if not, write to the Free Software
11575 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
11576 +//
11577 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
11578 +//
11579 +// Author : Anthony Geay (EDF R&D)
11580 +
11581 +#ifndef __MEDFILEFIELD1TS_HXX__
11582 +#define __MEDFILEFIELD1TS_HXX__
11583 +
11584 +#include "MEDLoaderDefines.hxx"
11585 +#include "MEDFileFieldGlobs.hxx"
11586 +#include "MEDFileFieldInternal.hxx"
11587 +#include "MEDLoaderTraits.hxx"
11588 +
11589 +#include "med.h"
11590 +
11591 +namespace MEDCoupling
11592 +{
11593 +  class TimeHolder;
11594 +  class MEDFileMeshes;
11595 +  
11596 +  /*!
11597 +   * SDA is for Shared Data Arrays such as profiles.
11598 +   */
11599 +  class MEDFileAnyTypeField1TSWithoutSDA : public RefCountObject, public MEDFileFieldNameScope
11600 +  {
11601 +  public:
11602 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA();
11603 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order);
11604 +    MEDLOADER_EXPORT int getIteration() const { return _iteration; }
11605 +    MEDLOADER_EXPORT int getOrder() const { return _order; }
11606 +    MEDLOADER_EXPORT double getTime(int& iteration, int& order) const { iteration=_iteration; order=_order; return _dt; }
11607 +    MEDLOADER_EXPORT void setTime(int iteration, int order, double val) { _dt=val; _iteration=iteration; _order=order; }
11608 +    MEDLOADER_EXPORT int getDimension() const;
11609 +    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
11610 +    MEDLOADER_EXPORT int getMeshIteration() const;
11611 +    MEDLOADER_EXPORT int getMeshOrder() const;
11612 +    MEDLOADER_EXPORT bool isDealingTS(int iteration, int order) const;
11613 +    MEDLOADER_EXPORT std::pair<int,int> getDtIt() const;
11614 +    MEDLOADER_EXPORT void fillIteration(std::pair<int,int>& p) const;
11615 +    MEDLOADER_EXPORT void fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const;
11616 +    MEDLOADER_EXPORT std::vector<TypeOfField> getTypesOfFieldAvailable() const;
11617 +    //
11618 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed2() const;
11619 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed2() const;
11620 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti2() const;
11621 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti2() const;
11622 +    MEDLOADER_EXPORT void changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
11623 +    MEDLOADER_EXPORT void changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
11624 +    //
11625 +    MEDLOADER_EXPORT int getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const;
11626 +    MEDLOADER_EXPORT void convertMedBallIntoClassic();
11627 +    MEDLOADER_EXPORT void makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl);
11628 +    MEDLOADER_EXPORT std::vector< std::vector<std::pair<int,int> > > getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
11629 +    //
11630 +    MEDLOADER_EXPORT MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId);
11631 +    MEDLOADER_EXPORT const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const;
11632 +    MEDLOADER_EXPORT void deepCpyLeavesFrom(const MEDFileAnyTypeField1TSWithoutSDA& other);
11633 +    MEDLOADER_EXPORT void accept(MEDFileFieldVisitor& visitor) const;
11634 +  public:
11635 +    MEDLOADER_EXPORT int getNumberOfComponents() const;
11636 +    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
11637 +    MEDLOADER_EXPORT std::vector<std::string>& getInfo();
11638 +    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
11639 +    MEDLOADER_EXPORT bool presenceOfStructureElements() const;
11640 +    MEDLOADER_EXPORT bool onlyStructureElements() const;
11641 +    MEDLOADER_EXPORT void killStructureElements();
11642 +    MEDLOADER_EXPORT void keepOnlyStructureElements();
11643 +    MEDLOADER_EXPORT void keepOnlyOnSE(const std::string& seName);
11644 +    MEDLOADER_EXPORT void getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const;
11645 +    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& infos);
11646 +    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
11647 +    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
11648 +    MEDLOADER_EXPORT int copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr);
11649 +    MEDLOADER_EXPORT void setFieldNoProfileSBT(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
11650 +    MEDLOADER_EXPORT void setFieldProfile(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arrOfVals, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc, bool smartPflKiller=true);
11651 +    MEDLOADER_EXPORT virtual void simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const;
11652 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TSWithoutSDA *deepCopy() const = 0;
11653 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TSWithoutSDA *shallowCpy() const = 0;
11654 +    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > splitComponents() const;
11655 +    MEDLOADER_EXPORT virtual const char *getTypeStr() const = 0;
11656 +    MEDLOADER_EXPORT virtual DataArray *getUndergroundDataArray() const = 0;
11657 +    MEDLOADER_EXPORT virtual DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const = 0;
11658 +    MEDLOADER_EXPORT virtual void setArray(DataArray *arr) = 0;
11659 +    MEDLOADER_EXPORT virtual DataArray *createNewEmptyDataArrayInstance() const = 0;
11660 +    MEDLOADER_EXPORT virtual DataArray *getOrCreateAndGetArray() = 0;
11661 +    MEDLOADER_EXPORT virtual const DataArray *getOrCreateAndGetArray() const = 0;
11662 +  public:
11663 +    MEDLOADER_EXPORT MEDCouplingFieldDouble *fieldOnMesh(const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const;
11664 +    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
11665 +    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
11666 +    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldAtTopLevel(TypeOfField type, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
11667 +    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, const DataArrayInt *cellRenum, const DataArrayInt *nodeRenum, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
11668 +    DataArray *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const;
11669 +  public:
11670 +    MEDLOADER_EXPORT bool renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N, MEDFileFieldGlobsReal& glob);
11671 +    MEDLOADER_EXPORT std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > splitDiscretizations() const;
11672 +    MEDLOADER_EXPORT std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > splitMultiDiscrPerGeoTypes() const;
11673 +    MEDLOADER_EXPORT int keepOnlySpatialDiscretization(TypeOfField tof, std::vector< std::pair<int,int> >& its);
11674 +    MEDLOADER_EXPORT int keepOnlyGaussDiscretization(std::size_t idOfDisc, std::vector< std::pair<int,int> >& its);
11675 +  public:
11676 +    MEDLOADER_EXPORT void allocNotFromFile(int newNbOfTuples);
11677 +    MEDLOADER_EXPORT bool allocIfNecessaryTheArrayToReceiveDataFromFile();
11678 +    MEDLOADER_EXPORT void loadOnlyStructureOfDataRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities);
11679 +    MEDLOADER_EXPORT void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
11680 +    MEDLOADER_EXPORT void loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc);
11681 +    MEDLOADER_EXPORT void loadStructureAndBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities);
11682 +    MEDLOADER_EXPORT void unloadArrays();
11683 +    MEDLOADER_EXPORT void writeLL(med_idt fid, const MEDFileWritable& opts, const MEDFileFieldNameScope& nasc) const;
11684 +    MEDLOADER_EXPORT static std::string FieldNameToMEDFileConvention(const std::string& nonCorrectFieldName);
11685 +  protected:
11686 +    int getMeshIdFromMeshName(const std::string& mName) const;
11687 +    int addNewEntryIfNecessary(const MEDCouplingMesh *mesh);
11688 +    void updateData(int newLgth, const std::vector< std::pair<int,int> >& oldStartStops);
11689 +  protected:
11690 +    std::vector< MCAuto< MEDFileFieldPerMesh > > _field_per_mesh;
11691 +    int _iteration;
11692 +    int _order;
11693 +    double _dt;
11694 +  public:
11695 +    //! only useable on reading
11696 +    mutable int _csit;
11697 +    // -3 means allocated and build from scratch
11698 +    // -2 means allocated and read from a file
11699 +    // -1 means not allocated and build from scratch
11700 +    // >=0 means not allocated and read from a file
11701 +    mutable int _nb_of_tuples_to_be_allocated;
11702 +  };
11703 +
11704 +  class MEDFileIntField1TSWithoutSDA;
11705 +
11706 +  template<class T>
11707 +  class MEDFileField1TSTemplateWithoutSDA : public MEDFileAnyTypeField1TSWithoutSDA
11708 +  {
11709 +  protected:
11710 +    MEDFileField1TSTemplateWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order):MEDFileAnyTypeField1TSWithoutSDA(fieldName,meshName,csit,iteration,order) { }
11711 +    MEDFileField1TSTemplateWithoutSDA() { }
11712 +  public:
11713 +    MEDLOADER_EXPORT void setArray(DataArray *arr);
11714 +    MEDLOADER_EXPORT DataArray *createNewEmptyDataArrayInstance() const;
11715 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getOrCreateAndGetArrayTemplate();
11716 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType const *getOrCreateAndGetArrayTemplate() const;
11717 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayTemplate() const;
11718 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayTemplateExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
11719 +    MEDLOADER_EXPORT DataArray *getOrCreateAndGetArray();
11720 +    MEDLOADER_EXPORT const DataArray *getOrCreateAndGetArray() const;
11721 +    MEDLOADER_EXPORT DataArray *getUndergroundDataArray() const;
11722 +    MEDLOADER_EXPORT void aggregate(const typename std::vector< typename MLFieldTraits<T>::F1TSWSDAType const * >& f1tss, const std::vector< std::vector< std::pair<int,int> > >& dts);
11723 +    MEDLOADER_EXPORT void copyTimeInfoFrom(const typename Traits<T>::FieldType *mcf);
11724 +  protected:
11725 +    MCAuto< typename Traits<T>::ArrayType > _arr;
11726 +  };
11727 +
11728 +  /*!
11729 +   * SDA is for Shared Data Arrays such as profiles.
11730 +   */
11731 +  class MEDFileField1TSWithoutSDA : public MEDFileField1TSTemplateWithoutSDA<double>
11732 +  {
11733 +  public:
11734 +    MEDLOADER_EXPORT const char *getTypeStr() const;
11735 +    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
11736 +    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
11737 +    MEDLOADER_EXPORT static void CheckMeshDimRel(int meshDimRelToMax);
11738 +    MEDLOADER_EXPORT static std::vector<int> CheckSBTMesh(const MEDCouplingMesh *mesh);
11739 +    MEDLOADER_EXPORT static MEDFileField1TSWithoutSDA *New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
11740 +  public:
11741 +    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA();
11742 +    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
11743 +    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA *shallowCpy() const;
11744 +    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA *deepCopy() const;
11745 +    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA *convertToInt() const;
11746 +  public:
11747 +    static const char TYPE_STR[];
11748 +  };
11749 +
11750 +  template<class T>
11751 +  class MEDFileField1TSNDTemplateWithoutSDA : public MEDFileField1TSTemplateWithoutSDA<T>
11752 +  {
11753 +  public:
11754 +    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA *convertToDouble() const;
11755 +  protected:
11756 +    MEDFileField1TSNDTemplateWithoutSDA() { }
11757 +    MEDFileField1TSNDTemplateWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos):MEDFileField1TSTemplateWithoutSDA<T>(fieldName,meshName,csit,iteration,order) { }
11758 +  };
11759 +  
11760 +  /*!
11761 +   * SDA is for Shared Data Arrays such as profiles.
11762 +   */
11763 +  class MEDFileIntField1TSWithoutSDA : public MEDFileField1TSNDTemplateWithoutSDA<int>
11764 +  {
11765 +  public:
11766 +    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA();
11767 +    MEDLOADER_EXPORT static MEDFileIntField1TSWithoutSDA *New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
11768 +    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA *deepCopy() const;
11769 +    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA *shallowCpy() const;
11770 +    MEDLOADER_EXPORT const char *getTypeStr() const;
11771 +    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
11772 +    MEDLOADER_EXPORT DataArrayInt *getUndergroundDataArrayIntExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
11773 +  protected:
11774 +    MEDFileIntField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
11775 +  public:
11776 +    MEDLOADER_EXPORT static const char TYPE_STR[];
11777 +  };
11778 +
11779 +  /*!
11780 +   * SDA is for Shared Data Arrays such as profiles.
11781 +   */
11782 +  class MEDFileFloatField1TSWithoutSDA : public MEDFileField1TSNDTemplateWithoutSDA<float>
11783 +  {
11784 +  public:
11785 +    MEDLOADER_EXPORT MEDFileFloatField1TSWithoutSDA();
11786 +    MEDLOADER_EXPORT static MEDFileFloatField1TSWithoutSDA *New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
11787 +    MEDLOADER_EXPORT MEDFileFloatField1TSWithoutSDA *deepCopy() const;
11788 +    MEDLOADER_EXPORT MEDFileFloatField1TSWithoutSDA *shallowCpy() const;
11789 +    MEDLOADER_EXPORT const char *getTypeStr() const;
11790 +    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
11791 +    MEDLOADER_EXPORT DataArrayFloat *getUndergroundDataArrayFloatExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
11792 +  protected:
11793 +    MEDFileFloatField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
11794 +  public:
11795 +    MEDLOADER_EXPORT static const char TYPE_STR[];
11796 +  };
11797 +
11798 +  /*!
11799 +   * User class.
11800 +   */
11801 +  class MEDFileAnyTypeField1TS : public RefCountObject, public MEDFileWritableStandAlone, public MEDFileFieldGlobsReal
11802 +  {
11803 +  protected:
11804 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS();
11805 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
11806 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
11807 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
11808 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(const MEDFileAnyTypeField1TSWithoutSDA& other, bool shallowCopyOfContent);
11809 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c);
11810 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c, med_idt fid);
11811 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TSWithoutSDA *BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
11812 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TSWithoutSDA *BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
11813 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TSWithoutSDA *BuildContentFrom(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
11814 +    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
11815 +    // direct forwarding to MEDFileAnyTypeField1TSWithoutSDA instance _content
11816 +  public:
11817 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(const std::string& fileName, bool loadAll=true);
11818 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(med_idt fid, bool loadAll=true);
11819 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
11820 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
11821 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true);
11822 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll=true);
11823 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *NewAdv(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities);
11824 +    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *NewAdv(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities);
11825 +    MEDLOADER_EXPORT int getDimension() const;
11826 +    MEDLOADER_EXPORT int getIteration() const;
11827 +    MEDLOADER_EXPORT int getOrder() const;
11828 +    MEDLOADER_EXPORT double getTime(int& iteration, int& order) const;
11829 +    MEDLOADER_EXPORT void setTime(int iteration, int order, double val);
11830 +    MEDLOADER_EXPORT std::string getName() const;
11831 +    MEDLOADER_EXPORT void setName(const std::string& name);
11832 +    MEDLOADER_EXPORT std::string simpleRepr() const;
11833 +    MEDLOADER_EXPORT void simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const;
11834 +    MEDLOADER_EXPORT std::string getDtUnit() const;
11835 +    MEDLOADER_EXPORT void setDtUnit(const std::string& dtUnit);
11836 +    MEDLOADER_EXPORT std::string getMeshName() const;
11837 +    MEDLOADER_EXPORT void setMeshName(const std::string& newMeshName);
11838 +    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
11839 +    MEDLOADER_EXPORT int getMeshIteration() const;
11840 +    MEDLOADER_EXPORT int getMeshOrder() const;
11841 +    MEDLOADER_EXPORT int getNumberOfComponents() const;
11842 +    MEDLOADER_EXPORT bool isDealingTS(int iteration, int order) const;
11843 +    MEDLOADER_EXPORT std::pair<int,int> getDtIt() const;
11844 +    MEDLOADER_EXPORT void fillIteration(std::pair<int,int>& p) const;
11845 +    MEDLOADER_EXPORT void fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const;
11846 +    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& infos);
11847 +    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
11848 +    MEDLOADER_EXPORT std::vector<std::string>& getInfo();
11849 +    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
11850 +    MEDLOADER_EXPORT std::vector<TypeOfField> getTypesOfFieldAvailable() const;
11851 +    MEDLOADER_EXPORT std::vector< std::vector<std::pair<int,int> > > getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
11852 +        std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
11853 +    MEDLOADER_EXPORT MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId);
11854 +    MEDLOADER_EXPORT const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const;
11855 +    MEDLOADER_EXPORT int getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const;
11856 +    MEDLOADER_EXPORT void convertMedBallIntoClassic();
11857 +    MEDLOADER_EXPORT void makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl);
11858 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const = 0;
11859 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TS *shallowCpy() const = 0;
11860 +  public:
11861 +    MEDLOADER_EXPORT void loadArrays();
11862 +    MEDLOADER_EXPORT void loadArraysIfNecessary();
11863 +    MEDLOADER_EXPORT void unloadArrays();
11864 +    MEDLOADER_EXPORT void unloadArraysWithoutDataLoss();
11865 +    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeField1TS > > splitComponents() const;
11866 +    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeField1TS > > splitDiscretizations() const;
11867 +    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeField1TS > > splitMultiDiscrPerGeoTypes() const;
11868 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *deepCopy() const;
11869 +    MEDLOADER_EXPORT int copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr);
11870 +    MEDLOADER_EXPORT int copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr);
11871 +  public:
11872 +    //! underground method see MEDFileField1TSWithoutSDA::setProfileNameOnLeaf
11873 +    MEDLOADER_EXPORT void setProfileNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob=false);
11874 +    //! underground method see MEDFileField1TSWithoutSDA::setLocNameOnLeaf
11875 +    MEDLOADER_EXPORT void setLocNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob=false);
11876 +    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
11877 +    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
11878 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed() const;
11879 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed() const;
11880 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti() const;
11881 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti() const;
11882 +    MEDLOADER_EXPORT void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
11883 +    MEDLOADER_EXPORT void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
11884 +  public:
11885 +    MEDLOADER_EXPORT static int LocateField2(med_idt fid, int fieldIdCFormat, bool checkFieldId, std::string& fieldName, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName);
11886 +    MEDLOADER_EXPORT static int LocateField(med_idt fid, const std::string& fieldName, int& posCFormat, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName);
11887 +  public:
11888 +    MEDLOADER_EXPORT virtual med_field_type getMEDFileFieldType() const = 0;
11889 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA *contentNotNullBase();
11890 +    MEDLOADER_EXPORT const MEDFileAnyTypeField1TSWithoutSDA *contentNotNullBase() const;
11891 +  protected:
11892 +    MCAuto<MEDFileAnyTypeField1TSWithoutSDA> _content;
11893 +  };
11894 +
11895 +  class MEDFileIntField1TS;
11896 +
11897 +  template<class T>
11898 +  class MEDFileTemplateField1TS : public MEDFileAnyTypeField1TS
11899 +  {
11900 +  public:
11901 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New();
11902 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const std::string& fileName, bool loadAll=true);
11903 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(med_idt fid, bool loadAll=true);
11904 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(DataArrayByte *db) { return BuildFromMemoryChunk<typename MLFieldTraits<T>::F1TSType>(db); }
11905 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
11906 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
11907 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true);
11908 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll=true);
11909 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const typename MLFieldTraits<T>::F1TSWSDAType& other, bool shallowCopyOfContent);
11910 +  public:
11911 +    MEDLOADER_EXPORT static typename Traits<T>::ArrayType *ReturnSafelyTypedDataArray(MCAuto<DataArray>& arr);
11912 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl) const;
11913 +    MEDLOADER_EXPORT void setArray(DataArray *arr);
11914 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArray() const;
11915 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
11916 +    MEDLOADER_EXPORT static MCAuto<typename Traits<T>::FieldType> SetDataArrayInField(MEDCouplingFieldDouble *f, MCAuto<DataArray>& arr);
11917 +    MEDLOADER_EXPORT static MCAuto<MEDCouplingFieldDouble> ToFieldTemplateWithTime(const typename Traits<T>::FieldType *f);
11918 +  public:
11919 +    MEDLOADER_EXPORT void copyTimeInfoFrom(const typename Traits<T>::FieldType *mcf);
11920 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *field(const MEDFileMesh *mesh) const;
11921 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const;
11922 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const;
11923 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const;
11924 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const;
11925 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const;
11926 +    MEDLOADER_EXPORT void setFieldNoProfileSBT(const typename Traits<T>::FieldType *field);
11927 +    MEDLOADER_EXPORT void setFieldProfile(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile);
11928 +    MEDLOADER_EXPORT void setFieldProfileFlatly(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile);
11929 +    MEDLOADER_EXPORT typename MLFieldTraits<T>::F1TSType *extractPartImpl(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const;
11930 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const { return this->extractPartImpl(extractDef,mm); }
11931 +  protected:
11932 +    ~MEDFileTemplateField1TS() { }
11933 +    MEDFileTemplateField1TS();
11934 +    MEDFileTemplateField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileAnyTypeField1TS(fid,loadAll,ms) { }
11935 +    MEDFileTemplateField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileAnyTypeField1TS(fid,fieldName,loadAll,ms) { }
11936 +    MEDFileTemplateField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileAnyTypeField1TS(fid,fieldName,iteration,order,loadAll,ms) { }
11937 +    MEDFileTemplateField1TS(const typename MLFieldTraits<T>::F1TSWSDAType& other, bool shallowCopyOfContent):MEDFileAnyTypeField1TS(other,shallowCopyOfContent) { }
11938 +    const typename MLFieldTraits<T>::F1TSWSDAType *contentNotNull() const;
11939 +    typename MLFieldTraits<T>::F1TSWSDAType *contentNotNull();
11940 +    void setFieldProfileGeneral(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, bool smartPflKiller);
11941 +  };
11942 +
11943 +  /*!
11944 +   * User class.
11945 +   */
11946 +  class MEDFileField1TS : public MEDFileTemplateField1TS<double>
11947 +  {
11948 +    friend class MEDFileTemplateField1TS<double>;
11949 +  public:
11950 +    MEDLOADER_EXPORT MEDFileIntField1TS *convertToInt(bool isDeepCpyGlobs=true) const;
11951 +  public:
11952 +    MEDLOADER_EXPORT MEDFileField1TS *shallowCpy() const;
11953 +    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
11954 +                                                                                          std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
11955 +  public:
11956 +  private:
11957 +    med_field_type getMEDFileFieldType() const { return MED_FLOAT64; }
11958 +  private:
11959 +    ~MEDFileField1TS() { }
11960 +    MEDFileField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
11961 +    MEDFileField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms);
11962 +    MEDFileField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms);
11963 +    MEDFileField1TS(const MEDFileField1TSWithoutSDA& other, bool shallowCopyOfContent);
11964 +    MEDFileField1TS() { }
11965 +  };
11966 +
11967 +  template<class T>
11968 +  class MEDFileNDTemplateField1TS : public MEDFileTemplateField1TS<T>
11969 +  {
11970 +  public:
11971 +    MEDLOADER_EXPORT MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const;
11972 +  protected:
11973 +    ~MEDFileNDTemplateField1TS() { }
11974 +    MEDFileNDTemplateField1TS() { }
11975 +    MEDFileNDTemplateField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateField1TS<T>(fid,loadAll,ms) { }
11976 +    MEDFileNDTemplateField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateField1TS<T>(fid,fieldName,loadAll,ms) { }
11977 +    MEDFileNDTemplateField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateField1TS<T>(fid,fieldName,iteration,order,loadAll,ms) { }
11978 +    MEDFileNDTemplateField1TS(const typename MLFieldTraits<T>::F1TSWSDAType& other, bool shallowCopyOfContent):MEDFileTemplateField1TS<T>(other,shallowCopyOfContent) { }
11979 +  };
11980 +
11981 +  class MEDFileIntField1TS : public MEDFileNDTemplateField1TS<int>
11982 +  {
11983 +    friend class MEDFileTemplateField1TS<int>;
11984 +  public:
11985 +    MEDLOADER_EXPORT MEDFileIntField1TS *shallowCpy() const { return new MEDFileIntField1TS(*this); }
11986 +  public:
11987 +    MEDLOADER_EXPORT static MCAuto<MEDCouplingFieldDouble> ConvertFieldIntToFieldDouble(const MEDCouplingFieldInt *f);
11988 +  private:
11989 +    med_field_type getMEDFileFieldType() const { return MED_INT32; }
11990 +  private:
11991 +    ~MEDFileIntField1TS() { }
11992 +    MEDFileIntField1TS() { }
11993 +    MEDFileIntField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<int>(fid,loadAll,ms) { }
11994 +    MEDFileIntField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<int>(fid,fieldName,loadAll,ms) { }
11995 +    MEDFileIntField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<int>(fid,fieldName,iteration,order,loadAll,ms) { }
11996 +    /*!
11997 +     * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
11998 +     * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
11999 +     *
12000 +     * \warning this is a shallow copy constructor
12001 +     */
12002 +    MEDFileIntField1TS(const MEDFileIntField1TSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateField1TS<int>(other,shallowCopyOfContent) { }
12003 +  };
12004 +
12005 +  class MEDFileFloatField1TS : public MEDFileNDTemplateField1TS<float>
12006 +  {
12007 +    friend class MEDFileTemplateField1TS<float>;
12008 +  private:
12009 +    med_field_type getMEDFileFieldType() const { return MED_FLOAT32; }
12010 +    MEDLOADER_EXPORT MEDFileFloatField1TS *shallowCpy() const { return new MEDFileFloatField1TS(*this); }
12011 +  private:
12012 +    ~MEDFileFloatField1TS() { }
12013 +    MEDFileFloatField1TS() { }
12014 +    MEDFileFloatField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<float>(fid,loadAll,ms) { }
12015 +    MEDFileFloatField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<float>(fid,fieldName,loadAll,ms) { }
12016 +    MEDFileFloatField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<float>(fid,fieldName,iteration,order,loadAll,ms) { }
12017 +    /*!
12018 +     * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
12019 +     * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
12020 +     *
12021 +     * \warning this is a shallow copy constructor
12022 +     */
12023 +    MEDFileFloatField1TS(const MEDFileFloatField1TSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateField1TS<float>(other,shallowCopyOfContent) { }
12024 +  };
12025 +}
12026 +
12027 +#endif
12028 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileField.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileField.cxx
12029 --- MEDCOUPLING_old/src/MEDLoader/MEDFileField.cxx      2018-04-19 17:04:36.741222802 +0200
12030 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileField.cxx      2018-04-19 17:25:17.826799116 +0200
12031 @@ -18,7 +18,7 @@
12032  //
12033  // Author : Anthony Geay (EDF R&D)
12034  
12035 -#include "MEDFileField.txx"
12036 +#include "MEDFileField.hxx"
12037  #include "MEDFileMesh.hxx"
12038  #include "MEDLoaderBase.hxx"
12039  #include "MEDLoaderTraits.hxx"
12040 @@ -35,8923 +35,12 @@
12041  #include <algorithm>
12042  #include <iterator>
12043  
12044 -extern med_geometry_type typmai[MED_N_CELL_FIXED_GEO];
12045  extern INTERP_KERNEL::NormalizedCellType typmai2[MED_N_CELL_FIXED_GEO];
12046  extern med_geometry_type typmainoeud[1];
12047  extern med_geometry_type typmai3[34];
12048  
12049  using namespace MEDCoupling;
12050  
12051 -template class MEDCoupling::MEDFileField1TSTemplateWithoutSDA<int>;
12052 -template class MEDCoupling::MEDFileField1TSTemplateWithoutSDA<float>;
12053 -template class MEDCoupling::MEDFileField1TSTemplateWithoutSDA<double>;
12054 -template class MEDCoupling::MEDFileField1TSNDTemplateWithoutSDA<int>;
12055 -template class MEDCoupling::MEDFileField1TSNDTemplateWithoutSDA<float>;
12056 -template class MEDCoupling::MEDFileNDTemplateFieldMultiTSWithoutSDA<int>;
12057 -template class MEDCoupling::MEDFileNDTemplateFieldMultiTSWithoutSDA<float>;
12058 -template class MEDCoupling::MEDFileTemplateField1TS<int>;
12059 -template class MEDCoupling::MEDFileTemplateField1TS<float>;
12060 -template class MEDCoupling::MEDFileTemplateField1TS<double>;
12061 -template class MEDCoupling::MEDFileNDTemplateField1TS<int>;
12062 -template class MEDCoupling::MEDFileNDTemplateField1TS<float>;
12063 -template class MEDCoupling::MEDFileTemplateFieldMultiTS<int>;
12064 -template class MEDCoupling::MEDFileTemplateFieldMultiTS<float>;
12065 -template class MEDCoupling::MEDFileTemplateFieldMultiTS<double>;
12066 -template class MEDCoupling::MEDFileNDTemplateFieldMultiTS<int>;
12067 -template class MEDCoupling::MEDFileNDTemplateFieldMultiTS<float>;
12068 -
12069 -const char MEDFileField1TSWithoutSDA::TYPE_STR[]="FLOAT64";
12070 -const char MEDFileIntField1TSWithoutSDA::TYPE_STR[]="INT32";
12071 -const char MEDFileFloatField1TSWithoutSDA::TYPE_STR[]="FLOAT32";
12072 -
12073 -MEDFileGTKeeper::~MEDFileGTKeeper()
12074 -{
12075 -}
12076 -
12077 -MEDFileGTKeeper *MEDFileGTKeeperSta::deepCopy() const
12078 -{
12079 -  return new MEDFileGTKeeperSta(_geo_type);
12080 -}
12081 -
12082 -INTERP_KERNEL::NormalizedCellType MEDFileGTKeeperSta::getGeoType() const
12083 -{
12084 -  return _geo_type;
12085 -}
12086 -
12087 -std::string MEDFileGTKeeperSta::getRepr() const
12088 -{
12089 -  return INTERP_KERNEL::CellModel::GetCellModel(_geo_type).getRepr();
12090 -}
12091 -
12092 -bool MEDFileGTKeeperSta::isEqual(const MEDFileGTKeeper *other) const
12093 -{
12094 -  const MEDFileGTKeeperSta *otherC(dynamic_cast<const MEDFileGTKeeperSta *>(other));
12095 -  if(!otherC)
12096 -    return false;
12097 -  return _geo_type==otherC->_geo_type;
12098 -}
12099 -
12100 -MEDFileGTKeeperDyn::MEDFileGTKeeperDyn(const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileStructureElement *se):_mesh(mesh),_section(section),_se(se)
12101 -{
12102 -  if(mesh)
12103 -    mesh->incrRef();
12104 -  if(section)
12105 -    section->incrRef();
12106 -  if(se)
12107 -    se->incrRef();
12108 -  if(_mesh.isNull() || _section.isNull() || _se.isNull())
12109 -    throw INTERP_KERNEL::Exception("MEDFileGTKeeperDyn constructor : null pointer not allowed !");
12110 -}
12111 -
12112 -MEDFileGTKeeper *MEDFileGTKeeperDyn::deepCopy() const
12113 -{
12114 -  return new MEDFileGTKeeperDyn(_mesh,_section,_se);
12115 -}
12116 -
12117 -INTERP_KERNEL::NormalizedCellType MEDFileGTKeeperDyn::getGeoType() const
12118 -{
12119 -  throw INTERP_KERNEL::Exception("MEDFileGTKeeperDyn::getGeoType : not valid !");
12120 -}
12121 -
12122 -std::string MEDFileGTKeeperDyn::getRepr() const
12123 -{
12124 -  std::ostringstream oss;
12125 -  oss << _se->getDynGT();
12126 -  return oss.str();
12127 -}
12128 -
12129 -bool MEDFileGTKeeperDyn::isEqual(const MEDFileGTKeeper *other) const
12130 -{
12131 -  const MEDFileGTKeeperDyn *otherC(dynamic_cast<const MEDFileGTKeeperDyn *>(other));
12132 -  if(!otherC)
12133 -    return false;
12134 -  return this==otherC;
12135 -}
12136 -
12137 -MEDFileFieldLoc *MEDFileFieldLoc::New(med_idt fid, const std::string& locName)
12138 -{
12139 -  return new MEDFileFieldLoc(fid,locName);
12140 -}
12141 -
12142 -MEDFileFieldLoc *MEDFileFieldLoc::New(med_idt fid, int id, const MEDFileEntities *entities)
12143 -{
12144 -  return new MEDFileFieldLoc(fid,id,entities);
12145 -}
12146 -
12147 -MEDFileFieldLoc *MEDFileFieldLoc::New(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w)
12148 -{
12149 -  return new MEDFileFieldLoc(locName,geoType,refCoo,gsCoo,w);
12150 -}
12151 -
12152 -MEDFileFieldLoc::MEDFileFieldLoc(med_idt fid, const std::string& locName):_name(locName)
12153 -{
12154 -  med_geometry_type geotype;
12155 -  med_geometry_type sectiongeotype;
12156 -  int nsectionmeshcell;
12157 -  INTERP_KERNEL::AutoPtr<char> geointerpname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12158 -  INTERP_KERNEL::AutoPtr<char> sectionmeshname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12159 -  MEDlocalizationInfoByName(fid,locName.c_str(),&geotype,&_dim,&_nb_gauss_pt,geointerpname,sectionmeshname,&nsectionmeshcell,&sectiongeotype);
12160 -  _gt=new MEDFileGTKeeperSta((INTERP_KERNEL::NormalizedCellType)(std::distance(typmai3,std::find(typmai3,typmai3+34,geotype))));
12161 -  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
12162 -  _nb_node_per_cell=cm.getNumberOfNodes();
12163 -  _ref_coo.resize(_dim*_nb_node_per_cell);
12164 -  _gs_coo.resize(_dim*_nb_gauss_pt);
12165 -  _w.resize(_nb_gauss_pt);
12166 -  MEDlocalizationRd(fid,locName.c_str(),MED_FULL_INTERLACE,&_ref_coo[0],&_gs_coo[0],&_w[0]);
12167 -}
12168 -
12169 -MEDFileFieldLoc::MEDFileFieldLoc(med_idt fid, int id, const MEDFileEntities *entities)
12170 -{
12171 -  med_geometry_type geotype;
12172 -  med_geometry_type sectiongeotype;
12173 -  int nsectionmeshcell;
12174 -  INTERP_KERNEL::AutoPtr<char> locName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12175 -  INTERP_KERNEL::AutoPtr<char> geointerpname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12176 -  INTERP_KERNEL::AutoPtr<char> sectionmeshname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12177 -  MEDlocalizationInfo(fid,id+1,locName,&geotype,&_dim,&_nb_gauss_pt,geointerpname,sectionmeshname,&nsectionmeshcell,&sectiongeotype);
12178 -  _name=locName;
12179 -  std::string sectionName(MEDLoaderBase::buildStringFromFortran(sectionmeshname,MED_NAME_SIZE));
12180 -  if(sectionName.empty())
12181 -    {
12182 -      _gt=new MEDFileGTKeeperSta((INTERP_KERNEL::NormalizedCellType)(std::distance(typmai3,std::find(typmai3,typmai3+34,geotype))));
12183 -      const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
12184 -      _nb_node_per_cell=cm.getNumberOfNodes();
12185 -    }
12186 -  else
12187 -    {
12188 -      const MEDFileAllStaticEntitiesPlusDyn *entities2(dynamic_cast<const MEDFileAllStaticEntitiesPlusDyn *>(entities));
12189 -      if(!entities2)
12190 -        {
12191 -          std::ostringstream oss; oss << "MEDFileFieldLoc cstr : for loc \"" << _name << "\" presence of non static type ! Expect entities !";
12192 -          throw INTERP_KERNEL::Exception(oss.str());
12193 -        }
12194 -      const MEDFileStructureElement *se(entities2->getWithGT(geotype));
12195 -      const MEDFileUMesh *um(entities2->getSupMeshWithName(se->getMeshName()));
12196 -      const MEDFileUMesh *section(entities2->getSupMeshWithName(sectionName));
12197 -      _gt=new MEDFileGTKeeperDyn(um,section,se);
12198 -      {
12199 -        int dummy;
12200 -        MEDFILESAFECALLERWR0(MEDmeshGeotypeParameter,(fid,geotype,&dummy,&_nb_node_per_cell));
12201 -      }
12202 -    }
12203 -  _ref_coo.resize(_dim*_nb_node_per_cell);
12204 -  _gs_coo.resize(_dim*_nb_gauss_pt);
12205 -  _w.resize(_nb_gauss_pt);
12206 -  MEDlocalizationRd(fid,locName,MED_FULL_INTERLACE,&_ref_coo[0],&_gs_coo[0],&_w[0]);
12207 -}
12208 -
12209 -MEDFileFieldLoc::MEDFileFieldLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType,
12210 -                                 const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w):_name(locName),_gt(new MEDFileGTKeeperSta(geoType)),_ref_coo(refCoo),_gs_coo(gsCoo),_w(w)
12211 -{
12212 -  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
12213 -  _dim=cm.getDimension();
12214 -  _nb_node_per_cell=cm.getNumberOfNodes();
12215 -  _nb_gauss_pt=_w.size();
12216 -}
12217 -
12218 -
12219 -MEDFileFieldLoc::MEDFileFieldLoc(const MEDFileFieldLoc& other):_dim(other._dim),_nb_gauss_pt(other._nb_gauss_pt),_gt(other._gt->deepCopy()),_nb_node_per_cell(other._nb_node_per_cell),_name(other._name),_ref_coo(other._ref_coo),_gs_coo(other._gs_coo),_w(other._w)
12220 -{
12221 -}
12222 -
12223 -MEDFileFieldLoc *MEDFileFieldLoc::deepCopy() const
12224 -{
12225 -  return new MEDFileFieldLoc(*this);
12226 -}
12227 -
12228 -bool MEDFileFieldLoc::isOnStructureElement() const
12229 -{
12230 -  const MEDFileGTKeeper *gt(_gt);
12231 -  if(!gt)
12232 -    throw INTERP_KERNEL::Exception("MEDFileFieldLoc::isOnStructureElement : null pointer !");
12233 -  const MEDFileGTKeeperDyn *gt2(dynamic_cast<const MEDFileGTKeeperDyn *>(gt));
12234 -  return gt2!=NULL;
12235 -}
12236 -
12237 -std::size_t MEDFileFieldLoc::getHeapMemorySizeWithoutChildren() const
12238 -{
12239 -  return (_ref_coo.capacity()+_gs_coo.capacity()+_w.capacity())*sizeof(double)+_name.capacity();
12240 -}
12241 -
12242 -std::vector<const BigMemoryObject *> MEDFileFieldLoc::getDirectChildrenWithNull() const
12243 -{
12244 -  return std::vector<const BigMemoryObject *>();
12245 -}
12246 -
12247 -void MEDFileFieldLoc::simpleRepr(std::ostream& oss) const
12248 -{
12249 -  static const char OFF7[]="\n    ";
12250 -  oss << "\"" << _name << "\"" << OFF7;
12251 -  oss << "GeoType=" << _gt->getRepr() << OFF7;
12252 -  oss << "Dimension=" << _dim << OFF7;
12253 -  oss << "Number of Gauss points=" << _nb_gauss_pt << OFF7;
12254 -  oss << "Number of nodes per cell=" << _nb_node_per_cell << OFF7;
12255 -  oss << "RefCoords="; std::copy(_ref_coo.begin(),_ref_coo.end(),std::ostream_iterator<double>(oss," ")); oss << OFF7;
12256 -  oss << "Weights="; std::copy(_w.begin(),_w.end(),std::ostream_iterator<double>(oss," ")); oss << OFF7;
12257 -  oss << "GaussPtsCoords="; std::copy(_gs_coo.begin(),_gs_coo.end(),std::ostream_iterator<double>(oss," ")); oss << std::endl;
12258 -}
12259 -
12260 -void MEDFileFieldLoc::setName(const std::string& name)
12261 -{
12262 -  _name=name;
12263 -}
12264 -
12265 -bool MEDFileFieldLoc::isEqual(const MEDFileFieldLoc& other, double eps) const
12266 -{
12267 -  if(_name!=other._name)
12268 -    return false;
12269 -  if(_dim!=other._dim)
12270 -    return false;
12271 -  if(_nb_gauss_pt!=other._nb_gauss_pt)
12272 -    return false;
12273 -  if(_nb_node_per_cell!=other._nb_node_per_cell)
12274 -    return false;
12275 -  if(!_gt->isEqual(other._gt))
12276 -    return false;
12277 -  if(!MEDCouplingGaussLocalization::AreAlmostEqual(_ref_coo,other._ref_coo,eps))
12278 -    return false;
12279 -  if(!MEDCouplingGaussLocalization::AreAlmostEqual(_gs_coo,other._gs_coo,eps))
12280 -    return false;
12281 -  if(!MEDCouplingGaussLocalization::AreAlmostEqual(_w,other._w,eps))
12282 -    return false;
12283 -
12284 -  return true;
12285 -}
12286 -
12287 -void MEDFileFieldLoc::writeLL(med_idt fid) const
12288 -{
12289 -  MEDlocalizationWr(fid,_name.c_str(),typmai3[(int)getGeoType()],_dim,&_ref_coo[0],MED_FULL_INTERLACE,_nb_gauss_pt,&_gs_coo[0],&_w[0],MED_NO_INTERPOLATION,MED_NO_MESH_SUPPORT);
12290 -}
12291 -
12292 -std::string MEDFileFieldLoc::repr() const
12293 -{
12294 -  std::ostringstream oss; oss.precision(15);
12295 -  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
12296 -  oss << "Localization \"" << _name << "\" :\n" << "  - Geometric Type : " << cm.getRepr();
12297 -  oss << "\n  - Dimension : " << _dim << "\n  - Number of gauss points : ";
12298 -  oss << _nb_gauss_pt << "\n  - Number of nodes in cell : " << _nb_node_per_cell;
12299 -  oss << "\n  - Ref coords are : ";
12300 -  int sz=_ref_coo.size();
12301 -  if(sz%_dim==0)
12302 -    {
12303 -      int nbOfTuples=sz/_dim;
12304 -      for(int i=0;i<nbOfTuples;i++)
12305 -        {
12306 -          oss << "(";
12307 -          for(int j=0;j<_dim;j++)
12308 -            { oss << _ref_coo[i*_dim+j]; if(j!=_dim-1) oss << ", "; }
12309 -          oss << ") ";
12310 -        }
12311 -    }
12312 -  else
12313 -    std::copy(_ref_coo.begin(),_ref_coo.end(),std::ostream_iterator<double>(oss," "));
12314 -  oss << "\n  - Gauss coords in reference element : ";
12315 -  sz=_gs_coo.size();
12316 -  if(sz%_dim==0)
12317 -    {
12318 -      int nbOfTuples=sz/_dim;
12319 -      for(int i=0;i<nbOfTuples;i++)
12320 -        {
12321 -          oss << "(";
12322 -          for(int j=0;j<_dim;j++)
12323 -            { oss << _gs_coo[i*_dim+j]; if(j!=_dim-1) oss << ", "; }
12324 -          oss << ") ";
12325 -        }
12326 -    }
12327 -  else
12328 -    std::copy(_gs_coo.begin(),_gs_coo.end(),std::ostream_iterator<double>(oss," "));
12329 -  oss << "\n  - Weights of Gauss coords are : "; std::copy(_w.begin(),_w.end(),std::ostream_iterator<double>(oss," "));
12330 -  return oss.str();
12331 -}
12332 -
12333 -void MEDFileFieldPerMeshPerTypePerDisc::assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
12334 -{
12335 -  _type=field->getTypeOfField();
12336 -  _start=start;
12337 -  switch(_type)
12338 -  {
12339 -    case ON_CELLS:
12340 -      {
12341 -        getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,offset,offset+nbOfCells,1);
12342 -        _end=_start+nbOfCells;
12343 -        _nval=nbOfCells;
12344 -        break;
12345 -      }
12346 -    case ON_GAUSS_NE:
12347 -      {
12348 -        MCAuto<DataArrayInt> arr=field->getDiscretization()->getOffsetArr(field->getMesh());
12349 -        const int *arrPtr=arr->getConstPointer();
12350 -        getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,arrPtr[offset],arrPtr[offset+nbOfCells],1);
12351 -        _end=_start+(arrPtr[offset+nbOfCells]-arrPtr[offset]);
12352 -        _nval=nbOfCells;
12353 -        break;
12354 -      }
12355 -    case ON_GAUSS_PT:
12356 -      {
12357 -        const MEDCouplingFieldDiscretization *disc(field->getDiscretization());
12358 -        const MEDCouplingGaussLocalization& gsLoc(field->getGaussLocalization(_loc_id));
12359 -        const MEDCouplingFieldDiscretizationGauss *disc2(dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(disc));
12360 -        if(!disc2)
12361 -          throw INTERP_KERNEL::Exception("assignFieldNoProfile : invalid call to this method ! Internal Error !");
12362 -        const DataArrayInt *dai(disc2->getArrayOfDiscIds());
12363 -        MCAuto<DataArrayInt> dai2(disc2->getOffsetArr(field->getMesh()));
12364 -        const int *dai2Ptr(dai2->getConstPointer());
12365 -        int nbi(gsLoc.getWeights().size());
12366 -        MCAuto<DataArrayInt> da2(dai->selectByTupleIdSafeSlice(offset,offset+nbOfCells,1));
12367 -        MCAuto<DataArrayInt> da3(da2->findIdsEqual(_loc_id));
12368 -        const int *da3Ptr(da3->getConstPointer());
12369 -        if(da3->getNumberOfTuples()!=nbOfCells)
12370 -          {//profile : for gauss even in NoProfile !!!
12371 -            std::ostringstream oss; oss << "Pfl_" << nasc.getName() << "_" << INTERP_KERNEL::CellModel::GetCellModel(getGeoType()).getRepr() << "_" << _loc_id;
12372 -            _profile=oss.str();
12373 -            da3->setName(_profile.c_str());
12374 -            glob.appendProfile(da3);
12375 -          }
12376 -        MCAuto<DataArrayInt> da4(DataArrayInt::New());
12377 -        _nval=da3->getNbOfElems();
12378 -        da4->alloc(_nval*nbi,1);
12379 -        int *da4Ptr(da4->getPointer());
12380 -        for(int i=0;i<_nval;i++)
12381 -          {
12382 -            int ref=dai2Ptr[offset+da3Ptr[i]];
12383 -            for(int j=0;j<nbi;j++)
12384 -              *da4Ptr++=ref+j;
12385 -          }
12386 -        std::ostringstream oss2; oss2 << "Loc_" << nasc.getName() << "_" << INTERP_KERNEL::CellModel::GetCellModel(getGeoType()).getRepr() << "_" << _loc_id;
12387 -        _localization=oss2.str();
12388 -        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,da4);
12389 -        _end=_start+_nval*nbi;
12390 -        glob.appendLoc(_localization.c_str(),getGeoType(),gsLoc.getRefCoords(),gsLoc.getGaussCoords(),gsLoc.getWeights());
12391 -        break;
12392 -      }
12393 -    default:
12394 -      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::assignFieldNoProfile : not implemented yet for such discretization type of field !");
12395 -  }
12396 -  start=_end;
12397 -}
12398 -
12399 -/*!
12400 - * Leaf method of field with profile assignement. This method is the most general one. No optimization is done here.
12401 - * \param [in] pflName input containing name of profile if any. 0 if no profile (except for GAUSS_PT where a no profile can hide a profile when splitted by loc_id).
12402 - * \param [in] multiTypePfl is the end user profile specified in high level API
12403 - * \param [in] idsInPfl is the selection into the \a multiTypePfl whole profile that corresponds to the current geometric type.
12404 - * \param [in] locIds is the profile needed to be created for MED file format. It can be null if all cells of current geometric type are fetched in \a multiTypePfl.
12405 - *             \b WARNING if not null the MED file profile can be subdivided again in case of Gauss points.
12406 - * \param [in] mesh is the mesh coming from the MEDFileMesh instance in correspondance with the MEDFileField. The mesh inside the \a field is simply ignored.
12407 - */
12408 -void MEDFileFieldPerMeshPerTypePerDisc::assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arrr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
12409 -{
12410 -  _profile.clear();
12411 -  _type=field->getTypeOfField();
12412 -  std::string pflName(multiTypePfl->getName());
12413 -  std::ostringstream oss; oss << pflName;
12414 -  if(_type!=ON_NODES)
12415 -    {
12416 -      if(!isPflAlone)
12417 -        { const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType()); oss << "_" <<  cm.getRepr(); }
12418 -    }
12419 -  else
12420 -    { oss << "_NODE"; }
12421 -  if(locIds)
12422 -    {
12423 -      if(pflName.empty())
12424 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::assignFieldProfile : existing profile with empty name !");
12425 -      if(_type!=ON_GAUSS_PT)
12426 -        {
12427 -          locIds->setName(oss.str());
12428 -          glob.appendProfile(locIds);
12429 -          _profile=oss.str();
12430 -        }
12431 -    }
12432 -  _start=start;
12433 -  switch(_type)
12434 -  {
12435 -    case ON_NODES:
12436 -      {
12437 -        _nval=idsInPfl->getNumberOfTuples();
12438 -        getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,0,arrr->getNumberOfTuples(),1);
12439 -        _end=_start+_nval;
12440 -        break;
12441 -      }
12442 -    case ON_CELLS:
12443 -      {
12444 -        _nval=idsInPfl->getNumberOfTuples();
12445 -        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,idsInPfl);
12446 -        _end=_start+_nval;
12447 -        break;
12448 -      }
12449 -    case ON_GAUSS_NE:
12450 -      {
12451 -        MCAuto<DataArrayInt> arr=field->getDiscretization()->getOffsetArr(mesh);
12452 -        MCAuto<DataArrayInt> arr2=arr->deltaShiftIndex();
12453 -        MCAuto<DataArrayInt> arr3=arr2->selectByTupleId(multiTypePfl->begin(),multiTypePfl->end());
12454 -        arr3->computeOffsetsFull();
12455 -        MCAuto<DataArrayInt> tmp=idsInPfl->buildExplicitArrByRanges(arr3);
12456 -        int trueNval=tmp->getNumberOfTuples();
12457 -        _nval=idsInPfl->getNumberOfTuples();
12458 -        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,tmp);
12459 -        _end=_start+trueNval;
12460 -        break;
12461 -      }
12462 -    case ON_GAUSS_PT:
12463 -      {
12464 -        const MEDCouplingFieldDiscretizationGauss *disc2=dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(field->getDiscretization());
12465 -        if(!disc2)
12466 -          throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : invalid call to this method ! Internal Error !");
12467 -        const DataArrayInt *da1=disc2->getArrayOfDiscIds();
12468 -        const MEDCouplingGaussLocalization& gsLoc=field->getGaussLocalization(_loc_id);
12469 -        MCAuto<DataArrayInt> da2=da1->selectByTupleId(idsInPfl->begin(),idsInPfl->end());
12470 -        MCAuto<DataArrayInt> da3=da2->findIdsEqual(_loc_id);
12471 -        MCAuto<DataArrayInt> da4=idsInPfl->selectByTupleId(da3->begin(),da3->end());
12472 -        //
12473 -        MCAuto<MEDCouplingMesh> mesh2=mesh->buildPart(multiTypePfl->begin(),multiTypePfl->end());
12474 -        MCAuto<DataArrayInt> arr=disc2->getOffsetArr(mesh2);
12475 -        //
12476 -        MCAuto<DataArrayInt> tmp=DataArrayInt::New();
12477 -        int trueNval=0;
12478 -        for(const int *pt=da4->begin();pt!=da4->end();pt++)
12479 -          trueNval+=arr->getIJ(*pt+1,0)-arr->getIJ(*pt,0);
12480 -        tmp->alloc(trueNval,1);
12481 -        int *tmpPtr=tmp->getPointer();
12482 -        for(const int *pt=da4->begin();pt!=da4->end();pt++)
12483 -          for(int j=arr->getIJ(*pt,0);j<arr->getIJ(*pt+1,0);j++)
12484 -            *tmpPtr++=j;
12485 -        //
12486 -        _nval=da4->getNumberOfTuples();
12487 -        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,tmp);
12488 -        _end=_start+trueNval;
12489 -        oss << "_loc_" << _loc_id;
12490 -        if(locIds)
12491 -          {
12492 -            MCAuto<DataArrayInt> da5=locIds->selectByTupleId(da3->begin(),da3->end());
12493 -            da5->setName(oss.str());
12494 -            glob.appendProfile(da5);
12495 -            _profile=oss.str();
12496 -          }
12497 -        else
12498 -          {
12499 -            if(!da3->isIota(nbOfEltsInWholeMesh))
12500 -              {
12501 -                da3->setName(oss.str());
12502 -                glob.appendProfile(da3);
12503 -                _profile=oss.str();
12504 -              }
12505 -          }
12506 -        std::ostringstream oss2; oss2 << "Loc_" << nasc.getName() << "_" << INTERP_KERNEL::CellModel::GetCellModel(getGeoType()).getRepr() << "_" << _loc_id;
12507 -        _localization=oss2.str();
12508 -        glob.appendLoc(_localization.c_str(),getGeoType(),gsLoc.getRefCoords(),gsLoc.getGaussCoords(),gsLoc.getWeights());
12509 -        break;
12510 -      }
12511 -    default:
12512 -      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::assignFieldProfile : not implemented yet for such discretization type of field !");
12513 -  }
12514 -  start=_end;
12515 -}
12516 -
12517 -void MEDFileFieldPerMeshPerTypePerDisc::assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob)
12518 -{
12519 -  _start=start;
12520 -  _nval=arrr->getNumberOfTuples();
12521 -  getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,0,_nval,1);
12522 -  _end=_start+_nval;
12523 -  start=_end;
12524 -}
12525 -
12526 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const PartDefinition *pd)
12527 -{
12528 -  return new MEDFileFieldPerMeshPerTypePerDisc(fath,type,profileIt,pd);
12529 -}
12530 -
12531 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::New(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int locId)
12532 -{
12533 -  return new MEDFileFieldPerMeshPerTypePerDisc(fath,type,locId,std::string());
12534 -}
12535 -
12536 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::New(const MEDFileFieldPerMeshPerTypePerDisc& other)
12537 -{
12538 -  return new MEDFileFieldPerMeshPerTypePerDisc(other);
12539 -}
12540 -
12541 -std::size_t MEDFileFieldPerMeshPerTypePerDisc::getHeapMemorySizeWithoutChildren() const
12542 -{
12543 -  return _profile.capacity()+_localization.capacity()+sizeof(MEDFileFieldPerMeshPerTypePerDisc);
12544 -}
12545 -
12546 -std::vector<const BigMemoryObject *> MEDFileFieldPerMeshPerTypePerDisc::getDirectChildrenWithNull() const
12547 -{
12548 -  std::vector<const BigMemoryObject *> ret(1);
12549 -  ret[0]=(const PartDefinition*)_pd;
12550 -  return ret;
12551 -}
12552 -
12553 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::deepCopy(MEDFileFieldPerMeshPerTypeCommon *father) const
12554 -{
12555 -  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> ret(new MEDFileFieldPerMeshPerTypePerDisc(*this));
12556 -  ret->_father=father;
12557 -  return ret.retn();
12558 -}
12559 -
12560 -MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField atype, int profileIt, const PartDefinition *pd)
12561 -try:_type(atype),_father(fath),_profile_it(profileIt),_pd(const_cast<PartDefinition *>(pd))
12562 -{
12563 -  if(pd)
12564 -    pd->incrRef();
12565 -}
12566 -catch(INTERP_KERNEL::Exception& e)
12567 -{
12568 -    throw e;
12569 -}
12570 -
12571 -MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int locId, const std::string& dummy):_type(type),_father(fath),_loc_id(locId)
12572 -{
12573 -}
12574 -
12575 -MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc(const MEDFileFieldPerMeshPerTypePerDisc& other):RefCountObject(other),_type(other._type),_father(0),_start(other._start),_end(other._end),_nval(other._nval),_profile(other._profile),_localization(other._localization),_loc_id(other._loc_id),_profile_it(other._profile_it),_pd(other._pd),_tmp_work1(other._tmp_work1)
12576 -{
12577 -}
12578 -
12579 -MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc():_type(ON_CELLS),_father(0),_start(-std::numeric_limits<int>::max()),_end(-std::numeric_limits<int>::max()),
12580 -    _nval(-std::numeric_limits<int>::max()),_loc_id(-std::numeric_limits<int>::max())
12581 -{
12582 -}
12583 -
12584 -void MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile(med_idt fid, const std::string& fieldName, int nbOfCompo, int iteration, int order, med_entity_type menti, med_geometry_type mgeoti, unsigned char *startFeedingPtr)
12585 -{
12586 -  const PartDefinition *pd(_pd);
12587 -  if(!pd)
12588 -    {
12589 -      INTERP_KERNEL::AutoPtr<char> locname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12590 -      int nbi,tmp1;
12591 -      med_int nbValsInFile(MEDfieldnValueWithProfileByName(fid,fieldName.c_str(),iteration,order,menti,mgeoti,_profile.c_str(),MED_COMPACT_PFLMODE,&tmp1,locname,&nbi));
12592 -      if(_end-_start!=nbValsInFile*nbi)
12593 -        {
12594 -          std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile : The number of tuples to read is " << nbValsInFile << "*" << nbi <<  " (nb integration points) ! But in data structure it values " << _end-_start << " is expected !";
12595 -          throw INTERP_KERNEL::Exception(oss.str());
12596 -        }
12597 -      MEDFILESAFECALLERRD0(MEDfieldValueWithProfileRd,(fid,fieldName.c_str(),iteration,order,menti,mgeoti,MED_COMPACT_PFLMODE,_profile.c_str(),MED_FULL_INTERLACE,MED_ALL_CONSTITUENT,startFeedingPtr));
12598 -    }
12599 -  else
12600 -    {
12601 -      if(!_profile.empty())
12602 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile : not implemented !");
12603 -      INTERP_KERNEL::AutoPtr<char> pflname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)),locname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12604 -      int profilesize,nbi;
12605 -      int overallNval(MEDfieldnValueWithProfile(fid,fieldName.c_str(),iteration,order,menti,mgeoti,_profile_it+1,MED_COMPACT_PFLMODE,pflname,&profilesize,locname,&nbi));
12606 -      const SlicePartDefinition *spd(dynamic_cast<const SlicePartDefinition *>(pd));
12607 -      if(spd)
12608 -        {
12609 -          int start,stop,step;
12610 -          spd->getSlice(start,stop,step);
12611 -          int nbOfEltsToLoad(DataArray::GetNumberOfItemGivenBES(start,stop,step,"MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile"));
12612 -          med_filter filter=MED_FILTER_INIT;
12613 -          MEDfilterBlockOfEntityCr(fid,/*nentity*/overallNval,/*nvaluesperentity*/nbi,/*nconstituentpervalue*/nbOfCompo,
12614 -                                   MED_ALL_CONSTITUENT,MED_FULL_INTERLACE,MED_COMPACT_STMODE,MED_NO_PROFILE,
12615 -                                   /*start*/start+1,/*stride*/step,/*count*/1,/*blocksize*/nbOfEltsToLoad,
12616 -                                   /*lastblocksize=useless because count=1*/0,&filter);
12617 -          MEDFILESAFECALLERRD0(MEDfieldValueAdvancedRd,(fid,fieldName.c_str(),iteration,order,menti,mgeoti,&filter,startFeedingPtr));
12618 -          MEDfilterClose(&filter);
12619 -          return ;
12620 -        }
12621 -      const DataArrayPartDefinition *dpd(dynamic_cast<const DataArrayPartDefinition *>(pd));
12622 -      if(dpd)
12623 -        {
12624 -          dpd->checkConsistencyLight();
12625 -          MCAuto<DataArrayInt> myIds(dpd->toDAI());
12626 -          int a(myIds->getMinValueInArray()),b(myIds->getMaxValueInArray());
12627 -          myIds=myIds->deepCopy();// WARNING deep copy here because _pd is modified by applyLin !!!
12628 -          myIds->applyLin(1,-a);
12629 -          int nbOfEltsToLoad(b-a+1);
12630 -          med_filter filter=MED_FILTER_INIT;
12631 -          {//TODO : manage int32 !
12632 -            MCAuto<DataArrayDouble> tmp(DataArrayDouble::New());
12633 -            tmp->alloc(nbOfEltsToLoad,nbOfCompo);
12634 -            MEDfilterBlockOfEntityCr(fid,/*nentity*/overallNval,/*nvaluesperentity*/nbi,/*nconstituentpervalue*/nbOfCompo,
12635 -                                     MED_ALL_CONSTITUENT,MED_FULL_INTERLACE,MED_COMPACT_STMODE,MED_NO_PROFILE,
12636 -                                     /*start*/a+1,/*stride*/1,/*count*/1,/*blocksize*/nbOfEltsToLoad,
12637 -                                     /*lastblocksize=useless because count=1*/0,&filter);
12638 -            MEDFILESAFECALLERRD0(MEDfieldValueAdvancedRd,(fid,fieldName.c_str(),iteration,order,menti,mgeoti,&filter,reinterpret_cast<unsigned char *>(tmp->getPointer())));
12639 -            MCAuto<DataArrayDouble> feeder(DataArrayDouble::New());
12640 -            feeder->useExternalArrayWithRWAccess(reinterpret_cast<double *>(startFeedingPtr),_nval,nbOfCompo);
12641 -            feeder->setContigPartOfSelectedValues(0,tmp,myIds);
12642 -          }
12643 -          MEDfilterClose(&filter);
12644 -        }
12645 -      else
12646 -        throw INTERP_KERNEL::Exception("Not implemented yet for not slices!");
12647 -    }
12648 -}
12649 -
12650 -const MEDFileFieldPerMeshPerTypeCommon *MEDFileFieldPerMeshPerTypePerDisc::getFather() const
12651 -{
12652 -  return _father;
12653 -}
12654 -
12655 -void MEDFileFieldPerMeshPerTypePerDisc::loadOnlyStructureOfDataRecursively(med_idt fid, int& start, const MEDFileFieldNameScope& nasc)
12656 -{
12657 -  INTERP_KERNEL::AutoPtr<char> locname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12658 -  INTERP_KERNEL::AutoPtr<char> pflname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
12659 -  std::string fieldName(nasc.getName()),meshName(getMeshName());
12660 -  int iteration(getIteration()),order(getOrder()),profilesize,nbi;
12661 -  TypeOfField type(getType());
12662 -  med_geometry_type mgeoti;
12663 -  med_entity_type menti;
12664 -  _father->entriesForMEDfile(type,mgeoti,menti);
12665 -  int zeNVal(MEDfieldnValueWithProfile(fid,fieldName.c_str(),iteration,order,menti,mgeoti,_profile_it+1,MED_COMPACT_PFLMODE,pflname,&profilesize,locname,&nbi));
12666 -  _profile=MEDLoaderBase::buildStringFromFortran(pflname,MED_NAME_SIZE);
12667 -  _localization=MEDLoaderBase::buildStringFromFortran(locname,MED_NAME_SIZE);
12668 -  const PartDefinition *pd(_pd);
12669 -  if(!pd)
12670 -    {
12671 -      _nval=zeNVal;
12672 -    }
12673 -  else
12674 -    {
12675 -      if(!_profile.empty())
12676 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::loadOnlyStructureOfDataRecursively : profiles are not managed yet with part of def !");
12677 -      _nval=pd->getNumberOfElems();
12678 -    }
12679 -  _start=start;
12680 -  _end=start+_nval*nbi;
12681 -  start=_end;
12682 -  if(type==ON_CELLS && !_localization.empty())
12683 -    {
12684 -      if(_localization!="MED_GAUSS_ELNO")//For compatibily with MED2.3
12685 -        setType(ON_GAUSS_PT);
12686 -      else
12687 -        {
12688 -          setType(ON_GAUSS_NE);
12689 -          _localization.clear();
12690 -        }
12691 -    }
12692 -}
12693 -
12694 -void MEDFileFieldPerMeshPerTypePerDisc::loadBigArray(med_idt fid, const MEDFileFieldNameScope& nasc)
12695 -{
12696 -  std::string fieldName(nasc.getName()),meshName(getMeshName());
12697 -  int iteration(getIteration()),order(getOrder());
12698 -  TypeOfField type(getType());
12699 -  med_geometry_type mgeoti;
12700 -  med_entity_type menti;
12701 -  _father->entriesForMEDfile(type,mgeoti,menti);
12702 -  if(_start>_end)
12703 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::loadBigArray : internal error in range !");
12704 -  if(_start==_end)
12705 -    return ;
12706 -  DataArray *arr(getOrCreateAndGetArray());//arr is not null due to the spec of getOrCreateAndGetArray
12707 -  if(_start<0 || _start>=arr->getNumberOfTuples())
12708 -    {
12709 -      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypePerDisc::loadBigArray : Invalid start ("<< _start << ") regarding admissible range of allocated array [0," << arr->getNumberOfTuples() << ") !";
12710 -      throw INTERP_KERNEL::Exception(oss.str());
12711 -    }
12712 -  if(_end<0 || _end>arr->getNumberOfTuples())
12713 -    {
12714 -      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypePerDisc::loadBigArray : Invalid start ("<< _start << ") regarding admissible range of allocated array [0," << arr->getNumberOfTuples() << "] !";
12715 -      throw INTERP_KERNEL::Exception(oss.str());
12716 -    }
12717 -  int nbOfCompo(arr->getNumberOfComponents());
12718 -  DataArrayDouble *arrD(dynamic_cast<DataArrayDouble *>(arr));
12719 -  if(arrD)
12720 -    {
12721 -      double *startFeeding(arrD->getPointer()+_start*nbOfCompo);
12722 -      goReadZeValuesInFile(fid,fieldName,nbOfCompo,iteration,order,menti,mgeoti,reinterpret_cast<unsigned char*>(startFeeding));
12723 -      return ;
12724 -    }
12725 -  DataArrayInt *arrI(dynamic_cast<DataArrayInt *>(arr));
12726 -  if(arrI)
12727 -    {
12728 -      int *startFeeding(arrI->getPointer()+_start*nbOfCompo);
12729 -      goReadZeValuesInFile(fid,fieldName,nbOfCompo,iteration,order,menti,mgeoti,reinterpret_cast<unsigned char*>(startFeeding));
12730 -      return ;
12731 -    }
12732 -  throw INTERP_KERNEL::Exception("Error on array reading ! Unrecognized type of field ! Should be in FLOAT64 or INT32 !");
12733 -}
12734 -
12735 -/*!
12736 - * Set a \c this->_start **and** \c this->_end keeping the same delta between the two.
12737 - */
12738 -void MEDFileFieldPerMeshPerTypePerDisc::setNewStart(int newValueOfStart)
12739 -{
12740 -  int delta=_end-_start;
12741 -  _start=newValueOfStart;
12742 -  _end=_start+delta;
12743 -}
12744 -
12745 -int MEDFileFieldPerMeshPerTypePerDisc::getIteration() const
12746 -{
12747 -  return _father->getIteration();
12748 -}
12749 -
12750 -int MEDFileFieldPerMeshPerTypePerDisc::getOrder() const
12751 -{
12752 -  return _father->getOrder();
12753 -}
12754 -
12755 -double MEDFileFieldPerMeshPerTypePerDisc::getTime() const
12756 -{
12757 -  return _father->getTime();
12758 -}
12759 -
12760 -std::string MEDFileFieldPerMeshPerTypePerDisc::getMeshName() const
12761 -{
12762 -  return _father->getMeshName();
12763 -}
12764 -
12765 -void MEDFileFieldPerMeshPerTypePerDisc::simpleRepr(int bkOffset, std::ostream& oss, int id) const
12766 -{
12767 -  const char startLine[]="    ## ";
12768 -  std::string startLine2(bkOffset,' ');
12769 -  startLine2+=startLine;
12770 -  INTERP_KERNEL::AutoCppPtr<MEDCouplingFieldDiscretization> tmp(MEDCouplingFieldDiscretization::New(_type));
12771 -  oss << startLine2 << "Localization #" << id << "." << std::endl;
12772 -  oss << startLine2 << "  Type=" << tmp->getRepr() << "." << std::endl;
12773 -  oss << startLine2 << "  This type discretization lies on profile : \"" << _profile << "\" and on the following localization : \"" << _localization << "\"." << std::endl;
12774 -  oss << startLine2 << "  This type discretization has " << _end-_start << " tuples (start=" << _start << ", end=" << _end << ")." << std::endl;
12775 -  oss << startLine2 << "  This type discretization has " << (_end-_start)/_nval << " integration points." << std::endl;
12776 -}
12777 -
12778 -TypeOfField MEDFileFieldPerMeshPerTypePerDisc::getType() const
12779 -{
12780 -  return _type;
12781 -}
12782 -
12783 -INTERP_KERNEL::NormalizedCellType MEDFileFieldPerMeshPerTypePerDisc::getGeoType() const
12784 -{
12785 -  return _father->getGeoType();
12786 -}
12787 -
12788 -void MEDFileFieldPerMeshPerTypePerDisc::fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const
12789 -{
12790 -  types.insert(_type);
12791 -}
12792 -
12793 -void MEDFileFieldPerMeshPerTypePerDisc::setType(TypeOfField newType)
12794 -{
12795 -  _type=newType;
12796 -}
12797 -
12798 -int MEDFileFieldPerMeshPerTypePerDisc::getNumberOfComponents() const
12799 -{
12800 -  return _father->getNumberOfComponents();
12801 -}
12802 -
12803 -int MEDFileFieldPerMeshPerTypePerDisc::getNumberOfTuples() const
12804 -{
12805 -  return _end-_start;
12806 -}
12807 -
12808 -DataArray *MEDFileFieldPerMeshPerTypePerDisc::getOrCreateAndGetArray()
12809 -{
12810 -  return _father->getOrCreateAndGetArray();
12811 -}
12812 -
12813 -const DataArray *MEDFileFieldPerMeshPerTypePerDisc::getOrCreateAndGetArray() const
12814 -{
12815 -  const MEDFileFieldPerMeshPerTypeCommon *fath=_father;
12816 -  return fath->getOrCreateAndGetArray();
12817 -}
12818 -
12819 -const std::vector<std::string>& MEDFileFieldPerMeshPerTypePerDisc::getInfo() const
12820 -{
12821 -  return _father->getInfo();
12822 -}
12823 -
12824 -std::string MEDFileFieldPerMeshPerTypePerDisc::getProfile() const
12825 -{
12826 -  return _profile;
12827 -}
12828 -
12829 -void MEDFileFieldPerMeshPerTypePerDisc::setProfile(const std::string& newPflName)
12830 -{
12831 -  _profile=newPflName;
12832 -}
12833 -
12834 -std::string MEDFileFieldPerMeshPerTypePerDisc::getLocalization() const
12835 -{
12836 -  return _localization;
12837 -}
12838 -
12839 -void MEDFileFieldPerMeshPerTypePerDisc::setLocalization(const std::string& newLocName)
12840 -{
12841 -  _localization=newLocName;
12842 -}
12843 -
12844 -void MEDFileFieldPerMeshPerTypePerDisc::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
12845 -{
12846 -  for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
12847 -    {
12848 -      if(std::find((*it2).first.begin(),(*it2).first.end(),_profile)!=(*it2).first.end())
12849 -        {
12850 -          _profile=(*it2).second;
12851 -          return;
12852 -        }
12853 -    }
12854 -}
12855 -
12856 -void MEDFileFieldPerMeshPerTypePerDisc::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
12857 -{
12858 -  for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
12859 -    {
12860 -      if(std::find((*it2).first.begin(),(*it2).first.end(),_localization)!=(*it2).first.end())
12861 -        {
12862 -          _localization=(*it2).second;
12863 -          return;
12864 -        }
12865 -    }
12866 -}
12867 -
12868 -void MEDFileFieldPerMeshPerTypePerDisc::getFieldAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
12869 -{
12870 -  if(type!=_type)
12871 -    return ;
12872 -  dads.push_back(std::pair<int,int>(_start,_end));
12873 -  geoTypes.push_back(getGeoType());
12874 -  if(_profile.empty())
12875 -    pfls.push_back(0);
12876 -  else
12877 -    {
12878 -      pfls.push_back(glob->getProfile(_profile.c_str()));
12879 -    }
12880 -  if(_localization.empty())
12881 -    locs.push_back(-1);
12882 -  else
12883 -    {
12884 -      locs.push_back(glob->getLocalizationId(_localization.c_str()));
12885 -    }
12886 -}
12887 -
12888 -void MEDFileFieldPerMeshPerTypePerDisc::fillValues(int discId, int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
12889 -{
12890 -  entries[startEntryId]=std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int> ,std::pair<int,int> >(std::pair<INTERP_KERNEL::NormalizedCellType,int>(getGeoType(),discId),std::pair<int,int>(_start,_end));
12891 -  startEntryId++;
12892 -}
12893 -
12894 -void MEDFileFieldPerMeshPerTypePerDisc::writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const
12895 -{
12896 -  TypeOfField type=getType();
12897 -  INTERP_KERNEL::NormalizedCellType geoType(getGeoType());
12898 -  med_geometry_type mgeoti;
12899 -  med_entity_type menti;
12900 -  _father->entriesForMEDfile(getType(),mgeoti,menti);
12901 -  const DataArray *arr(getOrCreateAndGetArray());
12902 -  if(!arr)
12903 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::writeLL : no array set !");
12904 -  if(!arr->isAllocated())
12905 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::writeLL : the array to be written is not allocated !");
12906 -  const DataArrayDouble *arrD=dynamic_cast<const DataArrayDouble *>(arr);
12907 -  const DataArrayInt *arrI=dynamic_cast<const DataArrayInt *>(arr);
12908 -  const unsigned char *locToWrite=0;
12909 -  if(arrD)
12910 -    locToWrite=reinterpret_cast<const unsigned char *>(arrD->getConstPointer()+_start*arr->getNumberOfComponents());
12911 -  else if(arrI)
12912 -    locToWrite=reinterpret_cast<const unsigned char *>(arrI->getConstPointer()+_start*arr->getNumberOfComponents());
12913 -  else
12914 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::writeLL : not recognized type of values ! Supported are FLOAT64 and INT32 !");
12915 -  MEDFILESAFECALLERWR0(MEDfieldValueWithProfileWr,(fid,nasc.getName().c_str(),getIteration(),getOrder(),getTime(),menti,mgeoti,
12916 -                                                   MED_COMPACT_PFLMODE,_profile.c_str(),_localization.c_str(),MED_FULL_INTERLACE,MED_ALL_CONSTITUENT,_nval,
12917 -                                                   locToWrite));
12918 -}
12919 -
12920 -void MEDFileFieldPerMeshPerTypePerDisc::getCoarseData(TypeOfField& type, std::pair<int,int>& dad, std::string& pfl, std::string& loc) const
12921 -{
12922 -  type=_type;
12923 -  pfl=_profile;
12924 -  loc=_localization;
12925 -  dad.first=_start; dad.second=_end;
12926 -}
12927 -
12928 -/*!
12929 - * \param [in] codeOfMesh is of format returned by MEDCouplingUMesh::getDistributionOfTypes. And for each *i* oldCode[3*i+2] gives the position (MEDFileUMesh::PutInThirdComponentOfCodeOffset).
12930 - *             This code corresponds to the distribution of types in the corresponding mesh.
12931 - * \param [out] ptToFill memory zone where the output will be stored.
12932 - * \return the size of data pushed into output param \a ptToFill
12933 - */
12934 -int MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode(int offset, const std::vector<int>& codeOfMesh, const MEDFileFieldGlobsReal& glob, int *ptToFill) const
12935 -{
12936 -  _loc_id=offset;
12937 -  std::ostringstream oss;
12938 -  std::size_t nbOfType=codeOfMesh.size()/3;
12939 -  int found=-1;
12940 -  for(std::size_t i=0;i<nbOfType && found==-1;i++)
12941 -    if(getGeoType()==(INTERP_KERNEL::NormalizedCellType)codeOfMesh[3*i])
12942 -      found=(int)i;
12943 -  if(found==-1)
12944 -    {
12945 -      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType());
12946 -      oss << "MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode : not found geometric type " << cm.getRepr() << " in the referenced mesh of field !";
12947 -      throw INTERP_KERNEL::Exception(oss.str());
12948 -    }
12949 -  int *work=ptToFill;
12950 -  if(_profile.empty())
12951 -    {
12952 -      if(_nval!=codeOfMesh[3*found+1])
12953 -        {
12954 -          const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType());
12955 -          oss << "MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode : for geometric type " << cm.getRepr() << " number of elt ids in mesh is equal to " << _nval;
12956 -          oss << " whereas mesh has " << codeOfMesh[3*found+1] << " for this geometric type !";
12957 -          throw INTERP_KERNEL::Exception(oss.str());
12958 -        }
12959 -      for(int ii=codeOfMesh[3*found+2];ii<codeOfMesh[3*found+2]+_nval;ii++)
12960 -        *work++=ii;
12961 -    }
12962 -  else
12963 -    {
12964 -      const DataArrayInt *pfl=glob.getProfile(_profile.c_str());
12965 -      if(pfl->getNumberOfTuples()!=_nval)
12966 -        {
12967 -          const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType());
12968 -          oss << "MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode : for geometric type " << cm.getRepr() << ", field is defined on profile \"" << _profile << "\" and size of profile is ";
12969 -          oss << _nval;
12970 -          oss << pfl->getNumberOfTuples() << " whereas the number of ids is set to " << _nval << " for this geometric type !";
12971 -          throw INTERP_KERNEL::Exception(oss.str());
12972 -        }
12973 -      int offset2=codeOfMesh[3*found+2];
12974 -      for(const int *pflId=pfl->begin();pflId!=pfl->end();pflId++)
12975 -        {
12976 -          if(*pflId<codeOfMesh[3*found+1])
12977 -            *work++=offset2+*pflId;
12978 -        }
12979 -    }
12980 -  return _nval;
12981 -}
12982 -
12983 -int MEDFileFieldPerMeshPerTypePerDisc::fillTupleIds(int *ptToFill) const
12984 -{
12985 -  for(int i=_start;i<_end;i++)
12986 -    *ptToFill++=i;
12987 -  return _end-_start;
12988 -}
12989 -
12990 -int MEDFileFieldPerMeshPerTypePerDisc::ConvertType(TypeOfField type, int locId)
12991 -{
12992 -  switch(type)
12993 -  {
12994 -    case ON_CELLS:
12995 -      return -2;
12996 -    case ON_GAUSS_NE:
12997 -      return -1;
12998 -    case ON_GAUSS_PT:
12999 -      return locId;
13000 -    default:
13001 -      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::ConvertType : not managed type of field !");
13002 -  }
13003 -}
13004 -
13005 -std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > MEDFileFieldPerMeshPerTypePerDisc::SplitPerDiscretization(const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entries)
13006 -{
13007 -  int id=0;
13008 -  std::map<std::pair<std::string,TypeOfField>,int> m;
13009 -  std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > ret;
13010 -  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entries.begin();it!=entries.end();it++)
13011 -    if(m.find(std::pair<std::string,TypeOfField>((*it)->getLocalization(),(*it)->getType()))==m.end())
13012 -      m[std::pair<std::string,TypeOfField>((*it)->getLocalization(),(*it)->getType())]=id++;
13013 -  ret.resize(id);
13014 -  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entries.begin();it!=entries.end();it++)
13015 -    ret[m[std::pair<std::string,TypeOfField>((*it)->getLocalization(),(*it)->getType())]].push_back(*it);
13016 -  return ret;
13017 -}
13018 -
13019 -/*!
13020 - * - \c this->_loc_id mutable attribute is used for elt id in mesh offsets.
13021 - * 
13022 - * \param [in] offset the offset id used to take into account that \a result is not compulsary empty in input
13023 - * \param [in] entriesOnSameDisc some entries **on same localization** if not the result can be invalid. The _start and _end on them are relative to \a arr parameter.
13024 - * \param [in] explicitIdsInMesh ids in mesh of the considered chunk.
13025 - * \param [in] newCode one of the input parameter to explicit the new geo type dispatch (in classical format same than those asked by MEDFileFields::renumberEntitiesLyingOnMesh)
13026 - * \param [in,out] glob if necessary by the method, new profiles can be added to it
13027 - * \param [in,out] arr after the call of this method \a arr is renumbered to be compliant with added entries to \a result.
13028 - * \param [out] result All new entries will be appended on it.
13029 - * \return false if the configuration of renumbering leads to an unnecessary resplit of input \a entriesOnSameDisc. If not true is returned (the most general case !)
13030 - */
13031 -bool MEDFileFieldPerMeshPerTypePerDisc::RenumberChunks(int offset, const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
13032 -                                                       const DataArrayInt *explicitIdsInMesh,
13033 -                                                       const std::vector<int>& newCode,
13034 -                                                       MEDFileFieldGlobsReal& glob, DataArrayDouble *arr,
13035 -                                                       std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >& result)
13036 -{
13037 -  if(entriesOnSameDisc.empty())
13038 -    return false;
13039 -  TypeOfField type=entriesOnSameDisc[0]->getType();
13040 -  int szEntities=0,szTuples=0;
13041 -  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entriesOnSameDisc.begin();it!=entriesOnSameDisc.end();it++)
13042 -    { szEntities+=(*it)->_nval; szTuples+=(*it)->_end-(*it)->_start; }
13043 -  int nbi=szTuples/szEntities;
13044 -  if(szTuples%szEntities!=0)
13045 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::RenumberChunks : internal error the splitting into same dicretization failed !");
13046 -  MCAuto<DataArrayInt> renumTuples=DataArrayInt::New(); renumTuples->alloc(szTuples,1);
13047 -  MCAuto<DataArrayInt> ranges=MEDCouplingUMesh::ComputeRangesFromTypeDistribution(newCode);
13048 -  std::vector< MCAuto<DataArrayInt> > newGeoTypesPerChunk(entriesOnSameDisc.size());
13049 -  std::vector< const DataArrayInt * > newGeoTypesPerChunk2(entriesOnSameDisc.size());
13050 -  std::vector< MCAuto<DataArrayInt> > newGeoTypesPerChunk_bis(entriesOnSameDisc.size());
13051 -  std::vector< const DataArrayInt * > newGeoTypesPerChunk3(entriesOnSameDisc.size());
13052 -  MCAuto<DataArrayInt> newGeoTypesPerChunk4=DataArrayInt::New(); newGeoTypesPerChunk4->alloc(szEntities,nbi);
13053 -  int id=0;
13054 -  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entriesOnSameDisc.begin();it!=entriesOnSameDisc.end();it++,id++)
13055 -    {
13056 -      int startOfEltIdOfChunk=(*it)->_start;
13057 -      MCAuto<DataArrayInt> newEltIds=explicitIdsInMesh->subArray(startOfEltIdOfChunk,startOfEltIdOfChunk+(*it)->_nval);
13058 -      MCAuto<DataArrayInt> rangeIdsForChunk=newEltIds->findRangeIdForEachTuple(ranges);
13059 -      MCAuto<DataArrayInt> idsInRrangeForChunk=newEltIds->findIdInRangeForEachTuple(ranges);
13060 -      //
13061 -      MCAuto<DataArrayInt> tmp=rangeIdsForChunk->duplicateEachTupleNTimes(nbi); rangeIdsForChunk->rearrange(nbi);
13062 -      newGeoTypesPerChunk4->setPartOfValues1(tmp,(*it)->_tmp_work1-offset,(*it)->_tmp_work1+(*it)->_nval*nbi-offset,1,0,nbi,1);
13063 -      //
13064 -      newGeoTypesPerChunk[id]=rangeIdsForChunk; newGeoTypesPerChunk2[id]=rangeIdsForChunk;
13065 -      newGeoTypesPerChunk_bis[id]=idsInRrangeForChunk; newGeoTypesPerChunk3[id]=idsInRrangeForChunk;
13066 -    }
13067 -  MCAuto<DataArrayInt> newGeoTypesEltIdsAllGather=DataArrayInt::Aggregate(newGeoTypesPerChunk2); newGeoTypesPerChunk.clear(); newGeoTypesPerChunk2.clear();
13068 -  MCAuto<DataArrayInt> newGeoTypesEltIdsAllGather2=DataArrayInt::Aggregate(newGeoTypesPerChunk3); newGeoTypesPerChunk_bis.clear(); newGeoTypesPerChunk3.clear();
13069 -  MCAuto<DataArrayInt> diffVals=newGeoTypesEltIdsAllGather->getDifferentValues();
13070 -  MCAuto<DataArrayInt> renumEltIds=newGeoTypesEltIdsAllGather->buildPermArrPerLevel();
13071 -  //
13072 -  MCAuto<DataArrayInt> renumTupleIds=newGeoTypesPerChunk4->buildPermArrPerLevel();
13073 -  //
13074 -  MCAuto<DataArrayDouble> arrPart=arr->subArray(offset,offset+szTuples);
13075 -  arrPart->renumberInPlace(renumTupleIds->begin());
13076 -  arr->setPartOfValues1(arrPart,offset,offset+szTuples,1,0,arrPart->getNumberOfComponents(),1);
13077 -  bool ret=false;
13078 -  const int *idIt=diffVals->begin();
13079 -  std::list<const MEDFileFieldPerMeshPerTypePerDisc *> li(entriesOnSameDisc.begin(),entriesOnSameDisc.end());
13080 -  int offset2=0;
13081 -  for(int i=0;i<diffVals->getNumberOfTuples();i++,idIt++)
13082 -    {
13083 -      MCAuto<DataArrayInt> ids=newGeoTypesEltIdsAllGather->findIdsEqual(*idIt);
13084 -      MCAuto<DataArrayInt> subIds=newGeoTypesEltIdsAllGather2->selectByTupleId(ids->begin(),ids->end());
13085 -      int nbEntityElts=subIds->getNumberOfTuples();
13086 -      bool ret2;
13087 -      MCAuto<MEDFileFieldPerMeshPerTypePerDisc> eltToAdd=MEDFileFieldPerMeshPerTypePerDisc::
13088 -          NewObjectOnSameDiscThanPool(type,(INTERP_KERNEL::NormalizedCellType)newCode[3*(*idIt)],subIds,!subIds->isIota(newCode[3*(*idIt)+1]),nbi,
13089 -                                      offset+offset2,
13090 -                                      li,glob,ret2);
13091 -      ret=ret || ret2;
13092 -      result.push_back(eltToAdd);
13093 -      offset2+=nbEntityElts*nbi;
13094 -    }
13095 -  ret=ret || li.empty();
13096 -  return ret;
13097 -}
13098 -
13099 -/*!
13100 - * \param [in] typeF type of field of new chunk
13101 - * \param [in] geoType the geometric type of the chunk
13102 - * \param [in] idsOfMeshElt the entity ids of mesh (cells or nodes) of the new chunk.
13103 - * \param [in] isPfl specifies if a profile is requested regarding size of \a idsOfMeshElt and the number of such entities regarding underlying mesh.
13104 - * \param [in] nbi number of integration points
13105 - * \param [in] offset The offset in the **global array of data**.
13106 - * \param [in,out] entriesOnSameDisc the pool **on the same discretization** inside which it will be attempted to find an existing entry corresponding exactly
13107 - *                 to the new chunk to create.
13108 - * \param [in,out] glob the global shared info that will be requested for existing profiles or to append a new profile if needed.
13109 - * \param [out] notInExisting If false the return newly allocated entry is not coming from \a entriesOnSameDisc. If true the output comes from copy of \a entriesOnSameDisc
13110 - *              and corresponding entry erased from \a entriesOnSameDisc.
13111 - * \return a newly allocated chunk
13112 - */
13113 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::NewObjectOnSameDiscThanPool(TypeOfField typeF, INTERP_KERNEL::NormalizedCellType geoType, DataArrayInt *idsOfMeshElt,
13114 -                                                                                                  bool isPfl, int nbi, int offset,
13115 -                                                                                                  std::list< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
13116 -                                                                                                  MEDFileFieldGlobsReal& glob,
13117 -                                                                                                  bool &notInExisting)
13118 -{
13119 -  int nbMeshEntities=idsOfMeshElt->getNumberOfTuples();
13120 -  std::list< const MEDFileFieldPerMeshPerTypePerDisc *>::iterator it=entriesOnSameDisc.begin();
13121 -  for(;it!=entriesOnSameDisc.end();it++)
13122 -    {
13123 -      if(((INTERP_KERNEL::NormalizedCellType)(*it)->_loc_id)==geoType && (*it)->_nval==nbMeshEntities)
13124 -        {
13125 -          if(!isPfl)
13126 -            {
13127 -              if((*it)->_profile.empty())
13128 -                break;
13129 -              else
13130 -                if(!(*it)->_profile.empty())
13131 -                  {
13132 -                    const DataArrayInt *pfl=glob.getProfile((*it)->_profile.c_str());
13133 -                    if(pfl->isEqualWithoutConsideringStr(*idsOfMeshElt))
13134 -                      break;
13135 -                  }
13136 -            }
13137 -        }
13138 -    }
13139 -  if(it==entriesOnSameDisc.end())
13140 -    {
13141 -      notInExisting=true;
13142 -      MEDFileFieldPerMeshPerTypePerDisc *ret=new MEDFileFieldPerMeshPerTypePerDisc;
13143 -      ret->_type=typeF;
13144 -      ret->_loc_id=(int)geoType;
13145 -      ret->_nval=nbMeshEntities;
13146 -      ret->_start=offset;
13147 -      ret->_end=ret->_start+ret->_nval*nbi;
13148 -      if(isPfl)
13149 -        {
13150 -          idsOfMeshElt->setName(glob.createNewNameOfPfl().c_str());
13151 -          glob.appendProfile(idsOfMeshElt);
13152 -          ret->_profile=idsOfMeshElt->getName();
13153 -        }
13154 -      //tony treatment of localization
13155 -      return ret;
13156 -    }
13157 -  else
13158 -    {
13159 -      notInExisting=false;
13160 -      MEDFileFieldPerMeshPerTypePerDisc *ret=MEDFileFieldPerMeshPerTypePerDisc::New(*(*it));
13161 -      ret->_loc_id=(int)geoType;
13162 -      ret->setNewStart(offset);
13163 -      entriesOnSameDisc.erase(it);
13164 -      return ret;
13165 -    }
13166 -
13167 -}
13168 -
13169 -////////////////////////////////////
13170 -
13171 -MEDFileFieldPerMeshPerTypeCommon::~MEDFileFieldPerMeshPerTypeCommon()
13172 -{
13173 -}
13174 -
13175 -void MEDFileFieldPerMeshPerTypeCommon::setFather(MEDFileFieldPerMesh *father)
13176 -{
13177 -  _father=father;
13178 -}
13179 -
13180 -void MEDFileFieldPerMeshPerTypeCommon::accept(MEDFileFieldVisitor& visitor) const
13181 -{
13182 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13183 -    if((*it).isNotNull())
13184 -      {
13185 -        visitor.newPerMeshPerTypePerDisc(*it);
13186 -      }
13187 -}
13188 -
13189 -void MEDFileFieldPerMeshPerTypeCommon::deepCopyElements()
13190 -{
13191 -  std::size_t i=0;
13192 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
13193 -    {
13194 -      if((const MEDFileFieldPerMeshPerTypePerDisc *)*it)
13195 -        _field_pm_pt_pd[i]=(*it)->deepCopy(this);
13196 -    }
13197 -}
13198 -
13199 -std::size_t MEDFileFieldPerMeshPerTypeCommon::getHeapMemorySizeWithoutChildren() const
13200 -{
13201 -  return _field_pm_pt_pd.capacity()*sizeof(MCAuto<MEDFileFieldPerMeshPerTypePerDisc>);
13202 -}
13203 -
13204 -std::vector<const BigMemoryObject *> MEDFileFieldPerMeshPerTypeCommon::getDirectChildrenWithNull() const
13205 -{
13206 -  std::vector<const BigMemoryObject *> ret;
13207 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13208 -    ret.push_back((const MEDFileFieldPerMeshPerTypePerDisc *)*it);
13209 -  return ret;
13210 -}
13211 -
13212 -void MEDFileFieldPerMeshPerTypeCommon::assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
13213 -{
13214 -  std::vector<int> pos=addNewEntryIfNecessary(field,offset,nbOfCells);
13215 -  for(std::vector<int>::const_iterator it=pos.begin();it!=pos.end();it++)
13216 -    _field_pm_pt_pd[*it]->assignFieldNoProfile(start,offset,nbOfCells,field,arr,glob,nasc);
13217 -}
13218 -
13219 -/*!
13220 - * This method is the most general one. No optimization is done here.
13221 - * \param [in] multiTypePfl is the end user profile specified in high level API
13222 - * \param [in] idsInPfl is the selection into the \a multiTypePfl whole profile that corresponds to the current geometric type.
13223 - * \param [in] locIds is the profile needed to be created for MED file format. It can be null if all cells of current geometric type are fetched in \a multiTypePfl.
13224 - *             \b WARNING if not null the MED file profile can be subdivided again in case of Gauss points.
13225 - * \param [in] nbOfEltsInWholeMesh nb of elts of type \a this->_geo_type in \b WHOLE mesh
13226 - * \param [in] mesh is the mesh coming from the MEDFileMesh instance in correspondance with the MEDFileField. The mesh inside the \a field is simply ignored.
13227 - */
13228 -void MEDFileFieldPerMeshPerTypeCommon::assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
13229 -{
13230 -  std::vector<int> pos=addNewEntryIfNecessary(field,idsInPfl);
13231 -  for(std::vector<int>::const_iterator it=pos.begin();it!=pos.end();it++)
13232 -    _field_pm_pt_pd[*it]->assignFieldProfile(isPflAlone,start,multiTypePfl,idsInPfl,locIds,nbOfEltsInWholeMesh,field,arr,mesh,glob,nasc);
13233 -}
13234 -
13235 -void MEDFileFieldPerMeshPerTypeCommon::assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob)
13236 -{
13237 -  _field_pm_pt_pd.resize(1);
13238 -  _field_pm_pt_pd[0]=MEDFileFieldPerMeshPerTypePerDisc::New(this,ON_NODES,-3);
13239 -  _field_pm_pt_pd[0]->assignNodeFieldNoProfile(start,field,arr,glob);
13240 -}
13241 -
13242 -void MEDFileFieldPerMeshPerTypeCommon::assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
13243 -{
13244 -  MCAuto<DataArrayInt> pfl2=pfl->deepCopy();
13245 -  if(!arr || !arr->isAllocated())
13246 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeCommon::assignNodeFieldProfile : input array is null, or not allocated !");
13247 -  _field_pm_pt_pd.resize(1);
13248 -  _field_pm_pt_pd[0]=MEDFileFieldPerMeshPerTypePerDisc::New(this,ON_NODES,-3);
13249 -  _field_pm_pt_pd[0]->assignFieldProfile(true,start,pfl,pfl2,pfl2,-1,field,arr,0,glob,nasc);//mesh is not requested so 0 is send.
13250 -}
13251 -
13252 -std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells)
13253 -{
13254 -  TypeOfField type=field->getTypeOfField();
13255 -  if(type!=ON_GAUSS_PT)
13256 -    {
13257 -      int locIdToFind=MEDFileFieldPerMeshPerTypePerDisc::ConvertType(type,0);
13258 -      int sz=_field_pm_pt_pd.size();
13259 -      bool found=false;
13260 -      for(int j=0;j<sz && !found;j++)
13261 -        {
13262 -          if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
13263 -            {
13264 -              _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13265 -              found=true;
13266 -            }
13267 -        }
13268 -      if(!found)
13269 -        {
13270 -          _field_pm_pt_pd.resize(sz+1);
13271 -          _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13272 -        }
13273 -      std::vector<int> ret(1,(int)sz);
13274 -      return ret;
13275 -    }
13276 -  else
13277 -    {
13278 -      std::vector<int> ret2=addNewEntryIfNecessaryGauss(field,offset,nbOfCells);
13279 -      int sz2=ret2.size();
13280 -      std::vector<int> ret3(sz2);
13281 -      int k=0;
13282 -      for(int i=0;i<sz2;i++)
13283 -        {
13284 -          int sz=_field_pm_pt_pd.size();
13285 -          int locIdToFind=ret2[i];
13286 -          bool found=false;
13287 -          for(int j=0;j<sz && !found;j++)
13288 -            {
13289 -              if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
13290 -                {
13291 -                  _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13292 -                  ret3[k++]=j;
13293 -                  found=true;
13294 -                }
13295 -            }
13296 -          if(!found)
13297 -            {
13298 -              _field_pm_pt_pd.resize(sz+1);
13299 -              _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13300 -              ret3[k++]=sz;
13301 -            }
13302 -        }
13303 -      return ret3;
13304 -    }
13305 -}
13306 -
13307 -std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells)
13308 -{
13309 -  const MEDCouplingFieldDiscretization *disc=field->getDiscretization();
13310 -  const MEDCouplingFieldDiscretizationGauss *disc2=dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(disc);
13311 -  if(!disc2)
13312 -    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : invalid call to this method ! Internal Error !");
13313 -  const DataArrayInt *da=disc2->getArrayOfDiscIds();
13314 -  if(!da)
13315 -    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss (no profile) : no localization ids per cell array available ! The input Gauss node field is maybe invalid !");
13316 -  MCAuto<DataArrayInt> da2=da->selectByTupleIdSafeSlice(offset,offset+nbOfCells,1);
13317 -  MCAuto<DataArrayInt> retTmp=da2->getDifferentValues();
13318 -  if(retTmp->presenceOfValue(-1))
13319 -    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : some cells have no dicretization description !");
13320 -  std::vector<int> ret(retTmp->begin(),retTmp->end());
13321 -  return ret;
13322 -}
13323 -
13324 -std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells)
13325 -{
13326 -  TypeOfField type=field->getTypeOfField();
13327 -  if(type!=ON_GAUSS_PT)
13328 -    {
13329 -      int locIdToFind=MEDFileFieldPerMeshPerTypePerDisc::ConvertType(type,0);
13330 -      int sz=_field_pm_pt_pd.size();
13331 -      bool found=false;
13332 -      for(int j=0;j<sz && !found;j++)
13333 -        {
13334 -          if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
13335 -            {
13336 -              _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13337 -              found=true;
13338 -            }
13339 -        }
13340 -      if(!found)
13341 -        {
13342 -          _field_pm_pt_pd.resize(sz+1);
13343 -          _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13344 -        }
13345 -      std::vector<int> ret(1,0);
13346 -      return ret;
13347 -    }
13348 -  else
13349 -    {
13350 -      std::vector<int> ret2=addNewEntryIfNecessaryGauss(field,subCells);
13351 -      int sz2=ret2.size();
13352 -      std::vector<int> ret3(sz2);
13353 -      int k=0;
13354 -      for(int i=0;i<sz2;i++)
13355 -        {
13356 -          int sz=_field_pm_pt_pd.size();
13357 -          int locIdToFind=ret2[i];
13358 -          bool found=false;
13359 -          for(int j=0;j<sz && !found;j++)
13360 -            {
13361 -              if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
13362 -                {
13363 -                  _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13364 -                  ret3[k++]=j;
13365 -                  found=true;
13366 -                }
13367 -            }
13368 -          if(!found)
13369 -            {
13370 -              _field_pm_pt_pd.resize(sz+1);
13371 -              _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
13372 -              ret3[k++]=sz;
13373 -            }
13374 -        }
13375 -      return ret3;
13376 -    }
13377 -}
13378 -
13379 -std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells)
13380 -{
13381 -  const MEDCouplingFieldDiscretization *disc=field->getDiscretization();
13382 -  const MEDCouplingFieldDiscretizationGauss *disc2=dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(disc);
13383 -  if(!disc2)
13384 -    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : invalid call to this method ! Internal Error !");
13385 -  const DataArrayInt *da=disc2->getArrayOfDiscIds();
13386 -  if(!da)
13387 -    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : no localization ids per cell array available ! The input Gauss node field is maybe invalid !");
13388 -  MCAuto<DataArrayInt> da2=da->selectByTupleIdSafe(subCells->getConstPointer(),subCells->getConstPointer()+subCells->getNumberOfTuples());
13389 -  MCAuto<DataArrayInt> retTmp=da2->getDifferentValues();
13390 -  if(retTmp->presenceOfValue(-1))
13391 -    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : some cells have no dicretization description !");
13392 -  std::vector<int> ret(retTmp->begin(),retTmp->end());
13393 -  return ret;
13394 -}
13395 -
13396 -const MEDFileFieldPerMesh *MEDFileFieldPerMeshPerTypeCommon::getFather() const
13397 -{
13398 -  return _father;
13399 -}
13400 -
13401 -bool MEDFileFieldPerMeshPerTypeCommon::isUniqueLevel(int& dim) const
13402 -{
13403 -  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
13404 -  int curDim((int)cm.getDimension());
13405 -  if(dim!=std::numeric_limits<int>::max())
13406 -    {
13407 -      if(dim!=curDim)
13408 -        return false;
13409 -    }
13410 -  else
13411 -    dim=curDim;
13412 -  return true;
13413 -}
13414 -
13415 -void MEDFileFieldPerMeshPerTypeCommon::fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const
13416 -{
13417 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13418 -    {
13419 -      (*it)->fillTypesOfFieldAvailable(types);
13420 -    }
13421 -}
13422 -
13423 -void MEDFileFieldPerMeshPerTypeCommon::fillFieldSplitedByType(std::vector< std::pair<int,int> >& dads, std::vector<TypeOfField>& types, std::vector<std::string>& pfls, std::vector<std::string>& locs) const
13424 -{
13425 -  int sz=_field_pm_pt_pd.size();
13426 -  dads.resize(sz); types.resize(sz); pfls.resize(sz); locs.resize(sz);
13427 -  for(int i=0;i<sz;i++)
13428 -    {
13429 -      _field_pm_pt_pd[i]->getCoarseData(types[i],dads[i],pfls[i],locs[i]);
13430 -    }
13431 -}
13432 -
13433 -int MEDFileFieldPerMeshPerTypeCommon::getIteration() const
13434 -{
13435 -  return _father->getIteration();
13436 -}
13437 -
13438 -int MEDFileFieldPerMeshPerTypeCommon::getOrder() const
13439 -{
13440 -  return _father->getOrder();
13441 -}
13442 -
13443 -double MEDFileFieldPerMeshPerTypeCommon::getTime() const
13444 -{
13445 -  return _father->getTime();
13446 -}
13447 -
13448 -std::string MEDFileFieldPerMeshPerTypeCommon::getMeshName() const
13449 -{
13450 -  return _father->getMeshName();
13451 -}
13452 -
13453 -void MEDFileFieldPerMeshPerTypeCommon::getSizes(int& globalSz, int& nbOfEntries) const
13454 -{
13455 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13456 -    {
13457 -      globalSz+=(*it)->getNumberOfTuples();
13458 -    }
13459 -  nbOfEntries+=(int)_field_pm_pt_pd.size();
13460 -}
13461 -
13462 -int MEDFileFieldPerMeshPerTypeCommon::getNumberOfComponents() const
13463 -{
13464 -  return _father->getNumberOfComponents();
13465 -}
13466 -
13467 -bool MEDFileFieldPerMeshPerTypeCommon::presenceOfMultiDiscPerGeoType() const
13468 -{
13469 -  std::size_t nb(0);
13470 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13471 -    {
13472 -      const MEDFileFieldPerMeshPerTypePerDisc *fmtd(*it);
13473 -      if(fmtd)
13474 -        nb++;
13475 -    }
13476 -  return nb>1;
13477 -}
13478 -
13479 -void MEDFileFieldPerMeshPerTypeCommon::pushDiscretization(MEDFileFieldPerMeshPerTypePerDisc *disc)
13480 -{
13481 -  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> elt;
13482 -  elt.takeRef(disc);
13483 -  _field_pm_pt_pd.push_back(elt);
13484 -}
13485 -
13486 -DataArray *MEDFileFieldPerMeshPerTypeCommon::getOrCreateAndGetArray()
13487 -{
13488 -  return _father->getOrCreateAndGetArray();
13489 -}
13490 -
13491 -const DataArray *MEDFileFieldPerMeshPerTypeCommon::getOrCreateAndGetArray() const
13492 -{
13493 -  const MEDFileFieldPerMesh *fath=_father;
13494 -  return fath->getOrCreateAndGetArray();
13495 -}
13496 -
13497 -const std::vector<std::string>& MEDFileFieldPerMeshPerTypeCommon::getInfo() const
13498 -{
13499 -  return _father->getInfo();
13500 -}
13501 -
13502 -std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getPflsReallyUsed() const
13503 -{
13504 -  std::vector<std::string> ret;
13505 -  std::set<std::string> ret2;
13506 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
13507 -    {
13508 -      std::string tmp=(*it1)->getProfile();
13509 -      if(!tmp.empty())
13510 -        if(ret2.find(tmp)==ret2.end())
13511 -          {
13512 -            ret.push_back(tmp);
13513 -            ret2.insert(tmp);
13514 -          }
13515 -    }
13516 -  return ret;
13517 -}
13518 -
13519 -std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getLocsReallyUsed() const
13520 -{
13521 -  std::vector<std::string> ret;
13522 -  std::set<std::string> ret2;
13523 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
13524 -    {
13525 -      std::string tmp=(*it1)->getLocalization();
13526 -      if(!tmp.empty() && tmp!=MED_GAUSS_ELNO)
13527 -        if(ret2.find(tmp)==ret2.end())
13528 -          {
13529 -            ret.push_back(tmp);
13530 -            ret2.insert(tmp);
13531 -          }
13532 -    }
13533 -  return ret;
13534 -}
13535 -
13536 -std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getPflsReallyUsedMulti() const
13537 -{
13538 -  std::vector<std::string> ret;
13539 -  std::set<std::string> ret2;
13540 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
13541 -    {
13542 -      std::string tmp=(*it1)->getProfile();
13543 -      if(!tmp.empty())
13544 -        ret.push_back(tmp);
13545 -    }
13546 -  return ret;
13547 -}
13548 -
13549 -std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getLocsReallyUsedMulti() const
13550 -{
13551 -  std::vector<std::string> ret;
13552 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
13553 -    {
13554 -      std::string tmp=(*it1)->getLocalization();
13555 -      if(!tmp.empty() && tmp!=MED_GAUSS_ELNO)
13556 -        ret.push_back(tmp);
13557 -    }
13558 -  return ret;
13559 -}
13560 -
13561 -void MEDFileFieldPerMeshPerTypeCommon::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
13562 -{
13563 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
13564 -    (*it1)->changePflsRefsNamesGen(mapOfModif);
13565 -}
13566 -
13567 -void MEDFileFieldPerMeshPerTypeCommon::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
13568 -{
13569 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
13570 -    (*it1)->changeLocsRefsNamesGen(mapOfModif);
13571 -}
13572 -
13573 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId(int locId)
13574 -{
13575 -  if(_field_pm_pt_pd.empty())
13576 -    {
13577 -      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no localizations for geotype \"" << getGeoTypeRepr() << "\" !";
13578 -      throw INTERP_KERNEL::Exception(oss.str());
13579 -    }
13580 -  if(locId>=0 && locId<(int)_field_pm_pt_pd.size())
13581 -    return _field_pm_pt_pd[locId];
13582 -  std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no such locId available (" << locId;
13583 -  oss2 << ") for geometric type \"" << getGeoTypeRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !";
13584 -  throw INTERP_KERNEL::Exception(oss2.str().c_str());
13585 -  return static_cast<MEDFileFieldPerMeshPerTypePerDisc*>(0);
13586 -}
13587 -
13588 -const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId(int locId) const
13589 -{
13590 -  if(_field_pm_pt_pd.empty())
13591 -    {
13592 -      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no localizations for geotype \"" << getGeoTypeRepr() << "\" !";
13593 -      throw INTERP_KERNEL::Exception(oss.str());
13594 -    }
13595 -  if(locId>=0 && locId<(int)_field_pm_pt_pd.size())
13596 -    return _field_pm_pt_pd[locId];
13597 -  std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no such locId available (" << locId;
13598 -  oss2 << ") for geometric type \"" << getGeoTypeRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !";
13599 -  throw INTERP_KERNEL::Exception(oss2.str().c_str());
13600 -  return static_cast<const MEDFileFieldPerMeshPerTypePerDisc*>(0);
13601 -}
13602 -
13603 -void MEDFileFieldPerMeshPerTypeCommon::fillValues(int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
13604 -{
13605 -  int i=0;
13606 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
13607 -    {
13608 -      (*it)->fillValues(i,startEntryId,entries);
13609 -    }
13610 -}
13611 -
13612 -void MEDFileFieldPerMeshPerTypeCommon::setLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves)
13613 -{
13614 -  _field_pm_pt_pd=leaves;
13615 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13616 -    (*it)->setFather(this);
13617 -}
13618 -
13619 -/*!
13620 - *  \param [in,out] globalNum a global numbering counter for the renumbering. 
13621 - *  \param [out] its - list of pair (start,stop) kept
13622 - *  \return bool - false if the type of field \a tof is not contained in \a this.
13623 - */
13624 -bool MEDFileFieldPerMeshPerTypeCommon::keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its)
13625 -{
13626 -  bool ret(false);
13627 -  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > newPmPtPd;
13628 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13629 -    if((*it)->getType()==tof)
13630 -      {
13631 -        newPmPtPd.push_back(*it);
13632 -        std::pair<int,int> bgEnd; bgEnd.first=(*it)->getStart(); bgEnd.second=(*it)->getEnd();
13633 -        (*it)->setNewStart(globalNum);
13634 -        globalNum=(*it)->getEnd();
13635 -        its.push_back(bgEnd);
13636 -        ret=true;
13637 -      }
13638 -  if(ret)
13639 -    _field_pm_pt_pd=newPmPtPd;
13640 -  return ret;
13641 -}
13642 -
13643 -/*!
13644 - *  \param [in,out] globalNum a global numbering counter for the renumbering.
13645 - *  \param [out] its - list of pair (start,stop) kept
13646 - *  \return bool - false if the type of field \a tof is not contained in \a this.
13647 - */
13648 -bool MEDFileFieldPerMeshPerTypeCommon::keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its)
13649 -{
13650 -  if(_field_pm_pt_pd.size()<=idOfDisc)
13651 -    return false;
13652 -  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> elt(_field_pm_pt_pd[idOfDisc]);
13653 -  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > newPmPtPd(1,elt);
13654 -  std::pair<int,int> bgEnd; bgEnd.first=_field_pm_pt_pd[idOfDisc]->getStart(); bgEnd.second=_field_pm_pt_pd[idOfDisc]->getEnd();
13655 -  elt->setNewStart(globalNum);
13656 -  globalNum=elt->getEnd();
13657 -  its.push_back(bgEnd);
13658 -  _field_pm_pt_pd=newPmPtPd;
13659 -  return true;
13660 -}
13661 -
13662 -void MEDFileFieldPerMeshPerTypeCommon::loadOnlyStructureOfDataRecursively(med_idt fid, int &start, const MEDFileFieldNameScope& nasc)
13663 -{
13664 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13665 -    (*it)->loadOnlyStructureOfDataRecursively(fid,start,nasc);
13666 -}
13667 -
13668 -void MEDFileFieldPerMeshPerTypeCommon::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
13669 -{
13670 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13671 -    (*it)->loadBigArray(fid,nasc);
13672 -}
13673 -
13674 -void MEDFileFieldPerMeshPerTypeCommon::writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const
13675 -{
13676 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13677 -    {
13678 -      (*it)->copyOptionsFrom(*this);
13679 -      (*it)->writeLL(fid,nasc);
13680 -    }
13681 -}
13682 -
13683 -med_entity_type MEDFileFieldPerMeshPerTypeCommon::ConvertIntoMEDFileType(TypeOfField ikType, INTERP_KERNEL::NormalizedCellType ikGeoType, med_geometry_type& medfGeoType)
13684 -{
13685 -  switch(ikType)
13686 -  {
13687 -    case ON_CELLS:
13688 -      medfGeoType=typmai3[(int)ikGeoType];
13689 -      return MED_CELL;
13690 -    case ON_NODES:
13691 -      medfGeoType=MED_NONE;
13692 -      return MED_NODE;
13693 -    case ON_GAUSS_NE:
13694 -      medfGeoType=typmai3[(int)ikGeoType];
13695 -      return MED_NODE_ELEMENT;
13696 -    case ON_GAUSS_PT:
13697 -      medfGeoType=typmai3[(int)ikGeoType];
13698 -      return MED_CELL;
13699 -    default:
13700 -      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeCommon::ConvertIntoMEDFileType : unexpected entity type ! internal error");
13701 -  }
13702 -  return MED_UNDEF_ENTITY_TYPE;
13703 -}
13704 -
13705 -//////////////////////////////////////////////////
13706 -
13707 -MEDFileFieldPerMeshPerType *MEDFileFieldPerMeshPerType::NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd)
13708 -{
13709 -  return new MEDFileFieldPerMeshPerType(fid,fath,type,geoType,nasc,pd);
13710 -}
13711 -
13712 -MEDFileFieldPerMeshPerType *MEDFileFieldPerMeshPerType::New(MEDFileFieldPerMesh *fath, INTERP_KERNEL::NormalizedCellType geoType)
13713 -{
13714 -  return new MEDFileFieldPerMeshPerType(fath,geoType);
13715 -}
13716 -
13717 -MEDFileFieldPerMeshPerType *MEDFileFieldPerMeshPerType::deepCopy(MEDFileFieldPerMesh *father) const
13718 -{
13719 -  MCAuto<MEDFileFieldPerMeshPerType> ret=new MEDFileFieldPerMeshPerType(*this);
13720 -  ret->setFather(father);
13721 -  ret->deepCopyElements();
13722 -  return ret.retn();
13723 -}
13724 -
13725 -void MEDFileFieldPerMeshPerType::getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
13726 -{
13727 -  if(_geo_type!=INTERP_KERNEL::NORM_ERROR)
13728 -    {
13729 -      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
13730 -      if(meshDim!=(int)cm.getDimension())
13731 -        return ;
13732 -    }
13733 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
13734 -    (*it)->getFieldAtLevel(type,glob,dads,pfls,locs,geoTypes);
13735 -}
13736 -
13737 -INTERP_KERNEL::NormalizedCellType MEDFileFieldPerMeshPerType::getGeoType() const
13738 -{
13739 -  return _geo_type;
13740 -}
13741 -
13742 -void MEDFileFieldPerMeshPerType::entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const
13743 -{
13744 -  ent=MEDFileFieldPerMeshPerTypeCommon::ConvertIntoMEDFileType(mct,_geo_type,gt);
13745 -}
13746 -
13747 -void MEDFileFieldPerMeshPerType::getDimension(int& dim) const
13748 -{
13749 -  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(_geo_type));
13750 -  int curDim((int)cm.getDimension());
13751 -  dim=std::max(dim,curDim);
13752 -}
13753 -
13754 -void MEDFileFieldPerMeshPerType::simpleRepr(int bkOffset, std::ostream& oss, int id) const
13755 -{
13756 -  const char startLine[]="  ## ";
13757 -  std::string startLine2(bkOffset,' ');
13758 -  std::string startLine3(startLine2);
13759 -  startLine3+=startLine;
13760 -  if(_geo_type!=INTERP_KERNEL::NORM_ERROR)
13761 -    {
13762 -      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
13763 -      oss << startLine3 << "Entry geometry type #" << id << " is lying on geometry types " << cm.getRepr() << "." << std::endl;
13764 -    }
13765 -  else
13766 -    oss << startLine3 << "Entry geometry type #" << id << " is lying on NODES." << std::endl;
13767 -  oss << startLine3 << "Entry is defined on " <<  _field_pm_pt_pd.size() << " localizations." << std::endl;
13768 -  int i=0;
13769 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
13770 -    {
13771 -      const MEDFileFieldPerMeshPerTypePerDisc *cur=(*it);
13772 -      if(cur)
13773 -        cur->simpleRepr(bkOffset,oss,i);
13774 -      else
13775 -        {
13776 -          oss << startLine2 << "    ## " << "Localization #" << i << " is empty !" << std::endl;
13777 -        }
13778 -    }
13779 -}
13780 -
13781 -std::string MEDFileFieldPerMeshPerType::getGeoTypeRepr() const
13782 -{
13783 -  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(_geo_type));
13784 -  return std::string(cm.getRepr());
13785 -}
13786 -
13787 -MEDFileFieldPerMeshPerType::MEDFileFieldPerMeshPerType(MEDFileFieldPerMesh *father, INTERP_KERNEL::NormalizedCellType gt):MEDFileFieldPerMeshPerTypeCommon(father),_geo_type(gt)
13788 -{
13789 -}
13790 -
13791 -MEDFileFieldPerMeshPerType::MEDFileFieldPerMeshPerType(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd):MEDFileFieldPerMeshPerTypeCommon(fath),_geo_type(geoType)
13792 -{
13793 -  INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
13794 -  INTERP_KERNEL::AutoPtr<char> locName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
13795 -  med_geometry_type mgeoti;
13796 -  med_entity_type menti(ConvertIntoMEDFileType(type,geoType,mgeoti));
13797 -  int nbProfiles(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),menti,mgeoti,pflName,locName));
13798 -  _field_pm_pt_pd.resize(nbProfiles);
13799 -  for(int i=0;i<nbProfiles;i++)
13800 -    {
13801 -      _field_pm_pt_pd[i]=MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(this,type,i,pd);
13802 -    }
13803 -  if(type==ON_CELLS)
13804 -    {
13805 -      int nbProfiles2(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_NODE_ELEMENT,mgeoti,pflName,locName));
13806 -      for(int i=0;i<nbProfiles2;i++)
13807 -        _field_pm_pt_pd.push_back(MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(this,ON_GAUSS_NE,i,pd));
13808 -    }
13809 -}
13810 -
13811 -MCAuto<MEDFileFieldPerMeshPerType> MEDFileFieldPerMeshPerType::Aggregate(int &start, const std::vector<std::pair<int,const MEDFileFieldPerMeshPerType *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, INTERP_KERNEL::NormalizedCellType gt, MEDFileFieldPerMesh *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo)
13812 -{
13813 -  MCAuto<MEDFileFieldPerMeshPerType> ret(MEDFileFieldPerMeshPerType::New(father,gt));
13814 -  std::map<TypeOfField, std::vector< std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc * > > > m;
13815 -  for(std::vector<std::pair<int,const MEDFileFieldPerMeshPerType *> >::const_iterator it=pms.begin();it!=pms.end();it++)
13816 -    {
13817 -      for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it2=(*it).second->_field_pm_pt_pd.begin();it2!=(*it).second->_field_pm_pt_pd.end();it2++)
13818 -        m[(*it2)->getType()].push_back(std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc * >((*it).first,*it2));
13819 -    }
13820 -  for(std::map<TypeOfField, std::vector< std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc * > > >::const_iterator it=m.begin();it!=m.end();it++)
13821 -    {
13822 -      MCAuto<MEDFileFieldPerMeshPerTypePerDisc> agg(MEDFileFieldPerMeshPerTypePerDisc::Aggregate(start,(*it).second,dts,(*it).first,ret,extractInfo));
13823 -      ret->_field_pm_pt_pd.push_back(agg);
13824 -    }
13825 -  return ret;
13826 -}
13827 -
13828 -//////////////////////////////////////////////////
13829 -
13830 -MEDFileFieldPerMeshPerTypeDyn *MEDFileFieldPerMeshPerTypeDyn::NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileEntities *entities, int idGT, const MEDFileFieldNameScope& nasc)
13831 -{
13832 -  if(!entities)
13833 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeDyn::NewOnRead : null pointer !");
13834 -  const MEDFileAllStaticEntitiesPlusDyn *entities2(dynamic_cast<const MEDFileAllStaticEntitiesPlusDyn *>(entities));
13835 -  if(!entities2)
13836 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeDyn::NewOnRead : invalid type of entities !");
13837 -  const MEDFileStructureElement *se(entities2->getWithGT(idGT));
13838 -  return new MEDFileFieldPerMeshPerTypeDyn(fid,fath,se,nasc);
13839 -}
13840 -
13841 -MEDFileFieldPerMeshPerTypeDyn::MEDFileFieldPerMeshPerTypeDyn(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileStructureElement *se, const MEDFileFieldNameScope& nasc):MEDFileFieldPerMeshPerTypeCommon(fath)
13842 -{
13843 -  _se.takeRef(se);
13844 -  INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
13845 -  INTERP_KERNEL::AutoPtr<char> locName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
13846 -  int nbProfiles(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_STRUCT_ELEMENT,_se->getDynGT(),pflName,locName));
13847 -  _field_pm_pt_pd.resize(nbProfiles);
13848 -  for(int i=0;i<nbProfiles;i++)
13849 -    {
13850 -      _field_pm_pt_pd[i]=MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(this,_se->getEntity(),i,NULL);
13851 -    }
13852 -}
13853 -
13854 -int MEDFileFieldPerMeshPerTypeDyn::getDynGT() const
13855 -{
13856 -  return _se->getDynGT();
13857 -}
13858 -
13859 -std::string MEDFileFieldPerMeshPerTypeDyn::getModelName() const
13860 -{
13861 -  return _se->getName();
13862 -}
13863 -
13864 -void MEDFileFieldPerMeshPerTypeDyn::getDimension(int& dim) const
13865 -{
13866 -  throw INTERP_KERNEL::Exception("not implemented yet !");
13867 -}
13868 -
13869 -void MEDFileFieldPerMeshPerTypeDyn::entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const
13870 -{
13871 -  gt=getDynGT();
13872 -  ent=MED_STRUCT_ELEMENT;
13873 -}
13874 -
13875 -INTERP_KERNEL::NormalizedCellType MEDFileFieldPerMeshPerTypeDyn::getGeoType() const
13876 -{
13877 -  throw INTERP_KERNEL::Exception("not implemented yet !");
13878 -}
13879 -
13880 -void MEDFileFieldPerMeshPerTypeDyn::simpleRepr(int bkOffset, std::ostream& oss, int id) const
13881 -{
13882 -  const char startLine[]="  ## ";
13883 -  std::string startLine2(bkOffset,' ');
13884 -  std::string startLine3(startLine2);
13885 -  startLine3+=startLine;
13886 -  oss << startLine3 << "Entry geometry type #" << id << " is lying on geometry STRUCTURE_ELEMENT type " << getDynGT() << "." << std::endl;
13887 -  oss << startLine3 << "Entry is defined on " <<  _field_pm_pt_pd.size() << " localizations." << std::endl;
13888 -  int i=0;
13889 -  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
13890 -    {
13891 -      if((*it).isNotNull())
13892 -        (*it)->simpleRepr(bkOffset,oss,i);
13893 -      else
13894 -        {
13895 -          oss << startLine2 << "    ## " << "Localization #" << i << " is empty !" << std::endl;
13896 -        }
13897 -    }
13898 -}
13899 -
13900 -std::string MEDFileFieldPerMeshPerTypeDyn::getGeoTypeRepr() const
13901 -{
13902 -  throw INTERP_KERNEL::Exception("not implemented yet !");
13903 -}
13904 -
13905 -MEDFileFieldPerMeshPerTypeDyn *MEDFileFieldPerMeshPerTypeDyn::deepCopy(MEDFileFieldPerMesh *father) const
13906 -{
13907 -  MCAuto<MEDFileFieldPerMeshPerTypeDyn> ret(new MEDFileFieldPerMeshPerTypeDyn(*this));
13908 -  ret->setFather(father);
13909 -  ret->deepCopyElements();
13910 -  return ret.retn();
13911 -}
13912 -
13913 -void MEDFileFieldPerMeshPerTypeDyn::getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
13914 -{
13915 -  throw INTERP_KERNEL::Exception("not implemented yet !");
13916 -}
13917 -
13918 -//////////////////////////////////////////////////
13919 -
13920 -MEDFileFieldPerMesh *MEDFileFieldPerMesh::NewOnRead(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities)
13921 -{
13922 -  return new MEDFileFieldPerMesh(fid,fath,meshCsit,meshIteration,meshOrder,nasc,mm,entities);
13923 -}
13924 -
13925 -MEDFileFieldPerMesh *MEDFileFieldPerMesh::New(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh)
13926 -{
13927 -  return new MEDFileFieldPerMesh(fath,mesh);
13928 -}
13929 -
13930 -std::size_t MEDFileFieldPerMesh::getHeapMemorySizeWithoutChildren() const
13931 -{
13932 -  return _field_pm_pt.capacity()*sizeof(MCAuto< MEDFileFieldPerMeshPerType >);
13933 -}
13934 -
13935 -std::vector<const BigMemoryObject *> MEDFileFieldPerMesh::getDirectChildrenWithNull() const
13936 -{
13937 -  std::vector<const BigMemoryObject *> ret;
13938 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
13939 -    ret.push_back(*it);
13940 -  return ret;
13941 -}
13942 -
13943 -MEDFileFieldPerMesh *MEDFileFieldPerMesh::deepCopy(MEDFileAnyTypeField1TSWithoutSDA *father) const
13944 -{
13945 -  MCAuto< MEDFileFieldPerMesh > ret=new MEDFileFieldPerMesh(*this);
13946 -  ret->_father=father;
13947 -  std::size_t i=0;
13948 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++,i++)
13949 -    {
13950 -      if((*it).isNotNull())
13951 -        ret->_field_pm_pt[i]=(*it)->deepCopy((MEDFileFieldPerMesh *)(ret));
13952 -    }
13953 -  return ret.retn();
13954 -}
13955 -
13956 -void MEDFileFieldPerMesh::simpleRepr(int bkOffset, std::ostream& oss, int id) const
13957 -{
13958 -  std::string startLine(bkOffset,' ');
13959 -  oss << startLine << "## Field part (" << id << ") lying on mesh \"" << getMeshName() << "\", Mesh iteration=" << _mesh_iteration << ". Mesh order=" << _mesh_order << "." << std::endl;
13960 -  oss << startLine << "## Field is defined on " << _field_pm_pt.size() << " types." << std::endl;
13961 -  int i=0;
13962 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++,i++)
13963 -    {
13964 -      if((*it).isNotNull())
13965 -        (*it)->simpleRepr(bkOffset,oss,i);
13966 -      else
13967 -        {
13968 -          oss << startLine << "  ## Entry geometry type #" << i << " is empty !" << std::endl;
13969 -        }
13970 -    }
13971 -}
13972 -
13973 -void MEDFileFieldPerMesh::copyTinyInfoFrom(const MEDCouplingMesh *mesh)
13974 -{
13975 -  mesh->getTime(_mesh_iteration,_mesh_order);
13976 -}
13977 -
13978 -void MEDFileFieldPerMesh::assignFieldNoProfileNoRenum(int& start, const std::vector<int>& code, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
13979 -{
13980 -  int nbOfTypes=code.size()/3;
13981 -  int offset=0;
13982 -  for(int i=0;i<nbOfTypes;i++)
13983 -    {
13984 -      INTERP_KERNEL::NormalizedCellType type=(INTERP_KERNEL::NormalizedCellType)code[3*i];
13985 -      int nbOfCells=code[3*i+1];
13986 -      int pos=addNewEntryIfNecessary(type);
13987 -      _field_pm_pt[pos]->assignFieldNoProfile(start,offset,nbOfCells,field,arr,glob,nasc);
13988 -      offset+=nbOfCells;
13989 -    }
13990 -}
13991 -
13992 -/*!
13993 - * This method is the most general one. No optimization is done here.
13994 - * \param [in] multiTypePfl is the end user profile specified in high level API
13995 - * \param [in] code is the code of \a mesh[multiTypePfl] mesh. It is of size of number of different geometric types into \a mesh[multiTypePfl].
13996 - * \param [in] code2 is the code of the \b WHOLE mesh on the same level. So all types in \a code are in \a code2.
13997 - * \param [in] idsInPflPerType is the selection into the \a multiTypePfl whole profile that corresponds to the given geometric type. This vector is always 3 times smaller than \a code.
13998 - * \param [in] idsPerType is a vector containing the profiles needed to be created for MED file format. \b WARNING these processed MED file profiles can be subdivided again in case of Gauss points.
13999 - * \param [in] mesh is the mesh coming from the MEDFileMesh instance in correspondance with the MEDFileField. The mesh inside the \a field is simply ignored.
14000 - */
14001 -void MEDFileFieldPerMesh::assignFieldProfile(int& start, const DataArrayInt *multiTypePfl, const std::vector<int>& code, const std::vector<int>& code2, const std::vector<DataArrayInt *>& idsInPflPerType, const std::vector<DataArrayInt *>& idsPerType, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
14002 -{
14003 -  int nbOfTypes(code.size()/3);
14004 -  for(int i=0;i<nbOfTypes;i++)
14005 -    {
14006 -      INTERP_KERNEL::NormalizedCellType type=(INTERP_KERNEL::NormalizedCellType)code[3*i];
14007 -      int pos=addNewEntryIfNecessary(type);
14008 -      DataArrayInt *pfl=0;
14009 -      if(code[3*i+2]!=-1)
14010 -        pfl=idsPerType[code[3*i+2]];
14011 -      int nbOfTupes2=code2.size()/3;
14012 -      int found=0;
14013 -      for(;found<nbOfTupes2;found++)
14014 -        if(code[3*i]==code2[3*found])
14015 -          break;
14016 -      if(found==nbOfTupes2)
14017 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::assignFieldProfile : internal problem ! Should never happen ! Please report bug to anthony.geay@cea.fr !");
14018 -      _field_pm_pt[pos]->assignFieldProfile(nbOfTypes==1,start,multiTypePfl,idsInPflPerType[i],pfl,code2[3*found+1],field,arr,mesh,glob,nasc);
14019 -    }
14020 -}
14021 -
14022 -void MEDFileFieldPerMesh::assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob)
14023 -{
14024 -  int pos=addNewEntryIfNecessary(INTERP_KERNEL::NORM_ERROR);
14025 -  _field_pm_pt[pos]->assignNodeFieldNoProfile(start,field,arr,glob);
14026 -}
14027 -
14028 -void MEDFileFieldPerMesh::assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
14029 -{
14030 -  int pos=addNewEntryIfNecessary(INTERP_KERNEL::NORM_ERROR);
14031 -  _field_pm_pt[pos]->assignNodeFieldProfile(start,pfl,field,arr,glob,nasc);
14032 -}
14033 -
14034 -void MEDFileFieldPerMesh::loadOnlyStructureOfDataRecursively(med_idt fid, int& start, const MEDFileFieldNameScope& nasc)
14035 -{
14036 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14037 -    (*it)->loadOnlyStructureOfDataRecursively(fid,start,nasc);
14038 -}
14039 -
14040 -void MEDFileFieldPerMesh::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
14041 -{
14042 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14043 -    (*it)->loadBigArraysRecursively(fid,nasc);
14044 -}
14045 -
14046 -void MEDFileFieldPerMesh::writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const
14047 -{
14048 -  int nbOfTypes=_field_pm_pt.size();
14049 -  for(int i=0;i<nbOfTypes;i++)
14050 -    {
14051 -      _field_pm_pt[i]->copyOptionsFrom(*this);
14052 -      _field_pm_pt[i]->writeLL(fid,nasc);
14053 -    }
14054 -}
14055 -
14056 -void MEDFileFieldPerMesh::getDimension(int& dim) const
14057 -{
14058 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14059 -    (*it)->getDimension(dim);
14060 -}
14061 -
14062 -bool MEDFileFieldPerMesh::isUniqueLevel(int& dim) const
14063 -{
14064 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14065 -    if(!(*it)->isUniqueLevel(dim))
14066 -      return false;
14067 -  return true;
14068 -}
14069 -
14070 -void MEDFileFieldPerMesh::fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const
14071 -{
14072 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14073 -    (*it)->fillTypesOfFieldAvailable(types);
14074 -}
14075 -
14076 -std::vector< std::vector< std::pair<int,int> > > MEDFileFieldPerMesh::getFieldSplitedByType(std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> > & locs) const
14077 -{
14078 -  int sz=_field_pm_pt.size();
14079 -  std::vector< std::vector<std::pair<int,int> > > ret(sz);
14080 -  types.resize(sz); typesF.resize(sz); pfls.resize(sz); locs.resize(sz);
14081 -  for(int i=0;i<sz;i++)
14082 -    {
14083 -      types[i]=_field_pm_pt[i]->getGeoType();
14084 -      _field_pm_pt[i]->fillFieldSplitedByType(ret[i],typesF[i],pfls[i],locs[i]);
14085 -    }
14086 -  return ret;
14087 -}
14088 -
14089 -double MEDFileFieldPerMesh::getTime() const
14090 -{
14091 -  int tmp1,tmp2;
14092 -  return _father->getTime(tmp1,tmp2);
14093 -}
14094 -
14095 -int MEDFileFieldPerMesh::getIteration() const
14096 -{
14097 -  return _father->getIteration();
14098 -}
14099 -
14100 -int MEDFileFieldPerMesh::getOrder() const
14101 -{
14102 -  return _father->getOrder();
14103 -}
14104 -
14105 -int MEDFileFieldPerMesh::getNumberOfComponents() const
14106 -{
14107 -  return _father->getNumberOfComponents();
14108 -}
14109 -
14110 -std::string MEDFileFieldPerMesh::getMeshName() const
14111 -{
14112 -  return _father->getMeshName();
14113 -}
14114 -
14115 -void MEDFileFieldPerMesh::setMeshName(const std::string& meshName)
14116 -{
14117 -  _father->setMeshName(meshName);
14118 -}
14119 -
14120 -bool MEDFileFieldPerMesh::presenceOfMultiDiscPerGeoType() const
14121 -{
14122 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14123 -    {
14124 -      if((*it).isNull())
14125 -        continue;
14126 -      if((*it)->presenceOfMultiDiscPerGeoType())
14127 -        return true;
14128 -    }
14129 -  return false;
14130 -}
14131 -
14132 -bool MEDFileFieldPerMesh::presenceOfStructureElements() const
14133 -{
14134 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14135 -    if((*it).isNotNull())
14136 -      {
14137 -        const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
14138 -        if(pt)
14139 -          return true;
14140 -      }
14141 -  return false;
14142 -}
14143 -
14144 -bool MEDFileFieldPerMesh::onlyStructureElements() const
14145 -{
14146 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14147 -    if((*it).isNotNull())
14148 -      {
14149 -        const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
14150 -        if(!pt)
14151 -          return false;
14152 -      }
14153 -  return true;
14154 -}
14155 -
14156 -void MEDFileFieldPerMesh::killStructureElements()
14157 -{
14158 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > res;
14159 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14160 -    {
14161 -      if((*it).isNotNull())
14162 -        {
14163 -          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
14164 -          if(!pt)
14165 -            res.push_back(*it);
14166 -        }
14167 -    }
14168 -  _field_pm_pt=res;
14169 -}
14170 -
14171 -void MEDFileFieldPerMesh::keepOnlyStructureElements()
14172 -{
14173 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > res;
14174 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14175 -    {
14176 -      if((*it).isNotNull())
14177 -        {
14178 -          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
14179 -          if(pt)
14180 -            res.push_back(*it);
14181 -        }
14182 -    }
14183 -  _field_pm_pt=res;
14184 -}
14185 -
14186 -void MEDFileFieldPerMesh::keepOnlyOnSE(const std::string& seName)
14187 -{
14188 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > res;
14189 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14190 -    {
14191 -      if((*it).isNotNull())
14192 -        {
14193 -          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
14194 -          if(!pt)
14195 -            throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::keepOnlyOnSE : presence of non SE !");
14196 -          if(pt->getModelName()==seName)
14197 -            res.push_back(*it);
14198 -        }
14199 -    }
14200 -  _field_pm_pt=res;
14201 -}
14202 -
14203 -void MEDFileFieldPerMesh::getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const
14204 -{
14205 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14206 -    {
14207 -      if((*it).isNotNull())
14208 -        {
14209 -          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
14210 -          if(pt)
14211 -            {
14212 -              ps.push_back(std::pair<std::string,std::string>(getMeshName(),pt->getModelName()));
14213 -            }
14214 -          else
14215 -            throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getMeshSENames : presence of a non structure element part !");
14216 -        }
14217 -    }
14218 -}
14219 -
14220 -DataArray *MEDFileFieldPerMesh::getOrCreateAndGetArray()
14221 -{
14222 -  if(!_father)
14223 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getOrCreateAndGetArray : no father ! internal error !");
14224 -  return _father->getOrCreateAndGetArray();
14225 -}
14226 -
14227 -const DataArray *MEDFileFieldPerMesh::getOrCreateAndGetArray() const
14228 -{
14229 -  if(!_father)
14230 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getOrCreateAndGetArray : no father ! internal error !");
14231 -  return _father->getOrCreateAndGetArray();
14232 -}
14233 -
14234 -const std::vector<std::string>& MEDFileFieldPerMesh::getInfo() const
14235 -{
14236 -  return _father->getInfo();
14237 -}
14238 -
14239 -/*!
14240 - * type,geoTypes,dads,pfls,locs are input parameters. They should have the same size.
14241 - * Before the call of this method 'geoTypes','dads','pfls','locs' must be reorganized so that types in geoTypes are contiguous and ordered following typmai2 array.
14242 - * It returns 2 output vectors :
14243 - * - 'code' of size 3*sz where sz is the number of different values into 'geoTypes'
14244 - * - 'notNullPfls' contains sz2 values that are extracted from 'pfls' in which null profiles have been removed.
14245 - * 'code' and 'notNullPfls' are in MEDCouplingUMesh::checkTypeConsistencyAndContig format.
14246 - */
14247 -void MEDFileFieldPerMesh::SortArraysPerType(const MEDFileFieldGlobsReal *glob, TypeOfField type, const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<const DataArrayInt *>& pfls, const std::vector<int>& locs, std::vector<int>& code, std::vector<DataArrayInt *>& notNullPfls)
14248 -{
14249 -  int notNullPflsSz=0;
14250 -  int nbOfArrs=geoTypes.size();
14251 -  for(int i=0;i<nbOfArrs;i++)
14252 -    if(pfls[i])
14253 -      notNullPflsSz++;
14254 -  std::set<INTERP_KERNEL::NormalizedCellType> geoTypes3(geoTypes.begin(),geoTypes.end());
14255 -  int nbOfDiffGeoTypes=geoTypes3.size();
14256 -  code.resize(3*nbOfDiffGeoTypes);
14257 -  notNullPfls.resize(notNullPflsSz);
14258 -  notNullPflsSz=0;
14259 -  int j=0;
14260 -  for(int i=0;i<nbOfDiffGeoTypes;i++)
14261 -    {
14262 -      int startZone=j;
14263 -      INTERP_KERNEL::NormalizedCellType refType=geoTypes[j];
14264 -      std::vector<const DataArrayInt *> notNullTmp;
14265 -      if(pfls[j])
14266 -        notNullTmp.push_back(pfls[j]);
14267 -      j++;
14268 -      for(;j<nbOfArrs;j++)
14269 -        if(geoTypes[j]==refType)
14270 -          {
14271 -            if(pfls[j])
14272 -              notNullTmp.push_back(pfls[j]);
14273 -          }
14274 -        else
14275 -          break;
14276 -      std::vector< std::pair<int,int> > tmpDads(dads.begin()+startZone,dads.begin()+j);
14277 -      std::vector<const DataArrayInt *> tmpPfls(pfls.begin()+startZone,pfls.begin()+j);
14278 -      std::vector<int> tmpLocs(locs.begin()+startZone,locs.begin()+j);
14279 -      code[3*i]=(int)refType;
14280 -      std::vector<INTERP_KERNEL::NormalizedCellType> refType2(1,refType);
14281 -      code[3*i+1]=ComputeNbOfElems(glob,type,refType2,tmpDads,tmpLocs);
14282 -      if(notNullTmp.empty())
14283 -        code[3*i+2]=-1;
14284 -      else
14285 -        {
14286 -          notNullPfls[notNullPflsSz]=DataArrayInt::Aggregate(notNullTmp);
14287 -          code[3*i+2]=notNullPflsSz++;
14288 -        }
14289 -    }
14290 -}
14291 -
14292 -/*!
14293 - * 'dads' 'geoTypes' and 'locs' are input parameters that should have same size sz. sz should be >=1.
14294 - */
14295 -int MEDFileFieldPerMesh::ComputeNbOfElems(const MEDFileFieldGlobsReal *glob, TypeOfField type, const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs)
14296 -{
14297 -  int sz=dads.size();
14298 -  int ret=0;
14299 -  for(int i=0;i<sz;i++)
14300 -    {
14301 -      if(locs[i]==-1)
14302 -        {
14303 -          if(type!=ON_GAUSS_NE)
14304 -            ret+=dads[i].second-dads[i].first;
14305 -          else
14306 -            {
14307 -              const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(geoTypes[i]);
14308 -              ret+=(dads[i].second-dads[i].first)/cm.getNumberOfNodes();
14309 -            }
14310 -        }
14311 -      else
14312 -        {
14313 -          int nbOfGaussPtPerCell=glob->getNbOfGaussPtPerCell(locs[i]);
14314 -          ret+=(dads[i].second-dads[i].first)/nbOfGaussPtPerCell;
14315 -        }
14316 -    }
14317 -  return ret;
14318 -}
14319 -
14320 -std::vector<std::string> MEDFileFieldPerMesh::getPflsReallyUsed() const
14321 -{
14322 -  std::vector<std::string> ret;
14323 -  std::set<std::string> ret2;
14324 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14325 -    {
14326 -      std::vector<std::string> tmp=(*it)->getPflsReallyUsed();
14327 -      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
14328 -        if(ret2.find(*it2)==ret2.end())
14329 -          {
14330 -            ret.push_back(*it2);
14331 -            ret2.insert(*it2);
14332 -          }
14333 -    }
14334 -  return ret;
14335 -}
14336 -
14337 -std::vector<std::string> MEDFileFieldPerMesh::getPflsReallyUsedMulti() const
14338 -{
14339 -  std::vector<std::string> ret;
14340 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14341 -    {
14342 -      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti();
14343 -      ret.insert(ret.end(),tmp.begin(),tmp.end());
14344 -    }
14345 -  return ret;
14346 -}
14347 -
14348 -std::vector<std::string> MEDFileFieldPerMesh::getLocsReallyUsed() const
14349 -{
14350 -  std::vector<std::string> ret;
14351 -  std::set<std::string> ret2;
14352 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14353 -    {
14354 -      std::vector<std::string> tmp=(*it)->getLocsReallyUsed();
14355 -      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
14356 -        if(ret2.find(*it2)==ret2.end())
14357 -          {
14358 -            ret.push_back(*it2);
14359 -            ret2.insert(*it2);
14360 -          }
14361 -    }
14362 -  return ret;
14363 -}
14364 -
14365 -std::vector<std::string> MEDFileFieldPerMesh::getLocsReallyUsedMulti() const
14366 -{
14367 -  std::vector<std::string> ret;
14368 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14369 -    {
14370 -      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti();
14371 -      ret.insert(ret.end(),tmp.begin(),tmp.end());
14372 -    }
14373 -  return ret;
14374 -}
14375 -
14376 -bool MEDFileFieldPerMesh::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
14377 -{
14378 -  for(std::vector< std::pair<std::string,std::string> >::const_iterator it=modifTab.begin();it!=modifTab.end();it++)
14379 -    {
14380 -      if((*it).first==getMeshName())
14381 -        {
14382 -          setMeshName((*it).second);
14383 -          return true;
14384 -        }
14385 -    }
14386 -  return false;
14387 -}
14388 -
14389 -void MEDFileFieldPerMesh::convertMedBallIntoClassic()
14390 -{
14391 -  if(_field_pm_pt.size()!=1)
14392 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : Only managed for single mesh !");
14393 -  if(_field_pm_pt[0].isNull())
14394 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : null pointer !");
14395 -  MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<MEDFileFieldPerMeshPerTypeDyn *>((MEDFileFieldPerMeshPerTypeCommon *)_field_pm_pt[0]));
14396 -  if(!pt)
14397 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : this is expected to be marked as structure element !");
14398 -  if(pt->getNumberOfLoc()!=1)
14399 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : only one loc managed !");
14400 -  const MEDFileFieldPerMeshPerTypePerDisc *disc(pt->getLeafGivenLocId(0));
14401 -  if(!disc)
14402 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : internal error !");
14403 -  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> disc2(MEDFileFieldPerMeshPerTypePerDisc::New(*disc));
14404 -  disc2->setType(ON_NODES);
14405 -  MCAuto<MEDFileFieldPerMeshPerType> pt2(MEDFileFieldPerMeshPerType::New(this,INTERP_KERNEL::NORM_ERROR));
14406 -  disc2->setFather(pt2);
14407 -  pt2->setFather(this);
14408 -  pt2->pushDiscretization(disc2);
14409 -  _field_pm_pt[0]=DynamicCast<MEDFileFieldPerMeshPerType,MEDFileFieldPerMeshPerTypeCommon>(pt2);
14410 -}
14411 -
14412 -bool MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N,
14413 -                                                      MEDFileFieldGlobsReal& glob)
14414 -{
14415 -  if(getMeshName()!=meshName)
14416 -    return false;
14417 -  std::set<INTERP_KERNEL::NormalizedCellType> typesToKeep;
14418 -  for(std::size_t i=0;i<oldCode.size()/3;i++) typesToKeep.insert((INTERP_KERNEL::NormalizedCellType)oldCode[3*i]);
14419 -  std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > > entries;
14420 -  std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> entriesKept;
14421 -  std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> otherEntries;
14422 -  getUndergroundDataArrayExt(entries);
14423 -  DataArray *arr0(getOrCreateAndGetArray());//tony
14424 -  if(!arr0)
14425 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh : DataArray storing values of field is null !");
14426 -  DataArrayDouble *arr(dynamic_cast<DataArrayDouble *>(arr0));//tony
14427 -  if(!arr0)
14428 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh : DataArray storing values is double ! Not managed for the moment !");
14429 -  int sz=0;
14430 -  if(!arr)
14431 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh : DataArrayDouble storing values of field is null !");
14432 -  for(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >::const_iterator it=entries.begin();it!=entries.end();it++)
14433 -    {
14434 -      if(typesToKeep.find((*it).first.first)!=typesToKeep.end())
14435 -        {
14436 -          entriesKept.push_back(getLeafGivenTypeAndLocId((*it).first.first,(*it).first.second));
14437 -          sz+=(*it).second.second-(*it).second.first;
14438 -        }
14439 -      else
14440 -        otherEntries.push_back(getLeafGivenTypeAndLocId((*it).first.first,(*it).first.second));
14441 -    }
14442 -  MCAuto<DataArrayInt> renumDefrag=DataArrayInt::New(); renumDefrag->alloc(arr->getNumberOfTuples(),1); renumDefrag->fillWithZero();
14443 -  ////////////////////
14444 -  MCAuto<DataArrayInt> explicitIdsOldInMesh=DataArrayInt::New(); explicitIdsOldInMesh->alloc(sz,1);//sz is a majorant of the real size. A realloc will be done after
14445 -  int *workI2=explicitIdsOldInMesh->getPointer();
14446 -  int sz1=0,sz2=0,sid=1;
14447 -  std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > entriesKeptML=MEDFileFieldPerMeshPerTypePerDisc::SplitPerDiscretization(entriesKept);
14448 -  // std::vector<int> tupleIdOfStartOfNewChuncksV(entriesKeptML.size());
14449 -  for(std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator itL1=entriesKeptML.begin();itL1!=entriesKeptML.end();itL1++,sid++)
14450 -    {
14451 -      //  tupleIdOfStartOfNewChuncksV[sid-1]=sz2;
14452 -      MCAuto<DataArrayInt> explicitIdsOldInArr=DataArrayInt::New(); explicitIdsOldInArr->alloc(sz,1);
14453 -      int *workI=explicitIdsOldInArr->getPointer();
14454 -      for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator itL2=(*itL1).begin();itL2!=(*itL1).end();itL2++)
14455 -        {
14456 -          int delta1=(*itL2)->fillTupleIds(workI); workI+=delta1; sz1+=delta1;
14457 -          (*itL2)->setLocId(sz2);
14458 -          (*itL2)->_tmp_work1=(*itL2)->getStart();
14459 -          int delta2=(*itL2)->fillEltIdsFromCode(sz2,oldCode,glob,workI2); workI2+=delta2; sz2+=delta2;
14460 -        }
14461 -      renumDefrag->setPartOfValuesSimple3(sid,explicitIdsOldInArr->begin(),explicitIdsOldInArr->end(),0,1,1);
14462 -    }
14463 -  explicitIdsOldInMesh->reAlloc(sz2);
14464 -  int tupleIdOfStartOfNewChuncks=arr->getNumberOfTuples()-sz2;
14465 -  ////////////////////
14466 -  MCAuto<DataArrayInt> permArrDefrag=renumDefrag->buildPermArrPerLevel(); renumDefrag=0;
14467 -  // perform redispatching of non concerned MEDFileFieldPerMeshPerTypePerDisc
14468 -  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > otherEntriesNew;
14469 -  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=otherEntries.begin();it!=otherEntries.end();it++)
14470 -    {
14471 -      otherEntriesNew.push_back(MEDFileFieldPerMeshPerTypePerDisc::New(*(*it)));
14472 -      otherEntriesNew.back()->setNewStart(permArrDefrag->getIJ((*it)->getStart(),0));
14473 -      otherEntriesNew.back()->setLocId((*it)->getGeoType());
14474 -    }
14475 -  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > entriesKeptNew;
14476 -  std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> entriesKeptNew2;
14477 -  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entriesKept.begin();it!=entriesKept.end();it++)
14478 -    {
14479 -      MCAuto<MEDFileFieldPerMeshPerTypePerDisc> elt=MEDFileFieldPerMeshPerTypePerDisc::New(*(*it));
14480 -      int newStart=elt->getLocId();
14481 -      elt->setLocId((*it)->getGeoType());
14482 -      elt->setNewStart(newStart);
14483 -      elt->_tmp_work1=permArrDefrag->getIJ(elt->_tmp_work1,0);
14484 -      entriesKeptNew.push_back(elt);
14485 -      entriesKeptNew2.push_back(elt);
14486 -    }
14487 -  MCAuto<DataArrayDouble> arr2=arr->renumber(permArrDefrag->getConstPointer());
14488 -  // perform redispatching of concerned MEDFileFieldPerMeshPerTypePerDisc -> values are in arr2
14489 -  MCAuto<DataArrayInt> explicitIdsNewInMesh=renumO2N->selectByTupleId(explicitIdsOldInMesh->begin(),explicitIdsOldInMesh->end());
14490 -  std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > entriesKeptPerDisc=MEDFileFieldPerMeshPerTypePerDisc::SplitPerDiscretization(entriesKeptNew2);
14491 -  bool ret=false;
14492 -  for(std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator it4=entriesKeptPerDisc.begin();it4!=entriesKeptPerDisc.end();it4++)
14493 -    {
14494 -      sid=0;
14495 -      /*for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator itL2=(*it4).begin();itL2!=(*it4).end();itL2++)
14496 -        {
14497 -          MEDFileFieldPerMeshPerTypePerDisc *curNC=const_cast<MEDFileFieldPerMeshPerTypePerDisc *>(*itL2);
14498 -          curNC->setNewStart(permArrDefrag->getIJ((*itL2)->getStart(),0)-tupleIdOfStartOfNewChuncks+tupleIdOfStartOfNewChuncksV[sid]);
14499 -          }*/
14500 -      ret=MEDFileFieldPerMeshPerTypePerDisc::RenumberChunks(tupleIdOfStartOfNewChuncks,*it4,explicitIdsNewInMesh,newCode,
14501 -                                                            glob,arr2,otherEntriesNew) || ret;
14502 -    }
14503 -  if(!ret)
14504 -    return false;
14505 -  // Assign new dispatching
14506 -  assignNewLeaves(otherEntriesNew);
14507 -  arr->deepCopyFrom(*arr2);
14508 -  return true;
14509 -}
14510 -
14511 -/*!
14512 - * \param [in,out] globalNum a global numbering counter for the renumbering.
14513 - * \param [out] its - list of pair (start,stop) kept
14514 - */
14515 -void MEDFileFieldPerMesh::keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its)
14516 -{
14517 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > ret;
14518 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14519 -    {
14520 -      std::vector< std::pair<int,int> > its2;
14521 -      if((*it)->keepOnlySpatialDiscretization(tof,globalNum,its2))
14522 -        {
14523 -          ret.push_back(*it);
14524 -          its.insert(its.end(),its2.begin(),its2.end());
14525 -        }
14526 -    }
14527 -  _field_pm_pt=ret;
14528 -}
14529 -
14530 -/*!
14531 - * \param [in,out] globalNum a global numbering counter for the renumbering.
14532 - * \param [out] its - list of pair (start,stop) kept
14533 - */
14534 -void MEDFileFieldPerMesh::keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its)
14535 -{
14536 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > ret;
14537 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14538 -    {
14539 -      std::vector< std::pair<int,int> > its2;
14540 -      if((*it)->keepOnlyGaussDiscretization(idOfDisc,globalNum,its2))
14541 -        {
14542 -          ret.push_back(*it);
14543 -          its.insert(its.end(),its2.begin(),its2.end());
14544 -        }
14545 -    }
14546 -  _field_pm_pt=ret;
14547 -}
14548 -
14549 -void MEDFileFieldPerMesh::assignNewLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves)
14550 -{
14551 -  std::map<INTERP_KERNEL::NormalizedCellType,std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc> > > types;
14552 -  for( std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >::const_iterator it=leaves.begin();it!=leaves.end();it++)
14553 -    types[(INTERP_KERNEL::NormalizedCellType)(*it)->getLocId()].push_back(*it);
14554 -  //
14555 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > fieldPmPt(types.size());
14556 -  std::map<INTERP_KERNEL::NormalizedCellType,std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc> > >::const_iterator it1=types.begin();
14557 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it2=fieldPmPt.begin();
14558 -  for(;it1!=types.end();it1++,it2++)
14559 -    {
14560 -      MCAuto<MEDFileFieldPerMeshPerType> elt=MEDFileFieldPerMeshPerType::New(this,(INTERP_KERNEL::NormalizedCellType)((*it1).second[0]->getLocId()));
14561 -      elt->setLeaves((*it1).second);
14562 -      MCAuto<MEDFileFieldPerMeshPerTypeCommon> elt2(DynamicCast<MEDFileFieldPerMeshPerType,MEDFileFieldPerMeshPerTypeCommon>(elt));
14563 -      *it2=elt2;
14564 -    }
14565 -  _field_pm_pt=fieldPmPt;
14566 -}
14567 -
14568 -void MEDFileFieldPerMesh::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
14569 -{
14570 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14571 -    (*it)->changePflsRefsNamesGen(mapOfModif);
14572 -}
14573 -
14574 -void MEDFileFieldPerMesh::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
14575 -{
14576 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14577 -    (*it)->changeLocsRefsNamesGen(mapOfModif);
14578 -}
14579 -
14580 -/*!
14581 - * \param [in] mesh is the whole mesh
14582 - */
14583 -MEDCouplingFieldDouble *MEDFileFieldPerMesh::getFieldOnMeshAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
14584 -{
14585 -  if(_field_pm_pt.empty())
14586 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : no types field set !");
14587 -  //
14588 -  std::vector< std::pair<int,int> > dads;
14589 -  std::vector<const DataArrayInt *> pfls;
14590 -  std::vector<DataArrayInt *> notNullPflsPerGeoType;
14591 -  std::vector<int> locs,code;
14592 -  std::vector<INTERP_KERNEL::NormalizedCellType> geoTypes;
14593 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14594 -    (*it)->getFieldAtLevel(mesh->getMeshDimension(),type,glob,dads,pfls,locs,geoTypes);
14595 -  // Sort by types
14596 -  SortArraysPerType(glob,type,geoTypes,dads,pfls,locs,code,notNullPflsPerGeoType);
14597 -  if(code.empty())
14598 -    {
14599 -      std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevel : " << "The field \"" << nasc.getName() << "\" exists but not with such spatial discretization or such dimension specified !";
14600 -      throw INTERP_KERNEL::Exception(oss.str());
14601 -    }
14602 -  //
14603 -  std::vector< MCAuto<DataArrayInt> > notNullPflsPerGeoType2(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
14604 -  std::vector< const DataArrayInt *> notNullPflsPerGeoType3(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
14605 -  if(type!=ON_NODES)
14606 -    {
14607 -      DataArrayInt *arr=mesh->checkTypeConsistencyAndContig(code,notNullPflsPerGeoType3);
14608 -      if(!arr)
14609 -        return finishField(type,glob,dads,locs,mesh,isPfl,arrOut,nasc);
14610 -      else
14611 -        {
14612 -          MCAuto<DataArrayInt> arr2(arr);
14613 -          return finishField2(type,glob,dads,locs,geoTypes,mesh,arr,isPfl,arrOut,nasc);
14614 -        }
14615 -    }
14616 -  else
14617 -    {
14618 -      if(code.size()!=3)
14619 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : internal error #1 !");
14620 -      int nb=code[1];
14621 -      if(code[2]==-1)
14622 -        {
14623 -          if(nb!=mesh->getNumberOfNodes())
14624 -            {
14625 -              std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevel : There is a problem there is " << nb << " nodes in field whereas there is " << mesh->getNumberOfNodes();
14626 -              oss << " nodes in mesh !";
14627 -              throw INTERP_KERNEL::Exception(oss.str());
14628 -            }
14629 -          return finishField(type,glob,dads,locs,mesh,isPfl,arrOut,nasc);
14630 -        }
14631 -      else
14632 -        return finishFieldNode2(glob,dads,locs,mesh,notNullPflsPerGeoType3[0],isPfl,arrOut,nasc);
14633 -    }
14634 -}
14635 -
14636 -DataArray *MEDFileFieldPerMesh::getFieldOnMeshAtLevelWithPfl(TypeOfField type, const MEDCouplingMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const
14637 -{
14638 -  if(_field_pm_pt.empty())
14639 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : no types field set !");
14640 -  //
14641 -  std::vector<std::pair<int,int> > dads;
14642 -  std::vector<const DataArrayInt *> pfls;
14643 -  std::vector<DataArrayInt *> notNullPflsPerGeoType;
14644 -  std::vector<int> locs,code;
14645 -  std::vector<INTERP_KERNEL::NormalizedCellType> geoTypes;
14646 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14647 -    (*it)->getFieldAtLevel(mesh->getMeshDimension(),type,glob,dads,pfls,locs,geoTypes);
14648 -  // Sort by types
14649 -  SortArraysPerType(glob,type,geoTypes,dads,pfls,locs,code,notNullPflsPerGeoType);
14650 -  if(code.empty())
14651 -    {
14652 -      std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevelWithPfl : " << "The field \"" << nasc.getName() << "\" exists but not with such spatial discretization or such dimension specified !";
14653 -      throw INTERP_KERNEL::Exception(oss.str());
14654 -    }
14655 -  std::vector< MCAuto<DataArrayInt> > notNullPflsPerGeoType2(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
14656 -  std::vector< const DataArrayInt *> notNullPflsPerGeoType3(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
14657 -  if(type!=ON_NODES)
14658 -    {
14659 -      MCAuto<DataArrayInt> arr=mesh->checkTypeConsistencyAndContig(code,notNullPflsPerGeoType3);
14660 -      return finishField4(dads,arr,mesh->getNumberOfCells(),pfl);
14661 -    }
14662 -  else
14663 -    {
14664 -      if(code.size()!=3)
14665 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : internal error #1 !");
14666 -      int nb=code[1];
14667 -      if(code[2]==-1)
14668 -        {
14669 -          if(nb!=mesh->getNumberOfNodes())
14670 -            {
14671 -              std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevel : There is a problem there is " << nb << " nodes in field whereas there is " << mesh->getNumberOfNodes();
14672 -              oss << " nodes in mesh !";
14673 -              throw INTERP_KERNEL::Exception(oss.str());
14674 -            }
14675 -        }
14676 -      return finishField4(dads,code[2]==-1?0:notNullPflsPerGeoType3[0],mesh->getNumberOfNodes(),pfl);
14677 -    }
14678 -  //
14679 -  return 0;
14680 -}
14681 -
14682 -void MEDFileFieldPerMesh::accept(MEDFileFieldVisitor& visitor) const
14683 -{
14684 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14685 -    if((*it).isNotNull())
14686 -      {
14687 -        visitor.newPerMeshPerTypeEntry(*it);
14688 -        (*it)->accept(visitor);
14689 -        visitor.endPerMeshPerTypeEntry(*it);
14690 -      }
14691 -}
14692 -
14693 -void MEDFileFieldPerMesh::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
14694 -{
14695 -  int globalSz=0;
14696 -  int nbOfEntries=0;
14697 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14698 -    {
14699 -      (*it)->getSizes(globalSz,nbOfEntries);
14700 -    }
14701 -  entries.resize(nbOfEntries);
14702 -  nbOfEntries=0;
14703 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14704 -    {
14705 -      (*it)->fillValues(nbOfEntries,entries);
14706 -    }
14707 -}
14708 -
14709 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId)
14710 -{
14711 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14712 -    {
14713 -      if((*it)->getGeoType()==typ)
14714 -        return (*it)->getLeafGivenLocId(locId);
14715 -    }
14716 -  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ);
14717 -  std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl;
14718 -  oss << "Possiblities are : ";
14719 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14720 -    {
14721 -      const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType());
14722 -      oss << "\"" << cm2.getRepr() << "\", ";
14723 -    }
14724 -  throw INTERP_KERNEL::Exception(oss.str());
14725 -}
14726 -
14727 -const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const
14728 -{
14729 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14730 -    {
14731 -      if((*it)->getGeoType()==typ)
14732 -        return (*it)->getLeafGivenLocId(locId);
14733 -    }
14734 -  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ);
14735 -  std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl;
14736 -  oss << "Possiblities are : ";
14737 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
14738 -    {
14739 -      const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType());
14740 -      oss << "\"" << cm2.getRepr() << "\", ";
14741 -    }
14742 -  throw INTERP_KERNEL::Exception(oss.str());
14743 -}
14744 -
14745 -/*!
14746 - * \param [in,out] start - Integer that gives the current position in the final aggregated array
14747 - * \param [in] pms - list of elements to aggregate. integer gives the mesh id 
14748 - * \param [in] dts - (Distribution of types) = level 1 : meshes to aggregate. Level 2 : all geo type. Level 3 pair specifying geo type and number of elem in geotype.
14749 - * \param [out] extractInfo - Gives information about the where the data comes from. It is a vector of triplet. First element in the triplet the mesh pos. The 2nd one the start pos. The 3rd the end pos.
14750 - */
14751 -MCAuto<MEDFileFieldPerMeshPerTypePerDisc> MEDFileFieldPerMeshPerTypePerDisc::Aggregate(int &start, const std::vector< std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, TypeOfField tof, MEDFileFieldPerMeshPerType *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo)
14752 -{
14753 -  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> ret(new MEDFileFieldPerMeshPerTypePerDisc(father,tof));
14754 -  if(pms.empty())
14755 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : empty input vector !");
14756 -  for(std::vector<std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator it=pms.begin();it!=pms.end();it++)
14757 -    {
14758 -      if(!(*it).second)
14759 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : presence of null pointer !");
14760 -      if(!(*it).second->getProfile().empty())
14761 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for profiles !");
14762 -      if(!(*it).second->getLocalization().empty())
14763 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for gauss pts !");
14764 -    }
14765 -  INTERP_KERNEL::NormalizedCellType gt(pms[0].second->getGeoType());
14766 -  std::size_t i(0);
14767 -  std::vector< std::pair<int,int> > filteredDTS;
14768 -  for(std::vector< std::vector< std::pair<int,int> > >::const_iterator it=dts.begin();it!=dts.end();it++,i++)
14769 -    for(std::vector< std::pair<int,int> >::const_iterator it2=(*it).begin();it2!=(*it).end();it2++)
14770 -      if((*it2).first==gt)
14771 -        filteredDTS.push_back(std::pair<int,int>(i,(*it2).second));
14772 -  if(pms.size()!=filteredDTS.size())
14773 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for generated profiles !");
14774 -  std::vector<std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator it1(pms.begin());
14775 -  std::vector< std::pair<int,int> >::const_iterator it2(filteredDTS.begin());
14776 -  int zeStart(start),nval(0);
14777 -  for(;it1!=pms.end();it1++,it2++)
14778 -    {
14779 -      if((*it1).first!=(*it2).first)
14780 -        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for generated profiles 2 !");
14781 -      int s1((*it1).second->getStart()),e1((*it1).second->getEnd());
14782 -      extractInfo.push_back(std::pair<int, std::pair<int,int> >((*it1).first,std::pair<int,int>(s1,e1)));
14783 -      start+=e1-s1;
14784 -      nval+=((*it1).second)->getNumberOfVals();
14785 -    }
14786 -  ret->_start=zeStart; ret->_end=start; ret->_nval=nval;
14787 -  return ret;
14788 -}
14789 -
14790 -MCAuto<MEDFileFieldPerMesh> MEDFileFieldPerMesh::Aggregate(int &start, const std::vector<const MEDFileFieldPerMesh *>& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, MEDFileAnyTypeField1TSWithoutSDA *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo)
14791 -{
14792 -  MCAuto<MEDFileFieldPerMesh> ret(new MEDFileFieldPerMesh(father,pms[0]->getMeshName(),pms[0]->getMeshIteration(),pms[0]->getMeshOrder()));
14793 -  std::map<INTERP_KERNEL::NormalizedCellType, std::vector< std::pair<int,const MEDFileFieldPerMeshPerType *> > > m;
14794 -  std::size_t i(0);
14795 -  for(std::vector<const MEDFileFieldPerMesh *>::const_iterator it=pms.begin();it!=pms.end();it++,i++)
14796 -    {
14797 -      const std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >& v((*it)->_field_pm_pt);
14798 -      for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it2=v.begin();it2!=v.end();it2++)
14799 -        {
14800 -          INTERP_KERNEL::NormalizedCellType gt((*it2)->getGeoType());
14801 -          const MEDFileFieldPerMeshPerType *elt(dynamic_cast<const MEDFileFieldPerMeshPerType *>((const MEDFileFieldPerMeshPerTypeCommon *)(*it2)));
14802 -          if(!elt)
14803 -            throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::Aggregate : not managed for structelement !");
14804 -          m[gt].push_back(std::pair<int,const MEDFileFieldPerMeshPerType *>(i,elt));
14805 -        }
14806 -    }
14807 -  for(std::map<INTERP_KERNEL::NormalizedCellType, std::vector< std::pair<int,const MEDFileFieldPerMeshPerType *> > >::const_iterator it=m.begin();it!=m.end();it++)
14808 -    {
14809 -      MCAuto<MEDFileFieldPerMeshPerType> agg(MEDFileFieldPerMeshPerType::Aggregate(start,(*it).second,dts,(*it).first,ret,extractInfo));
14810 -      MCAuto<MEDFileFieldPerMeshPerTypeCommon> agg2(DynamicCast<MEDFileFieldPerMeshPerType,MEDFileFieldPerMeshPerTypeCommon>(agg));
14811 -      ret->_field_pm_pt.push_back(agg2);
14812 -    }
14813 -  return ret;
14814 -}
14815 -
14816 -int MEDFileFieldPerMesh::addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type)
14817 -{
14818 -  int i=0;
14819 -  int pos=std::distance(typmai2,std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,type));
14820 -  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it2=_field_pm_pt.begin();
14821 -  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++,i++)
14822 -    {
14823 -      INTERP_KERNEL::NormalizedCellType curType=(*it)->getGeoType();
14824 -      if(type==curType)
14825 -        return i;
14826 -      else
14827 -        {
14828 -          int pos2=std::distance(typmai2,std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,curType));
14829 -          if(pos>pos2)
14830 -            it2=it+1;
14831 -        }
14832 -    }
14833 -  int ret=std::distance(_field_pm_pt.begin(),it2);
14834 -  _field_pm_pt.insert(it2,MEDFileFieldPerMeshPerType::New(this,type));
14835 -  return ret;
14836 -}
14837 -
14838 -/*!
14839 - * 'dads' and 'locs' input parameters have the same number of elements
14840 - * \param [in] mesh is \b NOT the global mesh, but the possibly reduced mesh. \a mesh parameter will be directly aggregated in the returned field
14841 - */
14842 -MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField(TypeOfField type, const MEDFileFieldGlobsReal *glob,
14843 -                                                         const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs,
14844 -                                                         const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
14845 -{
14846 -  isPfl=false;
14847 -  MCAuto<MEDCouplingFieldDouble> ret=MEDCouplingFieldDouble::New(type,ONE_TIME);
14848 -  ret->setMesh(mesh); ret->setName(nasc.getName().c_str()); ret->setTime(getTime(),getIteration(),getOrder()); ret->setTimeUnit(nasc.getDtUnit().c_str());
14849 -  MCAuto<DataArray> da=getOrCreateAndGetArray()->selectByTupleRanges(dads);
14850 -  const std::vector<std::string>& infos=getInfo();
14851 -  da->setInfoOnComponents(infos);
14852 -  da->setName("");
14853 -  if(type==ON_GAUSS_PT)
14854 -    {
14855 -      int offset=0;
14856 -      int nbOfArrs=dads.size();
14857 -      for(int i=0;i<nbOfArrs;i++)
14858 -        {
14859 -          std::vector<std::pair<int,int> > dads2(1,dads[i]); const std::vector<int> locs2(1,locs[i]);
14860 -          const std::vector<INTERP_KERNEL::NormalizedCellType> geoTypes2(1,INTERP_KERNEL::NORM_ERROR);
14861 -          int nbOfElems=ComputeNbOfElems(glob,type,geoTypes2,dads2,locs2);
14862 -          MCAuto<DataArrayInt> di=DataArrayInt::New();
14863 -          di->alloc(nbOfElems,1);
14864 -          di->iota(offset);
14865 -          const MEDFileFieldLoc& fl=glob->getLocalizationFromId(locs[i]);
14866 -          ret->setGaussLocalizationOnCells(di->getConstPointer(),di->getConstPointer()+nbOfElems,fl.getRefCoords(),fl.getGaussCoords(),fl.getGaussWeights());
14867 -          offset+=nbOfElems;
14868 -        }
14869 -    }
14870 -  arrOut=da;
14871 -  return ret.retn();
14872 -}
14873 -
14874 -/*!
14875 - * This method is an extension of MEDFileFieldPerMesh::finishField method. It deals with profiles. This method should be called when type is different from ON_NODES.
14876 - * 'dads', 'locs' and 'geoTypes' input parameters have the same number of elements.
14877 - * No check of this is performed. 'da' array contains an array in old2New style to be applyied to mesh to obtain the right support.
14878 - * The order of cells in the returned field is those imposed by the profile.
14879 - * \param [in] mesh is the global mesh.
14880 - */
14881 -MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField2(TypeOfField type, const MEDFileFieldGlobsReal *glob,
14882 -                                                          const std::vector<std::pair<int,int> >& dads, const std::vector<int>& locs,
14883 -                                                          const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes,
14884 -                                                          const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
14885 -{
14886 -  if(da->isIota(mesh->getNumberOfCells()))
14887 -    return finishField(type,glob,dads,locs,mesh,isPfl,arrOut,nasc);
14888 -  MCAuto<MEDCouplingMesh> m2=mesh->buildPart(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
14889 -  m2->setName(mesh->getName().c_str());
14890 -  MCAuto<MEDCouplingFieldDouble> ret=finishField(type,glob,dads,locs,m2,isPfl,arrOut,nasc);
14891 -  isPfl=true;
14892 -  return ret.retn();
14893 -}
14894 -
14895 -/*!
14896 - * This method is the complement of MEDFileFieldPerMesh::finishField2 method except that this method works for node profiles.
14897 - */
14898 -MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishFieldNode2(const MEDFileFieldGlobsReal *glob,
14899 -                                                              const std::vector<std::pair<int,int> >& dads, const std::vector<int>& locs,
14900 -                                                              const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
14901 -{
14902 -  if(da->isIota(mesh->getNumberOfNodes()))
14903 -    return finishField(ON_NODES,glob,dads,locs,mesh,isPfl,arrOut,nasc);
14904 -  // Treatment of particular case where nodal field on pfl is requested with a meshDimRelToMax=1.
14905 -  const MEDCouplingUMesh *meshu=dynamic_cast<const MEDCouplingUMesh *>(mesh);
14906 -  if(meshu)
14907 -    {
14908 -      if(meshu->getNodalConnectivity()==0)
14909 -        {
14910 -          MCAuto<MEDCouplingFieldDouble> ret=finishField(ON_CELLS,glob,dads,locs,mesh,isPfl,arrOut,nasc);
14911 -          int nb=da->getNbOfElems();
14912 -          const int *ptr=da->getConstPointer();
14913 -          MEDCouplingUMesh *meshuc=const_cast<MEDCouplingUMesh *>(meshu);
14914 -          meshuc->allocateCells(nb);
14915 -          for(int i=0;i<nb;i++)
14916 -            meshuc->insertNextCell(INTERP_KERNEL::NORM_POINT1,1,ptr+i);
14917 -          meshuc->finishInsertingCells();
14918 -          ret->setMesh(meshuc);
14919 -          const MEDCouplingFieldDiscretization *disc=ret->getDiscretization();
14920 -          if(!disc) throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::finishFieldNode2 : internal error, no discretization on field !");
14921 -          disc->checkCoherencyBetween(meshuc,arrOut);
14922 -          return ret.retn();
14923 -        }
14924 -    }
14925 -  //
14926 -  MCAuto<MEDCouplingFieldDouble> ret=finishField(ON_NODES,glob,dads,locs,mesh,isPfl,arrOut,nasc);
14927 -  isPfl=true;
14928 -  DataArrayInt *arr2=0;
14929 -  MCAuto<DataArrayInt> cellIds=mesh->getCellIdsFullyIncludedInNodeIds(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
14930 -  MCAuto<MEDCouplingMesh> mesh2=mesh->buildPartAndReduceNodes(cellIds->getConstPointer(),cellIds->getConstPointer()+cellIds->getNbOfElems(),arr2);
14931 -  MCAuto<DataArrayInt> arr3(arr2);
14932 -  int nnodes=mesh2->getNumberOfNodes();
14933 -  if(nnodes==(int)da->getNbOfElems())
14934 -    {
14935 -      MCAuto<DataArrayInt> da3=da->transformWithIndArrR(arr2->begin(),arr2->end());
14936 -      arrOut->renumberInPlace(da3->getConstPointer());
14937 -      mesh2->setName(mesh->getName().c_str());
14938 -      ret->setMesh(mesh2);
14939 -      return ret.retn();
14940 -    }
14941 -  else
14942 -    {
14943 -      std::ostringstream oss; oss << "MEDFileFieldPerMesh::finishFieldNode2 : The field on nodes lies on a node profile so that it is impossible to find a submesh having exactly the same nodes of that profile !!!";
14944 -      oss << "So it is impossible to return a well definied MEDCouplingFieldDouble instance on specified mesh on a specified meshDim !" << std::endl;
14945 -      oss << "To retrieve correctly such a field you have 3 possibilities :" << std::endl;
14946 -      oss << " - use an another meshDim compatible with the field on nodes (MED file does not have such information)" << std::endl;
14947 -      oss << " - use an another a meshDimRelToMax equal to 1 -> it will return a mesh with artificial cell POINT1 containing the profile !" << std::endl;
14948 -      oss << " - if definitely the node profile has no link with mesh connectivity use MEDFileField1TS::getFieldWithProfile or MEDFileFieldMultiTS::getFieldWithProfile methods instead !";
14949 -      throw INTERP_KERNEL::Exception(oss.str());
14950 -    }
14951 -  return 0;
14952 -}
14953 -
14954 -/*!
14955 - * This method is the most light method of field retrieving.
14956 - */
14957 -DataArray *MEDFileFieldPerMesh::finishField4(const std::vector<std::pair<int,int> >& dads, const DataArrayInt *pflIn, int nbOfElems, DataArrayInt *&pflOut) const
14958 -{
14959 -  if(!pflIn)
14960 -    {
14961 -      pflOut=DataArrayInt::New();
14962 -      pflOut->alloc(nbOfElems,1);
14963 -      pflOut->iota(0);
14964 -    }
14965 -  else
14966 -    {
14967 -      pflOut=const_cast<DataArrayInt*>(pflIn);
14968 -      pflOut->incrRef();
14969 -    }
14970 -  MCAuto<DataArrayInt> safePfl(pflOut);
14971 -  MCAuto<DataArray> da=getOrCreateAndGetArray()->selectByTupleRanges(dads);
14972 -  const std::vector<std::string>& infos=getInfo();
14973 -  int nbOfComp=infos.size();
14974 -  for(int i=0;i<nbOfComp;i++)
14975 -    da->setInfoOnComponent(i,infos[i].c_str());
14976 -  safePfl->incrRef();
14977 -  return da.retn();
14978 -}
14979 -
14980 -
14981 -/// @cond INTERNAL
14982 -
14983 -class MFFPMIter
14984 -{
14985 -public:
14986 -  static MFFPMIter *NewCell(const MEDFileEntities *entities);
14987 -  static bool IsPresenceOfNode(const MEDFileEntities *entities);
14988 -  virtual ~MFFPMIter() { }
14989 -  virtual void begin() = 0;
14990 -  virtual bool finished() const = 0;
14991 -  virtual void next() = 0;
14992 -  virtual int current() const = 0;
14993 -};
14994 -
14995 -class MFFPMIterSimple : public MFFPMIter
14996 -{
14997 -public:
14998 -  MFFPMIterSimple():_pos(0) { }
14999 -  void begin() { _pos=0; }
15000 -  bool finished() const { return _pos>=MED_N_CELL_FIXED_GEO; }
15001 -  void next() { _pos++; }
15002 -  int current() const { return _pos; }
15003 -private:
15004 -  int _pos;
15005 -};
15006 -
15007 -class MFFPMIter2 : public MFFPMIter
15008 -{
15009 -public:
15010 -  MFFPMIter2(const std::vector<INTERP_KERNEL::NormalizedCellType>& cts);
15011 -  void begin() { _it=_ids.begin(); }
15012 -  bool finished() const { return _it==_ids.end(); }
15013 -  void next() { _it++; }
15014 -  int current() const { return *_it; }
15015 -private:
15016 -  std::vector<int> _ids;
15017 -  std::vector<int>::const_iterator _it;
15018 -};
15019 -
15020 -MFFPMIter *MFFPMIter::NewCell(const MEDFileEntities *entities)
15021 -{
15022 -  if(!entities)
15023 -    return new MFFPMIterSimple;
15024 -  else
15025 -    {
15026 -      const MEDFileStaticEntities *entities2(dynamic_cast<const MEDFileStaticEntities *>(entities));
15027 -      if(entities2)
15028 -        {
15029 -          std::vector<INTERP_KERNEL::NormalizedCellType> tmp;
15030 -          const std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >& myEnt(entities2->getEntries());
15031 -          for(std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >::const_iterator it=myEnt.begin();it!=myEnt.end();it++)
15032 -            {
15033 -              if((*it).first==ON_CELLS || (*it).first==ON_GAUSS_NE || (*it).first==ON_GAUSS_PT)
15034 -                tmp.push_back((*it).second);
15035 -            }
15036 -          return new MFFPMIter2(tmp);
15037 -        }
15038 -      return new MFFPMIterSimple;// for MEDFileAllStaticEntites and MEDFileAllStaticEntitiesPlusDyn cells are in
15039 -    }
15040 -}
15041 -
15042 -bool MFFPMIter::IsPresenceOfNode(const MEDFileEntities *entities)
15043 -{
15044 -  if(!entities)
15045 -    return true;
15046 -  else
15047 -    {
15048 -      const MEDFileStaticEntities *entities2(dynamic_cast<const MEDFileStaticEntities *>(entities));
15049 -      if(entities2)
15050 -        {
15051 -          const std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >& myEnt(entities2->getEntries());
15052 -          for(std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >::const_iterator it=myEnt.begin();it!=myEnt.end();it++)
15053 -            if((*it).first==ON_NODES)
15054 -              return true;
15055 -          return false;
15056 -        }
15057 -      return true;// for MEDFileAllStaticEntites and MEDFileAllStaticEntitiesPlusDyn nodes are in
15058 -    }
15059 -}
15060 -
15061 -MFFPMIter2::MFFPMIter2(const std::vector<INTERP_KERNEL::NormalizedCellType>& cts)
15062 -{
15063 -  std::size_t sz(cts.size());
15064 -  _ids.resize(sz);
15065 -  for(std::size_t i=0;i<sz;i++)
15066 -    {
15067 -      INTERP_KERNEL::NormalizedCellType *loc(std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,cts[i]));
15068 -      if(loc!=typmai2+MED_N_CELL_FIXED_GEO)
15069 -        _ids[i]=(int)std::distance(typmai2,loc);
15070 -      else
15071 -        throw INTERP_KERNEL::Exception("MFFPMIter2 : The specified geo type does not exists !");
15072 -    }
15073 -}
15074 -
15075 -/// @endcond
15076 -
15077 -MEDFileFieldPerMesh::MEDFileFieldPerMesh(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities):_mesh_iteration(meshIteration),_mesh_order(meshOrder),
15078 -    _father(fath)
15079 -{
15080 -  INTERP_KERNEL::AutoPtr<char> meshName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
15081 -  INTERP_KERNEL::AutoPtr<char> pflName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
15082 -  INTERP_KERNEL::AutoPtr<char> locName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
15083 -  const MEDFileUMesh *mmu(dynamic_cast<const MEDFileUMesh *>(mm));
15084 -  INTERP_KERNEL::AutoCppPtr<MFFPMIter> iter0(MFFPMIter::NewCell(entities));
15085 -  for(iter0->begin();!iter0->finished();iter0->next())
15086 -    {
15087 -      int nbProfile (MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_CELL        ,typmai[iter0->current()],meshCsit+1,meshName,pflName,locName));
15088 -      std::string name0(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE+1));
15089 -      int nbProfile2(MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_NODE_ELEMENT,typmai[iter0->current()],meshCsit+1,meshName,pflName,locName));
15090 -      std::string name1(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE+1));
15091 -      if(nbProfile>0 || nbProfile2>0)
15092 -        {
15093 -          const PartDefinition *pd(0);
15094 -          if(mmu)
15095 -            pd=mmu->getPartDefAtLevel(mmu->getRelativeLevOnGeoType(typmai2[iter0->current()]),typmai2[iter0->current()]);
15096 -          _field_pm_pt.push_back(MEDFileFieldPerMeshPerType::NewOnRead(fid,this,ON_CELLS,typmai2[iter0->current()],nasc,pd));
15097 -          if(nbProfile>0)
15098 -            setMeshName(name0);
15099 -          else
15100 -            setMeshName(name1);
15101 -        }
15102 -    }
15103 -  if(MFFPMIter::IsPresenceOfNode(entities))
15104 -    {
15105 -      int nbProfile(MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_NODE,MED_NONE,meshCsit+1,meshName,pflName,locName));
15106 -      if(nbProfile>0)
15107 -        {
15108 -          const PartDefinition *pd(0);
15109 -          if(mmu)
15110 -            pd=mmu->getPartDefAtLevel(1,INTERP_KERNEL::NORM_ERROR);
15111 -          _field_pm_pt.push_back(MEDFileFieldPerMeshPerType::NewOnRead(fid,this,ON_NODES,INTERP_KERNEL::NORM_ERROR,nasc,pd));
15112 -          setMeshName(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE));
15113 -        }
15114 -    }
15115 -  if(!entities)
15116 -    return ;
15117 -  std::vector<int> dynGT(entities->getDynGTAvail());
15118 -  for(std::vector<int>::const_iterator it=dynGT.begin();it!=dynGT.end();it++)
15119 -    {
15120 -      int nbPfl(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_STRUCT_ELEMENT,*it,pflName,locName));
15121 -      if(nbPfl>0)
15122 -        {
15123 -          _field_pm_pt.push_back(MEDFileFieldPerMeshPerTypeDyn::NewOnRead(fid,this,entities,*it,nasc));
15124 -          setMeshName(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE));
15125 -        }
15126 -    }
15127 -}
15128 -
15129 -MEDFileFieldPerMesh::MEDFileFieldPerMesh(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh):_father(fath)
15130 -{
15131 -  copyTinyInfoFrom(mesh);
15132 -}
15133 -
15134 -void MEDFileFieldGlobs::loadProfileInFile(med_idt fid, int id, const std::string& pflName)
15135 -{
15136 -  if(id>=(int)_pfls.size())
15137 -    _pfls.resize(id+1);
15138 -  _pfls[id]=DataArrayInt::New();
15139 -  int lgth(MEDprofileSizeByName(fid,pflName.c_str()));
15140 -  _pfls[id]->setName(pflName);
15141 -  _pfls[id]->alloc(lgth,1);
15142 -  MEDFILESAFECALLERRD0(MEDprofileRd,(fid,pflName.c_str(),_pfls[id]->getPointer()));
15143 -  _pfls[id]->applyLin(1,-1,0);//Converting into C format
15144 -}
15145 -
15146 -void MEDFileFieldGlobs::loadProfileInFile(med_idt fid, int i)
15147 -{
15148 -  INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
15149 -  int sz;
15150 -  MEDFILESAFECALLERRD0(MEDprofileInfo,(fid,i+1,pflName,&sz));
15151 -  std::string pflCpp=MEDLoaderBase::buildStringFromFortran(pflName,MED_NAME_SIZE);
15152 -  if(i>=(int)_pfls.size())
15153 -    _pfls.resize(i+1);
15154 -  _pfls[i]=DataArrayInt::New();
15155 -  _pfls[i]->alloc(sz,1);
15156 -  _pfls[i]->setName(pflCpp.c_str());
15157 -  MEDFILESAFECALLERRD0(MEDprofileRd,(fid,pflName,_pfls[i]->getPointer()));
15158 -  _pfls[i]->applyLin(1,-1,0);//Converting into C format
15159 -}
15160 -
15161 -void MEDFileFieldGlobs::writeGlobals(med_idt fid, const MEDFileWritable& opt) const
15162 -{
15163 -  int nbOfPfls=_pfls.size();
15164 -  for(int i=0;i<nbOfPfls;i++)
15165 -    {
15166 -      MCAuto<DataArrayInt> cpy=_pfls[i]->deepCopy();
15167 -      cpy->applyLin(1,1,0);
15168 -      INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
15169 -      MEDLoaderBase::safeStrCpy(_pfls[i]->getName().c_str(),MED_NAME_SIZE,pflName,opt.getTooLongStrPolicy());
15170 -      MEDFILESAFECALLERWR0(MEDprofileWr,(fid,pflName,_pfls[i]->getNumberOfTuples(),cpy->getConstPointer()));
15171 -    }
15172 -  //
15173 -  int nbOfLocs=_locs.size();
15174 -  for(int i=0;i<nbOfLocs;i++)
15175 -    _locs[i]->writeLL(fid);
15176 -}
15177 -
15178 -void MEDFileFieldGlobs::appendGlobs(const MEDFileFieldGlobs& other, double eps)
15179 -{
15180 -  std::vector<std::string> pfls=getPfls();
15181 -  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=other._pfls.begin();it!=other._pfls.end();it++)
15182 -    {
15183 -      std::vector<std::string>::iterator it2=std::find(pfls.begin(),pfls.end(),(*it)->getName());
15184 -      if(it2==pfls.end())
15185 -        {
15186 -          _pfls.push_back(*it);
15187 -        }
15188 -      else
15189 -        {
15190 -          int id=std::distance(pfls.begin(),it2);
15191 -          if(!(*it)->isEqual(*_pfls[id]))
15192 -            {
15193 -              std::ostringstream oss; oss << "MEDFileFieldGlobs::appendGlobs : Profile \"" << (*it)->getName() << "\" already exists and is different from those expecting to be append !";
15194 -              throw INTERP_KERNEL::Exception(oss.str());
15195 -            }
15196 -        }
15197 -    }
15198 -  std::vector<std::string> locs=getLocs();
15199 -  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=other._locs.begin();it!=other._locs.end();it++)
15200 -    {
15201 -      std::vector<std::string>::iterator it2=std::find(locs.begin(),locs.end(),(*it)->getName());
15202 -      if(it2==locs.end())
15203 -        {
15204 -          _locs.push_back(*it);
15205 -        }
15206 -      else
15207 -        {
15208 -          int id=std::distance(locs.begin(),it2);
15209 -          if(!(*it)->isEqual(*_locs[id],eps))
15210 -            {
15211 -              std::ostringstream oss; oss << "MEDFileFieldGlobs::appendGlobs : Localization \"" << (*it)->getName() << "\" already exists and is different from those expecting to be append !";
15212 -              throw INTERP_KERNEL::Exception(oss.str());
15213 -            }
15214 -        }
15215 -    }
15216 -}
15217 -
15218 -void MEDFileFieldGlobs::checkGlobsPflsPartCoherency(const std::vector<std::string>& pflsUsed) const
15219 -{
15220 -  for(std::vector<std::string>::const_iterator it=pflsUsed.begin();it!=pflsUsed.end();it++)
15221 -    getProfile((*it).c_str());
15222 -}
15223 -
15224 -void MEDFileFieldGlobs::checkGlobsLocsPartCoherency(const std::vector<std::string>& locsUsed) const
15225 -{
15226 -  for(std::vector<std::string>::const_iterator it=locsUsed.begin();it!=locsUsed.end();it++)
15227 -    getLocalization((*it).c_str());
15228 -}
15229 -
15230 -void MEDFileFieldGlobs::loadGlobals(med_idt fid, const MEDFileFieldGlobsReal& real)
15231 -{
15232 -  std::vector<std::string> profiles=real.getPflsReallyUsed();
15233 -  int sz=profiles.size();
15234 -  _pfls.resize(sz);
15235 -  for(int i=0;i<sz;i++)
15236 -    loadProfileInFile(fid,i,profiles[i].c_str());
15237 -  //
15238 -  std::vector<std::string> locs=real.getLocsReallyUsed();
15239 -  sz=locs.size();
15240 -  _locs.resize(sz);
15241 -  for(int i=0;i<sz;i++)
15242 -    _locs[i]=MEDFileFieldLoc::New(fid,locs[i].c_str());
15243 -}
15244 -
15245 -void MEDFileFieldGlobs::loadAllGlobals(med_idt fid, const MEDFileEntities *entities)
15246 -{
15247 -  int nProfil=MEDnProfile(fid);
15248 -  for(int i=0;i<nProfil;i++)
15249 -    loadProfileInFile(fid,i);
15250 -  int sz=MEDnLocalization(fid);
15251 -  _locs.resize(sz);
15252 -  for(int i=0;i<sz;i++)
15253 -    {
15254 -      _locs[i]=MEDFileFieldLoc::New(fid,i,entities);
15255 -    }
15256 -}
15257 -
15258 -MEDFileFieldGlobs *MEDFileFieldGlobs::New(med_idt fid)
15259 -{
15260 -  return new MEDFileFieldGlobs(fid);
15261 -}
15262 -
15263 -MEDFileFieldGlobs *MEDFileFieldGlobs::New()
15264 -{
15265 -  return new MEDFileFieldGlobs;
15266 -}
15267 -
15268 -std::size_t MEDFileFieldGlobs::getHeapMemorySizeWithoutChildren() const
15269 -{
15270 -  return _file_name.capacity()+_pfls.capacity()*sizeof(MCAuto<DataArrayInt>)+_locs.capacity()*sizeof(MCAuto<MEDFileFieldLoc>);
15271 -}
15272 -
15273 -std::vector<const BigMemoryObject *> MEDFileFieldGlobs::getDirectChildrenWithNull() const
15274 -{
15275 -  std::vector<const BigMemoryObject *> ret;
15276 -  for(std::vector< MCAuto< DataArrayInt > >::const_iterator it=_pfls.begin();it!=_pfls.end();it++)
15277 -    ret.push_back((const DataArrayInt *)*it);
15278 -  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++)
15279 -    ret.push_back((const MEDFileFieldLoc *)*it);
15280 -  return ret;
15281 -}
15282 -
15283 -MEDFileFieldGlobs *MEDFileFieldGlobs::deepCopy() const
15284 -{
15285 -  MCAuto<MEDFileFieldGlobs> ret=new MEDFileFieldGlobs(*this);
15286 -  std::size_t i=0;
15287 -  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
15288 -    {
15289 -      if((const DataArrayInt *)*it)
15290 -        ret->_pfls[i]=(*it)->deepCopy();
15291 -    }
15292 -  i=0;
15293 -  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++,i++)
15294 -    {
15295 -      if((const MEDFileFieldLoc*)*it)
15296 -        ret->_locs[i]=(*it)->deepCopy();
15297 -    }
15298 -  return ret.retn();
15299 -}
15300 -
15301 -/*!
15302 - * \throw if a profile in \a pfls in not in \a this.
15303 - * \throw if a localization in \a locs in not in \a this.
15304 - * \sa MEDFileFieldGlobs::deepCpyPart
15305 - */
15306 -MEDFileFieldGlobs *MEDFileFieldGlobs::shallowCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const
15307 -{
15308 -  MCAuto<MEDFileFieldGlobs> ret=MEDFileFieldGlobs::New();
15309 -  for(std::vector<std::string>::const_iterator it1=pfls.begin();it1!=pfls.end();it1++)
15310 -    {
15311 -      DataArrayInt *pfl=const_cast<DataArrayInt *>(getProfile((*it1).c_str()));
15312 -      if(!pfl)
15313 -        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::shallowCpyPart : internal error ! pfl null !");
15314 -      pfl->incrRef();
15315 -      MCAuto<DataArrayInt> pfl2(pfl);
15316 -      ret->_pfls.push_back(pfl2);
15317 -    }
15318 -  for(std::vector<std::string>::const_iterator it2=locs.begin();it2!=locs.end();it2++)
15319 -    {
15320 -      MEDFileFieldLoc *loc=const_cast<MEDFileFieldLoc *>(&getLocalization((*it2).c_str()));
15321 -      if(!loc)
15322 -        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::shallowCpyPart : internal error ! loc null !");
15323 -      loc->incrRef();
15324 -      MCAuto<MEDFileFieldLoc> loc2(loc);
15325 -      ret->_locs.push_back(loc2);
15326 -    }
15327 -  ret->setFileName(getFileName());
15328 -  return ret.retn();
15329 -}
15330 -
15331 -/*!
15332 - * \throw if a profile in \a pfls in not in \a this.
15333 - * \throw if a localization in \a locs in not in \a this.
15334 - * \sa MEDFileFieldGlobs::shallowCpyPart
15335 - */
15336 -MEDFileFieldGlobs *MEDFileFieldGlobs::deepCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const
15337 -{
15338 -  MCAuto<MEDFileFieldGlobs> ret=MEDFileFieldGlobs::New();
15339 -  for(std::vector<std::string>::const_iterator it1=pfls.begin();it1!=pfls.end();it1++)
15340 -    {
15341 -      DataArrayInt *pfl=const_cast<DataArrayInt *>(getProfile((*it1).c_str()));
15342 -      if(!pfl)
15343 -        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::deepCpyPart : internal error ! pfl null !");
15344 -      ret->_pfls.push_back(pfl->deepCopy());
15345 -    }
15346 -  for(std::vector<std::string>::const_iterator it2=locs.begin();it2!=locs.end();it2++)
15347 -    {
15348 -      MEDFileFieldLoc *loc=const_cast<MEDFileFieldLoc *>(&getLocalization((*it2).c_str()));
15349 -      if(!loc)
15350 -        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::deepCpyPart : internal error ! loc null !");
15351 -      ret->_locs.push_back(loc->deepCopy());
15352 -    }
15353 -  ret->setFileName(getFileName());
15354 -  return ret.retn();
15355 -}
15356 -
15357 -MEDFileFieldGlobs::MEDFileFieldGlobs(med_idt fid):_file_name(MEDFileWritable::FileNameFromFID(fid))
15358 -{
15359 -}
15360 -
15361 -MEDFileFieldGlobs::MEDFileFieldGlobs()
15362 -{
15363 -}
15364 -
15365 -MEDFileFieldGlobs::~MEDFileFieldGlobs()
15366 -{
15367 -}
15368 -
15369 -void MEDFileFieldGlobs::simpleRepr(std::ostream& oss) const
15370 -{
15371 -  oss << "Profiles :\n";
15372 -  std::size_t n=_pfls.size();
15373 -  for(std::size_t i=0;i<n;i++)
15374 -    {
15375 -      oss << "  - #" << i << " ";
15376 -      const DataArrayInt *pfl=_pfls[i];
15377 -      if(pfl)
15378 -        oss << "\"" << pfl->getName() << "\"\n";
15379 -      else
15380 -        oss << "EMPTY !\n";
15381 -    }
15382 -  n=_locs.size();
15383 -  oss << "Localizations :\n";
15384 -  for(std::size_t i=0;i<n;i++)
15385 -    {
15386 -      oss << "  - #" << i << " ";
15387 -      const MEDFileFieldLoc *loc=_locs[i];
15388 -      if(loc)
15389 -        loc->simpleRepr(oss);
15390 -      else
15391 -        oss<< "EMPTY !\n";
15392 -    }
15393 -}
15394 -
15395 -void MEDFileFieldGlobs::changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
15396 -{
15397 -  for(std::vector< MCAuto<DataArrayInt> >::iterator it=_pfls.begin();it!=_pfls.end();it++)
15398 -    {
15399 -      DataArrayInt *elt(*it);
15400 -      if(elt)
15401 -        {
15402 -          std::string name(elt->getName());
15403 -          for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
15404 -            {
15405 -              if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end())
15406 -                {
15407 -                  elt->setName((*it2).second.c_str());
15408 -                  return;
15409 -                }
15410 -            }
15411 -        }
15412 -    }
15413 -}
15414 -
15415 -void MEDFileFieldGlobs::changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
15416 -{
15417 -  for(std::vector< MCAuto<MEDFileFieldLoc> >::iterator it=_locs.begin();it!=_locs.end();it++)
15418 -    {
15419 -      MEDFileFieldLoc *elt(*it);
15420 -      if(elt)
15421 -        {
15422 -          std::string name(elt->getName());
15423 -          for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
15424 -            {
15425 -              if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end())
15426 -                {
15427 -                  elt->setName((*it2).second.c_str());
15428 -                  return;
15429 -                }
15430 -            }
15431 -        }
15432 -    }
15433 -}
15434 -
15435 -int MEDFileFieldGlobs::getNbOfGaussPtPerCell(int locId) const
15436 -{
15437 -  if(locId<0 || locId>=(int)_locs.size())
15438 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getNbOfGaussPtPerCell : Invalid localization id !");
15439 -  return _locs[locId]->getNbOfGaussPtPerCell();
15440 -}
15441 -
15442 -const MEDFileFieldLoc& MEDFileFieldGlobs::getLocalization(const std::string& locName) const
15443 -{
15444 -  return getLocalizationFromId(getLocalizationId(locName));
15445 -}
15446 -
15447 -const MEDFileFieldLoc& MEDFileFieldGlobs::getLocalizationFromId(int locId) const
15448 -{
15449 -  if(locId<0 || locId>=(int)_locs.size())
15450 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getLocalizationFromId : Invalid localization id !");
15451 -  return *_locs[locId];
15452 -}
15453 -
15454 -/// @cond INTERNAL
15455 -namespace MEDCouplingImpl
15456 -{
15457 -  class LocFinder
15458 -  {
15459 -  public:
15460 -    LocFinder(const std::string& loc):_loc(loc) { }
15461 -    bool operator() (const MCAuto<MEDFileFieldLoc>& loc) { return loc->isName(_loc); }
15462 -  private:
15463 -    const std::string &_loc;
15464 -  };
15465 -
15466 -  class PflFinder
15467 -  {
15468 -  public:
15469 -    PflFinder(const std::string& pfl):_pfl(pfl) { }
15470 -    bool operator() (const MCAuto<DataArrayInt>& pfl) { return _pfl==pfl->getName(); }
15471 -  private:
15472 -    const std::string& _pfl;
15473 -  };
15474 -}
15475 -/// @endcond
15476 -
15477 -int MEDFileFieldGlobs::getLocalizationId(const std::string& loc) const
15478 -{
15479 -  std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=std::find_if(_locs.begin(),_locs.end(),MEDCouplingImpl::LocFinder(loc));
15480 -  if(it==_locs.end())
15481 -    {
15482 -      std::ostringstream oss; oss << "MEDFileFieldGlobs::getLocalisationId : no such localisation name : \"" << loc << "\" Possible localizations are : ";
15483 -      for(it=_locs.begin();it!=_locs.end();it++)
15484 -        oss << "\"" << (*it)->getName() << "\", ";
15485 -      throw INTERP_KERNEL::Exception(oss.str());
15486 -    }
15487 -  return std::distance(_locs.begin(),it);
15488 -}
15489 -
15490 -/*!
15491 - * The returned value is never null.
15492 - */
15493 -const DataArrayInt *MEDFileFieldGlobs::getProfile(const std::string& pflName) const
15494 -{
15495 -  std::string pflNameCpp(pflName);
15496 -  std::vector< MCAuto<DataArrayInt> >::const_iterator it=std::find_if(_pfls.begin(),_pfls.end(),MEDCouplingImpl::PflFinder(pflNameCpp));
15497 -  if(it==_pfls.end())
15498 -    {
15499 -      std::ostringstream oss; oss << "MEDFileFieldGlobs::getProfile: no such profile name : \"" << pflNameCpp << "\" Possible profiles are : ";
15500 -      for(it=_pfls.begin();it!=_pfls.end();it++)
15501 -        oss << "\"" << (*it)->getName() << "\", ";
15502 -      throw INTERP_KERNEL::Exception(oss.str());
15503 -    }
15504 -  return *it;
15505 -}
15506 -
15507 -const DataArrayInt *MEDFileFieldGlobs::getProfileFromId(int pflId) const
15508 -{
15509 -  if(pflId<0 || pflId>=(int)_pfls.size())
15510 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getProfileFromId : Invalid profile id !");
15511 -  return _pfls[pflId];
15512 -}
15513 -
15514 -MEDFileFieldLoc& MEDFileFieldGlobs::getLocalizationFromId(int locId)
15515 -{
15516 -  if(locId<0 || locId>=(int)_locs.size())
15517 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getLocalizationFromId : Invalid localization id !");
15518 -  return *_locs[locId];
15519 -}
15520 -
15521 -MEDFileFieldLoc& MEDFileFieldGlobs::getLocalization(const std::string& locName)
15522 -{
15523 -  return getLocalizationFromId(getLocalizationId(locName));
15524 -}
15525 -
15526 -/*!
15527 - * The returned value is never null.
15528 - */
15529 -DataArrayInt *MEDFileFieldGlobs::getProfile(const std::string& pflName)
15530 -{
15531 -  std::string pflNameCpp(pflName);
15532 -  std::vector< MCAuto<DataArrayInt> >::iterator it=std::find_if(_pfls.begin(),_pfls.end(),MEDCouplingImpl::PflFinder(pflNameCpp));
15533 -  if(it==_pfls.end())
15534 -    {
15535 -      std::ostringstream oss; oss << "MEDFileFieldGlobs::getProfile: no such profile name : \"" << pflNameCpp << "\" Possible profiles are : ";
15536 -      for(it=_pfls.begin();it!=_pfls.end();it++)
15537 -        oss << "\"" << (*it)->getName() << "\", ";
15538 -      throw INTERP_KERNEL::Exception(oss.str());
15539 -    }
15540 -  return *it;
15541 -}
15542 -
15543 -DataArrayInt *MEDFileFieldGlobs::getProfileFromId(int pflId)
15544 -{
15545 -  if(pflId<0 || pflId>=(int)_pfls.size())
15546 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getProfileFromId : Invalid profile id !");
15547 -  return _pfls[pflId];
15548 -}
15549 -
15550 -void MEDFileFieldGlobs::killProfileIds(const std::vector<int>& pflIds)
15551 -{
15552 -  std::vector< MCAuto<DataArrayInt> > newPfls;
15553 -  int i=0;
15554 -  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
15555 -    {
15556 -      if(std::find(pflIds.begin(),pflIds.end(),i)==pflIds.end())
15557 -        newPfls.push_back(*it);
15558 -    }
15559 -  _pfls=newPfls;
15560 -}
15561 -
15562 -void MEDFileFieldGlobs::killLocalizationIds(const std::vector<int>& locIds)
15563 -{
15564 -  std::vector< MCAuto<MEDFileFieldLoc> > newLocs;
15565 -  int i=0;
15566 -  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++,i++)
15567 -    {
15568 -      if(std::find(locIds.begin(),locIds.end(),i)==locIds.end())
15569 -        newLocs.push_back(*it);
15570 -    }
15571 -  _locs=newLocs;
15572 -}
15573 -
15574 -void MEDFileFieldGlobs::killStructureElementsInGlobs()
15575 -{
15576 -  std::vector< MCAuto<MEDFileFieldLoc> > newLocs;
15577 -  for(std::vector< MCAuto<MEDFileFieldLoc> >::iterator it=_locs.begin();it!=_locs.end();it++)
15578 -    {
15579 -      if((*it).isNull())
15580 -        continue;
15581 -      if(!(*it)->isOnStructureElement())
15582 -        newLocs.push_back(*it);
15583 -    }
15584 -  _locs=newLocs;
15585 -}
15586 -
15587 -std::vector<std::string> MEDFileFieldGlobs::getPfls() const
15588 -{
15589 -  int sz=_pfls.size();
15590 -  std::vector<std::string> ret(sz);
15591 -  for(int i=0;i<sz;i++)
15592 -    ret[i]=_pfls[i]->getName();
15593 -  return ret;
15594 -}
15595 -
15596 -std::vector<std::string> MEDFileFieldGlobs::getLocs() const
15597 -{
15598 -  int sz=_locs.size();
15599 -  std::vector<std::string> ret(sz);
15600 -  for(int i=0;i<sz;i++)
15601 -    ret[i]=_locs[i]->getName();
15602 -  return ret;
15603 -}
15604 -
15605 -bool MEDFileFieldGlobs::existsPfl(const std::string& pflName) const
15606 -{
15607 -  std::vector<std::string> v=getPfls();
15608 -  std::string s(pflName);
15609 -  return std::find(v.begin(),v.end(),s)!=v.end();
15610 -}
15611 -
15612 -bool MEDFileFieldGlobs::existsLoc(const std::string& locName) const
15613 -{
15614 -  std::vector<std::string> v=getLocs();
15615 -  std::string s(locName);
15616 -  return std::find(v.begin(),v.end(),s)!=v.end();
15617 -}
15618 -
15619 -std::vector< std::vector<int> > MEDFileFieldGlobs::whichAreEqualProfiles() const
15620 -{
15621 -  std::map<int,std::vector<int> > m;
15622 -  int i=0;
15623 -  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
15624 -    {
15625 -      const DataArrayInt *tmp=(*it);
15626 -      if(tmp)
15627 -        {
15628 -          m[tmp->getHashCode()].push_back(i);
15629 -        }
15630 -    }
15631 -  std::vector< std::vector<int> > ret;
15632 -  for(std::map<int,std::vector<int> >::const_iterator it2=m.begin();it2!=m.end();it2++)
15633 -    {
15634 -      if((*it2).second.size()>1)
15635 -        {
15636 -          std::vector<int> ret0;
15637 -          bool equalityOrNot=false;
15638 -          for(std::vector<int>::const_iterator it3=(*it2).second.begin();it3!=(*it2).second.end();it3++)
15639 -            {
15640 -              std::vector<int>::const_iterator it4=it3; it4++;
15641 -              for(;it4!=(*it2).second.end();it4++)
15642 -                {
15643 -                  if(_pfls[*it3]->isEqualWithoutConsideringStr(*_pfls[*it4]))
15644 -                    {
15645 -                      if(!equalityOrNot)
15646 -                        ret0.push_back(*it3);
15647 -                      ret0.push_back(*it4);
15648 -                      equalityOrNot=true;
15649 -                    }
15650 -                }
15651 -            }
15652 -          if(!ret0.empty())
15653 -            ret.push_back(ret0);
15654 -        }
15655 -    }
15656 -  return ret;
15657 -}
15658 -
15659 -std::vector< std::vector<int> > MEDFileFieldGlobs::whichAreEqualLocs(double eps) const
15660 -{
15661 -  throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::whichAreEqualLocs : no implemented yet ! Sorry !");
15662 -}
15663 -
15664 -void MEDFileFieldGlobs::appendProfile(DataArrayInt *pfl)
15665 -{
15666 -  std::string name(pfl->getName());
15667 -  if(name.empty())
15668 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::appendProfile : unsupported profiles with no name !");
15669 -  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++)
15670 -    if(name==(*it)->getName())
15671 -      {
15672 -        if(!pfl->isEqual(*(*it)))
15673 -          {
15674 -            std::ostringstream oss; oss << "MEDFileFieldGlobs::appendProfile : profile \"" << name << "\" already exists and is different from existing !";
15675 -            throw INTERP_KERNEL::Exception(oss.str());
15676 -          }
15677 -      }
15678 -  pfl->incrRef();
15679 -  _pfls.push_back(pfl);
15680 -}
15681 -
15682 -void MEDFileFieldGlobs::appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w)
15683 -{
15684 -  std::string name(locName);
15685 -  if(name.empty())
15686 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::appendLoc : unsupported localizations with no name !");
15687 -  MCAuto<MEDFileFieldLoc> obj=MEDFileFieldLoc::New(locName,geoType,refCoo,gsCoo,w);
15688 -  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++)
15689 -    if((*it)->isName(locName))
15690 -      {
15691 -        if(!(*it)->isEqual(*obj,1e-12))
15692 -          {
15693 -            std::ostringstream oss; oss << "MEDFileFieldGlobs::appendLoc : localization \"" << name << "\" already exists and is different from existing !";
15694 -            throw INTERP_KERNEL::Exception(oss.str());
15695 -          }
15696 -      }
15697 -  _locs.push_back(obj);
15698 -}
15699 -
15700 -std::string MEDFileFieldGlobs::createNewNameOfPfl() const
15701 -{
15702 -  std::vector<std::string> names=getPfls();
15703 -  return CreateNewNameNotIn("NewPfl_",names);
15704 -}
15705 -
15706 -std::string MEDFileFieldGlobs::createNewNameOfLoc() const
15707 -{
15708 -  std::vector<std::string> names=getLocs();
15709 -  return CreateNewNameNotIn("NewLoc_",names);
15710 -}
15711 -
15712 -std::string MEDFileFieldGlobs::CreateNewNameNotIn(const std::string& prefix, const std::vector<std::string>& namesToAvoid)
15713 -{
15714 -  for(std::size_t sz=0;sz<100000;sz++)
15715 -    {
15716 -      std::ostringstream tryName;
15717 -      tryName << prefix << sz;
15718 -      if(std::find(namesToAvoid.begin(),namesToAvoid.end(),tryName.str())==namesToAvoid.end())
15719 -        return tryName.str();
15720 -    }
15721 -  throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::CreateNewNameNotIn : impossible to create an additional profile limit of 100000 profiles reached !");
15722 -}
15723 -
15724 -/*!
15725 - * Creates a MEDFileFieldGlobsReal on a given file name. Nothing is read here.
15726 - *  \param [in] fname - the file name.
15727 - */
15728 -MEDFileFieldGlobsReal::MEDFileFieldGlobsReal(med_idt fid):_globals(MEDFileFieldGlobs::New(fid))
15729 -{
15730 -}
15731 -
15732 -/*!
15733 - * Creates an empty MEDFileFieldGlobsReal.
15734 - */
15735 -MEDFileFieldGlobsReal::MEDFileFieldGlobsReal():_globals(MEDFileFieldGlobs::New())
15736 -{
15737 -}
15738 -
15739 -std::size_t MEDFileFieldGlobsReal::getHeapMemorySizeWithoutChildren() const
15740 -{
15741 -  return 0;
15742 -}
15743 -
15744 -std::vector<const BigMemoryObject *> MEDFileFieldGlobsReal::getDirectChildrenWithNull() const
15745 -{
15746 -  std::vector<const BigMemoryObject *> ret;
15747 -  ret.push_back((const MEDFileFieldGlobs *)_globals);
15748 -  return ret;
15749 -}
15750 -
15751 -/*!
15752 - * Returns a string describing profiles and Gauss points held in \a this.
15753 - *  \return std::string - the description string.
15754 - */
15755 -void MEDFileFieldGlobsReal::simpleReprGlobs(std::ostream& oss) const
15756 -{
15757 -  const MEDFileFieldGlobs *glob=_globals;
15758 -  std::ostringstream oss2; oss2 << glob;
15759 -  std::string stars(oss2.str().length(),'*');
15760 -  oss << "Globals information on fields (at " << oss2.str() << "):" << "\n************************************" << stars  << "\n\n";
15761 -  if(glob)
15762 -    glob->simpleRepr(oss);
15763 -  else
15764 -    oss << "NO GLOBAL INFORMATION !\n";
15765 -}
15766 -
15767 -void MEDFileFieldGlobsReal::resetContent()
15768 -{
15769 -  _globals=MEDFileFieldGlobs::New();
15770 -}
15771 -
15772 -void MEDFileFieldGlobsReal::killStructureElementsInGlobs()
15773 -{
15774 -  contentNotNull()->killStructureElementsInGlobs();
15775 -}
15776 -
15777 -MEDFileFieldGlobsReal::~MEDFileFieldGlobsReal()
15778 -{
15779 -}
15780 -
15781 -/*!
15782 - * Copies references to profiles and Gauss points from another MEDFileFieldGlobsReal.
15783 - *  \param [in] other - the other MEDFileFieldGlobsReal to copy data from.
15784 - */
15785 -void MEDFileFieldGlobsReal::shallowCpyGlobs(const MEDFileFieldGlobsReal& other)
15786 -{
15787 -  _globals=other._globals;
15788 -}
15789 -
15790 -/*!
15791 - * Copies references to ** only used ** by \a this, profiles and Gauss points from another MEDFileFieldGlobsReal.
15792 - *  \param [in] other - the other MEDFileFieldGlobsReal to copy data from.
15793 - */
15794 -void MEDFileFieldGlobsReal::shallowCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other)
15795 -{
15796 -  const MEDFileFieldGlobs *otherg(other._globals);
15797 -  if(!otherg)
15798 -    return ;
15799 -  _globals=otherg->shallowCpyPart(getPflsReallyUsed(),getLocsReallyUsed());
15800 -}
15801 -
15802 -/*!
15803 - * Copies deeply to ** only used ** by \a this, profiles and Gauss points from another MEDFileFieldGlobsReal.
15804 - *  \param [in] other - the other MEDFileFieldGlobsReal to copy data from.
15805 - */
15806 -void MEDFileFieldGlobsReal::deepCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other)
15807 -{
15808 -  const MEDFileFieldGlobs *otherg(other._globals);
15809 -  if(!otherg)
15810 -    return ;
15811 -  _globals=otherg->deepCpyPart(getPflsReallyUsed(),getLocsReallyUsed());
15812 -}
15813 -
15814 -void MEDFileFieldGlobsReal::deepCpyGlobs(const MEDFileFieldGlobsReal& other)
15815 -{
15816 -  _globals=other._globals;
15817 -  if((const MEDFileFieldGlobs *)_globals)
15818 -    _globals=other._globals->deepCopy();
15819 -}
15820 -
15821 -/*!
15822 - * Adds profiles and Gauss points held by another MEDFileFieldGlobsReal to \a this one.
15823 - *  \param [in] other - the MEDFileFieldGlobsReal to copy data from.
15824 - *  \param [in] eps - a precision used to compare Gauss points with same name held by
15825 - *         \a this and \a other MEDFileFieldGlobsReal.
15826 - *  \throw If \a this and \a other hold profiles with equal names but different ids.
15827 - *  \throw If  \a this and \a other hold different Gauss points with equal names.
15828 - */
15829 -void MEDFileFieldGlobsReal::appendGlobs(const MEDFileFieldGlobsReal& other, double eps)
15830 -{
15831 -  const MEDFileFieldGlobs *thisGlobals(_globals),*otherGlobals(other._globals);
15832 -  if(thisGlobals==otherGlobals)
15833 -    return ;
15834 -  if(!thisGlobals)
15835 -    {
15836 -      _globals=other._globals;
15837 -      return ;
15838 -    }
15839 -  _globals->appendGlobs(*other._globals,eps);
15840 -}
15841 -
15842 -void MEDFileFieldGlobsReal::checkGlobsCoherency() const
15843 -{
15844 -  checkGlobsPflsPartCoherency();
15845 -  checkGlobsLocsPartCoherency();
15846 -}
15847 -
15848 -void MEDFileFieldGlobsReal::checkGlobsPflsPartCoherency() const
15849 -{
15850 -  contentNotNull()->checkGlobsPflsPartCoherency(getPflsReallyUsed());
15851 -}
15852 -
15853 -void MEDFileFieldGlobsReal::checkGlobsLocsPartCoherency() const
15854 -{
15855 -  contentNotNull()->checkGlobsLocsPartCoherency(getLocsReallyUsed());
15856 -}
15857 -
15858 -void MEDFileFieldGlobsReal::loadProfileInFile(med_idt fid, int id, const std::string& pflName)
15859 -{
15860 -  contentNotNull()->loadProfileInFile(fid,id,pflName);
15861 -}
15862 -
15863 -void MEDFileFieldGlobsReal::loadProfileInFile(med_idt fid, int id)
15864 -{
15865 -  contentNotNull()->loadProfileInFile(fid,id);
15866 -}
15867 -
15868 -void MEDFileFieldGlobsReal::loadGlobals(med_idt fid)
15869 -{
15870 -  contentNotNull()->loadGlobals(fid,*this);
15871 -}
15872 -
15873 -void MEDFileFieldGlobsReal::loadAllGlobals(med_idt fid, const MEDFileEntities *entities)
15874 -{
15875 -  contentNotNull()->loadAllGlobals(fid,entities);
15876 -}
15877 -
15878 -void MEDFileFieldGlobsReal::writeGlobals(med_idt fid, const MEDFileWritable& opt) const
15879 -{
15880 -  contentNotNull()->writeGlobals(fid,opt);
15881 -}
15882 -
15883 -/*!
15884 - * Returns names of all profiles. To get only used profiles call getPflsReallyUsed()
15885 - * or getPflsReallyUsedMulti().
15886 - *  \return std::vector<std::string> - a sequence of names of all profiles.
15887 - */
15888 -std::vector<std::string> MEDFileFieldGlobsReal::getPfls() const
15889 -{
15890 -  return contentNotNull()->getPfls();
15891 -}
15892 -
15893 -/*!
15894 - * Returns names of all localizations. To get only used localizations call getLocsReallyUsed()
15895 - * or getLocsReallyUsedMulti().
15896 - *  \return std::vector<std::string> - a sequence of names of all localizations.
15897 - */
15898 -std::vector<std::string> MEDFileFieldGlobsReal::getLocs() const
15899 -{
15900 -  return contentNotNull()->getLocs();
15901 -}
15902 -
15903 -/*!
15904 - * Checks if the profile with a given name exists.
15905 - *  \param [in] pflName - the profile name of interest.
15906 - *  \return bool - \c true if the profile named \a pflName exists.
15907 - */
15908 -bool MEDFileFieldGlobsReal::existsPfl(const std::string& pflName) const
15909 -{
15910 -  return contentNotNull()->existsPfl(pflName);
15911 -}
15912 -
15913 -/*!
15914 - * Checks if the localization with a given name exists.
15915 - *  \param [in] locName - the localization name of interest.
15916 - *  \return bool - \c true if the localization named \a locName exists.
15917 - */
15918 -bool MEDFileFieldGlobsReal::existsLoc(const std::string& locName) const
15919 -{
15920 -  return contentNotNull()->existsLoc(locName);
15921 -}
15922 -
15923 -std::string MEDFileFieldGlobsReal::createNewNameOfPfl() const
15924 -{
15925 -  return contentNotNull()->createNewNameOfPfl();
15926 -}
15927 -
15928 -std::string MEDFileFieldGlobsReal::createNewNameOfLoc() const
15929 -{
15930 -  return contentNotNull()->createNewNameOfLoc();
15931 -}
15932 -
15933 -/*!
15934 - * Sets the name of a MED file.
15935 - *  \param [inout] fileName - the file name.
15936 - */
15937 -void MEDFileFieldGlobsReal::setFileName(const std::string& fileName)
15938 -{
15939 -  contentNotNull()->setFileName(fileName);
15940 -}
15941 -
15942 -/*!
15943 - * Finds equal profiles. Two profiles are considered equal if they contain the same ids
15944 - * in the same order.
15945 - *  \return std::vector< std::vector<int> > - a sequence of groups of equal profiles.
15946 - *          Each item of this sequence is a vector containing ids of equal profiles.
15947 - */
15948 -std::vector< std::vector<int> > MEDFileFieldGlobsReal::whichAreEqualProfiles() const
15949 -{
15950 -  return contentNotNull()->whichAreEqualProfiles();
15951 -}
15952 -
15953 -/*!
15954 - * Finds equal localizations.
15955 - *  \param [in] eps - a precision used to compare real values of the localizations.
15956 - *  \return std::vector< std::vector<int> > - a sequence of groups of equal localizations.
15957 - *          Each item of this sequence is a vector containing ids of equal localizations.
15958 - */
15959 -std::vector< std::vector<int> > MEDFileFieldGlobsReal::whichAreEqualLocs(double eps) const
15960 -{
15961 -  return contentNotNull()->whichAreEqualLocs(eps);
15962 -}
15963 -
15964 -/*!
15965 - * Renames the profiles. References to profiles (a reference is a profile name) are not changed.
15966 - * \param [in] mapOfModif - a sequence describing required renaming. Each element of
15967 - *        this sequence is a pair whose 
15968 - *        - the first item is a vector of profile names to replace by the second item,
15969 - *        - the second item is a profile name to replace every profile name of the first item.
15970 - */
15971 -void MEDFileFieldGlobsReal::changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
15972 -{
15973 -  contentNotNull()->changePflsNamesInStruct(mapOfModif);
15974 -}
15975 -
15976 -/*!
15977 - * Renames the localizations. References to localizations (a reference is a localization name) are not changed.
15978 - * \param [in] mapOfModif - a sequence describing required renaming. Each element of
15979 - *        this sequence is a pair whose 
15980 - *        - the first item is a vector of localization names to replace by the second item,
15981 - *        - the second item is a localization name to replace every localization name of the first item.
15982 - */
15983 -void MEDFileFieldGlobsReal::changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
15984 -{
15985 -  contentNotNull()->changeLocsNamesInStruct(mapOfModif);
15986 -}
15987 -
15988 -/*!
15989 - * Replaces references to some profiles (a reference is a profile name) by references
15990 - * to other profiles and, contrary to changePflsRefsNamesGen(), renames the profiles
15991 - * them-selves accordingly. <br>
15992 - * This method is a generalization of changePflName().
15993 - * \param [in] mapOfModif - a sequence describing required replacements. Each element of
15994 - *        this sequence is a pair whose 
15995 - *        - the first item is a vector of profile names to replace by the second item,
15996 - *        - the second item is a profile name to replace every profile of the first item.
15997 - * \sa changePflsRefsNamesGen()
15998 - * \sa changePflName()
15999 - */
16000 -void MEDFileFieldGlobsReal::changePflsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
16001 -{
16002 -  changePflsRefsNamesGen(mapOfModif);
16003 -  changePflsNamesInStruct(mapOfModif);
16004 -}
16005 -
16006 -/*!
16007 - * Replaces references to some localizations (a reference is a localization name) by references
16008 - * to other localizations and, contrary to changeLocsRefsNamesGen(), renames the localizations
16009 - * them-selves accordingly. <br>
16010 - * This method is a generalization of changeLocName().
16011 - * \param [in] mapOfModif - a sequence describing required replacements. Each element of
16012 - *        this sequence is a pair whose 
16013 - *        - the first item is a vector of localization names to replace by the second item,
16014 - *        - the second item is a localization name to replace every localization of the first item.
16015 - * \sa changeLocsRefsNamesGen()
16016 - * \sa changeLocName()
16017 - */
16018 -void MEDFileFieldGlobsReal::changeLocsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
16019 -{
16020 -  changeLocsRefsNamesGen(mapOfModif);
16021 -  changeLocsNamesInStruct(mapOfModif);
16022 -}
16023 -
16024 -/*!
16025 - * Renames the profile having a given name and updates references to this profile.
16026 - *  \param [in] oldName - the name of the profile to rename.
16027 - *  \param [in] newName - a new name of the profile.
16028 - * \sa changePflsNames().
16029 - */
16030 -void MEDFileFieldGlobsReal::changePflName(const std::string& oldName, const std::string& newName)
16031 -{
16032 -  std::vector< std::pair<std::vector<std::string>, std::string > > mapOfModif(1);
16033 -  std::pair<std::vector<std::string>, std::string > p(std::vector<std::string>(1,std::string(oldName)),std::string(newName));
16034 -  mapOfModif[0]=p;
16035 -  changePflsNames(mapOfModif);
16036 -}
16037 -
16038 -/*!
16039 - * Renames the localization having a given name and updates references to this localization.
16040 - *  \param [in] oldName - the name of the localization to rename.
16041 - *  \param [in] newName - a new name of the localization.
16042 - * \sa changeLocsNames().
16043 - */
16044 -void MEDFileFieldGlobsReal::changeLocName(const std::string& oldName, const std::string& newName)
16045 -{
16046 -  std::vector< std::pair<std::vector<std::string>, std::string > > mapOfModif(1);
16047 -  std::pair<std::vector<std::string>, std::string > p(std::vector<std::string>(1,std::string(oldName)),std::string(newName));
16048 -  mapOfModif[0]=p;
16049 -  changeLocsNames(mapOfModif);
16050 -}
16051 -
16052 -/*!
16053 - * Removes duplicated profiles. Returns a map used to update references to removed 
16054 - * profiles via changePflsRefsNamesGen().
16055 - * Equal profiles are found using whichAreEqualProfiles().
16056 - *  \return std::vector< std::pair<std::vector<std::string>, std::string > > - 
16057 - *          a sequence describing the performed replacements of profiles. Each element of
16058 - *          this sequence is a pair whose
16059 - *          - the first item is a vector of profile names replaced by the second item,
16060 - *          - the second item is a profile name replacing every profile of the first item.
16061 - */
16062 -std::vector< std::pair<std::vector<std::string>, std::string > > MEDFileFieldGlobsReal::zipPflsNames()
16063 -{
16064 -  std::vector< std::vector<int> > pseudoRet=whichAreEqualProfiles();
16065 -  std::vector< std::pair<std::vector<std::string>, std::string > > ret(pseudoRet.size());
16066 -  int i=0;
16067 -  for(std::vector< std::vector<int> >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++)
16068 -    {
16069 -      std::vector< std::string > tmp((*it).size());
16070 -      int j=0;
16071 -      for(std::vector<int>::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++)
16072 -        tmp[j]=std::string(getProfileFromId(*it2)->getName());
16073 -      std::pair<std::vector<std::string>, std::string > p(tmp,tmp.front());
16074 -      ret[i]=p;
16075 -      std::vector<int> tmp2((*it).begin()+1,(*it).end());
16076 -      killProfileIds(tmp2);
16077 -    }
16078 -  changePflsRefsNamesGen(ret);
16079 -  return ret;
16080 -}
16081 -
16082 -/*!
16083 - * Removes duplicated localizations. Returns a map used to update references to removed 
16084 - * localizations via changeLocsRefsNamesGen().
16085 - * Equal localizations are found using whichAreEqualLocs().
16086 - *  \param [in] eps - a precision used to compare real values of the localizations.
16087 - *  \return std::vector< std::pair<std::vector<std::string>, std::string > > - 
16088 - *          a sequence describing the performed replacements of localizations. Each element of
16089 - *          this sequence is a pair whose
16090 - *          - the first item is a vector of localization names replaced by the second item,
16091 - *          - the second item is a localization name replacing every localization of the first item.
16092 - */
16093 -std::vector< std::pair<std::vector<std::string>, std::string > > MEDFileFieldGlobsReal::zipLocsNames(double eps)
16094 -{
16095 -  std::vector< std::vector<int> > pseudoRet=whichAreEqualLocs(eps);
16096 -  std::vector< std::pair<std::vector<std::string>, std::string > > ret(pseudoRet.size());
16097 -  int i=0;
16098 -  for(std::vector< std::vector<int> >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++)
16099 -    {
16100 -      std::vector< std::string > tmp((*it).size());
16101 -      int j=0;
16102 -      for(std::vector<int>::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++)
16103 -        tmp[j]=std::string(getLocalizationFromId(*it2).getName());
16104 -      std::pair<std::vector<std::string>, std::string > p(tmp,tmp.front());
16105 -      ret[i]=p;
16106 -      std::vector<int> tmp2((*it).begin()+1,(*it).end());
16107 -      killLocalizationIds(tmp2);
16108 -    }
16109 -  changeLocsRefsNamesGen(ret);
16110 -  return ret;
16111 -}
16112 -
16113 -/*!
16114 - * Returns number of Gauss points per cell in a given localization.
16115 - *  \param [in] locId - an id of the localization of interest.
16116 - *  \return int - the number of the Gauss points per cell.
16117 - */
16118 -int MEDFileFieldGlobsReal::getNbOfGaussPtPerCell(int locId) const
16119 -{
16120 -  return contentNotNull()->getNbOfGaussPtPerCell(locId);
16121 -}
16122 -
16123 -/*!
16124 - * Returns an id of a localization by its name.
16125 - *  \param [in] loc - the localization name of interest.
16126 - *  \return int - the id of the localization.
16127 - *  \throw If there is no a localization named \a loc.
16128 - */
16129 -int MEDFileFieldGlobsReal::getLocalizationId(const std::string& loc) const
16130 -{
16131 -  return contentNotNull()->getLocalizationId(loc);
16132 -}
16133 -
16134 -/*!
16135 - * Returns the name of the MED file.
16136 - *  \return const std::string&  - the MED file name.
16137 - */
16138 -std::string MEDFileFieldGlobsReal::getFileName() const
16139 -{
16140 -  return contentNotNull()->getFileName();
16141 -}
16142 -
16143 -/*!
16144 - * Returns a localization object by its name.
16145 - *  \param [in] locName - the name of the localization of interest.
16146 - *  \return const MEDFileFieldLoc& - the localization object having the name \a locName.
16147 - *  \throw If there is no a localization named \a locName.
16148 - */
16149 -const MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalization(const std::string& locName) const
16150 -{
16151 -  return contentNotNull()->getLocalization(locName);
16152 -}
16153 -
16154 -/*!
16155 - * Returns a localization object by its id.
16156 - *  \param [in] locId - the id of the localization of interest.
16157 - *  \return const MEDFileFieldLoc& - the localization object having the id \a locId.
16158 - *  \throw If there is no a localization with id \a locId.
16159 - */
16160 -const MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalizationFromId(int locId) const
16161 -{
16162 -  return contentNotNull()->getLocalizationFromId(locId);
16163 -}
16164 -
16165 -/*!
16166 - * Returns a profile array by its name.
16167 - *  \param [in] pflName - the name of the profile of interest.
16168 - *  \return const DataArrayInt * - the profile array having the name \a pflName.
16169 - *  \throw If there is no a profile named \a pflName.
16170 - */
16171 -const DataArrayInt *MEDFileFieldGlobsReal::getProfile(const std::string& pflName) const
16172 -{
16173 -  return contentNotNull()->getProfile(pflName);
16174 -}
16175 -
16176 -/*!
16177 - * Returns a profile array by its id.
16178 - *  \param [in] pflId - the id of the profile of interest.
16179 - *  \return const DataArrayInt * - the profile array having the id \a pflId.
16180 - *  \throw If there is no a profile with id \a pflId.
16181 - */
16182 -const DataArrayInt *MEDFileFieldGlobsReal::getProfileFromId(int pflId) const
16183 -{
16184 -  return contentNotNull()->getProfileFromId(pflId);
16185 -}
16186 -
16187 -/*!
16188 - * Returns a localization object, apt for modification, by its id.
16189 - *  \param [in] locId - the id of the localization of interest.
16190 - *  \return MEDFileFieldLoc& - a non-const reference to the localization object
16191 - *          having the id \a locId.
16192 - *  \throw If there is no a localization with id \a locId.
16193 - */
16194 -MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalizationFromId(int locId)
16195 -{
16196 -  return contentNotNull()->getLocalizationFromId(locId);
16197 -}
16198 -
16199 -/*!
16200 - * Returns a localization object, apt for modification, by its name.
16201 - *  \param [in] locName - the name of the localization of interest.
16202 - *  \return MEDFileFieldLoc& - a non-const reference to the localization object
16203 - *          having the name \a locName.
16204 - *  \throw If there is no a localization named \a locName.
16205 - */
16206 -MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalization(const std::string& locName)
16207 -{
16208 -  return contentNotNull()->getLocalization(locName);
16209 -}
16210 -
16211 -/*!
16212 - * Returns a profile array, apt for modification, by its name.
16213 - *  \param [in] pflName - the name of the profile of interest.
16214 - *  \return DataArrayInt * - a non-const pointer to the profile array having the name \a pflName.
16215 - *  \throw If there is no a profile named \a pflName.
16216 - */
16217 -DataArrayInt *MEDFileFieldGlobsReal::getProfile(const std::string& pflName)
16218 -{
16219 -  return contentNotNull()->getProfile(pflName);
16220 -}
16221 -
16222 -/*!
16223 - * Returns a profile array, apt for modification, by its id.
16224 - *  \param [in] pflId - the id of the profile of interest.
16225 - *  \return DataArrayInt * - a non-const pointer to the profile array having the id \a pflId.
16226 - *  \throw If there is no a profile with id \a pflId.
16227 - */
16228 -DataArrayInt *MEDFileFieldGlobsReal::getProfileFromId(int pflId)
16229 -{
16230 -  return contentNotNull()->getProfileFromId(pflId);
16231 -}
16232 -
16233 -/*!
16234 - * Removes profiles given by their ids. No data is updated to track this removal.
16235 - *  \param [in] pflIds - a sequence of ids of the profiles to remove.
16236 - */
16237 -void MEDFileFieldGlobsReal::killProfileIds(const std::vector<int>& pflIds)
16238 -{
16239 -  contentNotNull()->killProfileIds(pflIds);
16240 -}
16241 -
16242 -/*!
16243 - * Removes localizations given by their ids. No data is updated to track this removal.
16244 - *  \param [in] locIds - a sequence of ids of the localizations to remove.
16245 - */
16246 -void MEDFileFieldGlobsReal::killLocalizationIds(const std::vector<int>& locIds)
16247 -{
16248 -  contentNotNull()->killLocalizationIds(locIds);
16249 -}
16250 -
16251 -/*!
16252 - * Stores a profile array.
16253 - *  \param [in] pfl - the profile array to store.
16254 - *  \throw If the name of \a pfl is empty.
16255 - *  \throw If a profile with the same name as that of \a pfl already exists but contains
16256 - *         different ids.
16257 - */
16258 -void MEDFileFieldGlobsReal::appendProfile(DataArrayInt *pfl)
16259 -{
16260 -  contentNotNull()->appendProfile(pfl);
16261 -}
16262 -
16263 -/*!
16264 - * Adds a new localization of Gauss points.
16265 - *  \param [in] locName - the name of the new localization.
16266 - *  \param [in] geoType - a geometrical type of the reference cell.
16267 - *  \param [in] refCoo - coordinates of points of the reference cell. Size of this vector
16268 - *         must be \c nbOfNodesPerCell * \c dimOfType.
16269 - *  \param [in] gsCoo - coordinates of Gauss points on the reference cell. Size of this vector
16270 - *         must be  _wg_.size() * \c dimOfType.
16271 - *  \param [in] w - the weights of Gauss points.
16272 - *  \throw If \a locName is empty.
16273 - *  \throw If a localization with the name \a locName already exists but is
16274 - *         different form the new one.
16275 - */
16276 -void MEDFileFieldGlobsReal::appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w)
16277 -{
16278 -  contentNotNull()->appendLoc(locName,geoType,refCoo,gsCoo,w);
16279 -}
16280 -
16281 -MEDFileFieldGlobs *MEDFileFieldGlobsReal::contentNotNull()
16282 -{
16283 -  MEDFileFieldGlobs *g(_globals);
16284 -  if(!g)
16285 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobsReal::contentNotNull : no content in not const !");
16286 -  return g;
16287 -}
16288 -
16289 -const MEDFileFieldGlobs *MEDFileFieldGlobsReal::contentNotNull() const
16290 -{
16291 -  const MEDFileFieldGlobs *g(_globals);
16292 -  if(!g)
16293 -    throw INTERP_KERNEL::Exception("MEDFileFieldGlobsReal::contentNotNull : no content in const !");
16294 -  return g;
16295 -}
16296 -
16297 -//= MEDFileFieldNameScope
16298 -
16299 -MEDFileFieldNameScope::MEDFileFieldNameScope()
16300 -{
16301 -}
16302 -
16303 -MEDFileFieldNameScope::MEDFileFieldNameScope(const std::string& fieldName, const std::string& meshName):_name(fieldName),_mesh_name(meshName)
16304 -{
16305 -}
16306 -
16307 -/*!
16308 - * Returns the name of \a this field.
16309 - *  \return std::string - a string containing the field name.
16310 - */
16311 -std::string MEDFileFieldNameScope::getName() const
16312 -{
16313 -  return _name;
16314 -}
16315 -
16316 -/*!
16317 - * Sets name of \a this field
16318 - *  \param [in] name - the new field name.
16319 - */
16320 -void MEDFileFieldNameScope::setName(const std::string& fieldName)
16321 -{
16322 -  _name=fieldName;
16323 -}
16324 -
16325 -std::string MEDFileFieldNameScope::getDtUnit() const
16326 -{
16327 -  return _dt_unit;
16328 -}
16329 -
16330 -void MEDFileFieldNameScope::setDtUnit(const std::string& dtUnit)
16331 -{
16332 -  _dt_unit=dtUnit;
16333 -}
16334 -
16335 -void MEDFileFieldNameScope::copyNameScope(const MEDFileFieldNameScope& other)
16336 -{
16337 -  _name=other._name;
16338 -  _mesh_name=other._mesh_name;
16339 -  _dt_unit=other._dt_unit;
16340 -}
16341 -
16342 -/*!
16343 - * Returns the mesh name.
16344 - *  \return std::string - a string holding the mesh name.
16345 - *  \throw If \c _field_per_mesh.empty()
16346 - */
16347 -std::string MEDFileFieldNameScope::getMeshName() const
16348 -{
16349 -  return _mesh_name;
16350 -}
16351 -
16352 -void MEDFileFieldNameScope::setMeshName(const std::string& meshName)
16353 -{
16354 -  _mesh_name=meshName;
16355 -}
16356 -
16357 -//= MEDFileAnyTypeField1TSWithoutSDA
16358 -
16359 -void MEDFileAnyTypeField1TSWithoutSDA::deepCpyLeavesFrom(const MEDFileAnyTypeField1TSWithoutSDA& other)
16360 -{
16361 -  _field_per_mesh.resize(other._field_per_mesh.size());
16362 -  std::size_t i=0;
16363 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=other._field_per_mesh.begin();it!=other._field_per_mesh.end();it++,i++)
16364 -    {
16365 -      if((const MEDFileFieldPerMesh *)*it)
16366 -        _field_per_mesh[i]=(*it)->deepCopy(this);
16367 -    }
16368 -}
16369 -
16370 -void MEDFileAnyTypeField1TSWithoutSDA::accept(MEDFileFieldVisitor& visitor) const
16371 -{
16372 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16373 -    if((*it).isNotNull())
16374 -      {
16375 -        visitor.newMeshEntry(*it);
16376 -        (*it)->accept(visitor);
16377 -        visitor.endMeshEntry(*it);
16378 -      }
16379 -}
16380 -
16381 -/*!
16382 - * Prints a string describing \a this field into a stream. This string is outputted 
16383 - * by \c print Python command.
16384 - *  \param [in] bkOffset - number of white spaces printed at the beginning of each line.
16385 - *  \param [in,out] oss - the out stream.
16386 - *  \param [in] f1tsId - the field index within a MED file. If \a f1tsId < 0, the tiny
16387 - *          info id printed, else, not.
16388 - */
16389 -void MEDFileAnyTypeField1TSWithoutSDA::simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const
16390 -{
16391 -  std::string startOfLine(bkOffset,' ');
16392 -  oss << startOfLine << "Field ";
16393 -  if(bkOffset==0)
16394 -    oss << "[Type=" << getTypeStr() << "] with name \"" << getName() << "\" ";
16395 -  oss << "on one time Step ";
16396 -  if(f1tsId>=0)
16397 -    oss << "(" << f1tsId << ") ";
16398 -  oss << "on iteration=" << _iteration << " order=" << _order << "." << std::endl;
16399 -  oss << startOfLine << "Time attached is : " << _dt << " [" << _dt_unit << "]." << std::endl;
16400 -  const DataArray *arr=getUndergroundDataArray();
16401 -  if(arr)
16402 -    {
16403 -      const std::vector<std::string> &comps=arr->getInfoOnComponents();
16404 -      if(f1tsId<0)
16405 -        {
16406 -          oss << startOfLine << "Field has " << comps.size() << " components with the following infos :" << std::endl;
16407 -          for(std::vector<std::string>::const_iterator it=comps.begin();it!=comps.end();it++)
16408 -            oss << startOfLine << "  -  \"" << (*it) << "\"" << std::endl;
16409 -        }
16410 -      if(arr->isAllocated())
16411 -        {
16412 -          oss << startOfLine << "Whole field contains " << arr->getNumberOfTuples() << " tuples." << std::endl;
16413 -        }
16414 -      else
16415 -        oss << startOfLine << "The array of the current field has not allocated yet !" << std::endl;
16416 -    }
16417 -  else
16418 -    {
16419 -      oss << startOfLine << "Field infos are empty ! Not defined yet !" << std::endl;
16420 -    }
16421 -  oss << startOfLine << "----------------------" << std::endl;
16422 -  if(!_field_per_mesh.empty())
16423 -    {
16424 -      int i=0;
16425 -      for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it2=_field_per_mesh.begin();it2!=_field_per_mesh.end();it2++,i++)
16426 -        {
16427 -          const MEDFileFieldPerMesh *cur=(*it2);
16428 -          if(cur)
16429 -            cur->simpleRepr(bkOffset,oss,i);
16430 -          else
16431 -            oss << startOfLine << "Field per mesh #" << i << " is not defined !" << std::endl;
16432 -        }
16433 -    }
16434 -  else
16435 -    {
16436 -      oss << startOfLine << "Field is not defined on any meshes !" << std::endl;
16437 -    }
16438 -  oss << startOfLine << "----------------------" << std::endl;
16439 -}
16440 -
16441 -std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > MEDFileAnyTypeField1TSWithoutSDA::splitComponents() const
16442 -{
16443 -  const DataArray *arr(getUndergroundDataArray());
16444 -  if(!arr)
16445 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::splitComponents : no array defined !");
16446 -  int nbOfCompo=arr->getNumberOfComponents();
16447 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret(nbOfCompo);
16448 -  for(int i=0;i<nbOfCompo;i++)
16449 -    {
16450 -      ret[i]=deepCopy();
16451 -      std::vector<int> v(1,i);
16452 -      MCAuto<DataArray> arr2=arr->keepSelectedComponents(v);
16453 -      ret[i]->setArray(arr2);
16454 -    }
16455 -  return ret;
16456 -}
16457 -
16458 -MEDFileAnyTypeField1TSWithoutSDA::MEDFileAnyTypeField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order):MEDFileFieldNameScope(fieldName,meshName),_iteration(iteration),_order(order),_csit(csit),_nb_of_tuples_to_be_allocated(-2)
16459 -{
16460 -}
16461 -
16462 -MEDFileAnyTypeField1TSWithoutSDA::MEDFileAnyTypeField1TSWithoutSDA():_iteration(-1),_order(-1),_dt(0.),_csit(-1),_nb_of_tuples_to_be_allocated(-1)
16463 -{
16464 -}
16465 -
16466 -/*!
16467 - * Returns the maximal dimension of supporting elements. Returns -2 if \a this is
16468 - * empty. Returns -1 if this in on nodes.
16469 - *  \return int - the dimension of \a this.
16470 - */
16471 -int MEDFileAnyTypeField1TSWithoutSDA::getDimension() const
16472 -{
16473 -  int ret=-2;
16474 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16475 -    (*it)->getDimension(ret);
16476 -  return ret;
16477 -}
16478 -
16479 -bool MEDFileAnyTypeField1TSWithoutSDA::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
16480 -{
16481 -  bool ret=false;
16482 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16483 -    {
16484 -      MEDFileFieldPerMesh *cur(*it);
16485 -      if(cur)
16486 -        ret=cur->changeMeshNames(modifTab) || ret;
16487 -    }
16488 -  return ret;
16489 -}
16490 -
16491 -/*!
16492 - * Returns the number of iteration of the state of underlying mesh.
16493 - *  \return int - the iteration number.
16494 - *  \throw If \c _field_per_mesh.empty()
16495 - */
16496 -int MEDFileAnyTypeField1TSWithoutSDA::getMeshIteration() const
16497 -{
16498 -  if(_field_per_mesh.empty())
16499 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::getMeshIteration : No field set !");
16500 -  return _field_per_mesh[0]->getMeshIteration();
16501 -}
16502 -
16503 -/*!
16504 - * Returns the order number of iteration of the state of underlying mesh.
16505 - *  \return int - the order number.
16506 - *  \throw If \c _field_per_mesh.empty()
16507 - */
16508 -int MEDFileAnyTypeField1TSWithoutSDA::getMeshOrder() const
16509 -{
16510 -  if(_field_per_mesh.empty())
16511 -    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::getMeshOrder : No field set !");
16512 -  return _field_per_mesh[0]->getMeshOrder();
16513 -}
16514 -
16515 -/*!
16516 - * Checks if \a this field is tagged by a given iteration number and a given
16517 - * iteration order number.
16518 - *  \param [in] iteration - the iteration number of interest.
16519 - *  \param [in] order - the iteration order number of interest.
16520 - *  \return bool - \c true if \a this->getIteration() == \a iteration && 
16521 - *          \a this->getOrder() == \a order.
16522 - */
16523 -bool MEDFileAnyTypeField1TSWithoutSDA::isDealingTS(int iteration, int order) const
16524 -{
16525 -  return iteration==_iteration && order==_order;
16526 -}
16527 -
16528 -/*!
16529 - * Returns number of iteration and order number of iteration when
16530 - * \a this field has been calculated.
16531 - *  \return std::pair<int,int> - a pair of the iteration number and the iteration
16532 - *          order number.
16533 - */
16534 -std::pair<int,int> MEDFileAnyTypeField1TSWithoutSDA::getDtIt() const
16535 -{
16536 -  std::pair<int,int> p;
16537 -  fillIteration(p);
16538 -  return p;
16539 -}
16540 -
16541 -/*!
16542 - * Returns number of iteration and order number of iteration when
16543 - * \a this field has been calculated.
16544 - *  \param [in,out] p - a pair returning the iteration number and the iteration
16545 - *          order number.
16546 - */
16547 -void MEDFileAnyTypeField1TSWithoutSDA::fillIteration(std::pair<int,int>& p) const
16548 -{
16549 -  p.first=_iteration;
16550 -  p.second=_order;
16551 -}
16552 -
16553 -/*!
16554 - * Returns all types of spatial discretization of \a this field.
16555 - *  \param [in,out] types - a sequence of types of \a this field.
16556 - */
16557 -void MEDFileAnyTypeField1TSWithoutSDA::fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const
16558 -{
16559 -  std::set<TypeOfField> types2;
16560 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16561 -    {
16562 -      (*it)->fillTypesOfFieldAvailable(types2);
16563 -    }
16564 -  std::back_insert_iterator< std::vector<TypeOfField> > bi(types);
16565 -  std::copy(types2.begin(),types2.end(),bi);
16566 -}
16567 -
16568 -/*!
16569 - * Returns all types of spatial discretization of \a this field.
16570 - *  \return std::vector<TypeOfField> - a sequence of types of spatial discretization
16571 - *          of \a this field.
16572 - */
16573 -std::vector<TypeOfField> MEDFileAnyTypeField1TSWithoutSDA::getTypesOfFieldAvailable() const
16574 -{
16575 -  std::vector<TypeOfField> ret;
16576 -  fillTypesOfFieldAvailable(ret);
16577 -  return ret;
16578 -}
16579 -
16580 -std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getPflsReallyUsed2() const
16581 -{
16582 -  std::vector<std::string> ret;
16583 -  std::set<std::string> ret2;
16584 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16585 -    {
16586 -      std::vector<std::string> tmp=(*it)->getPflsReallyUsed();
16587 -      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
16588 -        if(ret2.find(*it2)==ret2.end())
16589 -          {
16590 -            ret.push_back(*it2);
16591 -            ret2.insert(*it2);
16592 -          }
16593 -    }
16594 -  return ret;
16595 -}
16596 -
16597 -std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getLocsReallyUsed2() const
16598 -{
16599 -  std::vector<std::string> ret;
16600 -  std::set<std::string> ret2;
16601 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16602 -    {
16603 -      std::vector<std::string> tmp=(*it)->getLocsReallyUsed();
16604 -      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
16605 -        if(ret2.find(*it2)==ret2.end())
16606 -          {
16607 -            ret.push_back(*it2);
16608 -            ret2.insert(*it2);
16609 -          }
16610 -    }
16611 -  return ret;
16612 -}
16613 -
16614 -std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getPflsReallyUsedMulti2() const
16615 -{
16616 -  std::vector<std::string> ret;
16617 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16618 -    {
16619 -      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti();
16620 -      ret.insert(ret.end(),tmp.begin(),tmp.end());
16621 -    }
16622 -  return ret;
16623 -}
16624 -
16625 -std::vector<std::string> MEDFileAnyTypeField1TSWithoutSDA::getLocsReallyUsedMulti2() const
16626 -{
16627 -  std::vector<std::string> ret;
16628 -  std::set<std::string> ret2;
16629 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16630 -    {
16631 -      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti();
16632 -      ret.insert(ret.end(),tmp.begin(),tmp.end());
16633 -    }
16634 -  return ret;
16635 -}
16636 -
16637 -void MEDFileAnyTypeField1TSWithoutSDA::changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
16638 -{
16639 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16640 -    (*it)->changePflsRefsNamesGen(mapOfModif);
16641 -}
16642 -
16643 -void MEDFileAnyTypeField1TSWithoutSDA::changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
16644 -{
16645 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16646 -    (*it)->changeLocsRefsNamesGen(mapOfModif);
16647 -}
16648 -
16649 -/*!
16650 - * Returns all attributes of parts of \a this field lying on a given mesh.
16651 - * Each part differs from other ones by a type of supporting mesh entity. The _i_-th
16652 - * item of every of returned sequences refers to the _i_-th part of \a this field.
16653 - * Thus all sequences returned by this method are of the same length equal to number
16654 - * of different types of supporting entities.<br>
16655 - * A field part can include sub-parts with several different spatial discretizations,
16656 - * \ref MEDCoupling::ON_CELLS "ON_CELLS" and \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT"
16657 - * for example. Hence, some of the returned sequences contains nested sequences, and an item
16658 - * of a nested sequence corresponds to a type of spatial discretization.<br>
16659 - * This method allows for iteration over MEDFile DataStructure without any overhead.
16660 - *  \param [in] mname - a name of a mesh of interest. It can be \c NULL, which is valid
16661 - *          for the case with only one underlying mesh. (Actually, the number of meshes is
16662 - *          not checked if \a mname == \c NULL).
16663 - *  \param [in,out] types - a sequence of types of underlying mesh entities. A type per
16664 - *          a field part is returned. 
16665 - *  \param [in,out] typesF - a sequence of sequences of types of spatial discretizations.
16666 - *          This sequence is of the same length as \a types. 
16667 - *  \param [in,out] pfls - a sequence returning a profile name per each type of spatial
16668 - *          discretization. A profile name can be empty.
16669 - *          Length of this and of nested sequences is the same as that of \a typesF.
16670 - *  \param [in,out] locs - a sequence returning a localization name per each type of spatial
16671 - *          discretization. A localization name can be empty.
16672 - *          Length of this and of nested sequences is the same as that of \a typesF.
16673 - *  \return std::vector< std::vector< std::pair<int,int> > > - a sequence holding a range
16674 - *          of ids of tuples within the data array, per each type of spatial
16675 - *          discretization within one mesh entity type. 
16676 - *          Length of this and of nested sequences is the same as that of \a typesF.
16677 - *  \throw If no field is lying on \a mname.
16678 - */
16679 -std::vector< std::vector< std::pair<int,int> > > MEDFileAnyTypeField1TSWithoutSDA::getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
16680 -{
16681 -  if(_field_per_mesh.empty())
16682 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldSplitedByType : This is empty !");
16683 -  return _field_per_mesh[0]->getFieldSplitedByType(types,typesF,pfls,locs);
16684 -}
16685 -
16686 -/*!
16687 - * Returns dimensions of mesh elements \a this field lies on. The returned value is a
16688 - * maximal absolute dimension and values returned via the out parameter \a levs are 
16689 - * dimensions relative to the maximal absolute dimension. <br>
16690 - * This method is designed for MEDFileField1TS instances that have a discretization
16691 - * \ref MEDCoupling::ON_CELLS "ON_CELLS", 
16692 - * \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT", 
16693 - * \ref MEDCoupling::ON_GAUSS_NE "ON_GAUSS_NE".
16694 - * Only these 3 discretizations will be taken into account here. If \a this is
16695 - * \ref MEDCoupling::ON_NODES "ON_NODES", -1 is returned and \a levs are empty.<br>
16696 - * This method is useful to make the link between the dimension of the underlying mesh
16697 - * and the levels of \a this, because it is possible that the highest dimension of \a this
16698 - * field is not equal to the dimension of the underlying mesh.
16699 - * 
16700 - * Let's consider the following case:
16701 - * - mesh \a m1 has a meshDimension 3 and has non empty levels [0,-1,-2] with elements
16702 - * TETRA4, HEXA8, TRI3 and SEG2.
16703 - * - field \a f1 lies on \a m1 and is defined on 3D and 1D elements TETRA4 and SEG2.
16704 - * - field \a f2 lies on \a m1 and is defined on 2D and 1D elements TRI3 and SEG2.
16705 - *
16706 - * In this case \a f1->getNonEmptyLevels() returns (3,[0,-2]) and \a
16707 - * f2->getNonEmptyLevels() returns (2,[0,-1]). <br>
16708 - * The returned values can be used for example to retrieve a MEDCouplingFieldDouble lying
16709 - * on elements of a certain relative level by calling getFieldAtLevel(). \a meshDimRelToMax
16710 - * parameter of getFieldAtLevel() is computed basing on the returned values as this:
16711 - * <em> meshDimRelToMax = absDim - meshDim + relativeLev </em>.
16712 - * For example<br>
16713 - * to retrieve the highest level of
16714 - * \a f1: <em>f1->getFieldAtLevel( ON_CELLS, 3-3+0 ); // absDim - meshDim + relativeLev</em><br> 
16715 - * to retrieve the lowest level of \a f1: <em>f1->getFieldAtLevel( ON_CELLS, 3-3+(-2) );</em><br>
16716 - * to retrieve the highest level of \a f2: <em>f2->getFieldAtLevel( ON_CELLS, 2-3+0 );</em><br>
16717 - * to retrieve the lowest level of \a f2: <em>f2->getFieldAtLevel( ON_CELLS, 2-3+(-1) )</em>.
16718 - *  \param [in] mname - a name of a mesh of interest. It can be \c NULL, which is valid
16719 - *          for the case with only one underlying mesh. (Actually, the number of meshes is
16720 - *          not checked if \a mname == \c NULL).
16721 - *  \param [in,out] levs - a sequence returning the dimensions relative to the maximal
16722 - *          absolute one. They are in decreasing order. This sequence is cleared before
16723 - *          filling it in.
16724 - *  \return int - the maximal absolute dimension of elements \a this fields lies on.
16725 - *  \throw If no field is lying on \a mname.
16726 - */
16727 -int MEDFileAnyTypeField1TSWithoutSDA::getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const
16728 -{
16729 -  levs.clear();
16730 -  std::vector<INTERP_KERNEL::NormalizedCellType> types;
16731 -  std::vector< std::vector<TypeOfField> > typesF;
16732 -  std::vector< std::vector<std::string> > pfls, locs;
16733 -  if(_field_per_mesh.empty())
16734 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getNonEmptyLevels : This is empty !");
16735 -  _field_per_mesh[0]->getFieldSplitedByType(types,typesF,pfls,locs);
16736 -  if(types.empty())
16737 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getNonEmptyLevels : 'this' is empty !");
16738 -  std::set<INTERP_KERNEL::NormalizedCellType> st(types.begin(),types.end());
16739 -  if(st.size()==1 && (*st.begin())==INTERP_KERNEL::NORM_ERROR)
16740 -    return -1;
16741 -  st.erase(INTERP_KERNEL::NORM_ERROR);
16742 -  std::set<int> ret1;
16743 -  for(std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator it=st.begin();it!=st.end();it++)
16744 -    {
16745 -      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(*it);
16746 -      ret1.insert((int)cm.getDimension());
16747 -    }
16748 -  int ret=*std::max_element(ret1.begin(),ret1.end());
16749 -  std::copy(ret1.rbegin(),ret1.rend(),std::back_insert_iterator<std::vector<int> >(levs));
16750 -  std::transform(levs.begin(),levs.end(),levs.begin(),std::bind2nd(std::plus<int>(),-ret));
16751 -  return ret;
16752 -}
16753 -
16754 -void MEDFileAnyTypeField1TSWithoutSDA::convertMedBallIntoClassic()
16755 -{
16756 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it<_field_per_mesh.end();it++)
16757 -    if((*it).isNotNull())
16758 -      (*it)->convertMedBallIntoClassic();
16759 -}
16760 -
16761 -void MEDFileAnyTypeField1TSWithoutSDA::makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl)
16762 -{
16763 -  if(!pfl)
16764 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : null pfl !");
16765 -  std::string name(pfl->getName());
16766 -  pfl->checkAllocated();
16767 -  if(pfl->getNumberOfComponents()!=1)
16768 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : non mono compo array !");
16769 -  if(name.empty())
16770 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : empty pfl name !");
16771 -  if(_field_per_mesh.size()!=1)
16772 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : only single mesh supported !");
16773 -  MCAuto<MEDFileFieldPerMesh> fpm(_field_per_mesh[0]);
16774 -  if(fpm.isNull())
16775 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : only single not null mesh supported !");
16776 -  MEDFileFieldPerMeshPerTypePerDisc *disc(fpm->getLeafGivenTypeAndLocId(ct,0));
16777 -  if(disc->getType()!=tof)
16778 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : error !");
16779 -  int s(disc->getStart()),e(disc->getEnd()),nt(pfl->getNumberOfTuples());
16780 -  DataArray *arr(getUndergroundDataArray());
16781 -  int nt2(arr->getNumberOfTuples()),delta((e-s)-nt);
16782 -  if(delta<0)
16783 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::makeReduction : internal error !");
16784 -  MCAuto<DataArray> arr0(arr->selectByTupleIdSafeSlice(0,s,1)),arr1(arr->selectByTupleIdSafeSlice(s,e,1)),arr2(arr->selectByTupleIdSafeSlice(e,nt2,1));
16785 -  MCAuto<DataArray> arr11(arr1->selectByTupleIdSafe(pfl->begin(),pfl->end()));
16786 -  MCAuto<DataArray> arrOut(arr->buildNewEmptyInstance());
16787 -  arrOut->alloc(nt2-delta,arr->getNumberOfComponents());
16788 -  arrOut->copyStringInfoFrom(*arr);
16789 -  arrOut->setContigPartOfSelectedValuesSlice(0,arr0,0,s,1);
16790 -  arrOut->setContigPartOfSelectedValuesSlice(s,arr11,0,nt,1);
16791 -  arrOut->setContigPartOfSelectedValuesSlice(e-delta,arr2,0,nt2-e,1);
16792 -  setArray(arrOut);
16793 -  disc->setEnd(e-delta);
16794 -  disc->setProfile(name);
16795 -}
16796 -
16797 -/*!
16798 - * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
16799 - * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
16800 - * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
16801 - *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
16802 - */
16803 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId)
16804 -{
16805 -  if(_field_per_mesh.empty())
16806 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId : This is empty !");
16807 -  return _field_per_mesh[0]->getLeafGivenTypeAndLocId(typ,locId);
16808 -}
16809 -
16810 -/*!
16811 - * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
16812 - * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
16813 - * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
16814 - *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
16815 - */
16816 -const MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const
16817 -{
16818 -  if(_field_per_mesh.empty())
16819 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getLeafGivenMeshAndTypeAndLocId : This is empty !");
16820 -  return _field_per_mesh[0]->getLeafGivenTypeAndLocId(typ,locId);
16821 -}
16822 -
16823 -/*!
16824 - * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
16825 - */
16826 -int MEDFileAnyTypeField1TSWithoutSDA::getMeshIdFromMeshName(const std::string& mName) const
16827 -{
16828 -  if(_field_per_mesh.empty())
16829 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getMeshIdFromMeshName : No field set !");
16830 -  if(mName.empty())
16831 -    return 0;
16832 -  std::string mName2(mName);
16833 -  int ret=0;
16834 -  std::vector<std::string> msg;
16835 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++,ret++)
16836 -    if(mName2==(*it)->getMeshName())
16837 -      return ret;
16838 -    else
16839 -      msg.push_back((*it)->getMeshName());
16840 -  std::ostringstream oss; oss << "MEDFileField1TSWithoutSDA::getMeshIdFromMeshName : No such mesh \"" << mName2 << "\" as underlying mesh of field \"" << getName() << "\" !\n";
16841 -  oss << "Possible meshes are : ";
16842 -  for(std::vector<std::string>::const_iterator it2=msg.begin();it2!=msg.end();it2++)
16843 -    oss << "\"" << (*it2) << "\" ";
16844 -  throw INTERP_KERNEL::Exception(oss.str());
16845 -}
16846 -
16847 -int MEDFileAnyTypeField1TSWithoutSDA::addNewEntryIfNecessary(const MEDCouplingMesh *mesh)
16848 -{
16849 -  if(!mesh)
16850 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::addNewEntryIfNecessary : input mesh is NULL !");
16851 -  std::string tmp(mesh->getName());
16852 -  if(tmp.empty())
16853 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::addNewEntryIfNecessary : empty mesh name ! unsupported by MED file !");
16854 -  setMeshName(tmp);
16855 -  std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();
16856 -  int i=0;
16857 -  for(;it!=_field_per_mesh.end();it++,i++)
16858 -    {
16859 -      if((*it)->getMeshName()==tmp)
16860 -        return i;
16861 -    }
16862 -  int sz=_field_per_mesh.size();
16863 -  _field_per_mesh.resize(sz+1);
16864 -  _field_per_mesh[sz]=MEDFileFieldPerMesh::New(this,mesh);
16865 -  return sz;
16866 -}
16867 -
16868 -bool MEDFileAnyTypeField1TSWithoutSDA::renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N,
16869 -                                                                   MEDFileFieldGlobsReal& glob)
16870 -{
16871 -  bool ret=false;
16872 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16873 -    {
16874 -      MEDFileFieldPerMesh *fpm(*it);
16875 -      if(fpm)
16876 -        ret=fpm->renumberEntitiesLyingOnMesh(meshName,oldCode,newCode,renumO2N,glob) || ret;
16877 -    }
16878 -  return ret;
16879 -}
16880 -
16881 -/*!
16882 - * This method splits \a this into several sub-parts so that each sub parts have exactly one spatial discretization. This method implements the minimal
16883 - * splitting that leads to single spatial discretization of this.
16884 - *
16885 - * \sa splitMultiDiscrPerGeoTypes
16886 - */
16887 -std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > MEDFileAnyTypeField1TSWithoutSDA::splitDiscretizations() const
16888 -{
16889 -  std::vector<INTERP_KERNEL::NormalizedCellType> types;
16890 -  std::vector< std::vector<TypeOfField> > typesF;
16891 -  std::vector< std::vector<std::string> > pfls,locs;
16892 -  std::vector< std::vector<std::pair<int,int> > > bgEnd(getFieldSplitedByType(getMeshName().c_str(),types,typesF,pfls,locs));
16893 -  std::set<TypeOfField> allEnt;
16894 -  for(std::vector< std::vector<TypeOfField> >::const_iterator it1=typesF.begin();it1!=typesF.end();it1++)
16895 -    for(std::vector<TypeOfField>::const_iterator it2=(*it1).begin();it2!=(*it1).end();it2++)
16896 -      allEnt.insert(*it2);
16897 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret(allEnt.size());
16898 -  std::set<TypeOfField>::const_iterator it3(allEnt.begin());
16899 -  for(std::size_t i=0;i<allEnt.size();i++,it3++)
16900 -    {
16901 -      std::vector< std::pair<int,int> > its;
16902 -      ret[i]=shallowCpy();
16903 -      int newLgth(ret[i]->keepOnlySpatialDiscretization(*it3,its));
16904 -      ret[i]->updateData(newLgth,its);
16905 -    }
16906 -  return ret;
16907 -}
16908 -
16909 -/*!
16910 - * This method performs a sub splitting as splitDiscretizations does but finer. This is the finest spliting level that can be done.
16911 - * This method implements the minimal splitting so that each returned elements are mono Gauss discretization per geometric type.
16912 - *
16913 - * \sa splitDiscretizations
16914 - */
16915 -std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > MEDFileAnyTypeField1TSWithoutSDA::splitMultiDiscrPerGeoTypes() const
16916 -{
16917 -  std::vector<INTERP_KERNEL::NormalizedCellType> types;
16918 -  std::vector< std::vector<TypeOfField> > typesF;
16919 -  std::vector< std::vector<std::string> > pfls,locs;
16920 -  std::vector< std::vector<std::pair<int,int> > > bgEnd(getFieldSplitedByType(getMeshName().c_str(),types,typesF,pfls,locs));
16921 -  std::set<TypeOfField> allEnt;
16922 -  std::size_t nbOfMDPGT(0),ii(0);
16923 -  for(std::vector< std::vector<TypeOfField> >::const_iterator it1=typesF.begin();it1!=typesF.end();it1++,ii++)
16924 -    {
16925 -      nbOfMDPGT=std::max(nbOfMDPGT,locs[ii].size());
16926 -      for(std::vector<TypeOfField>::const_iterator it2=(*it1).begin();it2!=(*it1).end();it2++)
16927 -        allEnt.insert(*it2);
16928 -    }
16929 -  if(allEnt.size()!=1)
16930 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::splitMultiDiscrPerGeoTypes : this field is expected to be defined only on one spatial discretization !");
16931 -  if(nbOfMDPGT==0)
16932 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::splitMultiDiscrPerGeoTypes : empty field !");
16933 -  if(nbOfMDPGT==1)
16934 -    {
16935 -      std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret0(1);
16936 -      ret0[0]=const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(this); this->incrRef();
16937 -      return ret0;
16938 -    }
16939 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret(nbOfMDPGT);
16940 -  for(std::size_t i=0;i<nbOfMDPGT;i++)
16941 -    {
16942 -      std::vector< std::pair<int,int> > its;
16943 -      ret[i]=shallowCpy();
16944 -      int newLgth(ret[i]->keepOnlyGaussDiscretization(i,its));
16945 -      ret[i]->updateData(newLgth,its);
16946 -    }
16947 -  return ret;
16948 -}
16949 -
16950 -int MEDFileAnyTypeField1TSWithoutSDA::keepOnlySpatialDiscretization(TypeOfField tof, std::vector< std::pair<int,int> >& its)
16951 -{
16952 -  int globalCounter(0);
16953 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16954 -    (*it)->keepOnlySpatialDiscretization(tof,globalCounter,its);
16955 -  return globalCounter;
16956 -}
16957 -
16958 -int MEDFileAnyTypeField1TSWithoutSDA::keepOnlyGaussDiscretization(std::size_t idOfDisc, std::vector< std::pair<int,int> >& its)
16959 -{
16960 -  int globalCounter(0);
16961 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
16962 -    (*it)->keepOnlyGaussDiscretization(idOfDisc,globalCounter,its);
16963 -  return globalCounter;
16964 -}
16965 -
16966 -void MEDFileAnyTypeField1TSWithoutSDA::updateData(int newLgth, const std::vector< std::pair<int,int> >& oldStartStops)
16967 -{
16968 -  if(_nb_of_tuples_to_be_allocated>=0)
16969 -    {
16970 -      _nb_of_tuples_to_be_allocated=newLgth;
16971 -      const DataArray *oldArr(getUndergroundDataArray());
16972 -      if(oldArr)
16973 -        {
16974 -          MCAuto<DataArray> newArr(createNewEmptyDataArrayInstance());
16975 -          newArr->setInfoAndChangeNbOfCompo(oldArr->getInfoOnComponents());
16976 -          setArray(newArr);
16977 -          _nb_of_tuples_to_be_allocated=newLgth;//force the _nb_of_tuples_to_be_allocated because setArray has been used specialy
16978 -        }
16979 -      return ;
16980 -    }
16981 -  if(_nb_of_tuples_to_be_allocated==-1)
16982 -    return ;
16983 -  if(_nb_of_tuples_to_be_allocated==-2 || _nb_of_tuples_to_be_allocated==-3)
16984 -    {
16985 -      const DataArray *oldArr(getUndergroundDataArray());
16986 -      if(!oldArr || !oldArr->isAllocated())
16987 -        throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::updateData : internal error 1 !");
16988 -      MCAuto<DataArray> newArr(createNewEmptyDataArrayInstance());
16989 -      newArr->alloc(newLgth,getNumberOfComponents());
16990 -      if(oldArr)
16991 -        newArr->copyStringInfoFrom(*oldArr);
16992 -      int pos=0;
16993 -      for(std::vector< std::pair<int,int> >::const_iterator it=oldStartStops.begin();it!=oldStartStops.end();it++)
16994 -        {
16995 -          if((*it).second<(*it).first)
16996 -            throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::updateData : the range in the leaves was invalid !");
16997 -          newArr->setContigPartOfSelectedValuesSlice(pos,oldArr,(*it).first,(*it).second,1);
16998 -          pos+=(*it).second-(*it).first;
16999 -        }
17000 -      setArray(newArr);
17001 -      return ;
17002 -    }
17003 -  throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::updateData : internal error 2 !");
17004 -}
17005 -
17006 -void MEDFileAnyTypeField1TSWithoutSDA::writeLL(med_idt fid, const MEDFileWritable& opts, const MEDFileFieldNameScope& nasc) const
17007 -{
17008 -  if(_field_per_mesh.empty())
17009 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::writeLL : empty field !");
17010 -  if(_field_per_mesh.size()>1)
17011 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::writeLL : In MED3.0 mode in writting mode only ONE underlying mesh supported !");
17012 -  _field_per_mesh[0]->copyOptionsFrom(opts);
17013 -  _field_per_mesh[0]->writeLL(fid,nasc);
17014 -}
17015 -
17016 -/*!
17017 - * This methods returns true is the allocation has been needed leading to a modification of state in \a this->_nb_of_tuples_to_be_allocated.
17018 - * If false is returned the memory allocation is not required.
17019 - */
17020 -bool MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile()
17021 -{
17022 -  if(_nb_of_tuples_to_be_allocated>=0)
17023 -    {
17024 -      getOrCreateAndGetArray()->alloc(_nb_of_tuples_to_be_allocated,getNumberOfComponents());
17025 -      _nb_of_tuples_to_be_allocated=-2;
17026 -      return true;
17027 -    }
17028 -  if(_nb_of_tuples_to_be_allocated==-2 || _nb_of_tuples_to_be_allocated==-3)
17029 -    return false;
17030 -  if(_nb_of_tuples_to_be_allocated==-1)
17031 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile : trying to read from a file an empty instance ! Need to prepare the structure before !");
17032 -  if(_nb_of_tuples_to_be_allocated<-3)
17033 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile : internal error !");
17034 -  throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocIfNecessaryTheArrayToReceiveDataFromFile : internal error !");
17035 -}
17036 -
17037 -void MEDFileAnyTypeField1TSWithoutSDA::loadOnlyStructureOfDataRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities)
17038 -{
17039 -  med_int numdt,numit;
17040 -  med_float dt;
17041 -  med_int meshnumdt,meshnumit;
17042 -  MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,nasc.getName().c_str(),_csit,&numdt,&numit,&_dt));
17043 -  {
17044 -    med_bool localMesh;
17045 -    med_int nmesh;
17046 -    INTERP_KERNEL::AutoPtr<char> meshName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
17047 -    MEDFILESAFECALLERRD0(MEDfield23ComputingStepMeshInfo,(fid,nasc.getName().c_str(),_csit,&numdt,&numit,&dt,&nmesh,meshName,&localMesh,&meshnumdt,&meshnumit)); // to check with Adrien for legacy MED files
17048 -  }
17049 -  //MEDFILESAFECALLERRD0(MEDfieldComputingStepMeshInfo,(fid,nasc.getName().c_str(),_csit,&numdt,&numit,&_dt,&meshnumdt,&meshnumit));
17050 -  if(_iteration!=numdt || _order!=numit)
17051 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::loadBigArraysRecursively : unexpected exception internal error !");
17052 -  _field_per_mesh.resize(1);
17053 -  //
17054 -  MEDFileMesh *mm(0);
17055 -  if(ms)
17056 -    {
17057 -      mm=ms->getMeshWithName(getMeshName());
17058 -    }
17059 -  //
17060 -  _field_per_mesh[0]=MEDFileFieldPerMesh::NewOnRead(fid,this,0,meshnumdt,meshnumit,nasc,mm,entities);
17061 -  _nb_of_tuples_to_be_allocated=0;
17062 -  _field_per_mesh[0]->loadOnlyStructureOfDataRecursively(fid,_nb_of_tuples_to_be_allocated,nasc);
17063 -}
17064 -
17065 -void MEDFileAnyTypeField1TSWithoutSDA::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
17066 -{
17067 -  allocIfNecessaryTheArrayToReceiveDataFromFile();
17068 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17069 -    (*it)->loadBigArraysRecursively(fid,nasc);
17070 -}
17071 -
17072 -void MEDFileAnyTypeField1TSWithoutSDA::loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc)
17073 -{
17074 -  if(allocIfNecessaryTheArrayToReceiveDataFromFile())
17075 -    for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17076 -      (*it)->loadBigArraysRecursively(fid,nasc);
17077 -}
17078 -
17079 -void MEDFileAnyTypeField1TSWithoutSDA::loadStructureAndBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities)
17080 -{
17081 -  loadOnlyStructureOfDataRecursively(fid,nasc,ms,entities);
17082 -  loadBigArraysRecursively(fid,nasc);
17083 -}
17084 -
17085 -void MEDFileAnyTypeField1TSWithoutSDA::unloadArrays()
17086 -{
17087 -  DataArray *thisArr(getUndergroundDataArray());
17088 -  if(thisArr && thisArr->isAllocated())
17089 -    {
17090 -      _nb_of_tuples_to_be_allocated=thisArr->getNumberOfTuples();
17091 -      thisArr->desallocate();
17092 -    }
17093 -}
17094 -
17095 -std::size_t MEDFileAnyTypeField1TSWithoutSDA::getHeapMemorySizeWithoutChildren() const
17096 -{
17097 -  return _mesh_name.capacity()+_dt_unit.capacity()+_field_per_mesh.capacity()*sizeof(MCAuto< MEDFileFieldPerMesh >);
17098 -}
17099 -
17100 -std::vector<const BigMemoryObject *> MEDFileAnyTypeField1TSWithoutSDA::getDirectChildrenWithNull() const
17101 -{
17102 -  std::vector<const BigMemoryObject *> ret;
17103 -  if(getUndergroundDataArray())
17104 -    ret.push_back(getUndergroundDataArray());
17105 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17106 -    ret.push_back((const MEDFileFieldPerMesh *)*it);
17107 -  return ret;
17108 -}
17109 -
17110 -/*!
17111 - * Adds a MEDCouplingFieldDouble to \a this. The underlying mesh of the given field is
17112 - * checked if its elements are sorted suitable for writing to MED file ("STB" stands for
17113 - * "Sort By Type"), if not, an exception is thrown. 
17114 - *  \param [in] field - the field to add to \a this. The array of field \a field is ignored
17115 - *  \param [in] arr - the array of values.
17116 - *  \param [in,out] glob - the global data where profiles and localization present in
17117 - *          \a field, if any, are added.
17118 - *  \throw If the name of \a field is empty.
17119 - *  \throw If the data array of \a field is not set.
17120 - *  \throw If \a this->_arr is already allocated but has different number of components
17121 - *         than \a field.
17122 - *  \throw If the underlying mesh of \a field has no name.
17123 - *  \throw If elements in the mesh are not in the order suitable for writing to the MED file.
17124 - */
17125 -void MEDFileAnyTypeField1TSWithoutSDA::setFieldNoProfileSBT(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
17126 -{
17127 -  const MEDCouplingMesh *mesh(field->getMesh());
17128 -  //
17129 -  TypeOfField type(field->getTypeOfField());
17130 -  std::vector<DataArrayInt *> dummy;
17131 -  if(mesh)
17132 -    setMeshName(mesh->getName());
17133 -  int start(copyTinyInfoFrom(th,field,arr));
17134 -  int pos(addNewEntryIfNecessary(mesh));
17135 -  if(type!=ON_NODES)
17136 -    {
17137 -      std::vector<int> code=MEDFileField1TSWithoutSDA::CheckSBTMesh(mesh);
17138 -      _field_per_mesh[pos]->assignFieldNoProfileNoRenum(start,code,field,arr,glob,nasc);
17139 -    }
17140 -  else
17141 -    _field_per_mesh[pos]->assignNodeFieldNoProfile(start,field,arr,glob);
17142 -}
17143 -
17144 -/*!
17145 - * Adds a MEDCouplingFieldDouble to \a this. Specified entities of a given dimension
17146 - * of a given mesh are used as the support of the given field (a real support is not used). 
17147 - * Elements of the given mesh must be sorted suitable for writing to MED file. 
17148 - * Order of underlying mesh entities of the given field specified by \a profile parameter
17149 - * is not prescribed; this method permutes field values to have them sorted by element
17150 - * type as required for writing to MED file. A new profile is added only if no equal
17151 - * profile is missing. 
17152 - *  \param [in] field - the field to add to \a this. The field double values are ignored.
17153 - *  \param [in] arrOfVals - the values of the field \a field used.
17154 - *  \param [in] mesh - the supporting mesh of \a field.
17155 - *  \param [in] meshDimRelToMax - a relative dimension of mesh entities \a field lies on.
17156 - *  \param [in] profile - ids of mesh entities on which corresponding field values lie.
17157 - *  \param [in,out] glob - the global data where profiles and localization present in
17158 - *          \a field, if any, are added.
17159 - *  \throw If either \a field or \a mesh or \a profile has an empty name.
17160 - *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in \a mesh.
17161 - *  \throw If the data array of \a field is not set.
17162 - *  \throw If \a this->_arr is already allocated but has different number of components
17163 - *         than \a field.
17164 - *  \throw If elements in \a mesh are not in the order suitable for writing to the MED file.
17165 - *  \sa setFieldNoProfileSBT()
17166 - */
17167 -void MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arrOfVals, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
17168 -{
17169 -  if(!field)
17170 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : input field is null !");
17171 -  if(!arrOfVals || !arrOfVals->isAllocated())
17172 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : input array is null or not allocated !");
17173 -  TypeOfField type=field->getTypeOfField();
17174 -  std::vector<DataArrayInt *> idsInPflPerType;
17175 -  std::vector<DataArrayInt *> idsPerType;
17176 -  std::vector<int> code,code2;
17177 -  MCAuto<MEDCouplingMesh> m(mesh->getMeshAtLevel(meshDimRelToMax));
17178 -  if(type!=ON_NODES)
17179 -    {
17180 -      m->splitProfilePerType(profile,code,idsInPflPerType,idsPerType);
17181 -      std::vector< MCAuto<DataArrayInt> > idsInPflPerType2(idsInPflPerType.size()); std::copy(idsInPflPerType.begin(),idsInPflPerType.end(),idsInPflPerType2.begin());
17182 -      std::vector< MCAuto<DataArrayInt> > idsPerType2(idsPerType.size()); std::copy(idsPerType.begin(),idsPerType.end(),idsPerType2.begin()); 
17183 -      std::vector<const DataArrayInt *> idsPerType3(idsPerType.size()); std::copy(idsPerType.begin(),idsPerType.end(),idsPerType3.begin());
17184 -      // start of check
17185 -      MCAuto<MEDCouplingFieldTemplate> field2=field->clone(false);
17186 -      int nbOfTuplesExp=field2->getNumberOfTuplesExpectedRegardingCode(code,idsPerType3);
17187 -      if(nbOfTuplesExp!=arrOfVals->getNumberOfTuples())
17188 -        {
17189 -          std::ostringstream oss; oss << "MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : The array is expected to have " << nbOfTuplesExp << " tuples ! It has " << arrOfVals->getNumberOfTuples() << " !";
17190 -          throw INTERP_KERNEL::Exception(oss.str());
17191 -        }
17192 -      // end of check
17193 -      int start(copyTinyInfoFrom(th,field,arrOfVals));
17194 -      code2=m->getDistributionOfTypes();
17195 -      //
17196 -      int pos=addNewEntryIfNecessary(m);
17197 -      _field_per_mesh[pos]->assignFieldProfile(start,profile,code,code2,idsInPflPerType,idsPerType,field,arrOfVals,m,glob,nasc);
17198 -    }
17199 -  else
17200 -    {
17201 -      if(!profile || !profile->isAllocated() || profile->getNumberOfComponents()!=1)
17202 -        throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : input profile is null, not allocated or with number of components != 1 !");
17203 -      std::vector<int> v(3); v[0]=-1; v[1]=profile->getNumberOfTuples(); v[2]=0;
17204 -      std::vector<const DataArrayInt *> idsPerType3(1); idsPerType3[0]=profile;
17205 -      int nbOfTuplesExp=field->getNumberOfTuplesExpectedRegardingCode(v,idsPerType3);
17206 -      if(nbOfTuplesExp!=arrOfVals->getNumberOfTuples())
17207 -        {
17208 -          std::ostringstream oss; oss << "MEDFileAnyTypeField1TSWithoutSDA::setFieldProfile : For node field, the array is expected to have " << nbOfTuplesExp << " tuples ! It has " << arrOfVals->getNumberOfTuples() << " !";
17209 -          throw INTERP_KERNEL::Exception(oss.str());
17210 -        }
17211 -      int start(copyTinyInfoFrom(th,field,arrOfVals));
17212 -      int pos(addNewEntryIfNecessary(m));
17213 -      _field_per_mesh[pos]->assignNodeFieldProfile(start,profile,field,arrOfVals,glob,nasc);
17214 -    }
17215 -}
17216 -
17217 -/*!
17218 - * \param [in] newNbOfTuples - The new nb of tuples to be allocated.
17219 - */
17220 -void MEDFileAnyTypeField1TSWithoutSDA::allocNotFromFile(int newNbOfTuples)
17221 -{
17222 -  if(_nb_of_tuples_to_be_allocated>=0)
17223 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::allocNotFromFile : the object is expected to be appended to a data coming from a file but not loaded ! Load before appending data !");
17224 -  DataArray *arr(getOrCreateAndGetArray());
17225 -  arr->alloc(newNbOfTuples,arr->getNumberOfComponents());
17226 -  _nb_of_tuples_to_be_allocated=-3;
17227 -}
17228 -
17229 -/*!
17230 - * Copies tiny info and allocates \a this->_arr instance of DataArrayDouble to
17231 - * append data of a given MEDCouplingFieldDouble. So that the size of \a this->_arr becomes
17232 - * larger by the size of \a field. Returns an id of the first not filled
17233 - * tuple of \a this->_arr.
17234 - *  \param [in] field - the field to copy the info on components and the name from.
17235 - *  \return int - the id of first not initialized tuple of \a this->_arr.
17236 - *  \throw If the name of \a field is empty.
17237 - *  \throw If the data array of \a field is not set.
17238 - *  \throw If \a this->_arr is already allocated but has different number of components
17239 - *         than \a field.
17240 - */
17241 -int MEDFileAnyTypeField1TSWithoutSDA::copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr)
17242 -{
17243 -  if(!field)
17244 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::copyTinyInfoFrom : input field is NULL !");
17245 -  std::string name(field->getName());
17246 -  setName(name.c_str());
17247 -  if(field->getMesh())
17248 -    setMeshName(field->getMesh()->getName());
17249 -  setDtUnit(th->getTimeUnit());
17250 -  if(name.empty())
17251 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::copyTinyInfoFrom : unsupported fields with no name in MED file !");
17252 -  if(!arr)
17253 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::copyTinyInfoFrom : no array set !");
17254 -  if(!arr->isAllocated())
17255 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::copyTinyInfoFrom : array is not allocated !");
17256 -  _dt=th->getTime(_iteration,_order);
17257 -  getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(arr->getInfoOnComponents());
17258 -  if(!getOrCreateAndGetArray()->isAllocated())
17259 -    {
17260 -      allocNotFromFile(arr->getNumberOfTuples());
17261 -      return 0;
17262 -    }
17263 -  else
17264 -    {
17265 -      int oldNbOfTuples=getOrCreateAndGetArray()->getNumberOfTuples();
17266 -      int newNbOfTuples=oldNbOfTuples+arr->getNumberOfTuples();
17267 -      getOrCreateAndGetArray()->reAlloc(newNbOfTuples);
17268 -      _nb_of_tuples_to_be_allocated=-3;
17269 -      return oldNbOfTuples;
17270 -    }
17271 -}
17272 -
17273 -/*!
17274 - * Returns number of components in \a this field
17275 - *  \return int - the number of components.
17276 - */
17277 -int MEDFileAnyTypeField1TSWithoutSDA::getNumberOfComponents() const
17278 -{
17279 -  return getOrCreateAndGetArray()->getNumberOfComponents();
17280 -}
17281 -
17282 -/*!
17283 - * Change info on components in \a this.
17284 - * \throw If size of \a infos is not equal to the number of components already in \a this.
17285 - */
17286 -void MEDFileAnyTypeField1TSWithoutSDA::setInfo(const std::vector<std::string>& infos)
17287 -{
17288 -  DataArray *arr=getOrCreateAndGetArray();
17289 -  arr->setInfoOnComponents(infos);//will throw an exception if number of components mimatches
17290 -}
17291 -
17292 -/*!
17293 - * Returns info on components of \a this field.
17294 - *  \return const std::vector<std::string>& - a sequence of strings each being an
17295 - *          information on _i_-th component.
17296 - */
17297 -const std::vector<std::string>& MEDFileAnyTypeField1TSWithoutSDA::getInfo() const
17298 -{
17299 -  const DataArray *arr=getOrCreateAndGetArray();
17300 -  return arr->getInfoOnComponents();
17301 -}
17302 -
17303 -/*!
17304 - * Returns a mutable info on components of \a this field.
17305 - *  \return std::vector<std::string>& - a sequence of strings each being an
17306 - *          information on _i_-th component.
17307 - */
17308 -std::vector<std::string>& MEDFileAnyTypeField1TSWithoutSDA::getInfo()
17309 -{
17310 -  DataArray *arr=getOrCreateAndGetArray();
17311 -  return arr->getInfoOnComponents();
17312 -}
17313 -
17314 -bool MEDFileAnyTypeField1TSWithoutSDA::presenceOfMultiDiscPerGeoType() const
17315 -{
17316 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17317 -    {
17318 -      const MEDFileFieldPerMesh *fpm(*it);
17319 -      if(!fpm)
17320 -        continue;
17321 -      if(fpm->presenceOfMultiDiscPerGeoType())
17322 -        return true;
17323 -    }
17324 -  return false;
17325 -}
17326 -
17327 -bool MEDFileAnyTypeField1TSWithoutSDA::presenceOfStructureElements() const
17328 -{
17329 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17330 -    if((*it).isNotNull())
17331 -      if((*it)->presenceOfStructureElements())
17332 -        return true;
17333 -  return false;
17334 -}
17335 -
17336 -bool MEDFileAnyTypeField1TSWithoutSDA::onlyStructureElements() const
17337 -{
17338 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17339 -    if((*it).isNotNull())
17340 -      if(!(*it)->onlyStructureElements())
17341 -        return false;
17342 -  return true;
17343 -}
17344 -
17345 -void MEDFileAnyTypeField1TSWithoutSDA::killStructureElements()
17346 -{
17347 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17348 -    if((*it).isNotNull())
17349 -      (*it)->killStructureElements();
17350 -}
17351 -
17352 -void MEDFileAnyTypeField1TSWithoutSDA::keepOnlyStructureElements()
17353 -{
17354 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17355 -    if((*it).isNotNull())
17356 -      (*it)->keepOnlyStructureElements();
17357 -}
17358 -
17359 -void MEDFileAnyTypeField1TSWithoutSDA::keepOnlyOnSE(const std::string& seName)
17360 -{
17361 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17362 -    if((*it).isNotNull())
17363 -      (*it)->keepOnlyOnSE(seName);
17364 -}
17365 -
17366 -void MEDFileAnyTypeField1TSWithoutSDA::getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const
17367 -{
17368 -  for(std::vector< MCAuto< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++)
17369 -    if((*it).isNotNull())
17370 -      (*it)->getMeshSENames(ps);
17371 -}
17372 -
17373 -MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh(const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
17374 -{
17375 -  static const char MSG0[]="MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the field is too complex to be able to be extracted with  \"field\" method ! Call getFieldOnMeshAtLevel method instead to deal with complexity !";
17376 -  if(_field_per_mesh.empty())
17377 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the field is empty ! Nothing to extract !");
17378 -  if(_field_per_mesh.size()>1)
17379 -    throw INTERP_KERNEL::Exception(MSG0);
17380 -  if(_field_per_mesh[0].isNull())
17381 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the field is inconsistent !");
17382 -  const MEDFileFieldPerMesh *pm(_field_per_mesh[0]);
17383 -  std::set<TypeOfField> types;
17384 -  pm->fillTypesOfFieldAvailable(types);
17385 -  if(types.size()!=1)
17386 -    throw INTERP_KERNEL::Exception(MSG0);
17387 -  TypeOfField type(*types.begin());
17388 -  int meshDimRelToMax(0);
17389 -  if(type==ON_NODES)
17390 -    meshDimRelToMax=0;
17391 -  else
17392 -    {
17393 -      int myDim(std::numeric_limits<int>::max());
17394 -      bool isUnique(pm->isUniqueLevel(myDim));
17395 -      if(!isUnique)
17396 -        throw INTERP_KERNEL::Exception(MSG0);
17397 -      meshDimRelToMax=myDim-mesh->getMeshDimension();
17398 -      if(meshDimRelToMax>0)
17399 -        throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::fieldOnMesh : the mesh attached to field is not compatible with the field !");
17400 -    }
17401 -  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,meshDimRelToMax,0/*renumPol*/,glob,mesh,arrOut,nasc);
17402 -}
17403 -
17404 -/*!
17405 - * Returns a new MEDCouplingFieldDouble of given type lying on a given support.
17406 - *  \param [in] type - a spatial discretization of the new field.
17407 - *  \param [in] meshDimRelToMax - a relative dimension of the supporting mesh entities.
17408 - *  \param [in] mName - a name of the supporting mesh.
17409 - *  \param [in] renumPol - specifies how to permute values of the result field according to
17410 - *          the optional numbers of cells and nodes, if any. The valid values are
17411 - *          - 0 - do not permute.
17412 - *          - 1 - permute cells.
17413 - *          - 2 - permute nodes.
17414 - *          - 3 - permute cells and nodes.
17415 - *
17416 - *  \param [in] glob - the global data storing profiles and localization.
17417 - *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
17418 - *          caller is to delete this field using decrRef() as it is no more needed. 
17419 - *  \throw If the MED file is not readable.
17420 - *  \throw If there is no mesh named \a mName in the MED file.
17421 - *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in the mesh.
17422 - *  \throw If no field of \a this is lying on the mesh \a mName.
17423 - *  \throw If no field values of the given \a type or given \a meshDimRelToMax are available.
17424 - */
17425 -MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldAtLevel(TypeOfField type, int meshDimRelToMax, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
17426 -{
17427 -  MCAuto<MEDFileMesh> mm;
17428 -  if(mName.empty())
17429 -    mm=MEDFileMesh::New(glob->getFileName(),getMeshName().c_str(),getMeshIteration(),getMeshOrder());
17430 -  else
17431 -    mm=MEDFileMesh::New(glob->getFileName(),mName,getMeshIteration(),getMeshOrder());
17432 -  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,meshDimRelToMax,renumPol,glob,mm,arrOut,nasc);
17433 -}
17434 -
17435 -/*!
17436 - * Returns a new MEDCouplingFieldDouble of given type lying on a given support.
17437 - *  \param [in] type - a spatial discretization of the new field.
17438 - *  \param [in] meshDimRelToMax - a relative dimension of the supporting mesh entities.
17439 - *  \param [in] renumPol - specifies how to permute values of the result field according to
17440 - *          the optional numbers of cells and nodes, if any. The valid values are
17441 - *          - 0 - do not permute.
17442 - *          - 1 - permute cells.
17443 - *          - 2 - permute nodes.
17444 - *          - 3 - permute cells and nodes.
17445 - *
17446 - *  \param [in] glob - the global data storing profiles and localization.
17447 - *  \param [in] mesh - the supporting mesh.
17448 - *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
17449 - *          caller is to delete this field using decrRef() as it is no more needed. 
17450 - *  \throw If the MED file is not readable.
17451 - *  \throw If no field of \a this is lying on \a mesh.
17452 - *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in the mesh.
17453 - *  \throw If no field values of the given \a type or given \a meshDimRelToMax are available.
17454 - */
17455 -MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
17456 -{
17457 -  MCAuto<MEDCouplingMesh> m(mesh->getMeshAtLevel(meshDimRelToMax,false));
17458 -  const DataArrayInt *d(mesh->getNumberFieldAtLevel(meshDimRelToMax)),*e(mesh->getNumberFieldAtLevel(1));
17459 -  if(meshDimRelToMax==1)
17460 -    (static_cast<MEDCouplingUMesh *>((MEDCouplingMesh *)m))->setMeshDimension(0);
17461 -  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,renumPol,glob,m,d,e,arrOut,nasc);
17462 -}
17463 -
17464 -/*!
17465 - * Returns a new MEDCouplingFieldDouble of a given type lying on the top level cells of a
17466 - * given mesh. 
17467 - *  \param [in] type - a spatial discretization of the new field.
17468 - *  \param [in] mName - a name of the supporting mesh.
17469 - *  \param [in] renumPol - specifies how to permute values of the result field according to
17470 - *          the optional numbers of cells and nodes, if any. The valid values are
17471 - *          - 0 - do not permute.
17472 - *          - 1 - permute cells.
17473 - *          - 2 - permute nodes.
17474 - *          - 3 - permute cells and nodes.
17475 - *
17476 - *  \param [in] glob - the global data storing profiles and localization.
17477 - *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
17478 - *          caller is to delete this field using decrRef() as it is no more needed. 
17479 - *  \throw If the MED file is not readable.
17480 - *  \throw If there is no mesh named \a mName in the MED file.
17481 - *  \throw If there are no mesh entities in the mesh.
17482 - *  \throw If no field values of the given \a type are available.
17483 - */
17484 -MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldAtTopLevel(TypeOfField type, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
17485 -{
17486 -  MCAuto<MEDFileMesh> mm;
17487 -  if(mName.empty())
17488 -    mm=MEDFileMesh::New(glob->getFileName(),getMeshName().c_str(),getMeshIteration(),getMeshOrder());
17489 -  else
17490 -    mm=MEDFileMesh::New(glob->getFileName(),mName,getMeshIteration(),getMeshOrder());
17491 -  int absDim=getDimension();
17492 -  int meshDimRelToMax=absDim-mm->getMeshDimension();
17493 -  return MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(type,meshDimRelToMax,renumPol,glob,mm,arrOut,nasc);
17494 -}
17495 -
17496 -/*!
17497 - * Returns a new MEDCouplingFieldDouble of given type lying on a given support.
17498 - *  \param [in] type - a spatial discretization of the new field.
17499 - *  \param [in] renumPol - specifies how to permute values of the result field according to
17500 - *          the optional numbers of cells and nodes, if any. The valid values are
17501 - *          - 0 - do not permute.
17502 - *          - 1 - permute cells.
17503 - *          - 2 - permute nodes.
17504 - *          - 3 - permute cells and nodes.
17505 - *
17506 - *  \param [in] glob - the global data storing profiles and localization.
17507 - *  \param [in] mesh - the supporting mesh.
17508 - *  \param [in] cellRenum - the cell numbers array used for permutation of the result
17509 - *         field according to \a renumPol.
17510 - *  \param [in] nodeRenum - the node numbers array used for permutation of the result
17511 - *         field according to \a renumPol.
17512 - *  \return MEDCouplingFieldDouble * - a new instance of MEDCouplingFieldDouble. The
17513 - *          caller is to delete this field using decrRef() as it is no more needed. 
17514 - *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in the mesh.
17515 - *  \throw If no field of \a this is lying on \a mesh.
17516 - *  \throw If no field values of the given \a type or given \a meshDimRelToMax are available.
17517 - */
17518 -MEDCouplingFieldDouble *MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel(TypeOfField type, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, const DataArrayInt *cellRenum, const DataArrayInt *nodeRenum, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
17519 -{
17520 -  static const char msg1[]="MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : request for a renumbered field following mesh numbering whereas it is a profile field !";
17521 -  bool isPfl=false;
17522 -  MCAuto<MEDCouplingFieldDouble> ret=_field_per_mesh[0]->getFieldOnMeshAtLevel(type,glob,mesh,isPfl,arrOut,nasc);
17523 -  switch(renumPol)
17524 -  {
17525 -    case 0:
17526 -      {
17527 -        //no need to test _field_per_mesh.empty() because geMeshName has already done it
17528 -        return ret.retn();
17529 -      }
17530 -    case 3:
17531 -    case 1:
17532 -      {
17533 -        if(isPfl)
17534 -          throw INTERP_KERNEL::Exception(msg1);
17535 -        //no need to test _field_per_mesh.empty() because geMeshName has already done it
17536 -        if(cellRenum)
17537 -          {
17538 -            if((int)cellRenum->getNbOfElems()!=mesh->getNumberOfCells())
17539 -              {
17540 -                std::ostringstream oss; oss << "MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : Request of simple renumbering but it seems that underlying mesh \"" << mesh->getName() << "\" of requested field ";
17541 -                oss << "\"" << getName() << "\" has partial renumbering (some geotype has no renumber) !";
17542 -                throw INTERP_KERNEL::Exception(oss.str());
17543 -              }
17544 -            MEDCouplingFieldDiscretization *disc=ret->getDiscretization();
17545 -            if(!disc) throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TSWithoutSDA::getFieldOnMeshAtLevel : internal error, no discretization on field !");
17546 -            std::vector<DataArray *> arrOut2(1,arrOut);
17547 -            // 2 following lines replace ret->renumberCells(cellRenum->getConstPointer()) if not DataArrayDouble
17548 -            disc->renumberArraysForCell(ret->getMesh(),arrOut2,cellRenum->getConstPointer(),true);
17549 -            (const_cast<MEDCouplingMesh*>(ret->getMesh()))->renumberCells(cellRenum->getConstPointer(),true);
17550 -          }
17551 -        if(renumPol==1)
17552 -          return ret.retn();
17553 -      }
17554 -    case 2:
17555 -      {
17556 -        //no need to test _field_per_mesh.empty() because geMeshName has already done it
17557 -        if(isPfl)
17558 -          throw INTERP_KERNEL::Exception(msg1);
17559 -        if(nodeRenum)
17560 -          {
17561 -            if((int)nodeRenum->getNbOfElems()!=mesh->getNumberOfNodes())
17562 -              {
17563 -                std::ostringstream oss; oss << "MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : Request of simple renumbering but it seems that underlying mesh \"" << mesh->getName() << "\" of requested field ";
17564 -                oss << "\"" << nasc.getName() << "\" not defined on all nodes !";
17565 -                throw INTERP_KERNEL::Exception(oss.str());
17566 -              }
17567 -            MCAuto<DataArrayInt> nodeRenumSafe=nodeRenum->checkAndPreparePermutation();
17568 -            if(!dynamic_cast<DataArrayDouble *>((DataArray *)arrOut))
17569 -              throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : node renumbering not implemented for not double DataArrays !");
17570 -            ret->renumberNodes(nodeRenumSafe->getConstPointer());
17571 -          }
17572 -        return ret.retn();
17573 -      }
17574 -    default:
17575 -      throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldOnMeshAtLevel : unsupported renum policy ! Dealing with policy 0 1 2 and 3 !");
17576 -  }
17577 -}
17578 -
17579 -/*!
17580 - * Returns values and a profile of the field of a given type lying on a given support.
17581 - *  \param [in] type - a spatial discretization of the field.
17582 - *  \param [in] meshDimRelToMax - a relative dimension of the supporting mesh entities.
17583 - *  \param [in] mesh - the supporting mesh.
17584 - *  \param [out] pfl - a new instance of DataArrayInt holding ids of mesh entities the
17585 - *          field of interest lies on. If the field lies on all entities of the given
17586 - *          dimension, all ids in \a pfl are zero. The caller is to delete this array
17587 - *          using decrRef() as it is no more needed.  
17588 - *  \param [in] glob - the global data storing profiles and localization.
17589 - *  \return DataArrayDouble * - a new instance of DataArrayDouble holding values of the
17590 - *          field. The caller is to delete this array using decrRef() as it is no more needed.
17591 - *  \throw If there are no mesh entities of \a meshDimRelToMax dimension in \a mesh.
17592 - *  \throw If no field of \a this is lying on \a mesh.
17593 - *  \throw If no field values of the given \a type are available.
17594 - */
17595 -DataArray *MEDFileAnyTypeField1TSWithoutSDA::getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const
17596 -{
17597 -  MCAuto<MEDCouplingMesh> m(mesh->getMeshAtLevel(meshDimRelToMax));
17598 -  MCAuto<DataArray> ret=_field_per_mesh[0]->getFieldOnMeshAtLevelWithPfl(type,m,pfl,glob,nasc);
17599 -  ret->setName(nasc.getName().c_str());
17600 -  return ret.retn();
17601 -}
17602 -
17603 -//= MEDFileField1TSWithoutSDA
17604 -
17605 -/*!
17606 - * Throws if a given value is not a valid (non-extended) relative dimension.
17607 - *  \param [in] meshDimRelToMax - the relative dimension value.
17608 - *  \throw If \a meshDimRelToMax > 0.
17609 - */
17610 -void MEDFileField1TSWithoutSDA::CheckMeshDimRel(int meshDimRelToMax)
17611 -{
17612 -  if(meshDimRelToMax>0)
17613 -    throw INTERP_KERNEL::Exception("CheckMeshDimRel : This is a meshDimRel not a meshDimRelExt ! So value should be <=0 !");
17614 -}
17615 -
17616 -/*!
17617 - * Checks if elements of a given mesh are in the order suitable for writing 
17618 - * to the MED file. If this is not so, an exception is thrown. In a case of success, returns a
17619 - * vector describing types of elements and their number.
17620 - *  \param [in] mesh - the mesh to check.
17621 - *  \return std::vector<int> - a vector holding for each element type (1) item of
17622 - *          INTERP_KERNEL::NormalizedCellType, (2) number of elements, (3) -1. 
17623 - *          These values are in full-interlace mode.
17624 - *  \throw If elements in \a mesh are not in the order suitable for writing to the MED file.
17625 - */
17626 -std::vector<int> MEDFileField1TSWithoutSDA::CheckSBTMesh(const MEDCouplingMesh *mesh)
17627 -{
17628 -  if(!mesh)
17629 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::CheckSBTMesh : input mesh is NULL !");
17630 -  std::set<INTERP_KERNEL::NormalizedCellType> geoTypes=mesh->getAllGeoTypes();
17631 -  int nbOfTypes=geoTypes.size();
17632 -  std::vector<int> code(3*nbOfTypes);
17633 -  MCAuto<DataArrayInt> arr1=DataArrayInt::New();
17634 -  arr1->alloc(nbOfTypes,1);
17635 -  int *arrPtr=arr1->getPointer();
17636 -  std::set<INTERP_KERNEL::NormalizedCellType>::const_iterator it=geoTypes.begin();
17637 -  for(int i=0;i<nbOfTypes;i++,it++)
17638 -    arrPtr[i]=std::distance(typmai2,std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,*it));
17639 -  MCAuto<DataArrayInt> arr2=arr1->checkAndPreparePermutation();
17640 -  const int *arrPtr2=arr2->getConstPointer();
17641 -  int i=0;
17642 -  for(it=geoTypes.begin();it!=geoTypes.end();it++,i++)
17643 -    {
17644 -      int pos=arrPtr2[i];
17645 -      int nbCells=mesh->getNumberOfCellsWithType(*it);
17646 -      code[3*pos]=(int)(*it);
17647 -      code[3*pos+1]=nbCells;
17648 -      code[3*pos+2]=-1;//no profiles
17649 -    }
17650 -  std::vector<const DataArrayInt *> idsPerType;//no profiles
17651 -  DataArrayInt *da=mesh->checkTypeConsistencyAndContig(code,idsPerType);
17652 -  if(da)
17653 -    {
17654 -      da->decrRef();
17655 -      throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::CheckSBTMesh : underlying mesh is not sorted by type as MED file expects !");
17656 -    }
17657 -  return code;
17658 -}
17659 -
17660 -MEDFileField1TSWithoutSDA *MEDFileField1TSWithoutSDA::New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos)
17661 -{
17662 -  return new MEDFileField1TSWithoutSDA(fieldName,meshName,csit,iteration,order,infos);
17663 -}
17664 -
17665 -/*!
17666 - * Returns all attributes and values of parts of \a this field lying on a given mesh.
17667 - * Each part differs from other ones by a type of supporting mesh entity. The _i_-th
17668 - * item of every of returned sequences refers to the _i_-th part of \a this field.
17669 - * Thus all sequences returned by this method are of the same length equal to number
17670 - * of different types of supporting entities.<br>
17671 - * A field part can include sub-parts with several different spatial discretizations,
17672 - * \ref MEDCoupling::ON_CELLS "ON_CELLS" and \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT"
17673 - * for example. Hence, some of the returned sequences contains nested sequences, and an item
17674 - * of a nested sequence corresponds to a type of spatial discretization.<br>
17675 - * This method allows for iteration over MEDFile DataStructure with a reduced overhead.
17676 - * The overhead is due to selecting values into new instances of DataArrayDouble.
17677 - *  \param [in] mname - a name of a mesh of interest. It can be \c NULL, which is valid
17678 - *          for the case with only one underlying mesh. (Actually, the number of meshes is
17679 - *          not checked if \a mname == \c NULL).
17680 - *  \param [in,out] types - a sequence of types of underlying mesh entities. A type per
17681 - *          a field part is returned. 
17682 - *  \param [in,out] typesF - a sequence of sequences of types of spatial discretizations.
17683 - *          A field part can include sub-parts with several different spatial discretizations,
17684 - *          \ref MEDCoupling::ON_CELLS "ON_CELLS" and 
17685 - *          \ref MEDCoupling::ON_GAUSS_PT "ON_GAUSS_PT" for example.
17686 - *          This sequence is of the same length as \a types. 
17687 - *  \param [in,out] pfls - a sequence returning a profile name per each type of spatial
17688 - *          discretization. A profile name can be empty.
17689 - *          Length of this and of nested sequences is the same as that of \a typesF.
17690 - *  \param [in,out] locs - a sequence returning a localization name per each type of spatial
17691 - *          discretization. A localization name can be empty.
17692 - *          Length of this and of nested sequences is the same as that of \a typesF.
17693 - *  \return std::vector< std::vector<DataArrayDouble *> > - a sequence holding arrays of values
17694 - *          per each type of spatial discretization within one mesh entity type.
17695 - *          The caller is to delete each DataArrayDouble using decrRef() as it is no more needed.
17696 - *          Length of this and of nested sequences is the same as that of \a typesF.
17697 - *  \throw If no field is lying on \a mname.
17698 - */
17699 -std::vector< std::vector<DataArrayDouble *> > MEDFileField1TSWithoutSDA::getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
17700 -{
17701 -  if(mname.empty())
17702 -    if(_field_per_mesh.empty())
17703 -      throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getFieldSplitedByType : This is empty !");
17704 -  std::vector< std::vector< std::pair<int,int> > > ret0=_field_per_mesh[0]->getFieldSplitedByType(types,typesF,pfls,locs);
17705 -  int nbOfRet=ret0.size();
17706 -  std::vector< std::vector<DataArrayDouble *> > ret(nbOfRet);
17707 -  for(int i=0;i<nbOfRet;i++)
17708 -    {
17709 -      const std::vector< std::pair<int,int> >& p=ret0[i];
17710 -      int nbOfRet1=p.size();
17711 -      ret[i].resize(nbOfRet1);
17712 -      for(int j=0;j<nbOfRet1;j++)
17713 -        {
17714 -          DataArrayDouble *tmp=_arr->selectByTupleIdSafeSlice(p[j].first,p[j].second,1);
17715 -          ret[i][j]=tmp;
17716 -        }
17717 -    }
17718 -  return ret;
17719 -}
17720 -
17721 -const char *MEDFileField1TSWithoutSDA::getTypeStr() const
17722 -{
17723 -  return TYPE_STR;
17724 -}
17725 -
17726 -MEDFileIntField1TSWithoutSDA *MEDFileField1TSWithoutSDA::convertToInt() const
17727 -{
17728 -  MCAuto<MEDFileIntField1TSWithoutSDA> ret(new MEDFileIntField1TSWithoutSDA);
17729 -  ret->MEDFileAnyTypeField1TSWithoutSDA::operator =(*this);
17730 -  ret->deepCpyLeavesFrom(*this);
17731 -  const DataArrayDouble *arr(_arr);
17732 -  if(arr)
17733 -    {
17734 -      MCAuto<DataArrayInt> arr2(arr->convertToIntArr());
17735 -      ret->setArray(arr2);
17736 -    }
17737 -  return ret.retn();
17738 -}
17739 -
17740 -/*!
17741 - * Returns a pointer to the underground DataArrayDouble instance and a
17742 - * sequence describing parameters of a support of each part of \a this field. The
17743 - * caller should not decrRef() the returned DataArrayDouble. This method allows for a
17744 - * direct access to the field values. This method is intended for the field lying on one
17745 - * mesh only.
17746 - *  \param [in,out] entries - the sequence describing parameters of a support of each
17747 - *         part of \a this field. Each item of this sequence consists of two parts. The
17748 - *         first part describes a type of mesh entity and an id of discretization of a
17749 - *         current field part. The second part describes a range of values [begin,end)
17750 - *         within the returned array relating to the current field part.
17751 - *  \return DataArrayDouble * - the pointer to the field values array.
17752 - *  \throw If the number of underlying meshes is not equal to 1.
17753 - *  \throw If no field values are available.
17754 - *  \sa getUndergroundDataArray()
17755 - */
17756 -DataArray *MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
17757 -{
17758 -  return getUndergroundDataArrayTemplateExt(entries);
17759 -}
17760 -
17761 -MEDFileField1TSWithoutSDA::MEDFileField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos):MEDFileField1TSTemplateWithoutSDA<double>(fieldName,meshName,csit,iteration,order)
17762 -{
17763 -  DataArrayDouble *arr(getOrCreateAndGetArrayTemplate());
17764 -  arr->setInfoAndChangeNbOfCompo(infos);
17765 -}
17766 -
17767 -MEDFileField1TSWithoutSDA::MEDFileField1TSWithoutSDA():MEDFileField1TSTemplateWithoutSDA<double>()
17768 -{
17769 -}
17770 -
17771 -MEDFileField1TSWithoutSDA *MEDFileField1TSWithoutSDA::shallowCpy() const
17772 -{
17773 -  MCAuto<MEDFileField1TSWithoutSDA> ret(new MEDFileField1TSWithoutSDA(*this));
17774 -  ret->deepCpyLeavesFrom(*this);
17775 -  return ret.retn();
17776 -}
17777 -
17778 -MEDFileField1TSWithoutSDA *MEDFileField1TSWithoutSDA::deepCopy() const
17779 -{
17780 -  MCAuto<MEDFileField1TSWithoutSDA> ret(shallowCpy());
17781 -  if(_arr.isNotNull())
17782 -    ret->_arr=_arr->deepCopy();
17783 -  return ret.retn();
17784 -}
17785 -
17786 -//= MEDFileIntField1TSWithoutSDA
17787 -
17788 -MEDFileIntField1TSWithoutSDA *MEDFileIntField1TSWithoutSDA::New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos)
17789 -{
17790 -  return new MEDFileIntField1TSWithoutSDA(fieldName,meshName,csit,iteration,order,infos);
17791 -}
17792 -
17793 -MEDFileIntField1TSWithoutSDA::MEDFileIntField1TSWithoutSDA()
17794 -{
17795 -}
17796 -
17797 -MEDFileIntField1TSWithoutSDA::MEDFileIntField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order,
17798 -                                                           const std::vector<std::string>& infos):MEDFileField1TSNDTemplateWithoutSDA<int>(fieldName,meshName,csit,iteration,order,infos)
17799 -{
17800 -  DataArrayInt *arr(getOrCreateAndGetArrayTemplate());
17801 -  arr->setInfoAndChangeNbOfCompo(infos);
17802 -}
17803 -
17804 -const char *MEDFileIntField1TSWithoutSDA::getTypeStr() const
17805 -{
17806 -  return TYPE_STR;
17807 -}
17808 -
17809 -/*!
17810 - * Returns a pointer to the underground DataArrayInt instance and a
17811 - * sequence describing parameters of a support of each part of \a this field. The
17812 - * caller should not decrRef() the returned DataArrayInt. This method allows for a
17813 - * direct access to the field values. This method is intended for the field lying on one
17814 - * mesh only.
17815 - *  \param [in,out] entries - the sequence describing parameters of a support of each
17816 - *         part of \a this field. Each item of this sequence consists of two parts. The
17817 - *         first part describes a type of mesh entity and an id of discretization of a
17818 - *         current field part. The second part describes a range of values [begin,end)
17819 - *         within the returned array relating to the current field part.
17820 - *  \return DataArrayInt * - the pointer to the field values array.
17821 - *  \throw If the number of underlying meshes is not equal to 1.
17822 - *  \throw If no field values are available.
17823 - *  \sa getUndergroundDataArray()
17824 - */
17825 -DataArray *MEDFileIntField1TSWithoutSDA::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
17826 -{
17827 -  return getUndergroundDataArrayIntExt(entries);
17828 -}
17829 -
17830 -/*!
17831 - * Returns a pointer to the underground DataArrayInt instance and a
17832 - * sequence describing parameters of a support of each part of \a this field. The
17833 - * caller should not decrRef() the returned DataArrayInt. This method allows for a
17834 - * direct access to the field values. This method is intended for the field lying on one
17835 - * mesh only.
17836 - *  \param [in,out] entries - the sequence describing parameters of a support of each
17837 - *         part of \a this field. Each item of this sequence consists of two parts. The
17838 - *         first part describes a type of mesh entity and an id of discretization of a
17839 - *         current field part. The second part describes a range of values [begin,end)
17840 - *         within the returned array relating to the current field part.
17841 - *  \return DataArrayInt * - the pointer to the field values array.
17842 - *  \throw If the number of underlying meshes is not equal to 1.
17843 - *  \throw If no field values are available.
17844 - *  \sa getUndergroundDataArray()
17845 - */
17846 -DataArrayInt *MEDFileIntField1TSWithoutSDA::getUndergroundDataArrayIntExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
17847 -{
17848 -  if(_field_per_mesh.size()!=1)
17849 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : field lies on several meshes, this method has no sense !");
17850 -  if(_field_per_mesh[0]==0)
17851 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : no field specified !");
17852 -  _field_per_mesh[0]->getUndergroundDataArrayExt(entries);
17853 -  return getUndergroundDataArrayTemplate();
17854 -}
17855 -
17856 -MEDFileIntField1TSWithoutSDA *MEDFileIntField1TSWithoutSDA::shallowCpy() const
17857 -{
17858 -  MCAuto<MEDFileIntField1TSWithoutSDA> ret(new MEDFileIntField1TSWithoutSDA(*this));
17859 -  ret->deepCpyLeavesFrom(*this);
17860 -  return ret.retn();
17861 -}
17862 -
17863 -MEDFileIntField1TSWithoutSDA *MEDFileIntField1TSWithoutSDA::deepCopy() const
17864 -{
17865 -  MCAuto<MEDFileIntField1TSWithoutSDA> ret(shallowCpy());
17866 -  if(_arr.isNotNull())
17867 -    ret->_arr=_arr->deepCopy();
17868 -  return ret.retn();
17869 -}
17870 -
17871 -//= MEDFileFloatField1TSWithoutSDA
17872 -
17873 -MEDFileFloatField1TSWithoutSDA *MEDFileFloatField1TSWithoutSDA::New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos)
17874 -{
17875 -  return new MEDFileFloatField1TSWithoutSDA(fieldName,meshName,csit,iteration,order,infos);
17876 -}
17877 -
17878 -MEDFileFloatField1TSWithoutSDA::MEDFileFloatField1TSWithoutSDA()
17879 -{
17880 -}
17881 -
17882 -MEDFileFloatField1TSWithoutSDA::MEDFileFloatField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order,
17883 -                                                               const std::vector<std::string>& infos):MEDFileField1TSNDTemplateWithoutSDA<float>(fieldName,meshName,csit,iteration,order,infos)
17884 -{
17885 -  DataArrayFloat *arr(getOrCreateAndGetArrayTemplate());
17886 -  arr->setInfoAndChangeNbOfCompo(infos);
17887 -}
17888 -
17889 -const char *MEDFileFloatField1TSWithoutSDA::getTypeStr() const
17890 -{
17891 -  return TYPE_STR;
17892 -}
17893 -
17894 -/*!
17895 - * Returns a pointer to the underground DataArrayFloat instance and a
17896 - * sequence describing parameters of a support of each part of \a this field. The
17897 - * caller should not decrRef() the returned DataArrayFloat. This method allows for a
17898 - * direct access to the field values. This method is intended for the field lying on one
17899 - * mesh only.
17900 - *  \param [in,out] entries - the sequence describing parameters of a support of each
17901 - *         part of \a this field. Each item of this sequence consists of two parts. The
17902 - *         first part describes a type of mesh entity and an id of discretization of a
17903 - *         current field part. The second part describes a range of values [begin,end)
17904 - *         within the returned array relating to the current field part.
17905 - *  \return DataArrayFloat * - the pointer to the field values array.
17906 - *  \throw If the number of underlying meshes is not equal to 1.
17907 - *  \throw If no field values are available.
17908 - *  \sa getUndergroundDataArray()
17909 - */
17910 -DataArray *MEDFileFloatField1TSWithoutSDA::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
17911 -{
17912 -  return getUndergroundDataArrayFloatExt(entries);
17913 -}
17914 -
17915 -/*!
17916 - * Returns a pointer to the underground DataArrayFloat instance and a
17917 - * sequence describing parameters of a support of each part of \a this field. The
17918 - * caller should not decrRef() the returned DataArrayFloat. This method allows for a
17919 - * direct access to the field values. This method is intended for the field lying on one
17920 - * mesh only.
17921 - *  \param [in,out] entries - the sequence describing parameters of a support of each
17922 - *         part of \a this field. Each item of this sequence consists of two parts. The
17923 - *         first part describes a type of mesh entity and an id of discretization of a
17924 - *         current field part. The second part describes a range of values [begin,end)
17925 - *         within the returned array relating to the current field part.
17926 - *  \return DataArrayFloat * - the pointer to the field values array.
17927 - *  \throw If the number of underlying meshes is not equal to 1.
17928 - *  \throw If no field values are available.
17929 - *  \sa getUndergroundDataArray()
17930 - */
17931 -DataArrayFloat *MEDFileFloatField1TSWithoutSDA::getUndergroundDataArrayFloatExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
17932 -{
17933 -  if(_field_per_mesh.size()!=1)
17934 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : field lies on several meshes, this method has no sense !");
17935 -  if(_field_per_mesh[0]==0)
17936 -    throw INTERP_KERNEL::Exception("MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt : no field specified !");
17937 -  _field_per_mesh[0]->getUndergroundDataArrayExt(entries);
17938 -  return getUndergroundDataArrayTemplate();
17939 -}
17940 -
17941 -MEDFileFloatField1TSWithoutSDA *MEDFileFloatField1TSWithoutSDA::shallowCpy() const
17942 -{
17943 -  MCAuto<MEDFileFloatField1TSWithoutSDA> ret(new MEDFileFloatField1TSWithoutSDA(*this));
17944 -  ret->deepCpyLeavesFrom(*this);
17945 -  return ret.retn();
17946 -}
17947 -
17948 -MEDFileFloatField1TSWithoutSDA *MEDFileFloatField1TSWithoutSDA::deepCopy() const
17949 -{
17950 -  MCAuto<MEDFileFloatField1TSWithoutSDA> ret(shallowCpy());
17951 -  if(_arr.isNotNull())
17952 -    ret->_arr=_arr->deepCopy();
17953 -  return ret.retn();
17954 -}
17955 -
17956 -//= MEDFileAnyTypeField1TS
17957 -
17958 -MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS()
17959 -{
17960 -}
17961 -
17962 -MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
17963 -{
17964 -  med_field_type typcha;
17965 -  //
17966 -  std::vector<std::string> infos;
17967 -  std::string dtunit,fieldName,meshName;
17968 -  LocateField2(fid,0,true,fieldName,typcha,infos,dtunit,meshName);
17969 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ret;
17970 -  switch(typcha)
17971 -  {
17972 -    case MED_FLOAT64:
17973 -      {
17974 -        ret=MEDFileField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
17975 -        break;
17976 -      }
17977 -    case MED_INT32:
17978 -      {
17979 -        ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
17980 -        break;
17981 -      }
17982 -    case MED_NODE://6432
17983 -      {
17984 -        ret=MEDFileFloatField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
17985 -        break;
17986 -      }
17987 -    default:
17988 -      {
17989 -        std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::BuildContentFrom(fid) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of the first field is not in [MED_FLOAT64, MED_INT32] !";
17990 -        throw INTERP_KERNEL::Exception(oss.str());
17991 -      }
17992 -  }
17993 -  ret->setDtUnit(dtunit.c_str());
17994 -  ret->getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(infos);
17995 -  //
17996 -  med_int numdt,numit;
17997 -  med_float dt;
17998 -  MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,fieldName.c_str(),1,&numdt,&numit,&dt));
17999 -  ret->setTime(numdt,numit,dt);
18000 -  ret->_csit=1;
18001 -  if(loadAll)
18002 -    ret->loadStructureAndBigArraysRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
18003 -  else
18004 -    ret->loadOnlyStructureOfDataRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
18005 -  return ret.retn();
18006 -}
18007 -
18008 -MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
18009 -try:MEDFileFieldGlobsReal(fid)
18010 -{
18011 -  _content=BuildContentFrom(fid,loadAll,ms,entities);
18012 -  loadGlobals(fid);
18013 -}
18014 -catch(INTERP_KERNEL::Exception& e)
18015 -{
18016 -    throw e;
18017 -}
18018 -
18019 -MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
18020 -{
18021 -  med_field_type typcha;
18022 -  std::vector<std::string> infos;
18023 -  std::string dtunit,meshName;
18024 -  int nbSteps(0);
18025 -  {
18026 -    int iii=-1;
18027 -    nbSteps=LocateField(fid,fieldName,iii,typcha,infos,dtunit,meshName);
18028 -  }
18029 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ret;
18030 -  switch(typcha)
18031 -  {
18032 -    case MED_FLOAT64:
18033 -      {
18034 -        ret=MEDFileField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
18035 -        break;
18036 -      }
18037 -    case MED_INT32:
18038 -      {
18039 -        ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
18040 -        break;
18041 -      }
18042 -    case MED_NODE://6432
18043 -      {
18044 -        ret=MEDFileFloatField1TSWithoutSDA::New(fieldName,meshName,-1,-1/*iteration*/,-1/*order*/,std::vector<std::string>());
18045 -        break;
18046 -      }
18047 -    default:
18048 -      {
18049 -        std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::BuildContentFrom(fid,fieldName) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
18050 -        throw INTERP_KERNEL::Exception(oss.str());
18051 -      }
18052 -  }
18053 -  ret->setMeshName(meshName);
18054 -  ret->setDtUnit(dtunit.c_str());
18055 -  ret->getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(infos);
18056 -  //
18057 -  if(nbSteps<1)
18058 -    {
18059 -      std::ostringstream oss; oss << "MEDFileField1TS(fid,fieldName) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but there is no time steps on it !";
18060 -      throw INTERP_KERNEL::Exception(oss.str());
18061 -    }
18062 -  //
18063 -  med_int numdt,numit;
18064 -  med_float dt;
18065 -  MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,fieldName.c_str(),1,&numdt,&numit,&dt));
18066 -  ret->setTime(numdt,numit,dt);
18067 -  ret->_csit=1;
18068 -  if(loadAll)
18069 -    ret->loadStructureAndBigArraysRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
18070 -  else
18071 -    ret->loadOnlyStructureOfDataRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
18072 -  return ret.retn();
18073 -}
18074 -
18075 -MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
18076 -try:MEDFileFieldGlobsReal(fid)
18077 -{
18078 -  _content=BuildContentFrom(fid,fieldName,loadAll,ms,entities);
18079 -  loadGlobals(fid);
18080 -}
18081 -catch(INTERP_KERNEL::Exception& e)
18082 -{
18083 -    throw e;
18084 -}
18085 -
18086 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c)
18087 -{
18088 -  if(!c)
18089 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::BuildNewInstanceFromContent : empty content in input : unable to build a new instance !");
18090 -  if(dynamic_cast<const MEDFileField1TSWithoutSDA *>(c))
18091 -    {
18092 -      MCAuto<MEDFileField1TS> ret(MEDFileField1TS::New());
18093 -      ret->_content=c; c->incrRef();
18094 -      return ret.retn();
18095 -    }
18096 -  if(dynamic_cast<const MEDFileIntField1TSWithoutSDA *>(c))
18097 -    {
18098 -      MCAuto<MEDFileIntField1TS> ret(MEDFileIntField1TS::New());
18099 -      ret->_content=c; c->incrRef();
18100 -      return ret.retn();
18101 -    }
18102 -  throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::BuildNewInstanceFromContent : internal error ! a content of type different from FLOAT64 and INT32 has been built but not intercepted !");
18103 -}
18104 -
18105 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c, med_idt fid)
18106 -{
18107 -  MEDFileAnyTypeField1TS *ret(BuildNewInstanceFromContent(c));
18108 -  ret->setFileName(FileNameFromFID(fid));
18109 -  return ret;
18110 -}
18111 -
18112 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(const std::string& fileName, bool loadAll)
18113 -{
18114 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
18115 -  return New(fid,loadAll);
18116 -}
18117 -
18118 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(med_idt fid, bool loadAll)
18119 -{
18120 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,loadAll,0,0));
18121 -  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
18122 -  ret->loadGlobals(fid);
18123 -  return ret.retn();
18124 -}
18125 -
18126 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(const std::string& fileName, const std::string& fieldName, bool loadAll)
18127 -{
18128 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
18129 -  return New(fid,fieldName,loadAll);
18130 -}
18131 -
18132 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(med_idt fid, const std::string& fieldName, bool loadAll)
18133 -{
18134 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,fieldName,loadAll,0,0));
18135 -  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
18136 -  ret->loadGlobals(fid);
18137 -  return ret.retn();
18138 -}
18139 -
18140 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll)
18141 -{
18142 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
18143 -  return New(fid,fieldName,iteration,order,loadAll);
18144 -}
18145 -
18146 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::New(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll)
18147 -{
18148 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,fieldName,iteration,order,loadAll,0,0));
18149 -  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
18150 -  ret->loadGlobals(fid);
18151 -  return ret.retn();
18152 -}
18153 -
18154 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::NewAdv(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities)
18155 -{
18156 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
18157 -  return NewAdv(fid,fieldName,iteration,order,loadAll,entities);
18158 -}
18159 -
18160 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::NewAdv(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities)
18161 -{
18162 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> c(BuildContentFrom(fid,fieldName,iteration,order,loadAll,0,entities));
18163 -  MCAuto<MEDFileAnyTypeField1TS> ret(BuildNewInstanceFromContent(c,fid));
18164 -  ret->loadGlobals(fid);
18165 -  return ret.retn();
18166 -}
18167 -
18168 -MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::BuildContentFrom(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
18169 -{
18170 -  med_field_type typcha;
18171 -  std::vector<std::string> infos;
18172 -  std::string dtunit,meshName;
18173 -  int iii(-1);
18174 -  int nbOfStep2(LocateField(fid,fieldName,iii,typcha,infos,dtunit,meshName));
18175 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ret;
18176 -  switch(typcha)
18177 -  {
18178 -    case MED_FLOAT64:
18179 -      {
18180 -        ret=MEDFileField1TSWithoutSDA::New(fieldName,meshName,-1,iteration,order,std::vector<std::string>());
18181 -        break;
18182 -      }
18183 -    case MED_INT32:
18184 -      {
18185 -        ret=MEDFileIntField1TSWithoutSDA::New(fieldName,meshName,-1,iteration,order,std::vector<std::string>());
18186 -        break;
18187 -      }
18188 -    case MED_NODE://6432
18189 -      {
18190 -        ret=MEDFileFloatField1TSWithoutSDA::New(fieldName,meshName,-1,iteration,order,std::vector<std::string>());
18191 -        break;
18192 -      }
18193 -    default:
18194 -      {
18195 -        std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::BuildContentFrom(fid,fieldName,iteration,order) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
18196 -        throw INTERP_KERNEL::Exception(oss.str());
18197 -      }
18198 -  }
18199 -  ret->setDtUnit(dtunit.c_str());
18200 -  ret->getOrCreateAndGetArray()->setInfoAndChangeNbOfCompo(infos);
18201 -  //
18202 -  bool found=false;
18203 -  std::vector< std::pair<int,int> > dtits(nbOfStep2);
18204 -  for(int i=0;i<nbOfStep2 && !found;i++)
18205 -    {
18206 -      med_int numdt,numit;
18207 -      med_float dt;
18208 -      MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,fieldName.c_str(),i+1,&numdt,&numit,&dt));
18209 -      if(numdt==iteration && numit==order)
18210 -        {
18211 -          found=true;
18212 -          ret->_csit=i+1;
18213 -        }
18214 -      else
18215 -        dtits[i]=std::pair<int,int>(numdt,numit);
18216 -    }
18217 -  if(!found)
18218 -    {
18219 -      std::ostringstream oss; oss << "No such iteration (" << iteration << "," << order << ") in existing field '" << fieldName << "' in file '" << FileNameFromFID(fid) << "' ! Available iterations are : ";
18220 -      for(std::vector< std::pair<int,int> >::const_iterator iter=dtits.begin();iter!=dtits.end();iter++)
18221 -        oss << "(" << (*iter).first << "," << (*iter).second << "), ";
18222 -      throw INTERP_KERNEL::Exception(oss.str());
18223 -    }
18224 -  if(loadAll)
18225 -    ret->loadStructureAndBigArraysRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
18226 -  else
18227 -    ret->loadOnlyStructureOfDataRecursively(fid,*((const MEDFileAnyTypeField1TSWithoutSDA*)ret),ms,entities);
18228 -  return ret.retn();
18229 -}
18230 -
18231 -MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
18232 -try:MEDFileFieldGlobsReal(fid)
18233 -{
18234 -  _content=BuildContentFrom(fid,fieldName,iteration,order,loadAll,ms,entities);
18235 -  loadGlobals(fid);
18236 -}
18237 -catch(INTERP_KERNEL::Exception& e)
18238 -{
18239 -    throw e;
18240 -}
18241 -
18242 -/*!
18243 - * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
18244 - * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
18245 - *
18246 - * \warning this is a shallow copy constructor
18247 - */
18248 -MEDFileAnyTypeField1TS::MEDFileAnyTypeField1TS(const MEDFileAnyTypeField1TSWithoutSDA& other, bool shallowCopyOfContent)
18249 -{
18250 -  if(!shallowCopyOfContent)
18251 -    {
18252 -      const MEDFileAnyTypeField1TSWithoutSDA *otherPtr(&other);
18253 -      otherPtr->incrRef();
18254 -      _content=const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(otherPtr);
18255 -    }
18256 -  else
18257 -    {
18258 -      _content=other.shallowCpy();
18259 -    }
18260 -}
18261 -
18262 -int MEDFileAnyTypeField1TS::LocateField2(med_idt fid, int fieldIdCFormat, bool checkFieldId, std::string& fieldName, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName)
18263 -{
18264 -  if(checkFieldId)
18265 -    {
18266 -      int nbFields=MEDnField(fid);
18267 -      if(fieldIdCFormat>=nbFields)
18268 -        {
18269 -          std::ostringstream oss; oss << "MEDFileAnyTypeField1TS::LocateField2(fileName) : in file \'" << FileNameFromFID(fid) << "\' number of fields is " << nbFields << " ! Trying to request for id " << fieldIdCFormat << " !";
18270 -          throw INTERP_KERNEL::Exception(oss.str());
18271 -        }
18272 -    }
18273 -  int ncomp(MEDfieldnComponent(fid,fieldIdCFormat+1));
18274 -  INTERP_KERNEL::AutoPtr<char> comp(MEDLoaderBase::buildEmptyString(ncomp*MED_SNAME_SIZE));
18275 -  INTERP_KERNEL::AutoPtr<char> unit(MEDLoaderBase::buildEmptyString(ncomp*MED_SNAME_SIZE));
18276 -  INTERP_KERNEL::AutoPtr<char> dtunit(MEDLoaderBase::buildEmptyString(MED_LNAME_SIZE));
18277 -  INTERP_KERNEL::AutoPtr<char> nomcha(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
18278 -  INTERP_KERNEL::AutoPtr<char> nomMaa(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
18279 -  med_bool localMesh;
18280 -  int nbOfStep;
18281 -  MEDFILESAFECALLERRD0(MEDfieldInfo,(fid,fieldIdCFormat+1,nomcha,nomMaa,&localMesh,&typcha,comp,unit,dtunit,&nbOfStep));
18282 -  fieldName=MEDLoaderBase::buildStringFromFortran(nomcha,MED_NAME_SIZE);
18283 -  dtunitOut=MEDLoaderBase::buildStringFromFortran(dtunit,MED_LNAME_SIZE);
18284 -  meshName=MEDLoaderBase::buildStringFromFortran(nomMaa,MED_NAME_SIZE);
18285 -  infos.clear(); infos.resize(ncomp);
18286 -  for(int j=0;j<ncomp;j++)
18287 -    infos[j]=MEDLoaderBase::buildUnionUnit((char *)comp+j*MED_SNAME_SIZE,MED_SNAME_SIZE,(char *)unit+j*MED_SNAME_SIZE,MED_SNAME_SIZE);
18288 -  return nbOfStep;
18289 -}
18290 -
18291 -/*!
18292 - * This method throws an INTERP_KERNEL::Exception if \a fieldName field is not in file pointed by \a fid and with name \a fileName.
18293 - * 
18294 - * \param [out]
18295 - * \return in case of success the number of time steps available for the field with name \a fieldName.
18296 - */
18297 -int MEDFileAnyTypeField1TS::LocateField(med_idt fid, const std::string& fieldName, int& posCFormat, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName)
18298 -{
18299 -  int nbFields=MEDnField(fid);
18300 -  bool found=false;
18301 -  std::vector<std::string> fns(nbFields);
18302 -  int nbOfStep2(-1);
18303 -  for(int i=0;i<nbFields && !found;i++)
18304 -    {
18305 -      std::string tmp,tmp2;
18306 -      nbOfStep2=LocateField2(fid,i,false,tmp,typcha,infos,dtunitOut,tmp2);
18307 -      fns[i]=tmp;
18308 -      found=(tmp==fieldName);
18309 -      if(found)
18310 -        {
18311 -          posCFormat=i;
18312 -          meshName=tmp2;
18313 -        }
18314 -    }
18315 -  if(!found)
18316 -    {
18317 -      std::ostringstream oss; oss << "No such field '" << fieldName << "' in file '" << FileNameFromFID(fid) << "' ! Available fields are : ";
18318 -      for(std::vector<std::string>::const_iterator it=fns.begin();it!=fns.end();it++)
18319 -        oss << "\"" << *it << "\" ";
18320 -      throw INTERP_KERNEL::Exception(oss.str());
18321 -    }
18322 -  return nbOfStep2;
18323 -}
18324 -
18325 -/*!
18326 - * This method as MEDFileField1TSW::setLocNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure
18327 - * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutSDA::getFieldSplitedByType or MEDFileField1TSWithoutSDA::getFieldSplitedByType2.
18328 - * This method changes the attribute (here it's profile name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance).
18329 - * It is the responsability of the caller to invoke MEDFileFieldGlobs::appendProfile or MEDFileFieldGlobs::getProfile
18330 - * to keep a valid instance.
18331 - * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown.
18332 - * If \b newPflName profile name does not already exist the profile with old name will be renamed with name \b newPflName.
18333 - * If \b newPflName already exists and that \b forceRenameOnGlob is false (the default) an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newPflName.
18334 - *
18335 - * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
18336 - * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
18337 - * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
18338 - *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
18339 - * \param [in] newLocName is the new localization name.
18340 - * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newPflName already exists. If true, the renaming is done without check. It can lead to major bug.
18341 - *             If false, an exception will be thrown to force user to change previously the name of the profile with name \b newPflName
18342 - */
18343 -void MEDFileAnyTypeField1TS::setProfileNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob)
18344 -{
18345 -  MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
18346 -  std::string oldPflName=disc->getProfile();
18347 -  std::vector<std::string> vv=getPflsReallyUsedMulti();
18348 -  int nbOfOcc=std::count(vv.begin(),vv.end(),oldPflName);
18349 -  if(forceRenameOnGlob || (!existsPfl(newPflName) && nbOfOcc==1))
18350 -    {
18351 -      disc->setProfile(newPflName);
18352 -      DataArrayInt *pfl=getProfile(oldPflName.c_str());
18353 -      pfl->setName(newPflName);
18354 -    }
18355 -  else
18356 -    {
18357 -      std::ostringstream oss; oss << "MEDFileField1TS::setProfileNameOnLeaf : Profile \"" << newPflName << "\" already exists or referenced more than one !";
18358 -      throw INTERP_KERNEL::Exception(oss.str());
18359 -    }
18360 -}
18361 -
18362 -/*!
18363 - * This method as MEDFileField1TSW::setProfileNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure
18364 - * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutSDA::getFieldSplitedByType or MEDFileField1TSWithoutSDA::getFieldSplitedByType2.
18365 - * This method changes the attribute (here it's localization name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance).
18366 - * It is the responsability of the caller to invoke MEDFileFieldGlobs::appendProfile or MEDFileFieldGlobs::getProfile
18367 - * to keep a valid instance.
18368 - * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown.
18369 - * This method is an extension of MEDFileField1TSWithoutSDA::setProfileNameOnLeafExt method because it performs a modification of global info.
18370 - * If \b newLocName profile name does not already exist the localization with old name will be renamed with name \b newLocName.
18371 - * If \b newLocName already exists an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newLocName.
18372 - *
18373 - * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh.
18374 - * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set.
18375 - * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of 
18376 - *             \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutSDA::getFieldSplitedByType. For non gausspoints field users, the value is 0.
18377 - * \param [in] newLocName is the new localization name.
18378 - * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newLocName already exists. If true, the renaming is done without check. It can lead to major bug.
18379 - *             If false, an exception will be thrown to force user to change previously the name of the profile with name \b newLocName
18380 - */
18381 -void MEDFileAnyTypeField1TS::setLocNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob)
18382 -{
18383 -  MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
18384 -  std::string oldLocName=disc->getLocalization();
18385 -  std::vector<std::string> vv=getLocsReallyUsedMulti();
18386 -  int nbOfOcc=std::count(vv.begin(),vv.end(),oldLocName);
18387 -  if(forceRenameOnGlob || (!existsLoc(newLocName) && nbOfOcc==1))
18388 -    {
18389 -      disc->setLocalization(newLocName);
18390 -      MEDFileFieldLoc& loc=getLocalization(oldLocName.c_str());
18391 -      loc.setName(newLocName);
18392 -    }
18393 -  else
18394 -    {
18395 -      std::ostringstream oss; oss << "MEDFileField1TS::setLocNameOnLeaf : Localization \"" << newLocName << "\" already exists or referenced more than one !";
18396 -      throw INTERP_KERNEL::Exception(oss.str());
18397 -    }
18398 -}
18399 -
18400 -MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::contentNotNullBase()
18401 -{
18402 -  MEDFileAnyTypeField1TSWithoutSDA *ret=_content;
18403 -  if(!ret)
18404 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS : content is expected to be not null !");
18405 -  return ret;
18406 -}
18407 -
18408 -const MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeField1TS::contentNotNullBase() const
18409 -{
18410 -  const MEDFileAnyTypeField1TSWithoutSDA *ret=_content;
18411 -  if(!ret)
18412 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS : const content is expected to be not null !");
18413 -  return ret;
18414 -}
18415 -
18416 -/*!
18417 - * This method alloc the arrays and load potentially huge arrays contained in this field.
18418 - * This method should be called when a MEDFileAnyTypeField1TS::New constructor has been with false as the last parameter.
18419 - * This method can be also called to refresh or reinit values from a file.
18420 - * 
18421 - * \throw If the fileName is not set or points to a non readable MED file.
18422 - * \sa MEDFileAnyTypeField1TS::loadArraysIfNecessary
18423 - */
18424 -void MEDFileAnyTypeField1TS::loadArrays()
18425 -{
18426 -  if(getFileName().empty())
18427 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::loadArrays : the structure does not come from a file !");
18428 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
18429 -  contentNotNullBase()->loadBigArraysRecursively(fid,*contentNotNullBase());
18430 -}
18431 -
18432 -/*!
18433 - * This method behaves as MEDFileAnyTypeField1TS::loadArrays does, the first call, if \a this was built using a file without loading big arrays.
18434 - * But once data loaded once, this method does nothing. Contrary to MEDFileAnyTypeField1TS::loadArrays and MEDFileAnyTypeField1TS::unloadArrays
18435 - * this method does not throw if \a this does not come from file read.
18436 - * 
18437 - * \sa MEDFileAnyTypeField1TS::loadArrays, MEDFileAnyTypeField1TS::unloadArrays
18438 - */
18439 -void MEDFileAnyTypeField1TS::loadArraysIfNecessary()
18440 -{
18441 -  if(!getFileName().empty())
18442 -    {
18443 -      MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
18444 -      contentNotNullBase()->loadBigArraysRecursivelyIfNecessary(fid,*contentNotNullBase());
18445 -    }
18446 -}
18447 -
18448 -/*!
18449 - * This method releases potentially big data arrays and so returns to the same heap memory than status loaded with 'loadAll' parameter set to false.
18450 - * \b WARNING, this method does release arrays even if \a this does not come from a load of a MED file.
18451 - * So this method can lead to a loss of data. If you want to unload arrays safely call MEDFileAnyTypeField1TS::unloadArraysWithoutDataLoss instead.
18452 - * 
18453 - * \sa MEDFileAnyTypeField1TS::loadArrays, MEDFileAnyTypeField1TS::loadArraysIfNecessary, MEDFileAnyTypeField1TS::unloadArraysWithoutDataLoss
18454 - */
18455 -void MEDFileAnyTypeField1TS::unloadArrays()
18456 -{
18457 -  contentNotNullBase()->unloadArrays();
18458 -}
18459 -
18460 -/*!
18461 - * This method potentially releases big data arrays if \a this is coming from a file. If \a this has been built from scratch this method will have no effect.
18462 - * This method is the symetrical method of MEDFileAnyTypeField1TS::loadArraysIfNecessary.
18463 - * This method is useful to reduce \b safely amount of heap memory necessary for \a this by using MED file as database.
18464 - * 
18465 - * \sa MEDFileAnyTypeField1TS::loadArraysIfNecessary
18466 - */
18467 -void MEDFileAnyTypeField1TS::unloadArraysWithoutDataLoss()
18468 -{
18469 -  if(!getFileName().empty())
18470 -    contentNotNullBase()->unloadArrays();
18471 -}
18472 -
18473 -void MEDFileAnyTypeField1TS::writeLL(med_idt fid) const
18474 -{
18475 -  int nbComp(getNumberOfComponents());
18476 -  INTERP_KERNEL::AutoPtr<char> comp(MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE));
18477 -  INTERP_KERNEL::AutoPtr<char> unit(MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE));
18478 -  for(int i=0;i<nbComp;i++)
18479 -    {
18480 -      std::string info=getInfo()[i];
18481 -      std::string c,u;
18482 -      MEDLoaderBase::splitIntoNameAndUnit(info,c,u);
18483 -      MEDLoaderBase::safeStrCpy2(c.c_str(),MED_SNAME_SIZE,comp+i*MED_SNAME_SIZE,_too_long_str);
18484 -      MEDLoaderBase::safeStrCpy2(u.c_str(),MED_SNAME_SIZE,unit+i*MED_SNAME_SIZE,_too_long_str);
18485 -    }
18486 -  if(getName().empty())
18487 -    throw INTERP_KERNEL::Exception("MEDFileField1TS::write : MED file does not accept field with empty name !");
18488 -  MEDFILESAFECALLERWR0(MEDfieldCr,(fid,getName().c_str(),getMEDFileFieldType(),nbComp,comp,unit,getDtUnit().c_str(),getMeshName().c_str()));
18489 -  writeGlobals(fid,*this);
18490 -  contentNotNullBase()->writeLL(fid,*this,*contentNotNullBase());
18491 -}
18492 -
18493 -std::size_t MEDFileAnyTypeField1TS::getHeapMemorySizeWithoutChildren() const
18494 -{
18495 -  return MEDFileFieldGlobsReal::getHeapMemorySizeWithoutChildren();
18496 -}
18497 -
18498 -std::vector<const BigMemoryObject *> MEDFileAnyTypeField1TS::getDirectChildrenWithNull() const
18499 -{
18500 -  std::vector<const BigMemoryObject *> ret(MEDFileFieldGlobsReal::getDirectChildrenWithNull());
18501 -  ret.push_back((const MEDFileAnyTypeField1TSWithoutSDA *)_content);
18502 -  return ret;
18503 -}
18504 -
18505 -/*!
18506 - * Returns a string describing \a this field. This string is outputted 
18507 - * by \c print Python command.
18508 - */
18509 -std::string MEDFileAnyTypeField1TS::simpleRepr() const
18510 -{
18511 -  std::ostringstream oss;
18512 -  contentNotNullBase()->simpleRepr(0,oss,-1);
18513 -  simpleReprGlobs(oss);
18514 -  return oss.str();
18515 -}
18516 -
18517 -/*!
18518 - * This method returns all profiles whose name is non empty used.
18519 - * \b WARNING If profile is used several times it will be reported \b only \b once.
18520 - * To get non empty name profiles as time as they appear in \b this call MEDFileField1TS::getPflsReallyUsedMulti instead.
18521 - */
18522 -std::vector<std::string> MEDFileAnyTypeField1TS::getPflsReallyUsed() const
18523 -{
18524 -  return contentNotNullBase()->getPflsReallyUsed2();
18525 -}
18526 -
18527 -/*!
18528 - * This method returns all localizations whose name is non empty used.
18529 - * \b WARNING If localization is used several times it will be reported \b only \b once.
18530 - */
18531 -std::vector<std::string> MEDFileAnyTypeField1TS::getLocsReallyUsed() const
18532 -{
18533 -  return contentNotNullBase()->getLocsReallyUsed2();
18534 -}
18535 -
18536 -/*!
18537 - * This method returns all profiles whose name is non empty used.
18538 - * \b WARNING contrary to MEDFileField1TS::getPflsReallyUsed, if profile is used several times it will be reported as time as it appears.
18539 - */
18540 -std::vector<std::string> MEDFileAnyTypeField1TS::getPflsReallyUsedMulti() const
18541 -{
18542 -  return contentNotNullBase()->getPflsReallyUsedMulti2();
18543 -}
18544 -
18545 -/*!
18546 - * This method returns all localizations whose name is non empty used.
18547 - * \b WARNING contrary to MEDFileField1TS::getLocsReallyUsed if localization is used several times it will be reported as time as it appears.
18548 - */
18549 -std::vector<std::string> MEDFileAnyTypeField1TS::getLocsReallyUsedMulti() const
18550 -{
18551 -  return contentNotNullBase()->getLocsReallyUsedMulti2();
18552 -}
18553 -
18554 -void MEDFileAnyTypeField1TS::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
18555 -{
18556 -  contentNotNullBase()->changePflsRefsNamesGen2(mapOfModif);
18557 -}
18558 -
18559 -void MEDFileAnyTypeField1TS::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
18560 -{
18561 -  contentNotNullBase()->changeLocsRefsNamesGen2(mapOfModif);
18562 -}
18563 -
18564 -int MEDFileAnyTypeField1TS::getDimension() const
18565 -{
18566 -  return contentNotNullBase()->getDimension();
18567 -}
18568 -
18569 -int MEDFileAnyTypeField1TS::getIteration() const
18570 -{
18571 -  return contentNotNullBase()->getIteration();
18572 -}
18573 -
18574 -int MEDFileAnyTypeField1TS::getOrder() const
18575 -{
18576 -  return contentNotNullBase()->getOrder();
18577 -}
18578 -
18579 -double MEDFileAnyTypeField1TS::getTime(int& iteration, int& order) const
18580 -{
18581 -  return contentNotNullBase()->getTime(iteration,order);
18582 -}
18583 -
18584 -void MEDFileAnyTypeField1TS::setTime(int iteration, int order, double val)
18585 -{
18586 -  contentNotNullBase()->setTime(iteration,order,val);
18587 -}
18588 -
18589 -std::string MEDFileAnyTypeField1TS::getName() const
18590 -{
18591 -  return contentNotNullBase()->getName();
18592 -}
18593 -
18594 -void MEDFileAnyTypeField1TS::setName(const std::string& name)
18595 -{
18596 -  contentNotNullBase()->setName(name);
18597 -}
18598 -
18599 -void MEDFileAnyTypeField1TS::simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const
18600 -{
18601 -  contentNotNullBase()->simpleRepr(bkOffset,oss,f1tsId);
18602 -}
18603 -
18604 -std::string MEDFileAnyTypeField1TS::getDtUnit() const
18605 -{
18606 -  return contentNotNullBase()->getDtUnit();
18607 -}
18608 -
18609 -void MEDFileAnyTypeField1TS::setDtUnit(const std::string& dtUnit)
18610 -{
18611 -  contentNotNullBase()->setDtUnit(dtUnit);
18612 -}
18613 -
18614 -std::string MEDFileAnyTypeField1TS::getMeshName() const
18615 -{
18616 -  return contentNotNullBase()->getMeshName();
18617 -}
18618 -
18619 -void MEDFileAnyTypeField1TS::setMeshName(const std::string& newMeshName)
18620 -{
18621 -  contentNotNullBase()->setMeshName(newMeshName);
18622 -}
18623 -
18624 -bool MEDFileAnyTypeField1TS::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
18625 -{
18626 -  return contentNotNullBase()->changeMeshNames(modifTab);
18627 -}
18628 -
18629 -int MEDFileAnyTypeField1TS::getMeshIteration() const
18630 -{
18631 -  return contentNotNullBase()->getMeshIteration();
18632 -}
18633 -
18634 -int MEDFileAnyTypeField1TS::getMeshOrder() const
18635 -{
18636 -  return contentNotNullBase()->getMeshOrder();
18637 -}
18638 -
18639 -int MEDFileAnyTypeField1TS::getNumberOfComponents() const
18640 -{
18641 -  return contentNotNullBase()->getNumberOfComponents();
18642 -}
18643 -
18644 -bool MEDFileAnyTypeField1TS::isDealingTS(int iteration, int order) const
18645 -{
18646 -  return contentNotNullBase()->isDealingTS(iteration,order);
18647 -}
18648 -
18649 -std::pair<int,int> MEDFileAnyTypeField1TS::getDtIt() const
18650 -{
18651 -  return contentNotNullBase()->getDtIt();
18652 -}
18653 -
18654 -void MEDFileAnyTypeField1TS::fillIteration(std::pair<int,int>& p) const
18655 -{
18656 -  contentNotNullBase()->fillIteration(p);
18657 -}
18658 -
18659 -void MEDFileAnyTypeField1TS::fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const
18660 -{
18661 -  contentNotNullBase()->fillTypesOfFieldAvailable(types);
18662 -}
18663 -
18664 -void MEDFileAnyTypeField1TS::setInfo(const std::vector<std::string>& infos)
18665 -{
18666 -  contentNotNullBase()->setInfo(infos);
18667 -}
18668 -
18669 -const std::vector<std::string>& MEDFileAnyTypeField1TS::getInfo() const
18670 -{
18671 -  return contentNotNullBase()->getInfo();
18672 -}
18673 -std::vector<std::string>& MEDFileAnyTypeField1TS::getInfo()
18674 -{
18675 -  return contentNotNullBase()->getInfo();
18676 -}
18677 -
18678 -bool MEDFileAnyTypeField1TS::presenceOfMultiDiscPerGeoType() const
18679 -{
18680 -  return contentNotNullBase()->presenceOfMultiDiscPerGeoType();
18681 -}
18682 -
18683 -MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TS::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId)
18684 -{
18685 -  return contentNotNullBase()->getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
18686 -}
18687 -
18688 -const MEDFileFieldPerMeshPerTypePerDisc *MEDFileAnyTypeField1TS::getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const
18689 -{
18690 -  return contentNotNullBase()->getLeafGivenMeshAndTypeAndLocId(mName,typ,locId);
18691 -}
18692 -
18693 -int MEDFileAnyTypeField1TS::getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const
18694 -{
18695 -  return contentNotNullBase()->getNonEmptyLevels(mname,levs);
18696 -}
18697 -
18698 -void MEDFileAnyTypeField1TS::convertMedBallIntoClassic()
18699 -{
18700 -  return contentNotNullBase()->convertMedBallIntoClassic();
18701 -}
18702 -
18703 -void MEDFileAnyTypeField1TS::makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl)
18704 -{
18705 -  return contentNotNullBase()->makeReduction(ct,tof,pfl);
18706 -}
18707 -
18708 -std::vector<TypeOfField> MEDFileAnyTypeField1TS::getTypesOfFieldAvailable() const
18709 -{
18710 -  return contentNotNullBase()->getTypesOfFieldAvailable();
18711 -}
18712 -
18713 -std::vector< std::vector<std::pair<int,int> > > MEDFileAnyTypeField1TS::getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
18714 -                                                                                              std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
18715 -{
18716 -  return contentNotNullBase()->getFieldSplitedByType(mname,types,typesF,pfls,locs);
18717 -}
18718 -
18719 -/*!
18720 - * This method returns as MEDFileAnyTypeField1TS new instances as number of components in \a this.
18721 - * The returned instances are deep copy of \a this except that for globals that are share with those contained in \a this.
18722 - * ** WARNING ** do no forget to rename the ouput instances to avoid to write n-times in the same MED file field !
18723 - */
18724 -std::vector< MCAuto< MEDFileAnyTypeField1TS > > MEDFileAnyTypeField1TS::splitComponents() const
18725 -{
18726 -  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
18727 -  if(!content)
18728 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::splitComponents : no content in this ! Unable to split components !");
18729 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > contentsSplit=content->splitComponents();
18730 -  std::size_t sz(contentsSplit.size());
18731 -  std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret(sz);
18732 -  for(std::size_t i=0;i<sz;i++)
18733 -    {
18734 -      ret[i]=shallowCpy();
18735 -      ret[i]->_content=contentsSplit[i];
18736 -    }
18737 -  return ret;
18738 -}
18739 -
18740 -/*!
18741 - * This method returns as MEDFileAnyTypeField1TS new instances as number of spatial discretizations in \a this.
18742 - * The returned instances are shallowed copied of \a this except that for globals that are share with those contained in \a this.
18743 - */
18744 -std::vector< MCAuto< MEDFileAnyTypeField1TS > > MEDFileAnyTypeField1TS::splitDiscretizations() const
18745 -{
18746 -  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
18747 -  if(!content)
18748 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::splitDiscretizations : no content in this ! Unable to split discretization !");
18749 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > contentsSplit(content->splitDiscretizations());
18750 -  std::size_t sz(contentsSplit.size());
18751 -  std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret(sz);
18752 -  for(std::size_t i=0;i<sz;i++)
18753 -    {
18754 -      ret[i]=shallowCpy();
18755 -      ret[i]->_content=contentsSplit[i];
18756 -    }
18757 -  return ret;
18758 -}
18759 -
18760 -/*!
18761 - * This method returns as MEDFileAnyTypeField1TS new instances as number of maximal number of discretization in \a this.
18762 - * The returned instances are shallowed copied of \a this except that for globals that are share with those contained in \a this.
18763 - */
18764 -std::vector< MCAuto< MEDFileAnyTypeField1TS > > MEDFileAnyTypeField1TS::splitMultiDiscrPerGeoTypes() const
18765 -{
18766 -  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
18767 -  if(!content)
18768 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeField1TS::splitMultiDiscrPerGeoTypes : no content in this ! Unable to split discretization !");
18769 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > contentsSplit(content->splitMultiDiscrPerGeoTypes());
18770 -  std::size_t sz(contentsSplit.size());
18771 -  std::vector< MCAuto< MEDFileAnyTypeField1TS > > ret(sz);
18772 -  for(std::size_t i=0;i<sz;i++)
18773 -    {
18774 -      ret[i]=shallowCpy();
18775 -      ret[i]->_content=contentsSplit[i];
18776 -    }
18777 -  return ret;
18778 -}
18779 -
18780 -MEDFileAnyTypeField1TS *MEDFileAnyTypeField1TS::deepCopy() const
18781 -{
18782 -  MCAuto<MEDFileAnyTypeField1TS> ret=shallowCpy();
18783 -  if((const MEDFileAnyTypeField1TSWithoutSDA *)_content)
18784 -    ret->_content=_content->deepCopy();
18785 -  ret->deepCpyGlobs(*this);
18786 -  return ret.retn();
18787 -}
18788 -
18789 -int MEDFileAnyTypeField1TS::copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr)
18790 -{
18791 -  MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::New(*field));
18792 -  return copyTinyInfoFrom(field->timeDiscrSafe(),ft,arr);
18793 -}
18794 -
18795 -int MEDFileAnyTypeField1TS::copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr)
18796 -{
18797 -  return contentNotNullBase()->copyTinyInfoFrom(th,field,arr);
18798 -}
18799 -
18800 -//= MEDFileField1TS
18801 -
18802 -/*!
18803 - * This method performs a copy with datatype modification ( float64->int32 ) of \a this. The globals information are copied
18804 - * following the given input policy.
18805 - *
18806 - * \param [in] isDeepCpyGlobs - a boolean that indicates the behaviour concerning globals (profiles and localizations)
18807 - *                            By default (true) the globals are deeply copied.
18808 - * \return MEDFileIntField1TS * - a new object that is the result of the conversion of \a this to int32 field.
18809 - */
18810 -MEDFileIntField1TS *MEDFileField1TS::convertToInt(bool isDeepCpyGlobs) const
18811 -{
18812 -  MCAuto<MEDFileIntField1TS> ret;
18813 -  const MEDFileAnyTypeField1TSWithoutSDA *content(_content);
18814 -  if(content)
18815 -    {
18816 -      const MEDFileField1TSWithoutSDA *contc=dynamic_cast<const MEDFileField1TSWithoutSDA *>(content);
18817 -      if(!contc)
18818 -        throw INTERP_KERNEL::Exception("MEDFileField1TS::convertToInt : the content inside this is not FLOAT64 ! This is incoherent !");
18819 -      MCAuto<MEDFileIntField1TSWithoutSDA> newc(contc->convertToInt());
18820 -      ret=static_cast<MEDFileIntField1TS *>(MEDFileAnyTypeField1TS::BuildNewInstanceFromContent((MEDFileIntField1TSWithoutSDA *)newc));
18821 -    }
18822 -  else
18823 -    ret=MEDFileIntField1TS::New();
18824 -  if(isDeepCpyGlobs)
18825 -    ret->deepCpyGlobs(*this);
18826 -  else
18827 -    ret->shallowCpyGlobs(*this);
18828 -  return ret.retn();
18829 -}
18830 -
18831 -MEDFileField1TS::MEDFileField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
18832 -try:MEDFileTemplateField1TS<double>(fid,loadAll,ms)
18833 -{
18834 -}
18835 -catch(INTERP_KERNEL::Exception& e)
18836 -{ throw e; }
18837 -
18838 -MEDFileField1TS::MEDFileField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms)
18839 -try:MEDFileTemplateField1TS<double>(fid,fieldName,loadAll,ms)
18840 -{
18841 -}
18842 -catch(INTERP_KERNEL::Exception& e)
18843 -{ throw e; }
18844 -
18845 -MEDFileField1TS::MEDFileField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms)
18846 -try:MEDFileTemplateField1TS<double>(fid,fieldName,iteration,order,loadAll,ms)
18847 -{
18848 -}
18849 -catch(INTERP_KERNEL::Exception& e)
18850 -{ throw e; }
18851 -
18852 -/*!
18853 - * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
18854 - * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
18855 - *
18856 - * \warning this is a shallow copy constructor
18857 - */
18858 -MEDFileField1TS::MEDFileField1TS(const MEDFileField1TSWithoutSDA& other, bool shallowCopyOfContent)
18859 -try:MEDFileTemplateField1TS<double>(other,shallowCopyOfContent)
18860 -{
18861 -}
18862 -catch(INTERP_KERNEL::Exception& e)
18863 -{ throw e; }
18864 -
18865 -MEDFileField1TS *MEDFileField1TS::shallowCpy() const
18866 -{
18867 -  return new MEDFileField1TS(*this);
18868 -}
18869 -
18870 -std::vector< std::vector<DataArrayDouble *> > MEDFileField1TS::getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
18871 -                                                                                      std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
18872 -{
18873 -  return contentNotNull()->getFieldSplitedByType2(mname,types,typesF,pfls,locs);
18874 -}
18875 -
18876 -//= MEDFileIntField1TS
18877 -
18878 -MCAuto<MEDCouplingFieldDouble> MEDFileIntField1TS::ConvertFieldIntToFieldDouble(const MEDCouplingFieldInt *f)
18879 -{
18880 -  if(!f)
18881 -    throw INTERP_KERNEL::Exception("MEDFileIntField1TS::ConvertFieldIntToFieldDouble : null input field !");
18882 -  int t1,t2;
18883 -  double t0(f->getTime(t1,t2));
18884 -  std::string tu(f->getTimeUnit());
18885 -  MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::New(*f));
18886 -  MCAuto<MEDCouplingFieldDouble> ret(MEDCouplingFieldDouble::New(*ft));
18887 -  ret->setTime(t0,t1,t2); ret->setTimeUnit(tu);
18888 -  return ret;
18889 -}
18890 -
18891 -//= MEDFileFloatField1TS
18892 -
18893 -//= MEDFileFloatField1TS
18894 -
18895 -//= MEDFileAnyTypeFieldMultiTSWithoutSDA
18896 -
18897 -MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA()
18898 -{
18899 -}
18900 -
18901 -MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileFieldNameScope(fieldName,meshName)
18902 -{
18903 -}
18904 -
18905 -/*!
18906 - * \param [in] fieldId field id in C mode
18907 - */
18908 -MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
18909 -{
18910 -  med_field_type typcha;
18911 -  std::string dtunitOut,meshName;
18912 -  int nbOfStep(MEDFileAnyTypeField1TS::LocateField2(fid,fieldId,false,_name,typcha,_infos,dtunitOut,meshName));
18913 -  setMeshName(meshName);
18914 -  setDtUnit(dtunitOut.c_str());
18915 -  loadStructureOrStructureAndBigArraysRecursively(fid,nbOfStep,typcha,loadAll,ms,entities);
18916 -}
18917 -
18918 -MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
18919 -try:MEDFileFieldNameScope(fieldName,meshName),_infos(infos)
18920 -{
18921 -  setDtUnit(dtunit.c_str());
18922 -  loadStructureOrStructureAndBigArraysRecursively(fid,nbOfStep,fieldTyp,loadAll,ms,entities);
18923 -}
18924 -catch(INTERP_KERNEL::Exception& e)
18925 -{
18926 -    throw e;
18927 -}
18928 -
18929 -std::size_t MEDFileAnyTypeFieldMultiTSWithoutSDA::getHeapMemorySizeWithoutChildren() const
18930 -{
18931 -  std::size_t ret(_mesh_name.capacity()+_name.capacity()+_infos.capacity()*sizeof(std::string)+_time_steps.capacity()*sizeof(MCAuto<MEDFileField1TSWithoutSDA>));
18932 -  for(std::vector<std::string>::const_iterator it=_infos.begin();it!=_infos.end();it++)
18933 -    ret+=(*it).capacity();
18934 -  return ret;
18935 -}
18936 -
18937 -std::vector<const BigMemoryObject *> MEDFileAnyTypeFieldMultiTSWithoutSDA::getDirectChildrenWithNull() const
18938 -{
18939 -  std::vector<const BigMemoryObject *> ret;
18940 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
18941 -    ret.push_back((const MEDFileAnyTypeField1TSWithoutSDA *)*it);
18942 -  return ret;
18943 -}
18944 -
18945 -/*!
18946 - * If one of the id in [ \a startIds , \a endIds ) points to a null element, there is not throw. Simply, this empty element is added as if it were not
18947 - * NULL.
18948 - */
18949 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds(const int *startIds, const int *endIds) const
18950 -{
18951 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret=createNew();
18952 -  ret->setInfo(_infos);
18953 -  int sz=(int)_time_steps.size();
18954 -  for(const int *id=startIds;id!=endIds;id++)
18955 -    {
18956 -      if(*id>=0 && *id<sz)
18957 -        {
18958 -          const MEDFileAnyTypeField1TSWithoutSDA *tse=_time_steps[*id];
18959 -          MCAuto<MEDFileAnyTypeField1TSWithoutSDA> tse2;
18960 -          if(tse)
18961 -            {
18962 -              tse->incrRef();
18963 -              tse2=(const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(tse));
18964 -            }
18965 -          ret->pushBackTimeStep(tse2);
18966 -        }
18967 -      else
18968 -        {
18969 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds : At pos #" << std::distance(startIds,id) << " value is " << *id;
18970 -          oss << " ! Should be in [0," << sz << ") !";
18971 -          throw INTERP_KERNEL::Exception(oss.str());
18972 -        }
18973 -    }
18974 -  if(ret->getNumberOfTS()>0)
18975 -    ret->synchronizeNameScope();
18976 -  ret->copyNameScope(*this);
18977 -  return ret.retn();
18978 -}
18979 -
18980 -/*!
18981 - * If one of the id in the input range points to a null element, there is not throw. Simply, this empty element is added as if it were not
18982 - * NULL.
18983 - */
18984 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds2(int bg, int end, int step) const
18985 -{
18986 -  static const char msg[]="MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds2";
18987 -  int nbOfEntriesToKeep=DataArrayInt::GetNumberOfItemGivenBESRelative(bg,end,step,msg);
18988 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret=createNew();
18989 -  ret->setInfo(_infos);
18990 -  int sz=(int)_time_steps.size();
18991 -  int j=bg;
18992 -  for(int i=0;i<nbOfEntriesToKeep;i++,j+=step)
18993 -    {
18994 -      if(j>=0 && j<sz)
18995 -        {
18996 -          const MEDFileAnyTypeField1TSWithoutSDA *tse=_time_steps[j];
18997 -          MCAuto<MEDFileAnyTypeField1TSWithoutSDA> tse2;
18998 -          if(tse)
18999 -            {
19000 -              tse->incrRef();
19001 -              tse2=(const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(tse));
19002 -            }
19003 -          ret->pushBackTimeStep(tse2);
19004 -        }
19005 -      else
19006 -        {
19007 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds : At pos #" << i << " value is " << j;
19008 -          oss << " ! Should be in [0," << sz << ") !";
19009 -          throw INTERP_KERNEL::Exception(oss.str());
19010 -        }
19011 -    }
19012 -  if(ret->getNumberOfTS()>0)
19013 -    ret->synchronizeNameScope();
19014 -  ret->copyNameScope(*this);
19015 -  return ret.retn();
19016 -}
19017 -
19018 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::partOfThisLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const
19019 -{
19020 -  int id=0;
19021 -  MCAuto<DataArrayInt> ids=DataArrayInt::New(); ids->alloc(0,1);
19022 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,id++)
19023 -    {
19024 -      const MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
19025 -      if(!cur)
19026 -        continue;
19027 -      std::pair<int,int> p(cur->getIteration(),cur->getOrder());
19028 -      if(std::find(timeSteps.begin(),timeSteps.end(),p)!=timeSteps.end())
19029 -        ids->pushBackSilent(id);
19030 -    }
19031 -  return buildFromTimeStepIds(ids->begin(),ids->end());
19032 -}
19033 -
19034 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::partOfThisNotLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const
19035 -{
19036 -  int id=0;
19037 -  MCAuto<DataArrayInt> ids=DataArrayInt::New(); ids->alloc(0,1);
19038 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,id++)
19039 -    {
19040 -      const MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
19041 -      if(!cur)
19042 -        continue;
19043 -      std::pair<int,int> p(cur->getIteration(),cur->getOrder());
19044 -      if(std::find(timeSteps.begin(),timeSteps.end(),p)==timeSteps.end())
19045 -        ids->pushBackSilent(id);
19046 -    }
19047 -  return buildFromTimeStepIds(ids->begin(),ids->end());
19048 -}
19049 -
19050 -bool MEDFileAnyTypeFieldMultiTSWithoutSDA::presenceOfStructureElements() const
19051 -{
19052 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19053 -    if((*it).isNotNull())
19054 -      if((*it)->presenceOfStructureElements())
19055 -        return true;
19056 -  return false;
19057 -}
19058 -
19059 -bool MEDFileAnyTypeFieldMultiTSWithoutSDA::onlyStructureElements() const
19060 -{
19061 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19062 -    if((*it).isNotNull())
19063 -      if(!(*it)->onlyStructureElements())
19064 -        return false;
19065 -  return true;
19066 -}
19067 -
19068 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::killStructureElements()
19069 -{
19070 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret;
19071 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19072 -    if((*it).isNotNull())
19073 -      {
19074 -        if((*it)->presenceOfStructureElements())
19075 -          {
19076 -            if(!(*it)->onlyStructureElements())
19077 -              {
19078 -                (*it)->killStructureElements();
19079 -                ret.push_back(*it);
19080 -              }
19081 -          }
19082 -        else
19083 -          {
19084 -            ret.push_back(*it);
19085 -          }
19086 -      }
19087 -  _time_steps=ret;
19088 -}
19089 -
19090 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::keepOnlyStructureElements()
19091 -{
19092 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret;
19093 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19094 -    if((*it).isNotNull())
19095 -      {
19096 -        if((*it)->presenceOfStructureElements())
19097 -          {
19098 -            if(!(*it)->onlyStructureElements())
19099 -              (*it)->keepOnlyStructureElements();
19100 -            ret.push_back(*it);
19101 -          }
19102 -      }
19103 -  _time_steps=ret;
19104 -}
19105 -
19106 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::keepOnlyOnSE(const std::string& seName)
19107 -{
19108 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret;
19109 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19110 -    if((*it).isNotNull())
19111 -      (*it)->keepOnlyOnSE(seName);
19112 -}
19113 -
19114 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const
19115 -{
19116 -  std::vector< std::pair<std::string,std::string> > ps2;
19117 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19118 -    if((*it).isNotNull())
19119 -      {
19120 -        (*it)->getMeshSENames(ps2);
19121 -        break;
19122 -      }
19123 -  if(ps2.empty())
19124 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::getMeshSENames : this appears to not contain SE only !");
19125 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19126 -    if((*it).isNotNull())
19127 -      {
19128 -        std::vector< std::pair<std::string,std::string> > ps3;
19129 -        (*it)->getMeshSENames(ps3);
19130 -        if(ps2!=ps3)
19131 -          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::getMeshSENames : For the moment only homogeneous SE def through time managed !");
19132 -      }
19133 -  for(std::vector< std::pair<std::string,std::string> >::const_iterator it=ps2.begin();it!=ps2.end();it++)
19134 -    {
19135 -      std::vector< std::pair<std::string,std::string> >::iterator it2(std::find(ps.begin(),ps.end(),*it));
19136 -      if(it2==ps.end())
19137 -        ps.push_back(*it);
19138 -    }
19139 -}
19140 -
19141 -bool MEDFileAnyTypeFieldMultiTSWithoutSDA::presenceOfMultiDiscPerGeoType() const
19142 -{
19143 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19144 -    {
19145 -      const MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
19146 -      if(!cur)
19147 -        continue;
19148 -      if(cur->presenceOfMultiDiscPerGeoType())
19149 -        return true;
19150 -    }
19151 -  return false;
19152 -}
19153 -
19154 -const std::vector<std::string>& MEDFileAnyTypeFieldMultiTSWithoutSDA::getInfo() const
19155 -{
19156 -  return _infos;
19157 -}
19158 -
19159 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::setInfo(const std::vector<std::string>& info)
19160 -{
19161 -  _infos=info;
19162 -}
19163 -
19164 -int MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepPos(int iteration, int order) const
19165 -{
19166 -  int ret=0;
19167 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,ret++)
19168 -    {
19169 -      const MEDFileAnyTypeField1TSWithoutSDA *pt(*it);
19170 -      if(pt->isDealingTS(iteration,order))
19171 -        return ret;
19172 -    }
19173 -  std::ostringstream oss; oss << "MEDFileFieldMultiTS::getTimeStepPos : Muli timestep field on time (" << iteration << "," << order << ") does not exist ! Available (iteration,order) are :\n";
19174 -  std::vector< std::pair<int,int> > vp=getIterations();
19175 -  for(std::vector< std::pair<int,int> >::const_iterator it2=vp.begin();it2!=vp.end();it2++)
19176 -    oss << "(" << (*it2).first << "," << (*it2).second << ") ";
19177 -  throw INTERP_KERNEL::Exception(oss.str());
19178 -}
19179 -
19180 -const MEDFileAnyTypeField1TSWithoutSDA& MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepEntry(int iteration, int order) const
19181 -{
19182 -  return *_time_steps[getTimeStepPos(iteration,order)];
19183 -}
19184 -
19185 -MEDFileAnyTypeField1TSWithoutSDA& MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepEntry(int iteration, int order)
19186 -{
19187 -  return *_time_steps[getTimeStepPos(iteration,order)];
19188 -}
19189 -
19190 -bool MEDFileAnyTypeFieldMultiTSWithoutSDA::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
19191 -{
19192 -  bool ret(false);
19193 -  for(std::vector< std::pair<std::string,std::string> >::const_iterator it=modifTab.begin();it!=modifTab.end();it++)
19194 -    {
19195 -      if((*it).first==getMeshName())
19196 -        {
19197 -          setMeshName((*it).second);
19198 -          ret=true;
19199 -        }
19200 -    }
19201 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19202 -    {
19203 -      MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
19204 -      if(cur)
19205 -        ret=cur->changeMeshNames(modifTab) || ret;
19206 -    }
19207 -  return ret;
19208 -}
19209 -
19210 -/*!
19211 - * See doc at MEDFileField1TSWithoutSDA::getUndergroundDataArray
19212 - */
19213 -DataArray *MEDFileAnyTypeFieldMultiTSWithoutSDA::getUndergroundDataArray(int iteration, int order) const
19214 -{
19215 -  return getTimeStepEntry(iteration,order).getUndergroundDataArray();
19216 -}
19217 -
19218 -/*!
19219 - * See doc at MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt
19220 - */
19221 -DataArray *MEDFileAnyTypeFieldMultiTSWithoutSDA::getUndergroundDataArrayExt(int iteration, int order, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
19222 -{
19223 -  return getTimeStepEntry(iteration,order).getUndergroundDataArrayExt(entries);
19224 -}
19225 -
19226 -bool MEDFileAnyTypeFieldMultiTSWithoutSDA::renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N,
19227 -                                                                       MEDFileFieldGlobsReal& glob)
19228 -{
19229 -  bool ret=false;
19230 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19231 -    {
19232 -      MEDFileAnyTypeField1TSWithoutSDA *f1ts(*it);
19233 -      if(f1ts)
19234 -        ret=f1ts->renumberEntitiesLyingOnMesh(meshName,oldCode,newCode,renumO2N,glob) || ret;
19235 -    }
19236 -  return ret;
19237 -}
19238 -
19239 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::accept(MEDFileFieldVisitor& visitor) const
19240 -{
19241 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19242 -    if((*it).isNotNull())
19243 -      {
19244 -        visitor.newTimeStepEntry(*it);
19245 -        (*it)->accept(visitor);
19246 -        visitor.endTimeStepEntry(*it);
19247 -      }
19248 -}
19249 -
19250 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const
19251 -{
19252 -  std::string startLine(bkOffset,' ');
19253 -  oss << startLine << "Field multi time steps [Type=" << getTypeStr() << "]";
19254 -  if(fmtsId>=0)
19255 -    oss << " (" << fmtsId << ")";
19256 -  oss << " has the following name: \"" << _name << "\"." << std::endl;
19257 -  oss << startLine << "Field multi time steps has " << _infos.size() << " components with the following infos :" << std::endl;
19258 -  for(std::vector<std::string>::const_iterator it=_infos.begin();it!=_infos.end();it++)
19259 -    {
19260 -      oss << startLine << "  -  \"" << *it << "\"" << std::endl;
19261 -    }
19262 -  int i=0;
19263 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,i++)
19264 -    {
19265 -      std::string chapter(17,'0'+i);
19266 -      oss << startLine << chapter << std::endl;
19267 -      const MEDFileAnyTypeField1TSWithoutSDA *cur=(*it);
19268 -      if(cur)
19269 -        cur->simpleRepr(bkOffset+2,oss,i);
19270 -      else
19271 -        oss << startLine << "  Field on one time step #" << i << " is not defined !" << std::endl;
19272 -      oss << startLine << chapter << std::endl;
19273 -    }
19274 -}
19275 -
19276 -std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeSteps(std::vector<double>& ret1) const
19277 -{
19278 -  std::size_t sz=_time_steps.size();
19279 -  std::vector< std::pair<int,int> > ret(sz);
19280 -  ret1.resize(sz);
19281 -  for(std::size_t i=0;i<sz;i++)
19282 -    {
19283 -      const MEDFileAnyTypeField1TSWithoutSDA *f1ts=_time_steps[i];
19284 -      if(f1ts)
19285 -        {
19286 -          ret1[i]=f1ts->getTime(ret[i].first,ret[i].second);
19287 -        }
19288 -      else
19289 -        {
19290 -          std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::getTimeSteps : At rank #" << i << " time step is not defined. Invoke eraseEmptyTS method !";
19291 -          throw INTERP_KERNEL::Exception(oss.str());
19292 -        }
19293 -    }
19294 -  return ret;
19295 -}
19296 -
19297 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep(MCAuto<MEDFileAnyTypeField1TSWithoutSDA>& tse)
19298 -{
19299 -  MEDFileAnyTypeField1TSWithoutSDA *tse2(tse);
19300 -  if(!tse2)
19301 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep : input content object is null !");
19302 -  checkCoherencyOfType(tse2);
19303 -  if(_time_steps.empty())
19304 -    {
19305 -      setName(tse2->getName());
19306 -      setMeshName(tse2->getMeshName());
19307 -      setInfo(tse2->getInfo());
19308 -    }
19309 -  checkThatComponentsMatch(tse2->getInfo());
19310 -  if(getDtUnit().empty() && !tse->getDtUnit().empty())
19311 -    setDtUnit(tse->getDtUnit());
19312 -  _time_steps.push_back(tse);
19313 -}
19314 -
19315 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::synchronizeNameScope()
19316 -{
19317 -  std::size_t nbOfCompo=_infos.size();
19318 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19319 -    {
19320 -      MEDFileAnyTypeField1TSWithoutSDA *cur=(*it);
19321 -      if(cur)
19322 -        {
19323 -          if((cur->getInfo()).size()!=nbOfCompo)
19324 -            {
19325 -              std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::synchronizeNameScope : Mismatch in the number of components of parts ! Should be " << nbOfCompo;
19326 -              oss << " ! but the field at iteration=" << cur->getIteration() << " order=" << cur->getOrder() << " has " << (cur->getInfo()).size() << " components !";
19327 -              throw INTERP_KERNEL::Exception(oss.str());
19328 -            }
19329 -          cur->copyNameScope(*this);
19330 -        }
19331 -    }
19332 -}
19333 -
19334 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::loadStructureOrStructureAndBigArraysRecursively(med_idt fid, int nbPdt, med_field_type fieldTyp, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
19335 -{
19336 -  _time_steps.resize(nbPdt);
19337 -  for(int i=0;i<nbPdt;i++)
19338 -    {
19339 -      std::vector< std::pair<int,int> > ts;
19340 -      med_int numdt=0,numo=0;
19341 -      med_float dt=0.0;
19342 -      MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,_name.c_str(),i+1,&numdt,&numo,&dt));
19343 -      switch(fieldTyp)
19344 -      {
19345 -        case MED_FLOAT64:
19346 -          {
19347 -            _time_steps[i]=MEDFileField1TSWithoutSDA::New(getName(),getMeshName(),i+1,numdt,numo,_infos);
19348 -            break;
19349 -          }
19350 -        case MED_INT32:
19351 -          {
19352 -            _time_steps[i]=MEDFileIntField1TSWithoutSDA::New(getName(),getMeshName(),i+1,numdt,numo,_infos);
19353 -            break;
19354 -          }
19355 -        case MED_NODE://6432
19356 -          {
19357 -            _time_steps[i]=MEDFileFloatField1TSWithoutSDA::New(getName(),getMeshName(),i+1,numdt,numo,_infos);
19358 -            break;
19359 -          }
19360 -        default:
19361 -          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::loadStructureOrStructureAndBigArraysRecursively : managed field type are : FLOAT64, INT32, FLOAT32 !");
19362 -      }
19363 -      if(loadAll)
19364 -        _time_steps[i]->loadStructureAndBigArraysRecursively(fid,*this,ms,entities);
19365 -      else
19366 -        _time_steps[i]->loadOnlyStructureOfDataRecursively(fid,*this,ms,entities);
19367 -      synchronizeNameScope();
19368 -    }
19369 -}
19370 -
19371 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::writeLL(med_idt fid, const MEDFileWritable& opts) const
19372 -{
19373 -  if(_time_steps.empty())
19374 -    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::writeLL : no time steps set !");
19375 -  checkThatNbOfCompoOfTSMatchThis();
19376 -  std::vector<std::string> infos(getInfo());
19377 -  int nbComp=infos.size();
19378 -  INTERP_KERNEL::AutoPtr<char> comp=MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE);
19379 -  INTERP_KERNEL::AutoPtr<char> unit=MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE);
19380 -  for(int i=0;i<nbComp;i++)
19381 -    {
19382 -      std::string info=infos[i];
19383 -      std::string c,u;
19384 -      MEDLoaderBase::splitIntoNameAndUnit(info,c,u);
19385 -      MEDLoaderBase::safeStrCpy2(c.c_str(),MED_SNAME_SIZE,comp+i*MED_SNAME_SIZE,opts.getTooLongStrPolicy());
19386 -      MEDLoaderBase::safeStrCpy2(u.c_str(),MED_SNAME_SIZE,unit+i*MED_SNAME_SIZE,opts.getTooLongStrPolicy());
19387 -    }
19388 -  if(_name.empty())
19389 -    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::write : MED file does not accept field with empty name !");
19390 -  MEDFILESAFECALLERWR0(MEDfieldCr,(fid,_name.c_str(),getMEDFileFieldType(),nbComp,comp,unit,getDtUnit().c_str(),getMeshName().c_str()));
19391 -  int nbOfTS=_time_steps.size();
19392 -  for(int i=0;i<nbOfTS;i++)
19393 -    _time_steps[i]->writeLL(fid,opts,*this);
19394 -}
19395 -
19396 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
19397 -{
19398 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19399 -    {
19400 -      MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
19401 -      if(elt)
19402 -        elt->loadBigArraysRecursively(fid,nasc);
19403 -    }
19404 -}
19405 -
19406 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc)
19407 -{
19408 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19409 -    {
19410 -      MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
19411 -      if(elt)
19412 -        elt->loadBigArraysRecursivelyIfNecessary(fid,nasc);
19413 -    }
19414 -}
19415 -
19416 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::unloadArrays()
19417 -{
19418 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19419 -    {
19420 -      MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
19421 -      if(elt)
19422 -        elt->unloadArrays();
19423 -    }
19424 -}
19425 -
19426 -int MEDFileAnyTypeFieldMultiTSWithoutSDA::getNumberOfTS() const
19427 -{
19428 -  return _time_steps.size();
19429 -}
19430 -
19431 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseEmptyTS()
19432 -{
19433 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  > newTS;
19434 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19435 -    {
19436 -      const MEDFileAnyTypeField1TSWithoutSDA *tmp=(*it);
19437 -      if(tmp)
19438 -        newTS.push_back(*it);
19439 -    }
19440 -  _time_steps=newTS;
19441 -}
19442 -
19443 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseTimeStepIds(const int *startIds, const int *endIds)
19444 -{
19445 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > newTS;
19446 -  int maxId=(int)_time_steps.size();
19447 -  int ii=0;
19448 -  std::set<int> idsToDel;
19449 -  for(const int *id=startIds;id!=endIds;id++,ii++)
19450 -    {
19451 -      if(*id>=0 && *id<maxId)
19452 -        {
19453 -          idsToDel.insert(*id);
19454 -        }
19455 -      else
19456 -        {
19457 -          std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::eraseTimeStepIds : At pos #" << ii << " request for id=" << *id << " not in [0," << maxId << ") !";
19458 -          throw INTERP_KERNEL::Exception(oss.str());
19459 -        }
19460 -    }
19461 -  for(int iii=0;iii<maxId;iii++)
19462 -    if(idsToDel.find(iii)==idsToDel.end())
19463 -      newTS.push_back(_time_steps[iii]);
19464 -  _time_steps=newTS;
19465 -}
19466 -
19467 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseTimeStepIds2(int bg, int end, int step)
19468 -{
19469 -  static const char msg[]="MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseTimeStepIds2";
19470 -  int nbOfEntriesToKill=DataArrayInt::GetNumberOfItemGivenBESRelative(bg,end,step,msg);
19471 -  if(nbOfEntriesToKill==0)
19472 -    return ;
19473 -  std::size_t sz=_time_steps.size();
19474 -  std::vector<bool> b(sz,true);
19475 -  int j=bg;
19476 -  for(int i=0;i<nbOfEntriesToKill;i++,j+=step)
19477 -    b[j]=false;
19478 -  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > newTS;
19479 -  for(std::size_t i=0;i<sz;i++)
19480 -    if(b[i])
19481 -      newTS.push_back(_time_steps[i]);
19482 -  _time_steps=newTS;
19483 -}
19484 -
19485 -int MEDFileAnyTypeFieldMultiTSWithoutSDA::getPosOfTimeStep(int iteration, int order) const
19486 -{
19487 -  int ret=0;
19488 -  std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::getPosOfTimeStep : No such time step (" << iteration << "," << order << ") !\nPossibilities are : "; 
19489 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,ret++)
19490 -    {
19491 -      const MEDFileAnyTypeField1TSWithoutSDA *tmp(*it);
19492 -      if(tmp)
19493 -        {
19494 -          int it2,ord;
19495 -          tmp->getTime(it2,ord);
19496 -          if(it2==iteration && order==ord)
19497 -            return ret;
19498 -          else
19499 -            oss << "(" << it2 << ","  << ord << "), ";
19500 -        }
19501 -    }
19502 -  throw INTERP_KERNEL::Exception(oss.str());
19503 -}
19504 -
19505 -int MEDFileAnyTypeFieldMultiTSWithoutSDA::getPosGivenTime(double time, double eps) const
19506 -{
19507 -  int ret=0;
19508 -  std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::getPosGivenTime : No such time step " << time << "! \nPossibilities are : ";
19509 -  oss.precision(15);
19510 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,ret++)
19511 -    {
19512 -      const MEDFileAnyTypeField1TSWithoutSDA *tmp(*it);
19513 -      if(tmp)
19514 -        {
19515 -          int it2,ord;
19516 -          double ti=tmp->getTime(it2,ord);
19517 -          if(fabs(time-ti)<eps)
19518 -            return ret;
19519 -          else
19520 -            oss << ti << ", ";
19521 -        }
19522 -    }
19523 -  throw INTERP_KERNEL::Exception(oss.str());
19524 -}
19525 -
19526 -std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTSWithoutSDA::getIterations() const
19527 -{
19528 -  int lgth=_time_steps.size();
19529 -  std::vector< std::pair<int,int> > ret(lgth);
19530 -  for(int i=0;i<lgth;i++)
19531 -    _time_steps[i]->fillIteration(ret[i]);
19532 -  return ret;
19533 -}
19534 -
19535 -/*!
19536 - * This method has 3 inputs 'iteration' 'order' 'mname'. 'mname' can be null if the user is the general case where there is only one meshName lying on 'this'
19537 - * This method returns two things.
19538 - * - The absolute dimension of 'this' in first parameter. 
19539 - * - The available ext levels relative to the absolute dimension returned in first parameter. These relative levels are relative
19540 - *   to the first output parameter. The values in 'levs' will be returned in decreasing order.
19541 - *
19542 - * This method is designed for MEDFileFieldMultiTS instances that have a discritization ON_CELLS, ON_GAUSS_NE and ON_GAUSS.
19543 - * Only these 3 discretizations will be taken into account here.
19544 - *
19545 - * If 'this' is empty this method will throw an INTERP_KERNEL::Exception.
19546 - * If there is \b only node fields defined in 'this' -1 is returned and 'levs' output parameter will be empty. In this
19547 - * case the caller has to know the underlying mesh it refers to. By defaut it is the level 0 of the corresponding mesh.
19548 - *
19549 - * This method is usefull to make the link between meshDimension of the underlying mesh in 'this' and the levels on 'this'.
19550 - * It is possible (even if it is not common) that the highest level in 'this' were not equal to the meshDimension of the underlying mesh in 'this'.
19551 - * 
19552 - * Let's consider the typical following case :
19553 - * - a mesh 'm1' has a meshDimension 3 and has the following non empty levels
19554 - * [0,-1,-2] for example 'm1' lies on TETRA4, HEXA8 TRI3 and SEG2
19555 - * - 'f1' lies on 'm1' and is defined on 3D and 1D cells for example
19556 - *   TETRA4 and SEG2
19557 - * - 'f2' lies on 'm1' too and is defined on 2D and 1D cells for example TRI3 and SEG2
19558 - *
19559 - * In this case f1->getNonEmptyLevelsExt will return (3,[0,-2]) and f2->getNonEmptyLevelsExt will return (2,[0,-1])
19560 - * 
19561 - * To retrieve the highest level of f1 it should be done, f1->getFieldAtLevel(ON_CELLS,3-3+0);//absDim-meshDim+relativeLev
19562 - * To retrieve the lowest level of f1 it should be done, f1->getFieldAtLevel(ON_CELLS,3-3+(-2));//absDim-meshDim+relativeLev
19563 - * To retrieve the highest level of f2 it should be done, f1->getFieldAtLevel(ON_CELLS,2-3+0);//absDim-meshDim+relativeLev
19564 - * To retrieve the lowest level of f2 it should be done, f1->getFieldAtLevel(ON_CELLS,2-3+(-1));//absDim-meshDim+relativeLev
19565 - */
19566 -int MEDFileAnyTypeFieldMultiTSWithoutSDA::getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const
19567 -{
19568 -  return getTimeStepEntry(iteration,order).getNonEmptyLevels(mname,levs);
19569 -}
19570 -
19571 -const MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2(int pos) const
19572 -{
19573 -  if(pos<0 || pos>=(int)_time_steps.size())
19574 -    {
19575 -      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << " whereas should be in [0," << _time_steps.size() << ") !";
19576 -      throw INTERP_KERNEL::Exception(oss.str());
19577 -    }
19578 -  const MEDFileAnyTypeField1TSWithoutSDA *item=_time_steps[pos];
19579 -  if(item==0)
19580 -    {
19581 -      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << ", this pos id exists but the underlying Field1TS is null !";
19582 -      oss << "\nTry to use following method eraseEmptyTS !";
19583 -      throw INTERP_KERNEL::Exception(oss.str());
19584 -    }
19585 -  return item;
19586 -}
19587 -
19588 -MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2(int pos)
19589 -{
19590 -  if(pos<0 || pos>=(int)_time_steps.size())
19591 -    {
19592 -      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << " whereas should be in [0," << _time_steps.size() << ") !";
19593 -      throw INTERP_KERNEL::Exception(oss.str());
19594 -    }
19595 -  MEDFileAnyTypeField1TSWithoutSDA *item=_time_steps[pos];
19596 -  if(item==0)
19597 -    {
19598 -      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << ", this pos id exists but the underlying Field1TS is null !";
19599 -      oss << "\nTry to use following method eraseEmptyTS !";
19600 -      throw INTERP_KERNEL::Exception(oss.str());
19601 -    }
19602 -  return item;
19603 -}
19604 -
19605 -std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getPflsReallyUsed2() const
19606 -{
19607 -  std::vector<std::string> ret;
19608 -  std::set<std::string> ret2;
19609 -  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19610 -    {
19611 -      std::vector<std::string> tmp=(*it)->getPflsReallyUsed2();
19612 -      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
19613 -        if(ret2.find(*it2)==ret2.end())
19614 -          {
19615 -            ret.push_back(*it2);
19616 -            ret2.insert(*it2);
19617 -          }
19618 -    }
19619 -  return ret;
19620 -}
19621 -
19622 -std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getLocsReallyUsed2() const
19623 -{
19624 -  std::vector<std::string> ret;
19625 -  std::set<std::string> ret2;
19626 -  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19627 -    {
19628 -      std::vector<std::string> tmp=(*it)->getLocsReallyUsed2();
19629 -      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
19630 -        if(ret2.find(*it2)==ret2.end())
19631 -          {
19632 -            ret.push_back(*it2);
19633 -            ret2.insert(*it2);
19634 -          }
19635 -    }
19636 -  return ret;
19637 -}
19638 -
19639 -std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getPflsReallyUsedMulti2() const
19640 -{
19641 -  std::vector<std::string> ret;
19642 -  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19643 -    {
19644 -      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti2();
19645 -      ret.insert(ret.end(),tmp.begin(),tmp.end());
19646 -    }
19647 -  return ret;
19648 -}
19649 -
19650 -std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getLocsReallyUsedMulti2() const
19651 -{
19652 -  std::vector<std::string> ret;
19653 -  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19654 -    {
19655 -      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti2();
19656 -      ret.insert(ret.end(),tmp.begin(),tmp.end());
19657 -    }
19658 -  return ret;
19659 -}
19660 -
19661 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
19662 -{
19663 -  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19664 -    (*it)->changePflsRefsNamesGen2(mapOfModif);
19665 -}
19666 -
19667 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
19668 -{
19669 -  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
19670 -    (*it)->changeLocsRefsNamesGen2(mapOfModif);
19671 -}
19672 -
19673 -std::vector< std::vector<TypeOfField> > MEDFileAnyTypeFieldMultiTSWithoutSDA::getTypesOfFieldAvailable() const
19674 -{
19675 -  int lgth=_time_steps.size();
19676 -  std::vector< std::vector<TypeOfField> > ret(lgth);
19677 -  for(int i=0;i<lgth;i++)
19678 -    _time_steps[i]->fillTypesOfFieldAvailable(ret[i]);
19679 -  return ret;
19680 -}
19681 -
19682 -/*!
19683 - * entry point for users that want to iterate into MEDFile DataStructure without any overhead.
19684 - */
19685 -std::vector< std::vector< std::pair<int,int> > > MEDFileAnyTypeFieldMultiTSWithoutSDA::getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
19686 -{
19687 -  return getTimeStepEntry(iteration,order).getFieldSplitedByType(mname,types,typesF,pfls,locs);
19688 -}
19689 -
19690 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::deepCopy() const
19691 -{
19692 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret=shallowCpy();
19693 -  std::size_t i=0;
19694 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,i++)
19695 -    {
19696 -      if((const MEDFileAnyTypeField1TSWithoutSDA *)*it)
19697 -        ret->_time_steps[i]=(*it)->deepCopy();
19698 -    }
19699 -  return ret.retn();
19700 -}
19701 -
19702 -std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > MEDFileAnyTypeFieldMultiTSWithoutSDA::splitComponents() const
19703 -{
19704 -  std::size_t sz(_infos.size()),sz2(_time_steps.size());
19705 -  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > ret(sz);
19706 -  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > ts(sz2);
19707 -  for(std::size_t i=0;i<sz;i++)
19708 -    {
19709 -      ret[i]=shallowCpy();
19710 -      ret[i]->_infos.resize(1); ret[i]->_infos[0]=_infos[i];
19711 -    }
19712 -  for(std::size_t i=0;i<sz2;i++)
19713 -    {
19714 -      std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret1=_time_steps[i]->splitComponents();
19715 -      if(ret1.size()!=sz)
19716 -        {
19717 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::splitComponents : At rank #" << i << " number of components is " << ret1.size() << " whereas it should be for all time steps " << sz << " !";
19718 -          throw INTERP_KERNEL::Exception(oss.str());
19719 -        }
19720 -      ts[i]=ret1;
19721 -    }
19722 -  for(std::size_t i=0;i<sz;i++)
19723 -    for(std::size_t j=0;j<sz2;j++)
19724 -      ret[i]->_time_steps[j]=ts[j][i];
19725 -  return ret;
19726 -}
19727 -
19728 -/*!
19729 - * This method splits into discretization each time steps in \a this.
19730 - * ** WARNING ** the returned instances are not compulsary defined on the same time steps series !
19731 - */
19732 -std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > MEDFileAnyTypeFieldMultiTSWithoutSDA::splitDiscretizations() const
19733 -{
19734 -  std::size_t sz(_time_steps.size());
19735 -  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > items(sz);
19736 -  for(std::size_t i=0;i<sz;i++)
19737 -    {
19738 -      const MEDFileAnyTypeField1TSWithoutSDA *timeStep(_time_steps[i]);
19739 -      if(!timeStep)
19740 -        {
19741 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::splitDiscretizations : time step #" << i << " is null !"; 
19742 -          throw INTERP_KERNEL::Exception(oss.str());
19743 -        }
19744 -      items[i]=timeStep->splitDiscretizations();  
19745 -    }
19746 -  //
19747 -  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > ret;
19748 -  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > ret2;
19749 -  std::vector< TypeOfField > types;
19750 -  for(std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > >::const_iterator it0=items.begin();it0!=items.end();it0++)
19751 -    for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it1=(*it0).begin();it1!=(*it0).end();it1++)
19752 -      {
19753 -        std::vector<TypeOfField> ts=(*it1)->getTypesOfFieldAvailable();
19754 -        if(ts.size()!=1)
19755 -          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::splitDiscretizations : it appears that the splitting of MEDFileAnyTypeField1TSWithoutSDA::splitDiscretizations has returned invalid result !");
19756 -        std::vector< TypeOfField >::iterator it2=std::find(types.begin(),types.end(),ts[0]);
19757 -        if(it2==types.end())
19758 -          types.push_back(ts[0]);
19759 -      }
19760 -  ret.resize(types.size()); ret2.resize(types.size());
19761 -  for(std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > >::const_iterator it0=items.begin();it0!=items.end();it0++)
19762 -    for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it1=(*it0).begin();it1!=(*it0).end();it1++)
19763 -      {
19764 -        TypeOfField typ=(*it1)->getTypesOfFieldAvailable()[0];
19765 -        std::size_t pos=std::distance(types.begin(),std::find(types.begin(),types.end(),typ));
19766 -        ret2[pos].push_back(*it1);
19767 -      }
19768 -  for(std::size_t i=0;i<types.size();i++)
19769 -    {
19770 -      MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> elt(createNew());
19771 -      for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it1=ret2[i].begin();it1!=ret2[i].end();it1++)
19772 -        elt->pushBackTimeStep(*it1);//also updates infos in elt
19773 -      ret[i]=elt;
19774 -      elt->MEDFileFieldNameScope::operator=(*this);
19775 -    }
19776 -  return ret;
19777 -}
19778 -
19779 -/*!
19780 - * Contrary to splitDiscretizations method this method makes the hypothesis that the times series are **NOT** impacted by the splitting of multi discretization.
19781 - */
19782 -std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes() const
19783 -{
19784 -  std::size_t sz(_time_steps.size());
19785 -  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > items(sz);
19786 -  std::size_t szOut(std::numeric_limits<std::size_t>::max());
19787 -  for(std::size_t i=0;i<sz;i++)
19788 -    {
19789 -      const MEDFileAnyTypeField1TSWithoutSDA *timeStep(_time_steps[i]);
19790 -      if(!timeStep)
19791 -        {
19792 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes : time step #" << i << " is null !";
19793 -          throw INTERP_KERNEL::Exception(oss.str());
19794 -        }
19795 -      items[i]=timeStep->splitMultiDiscrPerGeoTypes();
19796 -      if(szOut==std::numeric_limits<std::size_t>::max())
19797 -        szOut=items[i].size();
19798 -      else
19799 -        if(items[i].size()!=szOut)
19800 -          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes : The splitting per discretization is expected to be same among time steps !");
19801 -    }
19802 -  if(szOut==std::numeric_limits<std::size_t>::max())
19803 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes : empty field !");
19804 -  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > ret(szOut);
19805 -  for(std::size_t i=0;i<szOut;i++)
19806 -    {
19807 -      MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> elt(createNew());
19808 -      for(std::size_t j=0;j<sz;j++)
19809 -        elt->pushBackTimeStep(items[j][i]);
19810 -      ret[i]=elt;
19811 -      elt->MEDFileFieldNameScope::operator=(*this);
19812 -    }
19813 -  return ret;
19814 -}
19815 -
19816 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr)
19817 -{
19818 -  setName(field->getName());
19819 -  if(field->getMesh())
19820 -    setMeshName(field->getMesh()->getName());
19821 -  if(_name.empty())
19822 -    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::copyTinyInfoFrom : unsupported fields with no name in MED file !");
19823 -  if(!arr)
19824 -    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::copyTinyInfoFrom : no array set !");
19825 -  _infos=arr->getInfoOnComponents();
19826 -}
19827 -
19828 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::checkCoherencyOfTinyInfo(const MEDCouplingFieldDouble *field, const DataArray *arr) const
19829 -{
19830 -  static const char MSG[]="MEDFileFieldMultiTSWithoutSDA::checkCoherencyOfTinyInfo : invalid ";
19831 -  if(_name!=field->getName())
19832 -    {
19833 -      std::ostringstream oss; oss << MSG << "name ! should be \"" << _name;
19834 -      oss << "\" and it is set in input field to \"" << field->getName() << "\" !";
19835 -      throw INTERP_KERNEL::Exception(oss.str());
19836 -    }
19837 -  if(!arr)
19838 -    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::checkCoherencyOfTinyInfo : no array set !");
19839 -  checkThatComponentsMatch(arr->getInfoOnComponents());
19840 -}
19841 -
19842 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::checkThatComponentsMatch(const std::vector<std::string>& compos) const
19843 -{
19844 -  static const char MSG[]="MEDFileFieldMultiTSWithoutSDA::checkThatComponentsMatch : ";
19845 -  if(getInfo().size()!=compos.size())
19846 -    {
19847 -      std::ostringstream oss; oss << MSG << "mismatch of number of components between this (" << getInfo().size() << ") and ";
19848 -      oss << " number of components of element to append (" << compos.size() << ") !";
19849 -      throw INTERP_KERNEL::Exception(oss.str());
19850 -    }
19851 -  if(_infos!=compos)
19852 -    {
19853 -      std::ostringstream oss; oss << MSG << "components have same size but are different ! should be \"";
19854 -      std::copy(_infos.begin(),_infos.end(),std::ostream_iterator<std::string>(oss,", "));
19855 -      oss << " But compo in input fields are : ";
19856 -      std::copy(compos.begin(),compos.end(),std::ostream_iterator<std::string>(oss,", "));
19857 -      oss << " !";
19858 -      throw INTERP_KERNEL::Exception(oss.str());
19859 -    }
19860 -}
19861 -
19862 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::checkThatNbOfCompoOfTSMatchThis() const
19863 -{
19864 -  std::size_t sz=_infos.size();
19865 -  int j=0;
19866 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,j++)
19867 -    {
19868 -      const MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
19869 -      if(elt)
19870 -        if(elt->getInfo().size()!=sz)
19871 -          {
19872 -            std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::checkThatNbOfCompoOfTSMatchThis : At pos #" << j << " the number of components is equal to ";
19873 -            oss << elt->getInfo().size() << " whereas it is expected to be equal to " << sz << " !";
19874 -            throw INTERP_KERNEL::Exception(oss.str());
19875 -          }
19876 -    }
19877 -}
19878 -
19879 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::appendFieldNoProfileSBT(const MEDCouplingFieldDouble *field, const DataArray *arr, MEDFileFieldGlobsReal& glob)
19880 -{
19881 -  if(!field)
19882 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::appendFieldNoProfileSBT : input field is NULL !");
19883 -  if(!_time_steps.empty())
19884 -    checkCoherencyOfTinyInfo(field,arr);
19885 -  MEDFileAnyTypeField1TSWithoutSDA *objC(createNew1TSWithoutSDAEmptyInstance());
19886 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> obj(objC);
19887 -  {
19888 -    MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::New(*field));
19889 -    objC->setFieldNoProfileSBT(field->timeDiscrSafe(),ft,arr,glob,*this);
19890 -  }
19891 -  copyTinyInfoFrom(field,arr);
19892 -  _time_steps.push_back(obj);
19893 -}
19894 -
19895 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::appendFieldProfile(const MEDCouplingFieldDouble *field, const DataArray *arr, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob)
19896 -{
19897 -  if(!field)
19898 -    throw INTERP_KERNEL::Exception("MEDFileIntFieldMultiTSWithoutSDA::appendFieldNoProfileSBT : input field is NULL !");
19899 -  if(!_time_steps.empty())
19900 -    checkCoherencyOfTinyInfo(field,arr);
19901 -  MEDFileAnyTypeField1TSWithoutSDA *objC=createNew1TSWithoutSDAEmptyInstance();
19902 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> obj(objC);
19903 -  {
19904 -    MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::NewWithoutCheck(*field));
19905 -    objC->setFieldProfile(field->timeDiscrSafe(),ft,arr,mesh,meshDimRelToMax,profile,glob,*this);
19906 -  }
19907 -  copyTinyInfoFrom(field,arr);
19908 -  setMeshName(objC->getMeshName());
19909 -  _time_steps.push_back(obj);
19910 -}
19911 -
19912 -void MEDFileAnyTypeFieldMultiTSWithoutSDA::setIteration(int i, MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ts)
19913 -{
19914 -  int sz=(int)_time_steps.size();
19915 -  if(i<0 || i>=sz)
19916 -    {
19917 -      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::setIteration : trying to set element at place #" << i << " should be in [0," << sz << ") !";
19918 -      throw INTERP_KERNEL::Exception(oss.str());
19919 -    }
19920 -  const MEDFileAnyTypeField1TSWithoutSDA *tsPtr(ts);
19921 -  if(tsPtr)
19922 -    {
19923 -      if(tsPtr->getNumberOfComponents()!=(int)_infos.size())
19924 -        {
19925 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::setIteration : trying to set element with " << tsPtr->getNumberOfComponents() << " components ! Should be " << _infos.size() <<  " !";
19926 -          throw INTERP_KERNEL::Exception(oss.str());
19927 -        }
19928 -    }
19929 -  _time_steps[i]=ts;
19930 -}
19931 -
19932 -//= MEDFileFieldMultiTSWithoutSDA
19933 -
19934 -/*!
19935 - * entry point for users that want to iterate into MEDFile DataStructure with a reduced overhead because output arrays are extracted (created) specially
19936 - * for the call of this method. That's why the DataArrayDouble instance in returned vector of vector should be dealed by the caller.
19937 - */
19938 -std::vector< std::vector<DataArrayDouble *> > MEDFileFieldMultiTSWithoutSDA::getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
19939 -{
19940 -  const MEDFileAnyTypeField1TSWithoutSDA& myF1TS=getTimeStepEntry(iteration,order);
19941 -  const MEDFileField1TSWithoutSDA *myF1TSC=dynamic_cast<const MEDFileField1TSWithoutSDA *>(&myF1TS);
19942 -  if(!myF1TSC)
19943 -    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::getFieldSplitedByType2 : mismatch of type of field expecting FLOAT64 !");
19944 -  return myF1TSC->getFieldSplitedByType2(mname,types,typesF,pfls,locs);
19945 -}
19946 -
19947 -MEDFileIntFieldMultiTSWithoutSDA *MEDFileFieldMultiTSWithoutSDA::convertToInt() const
19948 -{
19949 -  MCAuto<MEDFileIntFieldMultiTSWithoutSDA> ret(new MEDFileIntFieldMultiTSWithoutSDA);
19950 -  ret->MEDFileAnyTypeFieldMultiTSWithoutSDA::operator =(*this);
19951 -  int i=0;
19952 -  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,i++)
19953 -    {
19954 -      const MEDFileAnyTypeField1TSWithoutSDA *eltToConv(*it);
19955 -      if(eltToConv)
19956 -        {
19957 -          const MEDFileField1TSWithoutSDA *eltToConvC=dynamic_cast<const MEDFileField1TSWithoutSDA *>(eltToConv);
19958 -          if(!eltToConvC)
19959 -            throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::convertToInt : presence of an invalid 1TS type ! Should be of type FLOAT64 !");
19960 -          MCAuto<MEDFileAnyTypeField1TSWithoutSDA> elt=eltToConvC->convertToInt();
19961 -          ret->setIteration(i,elt);
19962 -        }
19963 -    }
19964 -  return ret.retn();
19965 -}
19966 -
19967 -//= MEDFileAnyTypeFieldMultiTS
19968 -
19969 -MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS()
19970 -{
19971 -}
19972 -
19973 -MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
19974 -try:MEDFileFieldGlobsReal(fid)
19975 -{
19976 -  _content=BuildContentFrom(fid,loadAll,ms);
19977 -  loadGlobals(fid);
19978 -}
19979 -catch(INTERP_KERNEL::Exception& e)
19980 -{
19981 -    throw e;
19982 -}
19983 -
19984 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
19985 -{
19986 -  med_field_type typcha;
19987 -  std::vector<std::string> infos;
19988 -  std::string dtunit;
19989 -  std::string meshName;
19990 -  int i(-1);
19991 -  MEDFileAnyTypeField1TS::LocateField(fid,fieldName,i,typcha,infos,dtunit,meshName);
19992 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret;
19993 -  switch(typcha)
19994 -  {
19995 -    case MED_FLOAT64:
19996 -      {
19997 -        ret=new MEDFileFieldMultiTSWithoutSDA(fid,i,loadAll,ms,entities);
19998 -        break;
19999 -      }
20000 -    case MED_INT32:
20001 -      {
20002 -        ret=new MEDFileIntFieldMultiTSWithoutSDA(fid,i,loadAll,ms,entities);
20003 -        break;
20004 -      }
20005 -    case MED_NODE://6432
20006 -      {
20007 -        ret=new MEDFileFloatFieldMultiTSWithoutSDA(fid,i,loadAll,ms,entities);
20008 -        break;
20009 -      }
20010 -    default:
20011 -      {
20012 -        std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::BuildContentFrom(fid,fieldName) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
20013 -        throw INTERP_KERNEL::Exception(oss.str());
20014 -      }
20015 -  }
20016 -  ret->setMeshName(meshName);
20017 -  ret->setDtUnit(dtunit.c_str());
20018 -  return ret.retn();
20019 -}
20020 -
20021 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
20022 -{
20023 -  med_field_type typcha;
20024 -  //
20025 -  std::vector<std::string> infos;
20026 -  std::string dtunit,fieldName,meshName;
20027 -  MEDFileAnyTypeField1TS::LocateField2(fid,0,true,fieldName,typcha,infos,dtunit,meshName);
20028 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret;
20029 -  switch(typcha)
20030 -  {
20031 -    case MED_FLOAT64:
20032 -      {
20033 -        ret=new MEDFileFieldMultiTSWithoutSDA(fid,0,loadAll,ms,0);
20034 -        break;
20035 -      }
20036 -    case MED_INT32:
20037 -      {
20038 -        ret=new MEDFileIntFieldMultiTSWithoutSDA(fid,0,loadAll,ms,0);
20039 -        break;
20040 -      }
20041 -    case MED_NODE://6432
20042 -      {
20043 -        ret=new MEDFileFloatFieldMultiTSWithoutSDA(fid,0,loadAll,ms,0);
20044 -        break;
20045 -      }
20046 -    default:
20047 -      {
20048 -        std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::BuildContentFrom(fid) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of the first field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
20049 -        throw INTERP_KERNEL::Exception(oss.str());
20050 -      }
20051 -  }
20052 -  ret->setMeshName(meshName);
20053 -  ret->setDtUnit(dtunit.c_str());
20054 -  return ret.retn();
20055 -}
20056 -
20057 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c)
20058 -{
20059 -  if(!c)
20060 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent : empty content in input : unable to build a new instance !");
20061 -  if(dynamic_cast<const MEDFileFieldMultiTSWithoutSDA *>(c))
20062 -    {
20063 -      MCAuto<MEDFileFieldMultiTS> ret(MEDFileFieldMultiTS::New());
20064 -      ret->_content=c;  c->incrRef();
20065 -      return ret.retn();
20066 -    }
20067 -  if(dynamic_cast<const MEDFileIntFieldMultiTSWithoutSDA *>(c))
20068 -    {
20069 -      MCAuto<MEDFileIntFieldMultiTS> ret(MEDFileIntFieldMultiTS::New());
20070 -      ret->_content=c;  c->incrRef();
20071 -      return ret.retn();
20072 -    }
20073 -  throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent : internal error ! a content of type different from FLOAT64 and INT32 has been built but not intercepted !");
20074 -}
20075 -
20076 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c, med_idt fid)
20077 -{
20078 -  MEDFileAnyTypeFieldMultiTS *ret(BuildNewInstanceFromContent(c));
20079 -  std::string fileName(FileNameFromFID(fid));
20080 -  ret->setFileName(fileName);
20081 -  return ret;
20082 -}
20083 -
20084 -MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
20085 -try:MEDFileFieldGlobsReal(fid)
20086 -{
20087 -  _content=BuildContentFrom(fid,fieldName,loadAll,ms,entities);
20088 -  loadGlobals(fid);
20089 -}
20090 -catch(INTERP_KERNEL::Exception& e)
20091 -{
20092 -    throw e;
20093 -}
20094 -
20095 -//= MEDFileAnyTypeFieldMultiTS
20096 -
20097 -/*!
20098 - * Returns a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS holding data of the first field
20099 - * that has been read from a specified MED file.
20100 - *  \param [in] fileName - the name of the MED file to read.
20101 - *  \return MEDFileFieldMultiTS * - a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS. The caller
20102 - *          is to delete this field using decrRef() as it is no more needed.
20103 - *  \throw If reading the file fails.
20104 - */
20105 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(const std::string& fileName, bool loadAll)
20106 -{
20107 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
20108 -  return New(fid,loadAll);
20109 -}
20110 -
20111 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(med_idt fid, bool loadAll)
20112 -{
20113 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c(BuildContentFrom(fid,loadAll,0));
20114 -  MCAuto<MEDFileAnyTypeFieldMultiTS> ret(BuildNewInstanceFromContent(c,fid));
20115 -  ret->loadGlobals(fid);
20116 -  return ret.retn();
20117 -}
20118 -
20119 -/*!
20120 - * Returns a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS holding data of a given field
20121 - * that has been read from a specified MED file.
20122 - *  \param [in] fileName - the name of the MED file to read.
20123 - *  \param [in] fieldName - the name of the field to read.
20124 - *  \return MEDFileFieldMultiTS * - a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS. The caller
20125 - *          is to delete this field using decrRef() as it is no more needed.
20126 - *  \throw If reading the file fails.
20127 - *  \throw If there is no field named \a fieldName in the file.
20128 - */
20129 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(const std::string& fileName, const std::string& fieldName, bool loadAll)
20130 -{
20131 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
20132 -  return New(fid,fieldName,loadAll);
20133 -}
20134 -
20135 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(med_idt fid, const std::string& fieldName, bool loadAll)
20136 -{
20137 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c(BuildContentFrom(fid,fieldName,loadAll,0,0));
20138 -  MCAuto<MEDFileAnyTypeFieldMultiTS> ret(BuildNewInstanceFromContent(c,fid));
20139 -  ret->loadGlobals(fid);
20140 -  return ret.retn();
20141 -}
20142 -
20143 -/*!
20144 - * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
20145 - * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
20146 - *
20147 - * \warning this is a shallow copy constructor
20148 - */
20149 -MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS(const MEDFileAnyTypeFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent)
20150 -{
20151 -  if(!shallowCopyOfContent)
20152 -    {
20153 -      const MEDFileAnyTypeFieldMultiTSWithoutSDA *otherPtr(&other);
20154 -      otherPtr->incrRef();
20155 -      _content=const_cast<MEDFileAnyTypeFieldMultiTSWithoutSDA *>(otherPtr);
20156 -    }
20157 -  else
20158 -    {
20159 -      _content=other.shallowCpy();
20160 -    }
20161 -}
20162 -
20163 -MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::contentNotNullBase()
20164 -{
20165 -  MEDFileAnyTypeFieldMultiTSWithoutSDA *ret=_content;
20166 -  if(!ret)
20167 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS : content is expected to be not null !");
20168 -  return ret;
20169 -}
20170 -
20171 -const MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::contentNotNullBase() const
20172 -{
20173 -  const MEDFileAnyTypeFieldMultiTSWithoutSDA *ret=_content;
20174 -  if(!ret)
20175 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS : const content is expected to be not null !");
20176 -  return ret;
20177 -}
20178 -
20179 -std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getPflsReallyUsed() const
20180 -{
20181 -  return contentNotNullBase()->getPflsReallyUsed2();
20182 -}
20183 -
20184 -std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getLocsReallyUsed() const
20185 -{
20186 -  return contentNotNullBase()->getLocsReallyUsed2();
20187 -}
20188 -
20189 -std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getPflsReallyUsedMulti() const
20190 -{
20191 -  return contentNotNullBase()->getPflsReallyUsedMulti2();
20192 -}
20193 -
20194 -std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getLocsReallyUsedMulti() const
20195 -{
20196 -  return contentNotNullBase()->getLocsReallyUsedMulti2();
20197 -}
20198 -
20199 -void MEDFileAnyTypeFieldMultiTS::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
20200 -{
20201 -  contentNotNullBase()->changePflsRefsNamesGen2(mapOfModif);
20202 -}
20203 -
20204 -void MEDFileAnyTypeFieldMultiTS::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
20205 -{
20206 -  contentNotNullBase()->changeLocsRefsNamesGen2(mapOfModif);
20207 -}
20208 -
20209 -int MEDFileAnyTypeFieldMultiTS::getNumberOfTS() const
20210 -{
20211 -  return contentNotNullBase()->getNumberOfTS();
20212 -}
20213 -
20214 -void MEDFileAnyTypeFieldMultiTS::eraseEmptyTS()
20215 -{
20216 -  contentNotNullBase()->eraseEmptyTS();
20217 -}
20218 -
20219 -void MEDFileAnyTypeFieldMultiTS::eraseTimeStepIds(const int *startIds, const int *endIds)
20220 -{
20221 -  contentNotNullBase()->eraseTimeStepIds(startIds,endIds);
20222 -}
20223 -
20224 -void MEDFileAnyTypeFieldMultiTS::eraseTimeStepIds2(int bg, int end, int step)
20225 -{
20226 -  contentNotNullBase()->eraseTimeStepIds2(bg,end,step);
20227 -}
20228 -
20229 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::buildSubPart(const int *startIds, const int *endIds) const
20230 -{
20231 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c=contentNotNullBase()->buildFromTimeStepIds(startIds,endIds);
20232 -  MCAuto<MEDFileAnyTypeFieldMultiTS> ret=shallowCpy();
20233 -  ret->_content=c;
20234 -  return ret.retn();
20235 -}
20236 -
20237 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::buildSubPartSlice(int bg, int end, int step) const
20238 -{
20239 -  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c=contentNotNullBase()->buildFromTimeStepIds2(bg,end,step);
20240 -  MCAuto<MEDFileAnyTypeFieldMultiTS> ret=shallowCpy();
20241 -  ret->_content=c;
20242 -  return ret.retn();
20243 -}
20244 -
20245 -std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTS::getIterations() const
20246 -{
20247 -  return contentNotNullBase()->getIterations();
20248 -}
20249 -
20250 -void MEDFileAnyTypeFieldMultiTS::pushBackTimeSteps(const std::vector<MEDFileAnyTypeField1TS *>& f1ts)
20251 -{
20252 -  for(std::vector<MEDFileAnyTypeField1TS *>::const_iterator it=f1ts.begin();it!=f1ts.end();it++)
20253 -    pushBackTimeStep(*it);
20254 -}
20255 -
20256 -void MEDFileAnyTypeFieldMultiTS::pushBackTimeSteps(MEDFileAnyTypeFieldMultiTS *fmts)
20257 -{
20258 -  if(!fmts)
20259 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::pushBackTimeSteps : Input fmts is NULL !");
20260 -  int nbOfTS(fmts->getNumberOfTS());
20261 -  for(int i=0;i<nbOfTS;i++)
20262 -    {
20263 -      MCAuto<MEDFileAnyTypeField1TS> elt(fmts->getTimeStepAtPos(i));
20264 -      pushBackTimeStep(elt);
20265 -    }
20266 -}
20267 -
20268 -void MEDFileAnyTypeFieldMultiTS::pushBackTimeStep(MEDFileAnyTypeField1TS *f1ts)
20269 -{
20270 -  if(!f1ts)
20271 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep : input pointer is NULL !");
20272 -  checkCoherencyOfType(f1ts);
20273 -  f1ts->incrRef();
20274 -  MCAuto<MEDFileAnyTypeField1TS> f1tsSafe(f1ts);
20275 -  MEDFileAnyTypeField1TSWithoutSDA *c=f1ts->contentNotNullBase();
20276 -  c->incrRef();
20277 -  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> cSafe(c);
20278 -  if(!((MEDFileAnyTypeFieldMultiTSWithoutSDA *)_content))
20279 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep : no content in this !");
20280 -  _content->pushBackTimeStep(cSafe);
20281 -  appendGlobs(*f1ts,1e-12);
20282 -}
20283 -
20284 -void MEDFileAnyTypeFieldMultiTS::synchronizeNameScope()
20285 -{
20286 -  contentNotNullBase()->synchronizeNameScope();
20287 -}
20288 -
20289 -int MEDFileAnyTypeFieldMultiTS::getPosOfTimeStep(int iteration, int order) const
20290 -{
20291 -  return contentNotNullBase()->getPosOfTimeStep(iteration,order);
20292 -}
20293 -
20294 -int MEDFileAnyTypeFieldMultiTS::getPosGivenTime(double time, double eps) const
20295 -{
20296 -  return contentNotNullBase()->getPosGivenTime(time,eps);
20297 -}
20298 -
20299 -int MEDFileAnyTypeFieldMultiTS::getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const
20300 -{
20301 -  return contentNotNullBase()->getNonEmptyLevels(iteration,order,mname,levs);
20302 -}
20303 -
20304 -std::vector< std::vector<TypeOfField> > MEDFileAnyTypeFieldMultiTS::getTypesOfFieldAvailable() const
20305 -{
20306 -  return contentNotNullBase()->getTypesOfFieldAvailable();
20307 -}
20308 -
20309 -std::vector< std::vector< std::pair<int,int> > > MEDFileAnyTypeFieldMultiTS::getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
20310 -{
20311 -  return contentNotNullBase()->getFieldSplitedByType(iteration,order,mname,types,typesF,pfls,locs);
20312 -}
20313 -
20314 -std::string MEDFileAnyTypeFieldMultiTS::getName() const
20315 -{
20316 -  return contentNotNullBase()->getName();
20317 -}
20318 -
20319 -void MEDFileAnyTypeFieldMultiTS::setName(const std::string& name)
20320 -{
20321 -  contentNotNullBase()->setName(name);
20322 -}
20323 -
20324 -std::string MEDFileAnyTypeFieldMultiTS::getDtUnit() const
20325 -{
20326 -  return contentNotNullBase()->getDtUnit();
20327 -}
20328 -
20329 -void MEDFileAnyTypeFieldMultiTS::setDtUnit(const std::string& dtUnit)
20330 -{
20331 -  contentNotNullBase()->setDtUnit(dtUnit);
20332 -}
20333 -
20334 -void MEDFileAnyTypeFieldMultiTS::simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const
20335 -{
20336 -  contentNotNullBase()->simpleRepr(bkOffset,oss,fmtsId);
20337 -}
20338 -
20339 -std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTS::getTimeSteps(std::vector<double>& ret1) const
20340 -{
20341 -  return contentNotNullBase()->getTimeSteps(ret1);
20342 -}
20343 -
20344 -std::string MEDFileAnyTypeFieldMultiTS::getMeshName() const
20345 -{
20346 -  return contentNotNullBase()->getMeshName();
20347 -}
20348 -
20349 -void MEDFileAnyTypeFieldMultiTS::setMeshName(const std::string& newMeshName)
20350 -{
20351 -  contentNotNullBase()->setMeshName(newMeshName);
20352 -}
20353 -
20354 -bool MEDFileAnyTypeFieldMultiTS::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
20355 -{
20356 -  return contentNotNullBase()->changeMeshNames(modifTab);
20357 -}
20358 -
20359 -const std::vector<std::string>& MEDFileAnyTypeFieldMultiTS::getInfo() const
20360 -{
20361 -  return contentNotNullBase()->getInfo();
20362 -}
20363 -
20364 -bool MEDFileAnyTypeFieldMultiTS::presenceOfMultiDiscPerGeoType() const
20365 -{
20366 -  return contentNotNullBase()->presenceOfMultiDiscPerGeoType();
20367 -}
20368 -
20369 -void MEDFileAnyTypeFieldMultiTS::setInfo(const std::vector<std::string>& info)
20370 -{
20371 -  return contentNotNullBase()->setInfo(info);
20372 -}
20373 -
20374 -int MEDFileAnyTypeFieldMultiTS::getNumberOfComponents() const
20375 -{
20376 -  const std::vector<std::string> ret=getInfo();
20377 -  return (int)ret.size();
20378 -}
20379 -
20380 -void MEDFileAnyTypeFieldMultiTS::writeLL(med_idt fid) const
20381 -{
20382 -  writeGlobals(fid,*this);
20383 -  contentNotNullBase()->writeLL(fid,*this);
20384 -}
20385 -
20386 -/*!
20387 - * This method alloc the arrays and load potentially huge arrays contained in this field.
20388 - * This method should be called when a MEDFileAnyTypeFieldMultiTS::New constructor has been with false as the last parameter.
20389 - * This method can be also called to refresh or reinit values from a file.
20390 - * 
20391 - * \throw If the fileName is not set or points to a non readable MED file.
20392 - */
20393 -void MEDFileAnyTypeFieldMultiTS::loadArrays()
20394 -{
20395 -  if(getFileName().empty())
20396 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::loadArrays : the structure does not come from a file !");
20397 -  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
20398 -  contentNotNullBase()->loadBigArraysRecursively(fid,*contentNotNullBase());
20399 -}
20400 -
20401 -/*!
20402 - * This method behaves as MEDFileAnyTypeFieldMultiTS::loadArrays does, the first call, if \a this was built using a file without loading big arrays.
20403 - * But once data loaded once, this method does nothing.
20404 - * 
20405 - * \throw If the fileName is not set or points to a non readable MED file.
20406 - * \sa MEDFileAnyTypeFieldMultiTS::loadArrays, MEDFileAnyTypeFieldMultiTS::unloadArrays
20407 - */
20408 -void MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary()
20409 -{
20410 -  if(!getFileName().empty())
20411 -    {
20412 -      MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
20413 -      contentNotNullBase()->loadBigArraysRecursivelyIfNecessary(fid,*contentNotNullBase());
20414 -    }
20415 -}
20416 -
20417 -/*!
20418 - * This method releases potentially big data arrays and so returns to the same heap memory than status loaded with 'loadAll' parameter set to false.
20419 - * \b WARNING, this method does release arrays even if \a this does not come from a load of a MED file.
20420 - * So this method can lead to a loss of data. If you want to unload arrays safely call MEDFileAnyTypeFieldMultiTS::unloadArraysWithoutDataLoss instead.
20421 - * 
20422 - * \sa MEDFileAnyTypeFieldMultiTS::loadArrays, MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary, MEDFileAnyTypeFieldMultiTS::unloadArraysWithoutDataLoss
20423 - */
20424 -void MEDFileAnyTypeFieldMultiTS::unloadArrays()
20425 -{
20426 -  contentNotNullBase()->unloadArrays();
20427 -}
20428 -
20429 -/*!
20430 - * This method potentially releases big data arrays if \a this is coming from a file. If \a this has been built from scratch this method will have no effect.
20431 - * This method is the symetrical method of MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary.
20432 - * This method is useful to reduce \b safely amount of heap memory necessary for \a this by using MED file as database.
20433 - * 
20434 - * \sa MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary
20435 - */
20436 -void MEDFileAnyTypeFieldMultiTS::unloadArraysWithoutDataLoss()
20437 -{
20438 -  if(!getFileName().empty())
20439 -    contentNotNullBase()->unloadArrays();
20440 -}
20441 -
20442 -std::string MEDFileAnyTypeFieldMultiTS::simpleRepr() const
20443 -{
20444 -  std::ostringstream oss;
20445 -  contentNotNullBase()->simpleRepr(0,oss,-1);
20446 -  simpleReprGlobs(oss);
20447 -  return oss.str();
20448 -}
20449 -
20450 -std::size_t MEDFileAnyTypeFieldMultiTS::getHeapMemorySizeWithoutChildren() const
20451 -{
20452 -  return MEDFileFieldGlobsReal::getHeapMemorySizeWithoutChildren();
20453 -}
20454 -
20455 -std::vector<const BigMemoryObject *> MEDFileAnyTypeFieldMultiTS::getDirectChildrenWithNull() const
20456 -{
20457 -  std::vector<const BigMemoryObject *> ret(MEDFileFieldGlobsReal::getDirectChildrenWithNull());
20458 -  ret.push_back((const MEDFileAnyTypeFieldMultiTSWithoutSDA *)_content);
20459 -  return ret;
20460 -}
20461 -
20462 -/*!
20463 - * This method returns as MEDFileAnyTypeFieldMultiTS new instances as number of components in \a this.
20464 - * The returned instances are deep copy of \a this except that for globals that are share with those contained in \a this.
20465 - * ** WARNING ** do no forget to rename the ouput instances to avoid to write n-times in the same MED file field !
20466 - */
20467 -std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > MEDFileAnyTypeFieldMultiTS::splitComponents() const
20468 -{
20469 -  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
20470 -  if(!content)
20471 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::splitComponents : no content in this ! Unable to split components !");
20472 -  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > contentsSplit=content->splitComponents();
20473 -  std::size_t sz(contentsSplit.size());
20474 -  std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret(sz);
20475 -  for(std::size_t i=0;i<sz;i++)
20476 -    {
20477 -      ret[i]=shallowCpy();
20478 -      ret[i]->_content=contentsSplit[i];
20479 -    }
20480 -  return ret;
20481 -}
20482 -
20483 -/*!
20484 - * This method returns as MEDFileAnyTypeFieldMultiTS new instances as number of discretizations over time steps in \a this.
20485 - * The returned instances are shallow copied of \a this included globals that are share with those contained in \a this.
20486 - */
20487 -std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > MEDFileAnyTypeFieldMultiTS::splitDiscretizations() const
20488 -{
20489 -  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
20490 -  if(!content)
20491 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::splitDiscretizations : no content in this ! Unable to split discretizations !");
20492 -  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > contentsSplit(content->splitDiscretizations());
20493 -  std::size_t sz(contentsSplit.size());
20494 -  std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret(sz);
20495 -  for(std::size_t i=0;i<sz;i++)
20496 -    {
20497 -      ret[i]=shallowCpy();
20498 -      ret[i]->_content=contentsSplit[i];
20499 -    }
20500 -  return ret;
20501 -}
20502 -
20503 -/*!
20504 - * This method returns as MEDFileAnyTypeFieldMultiTS new instances as number of sub-discretizations over time steps in \a this.
20505 - * The returned instances are shallow copied of \a this included globals that are share with those contained in \a this.
20506 - */
20507 -std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > MEDFileAnyTypeFieldMultiTS::splitMultiDiscrPerGeoTypes() const
20508 -{
20509 -  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
20510 -  if(!content)
20511 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::splitMultiDiscrPerGeoTypes : no content in this ! Unable to split discretizations !");
20512 -  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > contentsSplit(content->splitMultiDiscrPerGeoTypes());
20513 -  std::size_t sz(contentsSplit.size());
20514 -  std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret(sz);
20515 -  for(std::size_t i=0;i<sz;i++)
20516 -    {
20517 -      ret[i]=shallowCpy();
20518 -      ret[i]->_content=contentsSplit[i];
20519 -    }
20520 -  return ret;
20521 -}
20522 -
20523 -MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::deepCopy() const
20524 -{
20525 -  MCAuto<MEDFileAnyTypeFieldMultiTS> ret=shallowCpy();
20526 -  if((const MEDFileAnyTypeFieldMultiTSWithoutSDA *)_content)
20527 -    ret->_content=_content->deepCopy();
20528 -  ret->deepCpyGlobs(*this);
20529 -  return ret.retn();
20530 -}
20531 -
20532 -MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> MEDFileAnyTypeFieldMultiTS::getContent()
20533 -{
20534 -  return _content;
20535 -}
20536 -
20537 -/*!
20538 - * Returns a new MEDFileField1TS or MEDFileIntField1TS holding data of a given time step of \a this field.
20539 - *  \param [in] iteration - the iteration number of a required time step.
20540 - *  \param [in] order - the iteration order number of required time step.
20541 - *  \return MEDFileField1TS * or MEDFileIntField1TS *- a new instance of MEDFileField1TS or MEDFileIntField1TS. The caller is to
20542 - *          delete this field using decrRef() as it is no more needed.
20543 - *  \throw If there is no required time step in \a this field.
20544 - */
20545 -MEDFileAnyTypeField1TS *MEDFileAnyTypeFieldMultiTS::getTimeStep(int iteration, int order) const
20546 -{
20547 -  int pos=getPosOfTimeStep(iteration,order);
20548 -  return getTimeStepAtPos(pos);
20549 -}
20550 -
20551 -/*!
20552 - * Returns a new MEDFileField1TS or MEDFileIntField1TS holding data of a given time step of \a this field.
20553 - *  \param [in] time - the time of the time step of interest.
20554 - *  \param [in] eps - a precision used to compare time values.
20555 - *  \return MEDFileField1TS * - a new instance of MEDFileField1TS. The caller is to
20556 - *          delete this field using decrRef() as it is no more needed.
20557 - *  \throw If there is no required time step in \a this field.
20558 - */
20559 -MEDFileAnyTypeField1TS *MEDFileAnyTypeFieldMultiTS::getTimeStepGivenTime(double time, double eps) const
20560 -{
20561 -  int pos=getPosGivenTime(time,eps);
20562 -  return getTimeStepAtPos(pos);
20563 -}
20564 -
20565 -/*!
20566 - * This method groups not null items in \a vectFMTS per time step series. Two time series are considered equal if the list of their pair of integers iteration,order are equal.
20567 - * The float64 value of time attached to the pair of integers are not considered here.
20568 - * WARNING the returned pointers are not incremented. The caller is \b not responsible to deallocate them ! This method only reorganizes entries in \a vectFMTS.
20569 - *
20570 - * \param [in] vectFMTS - vector of not null fields defined on a same global data pointer.
20571 - * \throw If there is a null pointer in \a vectFMTS.
20572 - */
20573 -std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS)
20574 -{
20575 -  static const char msg[]="MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries : presence of null instance in input vector !";
20576 -  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret;
20577 -  std::list<MEDFileAnyTypeFieldMultiTS *> lstFMTS(vectFMTS.begin(),vectFMTS.end());
20578 -  while(!lstFMTS.empty())
20579 -    {
20580 -      std::list<MEDFileAnyTypeFieldMultiTS *>::iterator it(lstFMTS.begin());
20581 -      MEDFileAnyTypeFieldMultiTS *curIt(*it);
20582 -      if(!curIt)
20583 -        throw INTERP_KERNEL::Exception(msg);
20584 -      std::vector< std::pair<int,int> > refIts=curIt->getIterations();
20585 -      std::vector<MEDFileAnyTypeFieldMultiTS *> elt;
20586 -      elt.push_back(curIt); it=lstFMTS.erase(it);
20587 -      while(it!=lstFMTS.end())
20588 -        {
20589 -          curIt=*it;
20590 -          if(!curIt)
20591 -            throw INTERP_KERNEL::Exception(msg);
20592 -          std::vector< std::pair<int,int> > curIts=curIt->getIterations();
20593 -          if(refIts==curIts)
20594 -            { elt.push_back(curIt); it=lstFMTS.erase(it); }
20595 -          else
20596 -            it++;
20597 -        }
20598 -      ret.push_back(elt);
20599 -    }
20600 -  return ret;
20601 -}
20602 -
20603 -/*!
20604 - * This method splits the input list \a vectFMTS considering the aspect of the geometrical support over time.
20605 - * All returned instances in a subvector can be safely loaded, rendered along time
20606 - * All items must be defined on the same time step ids ( see MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries method ).
20607 - * Each item in \a vectFMTS is expected to have one and exactly one spatial discretization along time.
20608 - * All items in \a vectFMTS must lie on the mesh (located by meshname and time step) and compatible with the input mesh \a mesh (having the same name than those in items).
20609 - * All items in \a vectFMTS whose spatial discretization is not ON_NODES will appear once.
20610 - * For items in \a vectFMTS that are ON_NODES it is possible to appear several times (more than once or once) in the returned vector.
20611 - *
20612 - * \param [in] vectFMTS - list of multi times step part all defined each on a same spatial discretization along time and pointing to a mesh whose name is equal to \c mesh->getName().
20613 - * \param [in] mesh - the mesh shared by all items in \a vectFMTS across time.
20614 - * \param [out] fsc - A vector having same size than returned vector. It specifies the support comporator of the corresponding vector of MEDFileAnyTypeFieldMultiTS in returned vector of vector.
20615 - * \return - A vector of vector of objects that contains the same pointers (objects) than thoose in \a vectFMTS except that there are organized differently. So pointers included in returned vector of vector should \b not been dealt by the caller.
20616 - *
20617 - * \throw If an element in \a vectFMTS has not only one spatial discretization set.
20618 - * \throw If an element in \a vectFMTS change of spatial discretization along time.
20619 - * \throw If an element in \a vectFMTS lies on a mesh with meshname different from those in \a mesh.
20620 - * \thorw If some elements in \a vectFMTS do not have the same times steps.
20621 - * \throw If mesh is null.
20622 - * \throw If an element in \a vectFMTS is null.
20623 - * \sa MEDFileAnyTypeFieldMultiTS::AreOnSameSupportAcrossTime
20624 - */
20625 -std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& fsc)
20626 -{
20627 -  static const char msg[]="MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport : presence of a null instance in the input vector !";
20628 -  if(!mesh)
20629 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport : input mesh is null !");
20630 -  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret;
20631 -  if(vectFMTS.empty())
20632 -    return ret;
20633 -  std::vector<MEDFileAnyTypeFieldMultiTS *>::const_iterator it(vectFMTS.begin());
20634 -  MEDFileAnyTypeFieldMultiTS *frstElt(*it);
20635 -  if(!frstElt)
20636 -    throw INTERP_KERNEL::Exception(msg);
20637 -  std::size_t i=0;
20638 -  std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTSNotNodes;
20639 -  std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTSNodes;
20640 -  for(;it!=vectFMTS.end();it++,i++)
20641 -    {
20642 -      if(!(*it))
20643 -        throw INTERP_KERNEL::Exception(msg);
20644 -      TypeOfField tof0,tof1;
20645 -      if(CheckSupportAcrossTime(frstElt,*it,mesh,tof0,tof1)>0)
20646 -        {
20647 -          if(tof1!=ON_NODES)
20648 -            vectFMTSNotNodes.push_back(*it);
20649 -          else
20650 -            vectFMTSNodes.push_back(*it);
20651 -        }
20652 -      else
20653 -        vectFMTSNotNodes.push_back(*it);
20654 -    }
20655 -  std::vector< MCAuto<MEDFileFastCellSupportComparator> > cmps;
20656 -  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > retCell=SplitPerCommonSupportNotNodesAlg(vectFMTSNotNodes,mesh,cmps);
20657 -  ret=retCell;
20658 -  for(std::vector<MEDFileAnyTypeFieldMultiTS *>::const_iterator it2=vectFMTSNodes.begin();it2!=vectFMTSNodes.end();it2++)
20659 -    {
20660 -      i=0;
20661 -      bool isFetched(false);
20662 -      for(std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> >::const_iterator it0=retCell.begin();it0!=retCell.end();it0++,i++)
20663 -        {
20664 -          if((*it0).empty())
20665 -            throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport : internal error !");
20666 -          if(cmps[i]->isCompatibleWithNodesDiscr(*it2))
20667 -            { ret[i].push_back(*it2); isFetched=true; }
20668 -        }
20669 -      if(!isFetched)
20670 -        {
20671 -          std::vector<MEDFileAnyTypeFieldMultiTS *> tmp(1,*it2);
20672 -          MCAuto<MEDFileMeshStruct> tmp2(MEDFileMeshStruct::New(mesh));
20673 -          ret.push_back(tmp); retCell.push_back(tmp); cmps.push_back(MEDFileFastCellSupportComparator::New(tmp2,*it2));
20674 -        }
20675 -    }
20676 -  fsc=cmps;
20677 -  return ret;
20678 -}
20679 -
20680 -/*!
20681 - * WARNING no check here. The caller must be sure that all items in vectFMTS are coherent each other in time steps, only one same spatial discretization and not ON_NODES.
20682 - * \param [out] cmps - same size than the returned vector.
20683 - */
20684 -std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupportNotNodesAlg(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& cmps)
20685 -{
20686 -  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret;
20687 -  std::list<MEDFileAnyTypeFieldMultiTS *> lstFMTS(vectFMTS.begin(),vectFMTS.end());
20688 -  while(!lstFMTS.empty())
20689 -    {
20690 -      std::list<MEDFileAnyTypeFieldMultiTS *>::iterator it(lstFMTS.begin());
20691 -      MEDFileAnyTypeFieldMultiTS *ref(*it);
20692 -      std::vector<MEDFileAnyTypeFieldMultiTS *> elt;
20693 -      elt.push_back(ref); it=lstFMTS.erase(it);
20694 -      MCAuto<MEDFileMeshStruct> mst(MEDFileMeshStruct::New(mesh));
20695 -      MCAuto<MEDFileFastCellSupportComparator> cmp(MEDFileFastCellSupportComparator::New(mst,ref));
20696 -      while(it!=lstFMTS.end())
20697 -        {
20698 -          MEDFileAnyTypeFieldMultiTS *curIt(*it);
20699 -          if(cmp->isEqual(curIt))
20700 -            { elt.push_back(curIt); it=lstFMTS.erase(it); }
20701 -          else
20702 -            it++;
20703 -        }
20704 -      ret.push_back(elt); cmps.push_back(cmp);
20705 -    }
20706 -  return ret;
20707 -}
20708 -
20709 -/*!
20710 - * This method scan the two main structs along time of \a f0 and \a f1 to see if there are all lying on the same mesh along time than those in \a mesh.
20711 - * \a f0 and \a f1 must be defined each only on a same spatial discretization even if this can be different each other.
20712 - *
20713 - * \throw If \a f0 or \a f1 has not only one spatial discretization set.
20714 - * \throw If \a f0 or \a f1 change of spatial discretization along time.
20715 - * \throw If \a f0 or \a f1 on a mesh with meshname different from those in \a mesh.
20716 - * \thorw If \a f0 and \a f1 do not have the same times steps.
20717 - * \throw If mesh is null.
20718 - * \throw If \a f0 or \a f1 is null.
20719 - * \sa MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport
20720 - */
20721 -int MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime(MEDFileAnyTypeFieldMultiTS *f0, MEDFileAnyTypeFieldMultiTS *f1, const MEDFileMesh *mesh, TypeOfField& tof0, TypeOfField& tof1)
20722 -{
20723 -  if(!mesh)
20724 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : input mesh is null !");
20725 -  if(!f0 || !f1)
20726 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : presence of null instance in fields over time !");
20727 -  if(f0->getMeshName()!=mesh->getName())
20728 -    {
20729 -      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : first field points to mesh \""<< f0->getMeshName() << "\" and input mesh to compare has name \"" << mesh->getName() << "\" !";
20730 -      throw INTERP_KERNEL::Exception(oss.str());
20731 -    }
20732 -  if(f1->getMeshName()!=mesh->getName())
20733 -    {
20734 -      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : second field points to mesh \""<< f1->getMeshName() << "\" and input mesh to compare has name \"" << mesh->getName() << "\" !";
20735 -      throw INTERP_KERNEL::Exception(oss.str());
20736 -    }
20737 -  int nts=f0->getNumberOfTS();
20738 -  if(nts!=f1->getNumberOfTS())
20739 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : number of time steps are not the same !");
20740 -  if(nts==0)
20741 -    return nts;
20742 -  for(int i=0;i<nts;i++)
20743 -    {
20744 -      MCAuto<MEDFileAnyTypeField1TS> f0cur=f0->getTimeStepAtPos(i);
20745 -      MCAuto<MEDFileAnyTypeField1TS> f1cur=f1->getTimeStepAtPos(i);
20746 -      std::vector<TypeOfField> tofs0(f0cur->getTypesOfFieldAvailable()),tofs1(f1cur->getTypesOfFieldAvailable());
20747 -      if(tofs0.size()!=1 || tofs1.size()!=1)
20748 -        throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : All time steps must be defined on only one spatial discretization !");
20749 -      if(i!=0)
20750 -        {
20751 -          if(tof0!=tofs0[0] || tof1!=tofs1[0])
20752 -            throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : Across times steps MEDFileAnyTypeFieldMultiTS instances have to keep the same unique spatial discretization !");
20753 -        }
20754 -      else
20755 -        { tof0=tofs0[0]; tof1=tofs1[0]; }
20756 -      if(f0cur->getMeshIteration()!=mesh->getIteration() || f0cur->getMeshOrder()!=mesh->getOrder())
20757 -        {
20758 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : first field points to mesh time step (" << f0cur->getMeshIteration() << ","<< f0cur->getMeshOrder() << ") whereas input mesh points to time step (" << mesh->getIteration() << "," << mesh->getOrder() << ") !";
20759 -          throw INTERP_KERNEL::Exception(oss.str());
20760 -        }
20761 -      if(f1cur->getMeshIteration()!=mesh->getIteration() || f1cur->getMeshOrder()!=mesh->getOrder())
20762 -        {
20763 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : second field points to mesh time step (" << f1cur->getMeshIteration() << ","<< f1cur->getMeshOrder() << ") whereas input mesh points to time step (" << mesh->getIteration() << "," << mesh->getOrder() << ") !";
20764 -          throw INTERP_KERNEL::Exception(oss.str());
20765 -        }
20766 -      if(f0cur->getIteration()!=f1cur->getIteration() || f0cur->getOrder()!=f1cur->getOrder())
20767 -        {
20768 -          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : all the time steps must be the same ! it is not the case (" << f0cur->getIteration() << "," << f0cur->getOrder() << ")!=(" << f1cur->getIteration() << "," << f1cur->getOrder() << ") !";
20769 -          throw INTERP_KERNEL::Exception(oss.str());
20770 -        }
20771 -    }
20772 -  return nts;
20773 -}
20774 -
20775 -template<class T>
20776 -MCAuto<MEDFileAnyTypeField1TS> AggregateHelperF1TS(const std::vector< typename MLFieldTraits<T>::F1TSType const *>& f1tss, const std::vector< std::vector< std::pair<int,int> > >& dts)
20777 -{
20778 -  MCAuto< typename MLFieldTraits<T>::F1TSType > ret(MLFieldTraits<T>::F1TSType::New());
20779 -  if(f1tss.empty())
20780 -    throw INTERP_KERNEL::Exception("AggregateHelperF1TS : empty vector !");
20781 -  std::size_t sz(f1tss.size()),i(0);
20782 -  std::vector< typename MLFieldTraits<T>::F1TSWSDAType const *> f1tsw(sz);
20783 -  for(typename std::vector< typename MLFieldTraits<T>::F1TSType const *>::const_iterator it=f1tss.begin();it!=f1tss.end();it++,i++)
20784 -    {
20785 -      typename MLFieldTraits<T>::F1TSType const *elt(*it);
20786 -      if(!elt)
20787 -        throw INTERP_KERNEL::Exception("AggregateHelperF1TS : presence of a null pointer !");
20788 -      f1tsw[i]=dynamic_cast<typename MLFieldTraits<T>::F1TSWSDAType const *>(elt->contentNotNullBase());
20789 -    }
20790 -  typename MLFieldTraits<T>::F1TSWSDAType *retc(dynamic_cast<typename MLFieldTraits<T>::F1TSWSDAType *>(ret->contentNotNullBase()));
20791 -  if(!retc)
20792 -    throw INTERP_KERNEL::Exception("AggregateHelperF1TS : internal error 1 !");
20793 -  retc->aggregate(f1tsw,dts);
20794 -  ret->setDtUnit(f1tss[0]->getDtUnit());
20795 -  return DynamicCast<typename MLFieldTraits<T>::F1TSType , MEDFileAnyTypeField1TS>(ret);
20796 -}
20797 -
20798 -template<class T>
20799 -MCAuto< MEDFileAnyTypeFieldMultiTS > AggregateHelperFMTS(const std::vector< typename MLFieldTraits<T>::FMTSType const *>& fmtss, const std::vector< std::vector< std::pair<int,int> > >& dts)
20800 -{
20801 -  MCAuto< typename MLFieldTraits<T>::FMTSType > ret(MLFieldTraits<T>::FMTSType::New());
20802 -  if(fmtss.empty())
20803 -    throw INTERP_KERNEL::Exception("AggregateHelperFMTS : empty vector !");
20804 -  std::size_t sz(fmtss.size());
20805 -  for(typename std::vector< typename MLFieldTraits<T>::FMTSType const *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++)
20806 -    {
20807 -      typename MLFieldTraits<T>::FMTSType const *elt(*it);
20808 -      if(!elt)
20809 -        throw INTERP_KERNEL::Exception("AggregateHelperFMTS : presence of null pointer !");
20810 -    }
20811 -  int nbTS(fmtss[0]->getNumberOfTS());
20812 -  for(typename std::vector< typename MLFieldTraits<T>::FMTSType const *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++)
20813 -    if((*it)->getNumberOfTS()!=nbTS)
20814 -      throw INTERP_KERNEL::Exception("AggregateHelperFMTS : all fields must have the same number of TS !");
20815 -  for(int iterTS=0;iterTS<nbTS;iterTS++)
20816 -    {
20817 -      std::size_t i(0);
20818 -      std::vector< typename MLFieldTraits<T>::F1TSType const *> f1tss(sz);
20819 -      std::vector< MCAuto<typename MLFieldTraits<T>::F1TSType> > f1tss2(sz);
20820 -      for(typename std::vector< typename MLFieldTraits<T>::FMTSType const *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++,i++)
20821 -        { f1tss2[i]=(*it)->getTimeStepAtPos(iterTS); f1tss[i]=f1tss2[i]; }
20822 -      MCAuto<MEDFileAnyTypeField1TS> f1ts(AggregateHelperF1TS<T>(f1tss,dts));
20823 -      ret->pushBackTimeStep(f1ts);
20824 -      ret->setDtUnit(f1ts->getDtUnit());
20825 -    }
20826 -  return DynamicCast<typename MLFieldTraits<T>::FMTSType , MEDFileAnyTypeFieldMultiTS>(ret);
20827 -}
20828 -
20829 -/*!
20830 - * \a dts and \a ftmss are expected to have same size.
20831 - */
20832 -MCAuto<MEDFileAnyTypeFieldMultiTS> MEDFileAnyTypeFieldMultiTS::Aggregate(const std::vector<const MEDFileAnyTypeFieldMultiTS *>& fmtss, const std::vector< std::vector< std::pair<int,int> > >& dts)
20833 -{
20834 -  if(fmtss.empty())
20835 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : input vector is empty !");
20836 -  std::size_t sz(fmtss.size());
20837 -  std::vector<const MEDFileFieldMultiTS *> fmtss1;
20838 -  std::vector<const MEDFileIntFieldMultiTS *> fmtss2;
20839 -  for(std::vector<const MEDFileAnyTypeFieldMultiTS *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++)
20840 -    {
20841 -      if(!(*it))
20842 -        throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : presence of null instance in input vector !");
20843 -      const MEDFileFieldMultiTS *elt1(dynamic_cast<const MEDFileFieldMultiTS *>(*it));
20844 -      if(elt1)
20845 -        {
20846 -          fmtss1.push_back(elt1);
20847 -          continue;
20848 -        }
20849 -      const MEDFileIntFieldMultiTS *elt2(dynamic_cast<const MEDFileIntFieldMultiTS *>(*it));
20850 -      if(elt2)
20851 -        {
20852 -          fmtss2.push_back(elt2);
20853 -          continue;
20854 -        }
20855 -      throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : not recognized type !");
20856 -    }
20857 -  if(fmtss1.size()!=sz && fmtss2.size()!=sz)
20858 -    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : type of data is not homogeneous !");
20859 -  if(fmtss1.size()==sz)
20860 -    return AggregateHelperFMTS<double>(fmtss1,dts);
20861 -  if(fmtss2.size()!=sz)
20862 -    return AggregateHelperFMTS<int>(fmtss2,dts);
20863 -  throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : not implemented yet !");
20864 -}
20865 -
20866 -MEDFileAnyTypeFieldMultiTSIterator *MEDFileAnyTypeFieldMultiTS::iterator()
20867 -{
20868 -  return new MEDFileAnyTypeFieldMultiTSIterator(this);
20869 -}
20870 -
20871 -//= MEDFileFieldMultiTS
20872 -
20873 -MEDFileAnyTypeFieldMultiTS *MEDFileFieldMultiTS::shallowCpy() const
20874 -{
20875 -  return new MEDFileFieldMultiTS(*this);
20876 -}
20877 -
20878 -/*!
20879 - * This method performs a copy with datatype modification ( float64->int32 ) of \a this. The globals information are copied
20880 - * following the given input policy.
20881 - *
20882 - * \param [in] isDeepCpyGlobs - a boolean that indicates the behaviour concerning globals (profiles and localizations)
20883 - *                            By default (true) the globals are deeply copied.
20884 - * \return MEDFileIntFieldMultiTS * - a new object that is the result of the conversion of \a this to int32 field.
20885 - */
20886 -MEDFileIntFieldMultiTS *MEDFileFieldMultiTS::convertToInt(bool isDeepCpyGlobs) const
20887 -{
20888 -  MCAuto<MEDFileIntFieldMultiTS> ret;
20889 -  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
20890 -  if(content)
20891 -    {
20892 -      const MEDFileFieldMultiTSWithoutSDA *contc=dynamic_cast<const MEDFileFieldMultiTSWithoutSDA *>(content);
20893 -      if(!contc)
20894 -        throw INTERP_KERNEL::Exception("MEDFileFieldMultiTS::convertToInt : the content inside this is not FLOAT64 ! This is incoherent !");
20895 -      MCAuto<MEDFileIntFieldMultiTSWithoutSDA> newc(contc->convertToInt());
20896 -      ret=static_cast<MEDFileIntFieldMultiTS *>(MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent((MEDFileIntFieldMultiTSWithoutSDA *)newc));
20897 -    }
20898 -  else
20899 -    ret=MEDFileIntFieldMultiTS::New();
20900 -  if(isDeepCpyGlobs)
20901 -    ret->deepCpyGlobs(*this);
20902 -  else
20903 -    ret->shallowCpyGlobs(*this);
20904 -  return ret.retn();
20905 -}
20906 -
20907 -MEDFileFieldMultiTS::MEDFileFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
20908 -try:MEDFileTemplateFieldMultiTS<double>(fid,loadAll,ms)
20909 -{
20910 -}
20911 -catch(INTERP_KERNEL::Exception& e)
20912 -{ throw e; }
20913 -
20914 -MEDFileFieldMultiTS::MEDFileFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
20915 -try:MEDFileTemplateFieldMultiTS<double>(fid,fieldName,loadAll,ms,entities)
20916 -{
20917 -}
20918 -catch(INTERP_KERNEL::Exception& e)
20919 -{ throw e; }
20920 -
20921 -MEDFileFieldMultiTS::MEDFileFieldMultiTS(const MEDFileFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent):MEDFileTemplateFieldMultiTS<double>(other,shallowCopyOfContent)
20922 -{
20923 -}
20924 -
20925 -std::vector< std::vector<DataArrayDouble *> > MEDFileFieldMultiTS::getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
20926 -{
20927 -  return contentNotNull()->getFieldSplitedByType2(iteration,order,mname,types,typesF,pfls,locs);
20928 -}
20929 -
20930 -//= MEDFileAnyTypeFieldMultiTSIterator
20931 -
20932 -MEDFileAnyTypeFieldMultiTSIterator::MEDFileAnyTypeFieldMultiTSIterator(MEDFileAnyTypeFieldMultiTS *fmts):_fmts(fmts),_iter_id(0),_nb_iter(0)
20933 -{
20934 -  if(fmts)
20935 -    {
20936 -      fmts->incrRef();
20937 -      _nb_iter=fmts->getNumberOfTS();
20938 -    }
20939 -}
20940 -
20941 -MEDFileAnyTypeFieldMultiTSIterator::~MEDFileAnyTypeFieldMultiTSIterator() 
20942 -{
20943 -}
20944 -
20945 -MEDFileAnyTypeField1TS *MEDFileAnyTypeFieldMultiTSIterator::nextt()
20946 -{
20947 -  if(_iter_id<_nb_iter)
20948 -    {
20949 -      MEDFileAnyTypeFieldMultiTS *fmts(_fmts);
20950 -      if(fmts)
20951 -        return fmts->getTimeStepAtPos(_iter_id++);
20952 -      else
20953 -        return 0;
20954 -    }
20955 -  else
20956 -    return 0;
20957 -}
20958 -
20959 -//= MEDFileIntFieldMultiTS
20960 -
20961  //= MEDFileFields
20962  
20963  MEDFileFields *MEDFileFields::New()
20964 @@ -9187,11 +276,19 @@
20965              _fields[i]=MEDFileIntFieldMultiTSWithoutSDA::New(fid,fieldName,meshName,typcha,infos,nbOfStep,dtunit,loadAll,ms,entities);
20966              break;
20967            }
20968 -        case MED_NODE://6432
20969 +        case MED_FLOAT32:
20970            {
20971              _fields[i]=MEDFileFloatFieldMultiTSWithoutSDA::New(fid,fieldName,meshName,typcha,infos,nbOfStep,dtunit,loadAll,ms,entities);
20972              break;
20973            }
20974 +        case MED_INT:
20975 +          {
20976 +            if(sizeof(med_int)==sizeof(int))
20977 +              {
20978 +                _fields[i]=MEDFileIntFieldMultiTSWithoutSDA::New(fid,fieldName,meshName,typcha,infos,nbOfStep,dtunit,loadAll,ms,entities);
20979 +                break;
20980 +              }
20981 +          }
20982          default:
20983            {
20984              std::ostringstream oss; oss << "constructor MEDFileFields(fileName) : file \'" << FileNameFromFID(fid) << "\' at pos #" << i << " field has name \'" << fieldName << "\' but the type of field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
20985 @@ -9282,7 +379,7 @@
20986  
20987  /*!
20988   * This method potentially releases big data arrays if \a this is coming from a file. If \a this has been built from scratch this method will have no effect.
20989 - * This method is the symetrical method of MEDFileFields::loadArraysIfNecessary.
20990 + * This method is the symmetrical method of MEDFileFields::loadArraysIfNecessary.
20991   * This method is useful to reduce \b safely amount of heap memory necessary for \a this by using MED file as database.
20992   * 
20993   * \sa MEDFileFields::loadArraysIfNecessary
20994 @@ -9456,7 +553,7 @@
20995   *             This code corresponds to the distribution of types in the corresponding mesh.
20996   * \param [in] newCode idem to param \a oldCode except that here the new distribution is given.
20997   * \param [in] renumO2N the old to new renumber array.
20998 - * \return If true a renumbering has been performed. The structure in \a this has been modified. If false, nothing has been done: it is typically the case if \a meshName is not refered by any 
20999 + * \return If true a renumbering has been performed. The structure in \a this has been modified. If false, nothing has been done: it is typically the case if \a meshName is not referred by any 
21000   *         field in \a this.
21001   */
21002  bool MEDFileFields::renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N)
21003 @@ -9510,6 +607,235 @@
21004        }
21005  }
21006  
21007 +class PFLData
21008 +{
21009 +public:
21010 +  PFLData():_add_pts_in_pfl(0) { }
21011 +  PFLData(const MCAuto<DataArrayInt>& mat, const MCAuto<DataArrayInt>& pfl, int nbOfNewPts):_matrix(mat),_pfl(pfl),_add_pts_in_pfl(nbOfNewPts) { }
21012 +  std::string getPflName() const { if(_pfl.isNull()) { return std::string(); } else { return _pfl->getName(); } }
21013 +  int getNbOfAddPtsInPfl() const { return _add_pts_in_pfl; }
21014 +  MCAuto<DataArrayInt> getProfile() const { return _pfl; }
21015 +  MCAuto<DataArrayInt> getMatrix() const { return _matrix; }
21016 +private:
21017 +  MCAuto<DataArrayInt> _matrix;
21018 +  MCAuto<DataArrayInt> _pfl;
21019 +  int _add_pts_in_pfl;
21020 +};
21021 +
21022 +class MEDFileFieldLin2QuadVisitor : public MEDFileFieldVisitor
21023 +{
21024 +public:
21025 +  MEDFileFieldLin2QuadVisitor(const MEDFileUMesh *lin, const MEDFileUMesh *quad, const MEDFileFieldGlobsReal *linGlobs, MEDFileFields* outFs):_lin(lin),_quad(quad),_lin_globs(linGlobs),_out_fs(outFs),_gt(INTERP_KERNEL::NORM_ERROR),_1ts_update_requested(false) { }
21026 +  void newFieldEntry(const MEDFileAnyTypeFieldMultiTSWithoutSDA *field) { if(field->getMeshName()!=_lin->getName()) return; _cur_fmts=MEDFileFieldMultiTS::New(); }
21027 +  void endFieldEntry(const MEDFileAnyTypeFieldMultiTSWithoutSDA *field) { if(_cur_fmts.isNotNull()) { if(_cur_fmts->getNumberOfTS()>0) _out_fs->pushField(_cur_fmts); } }
21028 +  //
21029 +  void newTimeStepEntry(const MEDFileAnyTypeField1TSWithoutSDA *ts);
21030 +  void endTimeStepEntry(const MEDFileAnyTypeField1TSWithoutSDA *ts);
21031 +  //
21032 +  void newMeshEntry(const MEDFileFieldPerMesh *fpm);
21033 +  void endMeshEntry(const MEDFileFieldPerMesh *fpm) { }
21034 +  //
21035 +  void newPerMeshPerTypeEntry(const MEDFileFieldPerMeshPerTypeCommon *pmpt);
21036 +  void endPerMeshPerTypeEntry(const MEDFileFieldPerMeshPerTypeCommon *pmpt) { }
21037 +  //
21038 +  void newPerMeshPerTypePerDisc(const MEDFileFieldPerMeshPerTypePerDisc *pmptpd);
21039 +private:
21040 +  void updateData(MEDFileFieldPerMeshPerTypePerDisc *pmtd, int deltaNbNodes);
21041 +private:
21042 +  const MEDFileUMesh *_lin;
21043 +  const MEDFileUMesh *_quad;
21044 +  const MEDFileFieldGlobsReal *_lin_globs;
21045 +  MEDFileFields *_out_fs;
21046 +  MCAuto<MEDFileFieldMultiTS> _cur_fmts;
21047 +  MCAuto<MEDFileField1TS> _cur_f1ts;
21048 +  INTERP_KERNEL::NormalizedCellType _gt;
21049 +  // Info on 1TS modification
21050 +  bool _1ts_update_requested;
21051 +  // Cache of matrix to compute faster the values on newly created points
21052 +  std::map< std::string, PFLData > _cache;
21053 +  std::vector<std::string> _pfls_to_be_updated;
21054 +};
21055 +
21056 +void MEDFileFieldLin2QuadVisitor::newPerMeshPerTypePerDisc(const MEDFileFieldPerMeshPerTypePerDisc *pmptpd)
21057 +{
21058 +  if(_cur_f1ts.isNull())
21059 +    return;
21060 +  if(pmptpd->getType()!=ON_NODES)
21061 +    throw INTERP_KERNEL::Exception("Not managed yet for ON_CELLS ON_GAUSS_NE and ON_GAUSS_PT");
21062 +  _1ts_update_requested=true;
21063 +  MEDFileAnyTypeField1TSWithoutSDA *ct(_cur_f1ts->contentNotNullBase());
21064 +  int locId(pmptpd->getFather()->locIdOfLeaf(pmptpd));
21065 +  MEDFileFieldPerMeshPerTypePerDisc *pmtdToModify(ct->getLeafGivenMeshAndTypeAndLocId(_lin->getName(),_gt,locId));
21066 +  std::string pflName(pmptpd->getProfile());
21067 +  _pfls_to_be_updated.push_back(pflName);
21068 +  std::map< std::string, PFLData >::iterator itCache(_cache.find(pflName));
21069 +  if(itCache!=_cache.end())
21070 +    {
21071 +      updateData(pmtdToModify,(*itCache).second.getNbOfAddPtsInPfl());
21072 +      return ;
21073 +    }
21074 +  MCAuto<DataArrayInt> pfl;
21075 +  if(pflName.empty())
21076 +    pfl=DataArrayInt::Range(0,pmptpd->getNumberOfVals(),1);
21077 +  else
21078 +    pfl=_lin_globs->getProfile(pflName)->deepCopy();
21079 +  //
21080 +  MCAuto<MEDCouplingUMesh> mesh3D(_lin->getMeshAtLevel(0)),mesh3DQuadratic(_quad->getMeshAtLevel(0));
21081 +  MCAuto<DataArrayInt> cellIds(mesh3D->getCellIdsLyingOnNodes(pfl->begin(),pfl->end(),true));
21082 +  MCAuto<MEDCouplingUMesh> mesh3DQuadraticRestricted(mesh3DQuadratic->buildPartOfMySelf(cellIds->begin(),cellIds->end(),true));
21083 +  MCAuto<DataArrayInt> mesh3DQuadraticRestrictedNodeIds(mesh3DQuadraticRestricted->computeFetchedNodeIds());
21084 +  mesh3DQuadraticRestrictedNodeIds->checkMonotonic(true);
21085 +  MCAuto<DataArrayInt> newPtsIds(mesh3DQuadraticRestrictedNodeIds->buildSubstraction(pfl));
21086 +  MCAuto<MEDCoupling1SGTUMesh> allSeg3;
21087 +  {
21088 +    MCAuto<DataArrayInt> a,b,c,d;
21089 +    MCAuto<MEDCouplingUMesh> seg3Tmp(mesh3DQuadraticRestricted->explodeIntoEdges(a,b,c,d));
21090 +    allSeg3=MEDCoupling1SGTUMesh::New(seg3Tmp);
21091 +  }
21092 +  if(allSeg3->getCellModelEnum()!=INTERP_KERNEL::NORM_SEG3)
21093 +    throw INTERP_KERNEL::Exception("MEDFileFieldLin2QuadVisitor::newPerMeshPerTypePerDisc : invalid situation where SEG3 expected !");
21094 +  MCAuto<DataArrayInt> midPts,cellSeg3Ids,matrix;
21095 +  {
21096 +    DataArrayInt *nodeConn(allSeg3->getNodalConnectivity());
21097 +    nodeConn->rearrange(3);
21098 +    {
21099 +      std::vector<int> v(1,2);
21100 +      midPts=nodeConn->keepSelectedComponents(v);
21101 +    }
21102 +    cellSeg3Ids=DataArrayInt::FindPermutationFromFirstToSecond(midPts,newPtsIds);
21103 +    {
21104 +      std::vector<int> v(2); v[0]=0; v[1]=1;
21105 +      MCAuto<DataArrayInt> tmp(nodeConn->keepSelectedComponents(v));
21106 +      matrix=tmp->selectByTupleId(cellSeg3Ids->begin(),cellSeg3Ids->end());
21107 +    }
21108 +    nodeConn->rearrange(1);
21109 +  }
21110 +  MCAuto<DataArrayInt> pflq;
21111 +  if(!pflName.empty())
21112 +    {
21113 +      std::vector<const DataArrayInt *> vs(2);
21114 +      vs[0]=pfl; vs[1]=newPtsIds;
21115 +      pflq=DataArrayInt::Aggregate(vs);
21116 +      pflq->setName(pflName);
21117 +    }
21118 +  PFLData pdata(matrix,pflq,newPtsIds->getNumberOfTuples());
21119 +  _cache[pflName]=pdata;
21120 +  updateData(pmtdToModify,pdata.getNbOfAddPtsInPfl());
21121 +}
21122 +
21123 +void MEDFileFieldLin2QuadVisitor::updateData(MEDFileFieldPerMeshPerTypePerDisc *pmtd, int deltaNbNodes)
21124 +{
21125 +  pmtd->incrementNbOfVals(deltaNbNodes);
21126 +}
21127 +
21128 +void MEDFileFieldLin2QuadVisitor::newPerMeshPerTypeEntry(const MEDFileFieldPerMeshPerTypeCommon *pmpt)
21129 +{
21130 +  const MEDFileFieldPerMeshPerType *pmpt2(dynamic_cast<const MEDFileFieldPerMeshPerType *>(pmpt));
21131 +  if(!pmpt2)
21132 +    throw INTERP_KERNEL::Exception("MEDFileFieldLin2QuadVisitor::newPerMeshPerTypeEntry : not managed for structure elements !");
21133 +  if(pmpt2->getNumberOfLoc()!=1)
21134 +    throw INTERP_KERNEL::Exception("MEDFileFieldLin2QuadVisitor::newPerMeshPerTypeEntry : not managed for multi discr per timestep !");
21135 +  _gt=pmpt->getGeoType();
21136 +}
21137 +
21138 +void MEDFileFieldLin2QuadVisitor::newMeshEntry(const MEDFileFieldPerMesh *fpm)
21139 +{
21140 +  if(fpm->getMeshName()!=_lin->getName())
21141 +    throw INTERP_KERNEL::Exception("MEDFileFieldLin2QuadVisitor::newMeshEntry : mismatch into meshName !");
21142 +}
21143 +
21144 +void MEDFileFieldLin2QuadVisitor::newTimeStepEntry(const MEDFileAnyTypeField1TSWithoutSDA *ts)
21145 +{
21146 +  _1ts_update_requested=false; _pfls_to_be_updated.clear();
21147 +  if(!ts)
21148 +    return ;
21149 +  const MEDFileField1TSWithoutSDA *tsd(dynamic_cast<const MEDFileField1TSWithoutSDA *>(ts));
21150 +  if(!tsd)
21151 +    return ;
21152 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> contentCpy(ts->deepCopy());
21153 +  MCAuto<MEDFileField1TSWithoutSDA> contentCpy2(DynamicCastSafe<MEDFileAnyTypeField1TSWithoutSDA,MEDFileField1TSWithoutSDA>(contentCpy));
21154 +  if(contentCpy2.isNull())
21155 +    return;
21156 +  _cur_f1ts=MEDFileField1TS::New(*contentCpy2,true);
21157 +  _cur_f1ts->deepCpyGlobs(*_lin_globs);
21158 +}
21159 +
21160 +void MEDFileFieldLin2QuadVisitor::endTimeStepEntry(const MEDFileAnyTypeField1TSWithoutSDA *ts)
21161 +{
21162 +  if(_cur_f1ts.isNull())
21163 +    return ;
21164 +  if(_1ts_update_requested)
21165 +    {
21166 +      MCAuto<DataArrayInt> matrix,oldPfl;
21167 +      for(std::vector<std::string>::const_iterator it=_pfls_to_be_updated.begin();it!=_pfls_to_be_updated.end();it++)
21168 +        {
21169 +          std::map< std::string, PFLData >::const_iterator it2(_cache.find(*it));
21170 +          if(it2==_cache.end())
21171 +            throw INTERP_KERNEL::Exception("MEDFileFieldLin2QuadVisitor::endTimeStepEntry : invalid situation !");
21172 +          matrix=(*it2).second.getMatrix();
21173 +          if((*it).empty())
21174 +            continue;
21175 +          int locId(_cur_f1ts->getProfileId(*it));
21176 +          oldPfl.takeRef(_cur_f1ts->getProfile(*it));
21177 +          {
21178 +            std::vector<int> locToKill(1,locId);
21179 +            _cur_f1ts->killProfileIds(locToKill);
21180 +          }
21181 +          _cur_f1ts->appendProfile((*it2).second.getProfile());
21182 +        }
21183 +      DataArrayDouble *arr(_cur_f1ts->getUndergroundDataArray());
21184 +      MCAuto<DataArrayDouble> res;
21185 +      {
21186 +        std::vector<int> v(1,0),v2(1,1);
21187 +        MCAuto<DataArrayInt> pts0(matrix->keepSelectedComponents(v));
21188 +        MCAuto<DataArrayInt> pts1(matrix->keepSelectedComponents(v2));
21189 +        if(oldPfl.isNotNull())
21190 +          {
21191 +            pts0=oldPfl->findIdForEach(pts0->begin(),pts0->end());
21192 +            pts1=oldPfl->findIdForEach(pts1->begin(),pts1->end());
21193 +          }
21194 +        MCAuto<DataArrayDouble> part0(arr->selectByTupleId(*pts0));
21195 +        MCAuto<DataArrayDouble> part1(arr->selectByTupleId(*pts1));
21196 +        res=DataArrayDouble::Add(part0,part1);
21197 +        res->applyLin(0.5,0.);
21198 +      }
21199 +      res=DataArrayDouble::Aggregate(arr,res);
21200 +      _cur_f1ts->setArray(res);
21201 +    }
21202 +  if(_cur_fmts.isNotNull())
21203 +    { _cur_fmts->pushBackTimeStep(_cur_f1ts); }
21204 +  _1ts_update_requested=false;
21205 +}
21206 +
21207 +/*!
21208 + * \a newQuad is expected to be the result of MEDFileUMesh::linearToQuadratic of \a oldLin
21209 + */
21210 +MCAuto<MEDFileFields> MEDFileFields::linearToQuadratic(const MEDFileMeshes *oldLin, const MEDFileMeshes *newQuad) const
21211 +{
21212 +  if(!oldLin || !newQuad)
21213 +    throw INTERP_KERNEL::Exception("MEDFileFields::linearToQuadratic : input meshes must be non NULL !");
21214 +  MCAuto<MEDFileFields> ret(MEDFileFields::New());
21215 +  for(int i=0;i<oldLin->getNumberOfMeshes();i++)
21216 +    {
21217 +      MEDFileMesh *mm(oldLin->getMeshAtPos(i));
21218 +      if(!mm)
21219 +        continue;
21220 +      MEDFileUMesh *mmu(dynamic_cast<MEDFileUMesh *>(mm));
21221 +      if(!mmu)
21222 +        continue;
21223 +      MEDFileMesh *mmq(newQuad->getMeshWithName(mmu->getName()));
21224 +      MEDFileUMesh *mmqu(dynamic_cast<MEDFileUMesh *>(mmq));
21225 +      if(!mmqu)
21226 +        {
21227 +          std::ostringstream oss; oss << "MEDFileFields::linearToQuadratic : mismatch of name between input meshes for name \"" << mmu->getName() << "\"";
21228 +          throw INTERP_KERNEL::Exception(oss.str());
21229 +        }
21230 +      MEDFileFieldLin2QuadVisitor vis(mmu,mmqu,this,ret);
21231 +      accept(vis);
21232 +    }
21233 +  return ret;
21234 +}
21235 +
21236  MEDFileAnyTypeFieldMultiTS *MEDFileFields::getFieldAtPos(int i) const
21237  {
21238    if(i<0 || i>=(int)_fields.size())
21239 @@ -9523,13 +849,16 @@
21240    MCAuto<MEDFileAnyTypeFieldMultiTS> ret;
21241    const MEDFileFieldMultiTSWithoutSDA *fmtsC(dynamic_cast<const MEDFileFieldMultiTSWithoutSDA *>(fmts));
21242    const MEDFileIntFieldMultiTSWithoutSDA *fmtsC2(dynamic_cast<const MEDFileIntFieldMultiTSWithoutSDA *>(fmts));
21243 +  const MEDFileFloatFieldMultiTSWithoutSDA *fmtsC3(dynamic_cast<const MEDFileFloatFieldMultiTSWithoutSDA *>(fmts));
21244    if(fmtsC)
21245      ret=MEDFileFieldMultiTS::New(*fmtsC,false);
21246    else if(fmtsC2)
21247      ret=MEDFileIntFieldMultiTS::New(*fmtsC2,false);
21248 +  else if(fmtsC3)
21249 +    ret=MEDFileFloatFieldMultiTS::New(*fmtsC3,false);
21250    else
21251      {
21252 -      std::ostringstream oss; oss << "MEDFileFields::getFieldAtPos : At pos #" << i << " field is neither double (FLOAT64) nor integer (INT32) !";
21253 +      std::ostringstream oss; oss << "MEDFileFields::getFieldAtPos : At pos #" << i << " field is neither double (FLOAT64) nor float (FLOAT32) nor integer (INT32) !";
21254        throw INTERP_KERNEL::Exception(oss.str());
21255      }
21256    ret->shallowCpyGlobs(*this);
21257 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldGlobs.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldGlobs.cxx
21258 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldGlobs.cxx 1970-01-01 01:00:00.000000000 +0100
21259 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldGlobs.cxx 2018-04-19 17:25:17.743797475 +0200
21260 @@ -0,0 +1,1279 @@
21261 +// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
21262 +//
21263 +// This library is free software; you can redistribute it and/or
21264 +// modify it under the terms of the GNU Lesser General Public
21265 +// License as published by the Free Software Foundation; either
21266 +// version 2.1 of the License, or (at your option) any later version.
21267 +//
21268 +// This library is distributed in the hope that it will be useful,
21269 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
21270 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21271 +// Lesser General Public License for more details.
21272 +//
21273 +// You should have received a copy of the GNU Lesser General Public
21274 +// License along with this library; if not, write to the Free Software
21275 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21276 +//
21277 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21278 +//
21279 +// Author : Anthony Geay (EDF R&D)
21280 +
21281 +#include "MEDFileFieldGlobs.hxx"
21282 +#include "MEDFileField.txx"
21283 +#include "MEDFileMesh.hxx"
21284 +#include "MEDLoaderBase.hxx"
21285 +#include "MEDLoaderTraits.hxx"
21286 +#include "MEDFileSafeCaller.txx"
21287 +#include "MEDFileFieldOverView.hxx"
21288 +#include "MEDFileBlowStrEltUp.hxx"
21289 +#include "MEDFileFieldVisitor.hxx"
21290 +
21291 +#include "MEDCouplingFieldDiscretization.hxx"
21292 +#include "MCType.hxx"
21293 +
21294 +#include "InterpKernelAutoPtr.hxx"
21295 +#include "CellModel.hxx"
21296 +
21297 +#include <algorithm>
21298 +#include <iterator>
21299 +
21300 +using namespace MEDCoupling;
21301 +
21302 +void MEDFileFieldGlobs::loadProfileInFile(med_idt fid, int id, const std::string& pflName)
21303 +{
21304 +  if(id>=(int)_pfls.size())
21305 +    _pfls.resize(id+1);
21306 +  _pfls[id]=DataArrayInt::New();
21307 +  int lgth(MEDprofileSizeByName(fid,pflName.c_str()));
21308 +  _pfls[id]->setName(pflName);
21309 +  _pfls[id]->alloc(lgth,1);
21310 +  MEDFILESAFECALLERRD0(MEDprofileRd,(fid,pflName.c_str(),_pfls[id]->getPointer()));
21311 +  _pfls[id]->applyLin(1,-1,0);//Converting into C format
21312 +}
21313 +
21314 +void MEDFileFieldGlobs::loadProfileInFile(med_idt fid, int i)
21315 +{
21316 +  INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
21317 +  int sz;
21318 +  MEDFILESAFECALLERRD0(MEDprofileInfo,(fid,i+1,pflName,&sz));
21319 +  std::string pflCpp=MEDLoaderBase::buildStringFromFortran(pflName,MED_NAME_SIZE);
21320 +  if(i>=(int)_pfls.size())
21321 +    _pfls.resize(i+1);
21322 +  _pfls[i]=DataArrayInt::New();
21323 +  _pfls[i]->alloc(sz,1);
21324 +  _pfls[i]->setName(pflCpp.c_str());
21325 +  MEDFILESAFECALLERRD0(MEDprofileRd,(fid,pflName,_pfls[i]->getPointer()));
21326 +  _pfls[i]->applyLin(1,-1,0);//Converting into C format
21327 +}
21328 +
21329 +void MEDFileFieldGlobs::writeGlobals(med_idt fid, const MEDFileWritable& opt) const
21330 +{
21331 +  int nbOfPfls=_pfls.size();
21332 +  for(int i=0;i<nbOfPfls;i++)
21333 +    {
21334 +      MCAuto<DataArrayInt> cpy=_pfls[i]->deepCopy();
21335 +      cpy->applyLin(1,1,0);
21336 +      INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
21337 +      MEDLoaderBase::safeStrCpy(_pfls[i]->getName().c_str(),MED_NAME_SIZE,pflName,opt.getTooLongStrPolicy());
21338 +      MEDFILESAFECALLERWR0(MEDprofileWr,(fid,pflName,_pfls[i]->getNumberOfTuples(),cpy->getConstPointer()));
21339 +    }
21340 +  //
21341 +  int nbOfLocs=_locs.size();
21342 +  for(int i=0;i<nbOfLocs;i++)
21343 +    _locs[i]->writeLL(fid);
21344 +}
21345 +
21346 +void MEDFileFieldGlobs::appendGlobs(const MEDFileFieldGlobs& other, double eps)
21347 +{
21348 +  std::vector<std::string> pfls=getPfls();
21349 +  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=other._pfls.begin();it!=other._pfls.end();it++)
21350 +    {
21351 +      std::vector<std::string>::iterator it2=std::find(pfls.begin(),pfls.end(),(*it)->getName());
21352 +      if(it2==pfls.end())
21353 +        {
21354 +          _pfls.push_back(*it);
21355 +        }
21356 +      else
21357 +        {
21358 +          int id=std::distance(pfls.begin(),it2);
21359 +          if(!(*it)->isEqual(*_pfls[id]))
21360 +            {
21361 +              std::ostringstream oss; oss << "MEDFileFieldGlobs::appendGlobs : Profile \"" << (*it)->getName() << "\" already exists and is different from those expecting to be append !";
21362 +              throw INTERP_KERNEL::Exception(oss.str());
21363 +            }
21364 +        }
21365 +    }
21366 +  std::vector<std::string> locs=getLocs();
21367 +  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=other._locs.begin();it!=other._locs.end();it++)
21368 +    {
21369 +      std::vector<std::string>::iterator it2=std::find(locs.begin(),locs.end(),(*it)->getName());
21370 +      if(it2==locs.end())
21371 +        {
21372 +          _locs.push_back(*it);
21373 +        }
21374 +      else
21375 +        {
21376 +          int id=std::distance(locs.begin(),it2);
21377 +          if(!(*it)->isEqual(*_locs[id],eps))
21378 +            {
21379 +              std::ostringstream oss; oss << "MEDFileFieldGlobs::appendGlobs : Localization \"" << (*it)->getName() << "\" already exists and is different from those expecting to be append !";
21380 +              throw INTERP_KERNEL::Exception(oss.str());
21381 +            }
21382 +        }
21383 +    }
21384 +}
21385 +
21386 +void MEDFileFieldGlobs::checkGlobsPflsPartCoherency(const std::vector<std::string>& pflsUsed) const
21387 +{
21388 +  for(std::vector<std::string>::const_iterator it=pflsUsed.begin();it!=pflsUsed.end();it++)
21389 +    getProfile((*it).c_str());
21390 +}
21391 +
21392 +void MEDFileFieldGlobs::checkGlobsLocsPartCoherency(const std::vector<std::string>& locsUsed) const
21393 +{
21394 +  for(std::vector<std::string>::const_iterator it=locsUsed.begin();it!=locsUsed.end();it++)
21395 +    getLocalization((*it).c_str());
21396 +}
21397 +
21398 +void MEDFileFieldGlobs::loadGlobals(med_idt fid, const MEDFileFieldGlobsReal& real)
21399 +{
21400 +  std::vector<std::string> profiles=real.getPflsReallyUsed();
21401 +  int sz=profiles.size();
21402 +  _pfls.resize(sz);
21403 +  for(int i=0;i<sz;i++)
21404 +    loadProfileInFile(fid,i,profiles[i].c_str());
21405 +  //
21406 +  std::vector<std::string> locs=real.getLocsReallyUsed();
21407 +  sz=locs.size();
21408 +  _locs.resize(sz);
21409 +  for(int i=0;i<sz;i++)
21410 +    _locs[i]=MEDFileFieldLoc::New(fid,locs[i].c_str());
21411 +}
21412 +
21413 +void MEDFileFieldGlobs::loadAllGlobals(med_idt fid, const MEDFileEntities *entities)
21414 +{
21415 +  int nProfil=MEDnProfile(fid);
21416 +  for(int i=0;i<nProfil;i++)
21417 +    loadProfileInFile(fid,i);
21418 +  int sz=MEDnLocalization(fid);
21419 +  _locs.resize(sz);
21420 +  for(int i=0;i<sz;i++)
21421 +    {
21422 +      _locs[i]=MEDFileFieldLoc::New(fid,i,entities);
21423 +    }
21424 +}
21425 +
21426 +MEDFileFieldGlobs *MEDFileFieldGlobs::New(med_idt fid)
21427 +{
21428 +  return new MEDFileFieldGlobs(fid);
21429 +}
21430 +
21431 +MEDFileFieldGlobs *MEDFileFieldGlobs::New()
21432 +{
21433 +  return new MEDFileFieldGlobs;
21434 +}
21435 +
21436 +std::size_t MEDFileFieldGlobs::getHeapMemorySizeWithoutChildren() const
21437 +{
21438 +  return _file_name.capacity()+_pfls.capacity()*sizeof(MCAuto<DataArrayInt>)+_locs.capacity()*sizeof(MCAuto<MEDFileFieldLoc>);
21439 +}
21440 +
21441 +std::vector<const BigMemoryObject *> MEDFileFieldGlobs::getDirectChildrenWithNull() const
21442 +{
21443 +  std::vector<const BigMemoryObject *> ret;
21444 +  for(std::vector< MCAuto< DataArrayInt > >::const_iterator it=_pfls.begin();it!=_pfls.end();it++)
21445 +    ret.push_back((const DataArrayInt *)*it);
21446 +  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++)
21447 +    ret.push_back((const MEDFileFieldLoc *)*it);
21448 +  return ret;
21449 +}
21450 +
21451 +MEDFileFieldGlobs *MEDFileFieldGlobs::deepCopy() const
21452 +{
21453 +  MCAuto<MEDFileFieldGlobs> ret=new MEDFileFieldGlobs(*this);
21454 +  std::size_t i=0;
21455 +  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
21456 +    {
21457 +      if((const DataArrayInt *)*it)
21458 +        ret->_pfls[i]=(*it)->deepCopy();
21459 +    }
21460 +  i=0;
21461 +  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++,i++)
21462 +    {
21463 +      if((const MEDFileFieldLoc*)*it)
21464 +        ret->_locs[i]=(*it)->deepCopy();
21465 +    }
21466 +  return ret.retn();
21467 +}
21468 +
21469 +/*!
21470 + * \throw if a profile in \a pfls in not in \a this.
21471 + * \throw if a localization in \a locs in not in \a this.
21472 + * \sa MEDFileFieldGlobs::deepCpyPart
21473 + */
21474 +MEDFileFieldGlobs *MEDFileFieldGlobs::shallowCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const
21475 +{
21476 +  MCAuto<MEDFileFieldGlobs> ret=MEDFileFieldGlobs::New();
21477 +  for(std::vector<std::string>::const_iterator it1=pfls.begin();it1!=pfls.end();it1++)
21478 +    {
21479 +      DataArrayInt *pfl=const_cast<DataArrayInt *>(getProfile((*it1).c_str()));
21480 +      if(!pfl)
21481 +        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::shallowCpyPart : internal error ! pfl null !");
21482 +      pfl->incrRef();
21483 +      MCAuto<DataArrayInt> pfl2(pfl);
21484 +      ret->_pfls.push_back(pfl2);
21485 +    }
21486 +  for(std::vector<std::string>::const_iterator it2=locs.begin();it2!=locs.end();it2++)
21487 +    {
21488 +      MEDFileFieldLoc *loc=const_cast<MEDFileFieldLoc *>(&getLocalization((*it2).c_str()));
21489 +      if(!loc)
21490 +        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::shallowCpyPart : internal error ! loc null !");
21491 +      loc->incrRef();
21492 +      MCAuto<MEDFileFieldLoc> loc2(loc);
21493 +      ret->_locs.push_back(loc2);
21494 +    }
21495 +  ret->setFileName(getFileName());
21496 +  return ret.retn();
21497 +}
21498 +
21499 +/*!
21500 + * \throw if a profile in \a pfls in not in \a this.
21501 + * \throw if a localization in \a locs in not in \a this.
21502 + * \sa MEDFileFieldGlobs::shallowCpyPart
21503 + */
21504 +MEDFileFieldGlobs *MEDFileFieldGlobs::deepCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const
21505 +{
21506 +  MCAuto<MEDFileFieldGlobs> ret=MEDFileFieldGlobs::New();
21507 +  for(std::vector<std::string>::const_iterator it1=pfls.begin();it1!=pfls.end();it1++)
21508 +    {
21509 +      DataArrayInt *pfl=const_cast<DataArrayInt *>(getProfile((*it1).c_str()));
21510 +      if(!pfl)
21511 +        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::deepCpyPart : internal error ! pfl null !");
21512 +      ret->_pfls.push_back(pfl->deepCopy());
21513 +    }
21514 +  for(std::vector<std::string>::const_iterator it2=locs.begin();it2!=locs.end();it2++)
21515 +    {
21516 +      MEDFileFieldLoc *loc=const_cast<MEDFileFieldLoc *>(&getLocalization((*it2).c_str()));
21517 +      if(!loc)
21518 +        throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::deepCpyPart : internal error ! loc null !");
21519 +      ret->_locs.push_back(loc->deepCopy());
21520 +    }
21521 +  ret->setFileName(getFileName());
21522 +  return ret.retn();
21523 +}
21524 +
21525 +MEDFileFieldGlobs::MEDFileFieldGlobs(med_idt fid):_file_name(MEDFileWritable::FileNameFromFID(fid))
21526 +{
21527 +}
21528 +
21529 +MEDFileFieldGlobs::MEDFileFieldGlobs()
21530 +{
21531 +}
21532 +
21533 +MEDFileFieldGlobs::~MEDFileFieldGlobs()
21534 +{
21535 +}
21536 +
21537 +void MEDFileFieldGlobs::simpleRepr(std::ostream& oss) const
21538 +{
21539 +  oss << "Profiles :\n";
21540 +  std::size_t n=_pfls.size();
21541 +  for(std::size_t i=0;i<n;i++)
21542 +    {
21543 +      oss << "  - #" << i << " ";
21544 +      const DataArrayInt *pfl=_pfls[i];
21545 +      if(pfl)
21546 +        oss << "\"" << pfl->getName() << "\"\n";
21547 +      else
21548 +        oss << "EMPTY !\n";
21549 +    }
21550 +  n=_locs.size();
21551 +  oss << "Localizations :\n";
21552 +  for(std::size_t i=0;i<n;i++)
21553 +    {
21554 +      oss << "  - #" << i << " ";
21555 +      const MEDFileFieldLoc *loc=_locs[i];
21556 +      if(loc)
21557 +        loc->simpleRepr(oss);
21558 +      else
21559 +        oss<< "EMPTY !\n";
21560 +    }
21561 +}
21562 +
21563 +void MEDFileFieldGlobs::changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
21564 +{
21565 +  for(std::vector< MCAuto<DataArrayInt> >::iterator it=_pfls.begin();it!=_pfls.end();it++)
21566 +    {
21567 +      DataArrayInt *elt(*it);
21568 +      if(elt)
21569 +        {
21570 +          std::string name(elt->getName());
21571 +          for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
21572 +            {
21573 +              if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end())
21574 +                {
21575 +                  elt->setName((*it2).second.c_str());
21576 +                  return;
21577 +                }
21578 +            }
21579 +        }
21580 +    }
21581 +}
21582 +
21583 +void MEDFileFieldGlobs::changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
21584 +{
21585 +  for(std::vector< MCAuto<MEDFileFieldLoc> >::iterator it=_locs.begin();it!=_locs.end();it++)
21586 +    {
21587 +      MEDFileFieldLoc *elt(*it);
21588 +      if(elt)
21589 +        {
21590 +          std::string name(elt->getName());
21591 +          for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
21592 +            {
21593 +              if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end())
21594 +                {
21595 +                  elt->setName((*it2).second.c_str());
21596 +                  return;
21597 +                }
21598 +            }
21599 +        }
21600 +    }
21601 +}
21602 +
21603 +int MEDFileFieldGlobs::getNbOfGaussPtPerCell(int locId) const
21604 +{
21605 +  if(locId<0 || locId>=(int)_locs.size())
21606 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getNbOfGaussPtPerCell : Invalid localization id !");
21607 +  return _locs[locId]->getNbOfGaussPtPerCell();
21608 +}
21609 +
21610 +const MEDFileFieldLoc& MEDFileFieldGlobs::getLocalization(const std::string& locName) const
21611 +{
21612 +  return getLocalizationFromId(getLocalizationId(locName));
21613 +}
21614 +
21615 +const MEDFileFieldLoc& MEDFileFieldGlobs::getLocalizationFromId(int locId) const
21616 +{
21617 +  if(locId<0 || locId>=(int)_locs.size())
21618 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getLocalizationFromId : Invalid localization id !");
21619 +  return *_locs[locId];
21620 +}
21621 +
21622 +/// @cond INTERNAL
21623 +namespace MEDCouplingImpl
21624 +{
21625 +  class LocFinder
21626 +  {
21627 +  public:
21628 +    LocFinder(const std::string& loc):_loc(loc) { }
21629 +    bool operator() (const MCAuto<MEDFileFieldLoc>& loc) { return loc->isName(_loc); }
21630 +  private:
21631 +    const std::string &_loc;
21632 +  };
21633 +
21634 +  class PflFinder
21635 +  {
21636 +  public:
21637 +    PflFinder(const std::string& pfl):_pfl(pfl) { }
21638 +    bool operator() (const MCAuto<DataArrayInt>& loc) { return loc->getName()==_pfl; }
21639 +  private:
21640 +    const std::string _pfl;
21641 +  };
21642 +}
21643 +/// @endcond
21644 +
21645 +int MEDFileFieldGlobs::getLocalizationId(const std::string& loc) const
21646 +{
21647 +  std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=std::find_if(_locs.begin(),_locs.end(),MEDCouplingImpl::LocFinder(loc));
21648 +  if(it==_locs.end())
21649 +    {
21650 +      std::ostringstream oss; oss << "MEDFileFieldGlobs::getLocalisationId : no such localisation name : \"" << loc << "\" Possible localizations are : ";
21651 +      for(it=_locs.begin();it!=_locs.end();it++)
21652 +        oss << "\"" << (*it)->getName() << "\", ";
21653 +      throw INTERP_KERNEL::Exception(oss.str());
21654 +    }
21655 +  return std::distance(_locs.begin(),it);
21656 +}
21657 +
21658 +int MEDFileFieldGlobs::getProfileId(const std::string& pfl) const
21659 +{
21660 +  std::vector< MCAuto<DataArrayInt> >::const_iterator it=std::find_if(_pfls.begin(),_pfls.end(),MEDCouplingImpl::PflFinder(pfl));
21661 +  if(it==_pfls.end())
21662 +    {
21663 +      std::ostringstream oss; oss << "MEDFileFieldGlobs::getProfileId : no such profile name : \"" << pfl << "\" Possible localizations are : ";
21664 +      for(it=_pfls.begin();it!=_pfls.end();it++)
21665 +        oss << "\"" << (*it)->getName() << "\", ";
21666 +      throw INTERP_KERNEL::Exception(oss.str());
21667 +    }
21668 +  return std::distance(_pfls.begin(),it);
21669 +}
21670 +
21671 +/*!
21672 + * The returned value is never null.
21673 + */
21674 +const DataArrayInt *MEDFileFieldGlobs::getProfile(const std::string& pflName) const
21675 +{
21676 +  return getProfileFromId(getProfileId(pflName));
21677 +}
21678 +
21679 +const DataArrayInt *MEDFileFieldGlobs::getProfileFromId(int pflId) const
21680 +{
21681 +  if(pflId<0 || pflId>=(int)_pfls.size())
21682 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getProfileFromId : Invalid profile id !");
21683 +  return _pfls[pflId];
21684 +}
21685 +
21686 +MEDFileFieldLoc& MEDFileFieldGlobs::getLocalizationFromId(int locId)
21687 +{
21688 +  if(locId<0 || locId>=(int)_locs.size())
21689 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getLocalizationFromId : Invalid localization id !");
21690 +  return *_locs[locId];
21691 +}
21692 +
21693 +MEDFileFieldLoc& MEDFileFieldGlobs::getLocalization(const std::string& locName)
21694 +{
21695 +  return getLocalizationFromId(getLocalizationId(locName));
21696 +}
21697 +
21698 +/*!
21699 + * The returned value is never null. Borrowed reference returned.
21700 + */
21701 +DataArrayInt *MEDFileFieldGlobs::getProfile(const std::string& pflName)
21702 +{
21703 +  std::string pflNameCpp(pflName);
21704 +  std::vector< MCAuto<DataArrayInt> >::iterator it=std::find_if(_pfls.begin(),_pfls.end(),MEDCouplingImpl::PflFinder(pflNameCpp));
21705 +  if(it==_pfls.end())
21706 +    {
21707 +      std::ostringstream oss; oss << "MEDFileFieldGlobs::getProfile: no such profile name : \"" << pflNameCpp << "\" Possible profiles are : ";
21708 +      for(it=_pfls.begin();it!=_pfls.end();it++)
21709 +        oss << "\"" << (*it)->getName() << "\", ";
21710 +      throw INTERP_KERNEL::Exception(oss.str());
21711 +    }
21712 +  return *it;
21713 +}
21714 +
21715 +DataArrayInt *MEDFileFieldGlobs::getProfileFromId(int pflId)
21716 +{
21717 +  if(pflId<0 || pflId>=(int)_pfls.size())
21718 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::getProfileFromId : Invalid profile id !");
21719 +  return _pfls[pflId];
21720 +}
21721 +
21722 +void MEDFileFieldGlobs::killProfileIds(const std::vector<int>& pflIds)
21723 +{
21724 +  std::vector< MCAuto<DataArrayInt> > newPfls;
21725 +  int i=0;
21726 +  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
21727 +    {
21728 +      if(std::find(pflIds.begin(),pflIds.end(),i)==pflIds.end())
21729 +        newPfls.push_back(*it);
21730 +    }
21731 +  _pfls=newPfls;
21732 +}
21733 +
21734 +void MEDFileFieldGlobs::killLocalizationIds(const std::vector<int>& locIds)
21735 +{
21736 +  std::vector< MCAuto<MEDFileFieldLoc> > newLocs;
21737 +  int i=0;
21738 +  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++,i++)
21739 +    {
21740 +      if(std::find(locIds.begin(),locIds.end(),i)==locIds.end())
21741 +        newLocs.push_back(*it);
21742 +    }
21743 +  _locs=newLocs;
21744 +}
21745 +
21746 +void MEDFileFieldGlobs::killStructureElementsInGlobs()
21747 +{
21748 +  std::vector< MCAuto<MEDFileFieldLoc> > newLocs;
21749 +  for(std::vector< MCAuto<MEDFileFieldLoc> >::iterator it=_locs.begin();it!=_locs.end();it++)
21750 +    {
21751 +      if((*it).isNull())
21752 +        continue;
21753 +      if(!(*it)->isOnStructureElement())
21754 +        newLocs.push_back(*it);
21755 +    }
21756 +  _locs=newLocs;
21757 +}
21758 +
21759 +std::vector<std::string> MEDFileFieldGlobs::getPfls() const
21760 +{
21761 +  int sz=_pfls.size();
21762 +  std::vector<std::string> ret(sz);
21763 +  for(int i=0;i<sz;i++)
21764 +    ret[i]=_pfls[i]->getName();
21765 +  return ret;
21766 +}
21767 +
21768 +std::vector<std::string> MEDFileFieldGlobs::getLocs() const
21769 +{
21770 +  int sz=_locs.size();
21771 +  std::vector<std::string> ret(sz);
21772 +  for(int i=0;i<sz;i++)
21773 +    ret[i]=_locs[i]->getName();
21774 +  return ret;
21775 +}
21776 +
21777 +bool MEDFileFieldGlobs::existsPfl(const std::string& pflName) const
21778 +{
21779 +  std::vector<std::string> v=getPfls();
21780 +  std::string s(pflName);
21781 +  return std::find(v.begin(),v.end(),s)!=v.end();
21782 +}
21783 +
21784 +bool MEDFileFieldGlobs::existsLoc(const std::string& locName) const
21785 +{
21786 +  std::vector<std::string> v=getLocs();
21787 +  std::string s(locName);
21788 +  return std::find(v.begin(),v.end(),s)!=v.end();
21789 +}
21790 +
21791 +std::vector< std::vector<int> > MEDFileFieldGlobs::whichAreEqualProfiles() const
21792 +{
21793 +  std::map<int,std::vector<int> > m;
21794 +  int i=0;
21795 +  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++)
21796 +    {
21797 +      const DataArrayInt *tmp=(*it);
21798 +      if(tmp)
21799 +        {
21800 +          m[tmp->getHashCode()].push_back(i);
21801 +        }
21802 +    }
21803 +  std::vector< std::vector<int> > ret;
21804 +  for(std::map<int,std::vector<int> >::const_iterator it2=m.begin();it2!=m.end();it2++)
21805 +    {
21806 +      if((*it2).second.size()>1)
21807 +        {
21808 +          std::vector<int> ret0;
21809 +          bool equalityOrNot=false;
21810 +          for(std::vector<int>::const_iterator it3=(*it2).second.begin();it3!=(*it2).second.end();it3++)
21811 +            {
21812 +              std::vector<int>::const_iterator it4=it3; it4++;
21813 +              for(;it4!=(*it2).second.end();it4++)
21814 +                {
21815 +                  if(_pfls[*it3]->isEqualWithoutConsideringStr(*_pfls[*it4]))
21816 +                    {
21817 +                      if(!equalityOrNot)
21818 +                        ret0.push_back(*it3);
21819 +                      ret0.push_back(*it4);
21820 +                      equalityOrNot=true;
21821 +                    }
21822 +                }
21823 +            }
21824 +          if(!ret0.empty())
21825 +            ret.push_back(ret0);
21826 +        }
21827 +    }
21828 +  return ret;
21829 +}
21830 +
21831 +std::vector< std::vector<int> > MEDFileFieldGlobs::whichAreEqualLocs(double eps) const
21832 +{
21833 +  throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::whichAreEqualLocs : no implemented yet ! Sorry !");
21834 +}
21835 +
21836 +void MEDFileFieldGlobs::appendProfile(DataArrayInt *pfl)
21837 +{
21838 +  std::string name(pfl->getName());
21839 +  if(name.empty())
21840 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::appendProfile : unsupported profiles with no name !");
21841 +  for(std::vector< MCAuto<DataArrayInt> >::const_iterator it=_pfls.begin();it!=_pfls.end();it++)
21842 +    if(name==(*it)->getName())
21843 +      {
21844 +        if(!pfl->isEqual(*(*it)))
21845 +          {
21846 +            std::ostringstream oss; oss << "MEDFileFieldGlobs::appendProfile : profile \"" << name << "\" already exists and is different from existing !";
21847 +            throw INTERP_KERNEL::Exception(oss.str());
21848 +          }
21849 +      }
21850 +  pfl->incrRef();
21851 +  _pfls.push_back(pfl);
21852 +}
21853 +
21854 +void MEDFileFieldGlobs::appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w)
21855 +{
21856 +  std::string name(locName);
21857 +  if(name.empty())
21858 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::appendLoc : unsupported localizations with no name !");
21859 +  MCAuto<MEDFileFieldLoc> obj=MEDFileFieldLoc::New(locName,geoType,refCoo,gsCoo,w);
21860 +  for(std::vector< MCAuto<MEDFileFieldLoc> >::const_iterator it=_locs.begin();it!=_locs.end();it++)
21861 +    if((*it)->isName(locName))
21862 +      {
21863 +        if(!(*it)->isEqual(*obj,1e-12))
21864 +          {
21865 +            std::ostringstream oss; oss << "MEDFileFieldGlobs::appendLoc : localization \"" << name << "\" already exists and is different from existing !";
21866 +            throw INTERP_KERNEL::Exception(oss.str());
21867 +          }
21868 +      }
21869 +  _locs.push_back(obj);
21870 +}
21871 +
21872 +std::string MEDFileFieldGlobs::createNewNameOfPfl() const
21873 +{
21874 +  std::vector<std::string> names=getPfls();
21875 +  return CreateNewNameNotIn("NewPfl_",names);
21876 +}
21877 +
21878 +std::string MEDFileFieldGlobs::createNewNameOfLoc() const
21879 +{
21880 +  std::vector<std::string> names=getLocs();
21881 +  return CreateNewNameNotIn("NewLoc_",names);
21882 +}
21883 +
21884 +std::string MEDFileFieldGlobs::CreateNewNameNotIn(const std::string& prefix, const std::vector<std::string>& namesToAvoid)
21885 +{
21886 +  for(std::size_t sz=0;sz<100000;sz++)
21887 +    {
21888 +      std::ostringstream tryName;
21889 +      tryName << prefix << sz;
21890 +      if(std::find(namesToAvoid.begin(),namesToAvoid.end(),tryName.str())==namesToAvoid.end())
21891 +        return tryName.str();
21892 +    }
21893 +  throw INTERP_KERNEL::Exception("MEDFileFieldGlobs::CreateNewNameNotIn : impossible to create an additional profile limit of 100000 profiles reached !");
21894 +}
21895 +
21896 +/*!
21897 + * Creates a MEDFileFieldGlobsReal on a given file name. Nothing is read here.
21898 + *  \param [in] fname - the file name.
21899 + */
21900 +MEDFileFieldGlobsReal::MEDFileFieldGlobsReal(med_idt fid):_globals(MEDFileFieldGlobs::New(fid))
21901 +{
21902 +}
21903 +
21904 +/*!
21905 + * Creates an empty MEDFileFieldGlobsReal.
21906 + */
21907 +MEDFileFieldGlobsReal::MEDFileFieldGlobsReal():_globals(MEDFileFieldGlobs::New())
21908 +{
21909 +}
21910 +
21911 +std::size_t MEDFileFieldGlobsReal::getHeapMemorySizeWithoutChildren() const
21912 +{
21913 +  return 0;
21914 +}
21915 +
21916 +std::vector<const BigMemoryObject *> MEDFileFieldGlobsReal::getDirectChildrenWithNull() const
21917 +{
21918 +  std::vector<const BigMemoryObject *> ret;
21919 +  ret.push_back((const MEDFileFieldGlobs *)_globals);
21920 +  return ret;
21921 +}
21922 +
21923 +/*!
21924 + * Returns a string describing profiles and Gauss points held in \a this.
21925 + *  \return std::string - the description string.
21926 + */
21927 +void MEDFileFieldGlobsReal::simpleReprGlobs(std::ostream& oss) const
21928 +{
21929 +  const MEDFileFieldGlobs *glob=_globals;
21930 +  std::ostringstream oss2; oss2 << glob;
21931 +  std::string stars(oss2.str().length(),'*');
21932 +  oss << "Globals information on fields (at " << oss2.str() << "):" << "\n************************************" << stars  << "\n\n";
21933 +  if(glob)
21934 +    glob->simpleRepr(oss);
21935 +  else
21936 +    oss << "NO GLOBAL INFORMATION !\n";
21937 +}
21938 +
21939 +void MEDFileFieldGlobsReal::resetContent()
21940 +{
21941 +  _globals=MEDFileFieldGlobs::New();
21942 +}
21943 +
21944 +void MEDFileFieldGlobsReal::killStructureElementsInGlobs()
21945 +{
21946 +  contentNotNull()->killStructureElementsInGlobs();
21947 +}
21948 +
21949 +MEDFileFieldGlobsReal::~MEDFileFieldGlobsReal()
21950 +{
21951 +}
21952 +
21953 +/*!
21954 + * Copies references to profiles and Gauss points from another MEDFileFieldGlobsReal.
21955 + *  \param [in] other - the other MEDFileFieldGlobsReal to copy data from.
21956 + */
21957 +void MEDFileFieldGlobsReal::shallowCpyGlobs(const MEDFileFieldGlobsReal& other)
21958 +{
21959 +  _globals=other._globals;
21960 +}
21961 +
21962 +/*!
21963 + * Copies references to ** only used ** by \a this, profiles and Gauss points from another MEDFileFieldGlobsReal.
21964 + *  \param [in] other - the other MEDFileFieldGlobsReal to copy data from.
21965 + */
21966 +void MEDFileFieldGlobsReal::shallowCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other)
21967 +{
21968 +  const MEDFileFieldGlobs *otherg(other._globals);
21969 +  if(!otherg)
21970 +    return ;
21971 +  _globals=otherg->shallowCpyPart(getPflsReallyUsed(),getLocsReallyUsed());
21972 +}
21973 +
21974 +/*!
21975 + * Copies deeply to ** only used ** by \a this, profiles and Gauss points from another MEDFileFieldGlobsReal.
21976 + *  \param [in] other - the other MEDFileFieldGlobsReal to copy data from.
21977 + */
21978 +void MEDFileFieldGlobsReal::deepCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other)
21979 +{
21980 +  const MEDFileFieldGlobs *otherg(other._globals);
21981 +  if(!otherg)
21982 +    return ;
21983 +  _globals=otherg->deepCpyPart(getPflsReallyUsed(),getLocsReallyUsed());
21984 +}
21985 +
21986 +void MEDFileFieldGlobsReal::deepCpyGlobs(const MEDFileFieldGlobsReal& other)
21987 +{
21988 +  _globals=other._globals;
21989 +  if((const MEDFileFieldGlobs *)_globals)
21990 +    _globals=other._globals->deepCopy();
21991 +}
21992 +
21993 +/*!
21994 + * Adds profiles and Gauss points held by another MEDFileFieldGlobsReal to \a this one.
21995 + *  \param [in] other - the MEDFileFieldGlobsReal to copy data from.
21996 + *  \param [in] eps - a precision used to compare Gauss points with same name held by
21997 + *         \a this and \a other MEDFileFieldGlobsReal.
21998 + *  \throw If \a this and \a other hold profiles with equal names but different ids.
21999 + *  \throw If  \a this and \a other hold different Gauss points with equal names.
22000 + */
22001 +void MEDFileFieldGlobsReal::appendGlobs(const MEDFileFieldGlobsReal& other, double eps)
22002 +{
22003 +  const MEDFileFieldGlobs *thisGlobals(_globals),*otherGlobals(other._globals);
22004 +  if(thisGlobals==otherGlobals)
22005 +    return ;
22006 +  if(!thisGlobals)
22007 +    {
22008 +      _globals=other._globals;
22009 +      return ;
22010 +    }
22011 +  _globals->appendGlobs(*other._globals,eps);
22012 +}
22013 +
22014 +void MEDFileFieldGlobsReal::checkGlobsCoherency() const
22015 +{
22016 +  checkGlobsPflsPartCoherency();
22017 +  checkGlobsLocsPartCoherency();
22018 +}
22019 +
22020 +void MEDFileFieldGlobsReal::checkGlobsPflsPartCoherency() const
22021 +{
22022 +  contentNotNull()->checkGlobsPflsPartCoherency(getPflsReallyUsed());
22023 +}
22024 +
22025 +void MEDFileFieldGlobsReal::checkGlobsLocsPartCoherency() const
22026 +{
22027 +  contentNotNull()->checkGlobsLocsPartCoherency(getLocsReallyUsed());
22028 +}
22029 +
22030 +void MEDFileFieldGlobsReal::loadProfileInFile(med_idt fid, int id, const std::string& pflName)
22031 +{
22032 +  contentNotNull()->loadProfileInFile(fid,id,pflName);
22033 +}
22034 +
22035 +void MEDFileFieldGlobsReal::loadProfileInFile(med_idt fid, int id)
22036 +{
22037 +  contentNotNull()->loadProfileInFile(fid,id);
22038 +}
22039 +
22040 +void MEDFileFieldGlobsReal::loadGlobals(med_idt fid)
22041 +{
22042 +  contentNotNull()->loadGlobals(fid,*this);
22043 +}
22044 +
22045 +void MEDFileFieldGlobsReal::loadAllGlobals(med_idt fid, const MEDFileEntities *entities)
22046 +{
22047 +  contentNotNull()->loadAllGlobals(fid,entities);
22048 +}
22049 +
22050 +void MEDFileFieldGlobsReal::writeGlobals(med_idt fid, const MEDFileWritable& opt) const
22051 +{
22052 +  contentNotNull()->writeGlobals(fid,opt);
22053 +}
22054 +
22055 +/*!
22056 + * Returns names of all profiles. To get only used profiles call getPflsReallyUsed()
22057 + * or getPflsReallyUsedMulti().
22058 + *  \return std::vector<std::string> - a sequence of names of all profiles.
22059 + */
22060 +std::vector<std::string> MEDFileFieldGlobsReal::getPfls() const
22061 +{
22062 +  return contentNotNull()->getPfls();
22063 +}
22064 +
22065 +/*!
22066 + * Returns names of all localizations. To get only used localizations call getLocsReallyUsed()
22067 + * or getLocsReallyUsedMulti().
22068 + *  \return std::vector<std::string> - a sequence of names of all localizations.
22069 + */
22070 +std::vector<std::string> MEDFileFieldGlobsReal::getLocs() const
22071 +{
22072 +  return contentNotNull()->getLocs();
22073 +}
22074 +
22075 +/*!
22076 + * Checks if the profile with a given name exists.
22077 + *  \param [in] pflName - the profile name of interest.
22078 + *  \return bool - \c true if the profile named \a pflName exists.
22079 + */
22080 +bool MEDFileFieldGlobsReal::existsPfl(const std::string& pflName) const
22081 +{
22082 +  return contentNotNull()->existsPfl(pflName);
22083 +}
22084 +
22085 +/*!
22086 + * Checks if the localization with a given name exists.
22087 + *  \param [in] locName - the localization name of interest.
22088 + *  \return bool - \c true if the localization named \a locName exists.
22089 + */
22090 +bool MEDFileFieldGlobsReal::existsLoc(const std::string& locName) const
22091 +{
22092 +  return contentNotNull()->existsLoc(locName);
22093 +}
22094 +
22095 +std::string MEDFileFieldGlobsReal::createNewNameOfPfl() const
22096 +{
22097 +  return contentNotNull()->createNewNameOfPfl();
22098 +}
22099 +
22100 +std::string MEDFileFieldGlobsReal::createNewNameOfLoc() const
22101 +{
22102 +  return contentNotNull()->createNewNameOfLoc();
22103 +}
22104 +
22105 +/*!
22106 + * Sets the name of a MED file.
22107 + *  \param [inout] fileName - the file name.
22108 + */
22109 +void MEDFileFieldGlobsReal::setFileName(const std::string& fileName)
22110 +{
22111 +  contentNotNull()->setFileName(fileName);
22112 +}
22113 +
22114 +/*!
22115 + * Finds equal profiles. Two profiles are considered equal if they contain the same ids
22116 + * in the same order.
22117 + *  \return std::vector< std::vector<int> > - a sequence of groups of equal profiles.
22118 + *          Each item of this sequence is a vector containing ids of equal profiles.
22119 + */
22120 +std::vector< std::vector<int> > MEDFileFieldGlobsReal::whichAreEqualProfiles() const
22121 +{
22122 +  return contentNotNull()->whichAreEqualProfiles();
22123 +}
22124 +
22125 +/*!
22126 + * Finds equal localizations.
22127 + *  \param [in] eps - a precision used to compare real values of the localizations.
22128 + *  \return std::vector< std::vector<int> > - a sequence of groups of equal localizations.
22129 + *          Each item of this sequence is a vector containing ids of equal localizations.
22130 + */
22131 +std::vector< std::vector<int> > MEDFileFieldGlobsReal::whichAreEqualLocs(double eps) const
22132 +{
22133 +  return contentNotNull()->whichAreEqualLocs(eps);
22134 +}
22135 +
22136 +/*!
22137 + * Renames the profiles. References to profiles (a reference is a profile name) are not changed.
22138 + * \param [in] mapOfModif - a sequence describing required renaming. Each element of
22139 + *        this sequence is a pair whose 
22140 + *        - the first item is a vector of profile names to replace by the second item,
22141 + *        - the second item is a profile name to replace every profile name of the first item.
22142 + */
22143 +void MEDFileFieldGlobsReal::changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
22144 +{
22145 +  contentNotNull()->changePflsNamesInStruct(mapOfModif);
22146 +}
22147 +
22148 +/*!
22149 + * Renames the localizations. References to localizations (a reference is a localization name) are not changed.
22150 + * \param [in] mapOfModif - a sequence describing required renaming. Each element of
22151 + *        this sequence is a pair whose 
22152 + *        - the first item is a vector of localization names to replace by the second item,
22153 + *        - the second item is a localization name to replace every localization name of the first item.
22154 + */
22155 +void MEDFileFieldGlobsReal::changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
22156 +{
22157 +  contentNotNull()->changeLocsNamesInStruct(mapOfModif);
22158 +}
22159 +
22160 +/*!
22161 + * Replaces references to some profiles (a reference is a profile name) by references
22162 + * to other profiles and, contrary to changePflsRefsNamesGen(), renames the profiles
22163 + * them-selves accordingly. <br>
22164 + * This method is a generalization of changePflName().
22165 + * \param [in] mapOfModif - a sequence describing required replacements. Each element of
22166 + *        this sequence is a pair whose 
22167 + *        - the first item is a vector of profile names to replace by the second item,
22168 + *        - the second item is a profile name to replace every profile of the first item.
22169 + * \sa changePflsRefsNamesGen()
22170 + * \sa changePflName()
22171 + */
22172 +void MEDFileFieldGlobsReal::changePflsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
22173 +{
22174 +  changePflsRefsNamesGen(mapOfModif);
22175 +  changePflsNamesInStruct(mapOfModif);
22176 +}
22177 +
22178 +/*!
22179 + * Replaces references to some localizations (a reference is a localization name) by references
22180 + * to other localizations and, contrary to changeLocsRefsNamesGen(), renames the localizations
22181 + * them-selves accordingly. <br>
22182 + * This method is a generalization of changeLocName().
22183 + * \param [in] mapOfModif - a sequence describing required replacements. Each element of
22184 + *        this sequence is a pair whose 
22185 + *        - the first item is a vector of localization names to replace by the second item,
22186 + *        - the second item is a localization name to replace every localization of the first item.
22187 + * \sa changeLocsRefsNamesGen()
22188 + * \sa changeLocName()
22189 + */
22190 +void MEDFileFieldGlobsReal::changeLocsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
22191 +{
22192 +  changeLocsRefsNamesGen(mapOfModif);
22193 +  changeLocsNamesInStruct(mapOfModif);
22194 +}
22195 +
22196 +/*!
22197 + * Renames the profile having a given name and updates references to this profile.
22198 + *  \param [in] oldName - the name of the profile to rename.
22199 + *  \param [in] newName - a new name of the profile.
22200 + * \sa changePflsNames().
22201 + */
22202 +void MEDFileFieldGlobsReal::changePflName(const std::string& oldName, const std::string& newName)
22203 +{
22204 +  std::vector< std::pair<std::vector<std::string>, std::string > > mapOfModif(1);
22205 +  std::pair<std::vector<std::string>, std::string > p(std::vector<std::string>(1,std::string(oldName)),std::string(newName));
22206 +  mapOfModif[0]=p;
22207 +  changePflsNames(mapOfModif);
22208 +}
22209 +
22210 +/*!
22211 + * Renames the localization having a given name and updates references to this localization.
22212 + *  \param [in] oldName - the name of the localization to rename.
22213 + *  \param [in] newName - a new name of the localization.
22214 + * \sa changeLocsNames().
22215 + */
22216 +void MEDFileFieldGlobsReal::changeLocName(const std::string& oldName, const std::string& newName)
22217 +{
22218 +  std::vector< std::pair<std::vector<std::string>, std::string > > mapOfModif(1);
22219 +  std::pair<std::vector<std::string>, std::string > p(std::vector<std::string>(1,std::string(oldName)),std::string(newName));
22220 +  mapOfModif[0]=p;
22221 +  changeLocsNames(mapOfModif);
22222 +}
22223 +
22224 +/*!
22225 + * Removes duplicated profiles. Returns a map used to update references to removed 
22226 + * profiles via changePflsRefsNamesGen().
22227 + * Equal profiles are found using whichAreEqualProfiles().
22228 + *  \return std::vector< std::pair<std::vector<std::string>, std::string > > - 
22229 + *          a sequence describing the performed replacements of profiles. Each element of
22230 + *          this sequence is a pair whose
22231 + *          - the first item is a vector of profile names replaced by the second item,
22232 + *          - the second item is a profile name replacing every profile of the first item.
22233 + */
22234 +std::vector< std::pair<std::vector<std::string>, std::string > > MEDFileFieldGlobsReal::zipPflsNames()
22235 +{
22236 +  std::vector< std::vector<int> > pseudoRet=whichAreEqualProfiles();
22237 +  std::vector< std::pair<std::vector<std::string>, std::string > > ret(pseudoRet.size());
22238 +  int i=0;
22239 +  for(std::vector< std::vector<int> >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++)
22240 +    {
22241 +      std::vector< std::string > tmp((*it).size());
22242 +      int j=0;
22243 +      for(std::vector<int>::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++)
22244 +        tmp[j]=std::string(getProfileFromId(*it2)->getName());
22245 +      std::pair<std::vector<std::string>, std::string > p(tmp,tmp.front());
22246 +      ret[i]=p;
22247 +      std::vector<int> tmp2((*it).begin()+1,(*it).end());
22248 +      killProfileIds(tmp2);
22249 +    }
22250 +  changePflsRefsNamesGen(ret);
22251 +  return ret;
22252 +}
22253 +
22254 +/*!
22255 + * Removes duplicated localizations. Returns a map used to update references to removed 
22256 + * localizations via changeLocsRefsNamesGen().
22257 + * Equal localizations are found using whichAreEqualLocs().
22258 + *  \param [in] eps - a precision used to compare real values of the localizations.
22259 + *  \return std::vector< std::pair<std::vector<std::string>, std::string > > - 
22260 + *          a sequence describing the performed replacements of localizations. Each element of
22261 + *          this sequence is a pair whose
22262 + *          - the first item is a vector of localization names replaced by the second item,
22263 + *          - the second item is a localization name replacing every localization of the first item.
22264 + */
22265 +std::vector< std::pair<std::vector<std::string>, std::string > > MEDFileFieldGlobsReal::zipLocsNames(double eps)
22266 +{
22267 +  std::vector< std::vector<int> > pseudoRet=whichAreEqualLocs(eps);
22268 +  std::vector< std::pair<std::vector<std::string>, std::string > > ret(pseudoRet.size());
22269 +  int i=0;
22270 +  for(std::vector< std::vector<int> >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++)
22271 +    {
22272 +      std::vector< std::string > tmp((*it).size());
22273 +      int j=0;
22274 +      for(std::vector<int>::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++)
22275 +        tmp[j]=std::string(getLocalizationFromId(*it2).getName());
22276 +      std::pair<std::vector<std::string>, std::string > p(tmp,tmp.front());
22277 +      ret[i]=p;
22278 +      std::vector<int> tmp2((*it).begin()+1,(*it).end());
22279 +      killLocalizationIds(tmp2);
22280 +    }
22281 +  changeLocsRefsNamesGen(ret);
22282 +  return ret;
22283 +}
22284 +
22285 +/*!
22286 + * Returns number of Gauss points per cell in a given localization.
22287 + *  \param [in] locId - an id of the localization of interest.
22288 + *  \return int - the number of the Gauss points per cell.
22289 + */
22290 +int MEDFileFieldGlobsReal::getNbOfGaussPtPerCell(int locId) const
22291 +{
22292 +  return contentNotNull()->getNbOfGaussPtPerCell(locId);
22293 +}
22294 +
22295 +/*!
22296 + * Returns an id of a localization by its name.
22297 + *  \param [in] loc - the localization name of interest.
22298 + *  \return int - the id of the localization.
22299 + *  \throw If there is no a localization named \a loc.
22300 + */
22301 +int MEDFileFieldGlobsReal::getLocalizationId(const std::string& loc) const
22302 +{
22303 +  return contentNotNull()->getLocalizationId(loc);
22304 +}
22305 +
22306 +/*!
22307 + * Returns an id of a profile by its name.
22308 + *  \param [in] loc - the profile name of interest.
22309 + *  \return int - the id of the profile.
22310 + *  \throw If there is no a profile named \a loc.
22311 + */
22312 +int MEDFileFieldGlobsReal::getProfileId(const std::string& pfl) const
22313 +{
22314 +  return contentNotNull()->getProfileId(pfl);
22315 +}
22316 +
22317 +/*!
22318 + * Returns the name of the MED file.
22319 + *  \return const std::string&  - the MED file name.
22320 + */
22321 +std::string MEDFileFieldGlobsReal::getFileName() const
22322 +{
22323 +  return contentNotNull()->getFileName();
22324 +}
22325 +
22326 +/*!
22327 + * Returns a localization object by its name.
22328 + *  \param [in] locName - the name of the localization of interest.
22329 + *  \return const MEDFileFieldLoc& - the localization object having the name \a locName.
22330 + *  \throw If there is no a localization named \a locName.
22331 + */
22332 +const MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalization(const std::string& locName) const
22333 +{
22334 +  return contentNotNull()->getLocalization(locName);
22335 +}
22336 +
22337 +/*!
22338 + * Returns a localization object by its id.
22339 + *  \param [in] locId - the id of the localization of interest.
22340 + *  \return const MEDFileFieldLoc& - the localization object having the id \a locId.
22341 + *  \throw If there is no a localization with id \a locId.
22342 + */
22343 +const MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalizationFromId(int locId) const
22344 +{
22345 +  return contentNotNull()->getLocalizationFromId(locId);
22346 +}
22347 +
22348 +/*!
22349 + * Returns a profile array by its name.
22350 + *  \param [in] pflName - the name of the profile of interest.
22351 + *  \return const DataArrayInt * - the profile array having the name \a pflName.
22352 + *  \throw If there is no a profile named \a pflName.
22353 + */
22354 +const DataArrayInt *MEDFileFieldGlobsReal::getProfile(const std::string& pflName) const
22355 +{
22356 +  return contentNotNull()->getProfile(pflName);
22357 +}
22358 +
22359 +/*!
22360 + * Returns a profile array by its id.
22361 + *  \param [in] pflId - the id of the profile of interest.
22362 + *  \return const DataArrayInt * - the profile array having the id \a pflId.
22363 + *  \throw If there is no a profile with id \a pflId.
22364 + */
22365 +const DataArrayInt *MEDFileFieldGlobsReal::getProfileFromId(int pflId) const
22366 +{
22367 +  return contentNotNull()->getProfileFromId(pflId);
22368 +}
22369 +
22370 +/*!
22371 + * Returns a localization object, apt for modification, by its id.
22372 + *  \param [in] locId - the id of the localization of interest.
22373 + *  \return MEDFileFieldLoc& - a non-const reference to the localization object
22374 + *          having the id \a locId.
22375 + *  \throw If there is no a localization with id \a locId.
22376 + */
22377 +MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalizationFromId(int locId)
22378 +{
22379 +  return contentNotNull()->getLocalizationFromId(locId);
22380 +}
22381 +
22382 +/*!
22383 + * Returns a localization object, apt for modification, by its name.
22384 + *  \param [in] locName - the name of the localization of interest.
22385 + *  \return MEDFileFieldLoc& - a non-const reference to the localization object
22386 + *          having the name \a locName.
22387 + *  \throw If there is no a localization named \a locName.
22388 + */
22389 +MEDFileFieldLoc& MEDFileFieldGlobsReal::getLocalization(const std::string& locName)
22390 +{
22391 +  return contentNotNull()->getLocalization(locName);
22392 +}
22393 +
22394 +/*!
22395 + * Returns a profile array, apt for modification, by its name.
22396 + *  \param [in] pflName - the name of the profile of interest.
22397 + *  \return DataArrayInt * - Borrowed reference - a non-const pointer to the profile array having the name \a pflName.
22398 + *  \throw If there is no a profile named \a pflName.
22399 + */
22400 +DataArrayInt *MEDFileFieldGlobsReal::getProfile(const std::string& pflName)
22401 +{
22402 +  return contentNotNull()->getProfile(pflName);
22403 +}
22404 +
22405 +/*!
22406 + * Returns a profile array, apt for modification, by its id.
22407 + *  \param [in] pflId - the id of the profile of interest.
22408 + *  \return DataArrayInt * - Borrowed reference - a non-const pointer to the profile array having the id \a pflId.
22409 + *  \throw If there is no a profile with id \a pflId.
22410 + */
22411 +DataArrayInt *MEDFileFieldGlobsReal::getProfileFromId(int pflId)
22412 +{
22413 +  return contentNotNull()->getProfileFromId(pflId);
22414 +}
22415 +
22416 +/*!
22417 + * Removes profiles given by their ids. No data is updated to track this removal.
22418 + *  \param [in] pflIds - a sequence of ids of the profiles to remove.
22419 + */
22420 +void MEDFileFieldGlobsReal::killProfileIds(const std::vector<int>& pflIds)
22421 +{
22422 +  contentNotNull()->killProfileIds(pflIds);
22423 +}
22424 +
22425 +/*!
22426 + * Removes localizations given by their ids. No data is updated to track this removal.
22427 + *  \param [in] locIds - a sequence of ids of the localizations to remove.
22428 + */
22429 +void MEDFileFieldGlobsReal::killLocalizationIds(const std::vector<int>& locIds)
22430 +{
22431 +  contentNotNull()->killLocalizationIds(locIds);
22432 +}
22433 +
22434 +/*!
22435 + * Stores a profile array.
22436 + *  \param [in] pfl - the profile array to store.
22437 + *  \throw If the name of \a pfl is empty.
22438 + *  \throw If a profile with the same name as that of \a pfl already exists but contains
22439 + *         different ids.
22440 + */
22441 +void MEDFileFieldGlobsReal::appendProfile(DataArrayInt *pfl)
22442 +{
22443 +  contentNotNull()->appendProfile(pfl);
22444 +}
22445 +
22446 +/*!
22447 + * Adds a new localization of Gauss points.
22448 + *  \param [in] locName - the name of the new localization.
22449 + *  \param [in] geoType - a geometrical type of the reference cell.
22450 + *  \param [in] refCoo - coordinates of points of the reference cell. Size of this vector
22451 + *         must be \c nbOfNodesPerCell * \c dimOfType.
22452 + *  \param [in] gsCoo - coordinates of Gauss points on the reference cell. Size of this vector
22453 + *         must be  _wg_.size() * \c dimOfType.
22454 + *  \param [in] w - the weights of Gauss points.
22455 + *  \throw If \a locName is empty.
22456 + *  \throw If a localization with the name \a locName already exists but is
22457 + *         different form the new one.
22458 + */
22459 +void MEDFileFieldGlobsReal::appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w)
22460 +{
22461 +  contentNotNull()->appendLoc(locName,geoType,refCoo,gsCoo,w);
22462 +}
22463 +
22464 +MEDFileFieldGlobs *MEDFileFieldGlobsReal::contentNotNull()
22465 +{
22466 +  MEDFileFieldGlobs *g(_globals);
22467 +  if(!g)
22468 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobsReal::contentNotNull : no content in not const !");
22469 +  return g;
22470 +}
22471 +
22472 +const MEDFileFieldGlobs *MEDFileFieldGlobsReal::contentNotNull() const
22473 +{
22474 +  const MEDFileFieldGlobs *g(_globals);
22475 +  if(!g)
22476 +    throw INTERP_KERNEL::Exception("MEDFileFieldGlobsReal::contentNotNull : no content in const !");
22477 +  return g;
22478 +}
22479 +
22480 +//= MEDFileFieldNameScope
22481 +
22482 +MEDFileFieldNameScope::MEDFileFieldNameScope()
22483 +{
22484 +}
22485 +
22486 +MEDFileFieldNameScope::MEDFileFieldNameScope(const std::string& fieldName, const std::string& meshName):_name(fieldName),_mesh_name(meshName)
22487 +{
22488 +}
22489 +
22490 +/*!
22491 + * Returns the name of \a this field.
22492 + *  \return std::string - a string containing the field name.
22493 + */
22494 +std::string MEDFileFieldNameScope::getName() const
22495 +{
22496 +  return _name;
22497 +}
22498 +
22499 +/*!
22500 + * Sets name of \a this field
22501 + *  \param [in] name - the new field name.
22502 + */
22503 +void MEDFileFieldNameScope::setName(const std::string& fieldName)
22504 +{
22505 +  _name=fieldName;
22506 +}
22507 +
22508 +std::string MEDFileFieldNameScope::getDtUnit() const
22509 +{
22510 +  return _dt_unit;
22511 +}
22512 +
22513 +void MEDFileFieldNameScope::setDtUnit(const std::string& dtUnit)
22514 +{
22515 +  _dt_unit=dtUnit;
22516 +}
22517 +
22518 +void MEDFileFieldNameScope::copyNameScope(const MEDFileFieldNameScope& other)
22519 +{
22520 +  _name=other._name;
22521 +  _mesh_name=other._mesh_name;
22522 +  _dt_unit=other._dt_unit;
22523 +}
22524 +
22525 +/*!
22526 + * Returns the mesh name.
22527 + *  \return std::string - a string holding the mesh name.
22528 + *  \throw If \c _field_per_mesh.empty()
22529 + */
22530 +std::string MEDFileFieldNameScope::getMeshName() const
22531 +{
22532 +  return _mesh_name;
22533 +}
22534 +
22535 +void MEDFileFieldNameScope::setMeshName(const std::string& meshName)
22536 +{
22537 +  _mesh_name=meshName;
22538 +}
22539 +
22540 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldGlobs.hxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldGlobs.hxx
22541 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldGlobs.hxx 1970-01-01 01:00:00.000000000 +0100
22542 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldGlobs.hxx 2018-04-19 17:25:17.835799294 +0200
22543 @@ -0,0 +1,192 @@
22544 +// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
22545 +//
22546 +// This library is free software; you can redistribute it and/or
22547 +// modify it under the terms of the GNU Lesser General Public
22548 +// License as published by the Free Software Foundation; either
22549 +// version 2.1 of the License, or (at your option) any later version.
22550 +//
22551 +// This library is distributed in the hope that it will be useful,
22552 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
22553 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
22554 +// Lesser General Public License for more details.
22555 +//
22556 +// You should have received a copy of the GNU Lesser General Public
22557 +// License along with this library; if not, write to the Free Software
22558 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22559 +//
22560 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22561 +//
22562 +// Author : Anthony Geay (EDF R&D)
22563 +
22564 +#ifndef __MEDFILEFIELDGLOBS_HXX__
22565 +#define __MEDFILEFIELDGLOBS_HXX__
22566 +
22567 +#include "MEDLoaderDefines.hxx"
22568 +
22569 +#include "NormalizedGeometricTypes"
22570 +#include "MEDCouplingMemArray.hxx"
22571 +#include "MCAuto.hxx"
22572 +
22573 +#include "med.h"
22574 +
22575 +namespace MEDCoupling
22576 +{
22577 +  class MEDFileFieldGlobsReal;
22578 +  class MEDFileEntities;
22579 +  class MEDFileWritable;
22580 +  class MEDFileFieldLoc;
22581 +  
22582 +  class MEDFileFieldGlobs : public RefCountObject
22583 +  {
22584 +  public:
22585 +    static MEDFileFieldGlobs *New(med_idt fid);
22586 +    static MEDFileFieldGlobs *New();
22587 +    std::size_t getHeapMemorySizeWithoutChildren() const;
22588 +    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
22589 +    MEDFileFieldGlobs *deepCopy() const;
22590 +    MEDFileFieldGlobs *shallowCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const;
22591 +    MEDFileFieldGlobs *deepCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const;
22592 +    void simpleRepr(std::ostream& oss) const;
22593 +    void appendGlobs(const MEDFileFieldGlobs& other, double eps);
22594 +    void checkGlobsPflsPartCoherency(const std::vector<std::string>& pflsUsed) const;
22595 +    void checkGlobsLocsPartCoherency(const std::vector<std::string>& locsUsed) const;
22596 +    void loadProfileInFile(med_idt fid, int id, const std::string& pflName);
22597 +    void loadProfileInFile(med_idt fid, int id);
22598 +    void loadGlobals(med_idt fid, const MEDFileFieldGlobsReal& real);
22599 +    void loadAllGlobals(med_idt fid, const MEDFileEntities *entities);
22600 +    void writeGlobals(med_idt fid, const MEDFileWritable& opt) const;
22601 +    std::vector<std::string> getPfls() const;
22602 +    std::vector<std::string> getLocs() const;
22603 +    bool existsPfl(const std::string& pflName) const;
22604 +    bool existsLoc(const std::string& locName) const;
22605 +    std::string createNewNameOfPfl() const;
22606 +    std::string createNewNameOfLoc() const;
22607 +    std::vector< std::vector<int> > whichAreEqualProfiles() const;
22608 +    std::vector< std::vector<int> > whichAreEqualLocs(double eps) const;
22609 +    void setFileName(const std::string& fileName) { _file_name=fileName; }
22610 +    void changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22611 +    void changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22612 +    int getNbOfGaussPtPerCell(int locId) const;
22613 +    int getLocalizationId(const std::string& loc) const;
22614 +    int getProfileId(const std::string& pfl) const;
22615 +    std::string getFileName() const { return _file_name; }
22616 +    const MEDFileFieldLoc& getLocalizationFromId(int locId) const;
22617 +    const MEDFileFieldLoc& getLocalization(const std::string& locName) const;
22618 +    const DataArrayInt *getProfileFromId(int pflId) const;
22619 +    const DataArrayInt *getProfile(const std::string& pflName) const;
22620 +    MEDFileFieldLoc& getLocalizationFromId(int locId);
22621 +    MEDFileFieldLoc& getLocalization(const std::string& locName);
22622 +    DataArrayInt *getProfile(const std::string& pflName);
22623 +    DataArrayInt *getProfileFromId(int pflId);
22624 +    void killProfileIds(const std::vector<int>& pflIds);
22625 +    void killLocalizationIds(const std::vector<int>& locIds);
22626 +    void killStructureElementsInGlobs();
22627 +    //
22628 +    void appendProfile(DataArrayInt *pfl);
22629 +    void appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
22630 +    //
22631 +    static std::string CreateNewNameNotIn(const std::string& prefix, const std::vector<std::string>& namesToAvoid);
22632 +  protected:
22633 +    MEDFileFieldGlobs(med_idt fid);
22634 +    MEDFileFieldGlobs();
22635 +    ~MEDFileFieldGlobs();
22636 +  protected:
22637 +    std::vector< MCAuto<DataArrayInt> > _pfls;
22638 +    std::vector< MCAuto<MEDFileFieldLoc> > _locs;
22639 +    std::string _file_name;
22640 +  };
22641 +
22642 +  /// @endcond INTERNAL
22643 +
22644 +  class MEDFileFieldGlobsReal
22645 +  {
22646 +  public:
22647 +    MEDLOADER_EXPORT MEDFileFieldGlobsReal(med_idt fid);
22648 +    MEDLOADER_EXPORT MEDFileFieldGlobsReal();
22649 +    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
22650 +    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
22651 +    MEDLOADER_EXPORT void simpleReprGlobs(std::ostream& oss) const;
22652 +    MEDLOADER_EXPORT void resetContent();
22653 +    MEDLOADER_EXPORT void killStructureElementsInGlobs();
22654 +    MEDLOADER_EXPORT void shallowCpyGlobs(const MEDFileFieldGlobsReal& other);
22655 +    MEDLOADER_EXPORT void deepCpyGlobs(const MEDFileFieldGlobsReal& other);
22656 +    MEDLOADER_EXPORT void shallowCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other);
22657 +    MEDLOADER_EXPORT void deepCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other);
22658 +    MEDLOADER_EXPORT void appendGlobs(const MEDFileFieldGlobsReal& other, double eps);
22659 +    MEDLOADER_EXPORT void checkGlobsCoherency() const;
22660 +    MEDLOADER_EXPORT void checkGlobsPflsPartCoherency() const;
22661 +    MEDLOADER_EXPORT void checkGlobsLocsPartCoherency() const;
22662 +    MEDLOADER_EXPORT virtual std::vector<std::string> getPflsReallyUsed() const = 0;
22663 +    MEDLOADER_EXPORT virtual std::vector<std::string> getLocsReallyUsed() const = 0;
22664 +    MEDLOADER_EXPORT virtual std::vector<std::string> getPflsReallyUsedMulti() const = 0;
22665 +    MEDLOADER_EXPORT virtual std::vector<std::string> getLocsReallyUsedMulti() const = 0;
22666 +    MEDLOADER_EXPORT virtual void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) = 0;
22667 +    MEDLOADER_EXPORT virtual void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) = 0;
22668 +    MEDLOADER_EXPORT virtual ~MEDFileFieldGlobsReal();
22669 +    //
22670 +    MEDLOADER_EXPORT void loadProfileInFile(med_idt fid, int id, const std::string& pflName);
22671 +    MEDLOADER_EXPORT void loadProfileInFile(med_idt fid, int id);
22672 +    MEDLOADER_EXPORT void loadGlobals(med_idt fid);
22673 +    MEDLOADER_EXPORT void loadAllGlobals(med_idt fid, const MEDFileEntities *entities=0);
22674 +    MEDLOADER_EXPORT void writeGlobals(med_idt fid, const MEDFileWritable& opt) const;
22675 +    MEDLOADER_EXPORT std::vector<std::string> getPfls() const;
22676 +    MEDLOADER_EXPORT std::vector<std::string> getLocs() const;
22677 +    MEDLOADER_EXPORT bool existsPfl(const std::string& pflName) const;
22678 +    MEDLOADER_EXPORT bool existsLoc(const std::string& locName) const;
22679 +    MEDLOADER_EXPORT std::string createNewNameOfPfl() const;
22680 +    MEDLOADER_EXPORT std::string createNewNameOfLoc() const;
22681 +    MEDLOADER_EXPORT std::vector< std::vector<int> > whichAreEqualProfiles() const;
22682 +    MEDLOADER_EXPORT std::vector< std::vector<int> > whichAreEqualLocs(double eps) const;
22683 +    MEDLOADER_EXPORT void setFileName(const std::string& fileName);
22684 +    MEDLOADER_EXPORT void changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22685 +    MEDLOADER_EXPORT void changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22686 +    MEDLOADER_EXPORT void changePflsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22687 +    MEDLOADER_EXPORT void changeLocsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22688 +    MEDLOADER_EXPORT void changePflName(const std::string& oldName, const std::string& newName);
22689 +    MEDLOADER_EXPORT void changeLocName(const std::string& oldName, const std::string& newName);
22690 +    MEDLOADER_EXPORT std::vector< std::pair<std::vector<std::string>, std::string > > zipPflsNames();
22691 +    MEDLOADER_EXPORT std::vector< std::pair<std::vector<std::string>, std::string > > zipLocsNames(double eps);
22692 +    MEDLOADER_EXPORT int getNbOfGaussPtPerCell(int locId) const;
22693 +    MEDLOADER_EXPORT int getLocalizationId(const std::string& loc) const;
22694 +    MEDLOADER_EXPORT int getProfileId(const std::string& pfl) const;
22695 +    MEDLOADER_EXPORT std::string getFileName() const;
22696 +    MEDLOADER_EXPORT const MEDFileFieldLoc& getLocalizationFromId(int locId) const;
22697 +    MEDLOADER_EXPORT const MEDFileFieldLoc& getLocalization(const std::string& locName) const;
22698 +    MEDLOADER_EXPORT MEDFileFieldLoc& getLocalizationFromId(int locId);
22699 +    MEDLOADER_EXPORT MEDFileFieldLoc& getLocalization(const std::string& locName);
22700 +    MEDLOADER_EXPORT const DataArrayInt *getProfile(const std::string& pflName) const;
22701 +    MEDLOADER_EXPORT const DataArrayInt *getProfileFromId(int pflId) const;
22702 +    MEDLOADER_EXPORT DataArrayInt *getProfile(const std::string& pflName);
22703 +    MEDLOADER_EXPORT DataArrayInt *getProfileFromId(int pflId);
22704 +    MEDLOADER_EXPORT void killProfileIds(const std::vector<int>& pflIds);
22705 +    MEDLOADER_EXPORT void killLocalizationIds(const std::vector<int>& locIds);
22706 +    //
22707 +    MEDLOADER_EXPORT void appendProfile(DataArrayInt *pfl);
22708 +    MEDLOADER_EXPORT void appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
22709 +  protected:
22710 +    MEDFileFieldGlobs *contentNotNull();
22711 +    const MEDFileFieldGlobs *contentNotNull() const;
22712 +  protected:
22713 +    MCAuto< MEDFileFieldGlobs > _globals;
22714 +  };
22715 +
22716 +  class MEDFileFieldNameScope
22717 +  {
22718 +  public:
22719 +    MEDLOADER_EXPORT MEDFileFieldNameScope();
22720 +    MEDLOADER_EXPORT MEDFileFieldNameScope(const std::string& fieldName, const std::string& meshName);
22721 +    MEDLOADER_EXPORT std::string getName() const;
22722 +    MEDLOADER_EXPORT void setName(const std::string& fieldName);
22723 +    MEDLOADER_EXPORT std::string getDtUnit() const;
22724 +    MEDLOADER_EXPORT void setDtUnit(const std::string& dtUnit);
22725 +    MEDLOADER_EXPORT void copyNameScope(const MEDFileFieldNameScope& other);
22726 +    MEDLOADER_EXPORT std::string getMeshName() const;
22727 +    MEDLOADER_EXPORT void setMeshName(const std::string& meshName);
22728 +  protected:
22729 +    std::string _name;
22730 +    std::string _dt_unit;
22731 +    std::string _mesh_name;
22732 +  };
22733 +}
22734 +
22735 +#endif
22736 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileField.hxx MEDCOUPLING_new/src/MEDLoader/MEDFileField.hxx
22737 --- MEDCOUPLING_old/src/MEDLoader/MEDFileField.hxx      2018-04-19 17:04:36.757223122 +0200
22738 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileField.hxx      2018-04-19 17:25:17.821799017 +0200
22739 @@ -23,6 +23,11 @@
22740  
22741  #include "MEDLoaderDefines.hxx"
22742  
22743 +#include "MEDFileFieldInternal.hxx"
22744 +#include "MEDFileFieldGlobs.hxx"
22745 +#include "MEDFileField1TS.hxx"
22746 +#include "MEDFileFieldMultiTS.hxx"
22747 +
22748  #include "MEDFileFieldOverView.hxx"
22749  #include "MEDFileUtilities.txx"
22750  #include "MEDFileEntities.hxx"
22751 @@ -53,1326 +58,8 @@
22752    class MEDFileMesh;
22753    class MEDFileFieldVisitor;
22754  
22755 -  class MEDFileGTKeeper
22756 -  {
22757 -  public:
22758 -    virtual MEDFileGTKeeper *deepCopy() const = 0;
22759 -    virtual INTERP_KERNEL::NormalizedCellType getGeoType() const = 0;
22760 -    virtual std::string getRepr() const = 0;
22761 -    virtual bool isEqual(const MEDFileGTKeeper *other) const = 0;
22762 -    virtual ~MEDFileGTKeeper();
22763 -  };
22764 -
22765 -  class MEDFileGTKeeperSta : public MEDFileGTKeeper
22766 -  {
22767 -  public:
22768 -    MEDFileGTKeeperSta(INTERP_KERNEL::NormalizedCellType gt):_geo_type(gt) { }
22769 -    MEDFileGTKeeper *deepCopy() const;
22770 -    INTERP_KERNEL::NormalizedCellType getGeoType() const;
22771 -    std::string getRepr() const;
22772 -    bool isEqual(const MEDFileGTKeeper *other) const;
22773 -  private:
22774 -    INTERP_KERNEL::NormalizedCellType _geo_type;
22775 -  };
22776 -
22777 -
22778 -  class MEDFileGTKeeperDyn : public MEDFileGTKeeper
22779 -  {
22780 -  public:
22781 -    MEDFileGTKeeperDyn(const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileStructureElement *se);
22782 -    MEDFileGTKeeper *deepCopy() const;
22783 -    INTERP_KERNEL::NormalizedCellType getGeoType() const;
22784 -    std::string getRepr() const;
22785 -    bool isEqual(const MEDFileGTKeeper *other) const;
22786 -    const MEDFileUMesh *getMesh() const { return _mesh; }
22787 -    const MEDFileUMesh *getSection() const { return _section; }
22788 -    const MEDFileStructureElement *getSE() const { return _se; }
22789 -  private:
22790 -    MCConstAuto<MEDFileUMesh> _mesh;
22791 -    MCConstAuto<MEDFileUMesh> _section;
22792 -    MCConstAuto<MEDFileStructureElement> _se;
22793 -  };
22794 -    
22795 -  class MEDFileFieldLoc : public RefCountObject
22796 -  {
22797 -  public:
22798 -    MEDLOADER_EXPORT void simpleRepr(std::ostream& oss) const;
22799 -    MEDLOADER_EXPORT std::string getName() const { return _name; }
22800 -    MEDLOADER_EXPORT void setName(const std::string& name);
22801 -    static MEDFileFieldLoc *New(med_idt fid, const std::string& locName);
22802 -    static MEDFileFieldLoc *New(med_idt fid, int i, const MEDFileEntities *entities);
22803 -    static MEDFileFieldLoc *New(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
22804 -    std::size_t getHeapMemorySizeWithoutChildren() const;
22805 -    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
22806 -    MEDFileFieldLoc *deepCopy() const;
22807 -    bool isOnStructureElement() const;
22808 -    const MEDFileGTKeeper *getUndergroundGTKeeper() const { return _gt; }
22809 -    MEDLOADER_EXPORT int getNbOfGaussPtPerCell() const { return _nb_gauss_pt; }
22810 -    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
22811 -    MEDLOADER_EXPORT std::string repr() const;
22812 -    MEDLOADER_EXPORT bool isName(const std::string& name) const { return _name==name; }
22813 -    MEDLOADER_EXPORT int getDimension() const { return _dim; }
22814 -    MEDLOADER_EXPORT int getNumberOfGaussPoints() const { return _nb_gauss_pt; }
22815 -    MEDLOADER_EXPORT int getNumberOfPointsInCells() const { return _nb_node_per_cell; }
22816 -    MEDLOADER_EXPORT const std::vector<double>& getRefCoords() const { return _ref_coo; }
22817 -    MEDLOADER_EXPORT const std::vector<double>& getGaussCoords() const { return _gs_coo; }
22818 -    MEDLOADER_EXPORT const std::vector<double>& getGaussWeights() const { return _w; }
22819 -    MEDLOADER_EXPORT INTERP_KERNEL::NormalizedCellType getGeoType() const { return _gt->getGeoType(); }
22820 -    MEDLOADER_EXPORT bool isEqual(const MEDFileFieldLoc& other, double eps) const;
22821 -  private:
22822 -    MEDFileFieldLoc(const MEDFileFieldLoc& other);
22823 -    MEDFileFieldLoc(med_idt fid, const std::string& locName);
22824 -    MEDFileFieldLoc(med_idt fid, int id, const MEDFileEntities *entities);
22825 -    MEDFileFieldLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
22826 -  private:
22827 -    int _dim;
22828 -    int _nb_gauss_pt;
22829 -    INTERP_KERNEL::AutoCppPtr<MEDFileGTKeeper> _gt;
22830 -    int _nb_node_per_cell;
22831 -    std::string _name;
22832 -    std::vector<double> _ref_coo;
22833 -    std::vector<double> _gs_coo;
22834 -    std::vector<double> _w;
22835 -  };
22836 -
22837 -  /// @cond INTERNAL
22838 -  class MEDFileAnyTypeField1TSWithoutSDA;
22839 -  class MEDFileFieldPerMeshPerTypeCommon;
22840 -  class MEDFileFieldPerMeshPerType;
22841 -  class MEDFileField1TSWithoutSDA;
22842 -  class MEDFileFieldNameScope;
22843 -  class MEDFileFieldGlobsReal;
22844 -  class MEDFileFieldPerMesh;
22845 -
22846 -  class MEDFileFieldPerMeshPerTypePerDisc : public RefCountObject, public MEDFileWritable
22847 -  {
22848 -  public:
22849 -    static MEDFileFieldPerMeshPerTypePerDisc *NewOnRead(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const PartDefinition *pd);
22850 -    static MEDFileFieldPerMeshPerTypePerDisc *New(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int locId);
22851 -    static MEDFileFieldPerMeshPerTypePerDisc *New(const MEDFileFieldPerMeshPerTypePerDisc& other);
22852 -    std::size_t getHeapMemorySizeWithoutChildren() const;
22853 -    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
22854 -    MEDFileFieldPerMeshPerTypePerDisc *deepCopy(MEDFileFieldPerMeshPerTypeCommon *father) const;
22855 -    void assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
22856 -    void assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arrr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
22857 -    void assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob);
22858 -    void getCoarseData(TypeOfField& type, std::pair<int,int>& dad, std::string& pfl, std::string& loc) const;
22859 -    void writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const;
22860 -    const MEDFileFieldPerMeshPerTypeCommon *getFather() const;
22861 -    void loadOnlyStructureOfDataRecursively(med_idt fid, int& start, const MEDFileFieldNameScope& nasc);
22862 -    void loadBigArray(med_idt fid, const MEDFileFieldNameScope& nasc);
22863 -    void setNewStart(int newValueOfStart);
22864 -    int getIteration() const;
22865 -    int getOrder() const;
22866 -    double getTime() const;
22867 -    std::string getMeshName() const;
22868 -    TypeOfField getType() const;
22869 -    void simpleRepr(int bkOffset, std::ostream& oss, int id) const;
22870 -    void fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const;
22871 -    void setType(TypeOfField newType);
22872 -    INTERP_KERNEL::NormalizedCellType getGeoType() const;
22873 -    int getNumberOfComponents() const;
22874 -    int getNumberOfTuples() const;
22875 -    int getStart() const { return _start; }
22876 -    int getEnd() const { return _end; }
22877 -    void setEnd(int endd) { _end=endd; }
22878 -    int getNumberOfVals() const { return _nval; }
22879 -    DataArray *getOrCreateAndGetArray();
22880 -    const DataArray *getOrCreateAndGetArray() const;
22881 -    const std::vector<std::string>& getInfo() const;
22882 -    std::string getProfile() const;
22883 -    void setProfile(const std::string& newPflName);
22884 -    std::string getLocalization() const;
22885 -    void setLocalization(const std::string& newLocName);
22886 -    int getLocId() const { return _loc_id; }
22887 -    void setLocId(int newId) const { _loc_id=newId; }
22888 -    void setFather(MEDFileFieldPerMeshPerTypeCommon *newFather) { _father=newFather; }
22889 -    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22890 -    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22891 -    void getFieldAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs,
22892 -                         std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
22893 -    void fillValues(int discId, int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
22894 -    int fillEltIdsFromCode(int offset, const std::vector<int>& codeOfMesh, const MEDFileFieldGlobsReal& glob, int *ptToFill) const;
22895 -    int fillTupleIds(int *ptToFill) const;
22896 -    static int ConvertType(TypeOfField type, int locId);
22897 -    static std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > SplitPerDiscretization(const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entries);
22898 -    static bool RenumberChunks(int offset, const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
22899 -                               const DataArrayInt *explicitIdsInMesh, const std::vector<int>& newCode,
22900 -                               MEDFileFieldGlobsReal& glob, DataArrayDouble *arr, std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >& result);
22901 -    static MEDFileFieldPerMeshPerTypePerDisc *NewObjectOnSameDiscThanPool(TypeOfField typeF, INTERP_KERNEL::NormalizedCellType geoType, DataArrayInt *idsOfMeshElt,
22902 -                                                                          bool isPfl, int nbi, int offset, std::list< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
22903 -                                                                          MEDFileFieldGlobsReal& glob, bool &notInExisting);
22904 -    static MCAuto<MEDFileFieldPerMeshPerTypePerDisc> Aggregate(int &start, const std::vector<std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, TypeOfField tof, MEDFileFieldPerMeshPerType *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo);
22905 -    MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type):_type(type),_father(fath),_start(-1),_end(-1),_nval(-1),_loc_id(-5),_profile_it(-1) { }
22906 -  private:
22907 -    MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const PartDefinition *pd);
22908 -    MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const std::string& dummy);
22909 -    MEDFileFieldPerMeshPerTypePerDisc(const MEDFileFieldPerMeshPerTypePerDisc& other);
22910 -    MEDFileFieldPerMeshPerTypePerDisc();
22911 -  private:
22912 -    void goReadZeValuesInFile(med_idt fid, const std::string& fieldName, int nbOfCompo, int iteration, int order, med_entity_type menti, med_geometry_type mgeoti, unsigned char *startFeedingPtr);
22913 -  private:
22914 -    TypeOfField _type;
22915 -    MEDFileFieldPerMeshPerTypeCommon *_father;
22916 -    int _start;
22917 -    int _end;
22918 -    //! _nval is different than end-start in case of ON_GAUSS_PT and ON_GAUSS_NE ! (_nval=(_end-_start)/nbi)
22919 -    int _nval;
22920 -    std::string _profile;
22921 -    std::string _localization;
22922 -    //! only on assignement -3 : ON_NODES, -2 : ON_CELLS, -1 : ON_GAUSS_NE, 0..* : ON_GAUSS_PT
22923 -    mutable int _loc_id;
22924 -    mutable int _profile_it;
22925 -    MCAuto<PartDefinition> _pd;
22926 -  public:
22927 -    mutable int _tmp_work1;
22928 -  };
22929 -
22930 -  class MEDFileFieldPerMeshPerTypeCommon : public RefCountObject, public MEDFileWritable
22931 -  {
22932 -  public:
22933 -    std::size_t getHeapMemorySizeWithoutChildren() const;
22934 -    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
22935 -    void assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
22936 -    void assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
22937 -    void assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob);
22938 -    void assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
22939 -    const MEDFileFieldPerMesh *getFather() const;
22940 -    void loadOnlyStructureOfDataRecursively(med_idt fid, int &start, const MEDFileFieldNameScope& nasc);
22941 -    void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
22942 -    void writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const;
22943 -    bool isUniqueLevel(int& dim) const;
22944 -    void fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const;
22945 -    void fillFieldSplitedByType(std::vector< std::pair<int,int> >& dads, std::vector<TypeOfField>& types, std::vector<std::string>& pfls, std::vector<std::string>& locs) const;
22946 -    int getIteration() const;
22947 -    int getOrder() const;
22948 -    double getTime() const;
22949 -    std::string getMeshName() const;
22950 -    void getSizes(int& globalSz, int& nbOfEntries) const;
22951 -    int getNumberOfComponents() const;
22952 -    bool presenceOfMultiDiscPerGeoType() const;
22953 -    void pushDiscretization(MEDFileFieldPerMeshPerTypePerDisc *disc);
22954 -    DataArray *getOrCreateAndGetArray();
22955 -    const DataArray *getOrCreateAndGetArray() const;
22956 -    const std::vector<std::string>& getInfo() const;
22957 -    std::vector<std::string> getPflsReallyUsed() const;
22958 -    std::vector<std::string> getLocsReallyUsed() const;
22959 -    std::vector<std::string> getPflsReallyUsedMulti() const;
22960 -    std::vector<std::string> getLocsReallyUsedMulti() const;
22961 -    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22962 -    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
22963 -    MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId);
22964 -    const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId) const;
22965 -    int getNumberOfLoc() const { return _field_pm_pt_pd.size(); }
22966 -    void fillValues(int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
22967 -    void setLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves);
22968 -    bool keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its);
22969 -    bool keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its);
22970 -    static med_entity_type ConvertIntoMEDFileType(TypeOfField ikType, INTERP_KERNEL::NormalizedCellType ikGeoType, med_geometry_type& medfGeoType);
22971 -    MEDFileFieldPerMeshPerTypeCommon(MEDFileFieldPerMesh *father):_father(father) { }
22972 -    void setFather(MEDFileFieldPerMesh *father);
22973 -    void accept(MEDFileFieldVisitor& visitor) const;
22974 -  public:
22975 -    virtual ~MEDFileFieldPerMeshPerTypeCommon();
22976 -    virtual void getDimension(int& dim) const = 0;
22977 -    virtual INTERP_KERNEL::NormalizedCellType getGeoType() const = 0;
22978 -    virtual void entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const = 0;
22979 -    virtual void simpleRepr(int bkOffset, std::ostream& oss, int id) const = 0;
22980 -    virtual std::string getGeoTypeRepr() const = 0;
22981 -    virtual MEDFileFieldPerMeshPerTypeCommon *deepCopy(MEDFileFieldPerMesh *father) const = 0;
22982 -    virtual void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const = 0;
22983 -  protected:
22984 -    void deepCopyElements();
22985 -    std::vector<int> addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells);
22986 -    std::vector<int> addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells);
22987 -    std::vector<int> addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells);
22988 -    std::vector<int> addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells);
22989 -  private:
22990 -    MEDFileFieldPerMesh *_father;
22991 -  protected:
22992 -    std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > _field_pm_pt_pd;
22993 -  };
22994 -
22995 -  class MEDFileFieldPerMeshPerType : public MEDFileFieldPerMeshPerTypeCommon
22996 -  {
22997 -  public:
22998 -    static MEDFileFieldPerMeshPerType *New(MEDFileFieldPerMesh *fath, INTERP_KERNEL::NormalizedCellType geoType);
22999 -    static MEDFileFieldPerMeshPerType *NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd);
23000 -    static MCAuto<MEDFileFieldPerMeshPerType> Aggregate(int &start, const std::vector< std::pair<int,const MEDFileFieldPerMeshPerType *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, INTERP_KERNEL::NormalizedCellType gt, MEDFileFieldPerMesh *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo);
23001 -  public:// overload of abstract methods
23002 -    void getDimension(int& dim) const;
23003 -    INTERP_KERNEL::NormalizedCellType getGeoType() const;
23004 -    void entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const;
23005 -    void simpleRepr(int bkOffset, std::ostream& oss, int id) const;
23006 -    std::string getGeoTypeRepr() const;
23007 -    MEDFileFieldPerMeshPerType *deepCopy(MEDFileFieldPerMesh *father) const;
23008 -    void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
23009 -  private:
23010 -    MEDFileFieldPerMeshPerType(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd);
23011 -    MEDFileFieldPerMeshPerType(MEDFileFieldPerMesh *father, INTERP_KERNEL::NormalizedCellType gt);
23012 -  private:
23013 -    INTERP_KERNEL::NormalizedCellType _geo_type;
23014 -  };
23015 -
23016 -  class MEDFileFieldPerMeshPerTypeDyn : public MEDFileFieldPerMeshPerTypeCommon
23017 -  {
23018 -  public:
23019 -    static MEDFileFieldPerMeshPerTypeDyn *NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileEntities *entities, int idGT, const MEDFileFieldNameScope& nasc);
23020 -    int getDynGT() const;
23021 -    std::string getModelName() const;
23022 -  public:
23023 -    void getDimension(int& dim) const;
23024 -    INTERP_KERNEL::NormalizedCellType getGeoType() const;
23025 -    void entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const;
23026 -    void simpleRepr(int bkOffset, std::ostream& oss, int id) const;
23027 -    std::string getGeoTypeRepr() const;
23028 -    MEDFileFieldPerMeshPerTypeDyn *deepCopy(MEDFileFieldPerMesh *father) const;
23029 -    void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
23030 -  private:
23031 -    MEDFileFieldPerMeshPerTypeDyn(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileStructureElement *se, const MEDFileFieldNameScope& nasc);
23032 -  private:
23033 -    MCConstAuto<MEDFileStructureElement> _se;
23034 -  };
23035 -  
23036 -  class MEDFileMesh;
23037 -
23038 -  class MEDFileFieldPerMesh : public RefCountObject, public MEDFileWritable
23039 -  {
23040 -  public:
23041 -    static MEDFileFieldPerMesh *New(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh);
23042 -    static MEDFileFieldPerMesh *NewOnRead(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities);
23043 -    std::size_t getHeapMemorySizeWithoutChildren() const;
23044 -    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
23045 -    MEDFileFieldPerMesh *deepCopy(MEDFileAnyTypeField1TSWithoutSDA *father) const;
23046 -    void simpleRepr(int bkOffset,std::ostream& oss, int id) const;
23047 -    void copyTinyInfoFrom(const MEDCouplingMesh *mesh);
23048 -    void assignFieldProfile(int& start, const DataArrayInt *multiTypePfl, const std::vector<int>& code, const std::vector<int>& code2, const std::vector<DataArrayInt *>& idsInPflPerType, const std::vector<DataArrayInt *>& idsPerType, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
23049 -    void assignFieldNoProfileNoRenum(int& start, const std::vector<int>& code, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
23050 -    void assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob);
23051 -    void assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
23052 -    void loadOnlyStructureOfDataRecursively(med_idt fid, int &start, const MEDFileFieldNameScope& nasc);
23053 -    void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
23054 -    void writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const;
23055 -    void fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const;
23056 -    std::vector< std::vector< std::pair<int,int> > > getFieldSplitedByType(std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23057 -    void accept(MEDFileFieldVisitor& visitor) const;
23058 -    void getDimension(int& dim) const;
23059 -    bool isUniqueLevel(int& dim) const;
23060 -    double getTime() const;
23061 -    int getIteration() const;
23062 -    int getOrder() const;
23063 -    int getMeshIteration() const { return _mesh_iteration; }
23064 -    int getMeshOrder() const { return _mesh_order; }
23065 -    std::string getMeshName() const;
23066 -    void setMeshName(const std::string& meshName);
23067 -    int getNumberOfComponents() const;
23068 -    bool presenceOfMultiDiscPerGeoType() const;
23069 -    bool presenceOfStructureElements() const;
23070 -    bool onlyStructureElements() const;
23071 -    void killStructureElements();
23072 -    void keepOnlyStructureElements();
23073 -    void keepOnlyOnSE(const std::string& seName);
23074 -    void getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const;
23075 -    DataArray *getOrCreateAndGetArray();
23076 -    const DataArray *getOrCreateAndGetArray() const;
23077 -    const std::vector<std::string>& getInfo() const;
23078 -    std::vector<std::string> getPflsReallyUsed() const;
23079 -    std::vector<std::string> getLocsReallyUsed() const;
23080 -    std::vector<std::string> getPflsReallyUsedMulti() const;
23081 -    std::vector<std::string> getLocsReallyUsedMulti() const;
23082 -    void convertMedBallIntoClassic();
23083 -    bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
23084 -    bool renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N, MEDFileFieldGlobsReal& glob);
23085 -    void keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its);
23086 -    void keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its);
23087 -    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23088 -    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23089 -    MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23090 -    DataArray *getFieldOnMeshAtLevelWithPfl(TypeOfField type, const MEDCouplingMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const;
23091 -    void getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23092 -    MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId);
23093 -    const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const;
23094 -    static MCAuto<MEDFileFieldPerMesh> Aggregate(int &start, const std::vector<const MEDFileFieldPerMesh *>& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, MEDFileAnyTypeField1TSWithoutSDA *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo);
23095 -  private:
23096 -    int addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type);
23097 -    MEDCouplingFieldDouble *finishField(TypeOfField type, const MEDFileFieldGlobsReal *glob,
23098 -                                        const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs, const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23099 -    MEDCouplingFieldDouble *finishField2(TypeOfField type, const MEDFileFieldGlobsReal *glob,
23100 -                                         const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs,
23101 -                                         const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes,
23102 -                                         const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23103 -    MEDCouplingFieldDouble *finishFieldNode2(const MEDFileFieldGlobsReal *glob,
23104 -                                             const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs,
23105 -                                             const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23106 -    DataArray *finishField4(const std::vector< std::pair<int,int> >& dads, const DataArrayInt *pflIn, int nbOfElems, DataArrayInt *&pflOut) const;
23107 -    void assignNewLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves);
23108 -    static void SortArraysPerType(const MEDFileFieldGlobsReal *glob, TypeOfField type, 
23109 -                                  const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<const DataArrayInt *>& pfls, const std::vector<int>& locs,
23110 -                                  std::vector<int>& code, std::vector<DataArrayInt *>& notNullPfls);
23111 -    static int ComputeNbOfElems(const MEDFileFieldGlobsReal *glob, TypeOfField type, const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs);
23112 -    MEDFileFieldPerMesh(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities);
23113 -    MEDFileFieldPerMesh(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh);
23114 -    MEDFileFieldPerMesh(MEDFileAnyTypeField1TSWithoutSDA *fath, const std::string& meshName, int meshIt, int meshOrd):_father(fath),_mesh_iteration(meshIt),_mesh_order(meshOrd) { }
23115 -  private:
23116 -    int _mesh_iteration;
23117 -    int _mesh_order;
23118 -    MEDFileAnyTypeField1TSWithoutSDA *_father;
23119 -    std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > _field_pm_pt;
23120 -  };
23121 -
23122 -  class MEDFileFieldGlobsReal;
23123 -
23124 -  class MEDFileFieldGlobs : public RefCountObject
23125 -  {
23126 -  public:
23127 -    static MEDFileFieldGlobs *New(med_idt fid);
23128 -    static MEDFileFieldGlobs *New();
23129 -    std::size_t getHeapMemorySizeWithoutChildren() const;
23130 -    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
23131 -    MEDFileFieldGlobs *deepCopy() const;
23132 -    MEDFileFieldGlobs *shallowCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const;
23133 -    MEDFileFieldGlobs *deepCpyPart(const std::vector<std::string>& pfls, const std::vector<std::string>& locs) const;
23134 -    void simpleRepr(std::ostream& oss) const;
23135 -    void appendGlobs(const MEDFileFieldGlobs& other, double eps);
23136 -    void checkGlobsPflsPartCoherency(const std::vector<std::string>& pflsUsed) const;
23137 -    void checkGlobsLocsPartCoherency(const std::vector<std::string>& locsUsed) const;
23138 -    void loadProfileInFile(med_idt fid, int id, const std::string& pflName);
23139 -    void loadProfileInFile(med_idt fid, int id);
23140 -    void loadGlobals(med_idt fid, const MEDFileFieldGlobsReal& real);
23141 -    void loadAllGlobals(med_idt fid, const MEDFileEntities *entities);
23142 -    void writeGlobals(med_idt fid, const MEDFileWritable& opt) const;
23143 -    std::vector<std::string> getPfls() const;
23144 -    std::vector<std::string> getLocs() const;
23145 -    bool existsPfl(const std::string& pflName) const;
23146 -    bool existsLoc(const std::string& locName) const;
23147 -    std::string createNewNameOfPfl() const;
23148 -    std::string createNewNameOfLoc() const;
23149 -    std::vector< std::vector<int> > whichAreEqualProfiles() const;
23150 -    std::vector< std::vector<int> > whichAreEqualLocs(double eps) const;
23151 -    void setFileName(const std::string& fileName) { _file_name=fileName; }
23152 -    void changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23153 -    void changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23154 -    int getNbOfGaussPtPerCell(int locId) const;
23155 -    int getLocalizationId(const std::string& loc) const;
23156 -    std::string getFileName() const { return _file_name; }
23157 -    const MEDFileFieldLoc& getLocalizationFromId(int locId) const;
23158 -    const MEDFileFieldLoc& getLocalization(const std::string& locName) const;
23159 -    const DataArrayInt *getProfileFromId(int pflId) const;
23160 -    const DataArrayInt *getProfile(const std::string& pflName) const;
23161 -    MEDFileFieldLoc& getLocalizationFromId(int locId);
23162 -    MEDFileFieldLoc& getLocalization(const std::string& locName);
23163 -    DataArrayInt *getProfile(const std::string& pflName);
23164 -    DataArrayInt *getProfileFromId(int pflId);
23165 -    void killProfileIds(const std::vector<int>& pflIds);
23166 -    void killLocalizationIds(const std::vector<int>& locIds);
23167 -    void killStructureElementsInGlobs();
23168 -    //
23169 -    void appendProfile(DataArrayInt *pfl);
23170 -    void appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
23171 -    //
23172 -    static std::string CreateNewNameNotIn(const std::string& prefix, const std::vector<std::string>& namesToAvoid);
23173 -  protected:
23174 -    MEDFileFieldGlobs(med_idt fid);
23175 -    MEDFileFieldGlobs();
23176 -    ~MEDFileFieldGlobs();
23177 -  protected:
23178 -    std::vector< MCAuto<DataArrayInt> > _pfls;
23179 -    std::vector< MCAuto<MEDFileFieldLoc> > _locs;
23180 -    std::string _file_name;
23181 -  };
23182 -
23183 -  /// @endcond INTERNAL
23184 -
23185 -  class MEDFileFieldGlobsReal
23186 -  {
23187 -  public:
23188 -    MEDLOADER_EXPORT MEDFileFieldGlobsReal(med_idt fid);
23189 -    MEDLOADER_EXPORT MEDFileFieldGlobsReal();
23190 -    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
23191 -    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
23192 -    MEDLOADER_EXPORT void simpleReprGlobs(std::ostream& oss) const;
23193 -    MEDLOADER_EXPORT void resetContent();
23194 -    MEDLOADER_EXPORT void killStructureElementsInGlobs();
23195 -    MEDLOADER_EXPORT void shallowCpyGlobs(const MEDFileFieldGlobsReal& other);
23196 -    MEDLOADER_EXPORT void deepCpyGlobs(const MEDFileFieldGlobsReal& other);
23197 -    MEDLOADER_EXPORT void shallowCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other);
23198 -    MEDLOADER_EXPORT void deepCpyOnlyUsedGlobs(const MEDFileFieldGlobsReal& other);
23199 -    MEDLOADER_EXPORT void appendGlobs(const MEDFileFieldGlobsReal& other, double eps);
23200 -    MEDLOADER_EXPORT void checkGlobsCoherency() const;
23201 -    MEDLOADER_EXPORT void checkGlobsPflsPartCoherency() const;
23202 -    MEDLOADER_EXPORT void checkGlobsLocsPartCoherency() const;
23203 -    MEDLOADER_EXPORT virtual std::vector<std::string> getPflsReallyUsed() const = 0;
23204 -    MEDLOADER_EXPORT virtual std::vector<std::string> getLocsReallyUsed() const = 0;
23205 -    MEDLOADER_EXPORT virtual std::vector<std::string> getPflsReallyUsedMulti() const = 0;
23206 -    MEDLOADER_EXPORT virtual std::vector<std::string> getLocsReallyUsedMulti() const = 0;
23207 -    MEDLOADER_EXPORT virtual void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) = 0;
23208 -    MEDLOADER_EXPORT virtual void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif) = 0;
23209 -    MEDLOADER_EXPORT virtual ~MEDFileFieldGlobsReal();
23210 -    //
23211 -    MEDLOADER_EXPORT void loadProfileInFile(med_idt fid, int id, const std::string& pflName);
23212 -    MEDLOADER_EXPORT void loadProfileInFile(med_idt fid, int id);
23213 -    MEDLOADER_EXPORT void loadGlobals(med_idt fid);
23214 -    MEDLOADER_EXPORT void loadAllGlobals(med_idt fid, const MEDFileEntities *entities=0);
23215 -    MEDLOADER_EXPORT void writeGlobals(med_idt fid, const MEDFileWritable& opt) const;
23216 -    MEDLOADER_EXPORT std::vector<std::string> getPfls() const;
23217 -    MEDLOADER_EXPORT std::vector<std::string> getLocs() const;
23218 -    MEDLOADER_EXPORT bool existsPfl(const std::string& pflName) const;
23219 -    MEDLOADER_EXPORT bool existsLoc(const std::string& locName) const;
23220 -    MEDLOADER_EXPORT std::string createNewNameOfPfl() const;
23221 -    MEDLOADER_EXPORT std::string createNewNameOfLoc() const;
23222 -    MEDLOADER_EXPORT std::vector< std::vector<int> > whichAreEqualProfiles() const;
23223 -    MEDLOADER_EXPORT std::vector< std::vector<int> > whichAreEqualLocs(double eps) const;
23224 -    MEDLOADER_EXPORT void setFileName(const std::string& fileName);
23225 -    MEDLOADER_EXPORT void changePflsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23226 -    MEDLOADER_EXPORT void changeLocsNamesInStruct(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23227 -    MEDLOADER_EXPORT void changePflsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23228 -    MEDLOADER_EXPORT void changeLocsNames(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23229 -    MEDLOADER_EXPORT void changePflName(const std::string& oldName, const std::string& newName);
23230 -    MEDLOADER_EXPORT void changeLocName(const std::string& oldName, const std::string& newName);
23231 -    MEDLOADER_EXPORT std::vector< std::pair<std::vector<std::string>, std::string > > zipPflsNames();
23232 -    MEDLOADER_EXPORT std::vector< std::pair<std::vector<std::string>, std::string > > zipLocsNames(double eps);
23233 -    MEDLOADER_EXPORT int getNbOfGaussPtPerCell(int locId) const;
23234 -    MEDLOADER_EXPORT int getLocalizationId(const std::string& loc) const;
23235 -    MEDLOADER_EXPORT std::string getFileName() const;
23236 -    MEDLOADER_EXPORT const MEDFileFieldLoc& getLocalizationFromId(int locId) const;
23237 -    MEDLOADER_EXPORT const MEDFileFieldLoc& getLocalization(const std::string& locName) const;
23238 -    MEDLOADER_EXPORT MEDFileFieldLoc& getLocalizationFromId(int locId);
23239 -    MEDLOADER_EXPORT MEDFileFieldLoc& getLocalization(const std::string& locName);
23240 -    MEDLOADER_EXPORT const DataArrayInt *getProfile(const std::string& pflName) const;
23241 -    MEDLOADER_EXPORT const DataArrayInt *getProfileFromId(int pflId) const;
23242 -    MEDLOADER_EXPORT DataArrayInt *getProfile(const std::string& pflName);
23243 -    MEDLOADER_EXPORT DataArrayInt *getProfileFromId(int pflId);
23244 -    MEDLOADER_EXPORT void killProfileIds(const std::vector<int>& pflIds);
23245 -    MEDLOADER_EXPORT void killLocalizationIds(const std::vector<int>& locIds);
23246 -    //
23247 -    MEDLOADER_EXPORT void appendProfile(DataArrayInt *pfl);
23248 -    MEDLOADER_EXPORT void appendLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
23249 -  protected:
23250 -    MEDFileFieldGlobs *contentNotNull();
23251 -    const MEDFileFieldGlobs *contentNotNull() const;
23252 -  protected:
23253 -    MCAuto< MEDFileFieldGlobs > _globals;
23254 -  };
23255 -
23256 -  class MEDFileFieldNameScope
23257 -  {
23258 -  public:
23259 -    MEDLOADER_EXPORT MEDFileFieldNameScope();
23260 -    MEDLOADER_EXPORT MEDFileFieldNameScope(const std::string& fieldName, const std::string& meshName);
23261 -    MEDLOADER_EXPORT std::string getName() const;
23262 -    MEDLOADER_EXPORT void setName(const std::string& fieldName);
23263 -    MEDLOADER_EXPORT std::string getDtUnit() const;
23264 -    MEDLOADER_EXPORT void setDtUnit(const std::string& dtUnit);
23265 -    MEDLOADER_EXPORT void copyNameScope(const MEDFileFieldNameScope& other);
23266 -    MEDLOADER_EXPORT std::string getMeshName() const;
23267 -    MEDLOADER_EXPORT void setMeshName(const std::string& meshName);
23268 -  protected:
23269 -    std::string _name;
23270 -    std::string _dt_unit;
23271 -    std::string _mesh_name;
23272 -  };
23273 -
23274    class MEDFileMeshes;
23275  
23276 -  /*!
23277 -   * SDA is for Shared Data Arrays such as profiles.
23278 -   */
23279 -  class MEDFileAnyTypeField1TSWithoutSDA : public RefCountObject, public MEDFileFieldNameScope
23280 -  {
23281 -  public:
23282 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA();
23283 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order);
23284 -    MEDLOADER_EXPORT int getIteration() const { return _iteration; }
23285 -    MEDLOADER_EXPORT int getOrder() const { return _order; }
23286 -    MEDLOADER_EXPORT double getTime(int& iteration, int& order) const { iteration=_iteration; order=_order; return _dt; }
23287 -    MEDLOADER_EXPORT void setTime(int iteration, int order, double val) { _dt=val; _iteration=iteration; _order=order; }
23288 -    MEDLOADER_EXPORT int getDimension() const;
23289 -    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
23290 -    MEDLOADER_EXPORT int getMeshIteration() const;
23291 -    MEDLOADER_EXPORT int getMeshOrder() const;
23292 -    MEDLOADER_EXPORT bool isDealingTS(int iteration, int order) const;
23293 -    MEDLOADER_EXPORT std::pair<int,int> getDtIt() const;
23294 -    MEDLOADER_EXPORT void fillIteration(std::pair<int,int>& p) const;
23295 -    MEDLOADER_EXPORT void fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const;
23296 -    MEDLOADER_EXPORT std::vector<TypeOfField> getTypesOfFieldAvailable() const;
23297 -    //
23298 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed2() const;
23299 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed2() const;
23300 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti2() const;
23301 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti2() const;
23302 -    MEDLOADER_EXPORT void changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23303 -    MEDLOADER_EXPORT void changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23304 -    //
23305 -    MEDLOADER_EXPORT int getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const;
23306 -    MEDLOADER_EXPORT void convertMedBallIntoClassic();
23307 -    MEDLOADER_EXPORT void makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl);
23308 -    MEDLOADER_EXPORT std::vector< std::vector<std::pair<int,int> > > getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23309 -    //
23310 -    MEDLOADER_EXPORT MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId);
23311 -    MEDLOADER_EXPORT const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const;
23312 -    MEDLOADER_EXPORT void deepCpyLeavesFrom(const MEDFileAnyTypeField1TSWithoutSDA& other);
23313 -    MEDLOADER_EXPORT void accept(MEDFileFieldVisitor& visitor) const;
23314 -  public:
23315 -    MEDLOADER_EXPORT int getNumberOfComponents() const;
23316 -    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
23317 -    MEDLOADER_EXPORT std::vector<std::string>& getInfo();
23318 -    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
23319 -    MEDLOADER_EXPORT bool presenceOfStructureElements() const;
23320 -    MEDLOADER_EXPORT bool onlyStructureElements() const;
23321 -    MEDLOADER_EXPORT void killStructureElements();
23322 -    MEDLOADER_EXPORT void keepOnlyStructureElements();
23323 -    MEDLOADER_EXPORT void keepOnlyOnSE(const std::string& seName);
23324 -    MEDLOADER_EXPORT void getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const;
23325 -    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& infos);
23326 -    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
23327 -    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
23328 -    MEDLOADER_EXPORT int copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr);
23329 -    MEDLOADER_EXPORT void setFieldNoProfileSBT(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
23330 -    MEDLOADER_EXPORT void setFieldProfile(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arrOfVals, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
23331 -    MEDLOADER_EXPORT virtual void simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const;
23332 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TSWithoutSDA *deepCopy() const = 0;
23333 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TSWithoutSDA *shallowCpy() const = 0;
23334 -    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > splitComponents() const;
23335 -    MEDLOADER_EXPORT virtual const char *getTypeStr() const = 0;
23336 -    MEDLOADER_EXPORT virtual DataArray *getUndergroundDataArray() const = 0;
23337 -    MEDLOADER_EXPORT virtual DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const = 0;
23338 -    MEDLOADER_EXPORT virtual void setArray(DataArray *arr) = 0;
23339 -    MEDLOADER_EXPORT virtual DataArray *createNewEmptyDataArrayInstance() const = 0;
23340 -    MEDLOADER_EXPORT virtual DataArray *getOrCreateAndGetArray() = 0;
23341 -    MEDLOADER_EXPORT virtual const DataArray *getOrCreateAndGetArray() const = 0;
23342 -  public:
23343 -    MEDLOADER_EXPORT MEDCouplingFieldDouble *fieldOnMesh(const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const;
23344 -    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23345 -    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDFileMesh *mesh, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23346 -    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldAtTopLevel(TypeOfField type, const std::string& mName, int renumPol, const MEDFileFieldGlobsReal *glob, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23347 -    MEDLOADER_EXPORT MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, int renumPol, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, const DataArrayInt *cellRenum, const DataArrayInt *nodeRenum, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
23348 -    DataArray *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const;
23349 -  public:
23350 -    MEDLOADER_EXPORT bool renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N, MEDFileFieldGlobsReal& glob);
23351 -    MEDLOADER_EXPORT std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > splitDiscretizations() const;
23352 -    MEDLOADER_EXPORT std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > splitMultiDiscrPerGeoTypes() const;
23353 -    MEDLOADER_EXPORT int keepOnlySpatialDiscretization(TypeOfField tof, std::vector< std::pair<int,int> >& its);
23354 -    MEDLOADER_EXPORT int keepOnlyGaussDiscretization(std::size_t idOfDisc, std::vector< std::pair<int,int> >& its);
23355 -  public:
23356 -    MEDLOADER_EXPORT void allocNotFromFile(int newNbOfTuples);
23357 -    MEDLOADER_EXPORT bool allocIfNecessaryTheArrayToReceiveDataFromFile();
23358 -    MEDLOADER_EXPORT void loadOnlyStructureOfDataRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23359 -    MEDLOADER_EXPORT void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
23360 -    MEDLOADER_EXPORT void loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc);
23361 -    MEDLOADER_EXPORT void loadStructureAndBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23362 -    MEDLOADER_EXPORT void unloadArrays();
23363 -    MEDLOADER_EXPORT void writeLL(med_idt fid, const MEDFileWritable& opts, const MEDFileFieldNameScope& nasc) const;
23364 -  protected:
23365 -    int getMeshIdFromMeshName(const std::string& mName) const;
23366 -    int addNewEntryIfNecessary(const MEDCouplingMesh *mesh);
23367 -    void updateData(int newLgth, const std::vector< std::pair<int,int> >& oldStartStops);
23368 -  protected:
23369 -    std::vector< MCAuto< MEDFileFieldPerMesh > > _field_per_mesh;
23370 -    int _iteration;
23371 -    int _order;
23372 -    double _dt;
23373 -  public:
23374 -    //! only useable on reading
23375 -    mutable int _csit;
23376 -    // -3 means allocated and build from scratch
23377 -    // -2 means allocated and read from a file
23378 -    // -1 means not allocated and build from scratch
23379 -    // >=0 means not allocated and read from a file
23380 -    mutable int _nb_of_tuples_to_be_allocated;
23381 -  };
23382 -
23383 -  class MEDFileIntField1TSWithoutSDA;
23384 -
23385 -  template<class T>
23386 -  class MEDFileField1TSTemplateWithoutSDA : public MEDFileAnyTypeField1TSWithoutSDA
23387 -  {
23388 -  protected:
23389 -    MEDFileField1TSTemplateWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order):MEDFileAnyTypeField1TSWithoutSDA(fieldName,meshName,csit,iteration,order) { }
23390 -    MEDFileField1TSTemplateWithoutSDA() { }
23391 -  public:
23392 -    MEDLOADER_EXPORT void setArray(DataArray *arr);
23393 -    MEDLOADER_EXPORT DataArray *createNewEmptyDataArrayInstance() const;
23394 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getOrCreateAndGetArrayTemplate();
23395 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType const *getOrCreateAndGetArrayTemplate() const;
23396 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayTemplate() const;
23397 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayTemplateExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23398 -    MEDLOADER_EXPORT DataArray *getOrCreateAndGetArray();
23399 -    MEDLOADER_EXPORT const DataArray *getOrCreateAndGetArray() const;
23400 -    MEDLOADER_EXPORT DataArray *getUndergroundDataArray() const;
23401 -    MEDLOADER_EXPORT void aggregate(const typename std::vector< typename MLFieldTraits<T>::F1TSWSDAType const * >& f1tss, const std::vector< std::vector< std::pair<int,int> > >& dts);
23402 -  protected:
23403 -    MCAuto< typename Traits<T>::ArrayType > _arr;
23404 -  };
23405 -
23406 -  /*!
23407 -   * SDA is for Shared Data Arrays such as profiles.
23408 -   */
23409 -  class MEDFileField1TSWithoutSDA : public MEDFileField1TSTemplateWithoutSDA<double>
23410 -  {
23411 -  public:
23412 -    MEDLOADER_EXPORT const char *getTypeStr() const;
23413 -    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23414 -    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23415 -    MEDLOADER_EXPORT static void CheckMeshDimRel(int meshDimRelToMax);
23416 -    MEDLOADER_EXPORT static std::vector<int> CheckSBTMesh(const MEDCouplingMesh *mesh);
23417 -    MEDLOADER_EXPORT static MEDFileField1TSWithoutSDA *New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
23418 -  public:
23419 -    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA();
23420 -    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
23421 -    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA *shallowCpy() const;
23422 -    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA *deepCopy() const;
23423 -    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA *convertToInt() const;
23424 -  public:
23425 -    static const char TYPE_STR[];
23426 -  };
23427 -
23428 -  template<class T>
23429 -  class MEDFileField1TSNDTemplateWithoutSDA : public MEDFileField1TSTemplateWithoutSDA<T>
23430 -  {
23431 -  public:
23432 -    MEDLOADER_EXPORT MEDFileField1TSWithoutSDA *convertToDouble() const;
23433 -  protected:
23434 -    MEDFileField1TSNDTemplateWithoutSDA() { }
23435 -    MEDFileField1TSNDTemplateWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos):MEDFileField1TSTemplateWithoutSDA<T>(fieldName,meshName,csit,iteration,order) { }
23436 -  };
23437 -  
23438 -  /*!
23439 -   * SDA is for Shared Data Arrays such as profiles.
23440 -   */
23441 -  class MEDFileIntField1TSWithoutSDA : public MEDFileField1TSNDTemplateWithoutSDA<int>
23442 -  {
23443 -  public:
23444 -    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA();
23445 -    MEDLOADER_EXPORT static MEDFileIntField1TSWithoutSDA *New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
23446 -    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA *deepCopy() const;
23447 -    MEDLOADER_EXPORT MEDFileIntField1TSWithoutSDA *shallowCpy() const;
23448 -    MEDLOADER_EXPORT const char *getTypeStr() const;
23449 -    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23450 -    MEDLOADER_EXPORT DataArrayInt *getUndergroundDataArrayIntExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23451 -  protected:
23452 -    MEDFileIntField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
23453 -  public:
23454 -    MEDLOADER_EXPORT static const char TYPE_STR[];
23455 -  };
23456 -
23457 -  /*!
23458 -   * SDA is for Shared Data Arrays such as profiles.
23459 -   */
23460 -  class MEDFileFloatField1TSWithoutSDA : public MEDFileField1TSNDTemplateWithoutSDA<float>
23461 -  {
23462 -  public:
23463 -    MEDLOADER_EXPORT MEDFileFloatField1TSWithoutSDA();
23464 -    MEDLOADER_EXPORT static MEDFileFloatField1TSWithoutSDA *New(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
23465 -    MEDLOADER_EXPORT MEDFileFloatField1TSWithoutSDA *deepCopy() const;
23466 -    MEDLOADER_EXPORT MEDFileFloatField1TSWithoutSDA *shallowCpy() const;
23467 -    MEDLOADER_EXPORT const char *getTypeStr() const;
23468 -    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23469 -    MEDLOADER_EXPORT DataArrayFloat *getUndergroundDataArrayFloatExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23470 -  protected:
23471 -    MEDFileFloatField1TSWithoutSDA(const std::string& fieldName, const std::string& meshName, int csit, int iteration, int order, const std::vector<std::string>& infos);
23472 -  public:
23473 -    MEDLOADER_EXPORT static const char TYPE_STR[];
23474 -  };
23475 -
23476 -  /*!
23477 -   * User class.
23478 -   */
23479 -  class MEDFileAnyTypeField1TS : public RefCountObject, public MEDFileWritableStandAlone, public MEDFileFieldGlobsReal
23480 -  {
23481 -  protected:
23482 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS();
23483 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
23484 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
23485 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
23486 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS(const MEDFileAnyTypeField1TSWithoutSDA& other, bool shallowCopyOfContent);
23487 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c);
23488 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *BuildNewInstanceFromContent(MEDFileAnyTypeField1TSWithoutSDA *c, med_idt fid);
23489 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TSWithoutSDA *BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23490 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TSWithoutSDA *BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23491 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TSWithoutSDA *BuildContentFrom(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23492 -    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
23493 -    // direct forwarding to MEDFileAnyTypeField1TSWithoutSDA instance _content
23494 -  public:
23495 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(const std::string& fileName, bool loadAll=true);
23496 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(med_idt fid, bool loadAll=true);
23497 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
23498 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
23499 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true);
23500 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *New(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll=true);
23501 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *NewAdv(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities);
23502 -    MEDLOADER_EXPORT static MEDFileAnyTypeField1TS *NewAdv(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileEntities *entities);
23503 -    MEDLOADER_EXPORT int getDimension() const;
23504 -    MEDLOADER_EXPORT int getIteration() const;
23505 -    MEDLOADER_EXPORT int getOrder() const;
23506 -    MEDLOADER_EXPORT double getTime(int& iteration, int& order) const;
23507 -    MEDLOADER_EXPORT void setTime(int iteration, int order, double val);
23508 -    MEDLOADER_EXPORT std::string getName() const;
23509 -    MEDLOADER_EXPORT void setName(const std::string& name);
23510 -    MEDLOADER_EXPORT std::string simpleRepr() const;
23511 -    MEDLOADER_EXPORT void simpleRepr(int bkOffset, std::ostream& oss, int f1tsId) const;
23512 -    MEDLOADER_EXPORT std::string getDtUnit() const;
23513 -    MEDLOADER_EXPORT void setDtUnit(const std::string& dtUnit);
23514 -    MEDLOADER_EXPORT std::string getMeshName() const;
23515 -    MEDLOADER_EXPORT void setMeshName(const std::string& newMeshName);
23516 -    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
23517 -    MEDLOADER_EXPORT int getMeshIteration() const;
23518 -    MEDLOADER_EXPORT int getMeshOrder() const;
23519 -    MEDLOADER_EXPORT int getNumberOfComponents() const;
23520 -    MEDLOADER_EXPORT bool isDealingTS(int iteration, int order) const;
23521 -    MEDLOADER_EXPORT std::pair<int,int> getDtIt() const;
23522 -    MEDLOADER_EXPORT void fillIteration(std::pair<int,int>& p) const;
23523 -    MEDLOADER_EXPORT void fillTypesOfFieldAvailable(std::vector<TypeOfField>& types) const;
23524 -    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& infos);
23525 -    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
23526 -    MEDLOADER_EXPORT std::vector<std::string>& getInfo();
23527 -    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
23528 -    MEDLOADER_EXPORT std::vector<TypeOfField> getTypesOfFieldAvailable() const;
23529 -    MEDLOADER_EXPORT std::vector< std::vector<std::pair<int,int> > > getFieldSplitedByType(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
23530 -        std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23531 -    MEDLOADER_EXPORT MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId);
23532 -    MEDLOADER_EXPORT const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const;
23533 -    MEDLOADER_EXPORT int getNonEmptyLevels(const std::string& mname, std::vector<int>& levs) const;
23534 -    MEDLOADER_EXPORT void convertMedBallIntoClassic();
23535 -    MEDLOADER_EXPORT void makeReduction(INTERP_KERNEL::NormalizedCellType ct, TypeOfField tof, const DataArrayInt *pfl);
23536 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const = 0;
23537 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TS *shallowCpy() const = 0;
23538 -  public:
23539 -    MEDLOADER_EXPORT void loadArrays();
23540 -    MEDLOADER_EXPORT void loadArraysIfNecessary();
23541 -    MEDLOADER_EXPORT void unloadArrays();
23542 -    MEDLOADER_EXPORT void unloadArraysWithoutDataLoss();
23543 -    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeField1TS > > splitComponents() const;
23544 -    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeField1TS > > splitDiscretizations() const;
23545 -    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeField1TS > > splitMultiDiscrPerGeoTypes() const;
23546 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *deepCopy() const;
23547 -    MEDLOADER_EXPORT int copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr);
23548 -    MEDLOADER_EXPORT int copyTinyInfoFrom(const TimeHolder *th, const MEDCouplingFieldTemplate *field, const DataArray *arr);
23549 -  public:
23550 -    //! underground method see MEDFileField1TSWithoutSDA::setProfileNameOnLeaf
23551 -    MEDLOADER_EXPORT void setProfileNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob=false);
23552 -    //! underground method see MEDFileField1TSWithoutSDA::setLocNameOnLeaf
23553 -    MEDLOADER_EXPORT void setLocNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob=false);
23554 -    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
23555 -    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
23556 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed() const;
23557 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed() const;
23558 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti() const;
23559 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti() const;
23560 -    MEDLOADER_EXPORT void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23561 -    MEDLOADER_EXPORT void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23562 -  public:
23563 -    MEDLOADER_EXPORT static int LocateField2(med_idt fid, int fieldIdCFormat, bool checkFieldId, std::string& fieldName, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName);
23564 -    MEDLOADER_EXPORT static int LocateField(med_idt fid, const std::string& fieldName, int& posCFormat, med_field_type& typcha, std::vector<std::string>& infos, std::string& dtunitOut, std::string& meshName);
23565 -  public:
23566 -    MEDLOADER_EXPORT virtual med_field_type getMEDFileFieldType() const = 0;
23567 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA *contentNotNullBase();
23568 -    MEDLOADER_EXPORT const MEDFileAnyTypeField1TSWithoutSDA *contentNotNullBase() const;
23569 -  protected:
23570 -    MCAuto<MEDFileAnyTypeField1TSWithoutSDA> _content;
23571 -  };
23572 -
23573 -  class MEDFileIntField1TS;
23574 -
23575 -  template<class T>
23576 -  class MEDFileTemplateField1TS : public MEDFileAnyTypeField1TS
23577 -  {
23578 -  public:
23579 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New();
23580 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const std::string& fileName, bool loadAll=true);
23581 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(med_idt fid, bool loadAll=true);
23582 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(DataArrayByte *db) { return BuildFromMemoryChunk<typename MLFieldTraits<T>::F1TSType>(db); }
23583 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
23584 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
23585 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const std::string& fileName, const std::string& fieldName, int iteration, int order, bool loadAll=true);
23586 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll=true);
23587 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::F1TSType *New(const typename MLFieldTraits<T>::F1TSWSDAType& other, bool shallowCopyOfContent);
23588 -  public:
23589 -    MEDLOADER_EXPORT static typename Traits<T>::ArrayType *ReturnSafelyTypedDataArray(MCAuto<DataArray>& arr);
23590 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl) const;
23591 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArray() const;
23592 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23593 -    MEDLOADER_EXPORT static MCAuto<typename Traits<T>::FieldType> SetDataArrayInField(MEDCouplingFieldDouble *f, MCAuto<DataArray>& arr);
23594 -    MEDLOADER_EXPORT static MCAuto<MEDCouplingFieldDouble> ToFieldTemplateWithTime(const typename Traits<T>::FieldType *f);
23595 -  public:
23596 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *field(const MEDFileMesh *mesh) const;
23597 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const;
23598 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const;
23599 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const;
23600 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, const MEDCouplingMesh *mesh, int renumPol=0) const;
23601 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevelOld(TypeOfField type, const std::string& mname, int meshDimRelToMax, int renumPol=0) const;
23602 -    MEDLOADER_EXPORT void setFieldNoProfileSBT(const typename Traits<T>::FieldType *field);
23603 -    MEDLOADER_EXPORT void setFieldProfile(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile);
23604 -    MEDLOADER_EXPORT typename MLFieldTraits<T>::F1TSType *extractPartImpl(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const;
23605 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const { return this->extractPartImpl(extractDef,mm); }
23606 -  protected:
23607 -    ~MEDFileTemplateField1TS() { }
23608 -    MEDFileTemplateField1TS();
23609 -    MEDFileTemplateField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileAnyTypeField1TS(fid,loadAll,ms) { }
23610 -    MEDFileTemplateField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileAnyTypeField1TS(fid,fieldName,loadAll,ms) { }
23611 -    MEDFileTemplateField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileAnyTypeField1TS(fid,fieldName,iteration,order,loadAll,ms) { }
23612 -    MEDFileTemplateField1TS(const typename MLFieldTraits<T>::F1TSWSDAType& other, bool shallowCopyOfContent):MEDFileAnyTypeField1TS(other,shallowCopyOfContent) { }
23613 -    const typename MLFieldTraits<T>::F1TSWSDAType *contentNotNull() const;
23614 -    typename MLFieldTraits<T>::F1TSWSDAType *contentNotNull();
23615 -  };
23616 -
23617 -  /*!
23618 -   * User class.
23619 -   */
23620 -  class MEDFileField1TS : public MEDFileTemplateField1TS<double>
23621 -  {
23622 -    friend class MEDFileTemplateField1TS<double>;
23623 -  public:
23624 -    MEDLOADER_EXPORT MEDFileIntField1TS *convertToInt(bool isDeepCpyGlobs=true) const;
23625 -  public:
23626 -    MEDLOADER_EXPORT MEDFileField1TS *shallowCpy() const;
23627 -    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF,
23628 -                                                                                          std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23629 -  public:
23630 -  private:
23631 -    med_field_type getMEDFileFieldType() const { return MED_FLOAT64; }
23632 -  private:
23633 -    ~MEDFileField1TS() { }
23634 -    MEDFileField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
23635 -    MEDFileField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms);
23636 -    MEDFileField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms);
23637 -    MEDFileField1TS(const MEDFileField1TSWithoutSDA& other, bool shallowCopyOfContent);
23638 -    MEDFileField1TS() { }
23639 -  };
23640 -
23641 -  template<class T>
23642 -  class MEDFileNDTemplateField1TS : public MEDFileTemplateField1TS<T>
23643 -  {
23644 -  public:
23645 -    MEDLOADER_EXPORT MEDFileField1TS *convertToDouble(bool isDeepCpyGlobs=true) const;
23646 -  protected:
23647 -    ~MEDFileNDTemplateField1TS() { }
23648 -    MEDFileNDTemplateField1TS() { }
23649 -    MEDFileNDTemplateField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateField1TS<T>(fid,loadAll,ms) { }
23650 -    MEDFileNDTemplateField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateField1TS<T>(fid,fieldName,loadAll,ms) { }
23651 -    MEDFileNDTemplateField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateField1TS<T>(fid,fieldName,iteration,order,loadAll,ms) { }
23652 -    MEDFileNDTemplateField1TS(const typename MLFieldTraits<T>::F1TSWSDAType& other, bool shallowCopyOfContent):MEDFileTemplateField1TS<T>(other,shallowCopyOfContent) { }
23653 -  };
23654 -
23655 -  class MEDFileIntField1TS : public MEDFileNDTemplateField1TS<int>
23656 -  {
23657 -    friend class MEDFileTemplateField1TS<int>;
23658 -  public:
23659 -    MEDLOADER_EXPORT MEDFileIntField1TS *shallowCpy() const { return new MEDFileIntField1TS(*this); }
23660 -  public:
23661 -    MEDLOADER_EXPORT static MCAuto<MEDCouplingFieldDouble> ConvertFieldIntToFieldDouble(const MEDCouplingFieldInt *f);
23662 -  private:
23663 -    med_field_type getMEDFileFieldType() const { return MED_INT32; }
23664 -  private:
23665 -    ~MEDFileIntField1TS() { }
23666 -    MEDFileIntField1TS() { }
23667 -    MEDFileIntField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<int>(fid,loadAll,ms) { }
23668 -    MEDFileIntField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<int>(fid,fieldName,loadAll,ms) { }
23669 -    MEDFileIntField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<int>(fid,fieldName,iteration,order,loadAll,ms) { }
23670 -    /*!
23671 -     * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
23672 -     * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
23673 -     *
23674 -     * \warning this is a shallow copy constructor
23675 -     */
23676 -    MEDFileIntField1TS(const MEDFileIntField1TSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateField1TS<int>(other,shallowCopyOfContent) { }
23677 -  };
23678 -
23679 -  class MEDFileFloatField1TS : public MEDFileNDTemplateField1TS<float>
23680 -  {
23681 -    friend class MEDFileTemplateField1TS<float>;
23682 -  private:
23683 -    med_field_type getMEDFileFieldType() const { return MED_INT32; }//6432
23684 -    MEDLOADER_EXPORT MEDFileFloatField1TS *shallowCpy() const { return new MEDFileFloatField1TS(*this); }
23685 -  private:
23686 -    ~MEDFileFloatField1TS() { }
23687 -    MEDFileFloatField1TS() { }
23688 -    MEDFileFloatField1TS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<float>(fid,loadAll,ms) { }
23689 -    MEDFileFloatField1TS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<float>(fid,fieldName,loadAll,ms) { }
23690 -    MEDFileFloatField1TS(med_idt fid, const std::string& fieldName, int iteration, int order, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateField1TS<float>(fid,fieldName,iteration,order,loadAll,ms) { }
23691 -    /*!
23692 -     * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
23693 -     * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
23694 -     *
23695 -     * \warning this is a shallow copy constructor
23696 -     */
23697 -    MEDFileFloatField1TS(const MEDFileFloatField1TSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateField1TS<float>(other,shallowCopyOfContent) { }
23698 -  };
23699 -
23700 -  class MEDFileAnyTypeFieldMultiTSWithoutSDA : public RefCountObject, public MEDFileFieldNameScope
23701 -  {
23702 -  protected:
23703 -    MEDFileAnyTypeFieldMultiTSWithoutSDA();
23704 -    MEDFileAnyTypeFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName);
23705 -    MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23706 -    MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23707 -  public:
23708 -    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
23709 -    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
23710 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTSWithoutSDA *deepCopy() const;
23711 -    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > splitComponents() const;
23712 -    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > splitDiscretizations() const;
23713 -    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > splitMultiDiscrPerGeoTypes() const;
23714 -    MEDLOADER_EXPORT virtual const char *getTypeStr() const = 0;
23715 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const = 0;
23716 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTSWithoutSDA *createNew() const = 0;
23717 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TSWithoutSDA *createNew1TSWithoutSDAEmptyInstance() const = 0;
23718 -    MEDLOADER_EXPORT virtual void checkCoherencyOfType(const MEDFileAnyTypeField1TSWithoutSDA *f1ts) const = 0;
23719 -    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
23720 -    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
23721 -    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& info);
23722 -    MEDLOADER_EXPORT int getTimeStepPos(int iteration, int order) const;
23723 -    MEDLOADER_EXPORT const MEDFileAnyTypeField1TSWithoutSDA& getTimeStepEntry(int iteration, int order) const;
23724 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA& getTimeStepEntry(int iteration, int order);
23725 -    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
23726 -    MEDLOADER_EXPORT int getNumberOfTS() const;
23727 -    MEDLOADER_EXPORT void eraseEmptyTS();
23728 -    MEDLOADER_EXPORT void eraseTimeStepIds(const int *startIds, const int *endIds);
23729 -    MEDLOADER_EXPORT void eraseTimeStepIds2(int bg, int end, int step);
23730 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *buildFromTimeStepIds(const int *startIds, const int *endIds) const;
23731 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *buildFromTimeStepIds2(int bg, int end, int step) const;
23732 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *partOfThisLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const;
23733 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *partOfThisNotLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const;
23734 -    MEDLOADER_EXPORT bool presenceOfStructureElements() const;
23735 -    MEDLOADER_EXPORT bool onlyStructureElements() const;
23736 -    MEDLOADER_EXPORT void killStructureElements();
23737 -    MEDLOADER_EXPORT void keepOnlyStructureElements();
23738 -    MEDLOADER_EXPORT void keepOnlyOnSE(const std::string& seName);
23739 -    MEDLOADER_EXPORT void getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const;
23740 -    MEDLOADER_EXPORT int getPosOfTimeStep(int iteration, int order) const;
23741 -    MEDLOADER_EXPORT int getPosGivenTime(double time, double eps=1e-8) const;
23742 -    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getIterations() const;
23743 -    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getTimeSteps(std::vector<double>& ret1) const;
23744 -    MEDLOADER_EXPORT void pushBackTimeStep(MCAuto<MEDFileAnyTypeField1TSWithoutSDA>& tse);
23745 -    MEDLOADER_EXPORT void synchronizeNameScope();
23746 -    MEDLOADER_EXPORT void simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const;
23747 -    MEDLOADER_EXPORT int getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const;
23748 -    MEDLOADER_EXPORT void appendFieldNoProfileSBT(const MEDCouplingFieldDouble *field, const DataArray *arr, MEDFileFieldGlobsReal& glob);
23749 -    MEDLOADER_EXPORT void appendFieldProfile(const MEDCouplingFieldDouble *field, const DataArray *arr, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob);
23750 -    MEDLOADER_EXPORT std::vector< std::vector< std::pair<int,int> > > getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23751 -    MEDLOADER_EXPORT std::vector< std::vector<TypeOfField> > getTypesOfFieldAvailable() const;
23752 -    MEDLOADER_EXPORT DataArray *getUndergroundDataArray(int iteration, int order) const;
23753 -    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(int iteration, int order, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23754 -    MEDLOADER_EXPORT bool renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N, MEDFileFieldGlobsReal& glob);
23755 -    MEDLOADER_EXPORT void accept(MEDFileFieldVisitor& visitor) const;
23756 -    MEDLOADER_EXPORT void loadStructureOrStructureAndBigArraysRecursively(med_idt fid, int nbPdt, med_field_type fieldTyp, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23757 -    MEDLOADER_EXPORT void writeLL(med_idt fid, const MEDFileWritable& opts) const;
23758 -    MEDLOADER_EXPORT void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
23759 -    MEDLOADER_EXPORT void loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc);
23760 -    MEDLOADER_EXPORT void unloadArrays();
23761 -  public:
23762 -    MEDLOADER_EXPORT const MEDFileAnyTypeField1TSWithoutSDA *getTimeStepAtPos2(int pos) const;
23763 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA *getTimeStepAtPos2(int pos);
23764 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed2() const;
23765 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed2() const;
23766 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti2() const;
23767 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti2() const;
23768 -    MEDLOADER_EXPORT void changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23769 -    MEDLOADER_EXPORT void changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23770 -    MEDLOADER_EXPORT void setIteration(int i, MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ts);
23771 -  protected:
23772 -    virtual med_field_type getMEDFileFieldType() const = 0;
23773 -    void copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr);
23774 -    void checkCoherencyOfTinyInfo(const MEDCouplingFieldDouble *field, const DataArray *arr) const;
23775 -    void checkThatComponentsMatch(const std::vector<std::string>& compos) const;
23776 -    void checkThatNbOfCompoOfTSMatchThis() const;
23777 -  protected:
23778 -    std::vector<std::string> _infos;
23779 -    std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > _time_steps;
23780 -  };
23781 -
23782 -  class MEDFileIntFieldMultiTSWithoutSDA;
23783 -
23784 -  template<class T>
23785 -  class MEDFileTemplateFieldMultiTSWithoutSDA : public MEDFileAnyTypeFieldMultiTSWithoutSDA
23786 -  {
23787 -  public:
23788 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSWSDAType *New(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23789 -    MEDLOADER_EXPORT const char *getTypeStr() const;
23790 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *createNew() const;
23791 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA *createNew1TSWithoutSDAEmptyInstance() const;
23792 -  protected:
23793 -    MEDFileTemplateFieldMultiTSWithoutSDA() { }
23794 -    MEDFileTemplateFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileAnyTypeFieldMultiTSWithoutSDA(fieldName,meshName) { }
23795 -    /** \param [in] fieldId field id in C mode */
23796 -    MEDFileTemplateFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileAnyTypeFieldMultiTSWithoutSDA(fid,fieldId,loadAll,ms,entities) { }
23797 -    MEDFileTemplateFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileAnyTypeFieldMultiTSWithoutSDA(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
23798 -    void checkCoherencyOfType(const MEDFileAnyTypeField1TSWithoutSDA *f1ts) const;
23799 -  };
23800 -  
23801 -  class MEDFileFieldMultiTSWithoutSDA : public MEDFileTemplateFieldMultiTSWithoutSDA<double>
23802 -  {
23803 -    friend class MEDFileTemplateFieldMultiTSWithoutSDA<double>;
23804 -  public:
23805 -    MEDLOADER_EXPORT MEDFileFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<double>(fid,fieldId,loadAll,ms,entities) { }
23806 -    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23807 -    MEDLOADER_EXPORT MEDFileIntFieldMultiTSWithoutSDA *convertToInt() const;
23808 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const { return new MEDFileFieldMultiTSWithoutSDA(*this); }
23809 -  protected:
23810 -    MEDFileFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileTemplateFieldMultiTSWithoutSDA<double>(fieldName,meshName) { }
23811 -    MEDFileFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<double>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
23812 -    med_field_type getMEDFileFieldType() const { return MED_FLOAT64; }
23813 -  public:
23814 -    MEDLOADER_EXPORT MEDFileFieldMultiTSWithoutSDA() { }
23815 -  };
23816 -
23817 -  template<class T>
23818 -  class MEDFileNDTemplateFieldMultiTSWithoutSDA : public MEDFileTemplateFieldMultiTSWithoutSDA<T>
23819 -  {
23820 -  public:
23821 -    MEDLOADER_EXPORT MEDFileFieldMultiTSWithoutSDA *convertToDouble() const;
23822 -  protected:
23823 -    MEDFileNDTemplateFieldMultiTSWithoutSDA() { }
23824 -    MEDFileNDTemplateFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<T>(fid,fieldId,loadAll,ms,entities) { }
23825 -    MEDFileNDTemplateFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileTemplateFieldMultiTSWithoutSDA<T>(fieldName,meshName) { }
23826 -    MEDFileNDTemplateFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<T>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
23827 -  };
23828 -
23829 -  class MEDFileIntFieldMultiTSWithoutSDA : public MEDFileNDTemplateFieldMultiTSWithoutSDA<int>
23830 -  {
23831 -    friend class MEDFileTemplateFieldMultiTSWithoutSDA<int>;
23832 -  public:
23833 -    MEDLOADER_EXPORT MEDFileIntFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<int>(fid,fieldId,loadAll,ms,entities) { }
23834 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const { return new MEDFileIntFieldMultiTSWithoutSDA(*this); }
23835 -  protected:
23836 -    MEDFileIntFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileNDTemplateFieldMultiTSWithoutSDA<int>(fieldName,meshName) { }
23837 -    MEDFileIntFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<int>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
23838 -    med_field_type getMEDFileFieldType() const { return MED_INT32; }
23839 -  public:
23840 -    MEDLOADER_EXPORT MEDFileIntFieldMultiTSWithoutSDA() { }
23841 -  };
23842 -
23843 -  class MEDFileFloatFieldMultiTSWithoutSDA : public MEDFileNDTemplateFieldMultiTSWithoutSDA<float>
23844 -  {
23845 -    friend class MEDFileTemplateFieldMultiTSWithoutSDA<float>;
23846 -  public:
23847 -    MEDLOADER_EXPORT MEDFileFloatFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<float>(fid,fieldId,loadAll,ms,entities) { }
23848 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const { return new MEDFileFloatFieldMultiTSWithoutSDA(*this); }
23849 -  protected:
23850 -    MEDFileFloatFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileNDTemplateFieldMultiTSWithoutSDA<float>(fieldName,meshName) { }
23851 -    MEDFileFloatFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<float>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
23852 -    med_field_type getMEDFileFieldType() const { return MED_INT32; }//6432
23853 -  public:
23854 -    MEDLOADER_EXPORT MEDFileFloatFieldMultiTSWithoutSDA() { }
23855 -  };
23856 -
23857 -  class MEDFileAnyTypeFieldMultiTSIterator;
23858 -  class MEDFileFastCellSupportComparator;
23859 -  /*!
23860 -   * User class.
23861 -   */
23862 -  class MEDFileAnyTypeFieldMultiTS : public RefCountObject, public MEDFileWritableStandAlone, public MEDFileFieldGlobsReal
23863 -  {
23864 -  protected:
23865 -    MEDFileAnyTypeFieldMultiTS();
23866 -    MEDFileAnyTypeFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
23867 -    MEDFileAnyTypeFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
23868 -    MEDFileAnyTypeFieldMultiTS(const MEDFileAnyTypeFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent);
23869 -    static MEDFileAnyTypeFieldMultiTS *BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c, med_idt fid);
23870 -    static MEDFileAnyTypeFieldMultiTSWithoutSDA *BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
23871 -    static MEDFileAnyTypeFieldMultiTSWithoutSDA *BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
23872 -  public:
23873 -    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, bool loadAll=true);
23874 -    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(med_idt fid, bool loadAll=true);
23875 -    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
23876 -    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
23877 -    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c);
23878 -    MEDLOADER_EXPORT void loadArrays();
23879 -    MEDLOADER_EXPORT void loadArraysIfNecessary();
23880 -    MEDLOADER_EXPORT void unloadArrays();
23881 -    MEDLOADER_EXPORT void unloadArraysWithoutDataLoss();
23882 -    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
23883 -    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
23884 -    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
23885 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *deepCopy() const;
23886 -    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > splitComponents() const;
23887 -    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > splitDiscretizations() const;
23888 -    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > splitMultiDiscrPerGeoTypes() const;
23889 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *shallowCpy() const = 0;
23890 -    MEDLOADER_EXPORT virtual void checkCoherencyOfType(const MEDFileAnyTypeField1TS *f1ts) const = 0;
23891 -    //
23892 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TS *getTimeStepAtPos(int pos) const = 0;
23893 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *getTimeStep(int iteration, int order) const;
23894 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *getTimeStepGivenTime(double time, double eps=1e-8) const;
23895 -    MEDLOADER_EXPORT static std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > SplitIntoCommonTimeSeries(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS);
23896 -    MEDLOADER_EXPORT static std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > SplitPerCommonSupport(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& fsc);
23897 -    MEDLOADER_EXPORT static int CheckSupportAcrossTime(MEDFileAnyTypeFieldMultiTS *f0, MEDFileAnyTypeFieldMultiTS *f1, const MEDFileMesh *mesh, TypeOfField& tof0, TypeOfField& tof1);
23898 -  public:// direct forwarding to MEDFileField1TSWithoutSDA instance _content
23899 -    MEDLOADER_EXPORT std::string getName() const;
23900 -    MEDLOADER_EXPORT void setName(const std::string& name);
23901 -    MEDLOADER_EXPORT std::string getDtUnit() const;
23902 -    MEDLOADER_EXPORT void setDtUnit(const std::string& dtUnit);
23903 -    MEDLOADER_EXPORT std::string getMeshName() const;
23904 -    MEDLOADER_EXPORT void setMeshName(const std::string& newMeshName);
23905 -    MEDLOADER_EXPORT std::string simpleRepr() const;
23906 -    MEDLOADER_EXPORT void simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const;
23907 -    MEDLOADER_EXPORT int getNumberOfTS() const;
23908 -    MEDLOADER_EXPORT void eraseEmptyTS();
23909 -    MEDLOADER_EXPORT void eraseTimeStepIds(const int *startIds, const int *endIds);
23910 -    MEDLOADER_EXPORT void eraseTimeStepIds2(int bg, int end, int step);
23911 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *buildSubPart(const int *startIds, const int *endIds) const;
23912 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *buildSubPartSlice(int bg, int end, int step) const;
23913 -    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getTimeSteps(std::vector<double>& ret1) const;
23914 -    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getIterations() const;
23915 -    MEDLOADER_EXPORT void pushBackTimeSteps(const std::vector<MEDFileAnyTypeField1TS *>& f1ts);
23916 -    MEDLOADER_EXPORT void pushBackTimeSteps(MEDFileAnyTypeFieldMultiTS *fmts);
23917 -    MEDLOADER_EXPORT void pushBackTimeStep(MEDFileAnyTypeField1TS *f1ts);
23918 -    MEDLOADER_EXPORT void synchronizeNameScope();
23919 -    MEDLOADER_EXPORT int getPosOfTimeStep(int iteration, int order) const;
23920 -    MEDLOADER_EXPORT int getPosGivenTime(double time, double eps=1e-8) const;
23921 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSIterator *iterator();
23922 -    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
23923 -    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
23924 -    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
23925 -    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& info);
23926 -    MEDLOADER_EXPORT int getNumberOfComponents() const;
23927 -    MEDLOADER_EXPORT int getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const;
23928 -    MEDLOADER_EXPORT std::vector< std::vector<TypeOfField> > getTypesOfFieldAvailable() const;
23929 -    MEDLOADER_EXPORT std::vector< std::vector< std::pair<int,int> > > getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
23930 -    MEDLOADER_EXPORT MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> getContent();
23931 -  public:
23932 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *buildNewEmpty() const = 0;
23933 -    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const = 0;
23934 -    MEDLOADER_EXPORT static MCAuto<MEDFileAnyTypeFieldMultiTS> Aggregate(const std::vector<const MEDFileAnyTypeFieldMultiTS *>& fmtss, const std::vector< std::vector< std::pair<int,int> > >& dts);
23935 -  public:
23936 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed() const;
23937 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed() const;
23938 -    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti() const;
23939 -    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti() const;
23940 -    MEDLOADER_EXPORT void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23941 -    MEDLOADER_EXPORT void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
23942 -  protected:
23943 -    MEDFileAnyTypeFieldMultiTSWithoutSDA *contentNotNullBase();
23944 -    const MEDFileAnyTypeFieldMultiTSWithoutSDA *contentNotNullBase() const;
23945 -  private:
23946 -    static std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > SplitPerCommonSupportNotNodesAlg(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& cmps);
23947 -  protected:
23948 -    MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> _content;
23949 -  };
23950 -
23951 -  template<class T>
23952 -  class MEDFileTemplateFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
23953 -  {
23954 -  public:
23955 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New();
23956 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(const std::string& fileName, bool loadAll=true);
23957 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(med_idt fid, bool loadAll=true);
23958 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(DataArrayByte *db) { return BuildFromMemoryChunk<typename MLFieldTraits<T>::FMTSType>(db); }
23959 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
23960 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
23961 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(const typename MLFieldTraits<T>::FMTSWSDAType& other, bool shallowCopyOfContent);
23962 -    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, const std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >& entities, bool loadAll=true);
23963 -    MEDLOADER_EXPORT typename MLFieldTraits<T>::FMTSType *extractPartImpl(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const;
23964 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const { return this->extractPartImpl(extractDef,mm); }
23965 -    //
23966 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *field(int iteration, int order, const MEDFileMesh *mesh) const;
23967 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const;
23968 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const;
23969 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const;
23970 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const;
23971 -    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const;
23972 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl) const;
23973 -    //
23974 -    MEDLOADER_EXPORT void appendFieldNoProfileSBT(const typename Traits<T>::FieldType *field);
23975 -    MEDLOADER_EXPORT void appendFieldProfile(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile);
23976 -    //
23977 -    MEDLOADER_EXPORT typename MLFieldTraits<T>::F1TSType *getTimeStepAtPos(int pos) const;
23978 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArray(int iteration, int order) const;
23979 -    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayExt(int iteration, int order, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
23980 -    MEDLOADER_EXPORT typename MLFieldTraits<T>::FMTSType *buildNewEmptyImpl() const;
23981 -    MEDLOADER_EXPORT void checkCoherencyOfType(const MEDFileAnyTypeField1TS *f1ts) const;
23982 -  protected:
23983 -    const typename MLFieldTraits<T>::FMTSWSDAType *contentNotNull() const;
23984 -    typename MLFieldTraits<T>::FMTSWSDAType *contentNotNull();
23985 -  protected:
23986 -    ~MEDFileTemplateFieldMultiTS() { }
23987 -    MEDFileTemplateFieldMultiTS();
23988 -    MEDFileTemplateFieldMultiTS(const typename MLFieldTraits<T>::FMTSWSDAType& other, bool shallowCopyOfContent);
23989 -    MEDFileTemplateFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
23990 -    MEDFileTemplateFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
23991 -  };
23992 -  
23993 -  class MEDFileIntFieldMultiTS;
23994 -
23995 -  /*!
23996 -   * User class.
23997 -   */
23998 -  class MEDFileFieldMultiTS : public MEDFileTemplateFieldMultiTS<double>
23999 -  {
24000 -    friend class MEDFileTemplateFieldMultiTS<double>;
24001 -  public:
24002 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *shallowCpy() const;
24003 -    MEDLOADER_EXPORT MEDFileIntFieldMultiTS *convertToInt(bool isDeepCpyGlobs=true) const;
24004 -    //
24005 -    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
24006 -    MEDLOADER_EXPORT MEDFileFieldMultiTS *buildNewEmpty() const { return buildNewEmptyImpl(); }
24007 -  public:
24008 -  private:
24009 -    ~MEDFileFieldMultiTS() { }
24010 -    MEDFileFieldMultiTS() { }
24011 -    MEDFileFieldMultiTS(const MEDFileFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent);
24012 -    MEDFileFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
24013 -    MEDFileFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
24014 -  };
24015 -
24016 -  template<class T>
24017 -  class MEDFileNDTemplateFieldMultiTS : public MEDFileTemplateFieldMultiTS<T>
24018 -  {
24019 -  public:
24020 -    MEDLOADER_EXPORT MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const;
24021 -  protected:
24022 -    ~MEDFileNDTemplateFieldMultiTS() { }
24023 -    MEDFileNDTemplateFieldMultiTS() { }
24024 -    MEDFileNDTemplateFieldMultiTS(const typename MLFieldTraits<T>::FMTSWSDAType& other, bool shallowCopyOfContent):MEDFileTemplateFieldMultiTS<T>(other,shallowCopyOfContent) { }
24025 -    MEDFileNDTemplateFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateFieldMultiTS<T>(fid,loadAll,ms) { }
24026 -    MEDFileNDTemplateFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTS<T>(fid,fieldName,loadAll,ms,entities) { }
24027 -  };
24028 -
24029 -  /*!
24030 -   * User class.
24031 -   */
24032 -  class MEDFileIntFieldMultiTS : public MEDFileNDTemplateFieldMultiTS<int>
24033 -  {
24034 -    friend class MEDFileTemplateFieldMultiTS<int>;
24035 -  public:
24036 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *shallowCpy() const { return new MEDFileIntFieldMultiTS(*this); }
24037 -    MEDLOADER_EXPORT MEDFileIntFieldMultiTS *buildNewEmpty() const { return buildNewEmptyImpl(); }
24038 -  private:
24039 -    ~MEDFileIntFieldMultiTS() { }
24040 -    MEDFileIntFieldMultiTS() { }
24041 -    MEDFileIntFieldMultiTS(const MEDFileIntFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateFieldMultiTS<int>(other,shallowCopyOfContent) { }
24042 -    MEDFileIntFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateFieldMultiTS<int>(fid,loadAll,ms) { }
24043 -    MEDFileIntFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0):MEDFileNDTemplateFieldMultiTS<int>(fid,fieldName,loadAll,ms,entities) { }
24044 -  };
24045 -
24046 -  /*!
24047 -   * User class.
24048 -   */
24049 -  class MEDFileFloatFieldMultiTS : public MEDFileNDTemplateFieldMultiTS<float>
24050 -  {
24051 -    friend class MEDFileTemplateFieldMultiTS<float>;
24052 -  public:
24053 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *shallowCpy() const { return new MEDFileFloatFieldMultiTS(*this); }
24054 -    MEDLOADER_EXPORT MEDFileFloatFieldMultiTS *buildNewEmpty() const { return buildNewEmptyImpl(); }
24055 -  private:
24056 -    ~MEDFileFloatFieldMultiTS() { }
24057 -    MEDFileFloatFieldMultiTS() { }
24058 -    MEDFileFloatFieldMultiTS(const MEDFileFloatFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateFieldMultiTS<float>(other,shallowCopyOfContent) { }
24059 -    MEDFileFloatFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateFieldMultiTS<float>(fid,loadAll,ms) { }
24060 -    MEDFileFloatFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0):MEDFileNDTemplateFieldMultiTS<float>(fid,fieldName,loadAll,ms,entities) { }
24061 -  };
24062 -
24063 -  class MEDFileAnyTypeFieldMultiTSIterator
24064 -  {
24065 -  public:
24066 -    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSIterator(MEDFileAnyTypeFieldMultiTS *fmts);
24067 -    MEDLOADER_EXPORT ~MEDFileAnyTypeFieldMultiTSIterator();
24068 -    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *nextt();
24069 -  private:
24070 -    MCAuto<MEDFileAnyTypeFieldMultiTS> _fmts;
24071 -    int _iter_id;
24072 -    int _nb_iter;
24073 -  };
24074 -
24075    class MEDFileFieldsIterator;
24076    class MEDFileStructureElements;
24077    
24078 @@ -1436,6 +123,7 @@
24079      MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
24080      MEDLOADER_EXPORT bool renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N);
24081      MEDLOADER_EXPORT void accept(MEDFileFieldVisitor& visitor) const;
24082 +    MEDLOADER_EXPORT MCAuto<MEDFileFields> linearToQuadratic(const MEDFileMeshes *oldLin, const MEDFileMeshes *newQuad) const;
24083    public:
24084      MEDLOADER_EXPORT MEDFileFields *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const;
24085    public:
24086 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldInternal.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldInternal.cxx
24087 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldInternal.cxx      1970-01-01 01:00:00.000000000 +0100
24088 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldInternal.cxx      2018-04-19 17:25:17.805798701 +0200
24089 @@ -0,0 +1,3189 @@
24090 +// Copyright (C) 2017  CEA/DEN, EDF R&D
24091 +//
24092 +// This library is free software; you can redistribute it and/or
24093 +// modify it under the terms of the GNU Lesser General Public
24094 +// License as published by the Free Software Foundation; either
24095 +// version 2.1 of the License, or (at your option) any later version.
24096 +//
24097 +// This library is distributed in the hope that it will be useful,
24098 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
24099 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24100 +// Lesser General Public License for more details.
24101 +//
24102 +// You should have received a copy of the GNU Lesser General Public
24103 +// License along with this library; if not, write to the Free Software
24104 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
24105 +//
24106 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24107 +//
24108 +// Author : Anthony Geay (EDF R&D)
24109 +
24110 +#include "MEDFileFieldInternal.hxx"
24111 +#include "MEDFileField.hxx"
24112 +#include "MEDFileFieldVisitor.hxx"
24113 +#include "MEDFileStructureElement.hxx"
24114 +#include "MEDLoaderBase.hxx"
24115 +#include "MEDFileSafeCaller.txx"
24116 +#include "MEDFileEntities.hxx"
24117 +
24118 +#include "MEDCouplingGaussLocalization.hxx"
24119 +#include "MEDCouplingFieldTemplate.hxx"
24120 +#include "MEDCouplingFieldDouble.hxx"
24121 +
24122 +#include "CellModel.hxx"
24123 +
24124 +extern med_geometry_type typmai[MED_N_CELL_FIXED_GEO];
24125 +extern INTERP_KERNEL::NormalizedCellType typmai2[MED_N_CELL_FIXED_GEO];
24126 +extern med_geometry_type typmai3[34];
24127 +
24128 +using namespace MEDCoupling;
24129 +
24130 +MEDFileGTKeeper::~MEDFileGTKeeper()
24131 +{
24132 +}
24133 +
24134 +MEDFileGTKeeper *MEDFileGTKeeperSta::deepCopy() const
24135 +{
24136 +  return new MEDFileGTKeeperSta(_geo_type);
24137 +}
24138 +
24139 +INTERP_KERNEL::NormalizedCellType MEDFileGTKeeperSta::getGeoType() const
24140 +{
24141 +  return _geo_type;
24142 +}
24143 +
24144 +std::string MEDFileGTKeeperSta::getRepr() const
24145 +{
24146 +  return INTERP_KERNEL::CellModel::GetCellModel(_geo_type).getRepr();
24147 +}
24148 +
24149 +bool MEDFileGTKeeperSta::isEqual(const MEDFileGTKeeper *other) const
24150 +{
24151 +  const MEDFileGTKeeperSta *otherC(dynamic_cast<const MEDFileGTKeeperSta *>(other));
24152 +  if(!otherC)
24153 +    return false;
24154 +  return _geo_type==otherC->_geo_type;
24155 +}
24156 +
24157 +MEDFileGTKeeperDyn::MEDFileGTKeeperDyn(const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileStructureElement *se):_mesh(mesh),_section(section),_se(se)
24158 +{
24159 +  if(mesh)
24160 +    mesh->incrRef();
24161 +  if(section)
24162 +    section->incrRef();
24163 +  if(se)
24164 +    se->incrRef();
24165 +  if(_mesh.isNull() || _section.isNull() || _se.isNull())
24166 +    throw INTERP_KERNEL::Exception("MEDFileGTKeeperDyn constructor : null pointer not allowed !");
24167 +}
24168 +
24169 +MEDFileGTKeeper *MEDFileGTKeeperDyn::deepCopy() const
24170 +{
24171 +  return new MEDFileGTKeeperDyn(_mesh,_section,_se);
24172 +}
24173 +
24174 +INTERP_KERNEL::NormalizedCellType MEDFileGTKeeperDyn::getGeoType() const
24175 +{
24176 +  throw INTERP_KERNEL::Exception("MEDFileGTKeeperDyn::getGeoType : not valid !");
24177 +}
24178 +
24179 +std::string MEDFileGTKeeperDyn::getRepr() const
24180 +{
24181 +  std::ostringstream oss;
24182 +  oss << _se->getDynGT();
24183 +  return oss.str();
24184 +}
24185 +
24186 +bool MEDFileGTKeeperDyn::isEqual(const MEDFileGTKeeper *other) const
24187 +{
24188 +  const MEDFileGTKeeperDyn *otherC(dynamic_cast<const MEDFileGTKeeperDyn *>(other));
24189 +  if(!otherC)
24190 +    return false;
24191 +  return this==otherC;
24192 +}
24193 +
24194 +MEDFileFieldLoc *MEDFileFieldLoc::New(med_idt fid, const std::string& locName)
24195 +{
24196 +  return new MEDFileFieldLoc(fid,locName);
24197 +}
24198 +
24199 +MEDFileFieldLoc *MEDFileFieldLoc::New(med_idt fid, int id, const MEDFileEntities *entities)
24200 +{
24201 +  return new MEDFileFieldLoc(fid,id,entities);
24202 +}
24203 +
24204 +MEDFileFieldLoc *MEDFileFieldLoc::New(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w)
24205 +{
24206 +  return new MEDFileFieldLoc(locName,geoType,refCoo,gsCoo,w);
24207 +}
24208 +
24209 +MEDFileFieldLoc::MEDFileFieldLoc(med_idt fid, const std::string& locName):_name(locName)
24210 +{
24211 +  med_geometry_type geotype;
24212 +  med_geometry_type sectiongeotype;
24213 +  int nsectionmeshcell;
24214 +  INTERP_KERNEL::AutoPtr<char> geointerpname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24215 +  INTERP_KERNEL::AutoPtr<char> sectionmeshname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24216 +  MEDlocalizationInfoByName(fid,locName.c_str(),&geotype,&_dim,&_nb_gauss_pt,geointerpname,sectionmeshname,&nsectionmeshcell,&sectiongeotype);
24217 +  _gt=new MEDFileGTKeeperSta((INTERP_KERNEL::NormalizedCellType)(std::distance(typmai3,std::find(typmai3,typmai3+34,geotype))));
24218 +  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
24219 +  _nb_node_per_cell=cm.getNumberOfNodes();
24220 +  _ref_coo.resize(_dim*_nb_node_per_cell);
24221 +  _gs_coo.resize(_dim*_nb_gauss_pt);
24222 +  _w.resize(_nb_gauss_pt);
24223 +  MEDFILESAFECALLERRD0(MEDlocalizationRd,(fid,locName.c_str(),MED_FULL_INTERLACE,&_ref_coo[0],&_gs_coo[0],&_w[0]));
24224 +}
24225 +
24226 +MEDFileFieldLoc::MEDFileFieldLoc(med_idt fid, int id, const MEDFileEntities *entities)
24227 +{
24228 +  med_geometry_type geotype;
24229 +  med_geometry_type sectiongeotype;
24230 +  int nsectionmeshcell;
24231 +  INTERP_KERNEL::AutoPtr<char> locName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24232 +  INTERP_KERNEL::AutoPtr<char> geointerpname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24233 +  INTERP_KERNEL::AutoPtr<char> sectionmeshname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24234 +  MEDFILESAFECALLERRD0(MEDlocalizationInfo,(fid,id+1,locName,&geotype,&_dim,&_nb_gauss_pt,geointerpname,sectionmeshname,&nsectionmeshcell,&sectiongeotype));
24235 +  _name=locName;
24236 +  std::string sectionName(MEDLoaderBase::buildStringFromFortran(sectionmeshname,MED_NAME_SIZE));
24237 +  if(sectionName.empty())
24238 +    {
24239 +      _gt=new MEDFileGTKeeperSta((INTERP_KERNEL::NormalizedCellType)(std::distance(typmai3,std::find(typmai3,typmai3+34,geotype))));
24240 +      const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
24241 +      _nb_node_per_cell=cm.getNumberOfNodes();
24242 +    }
24243 +  else
24244 +    {
24245 +      const MEDFileAllStaticEntitiesPlusDyn *entities2(dynamic_cast<const MEDFileAllStaticEntitiesPlusDyn *>(entities));
24246 +      if(!entities2)
24247 +        {
24248 +          std::ostringstream oss; oss << "MEDFileFieldLoc cstr : for loc \"" << _name << "\" presence of non static type ! Expect entities !";
24249 +          throw INTERP_KERNEL::Exception(oss.str());
24250 +        }
24251 +      const MEDFileStructureElement *se(entities2->getWithGT(geotype));
24252 +      const MEDFileUMesh *um(entities2->getSupMeshWithName(se->getMeshName()));
24253 +      const MEDFileUMesh *section(entities2->getSupMeshWithName(sectionName));
24254 +      _gt=new MEDFileGTKeeperDyn(um,section,se);
24255 +      {
24256 +        int dummy;
24257 +        MEDFILESAFECALLERRD0(MEDmeshGeotypeParameter,(fid,geotype,&dummy,&_nb_node_per_cell));
24258 +      }
24259 +    }
24260 +  _ref_coo.resize(_dim*_nb_node_per_cell);
24261 +  _gs_coo.resize(_dim*_nb_gauss_pt);
24262 +  _w.resize(_nb_gauss_pt);
24263 +  MEDFILESAFECALLERRD0(MEDlocalizationRd,(fid,locName,MED_FULL_INTERLACE,&_ref_coo[0],&_gs_coo[0],&_w[0]));
24264 +}
24265 +
24266 +MEDFileFieldLoc::MEDFileFieldLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType,
24267 +                                 const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w):_name(locName),_gt(new MEDFileGTKeeperSta(geoType)),_ref_coo(refCoo),_gs_coo(gsCoo),_w(w)
24268 +{
24269 +  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
24270 +  _dim=cm.getDimension();
24271 +  _nb_node_per_cell=cm.getNumberOfNodes();
24272 +  _nb_gauss_pt=_w.size();
24273 +}
24274 +
24275 +
24276 +MEDFileFieldLoc::MEDFileFieldLoc(const MEDFileFieldLoc& other):_dim(other._dim),_nb_gauss_pt(other._nb_gauss_pt),_gt(other._gt->deepCopy()),_nb_node_per_cell(other._nb_node_per_cell),_name(other._name),_ref_coo(other._ref_coo),_gs_coo(other._gs_coo),_w(other._w)
24277 +{
24278 +}
24279 +
24280 +MEDFileFieldLoc *MEDFileFieldLoc::deepCopy() const
24281 +{
24282 +  return new MEDFileFieldLoc(*this);
24283 +}
24284 +
24285 +bool MEDFileFieldLoc::isOnStructureElement() const
24286 +{
24287 +  const MEDFileGTKeeper *gt(_gt);
24288 +  if(!gt)
24289 +    throw INTERP_KERNEL::Exception("MEDFileFieldLoc::isOnStructureElement : null pointer !");
24290 +  const MEDFileGTKeeperDyn *gt2(dynamic_cast<const MEDFileGTKeeperDyn *>(gt));
24291 +  return gt2!=NULL;
24292 +}
24293 +
24294 +std::size_t MEDFileFieldLoc::getHeapMemorySizeWithoutChildren() const
24295 +{
24296 +  return (_ref_coo.capacity()+_gs_coo.capacity()+_w.capacity())*sizeof(double)+_name.capacity();
24297 +}
24298 +
24299 +std::vector<const BigMemoryObject *> MEDFileFieldLoc::getDirectChildrenWithNull() const
24300 +{
24301 +  return std::vector<const BigMemoryObject *>();
24302 +}
24303 +
24304 +void MEDFileFieldLoc::simpleRepr(std::ostream& oss) const
24305 +{
24306 +  static const char OFF7[]="\n    ";
24307 +  oss << "\"" << _name << "\"" << OFF7;
24308 +  oss << "GeoType=" << _gt->getRepr() << OFF7;
24309 +  oss << "Dimension=" << _dim << OFF7;
24310 +  oss << "Number of Gauss points=" << _nb_gauss_pt << OFF7;
24311 +  oss << "Number of nodes per cell=" << _nb_node_per_cell << OFF7;
24312 +  oss << "RefCoords="; std::copy(_ref_coo.begin(),_ref_coo.end(),std::ostream_iterator<double>(oss," ")); oss << OFF7;
24313 +  oss << "Weights="; std::copy(_w.begin(),_w.end(),std::ostream_iterator<double>(oss," ")); oss << OFF7;
24314 +  oss << "GaussPtsCoords="; std::copy(_gs_coo.begin(),_gs_coo.end(),std::ostream_iterator<double>(oss," ")); oss << std::endl;
24315 +}
24316 +
24317 +void MEDFileFieldLoc::setName(const std::string& name)
24318 +{
24319 +  _name=name;
24320 +}
24321 +
24322 +bool MEDFileFieldLoc::isEqual(const MEDFileFieldLoc& other, double eps) const
24323 +{
24324 +  if(_name!=other._name)
24325 +    return false;
24326 +  if(_dim!=other._dim)
24327 +    return false;
24328 +  if(_nb_gauss_pt!=other._nb_gauss_pt)
24329 +    return false;
24330 +  if(_nb_node_per_cell!=other._nb_node_per_cell)
24331 +    return false;
24332 +  if(!_gt->isEqual(other._gt))
24333 +    return false;
24334 +  if(!MEDCouplingGaussLocalization::AreAlmostEqual(_ref_coo,other._ref_coo,eps))
24335 +    return false;
24336 +  if(!MEDCouplingGaussLocalization::AreAlmostEqual(_gs_coo,other._gs_coo,eps))
24337 +    return false;
24338 +  if(!MEDCouplingGaussLocalization::AreAlmostEqual(_w,other._w,eps))
24339 +    return false;
24340 +
24341 +  return true;
24342 +}
24343 +
24344 +void MEDFileFieldLoc::writeLL(med_idt fid) const
24345 +{
24346 +  MEDFILESAFECALLERWR0(MEDlocalizationWr,(fid,_name.c_str(),typmai3[(int)getGeoType()],_dim,&_ref_coo[0],MED_FULL_INTERLACE,_nb_gauss_pt,&_gs_coo[0],&_w[0],MED_NO_INTERPOLATION,MED_NO_MESH_SUPPORT));
24347 +}
24348 +
24349 +std::string MEDFileFieldLoc::repr() const
24350 +{
24351 +  std::ostringstream oss; oss.precision(15);
24352 +  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
24353 +  oss << "Localization \"" << _name << "\" :\n" << "  - Geometric Type : " << cm.getRepr();
24354 +  oss << "\n  - Dimension : " << _dim << "\n  - Number of gauss points : ";
24355 +  oss << _nb_gauss_pt << "\n  - Number of nodes in cell : " << _nb_node_per_cell;
24356 +  oss << "\n  - Ref coords are : ";
24357 +  int sz=_ref_coo.size();
24358 +  if(sz%_dim==0)
24359 +    {
24360 +      int nbOfTuples=sz/_dim;
24361 +      for(int i=0;i<nbOfTuples;i++)
24362 +        {
24363 +          oss << "(";
24364 +          for(int j=0;j<_dim;j++)
24365 +            { oss << _ref_coo[i*_dim+j]; if(j!=_dim-1) oss << ", "; }
24366 +          oss << ") ";
24367 +        }
24368 +    }
24369 +  else
24370 +    std::copy(_ref_coo.begin(),_ref_coo.end(),std::ostream_iterator<double>(oss," "));
24371 +  oss << "\n  - Gauss coords in reference element : ";
24372 +  sz=_gs_coo.size();
24373 +  if(sz%_dim==0)
24374 +    {
24375 +      int nbOfTuples=sz/_dim;
24376 +      for(int i=0;i<nbOfTuples;i++)
24377 +        {
24378 +          oss << "(";
24379 +          for(int j=0;j<_dim;j++)
24380 +            { oss << _gs_coo[i*_dim+j]; if(j!=_dim-1) oss << ", "; }
24381 +          oss << ") ";
24382 +        }
24383 +    }
24384 +  else
24385 +    std::copy(_gs_coo.begin(),_gs_coo.end(),std::ostream_iterator<double>(oss," "));
24386 +  oss << "\n  - Weights of Gauss coords are : "; std::copy(_w.begin(),_w.end(),std::ostream_iterator<double>(oss," "));
24387 +  return oss.str();
24388 +}
24389 +
24390 +void MEDFileFieldPerMeshPerTypePerDisc::assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
24391 +{
24392 +  _type=field->getTypeOfField();
24393 +  _start=start;
24394 +  switch(_type)
24395 +  {
24396 +    case ON_CELLS:
24397 +      {
24398 +        getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,offset,offset+nbOfCells,1);
24399 +        _end=_start+nbOfCells;
24400 +        _nval=nbOfCells;
24401 +        break;
24402 +      }
24403 +    case ON_GAUSS_NE:
24404 +      {
24405 +        MCAuto<DataArrayInt> arr=field->getDiscretization()->getOffsetArr(field->getMesh());
24406 +        const int *arrPtr=arr->getConstPointer();
24407 +        getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,arrPtr[offset],arrPtr[offset+nbOfCells],1);
24408 +        _end=_start+(arrPtr[offset+nbOfCells]-arrPtr[offset]);
24409 +        _nval=nbOfCells;
24410 +        break;
24411 +      }
24412 +    case ON_GAUSS_PT:
24413 +      {
24414 +        const MEDCouplingFieldDiscretization *disc(field->getDiscretization());
24415 +        const MEDCouplingGaussLocalization& gsLoc(field->getGaussLocalization(_loc_id));
24416 +        const MEDCouplingFieldDiscretizationGauss *disc2(dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(disc));
24417 +        if(!disc2)
24418 +          throw INTERP_KERNEL::Exception("assignFieldNoProfile : invalid call to this method ! Internal Error !");
24419 +        const DataArrayInt *dai(disc2->getArrayOfDiscIds());
24420 +        MCAuto<DataArrayInt> dai2(disc2->getOffsetArr(field->getMesh()));
24421 +        const int *dai2Ptr(dai2->getConstPointer());
24422 +        int nbi(gsLoc.getWeights().size());
24423 +        MCAuto<DataArrayInt> da2(dai->selectByTupleIdSafeSlice(offset,offset+nbOfCells,1));
24424 +        MCAuto<DataArrayInt> da3(da2->findIdsEqual(_loc_id));
24425 +        const int *da3Ptr(da3->getConstPointer());
24426 +        if(da3->getNumberOfTuples()!=nbOfCells)
24427 +          {//profile : for gauss even in NoProfile !!!
24428 +            std::ostringstream oss; oss << "Pfl_" << nasc.getName() << "_" << INTERP_KERNEL::CellModel::GetCellModel(getGeoType()).getRepr() << "_" << _loc_id;
24429 +            _profile=oss.str();
24430 +            da3->setName(_profile.c_str());
24431 +            glob.appendProfile(da3);
24432 +          }
24433 +        MCAuto<DataArrayInt> da4(DataArrayInt::New());
24434 +        _nval=da3->getNbOfElems();
24435 +        da4->alloc(_nval*nbi,1);
24436 +        int *da4Ptr(da4->getPointer());
24437 +        for(int i=0;i<_nval;i++)
24438 +          {
24439 +            int ref=dai2Ptr[offset+da3Ptr[i]];
24440 +            for(int j=0;j<nbi;j++)
24441 +              *da4Ptr++=ref+j;
24442 +          }
24443 +        std::ostringstream oss2; oss2 << "Loc_" << nasc.getName() << "_" << INTERP_KERNEL::CellModel::GetCellModel(getGeoType()).getRepr() << "_" << _loc_id;
24444 +        _localization=oss2.str();
24445 +        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,da4);
24446 +        _end=_start+_nval*nbi;
24447 +        glob.appendLoc(_localization.c_str(),getGeoType(),gsLoc.getRefCoords(),gsLoc.getGaussCoords(),gsLoc.getWeights());
24448 +        break;
24449 +      }
24450 +    default:
24451 +      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::assignFieldNoProfile : not implemented yet for such discretization type of field !");
24452 +  }
24453 +  start=_end;
24454 +}
24455 +
24456 +/*!
24457 + * Leaf method of field with profile assignment. This method is the most general one. No optimization is done here.
24458 + * \param [in] pflName input containing name of profile if any. 0 if no profile (except for GAUSS_PT where a no profile can hide a profile when split by loc_id).
24459 + * \param [in] multiTypePfl is the end user profile specified in high level API
24460 + * \param [in] idsInPfl is the selection into the \a multiTypePfl whole profile that corresponds to the current geometric type.
24461 + * \param [in] locIds is the profile needed to be created for MED file format. It can be null if all cells of current geometric type are fetched in \a multiTypePfl.
24462 + *             \b WARNING if not null the MED file profile can be subdivided again in case of Gauss points.
24463 + * \param [in] mesh is the mesh coming from the MEDFileMesh instance in correspondence with the MEDFileField. The mesh inside the \a field is simply ignored.
24464 + */
24465 +void MEDFileFieldPerMeshPerTypePerDisc::assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arrr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
24466 +{
24467 +  _profile.clear();
24468 +  _type=field->getTypeOfField();
24469 +  std::string pflName(multiTypePfl->getName());
24470 +  std::ostringstream oss; oss << pflName;
24471 +  if(_type!=ON_NODES)
24472 +    {
24473 +      if(!isPflAlone)
24474 +        { const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType()); oss << "_" <<  cm.getRepr(); }
24475 +    }
24476 +  else
24477 +    { oss << "_NODE"; }
24478 +  if(locIds)
24479 +    {
24480 +      if(pflName.empty())
24481 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::assignFieldProfile : existing profile with empty name !");
24482 +      if(_type!=ON_GAUSS_PT)
24483 +        {
24484 +          locIds->setName(oss.str());
24485 +          glob.appendProfile(locIds);
24486 +          _profile=oss.str();
24487 +        }
24488 +    }
24489 +  _start=start;
24490 +  switch(_type)
24491 +  {
24492 +    case ON_NODES:
24493 +      {
24494 +        _nval=idsInPfl->getNumberOfTuples();
24495 +        getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,0,arrr->getNumberOfTuples(),1);
24496 +        _end=_start+_nval;
24497 +        break;
24498 +      }
24499 +    case ON_CELLS:
24500 +      {
24501 +        _nval=idsInPfl->getNumberOfTuples();
24502 +        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,idsInPfl);
24503 +        _end=_start+_nval;
24504 +        break;
24505 +      }
24506 +    case ON_GAUSS_NE:
24507 +      {
24508 +        MCAuto<DataArrayInt> arr=field->getDiscretization()->getOffsetArr(mesh);
24509 +        MCAuto<DataArrayInt> arr2=arr->deltaShiftIndex();
24510 +        MCAuto<DataArrayInt> arr3=arr2->selectByTupleId(multiTypePfl->begin(),multiTypePfl->end());
24511 +        arr3->computeOffsetsFull();
24512 +        MCAuto<DataArrayInt> tmp=idsInPfl->buildExplicitArrByRanges(arr3);
24513 +        int trueNval=tmp->getNumberOfTuples();
24514 +        _nval=idsInPfl->getNumberOfTuples();
24515 +        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,tmp);
24516 +        _end=_start+trueNval;
24517 +        break;
24518 +      }
24519 +    case ON_GAUSS_PT:
24520 +      {
24521 +        const MEDCouplingFieldDiscretizationGauss *disc2=dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(field->getDiscretization());
24522 +        if(!disc2)
24523 +          throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : invalid call to this method ! Internal Error !");
24524 +        const DataArrayInt *da1=disc2->getArrayOfDiscIds();
24525 +        const MEDCouplingGaussLocalization& gsLoc=field->getGaussLocalization(_loc_id);
24526 +        MCAuto<DataArrayInt> da2=da1->selectByTupleId(idsInPfl->begin(),idsInPfl->end());
24527 +        MCAuto<DataArrayInt> da3=da2->findIdsEqual(_loc_id);
24528 +        MCAuto<DataArrayInt> da4=idsInPfl->selectByTupleId(da3->begin(),da3->end());
24529 +        //
24530 +        MCAuto<MEDCouplingMesh> mesh2=mesh->buildPart(multiTypePfl->begin(),multiTypePfl->end());
24531 +        MCAuto<DataArrayInt> arr=disc2->getOffsetArr(mesh2);
24532 +        //
24533 +        MCAuto<DataArrayInt> tmp=DataArrayInt::New();
24534 +        int trueNval=0;
24535 +        for(const int *pt=da4->begin();pt!=da4->end();pt++)
24536 +          trueNval+=arr->getIJ(*pt+1,0)-arr->getIJ(*pt,0);
24537 +        tmp->alloc(trueNval,1);
24538 +        int *tmpPtr=tmp->getPointer();
24539 +        for(const int *pt=da4->begin();pt!=da4->end();pt++)
24540 +          for(int j=arr->getIJ(*pt,0);j<arr->getIJ(*pt+1,0);j++)
24541 +            *tmpPtr++=j;
24542 +        //
24543 +        _nval=da4->getNumberOfTuples();
24544 +        getOrCreateAndGetArray()->setContigPartOfSelectedValues(_start,arrr,tmp);
24545 +        _end=_start+trueNval;
24546 +        oss << "_loc_" << _loc_id;
24547 +        if(locIds)
24548 +          {
24549 +            MCAuto<DataArrayInt> da5=locIds->selectByTupleId(da3->begin(),da3->end());
24550 +            da5->setName(oss.str());
24551 +            glob.appendProfile(da5);
24552 +            _profile=oss.str();
24553 +          }
24554 +        else
24555 +          {
24556 +            if(!da3->isIota(nbOfEltsInWholeMesh))
24557 +              {
24558 +                da3->setName(oss.str());
24559 +                glob.appendProfile(da3);
24560 +                _profile=oss.str();
24561 +              }
24562 +          }
24563 +        std::ostringstream oss2; oss2 << "Loc_" << nasc.getName() << "_" << INTERP_KERNEL::CellModel::GetCellModel(getGeoType()).getRepr() << "_" << _loc_id;
24564 +        _localization=oss2.str();
24565 +        glob.appendLoc(_localization.c_str(),getGeoType(),gsLoc.getRefCoords(),gsLoc.getGaussCoords(),gsLoc.getWeights());
24566 +        break;
24567 +      }
24568 +    default:
24569 +      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::assignFieldProfile : not implemented yet for such discretization type of field !");
24570 +  }
24571 +  start=_end;
24572 +}
24573 +
24574 +void MEDFileFieldPerMeshPerTypePerDisc::assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob)
24575 +{
24576 +  _start=start;
24577 +  _nval=arrr->getNumberOfTuples();
24578 +  getOrCreateAndGetArray()->setContigPartOfSelectedValuesSlice(_start,arrr,0,_nval,1);
24579 +  _end=_start+_nval;
24580 +  start=_end;
24581 +}
24582 +
24583 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const PartDefinition *pd)
24584 +{
24585 +  return new MEDFileFieldPerMeshPerTypePerDisc(fath,type,profileIt,pd);
24586 +}
24587 +
24588 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::New(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int locId)
24589 +{
24590 +  return new MEDFileFieldPerMeshPerTypePerDisc(fath,type,locId,std::string());
24591 +}
24592 +
24593 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::New(const MEDFileFieldPerMeshPerTypePerDisc& other)
24594 +{
24595 +  return new MEDFileFieldPerMeshPerTypePerDisc(other);
24596 +}
24597 +
24598 +std::size_t MEDFileFieldPerMeshPerTypePerDisc::getHeapMemorySizeWithoutChildren() const
24599 +{
24600 +  return _profile.capacity()+_localization.capacity()+sizeof(MEDFileFieldPerMeshPerTypePerDisc);
24601 +}
24602 +
24603 +std::vector<const BigMemoryObject *> MEDFileFieldPerMeshPerTypePerDisc::getDirectChildrenWithNull() const
24604 +{
24605 +  std::vector<const BigMemoryObject *> ret(1);
24606 +  ret[0]=(const PartDefinition*)_pd;
24607 +  return ret;
24608 +}
24609 +
24610 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::deepCopy(MEDFileFieldPerMeshPerTypeCommon *father) const
24611 +{
24612 +  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> ret(new MEDFileFieldPerMeshPerTypePerDisc(*this));
24613 +  ret->_father=father;
24614 +  return ret.retn();
24615 +}
24616 +
24617 +MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField atype, int profileIt, const PartDefinition *pd)
24618 +try:_type(atype),_father(fath),_profile_it(profileIt),_pd(const_cast<PartDefinition *>(pd))
24619 +{
24620 +  if(pd)
24621 +    pd->incrRef();
24622 +}
24623 +catch(INTERP_KERNEL::Exception& e)
24624 +{
24625 +    throw e;
24626 +}
24627 +
24628 +MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int locId, const std::string& dummy):_type(type),_father(fath),_loc_id(locId)
24629 +{
24630 +}
24631 +
24632 +MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc(const MEDFileFieldPerMeshPerTypePerDisc& other):RefCountObject(other),_type(other._type),_father(0),_start(other._start),_end(other._end),_nval(other._nval),_profile(other._profile),_localization(other._localization),_loc_id(other._loc_id),_profile_it(other._profile_it),_pd(other._pd),_tmp_work1(other._tmp_work1)
24633 +{
24634 +}
24635 +
24636 +MEDFileFieldPerMeshPerTypePerDisc::MEDFileFieldPerMeshPerTypePerDisc():_type(ON_CELLS),_father(0),_start(-std::numeric_limits<int>::max()),_end(-std::numeric_limits<int>::max()),
24637 +    _nval(-std::numeric_limits<int>::max()),_loc_id(-std::numeric_limits<int>::max())
24638 +{
24639 +}
24640 +
24641 +void MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile(med_idt fid, const std::string& fieldName, int nbOfCompo, int iteration, int order, med_entity_type menti, med_geometry_type mgeoti, unsigned char *startFeedingPtr)
24642 +{
24643 +  const PartDefinition *pd(_pd);
24644 +  if(!pd)
24645 +    {
24646 +      med_entity_type mentiCpy(menti);
24647 +      INTERP_KERNEL::AutoPtr<char> locname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24648 +      int nbi,tmp1;
24649 +      med_int nbValsInFile(MEDfieldnValueWithProfileByName(fid,fieldName.c_str(),iteration,order,menti,mgeoti,_profile.c_str(),MED_COMPACT_PFLMODE,&tmp1,locname,&nbi));
24650 +      if(nbValsInFile==0 && menti==MED_CELL)
24651 +        {//
24652 +          nbValsInFile=MEDfieldnValueWithProfileByName(fid,fieldName.c_str(),iteration,order,MED_DESCENDING_FACE,mgeoti,_profile.c_str(),MED_COMPACT_PFLMODE,&tmp1,locname,&nbi);
24653 +          if(nbValsInFile==0)
24654 +            {
24655 +              nbValsInFile=MEDfieldnValueWithProfileByName(fid,fieldName.c_str(),iteration,order,MED_DESCENDING_EDGE,mgeoti,_profile.c_str(),MED_COMPACT_PFLMODE,&tmp1,locname,&nbi);
24656 +              if(nbValsInFile!=0)
24657 +                { mentiCpy=MED_DESCENDING_EDGE; }
24658 +            }
24659 +          else
24660 +            { mentiCpy=MED_DESCENDING_FACE; }
24661 +        }
24662 +      if(_end-_start!=nbValsInFile*nbi)
24663 +        {
24664 +          std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile : The number of tuples to read is " << nbValsInFile << "*" << nbi <<  " (nb integration points) ! But in data structure it values " << _end-_start << " is expected !";
24665 +          throw INTERP_KERNEL::Exception(oss.str());
24666 +        }
24667 +      MEDFILESAFECALLERRD0(MEDfieldValueWithProfileRd,(fid,fieldName.c_str(),iteration,order,mentiCpy,mgeoti,MED_COMPACT_PFLMODE,_profile.c_str(),MED_FULL_INTERLACE,MED_ALL_CONSTITUENT,startFeedingPtr));
24668 +    }
24669 +  else
24670 +    {
24671 +      if(!_profile.empty())
24672 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile : not implemented !");
24673 +      INTERP_KERNEL::AutoPtr<char> pflname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)),locname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24674 +      int profilesize,nbi;
24675 +      int overallNval(MEDfieldnValueWithProfile(fid,fieldName.c_str(),iteration,order,menti,mgeoti,_profile_it+1,MED_COMPACT_PFLMODE,pflname,&profilesize,locname,&nbi));
24676 +      const SlicePartDefinition *spd(dynamic_cast<const SlicePartDefinition *>(pd));
24677 +      if(spd)
24678 +        {
24679 +          int start,stop,step;
24680 +          spd->getSlice(start,stop,step);
24681 +          int nbOfEltsToLoad(DataArray::GetNumberOfItemGivenBES(start,stop,step,"MEDFileFieldPerMeshPerTypePerDisc::goReadZeValuesInFile"));
24682 +          med_filter filter=MED_FILTER_INIT;
24683 +          MEDFILESAFECALLERRD0(MEDfilterBlockOfEntityCr,(fid,/*nentity*/overallNval,/*nvaluesperentity*/nbi,/*nconstituentpervalue*/nbOfCompo,
24684 +                                                         MED_ALL_CONSTITUENT,MED_FULL_INTERLACE,MED_COMPACT_STMODE,MED_NO_PROFILE,
24685 +                                                         /*start*/start+1,/*stride*/step,/*count*/1,/*blocksize*/nbOfEltsToLoad,
24686 +                                                         /*lastblocksize=useless because count=1*/0,&filter));
24687 +          MEDFILESAFECALLERRD0(MEDfieldValueAdvancedRd,(fid,fieldName.c_str(),iteration,order,menti,mgeoti,&filter,startFeedingPtr));
24688 +          MEDfilterClose(&filter);
24689 +          return ;
24690 +        }
24691 +      const DataArrayPartDefinition *dpd(dynamic_cast<const DataArrayPartDefinition *>(pd));
24692 +      if(dpd)
24693 +        {
24694 +          dpd->checkConsistencyLight();
24695 +          MCAuto<DataArrayInt> myIds(dpd->toDAI());
24696 +          int a(myIds->getMinValueInArray()),b(myIds->getMaxValueInArray());
24697 +          myIds=myIds->deepCopy();// WARNING deep copy here because _pd is modified by applyLin !!!
24698 +          myIds->applyLin(1,-a);
24699 +          int nbOfEltsToLoad(b-a+1);
24700 +          med_filter filter=MED_FILTER_INIT;
24701 +          {//TODO : manage int32 !
24702 +            MCAuto<DataArrayDouble> tmp(DataArrayDouble::New());
24703 +            tmp->alloc(nbOfEltsToLoad,nbOfCompo);
24704 +            MEDFILESAFECALLERRD0(MEDfilterBlockOfEntityCr,(fid,/*nentity*/overallNval,/*nvaluesperentity*/nbi,/*nconstituentpervalue*/nbOfCompo,
24705 +                                                           MED_ALL_CONSTITUENT,MED_FULL_INTERLACE,MED_COMPACT_STMODE,MED_NO_PROFILE,
24706 +                                                           /*start*/a+1,/*stride*/1,/*count*/1,/*blocksize*/nbOfEltsToLoad,
24707 +                                                           /*lastblocksize=useless because count=1*/0,&filter));
24708 +            MEDFILESAFECALLERRD0(MEDfieldValueAdvancedRd,(fid,fieldName.c_str(),iteration,order,menti,mgeoti,&filter,reinterpret_cast<unsigned char *>(tmp->getPointer())));
24709 +            MCAuto<DataArrayDouble> feeder(DataArrayDouble::New());
24710 +            feeder->useExternalArrayWithRWAccess(reinterpret_cast<double *>(startFeedingPtr),_nval,nbOfCompo);
24711 +            feeder->setContigPartOfSelectedValues(0,tmp,myIds);
24712 +          }
24713 +          MEDfilterClose(&filter);
24714 +        }
24715 +      else
24716 +        throw INTERP_KERNEL::Exception("Not implemented yet for not slices!");
24717 +    }
24718 +}
24719 +
24720 +const MEDFileFieldPerMeshPerTypeCommon *MEDFileFieldPerMeshPerTypePerDisc::getFather() const
24721 +{
24722 +  return _father;
24723 +}
24724 +
24725 +void MEDFileFieldPerMeshPerTypePerDisc::loadOnlyStructureOfDataRecursively(med_idt fid, int& start, const MEDFileFieldNameScope& nasc)
24726 +{
24727 +  INTERP_KERNEL::AutoPtr<char> locname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24728 +  INTERP_KERNEL::AutoPtr<char> pflname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
24729 +  std::string fieldName(nasc.getName()),meshName(getMeshName());
24730 +  int iteration(getIteration()),order(getOrder()),profilesize,nbi;
24731 +  TypeOfField type(getType());
24732 +  med_geometry_type mgeoti;
24733 +  med_entity_type menti;
24734 +  _father->entriesForMEDfile(type,mgeoti,menti);
24735 +  int zeNVal(MEDfieldnValueWithProfile(fid,fieldName.c_str(),iteration,order,menti,mgeoti,_profile_it+1,MED_COMPACT_PFLMODE,pflname,&profilesize,locname,&nbi));
24736 +  if(zeNVal==0 && type==ON_CELLS)
24737 +    {//eheh maybe there's a surprise :)
24738 +      int zeNVal1(MEDfieldnValueWithProfile(fid,fieldName.c_str(),iteration,order,MED_DESCENDING_FACE,mgeoti,_profile_it+1,MED_COMPACT_PFLMODE,pflname,&profilesize,locname,&nbi));
24739 +      if(zeNVal1==0)
24740 +        {
24741 +          int zeNVal2(MEDfieldnValueWithProfile(fid,fieldName.c_str(),iteration,order,MED_DESCENDING_EDGE,mgeoti,_profile_it+1,MED_COMPACT_PFLMODE,pflname,&profilesize,locname,&nbi));
24742 +          if(zeNVal2!=0)
24743 +            zeNVal=zeNVal2;
24744 +        }
24745 +      else
24746 +        {
24747 +          zeNVal=zeNVal1;
24748 +        }
24749 +    }
24750 +  _profile=MEDLoaderBase::buildStringFromFortran(pflname,MED_NAME_SIZE);
24751 +  _localization=MEDLoaderBase::buildStringFromFortran(locname,MED_NAME_SIZE);
24752 +  const PartDefinition *pd(_pd);
24753 +  if(!pd)
24754 +    {
24755 +      _nval=zeNVal;
24756 +    }
24757 +  else
24758 +    {
24759 +      if(!_profile.empty())
24760 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::loadOnlyStructureOfDataRecursively : profiles are not managed yet with part of def !");
24761 +      _nval=pd->getNumberOfElems();
24762 +    }
24763 +  _start=start;
24764 +  _end=start+_nval*nbi;
24765 +  start=_end;
24766 +  if(type==ON_CELLS && !_localization.empty())
24767 +    {
24768 +      if(_localization!="MED_GAUSS_ELNO")//For compatibility with MED2.3
24769 +        setType(ON_GAUSS_PT);
24770 +      else
24771 +        {
24772 +          setType(ON_GAUSS_NE);
24773 +          _localization.clear();
24774 +        }
24775 +    }
24776 +}
24777 +
24778 +void MEDFileFieldPerMeshPerTypePerDisc::loadBigArray(med_idt fid, const MEDFileFieldNameScope& nasc)
24779 +{
24780 +  std::string fieldName(nasc.getName()),meshName(getMeshName());
24781 +  int iteration(getIteration()),order(getOrder());
24782 +  TypeOfField type(getType());
24783 +  med_geometry_type mgeoti;
24784 +  med_entity_type menti;
24785 +  _father->entriesForMEDfile(type,mgeoti,menti);
24786 +  if(_start>_end)
24787 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::loadBigArray : internal error in range !");
24788 +  if(_start==_end)
24789 +    return ;
24790 +  DataArray *arr(getOrCreateAndGetArray());//arr is not null due to the spec of getOrCreateAndGetArray
24791 +  if(_start<0 || _start>=arr->getNumberOfTuples())
24792 +    {
24793 +      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypePerDisc::loadBigArray : Invalid start ("<< _start << ") regarding admissible range of allocated array [0," << arr->getNumberOfTuples() << ") !";
24794 +      throw INTERP_KERNEL::Exception(oss.str());
24795 +    }
24796 +  if(_end<0 || _end>arr->getNumberOfTuples())
24797 +    {
24798 +      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypePerDisc::loadBigArray : Invalid start ("<< _start << ") regarding admissible range of allocated array [0," << arr->getNumberOfTuples() << "] !";
24799 +      throw INTERP_KERNEL::Exception(oss.str());
24800 +    }
24801 +  int nbOfCompo(arr->getNumberOfComponents());
24802 +  DataArrayDouble *arrD(dynamic_cast<DataArrayDouble *>(arr));
24803 +  if(arrD)
24804 +    {
24805 +      double *startFeeding(arrD->getPointer()+_start*nbOfCompo);
24806 +      goReadZeValuesInFile(fid,fieldName,nbOfCompo,iteration,order,menti,mgeoti,reinterpret_cast<unsigned char*>(startFeeding));
24807 +      return ;
24808 +    }
24809 +  DataArrayInt *arrI(dynamic_cast<DataArrayInt *>(arr));
24810 +  if(arrI)
24811 +    {
24812 +      int *startFeeding(arrI->getPointer()+_start*nbOfCompo);
24813 +      goReadZeValuesInFile(fid,fieldName,nbOfCompo,iteration,order,menti,mgeoti,reinterpret_cast<unsigned char*>(startFeeding));
24814 +      return ;
24815 +    }
24816 +  DataArrayFloat *arrF(dynamic_cast<DataArrayFloat *>(arr));
24817 +  if(arrF)
24818 +    {
24819 +      float *startFeeding(arrF->getPointer()+_start*nbOfCompo);
24820 +      goReadZeValuesInFile(fid,fieldName,nbOfCompo,iteration,order,menti,mgeoti,reinterpret_cast<unsigned char*>(startFeeding));
24821 +      return ;
24822 +    }
24823 +  throw INTERP_KERNEL::Exception("Error on array reading ! Unrecognized type of field ! Should be in FLOAT64 FLOAT32 or INT32 !");
24824 +}
24825 +
24826 +/*!
24827 + * Set a \c this->_start **and** \c this->_end keeping the same delta between the two.
24828 + */
24829 +void MEDFileFieldPerMeshPerTypePerDisc::setNewStart(int newValueOfStart)
24830 +{
24831 +  int delta=_end-_start;
24832 +  _start=newValueOfStart;
24833 +  _end=_start+delta;
24834 +}
24835 +
24836 +int MEDFileFieldPerMeshPerTypePerDisc::getIteration() const
24837 +{
24838 +  return _father->getIteration();
24839 +}
24840 +
24841 +int MEDFileFieldPerMeshPerTypePerDisc::getOrder() const
24842 +{
24843 +  return _father->getOrder();
24844 +}
24845 +
24846 +double MEDFileFieldPerMeshPerTypePerDisc::getTime() const
24847 +{
24848 +  return _father->getTime();
24849 +}
24850 +
24851 +std::string MEDFileFieldPerMeshPerTypePerDisc::getMeshName() const
24852 +{
24853 +  return _father->getMeshName();
24854 +}
24855 +
24856 +void MEDFileFieldPerMeshPerTypePerDisc::simpleRepr(int bkOffset, std::ostream& oss, int id) const
24857 +{
24858 +  const char startLine[]="    ## ";
24859 +  std::string startLine2(bkOffset,' ');
24860 +  startLine2+=startLine;
24861 +  INTERP_KERNEL::AutoCppPtr<MEDCouplingFieldDiscretization> tmp(MEDCouplingFieldDiscretization::New(_type));
24862 +  oss << startLine2 << "Localization #" << id << "." << std::endl;
24863 +  oss << startLine2 << "  Type=" << tmp->getRepr() << "." << std::endl;
24864 +  oss << startLine2 << "  This type discretization lies on profile : \"" << _profile << "\" and on the following localization : \"" << _localization << "\"." << std::endl;
24865 +  oss << startLine2 << "  This type discretization has " << _end-_start << " tuples (start=" << _start << ", end=" << _end << ")." << std::endl;
24866 +  oss << startLine2 << "  This type discretization has " << (_end-_start)/_nval << " integration points." << std::endl;
24867 +}
24868 +
24869 +TypeOfField MEDFileFieldPerMeshPerTypePerDisc::getType() const
24870 +{
24871 +  return _type;
24872 +}
24873 +
24874 +INTERP_KERNEL::NormalizedCellType MEDFileFieldPerMeshPerTypePerDisc::getGeoType() const
24875 +{
24876 +  return _father->getGeoType();
24877 +}
24878 +
24879 +void MEDFileFieldPerMeshPerTypePerDisc::fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const
24880 +{
24881 +  types.insert(_type);
24882 +}
24883 +
24884 +void MEDFileFieldPerMeshPerTypePerDisc::setType(TypeOfField newType)
24885 +{
24886 +  _type=newType;
24887 +}
24888 +
24889 +int MEDFileFieldPerMeshPerTypePerDisc::getNumberOfComponents() const
24890 +{
24891 +  return _father->getNumberOfComponents();
24892 +}
24893 +
24894 +int MEDFileFieldPerMeshPerTypePerDisc::getNumberOfTuples() const
24895 +{
24896 +  return _end-_start;
24897 +}
24898 +
24899 +void MEDFileFieldPerMeshPerTypePerDisc::incrementNbOfVals(int deltaNbVal)
24900 +{
24901 +  int nbi((_end-_start)/_nval);
24902 +  _nval+=deltaNbVal;
24903 +  _end+=nbi*deltaNbVal;
24904 +}
24905 +
24906 +DataArray *MEDFileFieldPerMeshPerTypePerDisc::getOrCreateAndGetArray()
24907 +{
24908 +  return _father->getOrCreateAndGetArray();
24909 +}
24910 +
24911 +const DataArray *MEDFileFieldPerMeshPerTypePerDisc::getOrCreateAndGetArray() const
24912 +{
24913 +  const MEDFileFieldPerMeshPerTypeCommon *fath=_father;
24914 +  return fath->getOrCreateAndGetArray();
24915 +}
24916 +
24917 +const std::vector<std::string>& MEDFileFieldPerMeshPerTypePerDisc::getInfo() const
24918 +{
24919 +  return _father->getInfo();
24920 +}
24921 +
24922 +std::string MEDFileFieldPerMeshPerTypePerDisc::getProfile() const
24923 +{
24924 +  return _profile;
24925 +}
24926 +
24927 +void MEDFileFieldPerMeshPerTypePerDisc::setProfile(const std::string& newPflName)
24928 +{
24929 +  _profile=newPflName;
24930 +}
24931 +
24932 +std::string MEDFileFieldPerMeshPerTypePerDisc::getLocalization() const
24933 +{
24934 +  return _localization;
24935 +}
24936 +
24937 +void MEDFileFieldPerMeshPerTypePerDisc::setLocalization(const std::string& newLocName)
24938 +{
24939 +  _localization=newLocName;
24940 +}
24941 +
24942 +void MEDFileFieldPerMeshPerTypePerDisc::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
24943 +{
24944 +  for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
24945 +    {
24946 +      if(std::find((*it2).first.begin(),(*it2).first.end(),_profile)!=(*it2).first.end())
24947 +        {
24948 +          _profile=(*it2).second;
24949 +          return;
24950 +        }
24951 +    }
24952 +}
24953 +
24954 +void MEDFileFieldPerMeshPerTypePerDisc::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
24955 +{
24956 +  for(std::vector< std::pair<std::vector<std::string>, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++)
24957 +    {
24958 +      if(std::find((*it2).first.begin(),(*it2).first.end(),_localization)!=(*it2).first.end())
24959 +        {
24960 +          _localization=(*it2).second;
24961 +          return;
24962 +        }
24963 +    }
24964 +}
24965 +
24966 +void MEDFileFieldPerMeshPerTypePerDisc::getFieldAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
24967 +{
24968 +  if(type!=_type)
24969 +    return ;
24970 +  dads.push_back(std::pair<int,int>(_start,_end));
24971 +  geoTypes.push_back(getGeoType());
24972 +  if(_profile.empty())
24973 +    pfls.push_back(0);
24974 +  else
24975 +    {
24976 +      pfls.push_back(glob->getProfile(_profile.c_str()));
24977 +    }
24978 +  if(_localization.empty())
24979 +    locs.push_back(-1);
24980 +  else
24981 +    {
24982 +      locs.push_back(glob->getLocalizationId(_localization.c_str()));
24983 +    }
24984 +}
24985 +
24986 +void MEDFileFieldPerMeshPerTypePerDisc::fillValues(int discId, int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
24987 +{
24988 +  entries[startEntryId]=std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int> ,std::pair<int,int> >(std::pair<INTERP_KERNEL::NormalizedCellType,int>(getGeoType(),discId),std::pair<int,int>(_start,_end));
24989 +  startEntryId++;
24990 +}
24991 +
24992 +void MEDFileFieldPerMeshPerTypePerDisc::writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const
24993 +{
24994 +  TypeOfField type=getType();
24995 +  INTERP_KERNEL::NormalizedCellType geoType(getGeoType());
24996 +  med_geometry_type mgeoti;
24997 +  med_entity_type menti;
24998 +  _father->entriesForMEDfile(getType(),mgeoti,menti);
24999 +  const DataArray *arr(getOrCreateAndGetArray());
25000 +  if(!arr)
25001 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::writeLL : no array set !");
25002 +  if(!arr->isAllocated())
25003 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::writeLL : the array to be written is not allocated !");
25004 +  const DataArrayDouble *arrD(dynamic_cast<const DataArrayDouble *>(arr));
25005 +  const DataArrayInt *arrI(dynamic_cast<const DataArrayInt *>(arr));
25006 +  const DataArrayFloat *arrF(dynamic_cast<const DataArrayFloat *>(arr));
25007 +  const unsigned char *locToWrite=0;
25008 +  if(arrD)
25009 +    locToWrite=reinterpret_cast<const unsigned char *>(arrD->getConstPointer()+_start*arr->getNumberOfComponents());
25010 +  else if(arrI)
25011 +    locToWrite=reinterpret_cast<const unsigned char *>(arrI->getConstPointer()+_start*arr->getNumberOfComponents());
25012 +  else if(arrF)
25013 +    locToWrite=reinterpret_cast<const unsigned char *>(arrF->getConstPointer()+_start*arr->getNumberOfComponents());
25014 +  else
25015 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::writeLL : not recognized type of values ! Supported are FLOAT64 FLOAT32 and INT32 !");
25016 +  MEDFILESAFECALLERWR0(MEDfieldValueWithProfileWr,(fid,nasc.getName().c_str(),getIteration(),getOrder(),getTime(),menti,mgeoti,
25017 +                                                   MED_COMPACT_PFLMODE,_profile.c_str(),_localization.c_str(),MED_FULL_INTERLACE,MED_ALL_CONSTITUENT,_nval,
25018 +                                                   locToWrite));
25019 +}
25020 +
25021 +void MEDFileFieldPerMeshPerTypePerDisc::getCoarseData(TypeOfField& type, std::pair<int,int>& dad, std::string& pfl, std::string& loc) const
25022 +{
25023 +  type=_type;
25024 +  pfl=_profile;
25025 +  loc=_localization;
25026 +  dad.first=_start; dad.second=_end;
25027 +}
25028 +
25029 +/*!
25030 + * \param [in] codeOfMesh is of format returned by MEDCouplingUMesh::getDistributionOfTypes. And for each *i* oldCode[3*i+2] gives the position (MEDFileUMesh::PutInThirdComponentOfCodeOffset).
25031 + *             This code corresponds to the distribution of types in the corresponding mesh.
25032 + * \param [out] ptToFill memory zone where the output will be stored.
25033 + * \return the size of data pushed into output param \a ptToFill
25034 + */
25035 +int MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode(int offset, const std::vector<int>& codeOfMesh, const MEDFileFieldGlobsReal& glob, int *ptToFill) const
25036 +{
25037 +  _loc_id=offset;
25038 +  std::ostringstream oss;
25039 +  std::size_t nbOfType=codeOfMesh.size()/3;
25040 +  int found=-1;
25041 +  for(std::size_t i=0;i<nbOfType && found==-1;i++)
25042 +    if(getGeoType()==(INTERP_KERNEL::NormalizedCellType)codeOfMesh[3*i])
25043 +      found=(int)i;
25044 +  if(found==-1)
25045 +    {
25046 +      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType());
25047 +      oss << "MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode : not found geometric type " << cm.getRepr() << " in the referenced mesh of field !";
25048 +      throw INTERP_KERNEL::Exception(oss.str());
25049 +    }
25050 +  int *work=ptToFill;
25051 +  if(_profile.empty())
25052 +    {
25053 +      if(_nval!=codeOfMesh[3*found+1])
25054 +        {
25055 +          const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType());
25056 +          oss << "MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode : for geometric type " << cm.getRepr() << " number of elt ids in mesh is equal to " << _nval;
25057 +          oss << " whereas mesh has " << codeOfMesh[3*found+1] << " for this geometric type !";
25058 +          throw INTERP_KERNEL::Exception(oss.str());
25059 +        }
25060 +      for(int ii=codeOfMesh[3*found+2];ii<codeOfMesh[3*found+2]+_nval;ii++)
25061 +        *work++=ii;
25062 +    }
25063 +  else
25064 +    {
25065 +      const DataArrayInt *pfl=glob.getProfile(_profile.c_str());
25066 +      if(pfl->getNumberOfTuples()!=_nval)
25067 +        {
25068 +          const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(getGeoType());
25069 +          oss << "MEDFileFieldPerMeshPerTypePerDisc::fillEltIdsFromCode : for geometric type " << cm.getRepr() << ", field is defined on profile \"" << _profile << "\" and size of profile is ";
25070 +          oss << _nval;
25071 +          oss << pfl->getNumberOfTuples() << " whereas the number of ids is set to " << _nval << " for this geometric type !";
25072 +          throw INTERP_KERNEL::Exception(oss.str());
25073 +        }
25074 +      int offset2=codeOfMesh[3*found+2];
25075 +      for(const int *pflId=pfl->begin();pflId!=pfl->end();pflId++)
25076 +        {
25077 +          if(*pflId<codeOfMesh[3*found+1])
25078 +            *work++=offset2+*pflId;
25079 +        }
25080 +    }
25081 +  return _nval;
25082 +}
25083 +
25084 +int MEDFileFieldPerMeshPerTypePerDisc::fillTupleIds(int *ptToFill) const
25085 +{
25086 +  for(int i=_start;i<_end;i++)
25087 +    *ptToFill++=i;
25088 +  return _end-_start;
25089 +}
25090 +
25091 +int MEDFileFieldPerMeshPerTypePerDisc::ConvertType(TypeOfField type, int locId)
25092 +{
25093 +  switch(type)
25094 +  {
25095 +    case ON_CELLS:
25096 +      return -2;
25097 +    case ON_GAUSS_NE:
25098 +      return -1;
25099 +    case ON_GAUSS_PT:
25100 +      return locId;
25101 +    default:
25102 +      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::ConvertType : not managed type of field !");
25103 +  }
25104 +}
25105 +
25106 +std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > MEDFileFieldPerMeshPerTypePerDisc::SplitPerDiscretization(const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entries)
25107 +{
25108 +  int id=0;
25109 +  std::map<std::pair<std::string,TypeOfField>,int> m;
25110 +  std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > ret;
25111 +  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entries.begin();it!=entries.end();it++)
25112 +    if(m.find(std::pair<std::string,TypeOfField>((*it)->getLocalization(),(*it)->getType()))==m.end())
25113 +      m[std::pair<std::string,TypeOfField>((*it)->getLocalization(),(*it)->getType())]=id++;
25114 +  ret.resize(id);
25115 +  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entries.begin();it!=entries.end();it++)
25116 +    ret[m[std::pair<std::string,TypeOfField>((*it)->getLocalization(),(*it)->getType())]].push_back(*it);
25117 +  return ret;
25118 +}
25119 +
25120 +/*!
25121 + * - \c this->_loc_id mutable attribute is used for elt id in mesh offsets.
25122 + * 
25123 + * \param [in] offset the offset id used to take into account that \a result is not compulsory empty in input
25124 + * \param [in] entriesOnSameDisc some entries **on same localization** if not the result can be invalid. The _start and _end on them are relative to \a arr parameter.
25125 + * \param [in] explicitIdsInMesh ids in mesh of the considered chunk.
25126 + * \param [in] newCode one of the input parameter to explicit the new geo type dispatch (in classical format same than those asked by MEDFileFields::renumberEntitiesLyingOnMesh)
25127 + * \param [in,out] glob if necessary by the method, new profiles can be added to it
25128 + * \param [in,out] arr after the call of this method \a arr is renumbered to be compliant with added entries to \a result.
25129 + * \param [out] result All new entries will be appended on it.
25130 + * \return false if the configuration of renumbering leads to an unnecessary resplit of input \a entriesOnSameDisc. If not true is returned (the most general case !)
25131 + */
25132 +bool MEDFileFieldPerMeshPerTypePerDisc::RenumberChunks(int offset, const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
25133 +                                                       const DataArrayInt *explicitIdsInMesh,
25134 +                                                       const std::vector<int>& newCode,
25135 +                                                       MEDFileFieldGlobsReal& glob, DataArrayDouble *arr,
25136 +                                                       std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >& result)
25137 +{
25138 +  if(entriesOnSameDisc.empty())
25139 +    return false;
25140 +  TypeOfField type=entriesOnSameDisc[0]->getType();
25141 +  int szEntities=0,szTuples=0;
25142 +  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entriesOnSameDisc.begin();it!=entriesOnSameDisc.end();it++)
25143 +    { szEntities+=(*it)->_nval; szTuples+=(*it)->_end-(*it)->_start; }
25144 +  int nbi=szTuples/szEntities;
25145 +  if(szTuples%szEntities!=0)
25146 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::RenumberChunks : internal error the splitting into same dicretization failed !");
25147 +  MCAuto<DataArrayInt> renumTuples=DataArrayInt::New(); renumTuples->alloc(szTuples,1);
25148 +  MCAuto<DataArrayInt> ranges=MEDCouplingUMesh::ComputeRangesFromTypeDistribution(newCode);
25149 +  std::vector< MCAuto<DataArrayInt> > newGeoTypesPerChunk(entriesOnSameDisc.size());
25150 +  std::vector< const DataArrayInt * > newGeoTypesPerChunk2(entriesOnSameDisc.size());
25151 +  std::vector< MCAuto<DataArrayInt> > newGeoTypesPerChunk_bis(entriesOnSameDisc.size());
25152 +  std::vector< const DataArrayInt * > newGeoTypesPerChunk3(entriesOnSameDisc.size());
25153 +  MCAuto<DataArrayInt> newGeoTypesPerChunk4=DataArrayInt::New(); newGeoTypesPerChunk4->alloc(szEntities,nbi);
25154 +  int id=0;
25155 +  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entriesOnSameDisc.begin();it!=entriesOnSameDisc.end();it++,id++)
25156 +    {
25157 +      int startOfEltIdOfChunk=(*it)->_start;
25158 +      MCAuto<DataArrayInt> newEltIds=explicitIdsInMesh->subArray(startOfEltIdOfChunk,startOfEltIdOfChunk+(*it)->_nval);
25159 +      MCAuto<DataArrayInt> rangeIdsForChunk=newEltIds->findRangeIdForEachTuple(ranges);
25160 +      MCAuto<DataArrayInt> idsInRrangeForChunk=newEltIds->findIdInRangeForEachTuple(ranges);
25161 +      //
25162 +      MCAuto<DataArrayInt> tmp=rangeIdsForChunk->duplicateEachTupleNTimes(nbi); rangeIdsForChunk->rearrange(nbi);
25163 +      newGeoTypesPerChunk4->setPartOfValues1(tmp,(*it)->_tmp_work1-offset,(*it)->_tmp_work1+(*it)->_nval*nbi-offset,1,0,nbi,1);
25164 +      //
25165 +      newGeoTypesPerChunk[id]=rangeIdsForChunk; newGeoTypesPerChunk2[id]=rangeIdsForChunk;
25166 +      newGeoTypesPerChunk_bis[id]=idsInRrangeForChunk; newGeoTypesPerChunk3[id]=idsInRrangeForChunk;
25167 +    }
25168 +  MCAuto<DataArrayInt> newGeoTypesEltIdsAllGather=DataArrayInt::Aggregate(newGeoTypesPerChunk2); newGeoTypesPerChunk.clear(); newGeoTypesPerChunk2.clear();
25169 +  MCAuto<DataArrayInt> newGeoTypesEltIdsAllGather2=DataArrayInt::Aggregate(newGeoTypesPerChunk3); newGeoTypesPerChunk_bis.clear(); newGeoTypesPerChunk3.clear();
25170 +  MCAuto<DataArrayInt> diffVals=newGeoTypesEltIdsAllGather->getDifferentValues();
25171 +  MCAuto<DataArrayInt> renumEltIds=newGeoTypesEltIdsAllGather->buildPermArrPerLevel();
25172 +  //
25173 +  MCAuto<DataArrayInt> renumTupleIds=newGeoTypesPerChunk4->buildPermArrPerLevel();
25174 +  //
25175 +  MCAuto<DataArrayDouble> arrPart=arr->subArray(offset,offset+szTuples);
25176 +  arrPart->renumberInPlace(renumTupleIds->begin());
25177 +  arr->setPartOfValues1(arrPart,offset,offset+szTuples,1,0,arrPart->getNumberOfComponents(),1);
25178 +  bool ret=false;
25179 +  const int *idIt=diffVals->begin();
25180 +  std::list<const MEDFileFieldPerMeshPerTypePerDisc *> li(entriesOnSameDisc.begin(),entriesOnSameDisc.end());
25181 +  int offset2=0;
25182 +  for(int i=0;i<diffVals->getNumberOfTuples();i++,idIt++)
25183 +    {
25184 +      MCAuto<DataArrayInt> ids=newGeoTypesEltIdsAllGather->findIdsEqual(*idIt);
25185 +      MCAuto<DataArrayInt> subIds=newGeoTypesEltIdsAllGather2->selectByTupleId(ids->begin(),ids->end());
25186 +      int nbEntityElts=subIds->getNumberOfTuples();
25187 +      bool ret2;
25188 +      MCAuto<MEDFileFieldPerMeshPerTypePerDisc> eltToAdd=MEDFileFieldPerMeshPerTypePerDisc::
25189 +          NewObjectOnSameDiscThanPool(type,(INTERP_KERNEL::NormalizedCellType)newCode[3*(*idIt)],subIds,!subIds->isIota(newCode[3*(*idIt)+1]),nbi,
25190 +                                      offset+offset2,
25191 +                                      li,glob,ret2);
25192 +      ret=ret || ret2;
25193 +      result.push_back(eltToAdd);
25194 +      offset2+=nbEntityElts*nbi;
25195 +    }
25196 +  ret=ret || li.empty();
25197 +  return ret;
25198 +}
25199 +
25200 +/*!
25201 + * \param [in] typeF type of field of new chunk
25202 + * \param [in] geoType the geometric type of the chunk
25203 + * \param [in] idsOfMeshElt the entity ids of mesh (cells or nodes) of the new chunk.
25204 + * \param [in] isPfl specifies if a profile is requested regarding size of \a idsOfMeshElt and the number of such entities regarding underlying mesh.
25205 + * \param [in] nbi number of integration points
25206 + * \param [in] offset The offset in the **global array of data**.
25207 + * \param [in,out] entriesOnSameDisc the pool **on the same discretization** inside which it will be attempted to find an existing entry corresponding exactly
25208 + *                 to the new chunk to create.
25209 + * \param [in,out] glob the global shared info that will be requested for existing profiles or to append a new profile if needed.
25210 + * \param [out] notInExisting If false the return newly allocated entry is not coming from \a entriesOnSameDisc. If true the output comes from copy of \a entriesOnSameDisc
25211 + *              and corresponding entry erased from \a entriesOnSameDisc.
25212 + * \return a newly allocated chunk
25213 + */
25214 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypePerDisc::NewObjectOnSameDiscThanPool(TypeOfField typeF, INTERP_KERNEL::NormalizedCellType geoType, DataArrayInt *idsOfMeshElt,
25215 +                                                                                                  bool isPfl, int nbi, int offset,
25216 +                                                                                                  std::list< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
25217 +                                                                                                  MEDFileFieldGlobsReal& glob,
25218 +                                                                                                  bool &notInExisting)
25219 +{
25220 +  int nbMeshEntities=idsOfMeshElt->getNumberOfTuples();
25221 +  std::list< const MEDFileFieldPerMeshPerTypePerDisc *>::iterator it=entriesOnSameDisc.begin();
25222 +  for(;it!=entriesOnSameDisc.end();it++)
25223 +    {
25224 +      if(((INTERP_KERNEL::NormalizedCellType)(*it)->_loc_id)==geoType && (*it)->_nval==nbMeshEntities)
25225 +        {
25226 +          if(!isPfl)
25227 +            {
25228 +              if((*it)->_profile.empty())
25229 +                break;
25230 +              else
25231 +                if(!(*it)->_profile.empty())
25232 +                  {
25233 +                    const DataArrayInt *pfl=glob.getProfile((*it)->_profile.c_str());
25234 +                    if(pfl->isEqualWithoutConsideringStr(*idsOfMeshElt))
25235 +                      break;
25236 +                  }
25237 +            }
25238 +        }
25239 +    }
25240 +  if(it==entriesOnSameDisc.end())
25241 +    {
25242 +      notInExisting=true;
25243 +      MEDFileFieldPerMeshPerTypePerDisc *ret=new MEDFileFieldPerMeshPerTypePerDisc;
25244 +      ret->_type=typeF;
25245 +      ret->_loc_id=(int)geoType;
25246 +      ret->_nval=nbMeshEntities;
25247 +      ret->_start=offset;
25248 +      ret->_end=ret->_start+ret->_nval*nbi;
25249 +      if(isPfl)
25250 +        {
25251 +          idsOfMeshElt->setName(glob.createNewNameOfPfl().c_str());
25252 +          glob.appendProfile(idsOfMeshElt);
25253 +          ret->_profile=idsOfMeshElt->getName();
25254 +        }
25255 +      //tony treatment of localization
25256 +      return ret;
25257 +    }
25258 +  else
25259 +    {
25260 +      notInExisting=false;
25261 +      MEDFileFieldPerMeshPerTypePerDisc *ret=MEDFileFieldPerMeshPerTypePerDisc::New(*(*it));
25262 +      ret->_loc_id=(int)geoType;
25263 +      ret->setNewStart(offset);
25264 +      entriesOnSameDisc.erase(it);
25265 +      return ret;
25266 +    }
25267 +
25268 +}
25269 +
25270 +////////////////////////////////////
25271 +
25272 +MEDFileFieldPerMeshPerTypeCommon::~MEDFileFieldPerMeshPerTypeCommon()
25273 +{
25274 +}
25275 +
25276 +void MEDFileFieldPerMeshPerTypeCommon::setFather(MEDFileFieldPerMesh *father)
25277 +{
25278 +  _father=father;
25279 +}
25280 +
25281 +void MEDFileFieldPerMeshPerTypeCommon::accept(MEDFileFieldVisitor& visitor) const
25282 +{
25283 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25284 +    if((*it).isNotNull())
25285 +      {
25286 +        visitor.newPerMeshPerTypePerDisc(*it);
25287 +      }
25288 +}
25289 +
25290 +void MEDFileFieldPerMeshPerTypeCommon::deepCopyElements()
25291 +{
25292 +  std::size_t i=0;
25293 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
25294 +    {
25295 +      if((const MEDFileFieldPerMeshPerTypePerDisc *)*it)
25296 +        _field_pm_pt_pd[i]=(*it)->deepCopy(this);
25297 +    }
25298 +}
25299 +
25300 +std::size_t MEDFileFieldPerMeshPerTypeCommon::getHeapMemorySizeWithoutChildren() const
25301 +{
25302 +  return _field_pm_pt_pd.capacity()*sizeof(MCAuto<MEDFileFieldPerMeshPerTypePerDisc>);
25303 +}
25304 +
25305 +std::vector<const BigMemoryObject *> MEDFileFieldPerMeshPerTypeCommon::getDirectChildrenWithNull() const
25306 +{
25307 +  std::vector<const BigMemoryObject *> ret;
25308 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25309 +    ret.push_back((const MEDFileFieldPerMeshPerTypePerDisc *)*it);
25310 +  return ret;
25311 +}
25312 +
25313 +void MEDFileFieldPerMeshPerTypeCommon::assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
25314 +{
25315 +  std::vector<int> pos=addNewEntryIfNecessary(field,offset,nbOfCells);
25316 +  for(std::vector<int>::const_iterator it=pos.begin();it!=pos.end();it++)
25317 +    _field_pm_pt_pd[*it]->assignFieldNoProfile(start,offset,nbOfCells,field,arr,glob,nasc);
25318 +}
25319 +
25320 +/*!
25321 + * This method is the most general one. No optimization is done here.
25322 + * \param [in] multiTypePfl is the end user profile specified in high level API
25323 + * \param [in] idsInPfl is the selection into the \a multiTypePfl whole profile that corresponds to the current geometric type.
25324 + * \param [in] locIds is the profile needed to be created for MED file format. It can be null if all cells of current geometric type are fetched in \a multiTypePfl.
25325 + *             \b WARNING if not null the MED file profile can be subdivided again in case of Gauss points.
25326 + * \param [in] nbOfEltsInWholeMesh nb of elts of type \a this->_geo_type in \b WHOLE mesh
25327 + * \param [in] mesh is the mesh coming from the MEDFileMesh instance in correspondence with the MEDFileField. The mesh inside the \a field is simply ignored.
25328 + */
25329 +void MEDFileFieldPerMeshPerTypeCommon::assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
25330 +{
25331 +  std::vector<int> pos=addNewEntryIfNecessary(field,idsInPfl);
25332 +  for(std::vector<int>::const_iterator it=pos.begin();it!=pos.end();it++)
25333 +    _field_pm_pt_pd[*it]->assignFieldProfile(isPflAlone,start,multiTypePfl,idsInPfl,locIds,nbOfEltsInWholeMesh,field,arr,mesh,glob,nasc);
25334 +}
25335 +
25336 +void MEDFileFieldPerMeshPerTypeCommon::assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob)
25337 +{
25338 +  _field_pm_pt_pd.resize(1);
25339 +  _field_pm_pt_pd[0]=MEDFileFieldPerMeshPerTypePerDisc::New(this,ON_NODES,-3);
25340 +  _field_pm_pt_pd[0]->assignNodeFieldNoProfile(start,field,arr,glob);
25341 +}
25342 +
25343 +void MEDFileFieldPerMeshPerTypeCommon::assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
25344 +{
25345 +  MCAuto<DataArrayInt> pfl2=pfl->deepCopy();
25346 +  if(!arr || !arr->isAllocated())
25347 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeCommon::assignNodeFieldProfile : input array is null, or not allocated !");
25348 +  _field_pm_pt_pd.resize(1);
25349 +  _field_pm_pt_pd[0]=MEDFileFieldPerMeshPerTypePerDisc::New(this,ON_NODES,-3);
25350 +  _field_pm_pt_pd[0]->assignFieldProfile(true,start,pfl,pfl2,pfl2,-1,field,arr,0,glob,nasc);//mesh is not requested so 0 is send.
25351 +}
25352 +
25353 +std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells)
25354 +{
25355 +  TypeOfField type=field->getTypeOfField();
25356 +  if(type!=ON_GAUSS_PT)
25357 +    {
25358 +      int locIdToFind=MEDFileFieldPerMeshPerTypePerDisc::ConvertType(type,0);
25359 +      int sz=_field_pm_pt_pd.size();
25360 +      bool found=false;
25361 +      for(int j=0;j<sz && !found;j++)
25362 +        {
25363 +          if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
25364 +            {
25365 +              _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25366 +              found=true;
25367 +            }
25368 +        }
25369 +      if(!found)
25370 +        {
25371 +          _field_pm_pt_pd.resize(sz+1);
25372 +          _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25373 +        }
25374 +      std::vector<int> ret(1,(int)sz);
25375 +      return ret;
25376 +    }
25377 +  else
25378 +    {
25379 +      std::vector<int> ret2=addNewEntryIfNecessaryGauss(field,offset,nbOfCells);
25380 +      int sz2=ret2.size();
25381 +      std::vector<int> ret3(sz2);
25382 +      int k=0;
25383 +      for(int i=0;i<sz2;i++)
25384 +        {
25385 +          int sz=_field_pm_pt_pd.size();
25386 +          int locIdToFind=ret2[i];
25387 +          bool found=false;
25388 +          for(int j=0;j<sz && !found;j++)
25389 +            {
25390 +              if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
25391 +                {
25392 +                  _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25393 +                  ret3[k++]=j;
25394 +                  found=true;
25395 +                }
25396 +            }
25397 +          if(!found)
25398 +            {
25399 +              _field_pm_pt_pd.resize(sz+1);
25400 +              _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25401 +              ret3[k++]=sz;
25402 +            }
25403 +        }
25404 +      return ret3;
25405 +    }
25406 +}
25407 +
25408 +std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells)
25409 +{
25410 +  const MEDCouplingFieldDiscretization *disc=field->getDiscretization();
25411 +  const MEDCouplingFieldDiscretizationGauss *disc2=dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(disc);
25412 +  if(!disc2)
25413 +    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : invalid call to this method ! Internal Error !");
25414 +  const DataArrayInt *da=disc2->getArrayOfDiscIds();
25415 +  if(!da)
25416 +    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss (no profile) : no localization ids per cell array available ! The input Gauss node field is maybe invalid !");
25417 +  MCAuto<DataArrayInt> da2=da->selectByTupleIdSafeSlice(offset,offset+nbOfCells,1);
25418 +  MCAuto<DataArrayInt> retTmp=da2->getDifferentValues();
25419 +  if(retTmp->presenceOfValue(-1))
25420 +    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : some cells have no dicretization description !");
25421 +  std::vector<int> ret(retTmp->begin(),retTmp->end());
25422 +  return ret;
25423 +}
25424 +
25425 +std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells)
25426 +{
25427 +  TypeOfField type=field->getTypeOfField();
25428 +  if(type!=ON_GAUSS_PT)
25429 +    {
25430 +      int locIdToFind=MEDFileFieldPerMeshPerTypePerDisc::ConvertType(type,0);
25431 +      int sz=_field_pm_pt_pd.size();
25432 +      bool found=false;
25433 +      for(int j=0;j<sz && !found;j++)
25434 +        {
25435 +          if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
25436 +            {
25437 +              _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25438 +              found=true;
25439 +            }
25440 +        }
25441 +      if(!found)
25442 +        {
25443 +          _field_pm_pt_pd.resize(sz+1);
25444 +          _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25445 +        }
25446 +      std::vector<int> ret(1,0);
25447 +      return ret;
25448 +    }
25449 +  else
25450 +    {
25451 +      std::vector<int> ret2=addNewEntryIfNecessaryGauss(field,subCells);
25452 +      int sz2=ret2.size();
25453 +      std::vector<int> ret3(sz2);
25454 +      int k=0;
25455 +      for(int i=0;i<sz2;i++)
25456 +        {
25457 +          int sz=_field_pm_pt_pd.size();
25458 +          int locIdToFind=ret2[i];
25459 +          bool found=false;
25460 +          for(int j=0;j<sz && !found;j++)
25461 +            {
25462 +              if(_field_pm_pt_pd[j]->getLocId()==locIdToFind)
25463 +                {
25464 +                  _field_pm_pt_pd[j]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25465 +                  ret3[k++]=j;
25466 +                  found=true;
25467 +                }
25468 +            }
25469 +          if(!found)
25470 +            {
25471 +              _field_pm_pt_pd.resize(sz+1);
25472 +              _field_pm_pt_pd[sz]=MEDFileFieldPerMeshPerTypePerDisc::New(this,type,locIdToFind);
25473 +              ret3[k++]=sz;
25474 +            }
25475 +        }
25476 +      return ret3;
25477 +    }
25478 +}
25479 +
25480 +std::vector<int> MEDFileFieldPerMeshPerTypeCommon::addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells)
25481 +{
25482 +  const MEDCouplingFieldDiscretization *disc=field->getDiscretization();
25483 +  const MEDCouplingFieldDiscretizationGauss *disc2=dynamic_cast<const MEDCouplingFieldDiscretizationGauss *>(disc);
25484 +  if(!disc2)
25485 +    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : invalid call to this method ! Internal Error !");
25486 +  const DataArrayInt *da=disc2->getArrayOfDiscIds();
25487 +  if(!da)
25488 +    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : no localization ids per cell array available ! The input Gauss node field is maybe invalid !");
25489 +  MCAuto<DataArrayInt> da2=da->selectByTupleIdSafe(subCells->getConstPointer(),subCells->getConstPointer()+subCells->getNumberOfTuples());
25490 +  MCAuto<DataArrayInt> retTmp=da2->getDifferentValues();
25491 +  if(retTmp->presenceOfValue(-1))
25492 +    throw INTERP_KERNEL::Exception("addNewEntryIfNecessaryGauss : some cells have no dicretization description !");
25493 +  std::vector<int> ret(retTmp->begin(),retTmp->end());
25494 +  return ret;
25495 +}
25496 +
25497 +const MEDFileFieldPerMesh *MEDFileFieldPerMeshPerTypeCommon::getFather() const
25498 +{
25499 +  return _father;
25500 +}
25501 +
25502 +bool MEDFileFieldPerMeshPerTypeCommon::isUniqueLevel(int& dim) const
25503 +{
25504 +  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(getGeoType()));
25505 +  int curDim((int)cm.getDimension());
25506 +  if(dim!=std::numeric_limits<int>::max())
25507 +    {
25508 +      if(dim!=curDim)
25509 +        return false;
25510 +    }
25511 +  else
25512 +    dim=curDim;
25513 +  return true;
25514 +}
25515 +
25516 +void MEDFileFieldPerMeshPerTypeCommon::fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const
25517 +{
25518 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25519 +    {
25520 +      (*it)->fillTypesOfFieldAvailable(types);
25521 +    }
25522 +}
25523 +
25524 +void MEDFileFieldPerMeshPerTypeCommon::fillFieldSplitedByType(std::vector< std::pair<int,int> >& dads, std::vector<TypeOfField>& types, std::vector<std::string>& pfls, std::vector<std::string>& locs) const
25525 +{
25526 +  int sz=_field_pm_pt_pd.size();
25527 +  dads.resize(sz); types.resize(sz); pfls.resize(sz); locs.resize(sz);
25528 +  for(int i=0;i<sz;i++)
25529 +    {
25530 +      _field_pm_pt_pd[i]->getCoarseData(types[i],dads[i],pfls[i],locs[i]);
25531 +    }
25532 +}
25533 +
25534 +int MEDFileFieldPerMeshPerTypeCommon::getIteration() const
25535 +{
25536 +  return _father->getIteration();
25537 +}
25538 +
25539 +int MEDFileFieldPerMeshPerTypeCommon::getOrder() const
25540 +{
25541 +  return _father->getOrder();
25542 +}
25543 +
25544 +double MEDFileFieldPerMeshPerTypeCommon::getTime() const
25545 +{
25546 +  return _father->getTime();
25547 +}
25548 +
25549 +std::string MEDFileFieldPerMeshPerTypeCommon::getMeshName() const
25550 +{
25551 +  return _father->getMeshName();
25552 +}
25553 +
25554 +void MEDFileFieldPerMeshPerTypeCommon::getSizes(int& globalSz, int& nbOfEntries) const
25555 +{
25556 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25557 +    {
25558 +      globalSz+=(*it)->getNumberOfTuples();
25559 +    }
25560 +  nbOfEntries+=(int)_field_pm_pt_pd.size();
25561 +}
25562 +
25563 +int MEDFileFieldPerMeshPerTypeCommon::getNumberOfComponents() const
25564 +{
25565 +  return _father->getNumberOfComponents();
25566 +}
25567 +
25568 +bool MEDFileFieldPerMeshPerTypeCommon::presenceOfMultiDiscPerGeoType() const
25569 +{
25570 +  std::size_t nb(0);
25571 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25572 +    {
25573 +      const MEDFileFieldPerMeshPerTypePerDisc *fmtd(*it);
25574 +      if(fmtd)
25575 +        nb++;
25576 +    }
25577 +  return nb>1;
25578 +}
25579 +
25580 +void MEDFileFieldPerMeshPerTypeCommon::pushDiscretization(MEDFileFieldPerMeshPerTypePerDisc *disc)
25581 +{
25582 +  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> elt;
25583 +  elt.takeRef(disc);
25584 +  _field_pm_pt_pd.push_back(elt);
25585 +}
25586 +
25587 +DataArray *MEDFileFieldPerMeshPerTypeCommon::getOrCreateAndGetArray()
25588 +{
25589 +  return _father->getOrCreateAndGetArray();
25590 +}
25591 +
25592 +const DataArray *MEDFileFieldPerMeshPerTypeCommon::getOrCreateAndGetArray() const
25593 +{
25594 +  const MEDFileFieldPerMesh *fath=_father;
25595 +  return fath->getOrCreateAndGetArray();
25596 +}
25597 +
25598 +const std::vector<std::string>& MEDFileFieldPerMeshPerTypeCommon::getInfo() const
25599 +{
25600 +  return _father->getInfo();
25601 +}
25602 +
25603 +std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getPflsReallyUsed() const
25604 +{
25605 +  std::vector<std::string> ret;
25606 +  std::set<std::string> ret2;
25607 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
25608 +    {
25609 +      std::string tmp=(*it1)->getProfile();
25610 +      if(!tmp.empty())
25611 +        if(ret2.find(tmp)==ret2.end())
25612 +          {
25613 +            ret.push_back(tmp);
25614 +            ret2.insert(tmp);
25615 +          }
25616 +    }
25617 +  return ret;
25618 +}
25619 +
25620 +std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getLocsReallyUsed() const
25621 +{
25622 +  std::vector<std::string> ret;
25623 +  std::set<std::string> ret2;
25624 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
25625 +    {
25626 +      std::string tmp=(*it1)->getLocalization();
25627 +      if(!tmp.empty() && tmp!=MED_GAUSS_ELNO)
25628 +        if(ret2.find(tmp)==ret2.end())
25629 +          {
25630 +            ret.push_back(tmp);
25631 +            ret2.insert(tmp);
25632 +          }
25633 +    }
25634 +  return ret;
25635 +}
25636 +
25637 +std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getPflsReallyUsedMulti() const
25638 +{
25639 +  std::vector<std::string> ret;
25640 +  std::set<std::string> ret2;
25641 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
25642 +    {
25643 +      std::string tmp=(*it1)->getProfile();
25644 +      if(!tmp.empty())
25645 +        ret.push_back(tmp);
25646 +    }
25647 +  return ret;
25648 +}
25649 +
25650 +std::vector<std::string> MEDFileFieldPerMeshPerTypeCommon::getLocsReallyUsedMulti() const
25651 +{
25652 +  std::vector<std::string> ret;
25653 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
25654 +    {
25655 +      std::string tmp=(*it1)->getLocalization();
25656 +      if(!tmp.empty() && tmp!=MED_GAUSS_ELNO)
25657 +        ret.push_back(tmp);
25658 +    }
25659 +  return ret;
25660 +}
25661 +
25662 +void MEDFileFieldPerMeshPerTypeCommon::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
25663 +{
25664 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
25665 +    (*it1)->changePflsRefsNamesGen(mapOfModif);
25666 +}
25667 +
25668 +void MEDFileFieldPerMeshPerTypeCommon::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
25669 +{
25670 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++)
25671 +    (*it1)->changeLocsRefsNamesGen(mapOfModif);
25672 +}
25673 +
25674 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId(int locId)
25675 +{
25676 +  if(_field_pm_pt_pd.empty())
25677 +    {
25678 +      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no localizations for geotype \"" << getGeoTypeRepr() << "\" !";
25679 +      throw INTERP_KERNEL::Exception(oss.str());
25680 +    }
25681 +  if(locId>=0 && locId<(int)_field_pm_pt_pd.size())
25682 +    return _field_pm_pt_pd[locId];
25683 +  std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no such locId available (" << locId;
25684 +  oss2 << ") for geometric type \"" << getGeoTypeRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !";
25685 +  throw INTERP_KERNEL::Exception(oss2.str().c_str());
25686 +  return static_cast<MEDFileFieldPerMeshPerTypePerDisc*>(0);
25687 +}
25688 +
25689 +const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId(int locId) const
25690 +{
25691 +  if(_field_pm_pt_pd.empty())
25692 +    {
25693 +      std::ostringstream oss; oss << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no localizations for geotype \"" << getGeoTypeRepr() << "\" !";
25694 +      throw INTERP_KERNEL::Exception(oss.str());
25695 +    }
25696 +  if(locId>=0 && locId<(int)_field_pm_pt_pd.size())
25697 +    return _field_pm_pt_pd[locId];
25698 +  std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerTypeCommon::getLeafGivenLocId : no such locId available (" << locId;
25699 +  oss2 << ") for geometric type \"" << getGeoTypeRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !";
25700 +  throw INTERP_KERNEL::Exception(oss2.str().c_str());
25701 +  return static_cast<const MEDFileFieldPerMeshPerTypePerDisc*>(0);
25702 +}
25703 +
25704 +int MEDFileFieldPerMeshPerTypeCommon::locIdOfLeaf(const MEDFileFieldPerMeshPerTypePerDisc *leaf) const
25705 +{
25706 +  int ret(0);
25707 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,ret++)
25708 +    {
25709 +      const MEDFileFieldPerMeshPerTypePerDisc *cand(*it);
25710 +      if(cand==leaf)
25711 +        return ret;
25712 +    }
25713 +  throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeCommon::locIdOfLeaf : not found such a leaf in this !");
25714 +}
25715 +
25716 +void MEDFileFieldPerMeshPerTypeCommon::fillValues(int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
25717 +{
25718 +  int i=0;
25719 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
25720 +    {
25721 +      (*it)->fillValues(i,startEntryId,entries);
25722 +    }
25723 +}
25724 +
25725 +void MEDFileFieldPerMeshPerTypeCommon::setLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves)
25726 +{
25727 +  _field_pm_pt_pd=leaves;
25728 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25729 +    (*it)->setFather(this);
25730 +}
25731 +
25732 +/*!
25733 + *  \param [in,out] globalNum a global numbering counter for the renumbering. 
25734 + *  \param [out] its - list of pair (start,stop) kept
25735 + *  \return bool - false if the type of field \a tof is not contained in \a this.
25736 + */
25737 +bool MEDFileFieldPerMeshPerTypeCommon::keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its)
25738 +{
25739 +  bool ret(false);
25740 +  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > newPmPtPd;
25741 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25742 +    if((*it)->getType()==tof)
25743 +      {
25744 +        newPmPtPd.push_back(*it);
25745 +        std::pair<int,int> bgEnd; bgEnd.first=(*it)->getStart(); bgEnd.second=(*it)->getEnd();
25746 +        (*it)->setNewStart(globalNum);
25747 +        globalNum=(*it)->getEnd();
25748 +        its.push_back(bgEnd);
25749 +        ret=true;
25750 +      }
25751 +  if(ret)
25752 +    _field_pm_pt_pd=newPmPtPd;
25753 +  return ret;
25754 +}
25755 +
25756 +/*!
25757 + *  \param [in,out] globalNum a global numbering counter for the renumbering.
25758 + *  \param [out] its - list of pair (start,stop) kept
25759 + *  \return bool - false if the type of field \a tof is not contained in \a this.
25760 + */
25761 +bool MEDFileFieldPerMeshPerTypeCommon::keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its)
25762 +{
25763 +  if(_field_pm_pt_pd.size()<=idOfDisc)
25764 +    return false;
25765 +  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> elt(_field_pm_pt_pd[idOfDisc]);
25766 +  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > newPmPtPd(1,elt);
25767 +  std::pair<int,int> bgEnd; bgEnd.first=_field_pm_pt_pd[idOfDisc]->getStart(); bgEnd.second=_field_pm_pt_pd[idOfDisc]->getEnd();
25768 +  elt->setNewStart(globalNum);
25769 +  globalNum=elt->getEnd();
25770 +  its.push_back(bgEnd);
25771 +  _field_pm_pt_pd=newPmPtPd;
25772 +  return true;
25773 +}
25774 +
25775 +void MEDFileFieldPerMeshPerTypeCommon::loadOnlyStructureOfDataRecursively(med_idt fid, int &start, const MEDFileFieldNameScope& nasc)
25776 +{
25777 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25778 +    (*it)->loadOnlyStructureOfDataRecursively(fid,start,nasc);
25779 +}
25780 +
25781 +void MEDFileFieldPerMeshPerTypeCommon::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
25782 +{
25783 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25784 +    (*it)->loadBigArray(fid,nasc);
25785 +}
25786 +
25787 +void MEDFileFieldPerMeshPerTypeCommon::writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const
25788 +{
25789 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25790 +    {
25791 +      (*it)->copyOptionsFrom(*this);
25792 +      (*it)->writeLL(fid,nasc);
25793 +    }
25794 +}
25795 +
25796 +med_entity_type MEDFileFieldPerMeshPerTypeCommon::ConvertIntoMEDFileType(TypeOfField ikType, INTERP_KERNEL::NormalizedCellType ikGeoType, med_geometry_type& medfGeoType)
25797 +{
25798 +  switch(ikType)
25799 +  {
25800 +    case ON_CELLS:
25801 +      medfGeoType=typmai3[(int)ikGeoType];
25802 +      return MED_CELL;
25803 +    case ON_NODES:
25804 +      medfGeoType=MED_NONE;
25805 +      return MED_NODE;
25806 +    case ON_GAUSS_NE:
25807 +      medfGeoType=typmai3[(int)ikGeoType];
25808 +      return MED_NODE_ELEMENT;
25809 +    case ON_GAUSS_PT:
25810 +      medfGeoType=typmai3[(int)ikGeoType];
25811 +      return MED_CELL;
25812 +    default:
25813 +      throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeCommon::ConvertIntoMEDFileType : unexpected entity type ! internal error");
25814 +  }
25815 +  return MED_UNDEF_ENTITY_TYPE;
25816 +}
25817 +
25818 +//////////////////////////////////////////////////
25819 +
25820 +MEDFileFieldPerMeshPerType *MEDFileFieldPerMeshPerType::NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd)
25821 +{
25822 +  return new MEDFileFieldPerMeshPerType(fid,fath,type,geoType,nasc,pd);
25823 +}
25824 +
25825 +MEDFileFieldPerMeshPerType *MEDFileFieldPerMeshPerType::New(MEDFileFieldPerMesh *fath, INTERP_KERNEL::NormalizedCellType geoType)
25826 +{
25827 +  return new MEDFileFieldPerMeshPerType(fath,geoType);
25828 +}
25829 +
25830 +MEDFileFieldPerMeshPerType *MEDFileFieldPerMeshPerType::deepCopy(MEDFileFieldPerMesh *father) const
25831 +{
25832 +  MCAuto<MEDFileFieldPerMeshPerType> ret=new MEDFileFieldPerMeshPerType(*this);
25833 +  ret->setFather(father);
25834 +  ret->deepCopyElements();
25835 +  return ret.retn();
25836 +}
25837 +
25838 +void MEDFileFieldPerMeshPerType::getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
25839 +{
25840 +  if(_geo_type!=INTERP_KERNEL::NORM_ERROR)
25841 +    {
25842 +      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
25843 +      if(meshDim!=(int)cm.getDimension())
25844 +        return ;
25845 +    }
25846 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++)
25847 +    (*it)->getFieldAtLevel(type,glob,dads,pfls,locs,geoTypes);
25848 +}
25849 +
25850 +INTERP_KERNEL::NormalizedCellType MEDFileFieldPerMeshPerType::getGeoType() const
25851 +{
25852 +  return _geo_type;
25853 +}
25854 +
25855 +void MEDFileFieldPerMeshPerType::entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const
25856 +{
25857 +  ent=MEDFileFieldPerMeshPerTypeCommon::ConvertIntoMEDFileType(mct,_geo_type,gt);
25858 +}
25859 +
25860 +void MEDFileFieldPerMeshPerType::getDimension(int& dim) const
25861 +{
25862 +  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(_geo_type));
25863 +  int curDim((int)cm.getDimension());
25864 +  dim=std::max(dim,curDim);
25865 +}
25866 +
25867 +void MEDFileFieldPerMeshPerType::simpleRepr(int bkOffset, std::ostream& oss, int id) const
25868 +{
25869 +  const char startLine[]="  ## ";
25870 +  std::string startLine2(bkOffset,' ');
25871 +  std::string startLine3(startLine2);
25872 +  startLine3+=startLine;
25873 +  if(_geo_type!=INTERP_KERNEL::NORM_ERROR)
25874 +    {
25875 +      const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type);
25876 +      oss << startLine3 << "Entry geometry type #" << id << " is lying on geometry types " << cm.getRepr() << "." << std::endl;
25877 +    }
25878 +  else
25879 +    oss << startLine3 << "Entry geometry type #" << id << " is lying on NODES." << std::endl;
25880 +  oss << startLine3 << "Entry is defined on " <<  _field_pm_pt_pd.size() << " localizations." << std::endl;
25881 +  int i=0;
25882 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
25883 +    {
25884 +      const MEDFileFieldPerMeshPerTypePerDisc *cur=(*it);
25885 +      if(cur)
25886 +        cur->simpleRepr(bkOffset,oss,i);
25887 +      else
25888 +        {
25889 +          oss << startLine2 << "    ## " << "Localization #" << i << " is empty !" << std::endl;
25890 +        }
25891 +    }
25892 +}
25893 +
25894 +std::string MEDFileFieldPerMeshPerType::getGeoTypeRepr() const
25895 +{
25896 +  const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(_geo_type));
25897 +  return std::string(cm.getRepr());
25898 +}
25899 +
25900 +MEDFileFieldPerMeshPerType::MEDFileFieldPerMeshPerType(MEDFileFieldPerMesh *father, INTERP_KERNEL::NormalizedCellType gt):MEDFileFieldPerMeshPerTypeCommon(father),_geo_type(gt)
25901 +{
25902 +}
25903 +
25904 +MEDFileFieldPerMeshPerType::MEDFileFieldPerMeshPerType(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd):MEDFileFieldPerMeshPerTypeCommon(fath),_geo_type(geoType)
25905 +{
25906 +  INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
25907 +  INTERP_KERNEL::AutoPtr<char> locName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
25908 +  med_geometry_type mgeoti;
25909 +  med_entity_type menti(ConvertIntoMEDFileType(type,geoType,mgeoti));
25910 +  int nbProfiles(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),menti,mgeoti,pflName,locName));
25911 +  _field_pm_pt_pd.resize(nbProfiles);
25912 +  for(int i=0;i<nbProfiles;i++)
25913 +    {
25914 +      _field_pm_pt_pd[i]=MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(this,type,i,pd);
25915 +    }
25916 +  if(type==ON_CELLS)
25917 +    {
25918 +      int nbProfiles2(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_NODE_ELEMENT,mgeoti,pflName,locName));
25919 +      for(int i=0;i<nbProfiles2;i++)
25920 +        _field_pm_pt_pd.push_back(MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(this,ON_GAUSS_NE,i,pd));
25921 +    }
25922 +  if(!_field_pm_pt_pd.empty() || type!=ON_CELLS)
25923 +    return ;
25924 +  // dark side of the force.
25925 +  {
25926 +    int nbProfiles1(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_DESCENDING_FACE,mgeoti,pflName,locName));
25927 +    int nbProfiles2(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_DESCENDING_EDGE,mgeoti,pflName,locName));
25928 +    if(nbProfiles1==0 && nbProfiles2==0)
25929 +      return ;// OK definitely nothing in field
25930 +    menti=nbProfiles1>=nbProfiles2?MED_DESCENDING_FACE:MED_DESCENDING_EDGE;//not enough words to describe the beauty
25931 +    nbProfiles=std::max(nbProfiles1,nbProfiles2);
25932 +    _field_pm_pt_pd.resize(nbProfiles);
25933 +    for(int i=0;i<nbProfiles;i++)
25934 +      _field_pm_pt_pd[i]=MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(this,ON_CELLS,i,pd);
25935 +  }
25936 +}
25937 +
25938 +MCAuto<MEDFileFieldPerMeshPerType> MEDFileFieldPerMeshPerType::Aggregate(int &start, const std::vector<std::pair<int,const MEDFileFieldPerMeshPerType *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, INTERP_KERNEL::NormalizedCellType gt, MEDFileFieldPerMesh *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo)
25939 +{
25940 +  MCAuto<MEDFileFieldPerMeshPerType> ret(MEDFileFieldPerMeshPerType::New(father,gt));
25941 +  std::map<TypeOfField, std::vector< std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc * > > > m;
25942 +  for(std::vector<std::pair<int,const MEDFileFieldPerMeshPerType *> >::const_iterator it=pms.begin();it!=pms.end();it++)
25943 +    {
25944 +      for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it2=(*it).second->_field_pm_pt_pd.begin();it2!=(*it).second->_field_pm_pt_pd.end();it2++)
25945 +        m[(*it2)->getType()].push_back(std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc * >((*it).first,*it2));
25946 +    }
25947 +  for(std::map<TypeOfField, std::vector< std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc * > > >::const_iterator it=m.begin();it!=m.end();it++)
25948 +    {
25949 +      MCAuto<MEDFileFieldPerMeshPerTypePerDisc> agg(MEDFileFieldPerMeshPerTypePerDisc::Aggregate(start,(*it).second,dts,(*it).first,ret,extractInfo));
25950 +      ret->_field_pm_pt_pd.push_back(agg);
25951 +    }
25952 +  return ret;
25953 +}
25954 +
25955 +//////////////////////////////////////////////////
25956 +
25957 +MEDFileFieldPerMeshPerTypeDyn *MEDFileFieldPerMeshPerTypeDyn::NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileEntities *entities, int idGT, const MEDFileFieldNameScope& nasc)
25958 +{
25959 +  if(!entities)
25960 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeDyn::NewOnRead : null pointer !");
25961 +  const MEDFileAllStaticEntitiesPlusDyn *entities2(dynamic_cast<const MEDFileAllStaticEntitiesPlusDyn *>(entities));
25962 +  if(!entities2)
25963 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypeDyn::NewOnRead : invalid type of entities !");
25964 +  const MEDFileStructureElement *se(entities2->getWithGT(idGT));
25965 +  return new MEDFileFieldPerMeshPerTypeDyn(fid,fath,se,nasc);
25966 +}
25967 +
25968 +MEDFileFieldPerMeshPerTypeDyn::MEDFileFieldPerMeshPerTypeDyn(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileStructureElement *se, const MEDFileFieldNameScope& nasc):MEDFileFieldPerMeshPerTypeCommon(fath)
25969 +{
25970 +  _se.takeRef(se);
25971 +  INTERP_KERNEL::AutoPtr<char> pflName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
25972 +  INTERP_KERNEL::AutoPtr<char> locName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
25973 +  int nbProfiles(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_STRUCT_ELEMENT,_se->getDynGT(),pflName,locName));
25974 +  _field_pm_pt_pd.resize(nbProfiles);
25975 +  for(int i=0;i<nbProfiles;i++)
25976 +    {
25977 +      _field_pm_pt_pd[i]=MEDFileFieldPerMeshPerTypePerDisc::NewOnRead(this,_se->getEntity(),i,NULL);
25978 +    }
25979 +}
25980 +
25981 +int MEDFileFieldPerMeshPerTypeDyn::getDynGT() const
25982 +{
25983 +  return _se->getDynGT();
25984 +}
25985 +
25986 +std::string MEDFileFieldPerMeshPerTypeDyn::getModelName() const
25987 +{
25988 +  return _se->getName();
25989 +}
25990 +
25991 +void MEDFileFieldPerMeshPerTypeDyn::getDimension(int& dim) const
25992 +{
25993 +  throw INTERP_KERNEL::Exception("not implemented yet !");
25994 +}
25995 +
25996 +void MEDFileFieldPerMeshPerTypeDyn::entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const
25997 +{
25998 +  gt=getDynGT();
25999 +  ent=MED_STRUCT_ELEMENT;
26000 +}
26001 +
26002 +INTERP_KERNEL::NormalizedCellType MEDFileFieldPerMeshPerTypeDyn::getGeoType() const
26003 +{
26004 +  throw INTERP_KERNEL::Exception("not implemented yet !");
26005 +}
26006 +
26007 +void MEDFileFieldPerMeshPerTypeDyn::simpleRepr(int bkOffset, std::ostream& oss, int id) const
26008 +{
26009 +  const char startLine[]="  ## ";
26010 +  std::string startLine2(bkOffset,' ');
26011 +  std::string startLine3(startLine2);
26012 +  startLine3+=startLine;
26013 +  oss << startLine3 << "Entry geometry type #" << id << " is lying on geometry STRUCTURE_ELEMENT type " << getDynGT() << "." << std::endl;
26014 +  oss << startLine3 << "Entry is defined on " <<  _field_pm_pt_pd.size() << " localizations." << std::endl;
26015 +  int i=0;
26016 +  for(std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >::const_iterator it=_field_pm_pt_pd.begin();it!=_field_pm_pt_pd.end();it++,i++)
26017 +    {
26018 +      if((*it).isNotNull())
26019 +        (*it)->simpleRepr(bkOffset,oss,i);
26020 +      else
26021 +        {
26022 +          oss << startLine2 << "    ## " << "Localization #" << i << " is empty !" << std::endl;
26023 +        }
26024 +    }
26025 +}
26026 +
26027 +std::string MEDFileFieldPerMeshPerTypeDyn::getGeoTypeRepr() const
26028 +{
26029 +  throw INTERP_KERNEL::Exception("not implemented yet !");
26030 +}
26031 +
26032 +MEDFileFieldPerMeshPerTypeDyn *MEDFileFieldPerMeshPerTypeDyn::deepCopy(MEDFileFieldPerMesh *father) const
26033 +{
26034 +  MCAuto<MEDFileFieldPerMeshPerTypeDyn> ret(new MEDFileFieldPerMeshPerTypeDyn(*this));
26035 +  ret->setFather(father);
26036 +  ret->deepCopyElements();
26037 +  return ret.retn();
26038 +}
26039 +
26040 +void MEDFileFieldPerMeshPerTypeDyn::getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const
26041 +{
26042 +  throw INTERP_KERNEL::Exception("not implemented yet !");
26043 +}
26044 +
26045 +//////////////////////////////////////////////////
26046 +
26047 +MEDFileFieldPerMesh *MEDFileFieldPerMesh::NewOnRead(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities)
26048 +{
26049 +  return new MEDFileFieldPerMesh(fid,fath,meshCsit,meshIteration,meshOrder,nasc,mm,entities);
26050 +}
26051 +
26052 +MEDFileFieldPerMesh *MEDFileFieldPerMesh::New(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh)
26053 +{
26054 +  return new MEDFileFieldPerMesh(fath,mesh);
26055 +}
26056 +
26057 +std::size_t MEDFileFieldPerMesh::getHeapMemorySizeWithoutChildren() const
26058 +{
26059 +  return _field_pm_pt.capacity()*sizeof(MCAuto< MEDFileFieldPerMeshPerType >);
26060 +}
26061 +
26062 +std::vector<const BigMemoryObject *> MEDFileFieldPerMesh::getDirectChildrenWithNull() const
26063 +{
26064 +  std::vector<const BigMemoryObject *> ret;
26065 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26066 +    ret.push_back(*it);
26067 +  return ret;
26068 +}
26069 +
26070 +MEDFileFieldPerMesh *MEDFileFieldPerMesh::deepCopy(MEDFileAnyTypeField1TSWithoutSDA *father) const
26071 +{
26072 +  MCAuto< MEDFileFieldPerMesh > ret=new MEDFileFieldPerMesh(*this);
26073 +  ret->_father=father;
26074 +  std::size_t i=0;
26075 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++,i++)
26076 +    {
26077 +      if((*it).isNotNull())
26078 +        ret->_field_pm_pt[i]=(*it)->deepCopy((MEDFileFieldPerMesh *)(ret));
26079 +    }
26080 +  return ret.retn();
26081 +}
26082 +
26083 +void MEDFileFieldPerMesh::simpleRepr(int bkOffset, std::ostream& oss, int id) const
26084 +{
26085 +  std::string startLine(bkOffset,' ');
26086 +  oss << startLine << "## Field part (" << id << ") lying on mesh \"" << getMeshName() << "\", Mesh iteration=" << _mesh_iteration << ". Mesh order=" << _mesh_order << "." << std::endl;
26087 +  oss << startLine << "## Field is defined on " << _field_pm_pt.size() << " types." << std::endl;
26088 +  int i=0;
26089 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++,i++)
26090 +    {
26091 +      if((*it).isNotNull())
26092 +        (*it)->simpleRepr(bkOffset,oss,i);
26093 +      else
26094 +        {
26095 +          oss << startLine << "  ## Entry geometry type #" << i << " is empty !" << std::endl;
26096 +        }
26097 +    }
26098 +}
26099 +
26100 +void MEDFileFieldPerMesh::copyTinyInfoFrom(const MEDCouplingMesh *mesh)
26101 +{
26102 +  mesh->getTime(_mesh_iteration,_mesh_order);
26103 +}
26104 +
26105 +void MEDFileFieldPerMesh::assignFieldNoProfileNoRenum(int& start, const std::vector<int>& code, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
26106 +{
26107 +  int nbOfTypes=code.size()/3;
26108 +  int offset=0;
26109 +  for(int i=0;i<nbOfTypes;i++)
26110 +    {
26111 +      INTERP_KERNEL::NormalizedCellType type=(INTERP_KERNEL::NormalizedCellType)code[3*i];
26112 +      int nbOfCells=code[3*i+1];
26113 +      int pos=addNewEntryIfNecessary(type);
26114 +      _field_pm_pt[pos]->assignFieldNoProfile(start,offset,nbOfCells,field,arr,glob,nasc);
26115 +      offset+=nbOfCells;
26116 +    }
26117 +}
26118 +
26119 +/*!
26120 + * This method is the most general one. No optimization is done here.
26121 + * \param [in] multiTypePfl is the end user profile specified in high level API
26122 + * \param [in] code is the code of \a mesh[multiTypePfl] mesh. It is of size of number of different geometric types into \a mesh[multiTypePfl].
26123 + * \param [in] code2 is the code of the \b WHOLE mesh on the same level. So all types in \a code are in \a code2.
26124 + * \param [in] idsInPflPerType is the selection into the \a multiTypePfl whole profile that corresponds to the given geometric type. This vector is always 3 times smaller than \a code.
26125 + * \param [in] idsPerType is a vector containing the profiles needed to be created for MED file format. \b WARNING these processed MED file profiles can be subdivided again in case of Gauss points.
26126 + * \param [in] mesh is the mesh coming from the MEDFileMesh instance in correspondence with the MEDFileField. The mesh inside the \a field is simply ignored.
26127 + */
26128 +void MEDFileFieldPerMesh::assignFieldProfile(int& start, const DataArrayInt *multiTypePfl, const std::vector<int>& code, const std::vector<int>& code2, const std::vector<DataArrayInt *>& idsInPflPerType, const std::vector<DataArrayInt *>& idsPerType, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
26129 +{
26130 +  int nbOfTypes(code.size()/3);
26131 +  for(int i=0;i<nbOfTypes;i++)
26132 +    {
26133 +      INTERP_KERNEL::NormalizedCellType type=(INTERP_KERNEL::NormalizedCellType)code[3*i];
26134 +      int pos=addNewEntryIfNecessary(type);
26135 +      DataArrayInt *pfl=0;
26136 +      if(code[3*i+2]!=-1)
26137 +        pfl=idsPerType[code[3*i+2]];
26138 +      int nbOfTupes2=code2.size()/3;
26139 +      int found=0;
26140 +      for(;found<nbOfTupes2;found++)
26141 +        if(code[3*i]==code2[3*found])
26142 +          break;
26143 +      if(found==nbOfTupes2)
26144 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::assignFieldProfile : internal problem ! Should never happen ! Please report bug to anthony.geay@cea.fr !");
26145 +      _field_pm_pt[pos]->assignFieldProfile(nbOfTypes==1,start,multiTypePfl,idsInPflPerType[i],pfl,code2[3*found+1],field,arr,mesh,glob,nasc);
26146 +    }
26147 +}
26148 +
26149 +void MEDFileFieldPerMesh::assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob)
26150 +{
26151 +  int pos=addNewEntryIfNecessary(INTERP_KERNEL::NORM_ERROR);
26152 +  _field_pm_pt[pos]->assignNodeFieldNoProfile(start,field,arr,glob);
26153 +}
26154 +
26155 +void MEDFileFieldPerMesh::assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc)
26156 +{
26157 +  int pos=addNewEntryIfNecessary(INTERP_KERNEL::NORM_ERROR);
26158 +  _field_pm_pt[pos]->assignNodeFieldProfile(start,pfl,field,arr,glob,nasc);
26159 +}
26160 +
26161 +void MEDFileFieldPerMesh::loadOnlyStructureOfDataRecursively(med_idt fid, int& start, const MEDFileFieldNameScope& nasc)
26162 +{
26163 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26164 +    (*it)->loadOnlyStructureOfDataRecursively(fid,start,nasc);
26165 +}
26166 +
26167 +void MEDFileFieldPerMesh::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
26168 +{
26169 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26170 +    (*it)->loadBigArraysRecursively(fid,nasc);
26171 +}
26172 +
26173 +void MEDFileFieldPerMesh::writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const
26174 +{
26175 +  int nbOfTypes=_field_pm_pt.size();
26176 +  for(int i=0;i<nbOfTypes;i++)
26177 +    {
26178 +      _field_pm_pt[i]->copyOptionsFrom(*this);
26179 +      _field_pm_pt[i]->writeLL(fid,nasc);
26180 +    }
26181 +}
26182 +
26183 +void MEDFileFieldPerMesh::getDimension(int& dim) const
26184 +{
26185 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26186 +    (*it)->getDimension(dim);
26187 +}
26188 +
26189 +bool MEDFileFieldPerMesh::isUniqueLevel(int& dim) const
26190 +{
26191 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26192 +    if(!(*it)->isUniqueLevel(dim))
26193 +      return false;
26194 +  return true;
26195 +}
26196 +
26197 +void MEDFileFieldPerMesh::fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const
26198 +{
26199 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26200 +    (*it)->fillTypesOfFieldAvailable(types);
26201 +}
26202 +
26203 +std::vector< std::vector< std::pair<int,int> > > MEDFileFieldPerMesh::getFieldSplitedByType(std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> > & locs) const
26204 +{
26205 +  int sz=_field_pm_pt.size();
26206 +  std::vector< std::vector<std::pair<int,int> > > ret(sz);
26207 +  types.resize(sz); typesF.resize(sz); pfls.resize(sz); locs.resize(sz);
26208 +  for(int i=0;i<sz;i++)
26209 +    {
26210 +      types[i]=_field_pm_pt[i]->getGeoType();
26211 +      _field_pm_pt[i]->fillFieldSplitedByType(ret[i],typesF[i],pfls[i],locs[i]);
26212 +    }
26213 +  return ret;
26214 +}
26215 +
26216 +double MEDFileFieldPerMesh::getTime() const
26217 +{
26218 +  int tmp1,tmp2;
26219 +  return _father->getTime(tmp1,tmp2);
26220 +}
26221 +
26222 +int MEDFileFieldPerMesh::getIteration() const
26223 +{
26224 +  return _father->getIteration();
26225 +}
26226 +
26227 +int MEDFileFieldPerMesh::getOrder() const
26228 +{
26229 +  return _father->getOrder();
26230 +}
26231 +
26232 +int MEDFileFieldPerMesh::getNumberOfComponents() const
26233 +{
26234 +  return _father->getNumberOfComponents();
26235 +}
26236 +
26237 +std::string MEDFileFieldPerMesh::getMeshName() const
26238 +{
26239 +  return _father->getMeshName();
26240 +}
26241 +
26242 +void MEDFileFieldPerMesh::setMeshName(const std::string& meshName)
26243 +{
26244 +  _father->setMeshName(meshName);
26245 +}
26246 +
26247 +bool MEDFileFieldPerMesh::presenceOfMultiDiscPerGeoType() const
26248 +{
26249 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26250 +    {
26251 +      if((*it).isNull())
26252 +        continue;
26253 +      if((*it)->presenceOfMultiDiscPerGeoType())
26254 +        return true;
26255 +    }
26256 +  return false;
26257 +}
26258 +
26259 +bool MEDFileFieldPerMesh::presenceOfStructureElements() const
26260 +{
26261 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26262 +    if((*it).isNotNull())
26263 +      {
26264 +        const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
26265 +        if(pt)
26266 +          return true;
26267 +      }
26268 +  return false;
26269 +}
26270 +
26271 +bool MEDFileFieldPerMesh::onlyStructureElements() const
26272 +{
26273 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26274 +    if((*it).isNotNull())
26275 +      {
26276 +        const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
26277 +        if(!pt)
26278 +          return false;
26279 +      }
26280 +  return true;
26281 +}
26282 +
26283 +void MEDFileFieldPerMesh::killStructureElements()
26284 +{
26285 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > res;
26286 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26287 +    {
26288 +      if((*it).isNotNull())
26289 +        {
26290 +          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
26291 +          if(!pt)
26292 +            res.push_back(*it);
26293 +        }
26294 +    }
26295 +  _field_pm_pt=res;
26296 +}
26297 +
26298 +void MEDFileFieldPerMesh::keepOnlyStructureElements()
26299 +{
26300 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > res;
26301 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26302 +    {
26303 +      if((*it).isNotNull())
26304 +        {
26305 +          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
26306 +          if(pt)
26307 +            res.push_back(*it);
26308 +        }
26309 +    }
26310 +  _field_pm_pt=res;
26311 +}
26312 +
26313 +void MEDFileFieldPerMesh::keepOnlyOnSE(const std::string& seName)
26314 +{
26315 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > res;
26316 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26317 +    {
26318 +      if((*it).isNotNull())
26319 +        {
26320 +          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
26321 +          if(!pt)
26322 +            throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::keepOnlyOnSE : presence of non SE !");
26323 +          if(pt->getModelName()==seName)
26324 +            res.push_back(*it);
26325 +        }
26326 +    }
26327 +  _field_pm_pt=res;
26328 +}
26329 +
26330 +void MEDFileFieldPerMesh::getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const
26331 +{
26332 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26333 +    {
26334 +      if((*it).isNotNull())
26335 +        {
26336 +          const MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<const MEDFileFieldPerMeshPerTypeDyn *>((const MEDFileFieldPerMeshPerTypeCommon *)*it));
26337 +          if(pt)
26338 +            {
26339 +              ps.push_back(std::pair<std::string,std::string>(getMeshName(),pt->getModelName()));
26340 +            }
26341 +          else
26342 +            throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getMeshSENames : presence of a non structure element part !");
26343 +        }
26344 +    }
26345 +}
26346 +
26347 +DataArray *MEDFileFieldPerMesh::getOrCreateAndGetArray()
26348 +{
26349 +  if(!_father)
26350 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getOrCreateAndGetArray : no father ! internal error !");
26351 +  return _father->getOrCreateAndGetArray();
26352 +}
26353 +
26354 +const DataArray *MEDFileFieldPerMesh::getOrCreateAndGetArray() const
26355 +{
26356 +  if(!_father)
26357 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getOrCreateAndGetArray : no father ! internal error !");
26358 +  return _father->getOrCreateAndGetArray();
26359 +}
26360 +
26361 +const std::vector<std::string>& MEDFileFieldPerMesh::getInfo() const
26362 +{
26363 +  return _father->getInfo();
26364 +}
26365 +
26366 +/*!
26367 + * type,geoTypes,dads,pfls,locs are input parameters. They should have the same size.
26368 + * Before the call of this method 'geoTypes','dads','pfls','locs' must be reorganized so that types in geoTypes are contiguous and ordered following typmai2 array.
26369 + * It returns 2 output vectors :
26370 + * - 'code' of size 3*sz where sz is the number of different values into 'geoTypes'
26371 + * - 'notNullPfls' contains sz2 values that are extracted from 'pfls' in which null profiles have been removed.
26372 + * 'code' and 'notNullPfls' are in MEDCouplingUMesh::checkTypeConsistencyAndContig format.
26373 + */
26374 +void MEDFileFieldPerMesh::SortArraysPerType(const MEDFileFieldGlobsReal *glob, TypeOfField type, const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<const DataArrayInt *>& pfls, const std::vector<int>& locs, std::vector<int>& code, std::vector<DataArrayInt *>& notNullPfls)
26375 +{
26376 +  int notNullPflsSz=0;
26377 +  int nbOfArrs=geoTypes.size();
26378 +  for(int i=0;i<nbOfArrs;i++)
26379 +    if(pfls[i])
26380 +      notNullPflsSz++;
26381 +  std::set<INTERP_KERNEL::NormalizedCellType> geoTypes3(geoTypes.begin(),geoTypes.end());
26382 +  int nbOfDiffGeoTypes=geoTypes3.size();
26383 +  code.resize(3*nbOfDiffGeoTypes);
26384 +  notNullPfls.resize(notNullPflsSz);
26385 +  notNullPflsSz=0;
26386 +  int j=0;
26387 +  for(int i=0;i<nbOfDiffGeoTypes;i++)
26388 +    {
26389 +      int startZone=j;
26390 +      INTERP_KERNEL::NormalizedCellType refType=geoTypes[j];
26391 +      std::vector<const DataArrayInt *> notNullTmp;
26392 +      if(pfls[j])
26393 +        notNullTmp.push_back(pfls[j]);
26394 +      j++;
26395 +      for(;j<nbOfArrs;j++)
26396 +        if(geoTypes[j]==refType)
26397 +          {
26398 +            if(pfls[j])
26399 +              notNullTmp.push_back(pfls[j]);
26400 +          }
26401 +        else
26402 +          break;
26403 +      std::vector< std::pair<int,int> > tmpDads(dads.begin()+startZone,dads.begin()+j);
26404 +      std::vector<const DataArrayInt *> tmpPfls(pfls.begin()+startZone,pfls.begin()+j);
26405 +      std::vector<int> tmpLocs(locs.begin()+startZone,locs.begin()+j);
26406 +      code[3*i]=(int)refType;
26407 +      std::vector<INTERP_KERNEL::NormalizedCellType> refType2(1,refType);
26408 +      code[3*i+1]=ComputeNbOfElems(glob,type,refType2,tmpDads,tmpLocs);
26409 +      if(notNullTmp.empty())
26410 +        code[3*i+2]=-1;
26411 +      else
26412 +        {
26413 +          notNullPfls[notNullPflsSz]=DataArrayInt::Aggregate(notNullTmp);
26414 +          code[3*i+2]=notNullPflsSz++;
26415 +        }
26416 +    }
26417 +}
26418 +
26419 +/*!
26420 + * 'dads' 'geoTypes' and 'locs' are input parameters that should have same size sz. sz should be >=1.
26421 + */
26422 +int MEDFileFieldPerMesh::ComputeNbOfElems(const MEDFileFieldGlobsReal *glob, TypeOfField type, const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs)
26423 +{
26424 +  int sz=dads.size();
26425 +  int ret=0;
26426 +  for(int i=0;i<sz;i++)
26427 +    {
26428 +      if(locs[i]==-1)
26429 +        {
26430 +          if(type!=ON_GAUSS_NE)
26431 +            ret+=dads[i].second-dads[i].first;
26432 +          else
26433 +            {
26434 +              const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(geoTypes[i]);
26435 +              ret+=(dads[i].second-dads[i].first)/cm.getNumberOfNodes();
26436 +            }
26437 +        }
26438 +      else
26439 +        {
26440 +          int nbOfGaussPtPerCell=glob->getNbOfGaussPtPerCell(locs[i]);
26441 +          ret+=(dads[i].second-dads[i].first)/nbOfGaussPtPerCell;
26442 +        }
26443 +    }
26444 +  return ret;
26445 +}
26446 +
26447 +std::vector<std::string> MEDFileFieldPerMesh::getPflsReallyUsed() const
26448 +{
26449 +  std::vector<std::string> ret;
26450 +  std::set<std::string> ret2;
26451 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26452 +    {
26453 +      std::vector<std::string> tmp=(*it)->getPflsReallyUsed();
26454 +      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
26455 +        if(ret2.find(*it2)==ret2.end())
26456 +          {
26457 +            ret.push_back(*it2);
26458 +            ret2.insert(*it2);
26459 +          }
26460 +    }
26461 +  return ret;
26462 +}
26463 +
26464 +std::vector<std::string> MEDFileFieldPerMesh::getPflsReallyUsedMulti() const
26465 +{
26466 +  std::vector<std::string> ret;
26467 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26468 +    {
26469 +      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti();
26470 +      ret.insert(ret.end(),tmp.begin(),tmp.end());
26471 +    }
26472 +  return ret;
26473 +}
26474 +
26475 +std::vector<std::string> MEDFileFieldPerMesh::getLocsReallyUsed() const
26476 +{
26477 +  std::vector<std::string> ret;
26478 +  std::set<std::string> ret2;
26479 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26480 +    {
26481 +      std::vector<std::string> tmp=(*it)->getLocsReallyUsed();
26482 +      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
26483 +        if(ret2.find(*it2)==ret2.end())
26484 +          {
26485 +            ret.push_back(*it2);
26486 +            ret2.insert(*it2);
26487 +          }
26488 +    }
26489 +  return ret;
26490 +}
26491 +
26492 +std::vector<std::string> MEDFileFieldPerMesh::getLocsReallyUsedMulti() const
26493 +{
26494 +  std::vector<std::string> ret;
26495 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26496 +    {
26497 +      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti();
26498 +      ret.insert(ret.end(),tmp.begin(),tmp.end());
26499 +    }
26500 +  return ret;
26501 +}
26502 +
26503 +bool MEDFileFieldPerMesh::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
26504 +{
26505 +  for(std::vector< std::pair<std::string,std::string> >::const_iterator it=modifTab.begin();it!=modifTab.end();it++)
26506 +    {
26507 +      if((*it).first==getMeshName())
26508 +        {
26509 +          setMeshName((*it).second);
26510 +          return true;
26511 +        }
26512 +    }
26513 +  return false;
26514 +}
26515 +
26516 +void MEDFileFieldPerMesh::convertMedBallIntoClassic()
26517 +{
26518 +  if(_field_pm_pt.size()!=1)
26519 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : Only managed for single mesh !");
26520 +  if(_field_pm_pt[0].isNull())
26521 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : null pointer !");
26522 +  MEDFileFieldPerMeshPerTypeDyn *pt(dynamic_cast<MEDFileFieldPerMeshPerTypeDyn *>((MEDFileFieldPerMeshPerTypeCommon *)_field_pm_pt[0]));
26523 +  if(!pt)
26524 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : this is expected to be marked as structure element !");
26525 +  if(pt->getNumberOfLoc()!=1)
26526 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : only one loc managed !");
26527 +  const MEDFileFieldPerMeshPerTypePerDisc *disc(pt->getLeafGivenLocId(0));
26528 +  if(!disc)
26529 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::convertMedBallIntoClassic : internal error !");
26530 +  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> disc2(MEDFileFieldPerMeshPerTypePerDisc::New(*disc));
26531 +  disc2->setType(ON_NODES);
26532 +  MCAuto<MEDFileFieldPerMeshPerType> pt2(MEDFileFieldPerMeshPerType::New(this,INTERP_KERNEL::NORM_ERROR));
26533 +  disc2->setFather(pt2);
26534 +  pt2->setFather(this);
26535 +  pt2->pushDiscretization(disc2);
26536 +  _field_pm_pt[0]=DynamicCast<MEDFileFieldPerMeshPerType,MEDFileFieldPerMeshPerTypeCommon>(pt2);
26537 +}
26538 +
26539 +bool MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N,
26540 +                                                      MEDFileFieldGlobsReal& glob)
26541 +{
26542 +  if(getMeshName()!=meshName)
26543 +    return false;
26544 +  std::set<INTERP_KERNEL::NormalizedCellType> typesToKeep;
26545 +  for(std::size_t i=0;i<oldCode.size()/3;i++) typesToKeep.insert((INTERP_KERNEL::NormalizedCellType)oldCode[3*i]);
26546 +  std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > > entries;
26547 +  std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> entriesKept;
26548 +  std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> otherEntries;
26549 +  getUndergroundDataArrayExt(entries);
26550 +  DataArray *arr0(getOrCreateAndGetArray());//tony
26551 +  if(!arr0)
26552 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh : DataArray storing values of field is null !");
26553 +  DataArrayDouble *arr(dynamic_cast<DataArrayDouble *>(arr0));//tony
26554 +  if(!arr0)
26555 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh : DataArray storing values is double ! Not managed for the moment !");
26556 +  int sz=0;
26557 +  if(!arr)
26558 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::renumberEntitiesLyingOnMesh : DataArrayDouble storing values of field is null !");
26559 +  for(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >::const_iterator it=entries.begin();it!=entries.end();it++)
26560 +    {
26561 +      if(typesToKeep.find((*it).first.first)!=typesToKeep.end())
26562 +        {
26563 +          entriesKept.push_back(getLeafGivenTypeAndLocId((*it).first.first,(*it).first.second));
26564 +          sz+=(*it).second.second-(*it).second.first;
26565 +        }
26566 +      else
26567 +        otherEntries.push_back(getLeafGivenTypeAndLocId((*it).first.first,(*it).first.second));
26568 +    }
26569 +  MCAuto<DataArrayInt> renumDefrag=DataArrayInt::New(); renumDefrag->alloc(arr->getNumberOfTuples(),1); renumDefrag->fillWithZero();
26570 +  ////////////////////
26571 +  MCAuto<DataArrayInt> explicitIdsOldInMesh=DataArrayInt::New(); explicitIdsOldInMesh->alloc(sz,1);//sz is a majorant of the real size. A realloc will be done after
26572 +  int *workI2=explicitIdsOldInMesh->getPointer();
26573 +  int sz1=0,sz2=0,sid=1;
26574 +  std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > entriesKeptML=MEDFileFieldPerMeshPerTypePerDisc::SplitPerDiscretization(entriesKept);
26575 +  // std::vector<int> tupleIdOfStartOfNewChuncksV(entriesKeptML.size());
26576 +  for(std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator itL1=entriesKeptML.begin();itL1!=entriesKeptML.end();itL1++,sid++)
26577 +    {
26578 +      //  tupleIdOfStartOfNewChuncksV[sid-1]=sz2;
26579 +      MCAuto<DataArrayInt> explicitIdsOldInArr=DataArrayInt::New(); explicitIdsOldInArr->alloc(sz,1);
26580 +      int *workI=explicitIdsOldInArr->getPointer();
26581 +      for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator itL2=(*itL1).begin();itL2!=(*itL1).end();itL2++)
26582 +        {
26583 +          int delta1=(*itL2)->fillTupleIds(workI); workI+=delta1; sz1+=delta1;
26584 +          (*itL2)->setLocId(sz2);
26585 +          (*itL2)->_tmp_work1=(*itL2)->getStart();
26586 +          int delta2=(*itL2)->fillEltIdsFromCode(sz2,oldCode,glob,workI2); workI2+=delta2; sz2+=delta2;
26587 +        }
26588 +      renumDefrag->setPartOfValuesSimple3(sid,explicitIdsOldInArr->begin(),explicitIdsOldInArr->end(),0,1,1);
26589 +    }
26590 +  explicitIdsOldInMesh->reAlloc(sz2);
26591 +  int tupleIdOfStartOfNewChuncks=arr->getNumberOfTuples()-sz2;
26592 +  ////////////////////
26593 +  MCAuto<DataArrayInt> permArrDefrag=renumDefrag->buildPermArrPerLevel(); renumDefrag=0;
26594 +  // perform redispatching of non concerned MEDFileFieldPerMeshPerTypePerDisc
26595 +  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > otherEntriesNew;
26596 +  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=otherEntries.begin();it!=otherEntries.end();it++)
26597 +    {
26598 +      otherEntriesNew.push_back(MEDFileFieldPerMeshPerTypePerDisc::New(*(*it)));
26599 +      otherEntriesNew.back()->setNewStart(permArrDefrag->getIJ((*it)->getStart(),0));
26600 +      otherEntriesNew.back()->setLocId((*it)->getGeoType());
26601 +    }
26602 +  std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > entriesKeptNew;
26603 +  std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> entriesKeptNew2;
26604 +  for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator it=entriesKept.begin();it!=entriesKept.end();it++)
26605 +    {
26606 +      MCAuto<MEDFileFieldPerMeshPerTypePerDisc> elt=MEDFileFieldPerMeshPerTypePerDisc::New(*(*it));
26607 +      int newStart=elt->getLocId();
26608 +      elt->setLocId((*it)->getGeoType());
26609 +      elt->setNewStart(newStart);
26610 +      elt->_tmp_work1=permArrDefrag->getIJ(elt->_tmp_work1,0);
26611 +      entriesKeptNew.push_back(elt);
26612 +      entriesKeptNew2.push_back(elt);
26613 +    }
26614 +  MCAuto<DataArrayDouble> arr2=arr->renumber(permArrDefrag->getConstPointer());
26615 +  // perform redispatching of concerned MEDFileFieldPerMeshPerTypePerDisc -> values are in arr2
26616 +  MCAuto<DataArrayInt> explicitIdsNewInMesh=renumO2N->selectByTupleId(explicitIdsOldInMesh->begin(),explicitIdsOldInMesh->end());
26617 +  std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > entriesKeptPerDisc=MEDFileFieldPerMeshPerTypePerDisc::SplitPerDiscretization(entriesKeptNew2);
26618 +  bool ret=false;
26619 +  for(std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator it4=entriesKeptPerDisc.begin();it4!=entriesKeptPerDisc.end();it4++)
26620 +    {
26621 +      sid=0;
26622 +      /*for(std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>::const_iterator itL2=(*it4).begin();itL2!=(*it4).end();itL2++)
26623 +        {
26624 +          MEDFileFieldPerMeshPerTypePerDisc *curNC=const_cast<MEDFileFieldPerMeshPerTypePerDisc *>(*itL2);
26625 +          curNC->setNewStart(permArrDefrag->getIJ((*itL2)->getStart(),0)-tupleIdOfStartOfNewChuncks+tupleIdOfStartOfNewChuncksV[sid]);
26626 +          }*/
26627 +      ret=MEDFileFieldPerMeshPerTypePerDisc::RenumberChunks(tupleIdOfStartOfNewChuncks,*it4,explicitIdsNewInMesh,newCode,
26628 +                                                            glob,arr2,otherEntriesNew) || ret;
26629 +    }
26630 +  if(!ret)
26631 +    return false;
26632 +  // Assign new dispatching
26633 +  assignNewLeaves(otherEntriesNew);
26634 +  arr->deepCopyFrom(*arr2);
26635 +  return true;
26636 +}
26637 +
26638 +/*!
26639 + * \param [in,out] globalNum a global numbering counter for the renumbering.
26640 + * \param [out] its - list of pair (start,stop) kept
26641 + */
26642 +void MEDFileFieldPerMesh::keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its)
26643 +{
26644 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > ret;
26645 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26646 +    {
26647 +      std::vector< std::pair<int,int> > its2;
26648 +      if((*it)->keepOnlySpatialDiscretization(tof,globalNum,its2))
26649 +        {
26650 +          ret.push_back(*it);
26651 +          its.insert(its.end(),its2.begin(),its2.end());
26652 +        }
26653 +    }
26654 +  _field_pm_pt=ret;
26655 +}
26656 +
26657 +/*!
26658 + * \param [in,out] globalNum a global numbering counter for the renumbering.
26659 + * \param [out] its - list of pair (start,stop) kept
26660 + */
26661 +void MEDFileFieldPerMesh::keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its)
26662 +{
26663 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > ret;
26664 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26665 +    {
26666 +      std::vector< std::pair<int,int> > its2;
26667 +      if((*it)->keepOnlyGaussDiscretization(idOfDisc,globalNum,its2))
26668 +        {
26669 +          ret.push_back(*it);
26670 +          its.insert(its.end(),its2.begin(),its2.end());
26671 +        }
26672 +    }
26673 +  _field_pm_pt=ret;
26674 +}
26675 +
26676 +void MEDFileFieldPerMesh::assignNewLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves)
26677 +{
26678 +  std::map<INTERP_KERNEL::NormalizedCellType,std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc> > > types;
26679 +  for( std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >::const_iterator it=leaves.begin();it!=leaves.end();it++)
26680 +    types[(INTERP_KERNEL::NormalizedCellType)(*it)->getLocId()].push_back(*it);
26681 +  //
26682 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > fieldPmPt(types.size());
26683 +  std::map<INTERP_KERNEL::NormalizedCellType,std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc> > >::const_iterator it1=types.begin();
26684 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it2=fieldPmPt.begin();
26685 +  for(;it1!=types.end();it1++,it2++)
26686 +    {
26687 +      MCAuto<MEDFileFieldPerMeshPerType> elt=MEDFileFieldPerMeshPerType::New(this,(INTERP_KERNEL::NormalizedCellType)((*it1).second[0]->getLocId()));
26688 +      elt->setLeaves((*it1).second);
26689 +      MCAuto<MEDFileFieldPerMeshPerTypeCommon> elt2(DynamicCast<MEDFileFieldPerMeshPerType,MEDFileFieldPerMeshPerTypeCommon>(elt));
26690 +      *it2=elt2;
26691 +    }
26692 +  _field_pm_pt=fieldPmPt;
26693 +}
26694 +
26695 +void MEDFileFieldPerMesh::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
26696 +{
26697 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26698 +    (*it)->changePflsRefsNamesGen(mapOfModif);
26699 +}
26700 +
26701 +void MEDFileFieldPerMesh::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
26702 +{
26703 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26704 +    (*it)->changeLocsRefsNamesGen(mapOfModif);
26705 +}
26706 +
26707 +/*!
26708 + * \param [in] mesh is the whole mesh
26709 + */
26710 +MEDCouplingFieldDouble *MEDFileFieldPerMesh::getFieldOnMeshAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
26711 +{
26712 +  if(_field_pm_pt.empty())
26713 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : no types field set !");
26714 +  //
26715 +  std::vector< std::pair<int,int> > dads;
26716 +  std::vector<const DataArrayInt *> pfls;
26717 +  std::vector<DataArrayInt *> notNullPflsPerGeoType;
26718 +  std::vector<int> locs,code;
26719 +  std::vector<INTERP_KERNEL::NormalizedCellType> geoTypes;
26720 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26721 +    (*it)->getFieldAtLevel(mesh->getMeshDimension(),type,glob,dads,pfls,locs,geoTypes);
26722 +  // Sort by types
26723 +  SortArraysPerType(glob,type,geoTypes,dads,pfls,locs,code,notNullPflsPerGeoType);
26724 +  if(code.empty())
26725 +    {
26726 +      std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevel : " << "The field \"" << nasc.getName() << "\" exists but not with such spatial discretization or such dimension specified !";
26727 +      throw INTERP_KERNEL::Exception(oss.str());
26728 +    }
26729 +  //
26730 +  std::vector< MCAuto<DataArrayInt> > notNullPflsPerGeoType2(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
26731 +  std::vector< const DataArrayInt *> notNullPflsPerGeoType3(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
26732 +  if(type!=ON_NODES)
26733 +    {
26734 +      DataArrayInt *arr=mesh->checkTypeConsistencyAndContig(code,notNullPflsPerGeoType3);
26735 +      if(!arr)
26736 +        return finishField(type,glob,dads,locs,mesh,isPfl,arrOut,nasc);
26737 +      else
26738 +        {
26739 +          MCAuto<DataArrayInt> arr2(arr);
26740 +          return finishField2(type,glob,dads,locs,geoTypes,mesh,arr,isPfl,arrOut,nasc);
26741 +        }
26742 +    }
26743 +  else
26744 +    {
26745 +      if(code.size()!=3)
26746 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : internal error #1 !");
26747 +      int nb=code[1];
26748 +      if(code[2]==-1)
26749 +        {
26750 +          if(nb!=mesh->getNumberOfNodes())
26751 +            {
26752 +              std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevel : There is a problem there is " << nb << " nodes in field whereas there is " << mesh->getNumberOfNodes();
26753 +              oss << " nodes in mesh !";
26754 +              throw INTERP_KERNEL::Exception(oss.str());
26755 +            }
26756 +          return finishField(type,glob,dads,locs,mesh,isPfl,arrOut,nasc);
26757 +        }
26758 +      else
26759 +        return finishFieldNode2(glob,dads,locs,mesh,notNullPflsPerGeoType3[0],isPfl,arrOut,nasc);
26760 +    }
26761 +}
26762 +
26763 +DataArray *MEDFileFieldPerMesh::getFieldOnMeshAtLevelWithPfl(TypeOfField type, const MEDCouplingMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const
26764 +{
26765 +  if(_field_pm_pt.empty())
26766 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : no types field set !");
26767 +  //
26768 +  std::vector<std::pair<int,int> > dads;
26769 +  std::vector<const DataArrayInt *> pfls;
26770 +  std::vector<DataArrayInt *> notNullPflsPerGeoType;
26771 +  std::vector<int> locs,code;
26772 +  std::vector<INTERP_KERNEL::NormalizedCellType> geoTypes;
26773 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26774 +    (*it)->getFieldAtLevel(mesh->getMeshDimension(),type,glob,dads,pfls,locs,geoTypes);
26775 +  // Sort by types
26776 +  SortArraysPerType(glob,type,geoTypes,dads,pfls,locs,code,notNullPflsPerGeoType);
26777 +  if(code.empty())
26778 +    {
26779 +      std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevelWithPfl : " << "The field \"" << nasc.getName() << "\" exists but not with such spatial discretization or such dimension specified !";
26780 +      throw INTERP_KERNEL::Exception(oss.str());
26781 +    }
26782 +  std::vector< MCAuto<DataArrayInt> > notNullPflsPerGeoType2(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
26783 +  std::vector< const DataArrayInt *> notNullPflsPerGeoType3(notNullPflsPerGeoType.begin(),notNullPflsPerGeoType.end());
26784 +  if(type!=ON_NODES)
26785 +    {
26786 +      MCAuto<DataArrayInt> arr=mesh->checkTypeConsistencyAndContig(code,notNullPflsPerGeoType3);
26787 +      return finishField4(dads,arr,mesh->getNumberOfCells(),pfl);
26788 +    }
26789 +  else
26790 +    {
26791 +      if(code.size()!=3)
26792 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::getFieldOnMeshAtLevel : internal error #1 !");
26793 +      int nb=code[1];
26794 +      if(code[2]==-1)
26795 +        {
26796 +          if(nb!=mesh->getNumberOfNodes())
26797 +            {
26798 +              std::ostringstream oss; oss << "MEDFileFieldPerMesh::getFieldOnMeshAtLevel : There is a problem there is " << nb << " nodes in field whereas there is " << mesh->getNumberOfNodes();
26799 +              oss << " nodes in mesh !";
26800 +              throw INTERP_KERNEL::Exception(oss.str());
26801 +            }
26802 +        }
26803 +      return finishField4(dads,code[2]==-1?0:notNullPflsPerGeoType3[0],mesh->getNumberOfNodes(),pfl);
26804 +    }
26805 +  //
26806 +  return 0;
26807 +}
26808 +
26809 +void MEDFileFieldPerMesh::accept(MEDFileFieldVisitor& visitor) const
26810 +{
26811 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26812 +    if((*it).isNotNull())
26813 +      {
26814 +        visitor.newPerMeshPerTypeEntry(*it);
26815 +        (*it)->accept(visitor);
26816 +        visitor.endPerMeshPerTypeEntry(*it);
26817 +      }
26818 +}
26819 +
26820 +void MEDFileFieldPerMesh::getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
26821 +{
26822 +  int globalSz=0;
26823 +  int nbOfEntries=0;
26824 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26825 +    {
26826 +      (*it)->getSizes(globalSz,nbOfEntries);
26827 +    }
26828 +  entries.resize(nbOfEntries);
26829 +  nbOfEntries=0;
26830 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26831 +    {
26832 +      (*it)->fillValues(nbOfEntries,entries);
26833 +    }
26834 +}
26835 +
26836 +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId)
26837 +{
26838 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26839 +    {
26840 +      if((*it)->getGeoType()==typ)
26841 +        return (*it)->getLeafGivenLocId(locId);
26842 +    }
26843 +  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ);
26844 +  std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl;
26845 +  oss << "Possibilities are : ";
26846 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26847 +    {
26848 +      const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType());
26849 +      oss << "\"" << cm2.getRepr() << "\", ";
26850 +    }
26851 +  throw INTERP_KERNEL::Exception(oss.str());
26852 +}
26853 +
26854 +const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const
26855 +{
26856 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26857 +    {
26858 +      if((*it)->getGeoType()==typ)
26859 +        return (*it)->getLeafGivenLocId(locId);
26860 +    }
26861 +  const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ);
26862 +  std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl;
26863 +  oss << "Possibilities are : ";
26864 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++)
26865 +    {
26866 +      const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType());
26867 +      oss << "\"" << cm2.getRepr() << "\", ";
26868 +    }
26869 +  throw INTERP_KERNEL::Exception(oss.str());
26870 +}
26871 +
26872 +/*!
26873 + * \param [in,out] start - Integer that gives the current position in the final aggregated array
26874 + * \param [in] pms - list of elements to aggregate. integer gives the mesh id 
26875 + * \param [in] dts - (Distribution of types) = level 1 : meshes to aggregate. Level 2 : all geo type. Level 3 pair specifying geo type and number of elem in geotype.
26876 + * \param [out] extractInfo - Gives information about the where the data comes from. It is a vector of triplet. First element in the triplet the mesh pos. The 2nd one the start pos. The 3rd the end pos.
26877 + */
26878 +MCAuto<MEDFileFieldPerMeshPerTypePerDisc> MEDFileFieldPerMeshPerTypePerDisc::Aggregate(int &start, const std::vector< std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, TypeOfField tof, MEDFileFieldPerMeshPerType *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo)
26879 +{
26880 +  MCAuto<MEDFileFieldPerMeshPerTypePerDisc> ret(new MEDFileFieldPerMeshPerTypePerDisc(father,tof));
26881 +  if(pms.empty())
26882 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : empty input vector !");
26883 +  for(std::vector<std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator it=pms.begin();it!=pms.end();it++)
26884 +    {
26885 +      if(!(*it).second)
26886 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : presence of null pointer !");
26887 +      if(!(*it).second->getProfile().empty())
26888 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for profiles !");
26889 +      if(!(*it).second->getLocalization().empty())
26890 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for gauss pts !");
26891 +    }
26892 +  INTERP_KERNEL::NormalizedCellType gt(pms[0].second->getGeoType());
26893 +  std::size_t i(0);
26894 +  std::vector< std::pair<int,int> > filteredDTS;
26895 +  for(std::vector< std::vector< std::pair<int,int> > >::const_iterator it=dts.begin();it!=dts.end();it++,i++)
26896 +    for(std::vector< std::pair<int,int> >::const_iterator it2=(*it).begin();it2!=(*it).end();it2++)
26897 +      if((*it2).first==gt)
26898 +        filteredDTS.push_back(std::pair<int,int>(i,(*it2).second));
26899 +  if(pms.size()!=filteredDTS.size())
26900 +    throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for generated profiles !");
26901 +  std::vector<std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >::const_iterator it1(pms.begin());
26902 +  std::vector< std::pair<int,int> >::const_iterator it2(filteredDTS.begin());
26903 +  int zeStart(start),nval(0);
26904 +  for(;it1!=pms.end();it1++,it2++)
26905 +    {
26906 +      if((*it1).first!=(*it2).first)
26907 +        throw INTERP_KERNEL::Exception("MEDFileFieldPerMeshPerTypePerDisc::Aggregate : not implemented yet for generated profiles 2 !");
26908 +      int s1((*it1).second->getStart()),e1((*it1).second->getEnd());
26909 +      extractInfo.push_back(std::pair<int, std::pair<int,int> >((*it1).first,std::pair<int,int>(s1,e1)));
26910 +      start+=e1-s1;
26911 +      nval+=((*it1).second)->getNumberOfVals();
26912 +    }
26913 +  ret->_start=zeStart; ret->_end=start; ret->_nval=nval;
26914 +  return ret;
26915 +}
26916 +
26917 +MCAuto<MEDFileFieldPerMesh> MEDFileFieldPerMesh::Aggregate(int &start, const std::vector<const MEDFileFieldPerMesh *>& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, MEDFileAnyTypeField1TSWithoutSDA *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo)
26918 +{
26919 +  MCAuto<MEDFileFieldPerMesh> ret(new MEDFileFieldPerMesh(father,pms[0]->getMeshName(),pms[0]->getMeshIteration(),pms[0]->getMeshOrder()));
26920 +  std::map<INTERP_KERNEL::NormalizedCellType, std::vector< std::pair<int,const MEDFileFieldPerMeshPerType *> > > m;
26921 +  std::size_t i(0);
26922 +  for(std::vector<const MEDFileFieldPerMesh *>::const_iterator it=pms.begin();it!=pms.end();it++,i++)
26923 +    {
26924 +      const std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >& v((*it)->_field_pm_pt);
26925 +      for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::const_iterator it2=v.begin();it2!=v.end();it2++)
26926 +        {
26927 +          INTERP_KERNEL::NormalizedCellType gt((*it2)->getGeoType());
26928 +          const MEDFileFieldPerMeshPerType *elt(dynamic_cast<const MEDFileFieldPerMeshPerType *>((const MEDFileFieldPerMeshPerTypeCommon *)(*it2)));
26929 +          if(!elt)
26930 +            throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::Aggregate : not managed for structelement !");
26931 +          m[gt].push_back(std::pair<int,const MEDFileFieldPerMeshPerType *>(i,elt));
26932 +        }
26933 +    }
26934 +  for(std::map<INTERP_KERNEL::NormalizedCellType, std::vector< std::pair<int,const MEDFileFieldPerMeshPerType *> > >::const_iterator it=m.begin();it!=m.end();it++)
26935 +    {
26936 +      MCAuto<MEDFileFieldPerMeshPerType> agg(MEDFileFieldPerMeshPerType::Aggregate(start,(*it).second,dts,(*it).first,ret,extractInfo));
26937 +      MCAuto<MEDFileFieldPerMeshPerTypeCommon> agg2(DynamicCast<MEDFileFieldPerMeshPerType,MEDFileFieldPerMeshPerTypeCommon>(agg));
26938 +      ret->_field_pm_pt.push_back(agg2);
26939 +    }
26940 +  return ret;
26941 +}
26942 +
26943 +int MEDFileFieldPerMesh::addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type)
26944 +{
26945 +  int i=0;
26946 +  int pos=std::distance(typmai2,std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,type));
26947 +  std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it2=_field_pm_pt.begin();
26948 +  for(std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++,i++)
26949 +    {
26950 +      INTERP_KERNEL::NormalizedCellType curType=(*it)->getGeoType();
26951 +      if(type==curType)
26952 +        return i;
26953 +      else
26954 +        {
26955 +          int pos2=std::distance(typmai2,std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,curType));
26956 +          if(pos>pos2)
26957 +            it2=it+1;
26958 +        }
26959 +    }
26960 +  int ret=std::distance(_field_pm_pt.begin(),it2);
26961 +  _field_pm_pt.insert(it2,MEDFileFieldPerMeshPerType::New(this,type));
26962 +  return ret;
26963 +}
26964 +
26965 +/*!
26966 + * 'dads' and 'locs' input parameters have the same number of elements
26967 + * \param [in] mesh is \b NOT the global mesh, but the possibly reduced mesh. \a mesh parameter will be directly aggregated in the returned field
26968 + */
26969 +MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField(TypeOfField type, const MEDFileFieldGlobsReal *glob,
26970 +                                                         const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs,
26971 +                                                         const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
26972 +{
26973 +  isPfl=false;
26974 +  MCAuto<MEDCouplingFieldDouble> ret=MEDCouplingFieldDouble::New(type,ONE_TIME);
26975 +  ret->setMesh(mesh); ret->setName(nasc.getName().c_str()); ret->setTime(getTime(),getIteration(),getOrder()); ret->setTimeUnit(nasc.getDtUnit().c_str());
26976 +  MCAuto<DataArray> da=getOrCreateAndGetArray()->selectByTupleRanges(dads);
26977 +  const std::vector<std::string>& infos=getInfo();
26978 +  da->setInfoOnComponents(infos);
26979 +  da->setName("");
26980 +  if(type==ON_GAUSS_PT)
26981 +    {
26982 +      int offset=0;
26983 +      int nbOfArrs=dads.size();
26984 +      for(int i=0;i<nbOfArrs;i++)
26985 +        {
26986 +          std::vector<std::pair<int,int> > dads2(1,dads[i]); const std::vector<int> locs2(1,locs[i]);
26987 +          const std::vector<INTERP_KERNEL::NormalizedCellType> geoTypes2(1,INTERP_KERNEL::NORM_ERROR);
26988 +          int nbOfElems=ComputeNbOfElems(glob,type,geoTypes2,dads2,locs2);
26989 +          MCAuto<DataArrayInt> di=DataArrayInt::New();
26990 +          di->alloc(nbOfElems,1);
26991 +          di->iota(offset);
26992 +          const MEDFileFieldLoc& fl=glob->getLocalizationFromId(locs[i]);
26993 +          ret->setGaussLocalizationOnCells(di->getConstPointer(),di->getConstPointer()+nbOfElems,fl.getRefCoords(),fl.getGaussCoords(),fl.getGaussWeights());
26994 +          offset+=nbOfElems;
26995 +        }
26996 +    }
26997 +  arrOut=da;
26998 +  return ret.retn();
26999 +}
27000 +
27001 +/*!
27002 + * This method is an extension of MEDFileFieldPerMesh::finishField method. It deals with profiles. This method should be called when type is different from ON_NODES.
27003 + * 'dads', 'locs' and 'geoTypes' input parameters have the same number of elements.
27004 + * No check of this is performed. 'da' array contains an array in old2New style to be applyied to mesh to obtain the right support.
27005 + * The order of cells in the returned field is those imposed by the profile.
27006 + * \param [in] mesh is the global mesh.
27007 + */
27008 +MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField2(TypeOfField type, const MEDFileFieldGlobsReal *glob,
27009 +                                                          const std::vector<std::pair<int,int> >& dads, const std::vector<int>& locs,
27010 +                                                          const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes,
27011 +                                                          const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
27012 +{
27013 +  if(da->isIota(mesh->getNumberOfCells()))
27014 +    return finishField(type,glob,dads,locs,mesh,isPfl,arrOut,nasc);
27015 +  MCAuto<MEDCouplingMesh> m2=mesh->buildPart(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
27016 +  m2->setName(mesh->getName().c_str());
27017 +  MCAuto<MEDCouplingFieldDouble> ret=finishField(type,glob,dads,locs,m2,isPfl,arrOut,nasc);
27018 +  isPfl=true;
27019 +  return ret.retn();
27020 +}
27021 +
27022 +/*!
27023 + * This method is the complement of MEDFileFieldPerMesh::finishField2 method except that this method works for node profiles.
27024 + */
27025 +MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishFieldNode2(const MEDFileFieldGlobsReal *glob,
27026 +                                                              const std::vector<std::pair<int,int> >& dads, const std::vector<int>& locs,
27027 +                                                              const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray>& arrOut, const MEDFileFieldNameScope& nasc) const
27028 +{
27029 +  if(da->isIota(mesh->getNumberOfNodes()))
27030 +    return finishField(ON_NODES,glob,dads,locs,mesh,isPfl,arrOut,nasc);
27031 +  // Treatment of particular case where nodal field on pfl is requested with a meshDimRelToMax=1.
27032 +  const MEDCouplingUMesh *meshu=dynamic_cast<const MEDCouplingUMesh *>(mesh);
27033 +  if(meshu)
27034 +    {
27035 +      if(meshu->getNodalConnectivity()==0)
27036 +        {
27037 +          MCAuto<MEDCouplingFieldDouble> ret=finishField(ON_CELLS,glob,dads,locs,mesh,isPfl,arrOut,nasc);
27038 +          int nb=da->getNbOfElems();
27039 +          const int *ptr=da->getConstPointer();
27040 +          MEDCouplingUMesh *meshuc=const_cast<MEDCouplingUMesh *>(meshu);
27041 +          meshuc->allocateCells(nb);
27042 +          for(int i=0;i<nb;i++)
27043 +            meshuc->insertNextCell(INTERP_KERNEL::NORM_POINT1,1,ptr+i);
27044 +          meshuc->finishInsertingCells();
27045 +          ret->setMesh(meshuc);
27046 +          const MEDCouplingFieldDiscretization *disc=ret->getDiscretization();
27047 +          if(!disc) throw INTERP_KERNEL::Exception("MEDFileFieldPerMesh::finishFieldNode2 : internal error, no discretization on field !");
27048 +          disc->checkCoherencyBetween(meshuc,arrOut);
27049 +          return ret.retn();
27050 +        }
27051 +    }
27052 +  //
27053 +  MCAuto<MEDCouplingFieldDouble> ret=finishField(ON_NODES,glob,dads,locs,mesh,isPfl,arrOut,nasc);
27054 +  isPfl=true;
27055 +  DataArrayInt *arr2=0;
27056 +  MCAuto<DataArrayInt> cellIds=mesh->getCellIdsFullyIncludedInNodeIds(da->getConstPointer(),da->getConstPointer()+da->getNbOfElems());
27057 +  MCAuto<MEDCouplingMesh> mesh2=mesh->buildPartAndReduceNodes(cellIds->getConstPointer(),cellIds->getConstPointer()+cellIds->getNbOfElems(),arr2);
27058 +  MCAuto<DataArrayInt> arr3(arr2);
27059 +  int nnodes=mesh2->getNumberOfNodes();
27060 +  if(nnodes==(int)da->getNbOfElems())
27061 +    {
27062 +      MCAuto<DataArrayInt> da3=da->transformWithIndArrR(arr2->begin(),arr2->end());
27063 +      arrOut->renumberInPlace(da3->getConstPointer());
27064 +      mesh2->setName(mesh->getName().c_str());
27065 +      ret->setMesh(mesh2);
27066 +      return ret.retn();
27067 +    }
27068 +  else
27069 +    {
27070 +      std::ostringstream oss; oss << "MEDFileFieldPerMesh::finishFieldNode2 : The field on nodes lies on a node profile so that it is impossible to find a submesh having exactly the same nodes of that profile !!!";
27071 +      oss << "So it is impossible to return a well definied MEDCouplingFieldDouble instance on specified mesh on a specified meshDim !" << std::endl;
27072 +      oss << "To retrieve correctly such a field you have 3 possibilities :" << std::endl;
27073 +      oss << " - use an another meshDim compatible with the field on nodes (MED file does not have such information)" << std::endl;
27074 +      oss << " - use an another a meshDimRelToMax equal to 1 -> it will return a mesh with artificial cell POINT1 containing the profile !" << std::endl;
27075 +      oss << " - if definitely the node profile has no link with mesh connectivity use MEDFileField1TS::getFieldWithProfile or MEDFileFieldMultiTS::getFieldWithProfile methods instead !";
27076 +      throw INTERP_KERNEL::Exception(oss.str());
27077 +    }
27078 +  return 0;
27079 +}
27080 +
27081 +/*!
27082 + * This method is the most light method of field retrieving.
27083 + */
27084 +DataArray *MEDFileFieldPerMesh::finishField4(const std::vector<std::pair<int,int> >& dads, const DataArrayInt *pflIn, int nbOfElems, DataArrayInt *&pflOut) const
27085 +{
27086 +  if(!pflIn)
27087 +    {
27088 +      pflOut=DataArrayInt::New();
27089 +      pflOut->alloc(nbOfElems,1);
27090 +      pflOut->iota(0);
27091 +    }
27092 +  else
27093 +    {
27094 +      pflOut=const_cast<DataArrayInt*>(pflIn);
27095 +      pflOut->incrRef();
27096 +    }
27097 +  MCAuto<DataArrayInt> safePfl(pflOut);
27098 +  MCAuto<DataArray> da=getOrCreateAndGetArray()->selectByTupleRanges(dads);
27099 +  const std::vector<std::string>& infos=getInfo();
27100 +  int nbOfComp=infos.size();
27101 +  for(int i=0;i<nbOfComp;i++)
27102 +    da->setInfoOnComponent(i,infos[i].c_str());
27103 +  safePfl->incrRef();
27104 +  return da.retn();
27105 +}
27106 +
27107 +
27108 +/// @cond INTERNAL
27109 +
27110 +class MFFPMIter
27111 +{
27112 +public:
27113 +  static MFFPMIter *NewCell(const MEDFileEntities *entities);
27114 +  static bool IsPresenceOfNode(const MEDFileEntities *entities);
27115 +  virtual ~MFFPMIter() { }
27116 +  virtual void begin() = 0;
27117 +  virtual bool finished() const = 0;
27118 +  virtual void next() = 0;
27119 +  virtual int current() const = 0;
27120 +};
27121 +
27122 +class MFFPMIterSimple : public MFFPMIter
27123 +{
27124 +public:
27125 +  MFFPMIterSimple():_pos(0) { }
27126 +  void begin() { _pos=0; }
27127 +  bool finished() const { return _pos>=MED_N_CELL_FIXED_GEO; }
27128 +  void next() { _pos++; }
27129 +  int current() const { return _pos; }
27130 +private:
27131 +  int _pos;
27132 +};
27133 +
27134 +class MFFPMIter2 : public MFFPMIter
27135 +{
27136 +public:
27137 +  MFFPMIter2(const std::vector<INTERP_KERNEL::NormalizedCellType>& cts);
27138 +  void begin() { _it=_ids.begin(); }
27139 +  bool finished() const { return _it==_ids.end(); }
27140 +  void next() { _it++; }
27141 +  int current() const { return *_it; }
27142 +private:
27143 +  std::vector<int> _ids;
27144 +  std::vector<int>::const_iterator _it;
27145 +};
27146 +
27147 +MFFPMIter *MFFPMIter::NewCell(const MEDFileEntities *entities)
27148 +{
27149 +  if(!entities)
27150 +    return new MFFPMIterSimple;
27151 +  else
27152 +    {
27153 +      const MEDFileStaticEntities *entities2(dynamic_cast<const MEDFileStaticEntities *>(entities));
27154 +      if(entities2)
27155 +        {
27156 +          std::vector<INTERP_KERNEL::NormalizedCellType> tmp;
27157 +          const std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >& myEnt(entities2->getEntries());
27158 +          for(std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >::const_iterator it=myEnt.begin();it!=myEnt.end();it++)
27159 +            {
27160 +              if((*it).first==ON_CELLS || (*it).first==ON_GAUSS_NE || (*it).first==ON_GAUSS_PT)
27161 +                tmp.push_back((*it).second);
27162 +            }
27163 +          return new MFFPMIter2(tmp);
27164 +        }
27165 +      return new MFFPMIterSimple;// for MEDFileAllStaticEntites and MEDFileAllStaticEntitiesPlusDyn cells are in
27166 +    }
27167 +}
27168 +
27169 +bool MFFPMIter::IsPresenceOfNode(const MEDFileEntities *entities)
27170 +{
27171 +  if(!entities)
27172 +    return true;
27173 +  else
27174 +    {
27175 +      const MEDFileStaticEntities *entities2(dynamic_cast<const MEDFileStaticEntities *>(entities));
27176 +      if(entities2)
27177 +        {
27178 +          const std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >& myEnt(entities2->getEntries());
27179 +          for(std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >::const_iterator it=myEnt.begin();it!=myEnt.end();it++)
27180 +            if((*it).first==ON_NODES)
27181 +              return true;
27182 +          return false;
27183 +        }
27184 +      return true;// for MEDFileAllStaticEntites and MEDFileAllStaticEntitiesPlusDyn nodes are in
27185 +    }
27186 +}
27187 +
27188 +MFFPMIter2::MFFPMIter2(const std::vector<INTERP_KERNEL::NormalizedCellType>& cts)
27189 +{
27190 +  std::size_t sz(cts.size());
27191 +  _ids.resize(sz);
27192 +  for(std::size_t i=0;i<sz;i++)
27193 +    {
27194 +      INTERP_KERNEL::NormalizedCellType *loc(std::find(typmai2,typmai2+MED_N_CELL_FIXED_GEO,cts[i]));
27195 +      if(loc!=typmai2+MED_N_CELL_FIXED_GEO)
27196 +        _ids[i]=(int)std::distance(typmai2,loc);
27197 +      else
27198 +        throw INTERP_KERNEL::Exception("MFFPMIter2 : The specified geo type does not exists !");
27199 +    }
27200 +}
27201 +
27202 +/// @endcond
27203 +
27204 +MEDFileFieldPerMesh::MEDFileFieldPerMesh(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities):_mesh_iteration(meshIteration),_mesh_order(meshOrder),
27205 +    _father(fath)
27206 +{
27207 +  INTERP_KERNEL::AutoPtr<char> meshName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
27208 +  INTERP_KERNEL::AutoPtr<char> pflName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
27209 +  INTERP_KERNEL::AutoPtr<char> locName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE));
27210 +  const MEDFileUMesh *mmu(dynamic_cast<const MEDFileUMesh *>(mm));
27211 +  INTERP_KERNEL::AutoCppPtr<MFFPMIter> iter0(MFFPMIter::NewCell(entities));
27212 +  for(iter0->begin();!iter0->finished();iter0->next())
27213 +    {
27214 +      int nbProfile (MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_CELL        ,typmai[iter0->current()],meshCsit+1,meshName,pflName,locName));
27215 +      std::string name0(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE+1));
27216 +      int nbProfile2(MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_NODE_ELEMENT,typmai[iter0->current()],meshCsit+1,meshName,pflName,locName));
27217 +      std::string name1(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE+1));
27218 +      if(nbProfile>0 || nbProfile2>0)
27219 +        {
27220 +          const PartDefinition *pd(0);
27221 +          if(mmu)
27222 +            pd=mmu->getPartDefAtLevel(mmu->getRelativeLevOnGeoType(typmai2[iter0->current()]),typmai2[iter0->current()]);
27223 +          _field_pm_pt.push_back(MEDFileFieldPerMeshPerType::NewOnRead(fid,this,ON_CELLS,typmai2[iter0->current()],nasc,pd));
27224 +          if(nbProfile>0)
27225 +            setMeshName(name0);
27226 +          else
27227 +            setMeshName(name1);
27228 +        }
27229 +    }
27230 +  if(MFFPMIter::IsPresenceOfNode(entities))
27231 +    {
27232 +      int nbProfile(MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_NODE,MED_NONE,meshCsit+1,meshName,pflName,locName));
27233 +      if(nbProfile>0)
27234 +        {
27235 +          const PartDefinition *pd(0);
27236 +          if(mmu)
27237 +            pd=mmu->getPartDefAtLevel(1,INTERP_KERNEL::NORM_ERROR);
27238 +          _field_pm_pt.push_back(MEDFileFieldPerMeshPerType::NewOnRead(fid,this,ON_NODES,INTERP_KERNEL::NORM_ERROR,nasc,pd));
27239 +          setMeshName(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE));
27240 +        }
27241 +    }
27242 +  if(!entities)
27243 +    return ;
27244 +  std::vector<int> dynGT(entities->getDynGTAvail());
27245 +  for(std::vector<int>::const_iterator it=dynGT.begin();it!=dynGT.end();it++)
27246 +    {
27247 +      int nbPfl(MEDfieldnProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_STRUCT_ELEMENT,*it,pflName,locName));
27248 +      if(nbPfl>0)
27249 +        {
27250 +          _field_pm_pt.push_back(MEDFileFieldPerMeshPerTypeDyn::NewOnRead(fid,this,entities,*it,nasc));
27251 +          setMeshName(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE));
27252 +        }
27253 +    }
27254 +  if(!_field_pm_pt.empty())
27255 +    return;
27256 +  //for vicious users using MED_ARETE MED_FACE in fields. the last try. For Others not overhead to pay.
27257 +  iter0=MFFPMIter::NewCell(entities);
27258 +  for(iter0->begin();!iter0->finished();iter0->next())
27259 +    {
27260 +      int nbProfile (MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_DESCENDING_FACE,typmai[iter0->current()],meshCsit+1,meshName,pflName,locName));
27261 +      std::string name0(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE+1));
27262 +      int nbProfile2(MEDfield23nProfile(fid,nasc.getName().c_str(),getIteration(),getOrder(),MED_DESCENDING_EDGE,typmai[iter0->current()],meshCsit+1,meshName,pflName,locName));
27263 +      std::string name1(MEDLoaderBase::buildStringFromFortran(meshName,MED_NAME_SIZE+1));
27264 +      if(nbProfile>0 || nbProfile2>0)
27265 +        {
27266 +          _field_pm_pt.push_back(MEDFileFieldPerMeshPerType::NewOnRead(fid,this,ON_CELLS,typmai2[iter0->current()],nasc,NULL));
27267 +          if(nbProfile>0)
27268 +            setMeshName(name0);
27269 +          else
27270 +            setMeshName(name1);
27271 +        }
27272 +    }
27273 +}
27274 +
27275 +MEDFileFieldPerMesh::MEDFileFieldPerMesh(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh):_father(fath)
27276 +{
27277 +  copyTinyInfoFrom(mesh);
27278 +}
27279 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldInternal.hxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldInternal.hxx
27280 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldInternal.hxx      1970-01-01 01:00:00.000000000 +0100
27281 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldInternal.hxx      2018-04-19 17:25:17.859799768 +0200
27282 @@ -0,0 +1,416 @@
27283 +// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
27284 +//
27285 +// This library is free software; you can redistribute it and/or
27286 +// modify it under the terms of the GNU Lesser General Public
27287 +// License as published by the Free Software Foundation; either
27288 +// version 2.1 of the License, or (at your option) any later version.
27289 +//
27290 +// This library is distributed in the hope that it will be useful,
27291 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
27292 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
27293 +// Lesser General Public License for more details.
27294 +//
27295 +// You should have received a copy of the GNU Lesser General Public
27296 +// License along with this library; if not, write to the Free Software
27297 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
27298 +//
27299 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
27300 +//
27301 +// Author : Anthony Geay (EDF R&D)
27302 +
27303 +#ifndef __MEDFILEFIELDINTERNAL_HXX__
27304 +#define __MEDFILEFIELDINTERNAL_HXX__
27305 +
27306 +#include "MEDLoaderDefines.hxx"
27307 +#include "MEDFileUtilities.hxx"
27308 +#include "NormalizedGeometricTypes"
27309 +#include "InterpKernelAutoPtr.hxx"
27310 +#include "MCAuto.hxx"
27311 +
27312 +#include "med.h"
27313 +
27314 +#include <string>
27315 +#include <list>
27316 +
27317 +namespace MEDCoupling
27318 +{
27319 +  class MEDFileGTKeeper
27320 +  {
27321 +  public:
27322 +    virtual MEDFileGTKeeper *deepCopy() const = 0;
27323 +    virtual INTERP_KERNEL::NormalizedCellType getGeoType() const = 0;
27324 +    virtual std::string getRepr() const = 0;
27325 +    virtual bool isEqual(const MEDFileGTKeeper *other) const = 0;
27326 +    virtual ~MEDFileGTKeeper();
27327 +  };
27328 +
27329 +  class MEDFileGTKeeperSta : public MEDFileGTKeeper
27330 +  {
27331 +  public:
27332 +    MEDFileGTKeeperSta(INTERP_KERNEL::NormalizedCellType gt):_geo_type(gt) { }
27333 +    MEDFileGTKeeper *deepCopy() const;
27334 +    INTERP_KERNEL::NormalizedCellType getGeoType() const;
27335 +    std::string getRepr() const;
27336 +    bool isEqual(const MEDFileGTKeeper *other) const;
27337 +  private:
27338 +    INTERP_KERNEL::NormalizedCellType _geo_type;
27339 +  };
27340 +
27341 +  
27342 +  class MEDFileStructureElement;
27343 +  class MEDFileUMesh;
27344 +  
27345 +  class MEDFileGTKeeperDyn : public MEDFileGTKeeper
27346 +  {
27347 +  public:
27348 +    MEDFileGTKeeperDyn(const MEDFileUMesh *mesh, const MEDFileUMesh *section, const MEDFileStructureElement *se);
27349 +    MEDFileGTKeeper *deepCopy() const;
27350 +    INTERP_KERNEL::NormalizedCellType getGeoType() const;
27351 +    std::string getRepr() const;
27352 +    bool isEqual(const MEDFileGTKeeper *other) const;
27353 +    const MEDFileUMesh *getMesh() const { return _mesh; }
27354 +    const MEDFileUMesh *getSection() const { return _section; }
27355 +    const MEDFileStructureElement *getSE() const { return _se; }
27356 +  private:
27357 +    MCConstAuto<MEDFileUMesh> _mesh;
27358 +    MCConstAuto<MEDFileUMesh> _section;
27359 +    MCConstAuto<MEDFileStructureElement> _se;
27360 +  };
27361 +
27362 +  class MEDFileEntities;
27363 +  
27364 +  class MEDFileFieldLoc : public RefCountObject
27365 +  {
27366 +  public:
27367 +    MEDLOADER_EXPORT void simpleRepr(std::ostream& oss) const;
27368 +    MEDLOADER_EXPORT std::string getName() const { return _name; }
27369 +    MEDLOADER_EXPORT void setName(const std::string& name);
27370 +    static MEDFileFieldLoc *New(med_idt fid, const std::string& locName);
27371 +    static MEDFileFieldLoc *New(med_idt fid, int i, const MEDFileEntities *entities);
27372 +    static MEDFileFieldLoc *New(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
27373 +    std::size_t getHeapMemorySizeWithoutChildren() const;
27374 +    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
27375 +    MEDFileFieldLoc *deepCopy() const;
27376 +    bool isOnStructureElement() const;
27377 +    const MEDFileGTKeeper *getUndergroundGTKeeper() const { return _gt; }
27378 +    MEDLOADER_EXPORT int getNbOfGaussPtPerCell() const { return _nb_gauss_pt; }
27379 +    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
27380 +    MEDLOADER_EXPORT std::string repr() const;
27381 +    MEDLOADER_EXPORT bool isName(const std::string& name) const { return _name==name; }
27382 +    MEDLOADER_EXPORT int getDimension() const { return _dim; }
27383 +    MEDLOADER_EXPORT int getNumberOfGaussPoints() const { return _nb_gauss_pt; }
27384 +    MEDLOADER_EXPORT int getNumberOfPointsInCells() const { return _nb_node_per_cell; }
27385 +    MEDLOADER_EXPORT const std::vector<double>& getRefCoords() const { return _ref_coo; }
27386 +    MEDLOADER_EXPORT const std::vector<double>& getGaussCoords() const { return _gs_coo; }
27387 +    MEDLOADER_EXPORT const std::vector<double>& getGaussWeights() const { return _w; }
27388 +    MEDLOADER_EXPORT INTERP_KERNEL::NormalizedCellType getGeoType() const { return _gt->getGeoType(); }
27389 +    MEDLOADER_EXPORT bool isEqual(const MEDFileFieldLoc& other, double eps) const;
27390 +  private:
27391 +    MEDFileFieldLoc(const MEDFileFieldLoc& other);
27392 +    MEDFileFieldLoc(med_idt fid, const std::string& locName);
27393 +    MEDFileFieldLoc(med_idt fid, int id, const MEDFileEntities *entities);
27394 +    MEDFileFieldLoc(const std::string& locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector<double>& refCoo, const std::vector<double>& gsCoo, const std::vector<double>& w);
27395 +  private:
27396 +    int _dim;
27397 +    int _nb_gauss_pt;
27398 +    INTERP_KERNEL::AutoCppPtr<MEDFileGTKeeper> _gt;
27399 +    int _nb_node_per_cell;
27400 +    std::string _name;
27401 +    std::vector<double> _ref_coo;
27402 +    std::vector<double> _gs_coo;
27403 +    std::vector<double> _w;
27404 +  };
27405 +
27406 +  /// @cond INTERNAL
27407 +  class MEDFileFieldPerMeshPerTypeCommon;
27408 +  class MEDFileFieldPerMeshPerType;
27409 +  class MEDCouplingFieldTemplate;
27410 +  class MEDFileFieldNameScope;
27411 +  class MEDFileFieldGlobsReal;
27412 +  class MEDCouplingMesh;
27413 +  
27414 +  class MEDFileFieldPerMeshPerTypePerDisc : public RefCountObject, public MEDFileWritable
27415 +  {
27416 +  public:
27417 +    static MEDFileFieldPerMeshPerTypePerDisc *NewOnRead(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const PartDefinition *pd);
27418 +    static MEDFileFieldPerMeshPerTypePerDisc *New(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int locId);
27419 +    static MEDFileFieldPerMeshPerTypePerDisc *New(const MEDFileFieldPerMeshPerTypePerDisc& other);
27420 +    std::size_t getHeapMemorySizeWithoutChildren() const;
27421 +    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
27422 +    MEDFileFieldPerMeshPerTypePerDisc *deepCopy(MEDFileFieldPerMeshPerTypeCommon *father) const;
27423 +    void assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27424 +    void assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arrr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27425 +    void assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arrr, MEDFileFieldGlobsReal& glob);
27426 +    void getCoarseData(TypeOfField& type, std::pair<int,int>& dad, std::string& pfl, std::string& loc) const;
27427 +    void writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const;
27428 +    const MEDFileFieldPerMeshPerTypeCommon *getFather() const;
27429 +    void loadOnlyStructureOfDataRecursively(med_idt fid, int& start, const MEDFileFieldNameScope& nasc);
27430 +    void loadBigArray(med_idt fid, const MEDFileFieldNameScope& nasc);
27431 +    void setNewStart(int newValueOfStart);
27432 +    int getIteration() const;
27433 +    int getOrder() const;
27434 +    double getTime() const;
27435 +    std::string getMeshName() const;
27436 +    TypeOfField getType() const;
27437 +    void simpleRepr(int bkOffset, std::ostream& oss, int id) const;
27438 +    void fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const;
27439 +    void setType(TypeOfField newType);
27440 +    INTERP_KERNEL::NormalizedCellType getGeoType() const;
27441 +    int getNumberOfComponents() const;
27442 +    int getNumberOfTuples() const;
27443 +    int getStart() const { return _start; }
27444 +    int getEnd() const { return _end; }
27445 +    void setEnd(int endd) { _end=endd; }
27446 +    int getNumberOfVals() const { return _nval; }
27447 +    void incrementNbOfVals(int deltaNbVal);
27448 +    DataArray *getOrCreateAndGetArray();
27449 +    const DataArray *getOrCreateAndGetArray() const;
27450 +    const std::vector<std::string>& getInfo() const;
27451 +    std::string getProfile() const;
27452 +    void setProfile(const std::string& newPflName);
27453 +    std::string getLocalization() const;
27454 +    void setLocalization(const std::string& newLocName);
27455 +    int getLocId() const { return _loc_id; }
27456 +    void setLocId(int newId) const { _loc_id=newId; }
27457 +    void setFather(MEDFileFieldPerMeshPerTypeCommon *newFather) { _father=newFather; }
27458 +    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
27459 +    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
27460 +    void getFieldAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs,
27461 +                         std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
27462 +    void fillValues(int discId, int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
27463 +    int fillEltIdsFromCode(int offset, const std::vector<int>& codeOfMesh, const MEDFileFieldGlobsReal& glob, int *ptToFill) const;
27464 +    int fillTupleIds(int *ptToFill) const;
27465 +    static int ConvertType(TypeOfField type, int locId);
27466 +    static std::vector< std::vector< const MEDFileFieldPerMeshPerTypePerDisc *> > SplitPerDiscretization(const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entries);
27467 +    static bool RenumberChunks(int offset, const std::vector< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
27468 +                               const DataArrayInt *explicitIdsInMesh, const std::vector<int>& newCode,
27469 +                               MEDFileFieldGlobsReal& glob, DataArrayDouble *arr, std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> >& result);
27470 +    static MEDFileFieldPerMeshPerTypePerDisc *NewObjectOnSameDiscThanPool(TypeOfField typeF, INTERP_KERNEL::NormalizedCellType geoType, DataArrayInt *idsOfMeshElt,
27471 +                                                                          bool isPfl, int nbi, int offset, std::list< const MEDFileFieldPerMeshPerTypePerDisc *>& entriesOnSameDisc,
27472 +                                                                          MEDFileFieldGlobsReal& glob, bool &notInExisting);
27473 +    static MCAuto<MEDFileFieldPerMeshPerTypePerDisc> Aggregate(int &start, const std::vector<std::pair<int,const MEDFileFieldPerMeshPerTypePerDisc *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, TypeOfField tof, MEDFileFieldPerMeshPerType *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo);
27474 +    MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type):_type(type),_father(fath),_start(-1),_end(-1),_nval(-1),_loc_id(-5),_profile_it(-1) { }
27475 +  private:
27476 +    MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const PartDefinition *pd);
27477 +    MEDFileFieldPerMeshPerTypePerDisc(MEDFileFieldPerMeshPerTypeCommon *fath, TypeOfField type, int profileIt, const std::string& dummy);
27478 +    MEDFileFieldPerMeshPerTypePerDisc(const MEDFileFieldPerMeshPerTypePerDisc& other);
27479 +    MEDFileFieldPerMeshPerTypePerDisc();
27480 +  private:
27481 +    void goReadZeValuesInFile(med_idt fid, const std::string& fieldName, int nbOfCompo, int iteration, int order, med_entity_type menti, med_geometry_type mgeoti, unsigned char *startFeedingPtr);
27482 +  private:
27483 +    TypeOfField _type;
27484 +    MEDFileFieldPerMeshPerTypeCommon *_father;
27485 +    int _start;
27486 +    int _end;
27487 +    //! _nval is different than end-start in case of ON_GAUSS_PT and ON_GAUSS_NE ! (_nval=(_end-_start)/nbi)
27488 +    int _nval;
27489 +    std::string _profile;
27490 +    std::string _localization;
27491 +    //! only on assignment -3 : ON_NODES, -2 : ON_CELLS, -1 : ON_GAUSS_NE, 0..* : ON_GAUSS_PT
27492 +    mutable int _loc_id;
27493 +    mutable int _profile_it;
27494 +    MCAuto<PartDefinition> _pd;
27495 +  public:
27496 +    mutable int _tmp_work1;
27497 +  };
27498 +
27499 +  class MEDFileFieldVisitor;
27500 +  class MEDFileFieldPerMesh;
27501 +  
27502 +  class MEDFileFieldPerMeshPerTypeCommon : public RefCountObject, public MEDFileWritable
27503 +  {
27504 +  public:
27505 +    std::size_t getHeapMemorySizeWithoutChildren() const;
27506 +    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
27507 +    void assignFieldNoProfile(int& start, int offset, int nbOfCells, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27508 +    void assignFieldProfile(bool isPflAlone, int& start, const DataArrayInt *multiTypePfl, const DataArrayInt *idsInPfl, DataArrayInt *locIds, int nbOfEltsInWholeMesh, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27509 +    void assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob);
27510 +    void assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27511 +    const MEDFileFieldPerMesh *getFather() const;
27512 +    void loadOnlyStructureOfDataRecursively(med_idt fid, int &start, const MEDFileFieldNameScope& nasc);
27513 +    void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
27514 +    void writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const;
27515 +    bool isUniqueLevel(int& dim) const;
27516 +    void fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const;
27517 +    void fillFieldSplitedByType(std::vector< std::pair<int,int> >& dads, std::vector<TypeOfField>& types, std::vector<std::string>& pfls, std::vector<std::string>& locs) const;
27518 +    int getIteration() const;
27519 +    int getOrder() const;
27520 +    double getTime() const;
27521 +    std::string getMeshName() const;
27522 +    void getSizes(int& globalSz, int& nbOfEntries) const;
27523 +    int getNumberOfComponents() const;
27524 +    bool presenceOfMultiDiscPerGeoType() const;
27525 +    void pushDiscretization(MEDFileFieldPerMeshPerTypePerDisc *disc);
27526 +    DataArray *getOrCreateAndGetArray();
27527 +    const DataArray *getOrCreateAndGetArray() const;
27528 +    const std::vector<std::string>& getInfo() const;
27529 +    std::vector<std::string> getPflsReallyUsed() const;
27530 +    std::vector<std::string> getLocsReallyUsed() const;
27531 +    std::vector<std::string> getPflsReallyUsedMulti() const;
27532 +    std::vector<std::string> getLocsReallyUsedMulti() const;
27533 +    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
27534 +    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
27535 +    MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId);
27536 +    const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId) const;
27537 +    int getNumberOfLoc() const { return _field_pm_pt_pd.size(); }
27538 +    int locIdOfLeaf(const MEDFileFieldPerMeshPerTypePerDisc *leaf) const;
27539 +    void fillValues(int& startEntryId, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
27540 +    void setLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves);
27541 +    bool keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its);
27542 +    bool keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its);
27543 +    static med_entity_type ConvertIntoMEDFileType(TypeOfField ikType, INTERP_KERNEL::NormalizedCellType ikGeoType, med_geometry_type& medfGeoType);
27544 +    MEDFileFieldPerMeshPerTypeCommon(MEDFileFieldPerMesh *father):_father(father) { }
27545 +    void setFather(MEDFileFieldPerMesh *father);
27546 +    void accept(MEDFileFieldVisitor& visitor) const;
27547 +  public:
27548 +    virtual ~MEDFileFieldPerMeshPerTypeCommon();
27549 +    virtual void getDimension(int& dim) const = 0;
27550 +    virtual INTERP_KERNEL::NormalizedCellType getGeoType() const = 0;
27551 +    virtual void entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const = 0;
27552 +    virtual void simpleRepr(int bkOffset, std::ostream& oss, int id) const = 0;
27553 +    virtual std::string getGeoTypeRepr() const = 0;
27554 +    virtual MEDFileFieldPerMeshPerTypeCommon *deepCopy(MEDFileFieldPerMesh *father) const = 0;
27555 +    virtual void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const = 0;
27556 +  protected:
27557 +    void deepCopyElements();
27558 +    std::vector<int> addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells);
27559 +    std::vector<int> addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, int offset, int nbOfCells);
27560 +    std::vector<int> addNewEntryIfNecessary(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells);
27561 +    std::vector<int> addNewEntryIfNecessaryGauss(const MEDCouplingFieldTemplate *field, const DataArrayInt *subCells);
27562 +  private:
27563 +    MEDFileFieldPerMesh *_father;
27564 +  protected:
27565 +    std::vector< MCAuto<MEDFileFieldPerMeshPerTypePerDisc> > _field_pm_pt_pd;
27566 +  };
27567 +
27568 +  class MEDFileFieldPerMeshPerType : public MEDFileFieldPerMeshPerTypeCommon
27569 +  {
27570 +  public:
27571 +    static MEDFileFieldPerMeshPerType *New(MEDFileFieldPerMesh *fath, INTERP_KERNEL::NormalizedCellType geoType);
27572 +    static MEDFileFieldPerMeshPerType *NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd);
27573 +    static MCAuto<MEDFileFieldPerMeshPerType> Aggregate(int &start, const std::vector< std::pair<int,const MEDFileFieldPerMeshPerType *> >& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, INTERP_KERNEL::NormalizedCellType gt, MEDFileFieldPerMesh *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo);
27574 +  public:// overload of abstract methods
27575 +    void getDimension(int& dim) const;
27576 +    INTERP_KERNEL::NormalizedCellType getGeoType() const;
27577 +    void entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const;
27578 +    void simpleRepr(int bkOffset, std::ostream& oss, int id) const;
27579 +    std::string getGeoTypeRepr() const;
27580 +    MEDFileFieldPerMeshPerType *deepCopy(MEDFileFieldPerMesh *father) const;
27581 +    void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
27582 +  private:
27583 +    MEDFileFieldPerMeshPerType(med_idt fid, MEDFileFieldPerMesh *fath, TypeOfField type, INTERP_KERNEL::NormalizedCellType geoType, const MEDFileFieldNameScope& nasc, const PartDefinition *pd);
27584 +    MEDFileFieldPerMeshPerType(MEDFileFieldPerMesh *father, INTERP_KERNEL::NormalizedCellType gt);
27585 +  private:
27586 +    INTERP_KERNEL::NormalizedCellType _geo_type;
27587 +  };
27588 +
27589 +  class MEDFileFieldPerMeshPerTypeDyn : public MEDFileFieldPerMeshPerTypeCommon
27590 +  {
27591 +  public:
27592 +    static MEDFileFieldPerMeshPerTypeDyn *NewOnRead(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileEntities *entities, int idGT, const MEDFileFieldNameScope& nasc);
27593 +    int getDynGT() const;
27594 +    std::string getModelName() const;
27595 +  public:
27596 +    void getDimension(int& dim) const;
27597 +    INTERP_KERNEL::NormalizedCellType getGeoType() const;
27598 +    void entriesForMEDfile(TypeOfField mct, med_geometry_type& gt, med_entity_type& ent) const;
27599 +    void simpleRepr(int bkOffset, std::ostream& oss, int id) const;
27600 +    std::string getGeoTypeRepr() const;
27601 +    MEDFileFieldPerMeshPerTypeDyn *deepCopy(MEDFileFieldPerMesh *father) const;
27602 +    void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFileFieldGlobsReal *glob, std::vector< std::pair<int,int> >& dads, std::vector<const DataArrayInt *>& pfls, std::vector<int>& locs, std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes) const;
27603 +  private:
27604 +    MEDFileFieldPerMeshPerTypeDyn(med_idt fid, MEDFileFieldPerMesh *fath, const MEDFileStructureElement *se, const MEDFileFieldNameScope& nasc);
27605 +  private:
27606 +    MCConstAuto<MEDFileStructureElement> _se;
27607 +  };
27608 +  
27609 +  class MEDFileMesh;
27610 +  class MEDFileAnyTypeField1TSWithoutSDA;
27611 +  class MEDFileField1TSWithoutSDA;
27612 +  
27613 +  class MEDFileFieldPerMesh : public RefCountObject, public MEDFileWritable
27614 +  {
27615 +  public:
27616 +    static MEDFileFieldPerMesh *New(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh);
27617 +    static MEDFileFieldPerMesh *NewOnRead(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities);
27618 +    std::size_t getHeapMemorySizeWithoutChildren() const;
27619 +    std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
27620 +    MEDFileFieldPerMesh *deepCopy(MEDFileAnyTypeField1TSWithoutSDA *father) const;
27621 +    void simpleRepr(int bkOffset,std::ostream& oss, int id) const;
27622 +    void copyTinyInfoFrom(const MEDCouplingMesh *mesh);
27623 +    void assignFieldProfile(int& start, const DataArrayInt *multiTypePfl, const std::vector<int>& code, const std::vector<int>& code2, const std::vector<DataArrayInt *>& idsInPflPerType, const std::vector<DataArrayInt *>& idsPerType, const MEDCouplingFieldTemplate *field, const DataArray *arr, const MEDCouplingMesh *mesh, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27624 +    void assignFieldNoProfileNoRenum(int& start, const std::vector<int>& code, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27625 +    void assignNodeFieldNoProfile(int& start, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob);
27626 +    void assignNodeFieldProfile(int& start, const DataArrayInt *pfl, const MEDCouplingFieldTemplate *field, const DataArray *arr, MEDFileFieldGlobsReal& glob, const MEDFileFieldNameScope& nasc);
27627 +    void loadOnlyStructureOfDataRecursively(med_idt fid, int &start, const MEDFileFieldNameScope& nasc);
27628 +    void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
27629 +    void writeLL(med_idt fid, const MEDFileFieldNameScope& nasc) const;
27630 +    void fillTypesOfFieldAvailable(std::set<TypeOfField>& types) const;
27631 +    std::vector< std::vector< std::pair<int,int> > > getFieldSplitedByType(std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
27632 +    void accept(MEDFileFieldVisitor& visitor) const;
27633 +    void getDimension(int& dim) const;
27634 +    bool isUniqueLevel(int& dim) const;
27635 +    double getTime() const;
27636 +    int getIteration() const;
27637 +    int getOrder() const;
27638 +    int getMeshIteration() const { return _mesh_iteration; }
27639 +    int getMeshOrder() const { return _mesh_order; }
27640 +    std::string getMeshName() const;
27641 +    void setMeshName(const std::string& meshName);
27642 +    int getNumberOfComponents() const;
27643 +    bool presenceOfMultiDiscPerGeoType() const;
27644 +    bool presenceOfStructureElements() const;
27645 +    bool onlyStructureElements() const;
27646 +    void killStructureElements();
27647 +    void keepOnlyStructureElements();
27648 +    void keepOnlyOnSE(const std::string& seName);
27649 +    void getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const;
27650 +    DataArray *getOrCreateAndGetArray();
27651 +    const DataArray *getOrCreateAndGetArray() const;
27652 +    const std::vector<std::string>& getInfo() const;
27653 +    std::vector<std::string> getPflsReallyUsed() const;
27654 +    std::vector<std::string> getLocsReallyUsed() const;
27655 +    std::vector<std::string> getPflsReallyUsedMulti() const;
27656 +    std::vector<std::string> getLocsReallyUsedMulti() const;
27657 +    void convertMedBallIntoClassic();
27658 +    bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
27659 +    bool renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N, MEDFileFieldGlobsReal& glob);
27660 +    void keepOnlySpatialDiscretization(TypeOfField tof, int &globalNum, std::vector< std::pair<int,int> >& its);
27661 +    void keepOnlyGaussDiscretization(std::size_t idOfDisc, int &globalNum, std::vector< std::pair<int,int> >& its);
27662 +    void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
27663 +    void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
27664 +    MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, const MEDFileFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
27665 +    DataArray *getFieldOnMeshAtLevelWithPfl(TypeOfField type, const MEDCouplingMesh *mesh, DataArrayInt *&pfl, const MEDFileFieldGlobsReal *glob, const MEDFileFieldNameScope& nasc) const;
27666 +    void getUndergroundDataArrayExt(std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
27667 +    MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId);
27668 +    const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const;
27669 +    static MCAuto<MEDFileFieldPerMesh> Aggregate(int &start, const std::vector<const MEDFileFieldPerMesh *>& pms, const std::vector< std::vector< std::pair<int,int> > >& dts, MEDFileAnyTypeField1TSWithoutSDA *father, std::vector<std::pair< int, std::pair<int,int> > >& extractInfo);
27670 +  private:
27671 +    int addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type);
27672 +    MEDCouplingFieldDouble *finishField(TypeOfField type, const MEDFileFieldGlobsReal *glob,
27673 +                                        const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs, const MEDCouplingMesh *mesh, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
27674 +    MEDCouplingFieldDouble *finishField2(TypeOfField type, const MEDFileFieldGlobsReal *glob,
27675 +                                         const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs,
27676 +                                         const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes,
27677 +                                         const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
27678 +    MEDCouplingFieldDouble *finishFieldNode2(const MEDFileFieldGlobsReal *glob,
27679 +                                             const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs,
27680 +                                             const MEDCouplingMesh *mesh, const DataArrayInt *da, bool& isPfl, MCAuto<DataArray> &arrOut, const MEDFileFieldNameScope& nasc) const;
27681 +    DataArray *finishField4(const std::vector< std::pair<int,int> >& dads, const DataArrayInt *pflIn, int nbOfElems, DataArrayInt *&pflOut) const;
27682 +    void assignNewLeaves(const std::vector< MCAuto< MEDFileFieldPerMeshPerTypePerDisc > >& leaves);
27683 +    static void SortArraysPerType(const MEDFileFieldGlobsReal *glob, TypeOfField type, 
27684 +                                  const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<const DataArrayInt *>& pfls, const std::vector<int>& locs,
27685 +                                  std::vector<int>& code, std::vector<DataArrayInt *>& notNullPfls);
27686 +    static int ComputeNbOfElems(const MEDFileFieldGlobsReal *glob, TypeOfField type, const std::vector<INTERP_KERNEL::NormalizedCellType>& geoTypes, const std::vector< std::pair<int,int> >& dads, const std::vector<int>& locs);
27687 +    MEDFileFieldPerMesh(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const MEDFileEntities *entities);
27688 +    MEDFileFieldPerMesh(MEDFileAnyTypeField1TSWithoutSDA *fath, const MEDCouplingMesh *mesh);
27689 +    MEDFileFieldPerMesh(MEDFileAnyTypeField1TSWithoutSDA *fath, const std::string& meshName, int meshIt, int meshOrd):_father(fath),_mesh_iteration(meshIt),_mesh_order(meshOrd) { }
27690 +  private:
27691 +    int _mesh_iteration;
27692 +    int _mesh_order;
27693 +    MEDFileAnyTypeField1TSWithoutSDA *_father;
27694 +    std::vector< MCAuto< MEDFileFieldPerMeshPerTypeCommon > > _field_pm_pt;
27695 +  };
27696 +}
27697 +
27698 +#endif
27699 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldMultiTS.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldMultiTS.cxx
27700 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldMultiTS.cxx       1970-01-01 01:00:00.000000000 +0100
27701 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldMultiTS.cxx       2018-04-19 17:25:17.727797159 +0200
27702 @@ -0,0 +1,2137 @@
27703 +// Copyright (C) 2017  CEA/DEN, EDF R&D
27704 +//
27705 +// This library is free software; you can redistribute it and/or
27706 +// modify it under the terms of the GNU Lesser General Public
27707 +// License as published by the Free Software Foundation; either
27708 +// version 2.1 of the License, or (at your option) any later version.
27709 +//
27710 +// This library is distributed in the hope that it will be useful,
27711 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
27712 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
27713 +// Lesser General Public License for more details.
27714 +//
27715 +// You should have received a copy of the GNU Lesser General Public
27716 +// License along with this library; if not, write to the Free Software
27717 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
27718 +//
27719 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
27720 +//
27721 +// Author : Anthony Geay (EDF R&D)
27722 +
27723 +#include "MEDFileFieldMultiTS.hxx"
27724 +#include "MEDFileFieldVisitor.hxx"
27725 +#include "MEDFileSafeCaller.txx"
27726 +#include "MEDLoaderBase.hxx"
27727 +#include "MEDFileField.txx"
27728 +
27729 +#include "MEDCouplingFieldDouble.hxx"
27730 +#include "MEDCouplingFieldTemplate.hxx"
27731 +
27732 +#include <sstream>
27733 +
27734 +using namespace MEDCoupling;
27735 +
27736 +template class MEDCoupling::MEDFileTemplateFieldMultiTSWithoutSDA<int>;
27737 +template class MEDCoupling::MEDFileTemplateFieldMultiTSWithoutSDA<float>;
27738 +template class MEDCoupling::MEDFileTemplateFieldMultiTSWithoutSDA<double>;
27739 +template class MEDCoupling::MEDFileNDTemplateFieldMultiTSWithoutSDA<int>;
27740 +template class MEDCoupling::MEDFileNDTemplateFieldMultiTSWithoutSDA<float>;
27741 +template class MEDCoupling::MEDFileTemplateFieldMultiTS<int>;
27742 +template class MEDCoupling::MEDFileTemplateFieldMultiTS<float>;
27743 +template class MEDCoupling::MEDFileTemplateFieldMultiTS<double>;
27744 +template class MEDCoupling::MEDFileNDTemplateFieldMultiTS<int>;
27745 +template class MEDCoupling::MEDFileNDTemplateFieldMultiTS<float>;
27746 +
27747 +//= MEDFileAnyTypeFieldMultiTSWithoutSDA
27748 +
27749 +MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA()
27750 +{
27751 +}
27752 +
27753 +MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileFieldNameScope(fieldName,meshName)
27754 +{
27755 +}
27756 +
27757 +/*!
27758 + * \param [in] fieldId field id in C mode
27759 + */
27760 +MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
27761 +{
27762 +  med_field_type typcha;
27763 +  std::string dtunitOut,meshName;
27764 +  int nbOfStep(MEDFileAnyTypeField1TS::LocateField2(fid,fieldId,false,_name,typcha,_infos,dtunitOut,meshName));
27765 +  setMeshName(meshName);
27766 +  setDtUnit(dtunitOut.c_str());
27767 +  loadStructureOrStructureAndBigArraysRecursively(fid,nbOfStep,typcha,loadAll,ms,entities);
27768 +}
27769 +
27770 +MEDFileAnyTypeFieldMultiTSWithoutSDA::MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
27771 +try:MEDFileFieldNameScope(fieldName,meshName),_infos(infos)
27772 +{
27773 +  setDtUnit(dtunit.c_str());
27774 +  loadStructureOrStructureAndBigArraysRecursively(fid,nbOfStep,fieldTyp,loadAll,ms,entities);
27775 +}
27776 +catch(INTERP_KERNEL::Exception& e)
27777 +{
27778 +    throw e;
27779 +}
27780 +
27781 +std::size_t MEDFileAnyTypeFieldMultiTSWithoutSDA::getHeapMemorySizeWithoutChildren() const
27782 +{
27783 +  std::size_t ret(_mesh_name.capacity()+_name.capacity()+_infos.capacity()*sizeof(std::string)+_time_steps.capacity()*sizeof(MCAuto<MEDFileField1TSWithoutSDA>));
27784 +  for(std::vector<std::string>::const_iterator it=_infos.begin();it!=_infos.end();it++)
27785 +    ret+=(*it).capacity();
27786 +  return ret;
27787 +}
27788 +
27789 +std::vector<const BigMemoryObject *> MEDFileAnyTypeFieldMultiTSWithoutSDA::getDirectChildrenWithNull() const
27790 +{
27791 +  std::vector<const BigMemoryObject *> ret;
27792 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27793 +    ret.push_back((const MEDFileAnyTypeField1TSWithoutSDA *)*it);
27794 +  return ret;
27795 +}
27796 +
27797 +/*!
27798 + * If one of the id in [ \a startIds , \a endIds ) points to a null element, there is not throw. Simply, this empty element is added as if it were not
27799 + * NULL.
27800 + */
27801 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds(const int *startIds, const int *endIds) const
27802 +{
27803 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret=createNew();
27804 +  ret->setInfo(_infos);
27805 +  int sz=(int)_time_steps.size();
27806 +  for(const int *id=startIds;id!=endIds;id++)
27807 +    {
27808 +      if(*id>=0 && *id<sz)
27809 +        {
27810 +          const MEDFileAnyTypeField1TSWithoutSDA *tse=_time_steps[*id];
27811 +          MCAuto<MEDFileAnyTypeField1TSWithoutSDA> tse2;
27812 +          if(tse)
27813 +            {
27814 +              tse->incrRef();
27815 +              tse2=(const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(tse));
27816 +            }
27817 +          ret->pushBackTimeStep(tse2);
27818 +        }
27819 +      else
27820 +        {
27821 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds : At pos #" << std::distance(startIds,id) << " value is " << *id;
27822 +          oss << " ! Should be in [0," << sz << ") !";
27823 +          throw INTERP_KERNEL::Exception(oss.str());
27824 +        }
27825 +    }
27826 +  if(ret->getNumberOfTS()>0)
27827 +    ret->synchronizeNameScope();
27828 +  ret->copyNameScope(*this);
27829 +  return ret.retn();
27830 +}
27831 +
27832 +/*!
27833 + * If one of the id in the input range points to a null element, there is not throw. Simply, this empty element is added as if it were not
27834 + * NULL.
27835 + */
27836 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds2(int bg, int end, int step) const
27837 +{
27838 +  static const char msg[]="MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds2";
27839 +  int nbOfEntriesToKeep=DataArrayInt::GetNumberOfItemGivenBESRelative(bg,end,step,msg);
27840 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret=createNew();
27841 +  ret->setInfo(_infos);
27842 +  int sz=(int)_time_steps.size();
27843 +  int j=bg;
27844 +  for(int i=0;i<nbOfEntriesToKeep;i++,j+=step)
27845 +    {
27846 +      if(j>=0 && j<sz)
27847 +        {
27848 +          const MEDFileAnyTypeField1TSWithoutSDA *tse=_time_steps[j];
27849 +          MCAuto<MEDFileAnyTypeField1TSWithoutSDA> tse2;
27850 +          if(tse)
27851 +            {
27852 +              tse->incrRef();
27853 +              tse2=(const_cast<MEDFileAnyTypeField1TSWithoutSDA *>(tse));
27854 +            }
27855 +          ret->pushBackTimeStep(tse2);
27856 +        }
27857 +      else
27858 +        {
27859 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::buildFromTimeStepIds : At pos #" << i << " value is " << j;
27860 +          oss << " ! Should be in [0," << sz << ") !";
27861 +          throw INTERP_KERNEL::Exception(oss.str());
27862 +        }
27863 +    }
27864 +  if(ret->getNumberOfTS()>0)
27865 +    ret->synchronizeNameScope();
27866 +  ret->copyNameScope(*this);
27867 +  return ret.retn();
27868 +}
27869 +
27870 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::partOfThisLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const
27871 +{
27872 +  int id=0;
27873 +  MCAuto<DataArrayInt> ids=DataArrayInt::New(); ids->alloc(0,1);
27874 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,id++)
27875 +    {
27876 +      const MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
27877 +      if(!cur)
27878 +        continue;
27879 +      std::pair<int,int> p(cur->getIteration(),cur->getOrder());
27880 +      if(std::find(timeSteps.begin(),timeSteps.end(),p)!=timeSteps.end())
27881 +        ids->pushBackSilent(id);
27882 +    }
27883 +  return buildFromTimeStepIds(ids->begin(),ids->end());
27884 +}
27885 +
27886 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::partOfThisNotLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const
27887 +{
27888 +  int id=0;
27889 +  MCAuto<DataArrayInt> ids=DataArrayInt::New(); ids->alloc(0,1);
27890 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,id++)
27891 +    {
27892 +      const MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
27893 +      if(!cur)
27894 +        continue;
27895 +      std::pair<int,int> p(cur->getIteration(),cur->getOrder());
27896 +      if(std::find(timeSteps.begin(),timeSteps.end(),p)==timeSteps.end())
27897 +        ids->pushBackSilent(id);
27898 +    }
27899 +  return buildFromTimeStepIds(ids->begin(),ids->end());
27900 +}
27901 +
27902 +bool MEDFileAnyTypeFieldMultiTSWithoutSDA::presenceOfStructureElements() const
27903 +{
27904 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27905 +    if((*it).isNotNull())
27906 +      if((*it)->presenceOfStructureElements())
27907 +        return true;
27908 +  return false;
27909 +}
27910 +
27911 +bool MEDFileAnyTypeFieldMultiTSWithoutSDA::onlyStructureElements() const
27912 +{
27913 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27914 +    if((*it).isNotNull())
27915 +      if(!(*it)->onlyStructureElements())
27916 +        return false;
27917 +  return true;
27918 +}
27919 +
27920 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::killStructureElements()
27921 +{
27922 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret;
27923 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27924 +    if((*it).isNotNull())
27925 +      {
27926 +        if((*it)->presenceOfStructureElements())
27927 +          {
27928 +            if(!(*it)->onlyStructureElements())
27929 +              {
27930 +                (*it)->killStructureElements();
27931 +                ret.push_back(*it);
27932 +              }
27933 +          }
27934 +        else
27935 +          {
27936 +            ret.push_back(*it);
27937 +          }
27938 +      }
27939 +  _time_steps=ret;
27940 +}
27941 +
27942 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::keepOnlyStructureElements()
27943 +{
27944 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret;
27945 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27946 +    if((*it).isNotNull())
27947 +      {
27948 +        if((*it)->presenceOfStructureElements())
27949 +          {
27950 +            if(!(*it)->onlyStructureElements())
27951 +              (*it)->keepOnlyStructureElements();
27952 +            ret.push_back(*it);
27953 +          }
27954 +      }
27955 +  _time_steps=ret;
27956 +}
27957 +
27958 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::keepOnlyOnSE(const std::string& seName)
27959 +{
27960 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret;
27961 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27962 +    if((*it).isNotNull())
27963 +      (*it)->keepOnlyOnSE(seName);
27964 +}
27965 +
27966 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const
27967 +{
27968 +  std::vector< std::pair<std::string,std::string> > ps2;
27969 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27970 +    if((*it).isNotNull())
27971 +      {
27972 +        (*it)->getMeshSENames(ps2);
27973 +        break;
27974 +      }
27975 +  if(ps2.empty())
27976 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::getMeshSENames : this appears to not contain SE only !");
27977 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27978 +    if((*it).isNotNull())
27979 +      {
27980 +        std::vector< std::pair<std::string,std::string> > ps3;
27981 +        (*it)->getMeshSENames(ps3);
27982 +        if(ps2!=ps3)
27983 +          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::getMeshSENames : For the moment only homogeneous SE def through time managed !");
27984 +      }
27985 +  for(std::vector< std::pair<std::string,std::string> >::const_iterator it=ps2.begin();it!=ps2.end();it++)
27986 +    {
27987 +      std::vector< std::pair<std::string,std::string> >::iterator it2(std::find(ps.begin(),ps.end(),*it));
27988 +      if(it2==ps.end())
27989 +        ps.push_back(*it);
27990 +    }
27991 +}
27992 +
27993 +bool MEDFileAnyTypeFieldMultiTSWithoutSDA::presenceOfMultiDiscPerGeoType() const
27994 +{
27995 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
27996 +    {
27997 +      const MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
27998 +      if(!cur)
27999 +        continue;
28000 +      if(cur->presenceOfMultiDiscPerGeoType())
28001 +        return true;
28002 +    }
28003 +  return false;
28004 +}
28005 +
28006 +const std::vector<std::string>& MEDFileAnyTypeFieldMultiTSWithoutSDA::getInfo() const
28007 +{
28008 +  return _infos;
28009 +}
28010 +
28011 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::setInfo(const std::vector<std::string>& info)
28012 +{
28013 +  _infos=info;
28014 +}
28015 +
28016 +int MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepPos(int iteration, int order) const
28017 +{
28018 +  int ret=0;
28019 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,ret++)
28020 +    {
28021 +      const MEDFileAnyTypeField1TSWithoutSDA *pt(*it);
28022 +      if(pt->isDealingTS(iteration,order))
28023 +        return ret;
28024 +    }
28025 +  std::ostringstream oss; oss << "MEDFileFieldMultiTS::getTimeStepPos : Muli timestep field on time (" << iteration << "," << order << ") does not exist ! Available (iteration,order) are :\n";
28026 +  std::vector< std::pair<int,int> > vp=getIterations();
28027 +  for(std::vector< std::pair<int,int> >::const_iterator it2=vp.begin();it2!=vp.end();it2++)
28028 +    oss << "(" << (*it2).first << "," << (*it2).second << ") ";
28029 +  throw INTERP_KERNEL::Exception(oss.str());
28030 +}
28031 +
28032 +const MEDFileAnyTypeField1TSWithoutSDA& MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepEntry(int iteration, int order) const
28033 +{
28034 +  return *_time_steps[getTimeStepPos(iteration,order)];
28035 +}
28036 +
28037 +MEDFileAnyTypeField1TSWithoutSDA& MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepEntry(int iteration, int order)
28038 +{
28039 +  return *_time_steps[getTimeStepPos(iteration,order)];
28040 +}
28041 +
28042 +bool MEDFileAnyTypeFieldMultiTSWithoutSDA::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
28043 +{
28044 +  bool ret(false);
28045 +  for(std::vector< std::pair<std::string,std::string> >::const_iterator it=modifTab.begin();it!=modifTab.end();it++)
28046 +    {
28047 +      if((*it).first==getMeshName())
28048 +        {
28049 +          setMeshName((*it).second);
28050 +          ret=true;
28051 +        }
28052 +    }
28053 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28054 +    {
28055 +      MEDFileAnyTypeField1TSWithoutSDA *cur(*it);
28056 +      if(cur)
28057 +        ret=cur->changeMeshNames(modifTab) || ret;
28058 +    }
28059 +  return ret;
28060 +}
28061 +
28062 +/*!
28063 + * See doc at MEDFileField1TSWithoutSDA::getUndergroundDataArray
28064 + */
28065 +DataArray *MEDFileAnyTypeFieldMultiTSWithoutSDA::getUndergroundDataArray(int iteration, int order) const
28066 +{
28067 +  return getTimeStepEntry(iteration,order).getUndergroundDataArray();
28068 +}
28069 +
28070 +/*!
28071 + * See doc at MEDFileField1TSWithoutSDA::getUndergroundDataArrayExt
28072 + */
28073 +DataArray *MEDFileAnyTypeFieldMultiTSWithoutSDA::getUndergroundDataArrayExt(int iteration, int order, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const
28074 +{
28075 +  return getTimeStepEntry(iteration,order).getUndergroundDataArrayExt(entries);
28076 +}
28077 +
28078 +bool MEDFileAnyTypeFieldMultiTSWithoutSDA::renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N,
28079 +                                                                       MEDFileFieldGlobsReal& glob)
28080 +{
28081 +  bool ret=false;
28082 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28083 +    {
28084 +      MEDFileAnyTypeField1TSWithoutSDA *f1ts(*it);
28085 +      if(f1ts)
28086 +        ret=f1ts->renumberEntitiesLyingOnMesh(meshName,oldCode,newCode,renumO2N,glob) || ret;
28087 +    }
28088 +  return ret;
28089 +}
28090 +
28091 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::accept(MEDFileFieldVisitor& visitor) const
28092 +{
28093 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28094 +    if((*it).isNotNull())
28095 +      {
28096 +        visitor.newTimeStepEntry(*it);
28097 +        (*it)->accept(visitor);
28098 +        visitor.endTimeStepEntry(*it);
28099 +      }
28100 +}
28101 +
28102 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const
28103 +{
28104 +  std::string startLine(bkOffset,' ');
28105 +  oss << startLine << "Field multi time steps [Type=" << getTypeStr() << "]";
28106 +  if(fmtsId>=0)
28107 +    oss << " (" << fmtsId << ")";
28108 +  oss << " has the following name: \"" << _name << "\"." << std::endl;
28109 +  oss << startLine << "Field multi time steps has " << _infos.size() << " components with the following infos :" << std::endl;
28110 +  for(std::vector<std::string>::const_iterator it=_infos.begin();it!=_infos.end();it++)
28111 +    {
28112 +      oss << startLine << "  -  \"" << *it << "\"" << std::endl;
28113 +    }
28114 +  int i=0;
28115 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,i++)
28116 +    {
28117 +      std::string chapter(17,'0'+i);
28118 +      oss << startLine << chapter << std::endl;
28119 +      const MEDFileAnyTypeField1TSWithoutSDA *cur=(*it);
28120 +      if(cur)
28121 +        cur->simpleRepr(bkOffset+2,oss,i);
28122 +      else
28123 +        oss << startLine << "  Field on one time step #" << i << " is not defined !" << std::endl;
28124 +      oss << startLine << chapter << std::endl;
28125 +    }
28126 +}
28127 +
28128 +std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeSteps(std::vector<double>& ret1) const
28129 +{
28130 +  std::size_t sz=_time_steps.size();
28131 +  std::vector< std::pair<int,int> > ret(sz);
28132 +  ret1.resize(sz);
28133 +  for(std::size_t i=0;i<sz;i++)
28134 +    {
28135 +      const MEDFileAnyTypeField1TSWithoutSDA *f1ts=_time_steps[i];
28136 +      if(f1ts)
28137 +        {
28138 +          ret1[i]=f1ts->getTime(ret[i].first,ret[i].second);
28139 +        }
28140 +      else
28141 +        {
28142 +          std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::getTimeSteps : At rank #" << i << " time step is not defined. Invoke eraseEmptyTS method !";
28143 +          throw INTERP_KERNEL::Exception(oss.str());
28144 +        }
28145 +    }
28146 +  return ret;
28147 +}
28148 +
28149 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep(MCAuto<MEDFileAnyTypeField1TSWithoutSDA>& tse)
28150 +{
28151 +  MEDFileAnyTypeField1TSWithoutSDA *tse2(tse);
28152 +  if(!tse2)
28153 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep : input content object is null !");
28154 +  checkCoherencyOfType(tse2);
28155 +  if(_time_steps.empty())
28156 +    {
28157 +      setName(tse2->getName());
28158 +      setMeshName(tse2->getMeshName());
28159 +      setInfo(tse2->getInfo());
28160 +    }
28161 +  checkThatComponentsMatch(tse2->getInfo());
28162 +  if(getDtUnit().empty() && !tse->getDtUnit().empty())
28163 +    setDtUnit(tse->getDtUnit());
28164 +  _time_steps.push_back(tse);
28165 +}
28166 +
28167 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::synchronizeNameScope()
28168 +{
28169 +  std::size_t nbOfCompo=_infos.size();
28170 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28171 +    {
28172 +      MEDFileAnyTypeField1TSWithoutSDA *cur=(*it);
28173 +      if(cur)
28174 +        {
28175 +          if((cur->getInfo()).size()!=nbOfCompo)
28176 +            {
28177 +              std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::synchronizeNameScope : Mismatch in the number of components of parts ! Should be " << nbOfCompo;
28178 +              oss << " ! but the field at iteration=" << cur->getIteration() << " order=" << cur->getOrder() << " has " << (cur->getInfo()).size() << " components !";
28179 +              throw INTERP_KERNEL::Exception(oss.str());
28180 +            }
28181 +          cur->copyNameScope(*this);
28182 +        }
28183 +    }
28184 +}
28185 +
28186 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::loadStructureOrStructureAndBigArraysRecursively(med_idt fid, int nbPdt, med_field_type fieldTyp, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
28187 +{
28188 +  _time_steps.resize(nbPdt);
28189 +  for(int i=0;i<nbPdt;i++)
28190 +    {
28191 +      std::vector< std::pair<int,int> > ts;
28192 +      med_int numdt=0,numo=0;
28193 +      med_float dt=0.0;
28194 +      MEDFILESAFECALLERRD0(MEDfieldComputingStepInfo,(fid,_name.c_str(),i+1,&numdt,&numo,&dt));
28195 +      switch(fieldTyp)
28196 +      {
28197 +        case MED_FLOAT64:
28198 +          {
28199 +            _time_steps[i]=MEDFileField1TSWithoutSDA::New(getName(),getMeshName(),i+1,numdt,numo,_infos);
28200 +            break;
28201 +          }
28202 +        case MED_INT32:
28203 +          {
28204 +            _time_steps[i]=MEDFileIntField1TSWithoutSDA::New(getName(),getMeshName(),i+1,numdt,numo,_infos);
28205 +            break;
28206 +          }
28207 +        case MED_FLOAT32:
28208 +          {
28209 +            _time_steps[i]=MEDFileFloatField1TSWithoutSDA::New(getName(),getMeshName(),i+1,numdt,numo,_infos);
28210 +            break;
28211 +          }
28212 +        case MED_INT:
28213 +          {
28214 +            if(sizeof(med_int)==sizeof(int))
28215 +              {
28216 +                _time_steps[i]=MEDFileIntField1TSWithoutSDA::New(getName(),getMeshName(),i+1,numdt,numo,_infos);
28217 +                break;
28218 +              }
28219 +          }
28220 +        default:
28221 +          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::loadStructureOrStructureAndBigArraysRecursively : managed field type are : FLOAT64, INT32, FLOAT32 !");
28222 +      }
28223 +      if(loadAll)
28224 +        _time_steps[i]->loadStructureAndBigArraysRecursively(fid,*this,ms,entities);
28225 +      else
28226 +        _time_steps[i]->loadOnlyStructureOfDataRecursively(fid,*this,ms,entities);
28227 +      synchronizeNameScope();
28228 +    }
28229 +}
28230 +
28231 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::writeLL(med_idt fid, const MEDFileWritable& opts) const
28232 +{
28233 +  if(_time_steps.empty())
28234 +    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::writeLL : no time steps set !");
28235 +  checkThatNbOfCompoOfTSMatchThis();
28236 +  std::vector<std::string> infos(getInfo());
28237 +  int nbComp=infos.size();
28238 +  INTERP_KERNEL::AutoPtr<char> comp=MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE);
28239 +  INTERP_KERNEL::AutoPtr<char> unit=MEDLoaderBase::buildEmptyString(nbComp*MED_SNAME_SIZE);
28240 +  for(int i=0;i<nbComp;i++)
28241 +    {
28242 +      std::string info=infos[i];
28243 +      std::string c,u;
28244 +      MEDLoaderBase::splitIntoNameAndUnit(info,c,u);
28245 +      MEDLoaderBase::safeStrCpy2(c.c_str(),MED_SNAME_SIZE,comp+i*MED_SNAME_SIZE,opts.getTooLongStrPolicy());
28246 +      MEDLoaderBase::safeStrCpy2(u.c_str(),MED_SNAME_SIZE,unit+i*MED_SNAME_SIZE,opts.getTooLongStrPolicy());
28247 +    }
28248 +  if(_name.empty())
28249 +    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::write : MED file does not accept field with empty name !");
28250 +  MEDFILESAFECALLERWR0(MEDfieldCr,(fid,_name.c_str(),getMEDFileFieldType(),nbComp,comp,unit,getDtUnit().c_str(),getMeshName().c_str()));
28251 +  int nbOfTS=_time_steps.size();
28252 +  for(int i=0;i<nbOfTS;i++)
28253 +    _time_steps[i]->writeLL(fid,opts,*this);
28254 +}
28255 +
28256 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc)
28257 +{
28258 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28259 +    {
28260 +      MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
28261 +      if(elt)
28262 +        elt->loadBigArraysRecursively(fid,nasc);
28263 +    }
28264 +}
28265 +
28266 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc)
28267 +{
28268 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28269 +    {
28270 +      MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
28271 +      if(elt)
28272 +        elt->loadBigArraysRecursivelyIfNecessary(fid,nasc);
28273 +    }
28274 +}
28275 +
28276 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::unloadArrays()
28277 +{
28278 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28279 +    {
28280 +      MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
28281 +      if(elt)
28282 +        elt->unloadArrays();
28283 +    }
28284 +}
28285 +
28286 +int MEDFileAnyTypeFieldMultiTSWithoutSDA::getNumberOfTS() const
28287 +{
28288 +  return _time_steps.size();
28289 +}
28290 +
28291 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseEmptyTS()
28292 +{
28293 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  > newTS;
28294 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28295 +    {
28296 +      const MEDFileAnyTypeField1TSWithoutSDA *tmp=(*it);
28297 +      if(tmp)
28298 +        newTS.push_back(*it);
28299 +    }
28300 +  _time_steps=newTS;
28301 +}
28302 +
28303 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseTimeStepIds(const int *startIds, const int *endIds)
28304 +{
28305 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > newTS;
28306 +  int maxId=(int)_time_steps.size();
28307 +  int ii=0;
28308 +  std::set<int> idsToDel;
28309 +  for(const int *id=startIds;id!=endIds;id++,ii++)
28310 +    {
28311 +      if(*id>=0 && *id<maxId)
28312 +        {
28313 +          idsToDel.insert(*id);
28314 +        }
28315 +      else
28316 +        {
28317 +          std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::eraseTimeStepIds : At pos #" << ii << " request for id=" << *id << " not in [0," << maxId << ") !";
28318 +          throw INTERP_KERNEL::Exception(oss.str());
28319 +        }
28320 +    }
28321 +  for(int iii=0;iii<maxId;iii++)
28322 +    if(idsToDel.find(iii)==idsToDel.end())
28323 +      newTS.push_back(_time_steps[iii]);
28324 +  _time_steps=newTS;
28325 +}
28326 +
28327 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseTimeStepIds2(int bg, int end, int step)
28328 +{
28329 +  static const char msg[]="MEDFileAnyTypeFieldMultiTSWithoutSDA::eraseTimeStepIds2";
28330 +  int nbOfEntriesToKill=DataArrayInt::GetNumberOfItemGivenBESRelative(bg,end,step,msg);
28331 +  if(nbOfEntriesToKill==0)
28332 +    return ;
28333 +  std::size_t sz=_time_steps.size();
28334 +  std::vector<bool> b(sz,true);
28335 +  int j=bg;
28336 +  for(int i=0;i<nbOfEntriesToKill;i++,j+=step)
28337 +    b[j]=false;
28338 +  std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > newTS;
28339 +  for(std::size_t i=0;i<sz;i++)
28340 +    if(b[i])
28341 +      newTS.push_back(_time_steps[i]);
28342 +  _time_steps=newTS;
28343 +}
28344 +
28345 +int MEDFileAnyTypeFieldMultiTSWithoutSDA::getPosOfTimeStep(int iteration, int order) const
28346 +{
28347 +  int ret=0;
28348 +  std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::getPosOfTimeStep : No such time step (" << iteration << "," << order << ") !\nPossibilities are : "; 
28349 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,ret++)
28350 +    {
28351 +      const MEDFileAnyTypeField1TSWithoutSDA *tmp(*it);
28352 +      if(tmp)
28353 +        {
28354 +          int it2,ord;
28355 +          tmp->getTime(it2,ord);
28356 +          if(it2==iteration && order==ord)
28357 +            return ret;
28358 +          else
28359 +            oss << "(" << it2 << ","  << ord << "), ";
28360 +        }
28361 +    }
28362 +  throw INTERP_KERNEL::Exception(oss.str());
28363 +}
28364 +
28365 +int MEDFileAnyTypeFieldMultiTSWithoutSDA::getPosGivenTime(double time, double eps) const
28366 +{
28367 +  int ret=0;
28368 +  std::ostringstream oss; oss << "MEDFileFieldMultiTSWithoutSDA::getPosGivenTime : No such time step " << time << "! \nPossibilities are : ";
28369 +  oss.precision(15);
28370 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA>  >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,ret++)
28371 +    {
28372 +      const MEDFileAnyTypeField1TSWithoutSDA *tmp(*it);
28373 +      if(tmp)
28374 +        {
28375 +          int it2,ord;
28376 +          double ti=tmp->getTime(it2,ord);
28377 +          if(fabs(time-ti)<eps)
28378 +            return ret;
28379 +          else
28380 +            oss << ti << ", ";
28381 +        }
28382 +    }
28383 +  throw INTERP_KERNEL::Exception(oss.str());
28384 +}
28385 +
28386 +std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTSWithoutSDA::getIterations() const
28387 +{
28388 +  int lgth=_time_steps.size();
28389 +  std::vector< std::pair<int,int> > ret(lgth);
28390 +  for(int i=0;i<lgth;i++)
28391 +    _time_steps[i]->fillIteration(ret[i]);
28392 +  return ret;
28393 +}
28394 +
28395 +/*!
28396 + * This method has 3 inputs 'iteration' 'order' 'mname'. 'mname' can be null if the user is the general case where there is only one meshName lying on 'this'
28397 + * This method returns two things.
28398 + * - The absolute dimension of 'this' in first parameter. 
28399 + * - The available ext levels relative to the absolute dimension returned in first parameter. These relative levels are relative
28400 + *   to the first output parameter. The values in 'levs' will be returned in decreasing order.
28401 + *
28402 + * This method is designed for MEDFileFieldMultiTS instances that have a discritization ON_CELLS, ON_GAUSS_NE and ON_GAUSS.
28403 + * Only these 3 discretizations will be taken into account here.
28404 + *
28405 + * If 'this' is empty this method will throw an INTERP_KERNEL::Exception.
28406 + * If there is \b only node fields defined in 'this' -1 is returned and 'levs' output parameter will be empty. In this
28407 + * case the caller has to know the underlying mesh it refers to. By default it is the level 0 of the corresponding mesh.
28408 + *
28409 + * This method is useful to make the link between meshDimension of the underlying mesh in 'this' and the levels on 'this'.
28410 + * It is possible (even if it is not common) that the highest level in 'this' were not equal to the meshDimension of the underlying mesh in 'this'.
28411 + * 
28412 + * Let's consider the typical following case :
28413 + * - a mesh 'm1' has a meshDimension 3 and has the following non empty levels
28414 + * [0,-1,-2] for example 'm1' lies on TETRA4, HEXA8 TRI3 and SEG2
28415 + * - 'f1' lies on 'm1' and is defined on 3D and 1D cells for example
28416 + *   TETRA4 and SEG2
28417 + * - 'f2' lies on 'm1' too and is defined on 2D and 1D cells for example TRI3 and SEG2
28418 + *
28419 + * In this case f1->getNonEmptyLevelsExt will return (3,[0,-2]) and f2->getNonEmptyLevelsExt will return (2,[0,-1])
28420 + * 
28421 + * To retrieve the highest level of f1 it should be done, f1->getFieldAtLevel(ON_CELLS,3-3+0);//absDim-meshDim+relativeLev
28422 + * To retrieve the lowest level of f1 it should be done, f1->getFieldAtLevel(ON_CELLS,3-3+(-2));//absDim-meshDim+relativeLev
28423 + * To retrieve the highest level of f2 it should be done, f1->getFieldAtLevel(ON_CELLS,2-3+0);//absDim-meshDim+relativeLev
28424 + * To retrieve the lowest level of f2 it should be done, f1->getFieldAtLevel(ON_CELLS,2-3+(-1));//absDim-meshDim+relativeLev
28425 + */
28426 +int MEDFileAnyTypeFieldMultiTSWithoutSDA::getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const
28427 +{
28428 +  return getTimeStepEntry(iteration,order).getNonEmptyLevels(mname,levs);
28429 +}
28430 +
28431 +const MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2(int pos) const
28432 +{
28433 +  if(pos<0 || pos>=(int)_time_steps.size())
28434 +    {
28435 +      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << " whereas should be in [0," << _time_steps.size() << ") !";
28436 +      throw INTERP_KERNEL::Exception(oss.str());
28437 +    }
28438 +  const MEDFileAnyTypeField1TSWithoutSDA *item=_time_steps[pos];
28439 +  if(item==0)
28440 +    {
28441 +      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << ", this pos id exists but the underlying Field1TS is null !";
28442 +      oss << "\nTry to use following method eraseEmptyTS !";
28443 +      throw INTERP_KERNEL::Exception(oss.str());
28444 +    }
28445 +  return item;
28446 +}
28447 +
28448 +MEDFileAnyTypeField1TSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2(int pos)
28449 +{
28450 +  if(pos<0 || pos>=(int)_time_steps.size())
28451 +    {
28452 +      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << " whereas should be in [0," << _time_steps.size() << ") !";
28453 +      throw INTERP_KERNEL::Exception(oss.str());
28454 +    }
28455 +  MEDFileAnyTypeField1TSWithoutSDA *item=_time_steps[pos];
28456 +  if(item==0)
28457 +    {
28458 +      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::getTimeStepAtPos2 : request for pos #" << pos << ", this pos id exists but the underlying Field1TS is null !";
28459 +      oss << "\nTry to use following method eraseEmptyTS !";
28460 +      throw INTERP_KERNEL::Exception(oss.str());
28461 +    }
28462 +  return item;
28463 +}
28464 +
28465 +std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getPflsReallyUsed2() const
28466 +{
28467 +  std::vector<std::string> ret;
28468 +  std::set<std::string> ret2;
28469 +  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28470 +    {
28471 +      std::vector<std::string> tmp=(*it)->getPflsReallyUsed2();
28472 +      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
28473 +        if(ret2.find(*it2)==ret2.end())
28474 +          {
28475 +            ret.push_back(*it2);
28476 +            ret2.insert(*it2);
28477 +          }
28478 +    }
28479 +  return ret;
28480 +}
28481 +
28482 +std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getLocsReallyUsed2() const
28483 +{
28484 +  std::vector<std::string> ret;
28485 +  std::set<std::string> ret2;
28486 +  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28487 +    {
28488 +      std::vector<std::string> tmp=(*it)->getLocsReallyUsed2();
28489 +      for(std::vector<std::string>::const_iterator it2=tmp.begin();it2!=tmp.end();it2++)
28490 +        if(ret2.find(*it2)==ret2.end())
28491 +          {
28492 +            ret.push_back(*it2);
28493 +            ret2.insert(*it2);
28494 +          }
28495 +    }
28496 +  return ret;
28497 +}
28498 +
28499 +std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getPflsReallyUsedMulti2() const
28500 +{
28501 +  std::vector<std::string> ret;
28502 +  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28503 +    {
28504 +      std::vector<std::string> tmp=(*it)->getPflsReallyUsedMulti2();
28505 +      ret.insert(ret.end(),tmp.begin(),tmp.end());
28506 +    }
28507 +  return ret;
28508 +}
28509 +
28510 +std::vector<std::string> MEDFileAnyTypeFieldMultiTSWithoutSDA::getLocsReallyUsedMulti2() const
28511 +{
28512 +  std::vector<std::string> ret;
28513 +  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28514 +    {
28515 +      std::vector<std::string> tmp=(*it)->getLocsReallyUsedMulti2();
28516 +      ret.insert(ret.end(),tmp.begin(),tmp.end());
28517 +    }
28518 +  return ret;
28519 +}
28520 +
28521 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
28522 +{
28523 +  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28524 +    (*it)->changePflsRefsNamesGen2(mapOfModif);
28525 +}
28526 +
28527 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
28528 +{
28529 +  for(std::vector< MCAuto< MEDFileAnyTypeField1TSWithoutSDA > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++)
28530 +    (*it)->changeLocsRefsNamesGen2(mapOfModif);
28531 +}
28532 +
28533 +std::vector< std::vector<TypeOfField> > MEDFileAnyTypeFieldMultiTSWithoutSDA::getTypesOfFieldAvailable() const
28534 +{
28535 +  int lgth=_time_steps.size();
28536 +  std::vector< std::vector<TypeOfField> > ret(lgth);
28537 +  for(int i=0;i<lgth;i++)
28538 +    _time_steps[i]->fillTypesOfFieldAvailable(ret[i]);
28539 +  return ret;
28540 +}
28541 +
28542 +/*!
28543 + * entry point for users that want to iterate into MEDFile DataStructure without any overhead.
28544 + */
28545 +std::vector< std::vector< std::pair<int,int> > > MEDFileAnyTypeFieldMultiTSWithoutSDA::getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
28546 +{
28547 +  return getTimeStepEntry(iteration,order).getFieldSplitedByType(mname,types,typesF,pfls,locs);
28548 +}
28549 +
28550 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTSWithoutSDA::deepCopy() const
28551 +{
28552 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret=shallowCpy();
28553 +  std::size_t i=0;
28554 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,i++)
28555 +    {
28556 +      if((const MEDFileAnyTypeField1TSWithoutSDA *)*it)
28557 +        ret->_time_steps[i]=(*it)->deepCopy();
28558 +    }
28559 +  return ret.retn();
28560 +}
28561 +
28562 +std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > MEDFileAnyTypeFieldMultiTSWithoutSDA::splitComponents() const
28563 +{
28564 +  std::size_t sz(_infos.size()),sz2(_time_steps.size());
28565 +  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > ret(sz);
28566 +  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > ts(sz2);
28567 +  for(std::size_t i=0;i<sz;i++)
28568 +    {
28569 +      ret[i]=shallowCpy();
28570 +      ret[i]->_infos.resize(1); ret[i]->_infos[0]=_infos[i];
28571 +    }
28572 +  for(std::size_t i=0;i<sz2;i++)
28573 +    {
28574 +      std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > ret1=_time_steps[i]->splitComponents();
28575 +      if(ret1.size()!=sz)
28576 +        {
28577 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::splitComponents : At rank #" << i << " number of components is " << ret1.size() << " whereas it should be for all time steps " << sz << " !";
28578 +          throw INTERP_KERNEL::Exception(oss.str());
28579 +        }
28580 +      ts[i]=ret1;
28581 +    }
28582 +  for(std::size_t i=0;i<sz;i++)
28583 +    for(std::size_t j=0;j<sz2;j++)
28584 +      ret[i]->_time_steps[j]=ts[j][i];
28585 +  return ret;
28586 +}
28587 +
28588 +/*!
28589 + * This method splits into discretization each time steps in \a this.
28590 + * ** WARNING ** the returned instances are not compulsory defined on the same time steps series !
28591 + */
28592 +std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > MEDFileAnyTypeFieldMultiTSWithoutSDA::splitDiscretizations() const
28593 +{
28594 +  std::size_t sz(_time_steps.size());
28595 +  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > items(sz);
28596 +  for(std::size_t i=0;i<sz;i++)
28597 +    {
28598 +      const MEDFileAnyTypeField1TSWithoutSDA *timeStep(_time_steps[i]);
28599 +      if(!timeStep)
28600 +        {
28601 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::splitDiscretizations : time step #" << i << " is null !"; 
28602 +          throw INTERP_KERNEL::Exception(oss.str());
28603 +        }
28604 +      items[i]=timeStep->splitDiscretizations();  
28605 +    }
28606 +  //
28607 +  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > ret;
28608 +  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > ret2;
28609 +  std::vector< TypeOfField > types;
28610 +  for(std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > >::const_iterator it0=items.begin();it0!=items.end();it0++)
28611 +    for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it1=(*it0).begin();it1!=(*it0).end();it1++)
28612 +      {
28613 +        std::vector<TypeOfField> ts=(*it1)->getTypesOfFieldAvailable();
28614 +        if(ts.size()!=1)
28615 +          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::splitDiscretizations : it appears that the splitting of MEDFileAnyTypeField1TSWithoutSDA::splitDiscretizations has returned invalid result !");
28616 +        std::vector< TypeOfField >::iterator it2=std::find(types.begin(),types.end(),ts[0]);
28617 +        if(it2==types.end())
28618 +          types.push_back(ts[0]);
28619 +      }
28620 +  ret.resize(types.size()); ret2.resize(types.size());
28621 +  for(std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > >::const_iterator it0=items.begin();it0!=items.end();it0++)
28622 +    for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it1=(*it0).begin();it1!=(*it0).end();it1++)
28623 +      {
28624 +        TypeOfField typ=(*it1)->getTypesOfFieldAvailable()[0];
28625 +        std::size_t pos=std::distance(types.begin(),std::find(types.begin(),types.end(),typ));
28626 +        ret2[pos].push_back(*it1);
28627 +      }
28628 +  for(std::size_t i=0;i<types.size();i++)
28629 +    {
28630 +      MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> elt(createNew());
28631 +      for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::iterator it1=ret2[i].begin();it1!=ret2[i].end();it1++)
28632 +        elt->pushBackTimeStep(*it1);//also updates infos in elt
28633 +      ret[i]=elt;
28634 +      elt->MEDFileFieldNameScope::operator=(*this);
28635 +    }
28636 +  return ret;
28637 +}
28638 +
28639 +/*!
28640 + * Contrary to splitDiscretizations method this method makes the hypothesis that the times series are **NOT** impacted by the splitting of multi discretization.
28641 + */
28642 +std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes() const
28643 +{
28644 +  std::size_t sz(_time_steps.size());
28645 +  std::vector< std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > > items(sz);
28646 +  std::size_t szOut(std::numeric_limits<std::size_t>::max());
28647 +  for(std::size_t i=0;i<sz;i++)
28648 +    {
28649 +      const MEDFileAnyTypeField1TSWithoutSDA *timeStep(_time_steps[i]);
28650 +      if(!timeStep)
28651 +        {
28652 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes : time step #" << i << " is null !";
28653 +          throw INTERP_KERNEL::Exception(oss.str());
28654 +        }
28655 +      items[i]=timeStep->splitMultiDiscrPerGeoTypes();
28656 +      if(szOut==std::numeric_limits<std::size_t>::max())
28657 +        szOut=items[i].size();
28658 +      else
28659 +        if(items[i].size()!=szOut)
28660 +          throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes : The splitting per discretization is expected to be same among time steps !");
28661 +    }
28662 +  if(szOut==std::numeric_limits<std::size_t>::max())
28663 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::splitMultiDiscrPerGeoTypes : empty field !");
28664 +  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > ret(szOut);
28665 +  for(std::size_t i=0;i<szOut;i++)
28666 +    {
28667 +      MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> elt(createNew());
28668 +      for(std::size_t j=0;j<sz;j++)
28669 +        elt->pushBackTimeStep(items[j][i]);
28670 +      ret[i]=elt;
28671 +      elt->MEDFileFieldNameScope::operator=(*this);
28672 +    }
28673 +  return ret;
28674 +}
28675 +
28676 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr)
28677 +{
28678 +  setName(field->getName());
28679 +  if(field->getMesh())
28680 +    setMeshName(field->getMesh()->getName());
28681 +  if(_name.empty())
28682 +    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::copyTinyInfoFrom : unsupported fields with no name in MED file !");
28683 +  if(!arr)
28684 +    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::copyTinyInfoFrom : no array set !");
28685 +  _infos=arr->getInfoOnComponents();
28686 +}
28687 +
28688 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::checkCoherencyOfTinyInfo(const MEDCouplingFieldDouble *field, const DataArray *arr) const
28689 +{
28690 +  static const char MSG[]="MEDFileFieldMultiTSWithoutSDA::checkCoherencyOfTinyInfo : invalid ";
28691 +  if(_name!=field->getName())
28692 +    {
28693 +      std::ostringstream oss; oss << MSG << "name ! should be \"" << _name;
28694 +      oss << "\" and it is set in input field to \"" << field->getName() << "\" !";
28695 +      throw INTERP_KERNEL::Exception(oss.str());
28696 +    }
28697 +  if(!arr)
28698 +    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::checkCoherencyOfTinyInfo : no array set !");
28699 +  checkThatComponentsMatch(arr->getInfoOnComponents());
28700 +}
28701 +
28702 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::checkThatComponentsMatch(const std::vector<std::string>& compos) const
28703 +{
28704 +  static const char MSG[]="MEDFileFieldMultiTSWithoutSDA::checkThatComponentsMatch : ";
28705 +  if(getInfo().size()!=compos.size())
28706 +    {
28707 +      std::ostringstream oss; oss << MSG << "mismatch of number of components between this (" << getInfo().size() << ") and ";
28708 +      oss << " number of components of element to append (" << compos.size() << ") !";
28709 +      throw INTERP_KERNEL::Exception(oss.str());
28710 +    }
28711 +  if(_infos!=compos)
28712 +    {
28713 +      std::ostringstream oss; oss << MSG << "components have same size but are different ! should be \"";
28714 +      std::copy(_infos.begin(),_infos.end(),std::ostream_iterator<std::string>(oss,", "));
28715 +      oss << " But compo in input fields are : ";
28716 +      std::copy(compos.begin(),compos.end(),std::ostream_iterator<std::string>(oss,", "));
28717 +      oss << " !";
28718 +      throw INTERP_KERNEL::Exception(oss.str());
28719 +    }
28720 +}
28721 +
28722 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::checkThatNbOfCompoOfTSMatchThis() const
28723 +{
28724 +  std::size_t sz=_infos.size();
28725 +  int j=0;
28726 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,j++)
28727 +    {
28728 +      const MEDFileAnyTypeField1TSWithoutSDA *elt(*it);
28729 +      if(elt)
28730 +        if(elt->getInfo().size()!=sz)
28731 +          {
28732 +            std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::checkThatNbOfCompoOfTSMatchThis : At pos #" << j << " the number of components is equal to ";
28733 +            oss << elt->getInfo().size() << " whereas it is expected to be equal to " << sz << " !";
28734 +            throw INTERP_KERNEL::Exception(oss.str());
28735 +          }
28736 +    }
28737 +}
28738 +
28739 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::appendFieldNoProfileSBT(const MEDCouplingFieldDouble *field, const DataArray *arr, MEDFileFieldGlobsReal& glob)
28740 +{
28741 +  if(!field)
28742 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::appendFieldNoProfileSBT : input field is NULL !");
28743 +  if(!_time_steps.empty())
28744 +    checkCoherencyOfTinyInfo(field,arr);
28745 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> obj(createNew1TSWithoutSDAEmptyInstance());
28746 +  {
28747 +    MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::New(*field));
28748 +    obj->setFieldNoProfileSBT(field->timeDiscrSafe(),ft,arr,glob,*this);
28749 +  }
28750 +  copyTinyInfoFrom(field,arr);
28751 +  _time_steps.push_back(obj);
28752 +}
28753 +
28754 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::appendFieldProfile(const MEDCouplingFieldDouble *field, const DataArray *arr, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob, bool smartPflKiller)
28755 +{
28756 +  if(!field)
28757 +    throw INTERP_KERNEL::Exception("MEDFileIntFieldMultiTSWithoutSDA::appendFieldNoProfileSBT : input field is NULL !");
28758 +  if(!_time_steps.empty())
28759 +    checkCoherencyOfTinyInfo(field,arr);
28760 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> obj(createNew1TSWithoutSDAEmptyInstance());
28761 +  {
28762 +    MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::NewWithoutCheck(*field));
28763 +    obj->setFieldProfile(field->timeDiscrSafe(),ft,arr,mesh,meshDimRelToMax,profile,glob,*this,smartPflKiller);
28764 +  }
28765 +  copyTinyInfoFrom(field,arr);
28766 +  setMeshName(obj->getMeshName());
28767 +  _time_steps.push_back(obj);
28768 +}
28769 +
28770 +void MEDFileAnyTypeFieldMultiTSWithoutSDA::setIteration(int i, MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ts)
28771 +{
28772 +  int sz=(int)_time_steps.size();
28773 +  if(i<0 || i>=sz)
28774 +    {
28775 +      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::setIteration : trying to set element at place #" << i << " should be in [0," << sz << ") !";
28776 +      throw INTERP_KERNEL::Exception(oss.str());
28777 +    }
28778 +  const MEDFileAnyTypeField1TSWithoutSDA *tsPtr(ts);
28779 +  if(tsPtr)
28780 +    {
28781 +      if(tsPtr->getNumberOfComponents()!=(int)_infos.size())
28782 +        {
28783 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTSWithoutSDA::setIteration : trying to set element with " << tsPtr->getNumberOfComponents() << " components ! Should be " << _infos.size() <<  " !";
28784 +          throw INTERP_KERNEL::Exception(oss.str());
28785 +        }
28786 +    }
28787 +  _time_steps[i]=ts;
28788 +}
28789 +
28790 +//= MEDFileFieldMultiTSWithoutSDA
28791 +
28792 +/*!
28793 + * entry point for users that want to iterate into MEDFile DataStructure with a reduced overhead because output arrays are extracted (created) specially
28794 + * for the call of this method. That's why the DataArrayDouble instance in returned vector of vector should be dealed by the caller.
28795 + */
28796 +std::vector< std::vector<DataArrayDouble *> > MEDFileFieldMultiTSWithoutSDA::getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
28797 +{
28798 +  const MEDFileAnyTypeField1TSWithoutSDA& myF1TS=getTimeStepEntry(iteration,order);
28799 +  const MEDFileField1TSWithoutSDA *myF1TSC=dynamic_cast<const MEDFileField1TSWithoutSDA *>(&myF1TS);
28800 +  if(!myF1TSC)
28801 +    throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::getFieldSplitedByType2 : mismatch of type of field expecting FLOAT64 !");
28802 +  return myF1TSC->getFieldSplitedByType2(mname,types,typesF,pfls,locs);
28803 +}
28804 +
28805 +MEDFileIntFieldMultiTSWithoutSDA *MEDFileFieldMultiTSWithoutSDA::convertToInt() const
28806 +{
28807 +  MCAuto<MEDFileIntFieldMultiTSWithoutSDA> ret(new MEDFileIntFieldMultiTSWithoutSDA);
28808 +  ret->MEDFileAnyTypeFieldMultiTSWithoutSDA::operator =(*this);
28809 +  int i=0;
28810 +  for(std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++,i++)
28811 +    {
28812 +      const MEDFileAnyTypeField1TSWithoutSDA *eltToConv(*it);
28813 +      if(eltToConv)
28814 +        {
28815 +          const MEDFileField1TSWithoutSDA *eltToConvC=dynamic_cast<const MEDFileField1TSWithoutSDA *>(eltToConv);
28816 +          if(!eltToConvC)
28817 +            throw INTERP_KERNEL::Exception("MEDFileFieldMultiTSWithoutSDA::convertToInt : presence of an invalid 1TS type ! Should be of type FLOAT64 !");
28818 +          MCAuto<MEDFileAnyTypeField1TSWithoutSDA> elt=eltToConvC->convertToInt();
28819 +          ret->setIteration(i,elt);
28820 +        }
28821 +    }
28822 +  return ret.retn();
28823 +}
28824 +
28825 +//= MEDFileAnyTypeFieldMultiTS
28826 +
28827 +MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS()
28828 +{
28829 +}
28830 +
28831 +MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
28832 +try:MEDFileFieldGlobsReal(fid)
28833 +{
28834 +  _content=BuildContentFrom(fid,loadAll,ms);
28835 +  loadGlobals(fid);
28836 +}
28837 +catch(INTERP_KERNEL::Exception& e)
28838 +{
28839 +    throw e;
28840 +}
28841 +
28842 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
28843 +{
28844 +  med_field_type typcha;
28845 +  std::vector<std::string> infos;
28846 +  std::string dtunit;
28847 +  std::string meshName;
28848 +  int i(-1);
28849 +  MEDFileAnyTypeField1TS::LocateField(fid,fieldName,i,typcha,infos,dtunit,meshName);
28850 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret;
28851 +  switch(typcha)
28852 +  {
28853 +    case MED_FLOAT64:
28854 +      {
28855 +        ret=new MEDFileFieldMultiTSWithoutSDA(fid,i,loadAll,ms,entities);
28856 +        break;
28857 +      }
28858 +    case MED_INT32:
28859 +      {
28860 +        ret=new MEDFileIntFieldMultiTSWithoutSDA(fid,i,loadAll,ms,entities);
28861 +        break;
28862 +      }
28863 +    case MED_FLOAT32:
28864 +      {
28865 +        ret=new MEDFileFloatFieldMultiTSWithoutSDA(fid,i,loadAll,ms,entities);
28866 +        break;
28867 +      }
28868 +    case MED_INT:
28869 +      {
28870 +        if(sizeof(med_int)==sizeof(int))
28871 +          {
28872 +            ret=new MEDFileIntFieldMultiTSWithoutSDA(fid,i,loadAll,ms,entities);
28873 +            break;
28874 +          }
28875 +      }
28876 +    default:
28877 +      {
28878 +        std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::BuildContentFrom(fid,fieldName) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
28879 +        throw INTERP_KERNEL::Exception(oss.str());
28880 +      }
28881 +  }
28882 +  ret->setMeshName(meshName);
28883 +  ret->setDtUnit(dtunit.c_str());
28884 +  return ret.retn();
28885 +}
28886 +
28887 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
28888 +{
28889 +  med_field_type typcha;
28890 +  //
28891 +  std::vector<std::string> infos;
28892 +  std::string dtunit,fieldName,meshName;
28893 +  MEDFileAnyTypeField1TS::LocateField2(fid,0,true,fieldName,typcha,infos,dtunit,meshName);
28894 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> ret;
28895 +  switch(typcha)
28896 +  {
28897 +    case MED_FLOAT64:
28898 +      {
28899 +        ret=new MEDFileFieldMultiTSWithoutSDA(fid,0,loadAll,ms,0);
28900 +        break;
28901 +      }
28902 +    case MED_INT32:
28903 +      {
28904 +        ret=new MEDFileIntFieldMultiTSWithoutSDA(fid,0,loadAll,ms,0);
28905 +        break;
28906 +      }
28907 +    case MED_FLOAT32:
28908 +      {
28909 +        ret=new MEDFileFloatFieldMultiTSWithoutSDA(fid,0,loadAll,ms,0);
28910 +        break;
28911 +      }
28912 +    case MED_INT:
28913 +      {
28914 +        if(sizeof(med_int)==sizeof(int))
28915 +          {
28916 +            ret=new MEDFileIntFieldMultiTSWithoutSDA(fid,0,loadAll,ms,0);
28917 +            break;
28918 +          }
28919 +      }
28920 +    default:
28921 +      {
28922 +        std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::BuildContentFrom(fid) : file \'" << FileNameFromFID(fid) << "\' contains field with name \'" << fieldName << "\' but the type of the first field is not in [MED_FLOAT64, MED_INT32, MED_FLOAT32] !";
28923 +        throw INTERP_KERNEL::Exception(oss.str());
28924 +      }
28925 +  }
28926 +  ret->setMeshName(meshName);
28927 +  ret->setDtUnit(dtunit.c_str());
28928 +  return ret.retn();
28929 +}
28930 +
28931 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c)
28932 +{
28933 +  if(!c)
28934 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent : empty content in input : unable to build a new instance !");
28935 +  if(dynamic_cast<const MEDFileFieldMultiTSWithoutSDA *>(c))
28936 +    {
28937 +      MCAuto<MEDFileFieldMultiTS> ret(MEDFileFieldMultiTS::New());
28938 +      ret->_content=c;  c->incrRef();
28939 +      return ret.retn();
28940 +    }
28941 +  if(dynamic_cast<const MEDFileIntFieldMultiTSWithoutSDA *>(c))
28942 +    {
28943 +      MCAuto<MEDFileIntFieldMultiTS> ret(MEDFileIntFieldMultiTS::New());
28944 +      ret->_content=c;  c->incrRef();
28945 +      return ret.retn();
28946 +    }
28947 +  if(dynamic_cast<const MEDFileFloatFieldMultiTSWithoutSDA *>(c))
28948 +    {
28949 +      MCAuto<MEDFileFloatFieldMultiTS> ret(MEDFileFloatFieldMultiTS::New());
28950 +      ret->_content=c;  c->incrRef();
28951 +      return ret.retn();
28952 +    }
28953 +  throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent : internal error ! a content of type different from FLOAT64 FLOAT32 and INT32 has been built but not intercepted !");
28954 +}
28955 +
28956 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c, med_idt fid)
28957 +{
28958 +  MEDFileAnyTypeFieldMultiTS *ret(BuildNewInstanceFromContent(c));
28959 +  std::string fileName(FileNameFromFID(fid));
28960 +  ret->setFileName(fileName);
28961 +  return ret;
28962 +}
28963 +
28964 +MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
28965 +try:MEDFileFieldGlobsReal(fid)
28966 +{
28967 +  _content=BuildContentFrom(fid,fieldName,loadAll,ms,entities);
28968 +  loadGlobals(fid);
28969 +}
28970 +catch(INTERP_KERNEL::Exception& e)
28971 +{
28972 +    throw e;
28973 +}
28974 +
28975 +//= MEDFileAnyTypeFieldMultiTS
28976 +
28977 +/*!
28978 + * Returns a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS holding data of the first field
28979 + * that has been read from a specified MED file.
28980 + *  \param [in] fileName - the name of the MED file to read.
28981 + *  \return MEDFileFieldMultiTS * - a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS. The caller
28982 + *          is to delete this field using decrRef() as it is no more needed.
28983 + *  \throw If reading the file fails.
28984 + */
28985 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(const std::string& fileName, bool loadAll)
28986 +{
28987 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
28988 +  return New(fid,loadAll);
28989 +}
28990 +
28991 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(med_idt fid, bool loadAll)
28992 +{
28993 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c(BuildContentFrom(fid,loadAll,0));
28994 +  MCAuto<MEDFileAnyTypeFieldMultiTS> ret(BuildNewInstanceFromContent(c,fid));
28995 +  ret->loadGlobals(fid);
28996 +  return ret.retn();
28997 +}
28998 +
28999 +/*!
29000 + * Returns a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS holding data of a given field
29001 + * that has been read from a specified MED file.
29002 + *  \param [in] fileName - the name of the MED file to read.
29003 + *  \param [in] fieldName - the name of the field to read.
29004 + *  \return MEDFileFieldMultiTS * - a new instance of MEDFileFieldMultiTS or MEDFileIntFieldMultiTS. The caller
29005 + *          is to delete this field using decrRef() as it is no more needed.
29006 + *  \throw If reading the file fails.
29007 + *  \throw If there is no field named \a fieldName in the file.
29008 + */
29009 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(const std::string& fileName, const std::string& fieldName, bool loadAll)
29010 +{
29011 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName));
29012 +  return New(fid,fieldName,loadAll);
29013 +}
29014 +
29015 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::New(med_idt fid, const std::string& fieldName, bool loadAll)
29016 +{
29017 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c(BuildContentFrom(fid,fieldName,loadAll,0,0));
29018 +  MCAuto<MEDFileAnyTypeFieldMultiTS> ret(BuildNewInstanceFromContent(c,fid));
29019 +  ret->loadGlobals(fid);
29020 +  return ret.retn();
29021 +}
29022 +
29023 +/*!
29024 + * This constructor is a shallow copy constructor. If \a shallowCopyOfContent is true the content of \a other is shallow copied.
29025 + * If \a shallowCopyOfContent is false, \a other is taken to be the content of \a this.
29026 + *
29027 + * \warning this is a shallow copy constructor
29028 + */
29029 +MEDFileAnyTypeFieldMultiTS::MEDFileAnyTypeFieldMultiTS(const MEDFileAnyTypeFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent)
29030 +{
29031 +  if(!shallowCopyOfContent)
29032 +    {
29033 +      const MEDFileAnyTypeFieldMultiTSWithoutSDA *otherPtr(&other);
29034 +      otherPtr->incrRef();
29035 +      _content=const_cast<MEDFileAnyTypeFieldMultiTSWithoutSDA *>(otherPtr);
29036 +    }
29037 +  else
29038 +    {
29039 +      _content=other.shallowCpy();
29040 +    }
29041 +}
29042 +
29043 +MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::contentNotNullBase()
29044 +{
29045 +  MEDFileAnyTypeFieldMultiTSWithoutSDA *ret=_content;
29046 +  if(!ret)
29047 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS : content is expected to be not null !");
29048 +  return ret;
29049 +}
29050 +
29051 +const MEDFileAnyTypeFieldMultiTSWithoutSDA *MEDFileAnyTypeFieldMultiTS::contentNotNullBase() const
29052 +{
29053 +  const MEDFileAnyTypeFieldMultiTSWithoutSDA *ret=_content;
29054 +  if(!ret)
29055 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS : const content is expected to be not null !");
29056 +  return ret;
29057 +}
29058 +
29059 +std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getPflsReallyUsed() const
29060 +{
29061 +  return contentNotNullBase()->getPflsReallyUsed2();
29062 +}
29063 +
29064 +std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getLocsReallyUsed() const
29065 +{
29066 +  return contentNotNullBase()->getLocsReallyUsed2();
29067 +}
29068 +
29069 +std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getPflsReallyUsedMulti() const
29070 +{
29071 +  return contentNotNullBase()->getPflsReallyUsedMulti2();
29072 +}
29073 +
29074 +std::vector<std::string> MEDFileAnyTypeFieldMultiTS::getLocsReallyUsedMulti() const
29075 +{
29076 +  return contentNotNullBase()->getLocsReallyUsedMulti2();
29077 +}
29078 +
29079 +void MEDFileAnyTypeFieldMultiTS::changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
29080 +{
29081 +  contentNotNullBase()->changePflsRefsNamesGen2(mapOfModif);
29082 +}
29083 +
29084 +void MEDFileAnyTypeFieldMultiTS::changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif)
29085 +{
29086 +  contentNotNullBase()->changeLocsRefsNamesGen2(mapOfModif);
29087 +}
29088 +
29089 +int MEDFileAnyTypeFieldMultiTS::getNumberOfTS() const
29090 +{
29091 +  return contentNotNullBase()->getNumberOfTS();
29092 +}
29093 +
29094 +void MEDFileAnyTypeFieldMultiTS::eraseEmptyTS()
29095 +{
29096 +  contentNotNullBase()->eraseEmptyTS();
29097 +}
29098 +
29099 +void MEDFileAnyTypeFieldMultiTS::eraseTimeStepIds(const int *startIds, const int *endIds)
29100 +{
29101 +  contentNotNullBase()->eraseTimeStepIds(startIds,endIds);
29102 +}
29103 +
29104 +void MEDFileAnyTypeFieldMultiTS::eraseTimeStepIds2(int bg, int end, int step)
29105 +{
29106 +  contentNotNullBase()->eraseTimeStepIds2(bg,end,step);
29107 +}
29108 +
29109 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::buildSubPart(const int *startIds, const int *endIds) const
29110 +{
29111 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c=contentNotNullBase()->buildFromTimeStepIds(startIds,endIds);
29112 +  MCAuto<MEDFileAnyTypeFieldMultiTS> ret=shallowCpy();
29113 +  ret->_content=c;
29114 +  return ret.retn();
29115 +}
29116 +
29117 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::buildSubPartSlice(int bg, int end, int step) const
29118 +{
29119 +  MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> c=contentNotNullBase()->buildFromTimeStepIds2(bg,end,step);
29120 +  MCAuto<MEDFileAnyTypeFieldMultiTS> ret=shallowCpy();
29121 +  ret->_content=c;
29122 +  return ret.retn();
29123 +}
29124 +
29125 +std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTS::getIterations() const
29126 +{
29127 +  return contentNotNullBase()->getIterations();
29128 +}
29129 +
29130 +void MEDFileAnyTypeFieldMultiTS::pushBackTimeSteps(const std::vector<MEDFileAnyTypeField1TS *>& f1ts)
29131 +{
29132 +  for(std::vector<MEDFileAnyTypeField1TS *>::const_iterator it=f1ts.begin();it!=f1ts.end();it++)
29133 +    pushBackTimeStep(*it);
29134 +}
29135 +
29136 +void MEDFileAnyTypeFieldMultiTS::pushBackTimeSteps(MEDFileAnyTypeFieldMultiTS *fmts)
29137 +{
29138 +  if(!fmts)
29139 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::pushBackTimeSteps : Input fmts is NULL !");
29140 +  int nbOfTS(fmts->getNumberOfTS());
29141 +  for(int i=0;i<nbOfTS;i++)
29142 +    {
29143 +      MCAuto<MEDFileAnyTypeField1TS> elt(fmts->getTimeStepAtPos(i));
29144 +      pushBackTimeStep(elt);
29145 +    }
29146 +}
29147 +
29148 +void MEDFileAnyTypeFieldMultiTS::pushBackTimeStep(MEDFileAnyTypeField1TS *f1ts)
29149 +{
29150 +  if(!f1ts)
29151 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep : input pointer is NULL !");
29152 +  checkCoherencyOfType(f1ts);
29153 +  f1ts->incrRef();
29154 +  MCAuto<MEDFileAnyTypeField1TS> f1tsSafe(f1ts);
29155 +  MEDFileAnyTypeField1TSWithoutSDA *c=f1ts->contentNotNullBase();
29156 +  c->incrRef();
29157 +  MCAuto<MEDFileAnyTypeField1TSWithoutSDA> cSafe(c);
29158 +  if(!((MEDFileAnyTypeFieldMultiTSWithoutSDA *)_content))
29159 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTSWithoutSDA::pushBackTimeStep : no content in this !");
29160 +  _content->pushBackTimeStep(cSafe);
29161 +  appendGlobs(*f1ts,1e-12);
29162 +}
29163 +
29164 +void MEDFileAnyTypeFieldMultiTS::synchronizeNameScope()
29165 +{
29166 +  contentNotNullBase()->synchronizeNameScope();
29167 +}
29168 +
29169 +int MEDFileAnyTypeFieldMultiTS::getPosOfTimeStep(int iteration, int order) const
29170 +{
29171 +  return contentNotNullBase()->getPosOfTimeStep(iteration,order);
29172 +}
29173 +
29174 +int MEDFileAnyTypeFieldMultiTS::getPosGivenTime(double time, double eps) const
29175 +{
29176 +  return contentNotNullBase()->getPosGivenTime(time,eps);
29177 +}
29178 +
29179 +int MEDFileAnyTypeFieldMultiTS::getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const
29180 +{
29181 +  return contentNotNullBase()->getNonEmptyLevels(iteration,order,mname,levs);
29182 +}
29183 +
29184 +std::vector< std::vector<TypeOfField> > MEDFileAnyTypeFieldMultiTS::getTypesOfFieldAvailable() const
29185 +{
29186 +  return contentNotNullBase()->getTypesOfFieldAvailable();
29187 +}
29188 +
29189 +std::vector< std::vector< std::pair<int,int> > > MEDFileAnyTypeFieldMultiTS::getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
29190 +{
29191 +  return contentNotNullBase()->getFieldSplitedByType(iteration,order,mname,types,typesF,pfls,locs);
29192 +}
29193 +
29194 +std::string MEDFileAnyTypeFieldMultiTS::getName() const
29195 +{
29196 +  return contentNotNullBase()->getName();
29197 +}
29198 +
29199 +void MEDFileAnyTypeFieldMultiTS::setName(const std::string& name)
29200 +{
29201 +  contentNotNullBase()->setName(name);
29202 +}
29203 +
29204 +std::string MEDFileAnyTypeFieldMultiTS::getDtUnit() const
29205 +{
29206 +  return contentNotNullBase()->getDtUnit();
29207 +}
29208 +
29209 +void MEDFileAnyTypeFieldMultiTS::setDtUnit(const std::string& dtUnit)
29210 +{
29211 +  contentNotNullBase()->setDtUnit(dtUnit);
29212 +}
29213 +
29214 +void MEDFileAnyTypeFieldMultiTS::simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const
29215 +{
29216 +  contentNotNullBase()->simpleRepr(bkOffset,oss,fmtsId);
29217 +}
29218 +
29219 +std::vector< std::pair<int,int> > MEDFileAnyTypeFieldMultiTS::getTimeSteps(std::vector<double>& ret1) const
29220 +{
29221 +  return contentNotNullBase()->getTimeSteps(ret1);
29222 +}
29223 +
29224 +std::string MEDFileAnyTypeFieldMultiTS::getMeshName() const
29225 +{
29226 +  return contentNotNullBase()->getMeshName();
29227 +}
29228 +
29229 +void MEDFileAnyTypeFieldMultiTS::setMeshName(const std::string& newMeshName)
29230 +{
29231 +  contentNotNullBase()->setMeshName(newMeshName);
29232 +}
29233 +
29234 +bool MEDFileAnyTypeFieldMultiTS::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
29235 +{
29236 +  return contentNotNullBase()->changeMeshNames(modifTab);
29237 +}
29238 +
29239 +const std::vector<std::string>& MEDFileAnyTypeFieldMultiTS::getInfo() const
29240 +{
29241 +  return contentNotNullBase()->getInfo();
29242 +}
29243 +
29244 +bool MEDFileAnyTypeFieldMultiTS::presenceOfMultiDiscPerGeoType() const
29245 +{
29246 +  return contentNotNullBase()->presenceOfMultiDiscPerGeoType();
29247 +}
29248 +
29249 +void MEDFileAnyTypeFieldMultiTS::setInfo(const std::vector<std::string>& info)
29250 +{
29251 +  return contentNotNullBase()->setInfo(info);
29252 +}
29253 +
29254 +int MEDFileAnyTypeFieldMultiTS::getNumberOfComponents() const
29255 +{
29256 +  const std::vector<std::string> ret=getInfo();
29257 +  return (int)ret.size();
29258 +}
29259 +
29260 +void MEDFileAnyTypeFieldMultiTS::writeLL(med_idt fid) const
29261 +{
29262 +  writeGlobals(fid,*this);
29263 +  contentNotNullBase()->writeLL(fid,*this);
29264 +}
29265 +
29266 +/*!
29267 + * This method alloc the arrays and load potentially huge arrays contained in this field.
29268 + * This method should be called when a MEDFileAnyTypeFieldMultiTS::New constructor has been with false as the last parameter.
29269 + * This method can be also called to refresh or reinit values from a file.
29270 + * 
29271 + * \throw If the fileName is not set or points to a non readable MED file.
29272 + */
29273 +void MEDFileAnyTypeFieldMultiTS::loadArrays()
29274 +{
29275 +  if(getFileName().empty())
29276 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::loadArrays : the structure does not come from a file !");
29277 +  MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
29278 +  contentNotNullBase()->loadBigArraysRecursively(fid,*contentNotNullBase());
29279 +}
29280 +
29281 +/*!
29282 + * This method behaves as MEDFileAnyTypeFieldMultiTS::loadArrays does, the first call, if \a this was built using a file without loading big arrays.
29283 + * But once data loaded once, this method does nothing.
29284 + * 
29285 + * \throw If the fileName is not set or points to a non readable MED file.
29286 + * \sa MEDFileAnyTypeFieldMultiTS::loadArrays, MEDFileAnyTypeFieldMultiTS::unloadArrays
29287 + */
29288 +void MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary()
29289 +{
29290 +  if(!getFileName().empty())
29291 +    {
29292 +      MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(getFileName()));
29293 +      contentNotNullBase()->loadBigArraysRecursivelyIfNecessary(fid,*contentNotNullBase());
29294 +    }
29295 +}
29296 +
29297 +/*!
29298 + * This method releases potentially big data arrays and so returns to the same heap memory than status loaded with 'loadAll' parameter set to false.
29299 + * \b WARNING, this method does release arrays even if \a this does not come from a load of a MED file.
29300 + * So this method can lead to a loss of data. If you want to unload arrays safely call MEDFileAnyTypeFieldMultiTS::unloadArraysWithoutDataLoss instead.
29301 + * 
29302 + * \sa MEDFileAnyTypeFieldMultiTS::loadArrays, MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary, MEDFileAnyTypeFieldMultiTS::unloadArraysWithoutDataLoss
29303 + */
29304 +void MEDFileAnyTypeFieldMultiTS::unloadArrays()
29305 +{
29306 +  contentNotNullBase()->unloadArrays();
29307 +}
29308 +
29309 +/*!
29310 + * This method potentially releases big data arrays if \a this is coming from a file. If \a this has been built from scratch this method will have no effect.
29311 + * This method is the symmetrical method of MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary.
29312 + * This method is useful to reduce \b safely amount of heap memory necessary for \a this by using MED file as database.
29313 + * 
29314 + * \sa MEDFileAnyTypeFieldMultiTS::loadArraysIfNecessary
29315 + */
29316 +void MEDFileAnyTypeFieldMultiTS::unloadArraysWithoutDataLoss()
29317 +{
29318 +  if(!getFileName().empty())
29319 +    contentNotNullBase()->unloadArrays();
29320 +}
29321 +
29322 +std::string MEDFileAnyTypeFieldMultiTS::simpleRepr() const
29323 +{
29324 +  std::ostringstream oss;
29325 +  contentNotNullBase()->simpleRepr(0,oss,-1);
29326 +  simpleReprGlobs(oss);
29327 +  return oss.str();
29328 +}
29329 +
29330 +std::size_t MEDFileAnyTypeFieldMultiTS::getHeapMemorySizeWithoutChildren() const
29331 +{
29332 +  return MEDFileFieldGlobsReal::getHeapMemorySizeWithoutChildren();
29333 +}
29334 +
29335 +std::vector<const BigMemoryObject *> MEDFileAnyTypeFieldMultiTS::getDirectChildrenWithNull() const
29336 +{
29337 +  std::vector<const BigMemoryObject *> ret(MEDFileFieldGlobsReal::getDirectChildrenWithNull());
29338 +  ret.push_back((const MEDFileAnyTypeFieldMultiTSWithoutSDA *)_content);
29339 +  return ret;
29340 +}
29341 +
29342 +/*!
29343 + * This method returns as MEDFileAnyTypeFieldMultiTS new instances as number of components in \a this.
29344 + * The returned instances are deep copy of \a this except that for globals that are shared with those contained in \a this.
29345 + * ** WARNING ** do no forget to rename the output instances to avoid to write n-times in the same MED file field !
29346 + */
29347 +std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > MEDFileAnyTypeFieldMultiTS::splitComponents() const
29348 +{
29349 +  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
29350 +  if(!content)
29351 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::splitComponents : no content in this ! Unable to split components !");
29352 +  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > contentsSplit=content->splitComponents();
29353 +  std::size_t sz(contentsSplit.size());
29354 +  std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret(sz);
29355 +  for(std::size_t i=0;i<sz;i++)
29356 +    {
29357 +      ret[i]=shallowCpy();
29358 +      ret[i]->_content=contentsSplit[i];
29359 +    }
29360 +  return ret;
29361 +}
29362 +
29363 +/*!
29364 + * This method returns as MEDFileAnyTypeFieldMultiTS new instances as number of discretizations over time steps in \a this.
29365 + * The returned instances are shallow copied of \a this included globals that are shared with those contained in \a this.
29366 + */
29367 +std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > MEDFileAnyTypeFieldMultiTS::splitDiscretizations() const
29368 +{
29369 +  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
29370 +  if(!content)
29371 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::splitDiscretizations : no content in this ! Unable to split discretizations !");
29372 +  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > contentsSplit(content->splitDiscretizations());
29373 +  std::size_t sz(contentsSplit.size());
29374 +  std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret(sz);
29375 +  for(std::size_t i=0;i<sz;i++)
29376 +    {
29377 +      ret[i]=shallowCpy();
29378 +      ret[i]->_content=contentsSplit[i];
29379 +    }
29380 +  return ret;
29381 +}
29382 +
29383 +/*!
29384 + * This method returns as MEDFileAnyTypeFieldMultiTS new instances as number of sub-discretizations over time steps in \a this.
29385 + * The returned instances are shallow copied of \a this included globals that are shared with those contained in \a this.
29386 + */
29387 +std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > MEDFileAnyTypeFieldMultiTS::splitMultiDiscrPerGeoTypes() const
29388 +{
29389 +  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
29390 +  if(!content)
29391 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::splitMultiDiscrPerGeoTypes : no content in this ! Unable to split discretizations !");
29392 +  std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > contentsSplit(content->splitMultiDiscrPerGeoTypes());
29393 +  std::size_t sz(contentsSplit.size());
29394 +  std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > ret(sz);
29395 +  for(std::size_t i=0;i<sz;i++)
29396 +    {
29397 +      ret[i]=shallowCpy();
29398 +      ret[i]->_content=contentsSplit[i];
29399 +    }
29400 +  return ret;
29401 +}
29402 +
29403 +MEDFileAnyTypeFieldMultiTS *MEDFileAnyTypeFieldMultiTS::deepCopy() const
29404 +{
29405 +  MCAuto<MEDFileAnyTypeFieldMultiTS> ret=shallowCpy();
29406 +  if((const MEDFileAnyTypeFieldMultiTSWithoutSDA *)_content)
29407 +    ret->_content=_content->deepCopy();
29408 +  ret->deepCpyGlobs(*this);
29409 +  return ret.retn();
29410 +}
29411 +
29412 +MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> MEDFileAnyTypeFieldMultiTS::getContent()
29413 +{
29414 +  return _content;
29415 +}
29416 +
29417 +/*!
29418 + * Returns a new MEDFileField1TS or MEDFileIntField1TS holding data of a given time step of \a this field.
29419 + *  \param [in] iteration - the iteration number of a required time step.
29420 + *  \param [in] order - the iteration order number of required time step.
29421 + *  \return MEDFileField1TS * or MEDFileIntField1TS *- a new instance of MEDFileField1TS or MEDFileIntField1TS. The caller is to
29422 + *          delete this field using decrRef() as it is no more needed.
29423 + *  \throw If there is no required time step in \a this field.
29424 + */
29425 +MEDFileAnyTypeField1TS *MEDFileAnyTypeFieldMultiTS::getTimeStep(int iteration, int order) const
29426 +{
29427 +  int pos=getPosOfTimeStep(iteration,order);
29428 +  return getTimeStepAtPos(pos);
29429 +}
29430 +
29431 +/*!
29432 + * Returns a new MEDFileField1TS or MEDFileIntField1TS holding data of a given time step of \a this field.
29433 + *  \param [in] time - the time of the time step of interest.
29434 + *  \param [in] eps - a precision used to compare time values.
29435 + *  \return MEDFileField1TS * - a new instance of MEDFileField1TS. The caller is to
29436 + *          delete this field using decrRef() as it is no more needed.
29437 + *  \throw If there is no required time step in \a this field.
29438 + */
29439 +MEDFileAnyTypeField1TS *MEDFileAnyTypeFieldMultiTS::getTimeStepGivenTime(double time, double eps) const
29440 +{
29441 +  int pos=getPosGivenTime(time,eps);
29442 +  return getTimeStepAtPos(pos);
29443 +}
29444 +
29445 +/*!
29446 + * This method groups not null items in \a vectFMTS per time step series. Two time series are considered equal if the list of their pair of integers iteration,order are equal.
29447 + * The float64 value of time attached to the pair of integers are not considered here.
29448 + * WARNING the returned pointers are not incremented. The caller is \b not responsible to deallocate them ! This method only reorganizes entries in \a vectFMTS.
29449 + *
29450 + * \param [in] vectFMTS - vector of not null fields defined on a same global data pointer.
29451 + * \throw If there is a null pointer in \a vectFMTS.
29452 + */
29453 +std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS)
29454 +{
29455 +  static const char msg[]="MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries : presence of null instance in input vector !";
29456 +  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret;
29457 +  std::list<MEDFileAnyTypeFieldMultiTS *> lstFMTS(vectFMTS.begin(),vectFMTS.end());
29458 +  while(!lstFMTS.empty())
29459 +    {
29460 +      std::list<MEDFileAnyTypeFieldMultiTS *>::iterator it(lstFMTS.begin());
29461 +      MEDFileAnyTypeFieldMultiTS *curIt(*it);
29462 +      if(!curIt)
29463 +        throw INTERP_KERNEL::Exception(msg);
29464 +      std::vector< std::pair<int,int> > refIts=curIt->getIterations();
29465 +      std::vector<MEDFileAnyTypeFieldMultiTS *> elt;
29466 +      elt.push_back(curIt); it=lstFMTS.erase(it);
29467 +      while(it!=lstFMTS.end())
29468 +        {
29469 +          curIt=*it;
29470 +          if(!curIt)
29471 +            throw INTERP_KERNEL::Exception(msg);
29472 +          std::vector< std::pair<int,int> > curIts=curIt->getIterations();
29473 +          if(refIts==curIts)
29474 +            { elt.push_back(curIt); it=lstFMTS.erase(it); }
29475 +          else
29476 +            it++;
29477 +        }
29478 +      ret.push_back(elt);
29479 +    }
29480 +  return ret;
29481 +}
29482 +
29483 +/*!
29484 + * This method splits the input list \a vectFMTS considering the aspect of the geometrical support over time.
29485 + * All returned instances in a subvector can be safely loaded, rendered along time
29486 + * All items must be defined on the same time step ids ( see MEDFileAnyTypeFieldMultiTS::SplitIntoCommonTimeSeries method ).
29487 + * Each item in \a vectFMTS is expected to have one and exactly one spatial discretization along time.
29488 + * All items in \a vectFMTS must lie on the mesh (located by meshname and time step) and compatible with the input mesh \a mesh (having the same name than those in items).
29489 + * All items in \a vectFMTS whose spatial discretization is not ON_NODES will appear once.
29490 + * For items in \a vectFMTS that are ON_NODES it is possible to appear several times (more than once or once) in the returned vector.
29491 + *
29492 + * \param [in] vectFMTS - list of multi times step part all defined each on a same spatial discretization along time and pointing to a mesh whose name is equal to \c mesh->getName().
29493 + * \param [in] mesh - the mesh shared by all items in \a vectFMTS across time.
29494 + * \param [out] fsc - A vector having same size than returned vector. It specifies the support comporator of the corresponding vector of MEDFileAnyTypeFieldMultiTS in returned vector of vector.
29495 + * \return - A vector of vector of objects that contains the same pointers (objects) than thoose in \a vectFMTS except that there are organized differently. So pointers included in returned vector of vector should \b not been dealt by the caller.
29496 + *
29497 + * \throw If an element in \a vectFMTS has not only one spatial discretization set.
29498 + * \throw If an element in \a vectFMTS change of spatial discretization along time.
29499 + * \throw If an element in \a vectFMTS lies on a mesh with meshname different from those in \a mesh.
29500 + * \thorw If some elements in \a vectFMTS do not have the same times steps.
29501 + * \throw If mesh is null.
29502 + * \throw If an element in \a vectFMTS is null.
29503 + * \sa MEDFileAnyTypeFieldMultiTS::AreOnSameSupportAcrossTime
29504 + */
29505 +std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& fsc)
29506 +{
29507 +  static const char msg[]="MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport : presence of a null instance in the input vector !";
29508 +  if(!mesh)
29509 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport : input mesh is null !");
29510 +  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret;
29511 +  if(vectFMTS.empty())
29512 +    return ret;
29513 +  std::vector<MEDFileAnyTypeFieldMultiTS *>::const_iterator it(vectFMTS.begin());
29514 +  MEDFileAnyTypeFieldMultiTS *frstElt(*it);
29515 +  if(!frstElt)
29516 +    throw INTERP_KERNEL::Exception(msg);
29517 +  std::size_t i=0;
29518 +  std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTSNotNodes;
29519 +  std::vector<MEDFileAnyTypeFieldMultiTS *> vectFMTSNodes;
29520 +  for(;it!=vectFMTS.end();it++,i++)
29521 +    {
29522 +      if(!(*it))
29523 +        throw INTERP_KERNEL::Exception(msg);
29524 +      TypeOfField tof0,tof1;
29525 +      if(CheckSupportAcrossTime(frstElt,*it,mesh,tof0,tof1)>0)
29526 +        {
29527 +          if(tof1!=ON_NODES)
29528 +            vectFMTSNotNodes.push_back(*it);
29529 +          else
29530 +            vectFMTSNodes.push_back(*it);
29531 +        }
29532 +      else
29533 +        vectFMTSNotNodes.push_back(*it);
29534 +    }
29535 +  std::vector< MCAuto<MEDFileFastCellSupportComparator> > cmps;
29536 +  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > retCell=SplitPerCommonSupportNotNodesAlg(vectFMTSNotNodes,mesh,cmps);
29537 +  ret=retCell;
29538 +  for(std::vector<MEDFileAnyTypeFieldMultiTS *>::const_iterator it2=vectFMTSNodes.begin();it2!=vectFMTSNodes.end();it2++)
29539 +    {
29540 +      i=0;
29541 +      bool isFetched(false);
29542 +      for(std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> >::const_iterator it0=retCell.begin();it0!=retCell.end();it0++,i++)
29543 +        {
29544 +          if((*it0).empty())
29545 +            throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport : internal error !");
29546 +          if(cmps[i]->isCompatibleWithNodesDiscr(*it2))
29547 +            { ret[i].push_back(*it2); isFetched=true; }
29548 +        }
29549 +      if(!isFetched)
29550 +        {
29551 +          std::vector<MEDFileAnyTypeFieldMultiTS *> tmp(1,*it2);
29552 +          MCAuto<MEDFileMeshStruct> tmp2(MEDFileMeshStruct::New(mesh));
29553 +          ret.push_back(tmp); retCell.push_back(tmp); cmps.push_back(MEDFileFastCellSupportComparator::New(tmp2,*it2));
29554 +        }
29555 +    }
29556 +  fsc=cmps;
29557 +  return ret;
29558 +}
29559 +
29560 +/*!
29561 + * WARNING no check here. The caller must be sure that all items in vectFMTS are coherent each other in time steps, only one same spatial discretization and not ON_NODES.
29562 + * \param [out] cmps - same size than the returned vector.
29563 + */
29564 +std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupportNotNodesAlg(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& cmps)
29565 +{
29566 +  std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > ret;
29567 +  std::list<MEDFileAnyTypeFieldMultiTS *> lstFMTS(vectFMTS.begin(),vectFMTS.end());
29568 +  while(!lstFMTS.empty())
29569 +    {
29570 +      std::list<MEDFileAnyTypeFieldMultiTS *>::iterator it(lstFMTS.begin());
29571 +      MEDFileAnyTypeFieldMultiTS *ref(*it);
29572 +      std::vector<MEDFileAnyTypeFieldMultiTS *> elt;
29573 +      elt.push_back(ref); it=lstFMTS.erase(it);
29574 +      MCAuto<MEDFileMeshStruct> mst(MEDFileMeshStruct::New(mesh));
29575 +      MCAuto<MEDFileFastCellSupportComparator> cmp(MEDFileFastCellSupportComparator::New(mst,ref));
29576 +      while(it!=lstFMTS.end())
29577 +        {
29578 +          MEDFileAnyTypeFieldMultiTS *curIt(*it);
29579 +          if(cmp->isEqual(curIt))
29580 +            { elt.push_back(curIt); it=lstFMTS.erase(it); }
29581 +          else
29582 +            it++;
29583 +        }
29584 +      ret.push_back(elt); cmps.push_back(cmp);
29585 +    }
29586 +  return ret;
29587 +}
29588 +
29589 +/*!
29590 + * This method scan the two main structs along time of \a f0 and \a f1 to see if there are all lying on the same mesh along time than those in \a mesh.
29591 + * \a f0 and \a f1 must be defined each only on a same spatial discretization even if this can be different each other.
29592 + *
29593 + * \throw If \a f0 or \a f1 has not only one spatial discretization set.
29594 + * \throw If \a f0 or \a f1 change of spatial discretization along time.
29595 + * \throw If \a f0 or \a f1 on a mesh with meshname different from those in \a mesh.
29596 + * \thorw If \a f0 and \a f1 do not have the same times steps.
29597 + * \throw If mesh is null.
29598 + * \throw If \a f0 or \a f1 is null.
29599 + * \sa MEDFileAnyTypeFieldMultiTS::SplitPerCommonSupport
29600 + */
29601 +int MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime(MEDFileAnyTypeFieldMultiTS *f0, MEDFileAnyTypeFieldMultiTS *f1, const MEDFileMesh *mesh, TypeOfField& tof0, TypeOfField& tof1)
29602 +{
29603 +  if(!mesh)
29604 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : input mesh is null !");
29605 +  if(!f0 || !f1)
29606 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : presence of null instance in fields over time !");
29607 +  if(f0->getMeshName()!=mesh->getName())
29608 +    {
29609 +      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : first field points to mesh \""<< f0->getMeshName() << "\" and input mesh to compare has name \"" << mesh->getName() << "\" !";
29610 +      throw INTERP_KERNEL::Exception(oss.str());
29611 +    }
29612 +  if(f1->getMeshName()!=mesh->getName())
29613 +    {
29614 +      std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : second field points to mesh \""<< f1->getMeshName() << "\" and input mesh to compare has name \"" << mesh->getName() << "\" !";
29615 +      throw INTERP_KERNEL::Exception(oss.str());
29616 +    }
29617 +  int nts=f0->getNumberOfTS();
29618 +  if(nts!=f1->getNumberOfTS())
29619 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : number of time steps are not the same !");
29620 +  if(nts==0)
29621 +    return nts;
29622 +  for(int i=0;i<nts;i++)
29623 +    {
29624 +      MCAuto<MEDFileAnyTypeField1TS> f0cur=f0->getTimeStepAtPos(i);
29625 +      MCAuto<MEDFileAnyTypeField1TS> f1cur=f1->getTimeStepAtPos(i);
29626 +      std::vector<TypeOfField> tofs0(f0cur->getTypesOfFieldAvailable()),tofs1(f1cur->getTypesOfFieldAvailable());
29627 +      if(tofs0.size()!=1 || tofs1.size()!=1)
29628 +        throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : All time steps must be defined on only one spatial discretization !");
29629 +      if(i!=0)
29630 +        {
29631 +          if(tof0!=tofs0[0] || tof1!=tofs1[0])
29632 +            throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : Across times steps MEDFileAnyTypeFieldMultiTS instances have to keep the same unique spatial discretization !");
29633 +        }
29634 +      else
29635 +        { tof0=tofs0[0]; tof1=tofs1[0]; }
29636 +      if(f0cur->getMeshIteration()!=mesh->getIteration() || f0cur->getMeshOrder()!=mesh->getOrder())
29637 +        {
29638 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : first field points to mesh time step (" << f0cur->getMeshIteration() << ","<< f0cur->getMeshOrder() << ") whereas input mesh points to time step (" << mesh->getIteration() << "," << mesh->getOrder() << ") !";
29639 +          throw INTERP_KERNEL::Exception(oss.str());
29640 +        }
29641 +      if(f1cur->getMeshIteration()!=mesh->getIteration() || f1cur->getMeshOrder()!=mesh->getOrder())
29642 +        {
29643 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : second field points to mesh time step (" << f1cur->getMeshIteration() << ","<< f1cur->getMeshOrder() << ") whereas input mesh points to time step (" << mesh->getIteration() << "," << mesh->getOrder() << ") !";
29644 +          throw INTERP_KERNEL::Exception(oss.str());
29645 +        }
29646 +      if(f0cur->getIteration()!=f1cur->getIteration() || f0cur->getOrder()!=f1cur->getOrder())
29647 +        {
29648 +          std::ostringstream oss; oss << "MEDFileAnyTypeFieldMultiTS::CheckSupportAcrossTime : all the time steps must be the same ! it is not the case (" << f0cur->getIteration() << "," << f0cur->getOrder() << ")!=(" << f1cur->getIteration() << "," << f1cur->getOrder() << ") !";
29649 +          throw INTERP_KERNEL::Exception(oss.str());
29650 +        }
29651 +    }
29652 +  return nts;
29653 +}
29654 +
29655 +template<class T>
29656 +MCAuto<MEDFileAnyTypeField1TS> AggregateHelperF1TS(const std::vector< typename MLFieldTraits<T>::F1TSType const *>& f1tss, const std::vector< std::vector< std::pair<int,int> > >& dts)
29657 +{
29658 +  MCAuto< typename MLFieldTraits<T>::F1TSType > ret(MLFieldTraits<T>::F1TSType::New());
29659 +  if(f1tss.empty())
29660 +    throw INTERP_KERNEL::Exception("AggregateHelperF1TS : empty vector !");
29661 +  std::size_t sz(f1tss.size()),i(0);
29662 +  std::vector< typename MLFieldTraits<T>::F1TSWSDAType const *> f1tsw(sz);
29663 +  for(typename std::vector< typename MLFieldTraits<T>::F1TSType const *>::const_iterator it=f1tss.begin();it!=f1tss.end();it++,i++)
29664 +    {
29665 +      typename MLFieldTraits<T>::F1TSType const *elt(*it);
29666 +      if(!elt)
29667 +        throw INTERP_KERNEL::Exception("AggregateHelperF1TS : presence of a null pointer !");
29668 +      f1tsw[i]=dynamic_cast<typename MLFieldTraits<T>::F1TSWSDAType const *>(elt->contentNotNullBase());
29669 +    }
29670 +  typename MLFieldTraits<T>::F1TSWSDAType *retc(dynamic_cast<typename MLFieldTraits<T>::F1TSWSDAType *>(ret->contentNotNullBase()));
29671 +  if(!retc)
29672 +    throw INTERP_KERNEL::Exception("AggregateHelperF1TS : internal error 1 !");
29673 +  retc->aggregate(f1tsw,dts);
29674 +  ret->setDtUnit(f1tss[0]->getDtUnit());
29675 +  return DynamicCast<typename MLFieldTraits<T>::F1TSType , MEDFileAnyTypeField1TS>(ret);
29676 +}
29677 +
29678 +template<class T>
29679 +MCAuto< MEDFileAnyTypeFieldMultiTS > AggregateHelperFMTS(const std::vector< typename MLFieldTraits<T>::FMTSType const *>& fmtss, const std::vector< std::vector< std::pair<int,int> > >& dts)
29680 +{
29681 +  MCAuto< typename MLFieldTraits<T>::FMTSType > ret(MLFieldTraits<T>::FMTSType::New());
29682 +  if(fmtss.empty())
29683 +    throw INTERP_KERNEL::Exception("AggregateHelperFMTS : empty vector !");
29684 +  std::size_t sz(fmtss.size());
29685 +  for(typename std::vector< typename MLFieldTraits<T>::FMTSType const *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++)
29686 +    {
29687 +      typename MLFieldTraits<T>::FMTSType const *elt(*it);
29688 +      if(!elt)
29689 +        throw INTERP_KERNEL::Exception("AggregateHelperFMTS : presence of null pointer !");
29690 +    }
29691 +  int nbTS(fmtss[0]->getNumberOfTS());
29692 +  for(typename std::vector< typename MLFieldTraits<T>::FMTSType const *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++)
29693 +    if((*it)->getNumberOfTS()!=nbTS)
29694 +      throw INTERP_KERNEL::Exception("AggregateHelperFMTS : all fields must have the same number of TS !");
29695 +  for(int iterTS=0;iterTS<nbTS;iterTS++)
29696 +    {
29697 +      std::size_t i(0);
29698 +      std::vector< typename MLFieldTraits<T>::F1TSType const *> f1tss(sz);
29699 +      std::vector< MCAuto<typename MLFieldTraits<T>::F1TSType> > f1tss2(sz);
29700 +      for(typename std::vector< typename MLFieldTraits<T>::FMTSType const *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++,i++)
29701 +        { f1tss2[i]=(*it)->getTimeStepAtPos(iterTS); f1tss[i]=f1tss2[i]; }
29702 +      MCAuto<MEDFileAnyTypeField1TS> f1ts(AggregateHelperF1TS<T>(f1tss,dts));
29703 +      ret->pushBackTimeStep(f1ts);
29704 +      ret->setDtUnit(f1ts->getDtUnit());
29705 +    }
29706 +  return DynamicCast<typename MLFieldTraits<T>::FMTSType , MEDFileAnyTypeFieldMultiTS>(ret);
29707 +}
29708 +
29709 +/*!
29710 + * \a dts and \a ftmss are expected to have same size.
29711 + */
29712 +MCAuto<MEDFileAnyTypeFieldMultiTS> MEDFileAnyTypeFieldMultiTS::Aggregate(const std::vector<const MEDFileAnyTypeFieldMultiTS *>& fmtss, const std::vector< std::vector< std::pair<int,int> > >& dts)
29713 +{
29714 +  if(fmtss.empty())
29715 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : input vector is empty !");
29716 +  std::size_t sz(fmtss.size());
29717 +  std::vector<const MEDFileFieldMultiTS *> fmtss1;
29718 +  std::vector<const MEDFileIntFieldMultiTS *> fmtss2;
29719 +  for(std::vector<const MEDFileAnyTypeFieldMultiTS *>::const_iterator it=fmtss.begin();it!=fmtss.end();it++)
29720 +    {
29721 +      if(!(*it))
29722 +        throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : presence of null instance in input vector !");
29723 +      const MEDFileFieldMultiTS *elt1(dynamic_cast<const MEDFileFieldMultiTS *>(*it));
29724 +      if(elt1)
29725 +        {
29726 +          fmtss1.push_back(elt1);
29727 +          continue;
29728 +        }
29729 +      const MEDFileIntFieldMultiTS *elt2(dynamic_cast<const MEDFileIntFieldMultiTS *>(*it));
29730 +      if(elt2)
29731 +        {
29732 +          fmtss2.push_back(elt2);
29733 +          continue;
29734 +        }
29735 +      throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : not recognized type !");
29736 +    }
29737 +  if(fmtss1.size()!=sz && fmtss2.size()!=sz)
29738 +    throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : type of data is not homogeneous !");
29739 +  if(fmtss1.size()==sz)
29740 +    return AggregateHelperFMTS<double>(fmtss1,dts);
29741 +  if(fmtss2.size()!=sz)
29742 +    return AggregateHelperFMTS<int>(fmtss2,dts);
29743 +  throw INTERP_KERNEL::Exception("MEDFileAnyTypeFieldMultiTS::Aggregate : not implemented yet !");
29744 +}
29745 +
29746 +MEDFileAnyTypeFieldMultiTSIterator *MEDFileAnyTypeFieldMultiTS::iterator()
29747 +{
29748 +  return new MEDFileAnyTypeFieldMultiTSIterator(this);
29749 +}
29750 +
29751 +//= MEDFileFieldMultiTS
29752 +
29753 +MEDFileAnyTypeFieldMultiTS *MEDFileFieldMultiTS::shallowCpy() const
29754 +{
29755 +  return new MEDFileFieldMultiTS(*this);
29756 +}
29757 +
29758 +/*!
29759 + * This method performs a copy with datatype modification ( float64->int32 ) of \a this. The globals information are copied
29760 + * following the given input policy.
29761 + *
29762 + * \param [in] isDeepCpyGlobs - a boolean that indicates the behaviour concerning globals (profiles and localizations)
29763 + *                            By default (true) the globals are deeply copied.
29764 + * \return MEDFileIntFieldMultiTS * - a new object that is the result of the conversion of \a this to int32 field.
29765 + */
29766 +MEDFileIntFieldMultiTS *MEDFileFieldMultiTS::convertToInt(bool isDeepCpyGlobs) const
29767 +{
29768 +  MCAuto<MEDFileIntFieldMultiTS> ret;
29769 +  const MEDFileAnyTypeFieldMultiTSWithoutSDA *content(_content);
29770 +  if(content)
29771 +    {
29772 +      const MEDFileFieldMultiTSWithoutSDA *contc=dynamic_cast<const MEDFileFieldMultiTSWithoutSDA *>(content);
29773 +      if(!contc)
29774 +        throw INTERP_KERNEL::Exception("MEDFileFieldMultiTS::convertToInt : the content inside this is not FLOAT64 ! This is incoherent !");
29775 +      MCAuto<MEDFileIntFieldMultiTSWithoutSDA> newc(contc->convertToInt());
29776 +      ret=static_cast<MEDFileIntFieldMultiTS *>(MEDFileAnyTypeFieldMultiTS::BuildNewInstanceFromContent((MEDFileIntFieldMultiTSWithoutSDA *)newc));
29777 +    }
29778 +  else
29779 +    ret=MEDFileIntFieldMultiTS::New();
29780 +  if(isDeepCpyGlobs)
29781 +    ret->deepCpyGlobs(*this);
29782 +  else
29783 +    ret->shallowCpyGlobs(*this);
29784 +  return ret.retn();
29785 +}
29786 +
29787 +MEDFileFieldMultiTS::MEDFileFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms)
29788 +try:MEDFileTemplateFieldMultiTS<double>(fid,loadAll,ms)
29789 +{
29790 +}
29791 +catch(INTERP_KERNEL::Exception& e)
29792 +{ throw e; }
29793 +
29794 +MEDFileFieldMultiTS::MEDFileFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities)
29795 +try:MEDFileTemplateFieldMultiTS<double>(fid,fieldName,loadAll,ms,entities)
29796 +{
29797 +}
29798 +catch(INTERP_KERNEL::Exception& e)
29799 +{ throw e; }
29800 +
29801 +MEDFileFieldMultiTS::MEDFileFieldMultiTS(const MEDFileFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent):MEDFileTemplateFieldMultiTS<double>(other,shallowCopyOfContent)
29802 +{
29803 +}
29804 +
29805 +std::vector< std::vector<DataArrayDouble *> > MEDFileFieldMultiTS::getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const
29806 +{
29807 +  return contentNotNull()->getFieldSplitedByType2(iteration,order,mname,types,typesF,pfls,locs);
29808 +}
29809 +
29810 +//= MEDFileAnyTypeFieldMultiTSIterator
29811 +
29812 +MEDFileAnyTypeFieldMultiTSIterator::MEDFileAnyTypeFieldMultiTSIterator(MEDFileAnyTypeFieldMultiTS *fmts):_fmts(fmts),_iter_id(0),_nb_iter(0)
29813 +{
29814 +  if(fmts)
29815 +    {
29816 +      fmts->incrRef();
29817 +      _nb_iter=fmts->getNumberOfTS();
29818 +    }
29819 +}
29820 +
29821 +MEDFileAnyTypeFieldMultiTSIterator::~MEDFileAnyTypeFieldMultiTSIterator() 
29822 +{
29823 +}
29824 +
29825 +MEDFileAnyTypeField1TS *MEDFileAnyTypeFieldMultiTSIterator::nextt()
29826 +{
29827 +  if(_iter_id<_nb_iter)
29828 +    {
29829 +      MEDFileAnyTypeFieldMultiTS *fmts(_fmts);
29830 +      if(fmts)
29831 +        return fmts->getTimeStepAtPos(_iter_id++);
29832 +      else
29833 +        return 0;
29834 +    }
29835 +  else
29836 +    return 0;
29837 +}
29838 +
29839 +//= MEDFileIntFieldMultiTS
29840 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldMultiTS.hxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldMultiTS.hxx
29841 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldMultiTS.hxx       1970-01-01 01:00:00.000000000 +0100
29842 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldMultiTS.hxx       2018-04-19 17:25:17.739797396 +0200
29843 @@ -0,0 +1,417 @@
29844 +// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
29845 +//
29846 +// This library is free software; you can redistribute it and/or
29847 +// modify it under the terms of the GNU Lesser General Public
29848 +// License as published by the Free Software Foundation; either
29849 +// version 2.1 of the License, or (at your option) any later version.
29850 +//
29851 +// This library is distributed in the hope that it will be useful,
29852 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
29853 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
29854 +// Lesser General Public License for more details.
29855 +//
29856 +// You should have received a copy of the GNU Lesser General Public
29857 +// License along with this library; if not, write to the Free Software
29858 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
29859 +//
29860 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
29861 +//
29862 +// Author : Anthony Geay (EDF R&D)
29863 +
29864 +#ifndef __MEDFILEFIELDMULTITS_HXX__
29865 +#define __MEDFILEFIELDMULTITS_HXX__
29866 +
29867 +#include "MEDLoaderDefines.hxx"
29868 +#include "MEDFileField1TS.hxx"
29869 +#include "MEDFileFieldGlobs.hxx"
29870 +#include "MEDLoaderTraits.hxx"
29871 +#include "MEDFileUtilities.hxx"
29872 +
29873 +namespace MEDCoupling
29874 +{
29875 +  class MEDFileMesh;
29876 +  class MEDFileMeshes;
29877 +  class MEDCouplingMesh;
29878 +  class MEDFileFieldVisitor;
29879 +  class MEDFileAnyTypeField1TS;
29880 +  class MEDFileAnyTypeField1TSWithoutSDA;
29881 +  
29882 +  class MEDFileAnyTypeFieldMultiTSWithoutSDA : public RefCountObject, public MEDFileFieldNameScope
29883 +  {
29884 +  protected:
29885 +    MEDFileAnyTypeFieldMultiTSWithoutSDA();
29886 +    MEDFileAnyTypeFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName);
29887 +    MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
29888 +    MEDFileAnyTypeFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
29889 +  public:
29890 +    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
29891 +    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
29892 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTSWithoutSDA *deepCopy() const;
29893 +    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > splitComponents() const;
29894 +    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > splitDiscretizations() const;
29895 +    MEDLOADER_EXPORT virtual std::vector< MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> > splitMultiDiscrPerGeoTypes() const;
29896 +    MEDLOADER_EXPORT virtual const char *getTypeStr() const = 0;
29897 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const = 0;
29898 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTSWithoutSDA *createNew() const = 0;
29899 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TSWithoutSDA *createNew1TSWithoutSDAEmptyInstance() const = 0;
29900 +    MEDLOADER_EXPORT virtual void checkCoherencyOfType(const MEDFileAnyTypeField1TSWithoutSDA *f1ts) const = 0;
29901 +    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
29902 +    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
29903 +    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& info);
29904 +    MEDLOADER_EXPORT int getTimeStepPos(int iteration, int order) const;
29905 +    MEDLOADER_EXPORT const MEDFileAnyTypeField1TSWithoutSDA& getTimeStepEntry(int iteration, int order) const;
29906 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA& getTimeStepEntry(int iteration, int order);
29907 +    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
29908 +    MEDLOADER_EXPORT int getNumberOfTS() const;
29909 +    MEDLOADER_EXPORT void eraseEmptyTS();
29910 +    MEDLOADER_EXPORT void eraseTimeStepIds(const int *startIds, const int *endIds);
29911 +    MEDLOADER_EXPORT void eraseTimeStepIds2(int bg, int end, int step);
29912 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *buildFromTimeStepIds(const int *startIds, const int *endIds) const;
29913 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *buildFromTimeStepIds2(int bg, int end, int step) const;
29914 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *partOfThisLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const;
29915 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *partOfThisNotLyingOnSpecifiedTimeSteps(const std::vector< std::pair<int,int> >& timeSteps) const;
29916 +    MEDLOADER_EXPORT bool presenceOfStructureElements() const;
29917 +    MEDLOADER_EXPORT bool onlyStructureElements() const;
29918 +    MEDLOADER_EXPORT void killStructureElements();
29919 +    MEDLOADER_EXPORT void keepOnlyStructureElements();
29920 +    MEDLOADER_EXPORT void keepOnlyOnSE(const std::string& seName);
29921 +    MEDLOADER_EXPORT void getMeshSENames(std::vector< std::pair<std::string,std::string> >& ps) const;
29922 +    MEDLOADER_EXPORT int getPosOfTimeStep(int iteration, int order) const;
29923 +    MEDLOADER_EXPORT int getPosGivenTime(double time, double eps=1e-8) const;
29924 +    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getIterations() const;
29925 +    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getTimeSteps(std::vector<double>& ret1) const;
29926 +    MEDLOADER_EXPORT void pushBackTimeStep(MCAuto<MEDFileAnyTypeField1TSWithoutSDA>& tse);
29927 +    MEDLOADER_EXPORT void synchronizeNameScope();
29928 +    MEDLOADER_EXPORT void simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const;
29929 +    MEDLOADER_EXPORT int getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const;
29930 +    MEDLOADER_EXPORT void appendFieldNoProfileSBT(const MEDCouplingFieldDouble *field, const DataArray *arr, MEDFileFieldGlobsReal& glob);
29931 +    MEDLOADER_EXPORT void appendFieldProfile(const MEDCouplingFieldDouble *field, const DataArray *arr, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, MEDFileFieldGlobsReal& glob, bool smartPflKiller);
29932 +    MEDLOADER_EXPORT std::vector< std::vector< std::pair<int,int> > > getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
29933 +    MEDLOADER_EXPORT std::vector< std::vector<TypeOfField> > getTypesOfFieldAvailable() const;
29934 +    MEDLOADER_EXPORT DataArray *getUndergroundDataArray(int iteration, int order) const;
29935 +    MEDLOADER_EXPORT DataArray *getUndergroundDataArrayExt(int iteration, int order, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
29936 +    MEDLOADER_EXPORT bool renumberEntitiesLyingOnMesh(const std::string& meshName, const std::vector<int>& oldCode, const std::vector<int>& newCode, const DataArrayInt *renumO2N, MEDFileFieldGlobsReal& glob);
29937 +    MEDLOADER_EXPORT void accept(MEDFileFieldVisitor& visitor) const;
29938 +    MEDLOADER_EXPORT void loadStructureOrStructureAndBigArraysRecursively(med_idt fid, int nbPdt, med_field_type fieldTyp, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
29939 +    MEDLOADER_EXPORT void writeLL(med_idt fid, const MEDFileWritable& opts) const;
29940 +    MEDLOADER_EXPORT void loadBigArraysRecursively(med_idt fid, const MEDFileFieldNameScope& nasc);
29941 +    MEDLOADER_EXPORT void loadBigArraysRecursivelyIfNecessary(med_idt fid, const MEDFileFieldNameScope& nasc);
29942 +    MEDLOADER_EXPORT void unloadArrays();
29943 +  public:
29944 +    MEDLOADER_EXPORT const MEDFileAnyTypeField1TSWithoutSDA *getTimeStepAtPos2(int pos) const;
29945 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA *getTimeStepAtPos2(int pos);
29946 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed2() const;
29947 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed2() const;
29948 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti2() const;
29949 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti2() const;
29950 +    MEDLOADER_EXPORT void changePflsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
29951 +    MEDLOADER_EXPORT void changeLocsRefsNamesGen2(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
29952 +    MEDLOADER_EXPORT void setIteration(int i, MCAuto<MEDFileAnyTypeField1TSWithoutSDA> ts);
29953 +  protected:
29954 +    virtual med_field_type getMEDFileFieldType() const = 0;
29955 +    void copyTinyInfoFrom(const MEDCouplingFieldDouble *field, const DataArray *arr);
29956 +    void checkCoherencyOfTinyInfo(const MEDCouplingFieldDouble *field, const DataArray *arr) const;
29957 +    void checkThatComponentsMatch(const std::vector<std::string>& compos) const;
29958 +    void checkThatNbOfCompoOfTSMatchThis() const;
29959 +  protected:
29960 +    std::vector<std::string> _infos;
29961 +    std::vector< MCAuto<MEDFileAnyTypeField1TSWithoutSDA> > _time_steps;
29962 +  };
29963 +
29964 +  class MEDFileIntFieldMultiTSWithoutSDA;
29965 +
29966 +  template<class T>
29967 +  class MEDFileTemplateFieldMultiTSWithoutSDA : public MEDFileAnyTypeFieldMultiTSWithoutSDA
29968 +  {
29969 +  public:
29970 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSWSDAType *New(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
29971 +    MEDLOADER_EXPORT const char *getTypeStr() const;
29972 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *createNew() const;
29973 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TSWithoutSDA *createNew1TSWithoutSDAEmptyInstance() const;
29974 +  protected:
29975 +    MEDFileTemplateFieldMultiTSWithoutSDA() { }
29976 +    MEDFileTemplateFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileAnyTypeFieldMultiTSWithoutSDA(fieldName,meshName) { }
29977 +    /** \param [in] fieldId field id in C mode */
29978 +    MEDFileTemplateFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileAnyTypeFieldMultiTSWithoutSDA(fid,fieldId,loadAll,ms,entities) { }
29979 +    MEDFileTemplateFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileAnyTypeFieldMultiTSWithoutSDA(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
29980 +    void checkCoherencyOfType(const MEDFileAnyTypeField1TSWithoutSDA *f1ts) const;
29981 +  };
29982 +  
29983 +  class MEDFileFieldMultiTSWithoutSDA : public MEDFileTemplateFieldMultiTSWithoutSDA<double>
29984 +  {
29985 +    friend class MEDFileTemplateFieldMultiTSWithoutSDA<double>;
29986 +  public:
29987 +    MEDLOADER_EXPORT MEDFileFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<double>(fid,fieldId,loadAll,ms,entities) { }
29988 +    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
29989 +    MEDLOADER_EXPORT MEDFileIntFieldMultiTSWithoutSDA *convertToInt() const;
29990 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const { return new MEDFileFieldMultiTSWithoutSDA(*this); }
29991 +  protected:
29992 +    MEDFileFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileTemplateFieldMultiTSWithoutSDA<double>(fieldName,meshName) { }
29993 +    MEDFileFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<double>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
29994 +    med_field_type getMEDFileFieldType() const { return MED_FLOAT64; }
29995 +  public:
29996 +    MEDLOADER_EXPORT MEDFileFieldMultiTSWithoutSDA() { }
29997 +  };
29998 +
29999 +  template<class T>
30000 +  class MEDFileNDTemplateFieldMultiTSWithoutSDA : public MEDFileTemplateFieldMultiTSWithoutSDA<T>
30001 +  {
30002 +  public:
30003 +    MEDLOADER_EXPORT MEDFileFieldMultiTSWithoutSDA *convertToDouble() const;
30004 +  protected:
30005 +    MEDFileNDTemplateFieldMultiTSWithoutSDA() { }
30006 +    MEDFileNDTemplateFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<T>(fid,fieldId,loadAll,ms,entities) { }
30007 +    MEDFileNDTemplateFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileTemplateFieldMultiTSWithoutSDA<T>(fieldName,meshName) { }
30008 +    MEDFileNDTemplateFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTSWithoutSDA<T>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
30009 +  };
30010 +
30011 +  class MEDFileIntFieldMultiTSWithoutSDA : public MEDFileNDTemplateFieldMultiTSWithoutSDA<int>
30012 +  {
30013 +    friend class MEDFileTemplateFieldMultiTSWithoutSDA<int>;
30014 +  public:
30015 +    MEDLOADER_EXPORT MEDFileIntFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<int>(fid,fieldId,loadAll,ms,entities) { }
30016 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const { return new MEDFileIntFieldMultiTSWithoutSDA(*this); }
30017 +  protected:
30018 +    MEDFileIntFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileNDTemplateFieldMultiTSWithoutSDA<int>(fieldName,meshName) { }
30019 +    MEDFileIntFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<int>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
30020 +    med_field_type getMEDFileFieldType() const { return MED_INT32; }
30021 +  public:
30022 +    MEDLOADER_EXPORT MEDFileIntFieldMultiTSWithoutSDA() { }
30023 +  };
30024 +
30025 +  class MEDFileFloatFieldMultiTSWithoutSDA : public MEDFileNDTemplateFieldMultiTSWithoutSDA<float>
30026 +  {
30027 +    friend class MEDFileTemplateFieldMultiTSWithoutSDA<float>;
30028 +  public:
30029 +    MEDLOADER_EXPORT MEDFileFloatFieldMultiTSWithoutSDA(med_idt fid, int fieldId, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<float>(fid,fieldId,loadAll,ms,entities) { }
30030 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSWithoutSDA *shallowCpy() const { return new MEDFileFloatFieldMultiTSWithoutSDA(*this); }
30031 +  protected:
30032 +    MEDFileFloatFieldMultiTSWithoutSDA(const std::string& fieldName, const std::string& meshName):MEDFileNDTemplateFieldMultiTSWithoutSDA<float>(fieldName,meshName) { }
30033 +    MEDFileFloatFieldMultiTSWithoutSDA(med_idt fid, const std::string& fieldName, const std::string& meshName, med_field_type fieldTyp, const std::vector<std::string>& infos, int nbOfStep, const std::string& dtunit, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileNDTemplateFieldMultiTSWithoutSDA<float>(fid,fieldName,meshName,fieldTyp,infos,nbOfStep,dtunit,loadAll,ms,entities) { }
30034 +    med_field_type getMEDFileFieldType() const { return MED_FLOAT32; }
30035 +  public:
30036 +    MEDLOADER_EXPORT MEDFileFloatFieldMultiTSWithoutSDA() { }
30037 +  };
30038 +
30039 +  class MEDFileAnyTypeFieldMultiTSIterator;
30040 +  class MEDFileFastCellSupportComparator;
30041 +  /*!
30042 +   * User class.
30043 +   */
30044 +  class MEDFileAnyTypeFieldMultiTS : public RefCountObject, public MEDFileWritableStandAlone, public MEDFileFieldGlobsReal
30045 +  {
30046 +  protected:
30047 +    MEDFileAnyTypeFieldMultiTS();
30048 +    MEDFileAnyTypeFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
30049 +    MEDFileAnyTypeFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
30050 +    MEDFileAnyTypeFieldMultiTS(const MEDFileAnyTypeFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent);
30051 +    static MEDFileAnyTypeFieldMultiTS *BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c, med_idt fid);
30052 +    static MEDFileAnyTypeFieldMultiTSWithoutSDA *BuildContentFrom(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
30053 +    static MEDFileAnyTypeFieldMultiTSWithoutSDA *BuildContentFrom(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities);
30054 +  public:
30055 +    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, bool loadAll=true);
30056 +    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(med_idt fid, bool loadAll=true);
30057 +    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
30058 +    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
30059 +    MEDLOADER_EXPORT static MEDFileAnyTypeFieldMultiTS *BuildNewInstanceFromContent(MEDFileAnyTypeFieldMultiTSWithoutSDA *c);
30060 +    MEDLOADER_EXPORT void loadArrays();
30061 +    MEDLOADER_EXPORT void loadArraysIfNecessary();
30062 +    MEDLOADER_EXPORT void unloadArrays();
30063 +    MEDLOADER_EXPORT void unloadArraysWithoutDataLoss();
30064 +    MEDLOADER_EXPORT void writeLL(med_idt fid) const;
30065 +    MEDLOADER_EXPORT std::size_t getHeapMemorySizeWithoutChildren() const;
30066 +    MEDLOADER_EXPORT std::vector<const BigMemoryObject *> getDirectChildrenWithNull() const;
30067 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *deepCopy() const;
30068 +    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > splitComponents() const;
30069 +    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > splitDiscretizations() const;
30070 +    MEDLOADER_EXPORT std::vector< MCAuto< MEDFileAnyTypeFieldMultiTS > > splitMultiDiscrPerGeoTypes() const;
30071 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *shallowCpy() const = 0;
30072 +    MEDLOADER_EXPORT virtual void checkCoherencyOfType(const MEDFileAnyTypeField1TS *f1ts) const = 0;
30073 +    //
30074 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeField1TS *getTimeStepAtPos(int pos) const = 0;
30075 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *getTimeStep(int iteration, int order) const;
30076 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *getTimeStepGivenTime(double time, double eps=1e-8) const;
30077 +    MEDLOADER_EXPORT static std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > SplitIntoCommonTimeSeries(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS);
30078 +    MEDLOADER_EXPORT static std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > SplitPerCommonSupport(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& fsc);
30079 +    MEDLOADER_EXPORT static int CheckSupportAcrossTime(MEDFileAnyTypeFieldMultiTS *f0, MEDFileAnyTypeFieldMultiTS *f1, const MEDFileMesh *mesh, TypeOfField& tof0, TypeOfField& tof1);
30080 +  public:// direct forwarding to MEDFileField1TSWithoutSDA instance _content
30081 +    MEDLOADER_EXPORT std::string getName() const;
30082 +    MEDLOADER_EXPORT void setName(const std::string& name);
30083 +    MEDLOADER_EXPORT std::string getDtUnit() const;
30084 +    MEDLOADER_EXPORT void setDtUnit(const std::string& dtUnit);
30085 +    MEDLOADER_EXPORT std::string getMeshName() const;
30086 +    MEDLOADER_EXPORT void setMeshName(const std::string& newMeshName);
30087 +    MEDLOADER_EXPORT std::string simpleRepr() const;
30088 +    MEDLOADER_EXPORT void simpleRepr(int bkOffset, std::ostream& oss, int fmtsId) const;
30089 +    MEDLOADER_EXPORT int getNumberOfTS() const;
30090 +    MEDLOADER_EXPORT void eraseEmptyTS();
30091 +    MEDLOADER_EXPORT void eraseTimeStepIds(const int *startIds, const int *endIds);
30092 +    MEDLOADER_EXPORT void eraseTimeStepIds2(int bg, int end, int step);
30093 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *buildSubPart(const int *startIds, const int *endIds) const;
30094 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *buildSubPartSlice(int bg, int end, int step) const;
30095 +    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getTimeSteps(std::vector<double>& ret1) const;
30096 +    MEDLOADER_EXPORT std::vector< std::pair<int,int> > getIterations() const;
30097 +    MEDLOADER_EXPORT void pushBackTimeSteps(const std::vector<MEDFileAnyTypeField1TS *>& f1ts);
30098 +    MEDLOADER_EXPORT void pushBackTimeSteps(MEDFileAnyTypeFieldMultiTS *fmts);
30099 +    MEDLOADER_EXPORT void pushBackTimeStep(MEDFileAnyTypeField1TS *f1ts);
30100 +    MEDLOADER_EXPORT void synchronizeNameScope();
30101 +    MEDLOADER_EXPORT int getPosOfTimeStep(int iteration, int order) const;
30102 +    MEDLOADER_EXPORT int getPosGivenTime(double time, double eps=1e-8) const;
30103 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSIterator *iterator();
30104 +    MEDLOADER_EXPORT bool changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab);
30105 +    MEDLOADER_EXPORT const std::vector<std::string>& getInfo() const;
30106 +    MEDLOADER_EXPORT bool presenceOfMultiDiscPerGeoType() const;
30107 +    MEDLOADER_EXPORT void setInfo(const std::vector<std::string>& info);
30108 +    MEDLOADER_EXPORT int getNumberOfComponents() const;
30109 +    MEDLOADER_EXPORT int getNonEmptyLevels(int iteration, int order, const std::string& mname, std::vector<int>& levs) const;
30110 +    MEDLOADER_EXPORT std::vector< std::vector<TypeOfField> > getTypesOfFieldAvailable() const;
30111 +    MEDLOADER_EXPORT std::vector< std::vector< std::pair<int,int> > > getFieldSplitedByType(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
30112 +    MEDLOADER_EXPORT MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> getContent();
30113 +  public:
30114 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *buildNewEmpty() const = 0;
30115 +    MEDLOADER_EXPORT virtual MEDFileAnyTypeFieldMultiTS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const = 0;
30116 +    MEDLOADER_EXPORT static MCAuto<MEDFileAnyTypeFieldMultiTS> Aggregate(const std::vector<const MEDFileAnyTypeFieldMultiTS *>& fmtss, const std::vector< std::vector< std::pair<int,int> > >& dts);
30117 +  public:
30118 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsed() const;
30119 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsed() const;
30120 +    MEDLOADER_EXPORT std::vector<std::string> getPflsReallyUsedMulti() const;
30121 +    MEDLOADER_EXPORT std::vector<std::string> getLocsReallyUsedMulti() const;
30122 +    MEDLOADER_EXPORT void changePflsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
30123 +    MEDLOADER_EXPORT void changeLocsRefsNamesGen(const std::vector< std::pair<std::vector<std::string>, std::string > >& mapOfModif);
30124 +  protected:
30125 +    MEDFileAnyTypeFieldMultiTSWithoutSDA *contentNotNullBase();
30126 +    const MEDFileAnyTypeFieldMultiTSWithoutSDA *contentNotNullBase() const;
30127 +  private:
30128 +    static std::vector< std::vector<MEDFileAnyTypeFieldMultiTS *> > SplitPerCommonSupportNotNodesAlg(const std::vector<MEDFileAnyTypeFieldMultiTS *>& vectFMTS, const MEDFileMesh *mesh, std::vector< MCAuto<MEDFileFastCellSupportComparator> >& cmps);
30129 +  protected:
30130 +    MCAuto<MEDFileAnyTypeFieldMultiTSWithoutSDA> _content;
30131 +  };
30132 +
30133 +  template<class T>
30134 +  class MEDFileTemplateFieldMultiTS : public MEDFileAnyTypeFieldMultiTS
30135 +  {
30136 +  public:
30137 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New();
30138 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(const std::string& fileName, bool loadAll=true);
30139 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(med_idt fid, bool loadAll=true);
30140 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(DataArrayByte *db) { return BuildFromMemoryChunk<typename MLFieldTraits<T>::FMTSType>(db); }
30141 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(const std::string& fileName, const std::string& fieldName, bool loadAll=true);
30142 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(med_idt fid, const std::string& fieldName, bool loadAll=true);
30143 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *New(const typename MLFieldTraits<T>::FMTSWSDAType& other, bool shallowCopyOfContent);
30144 +    MEDLOADER_EXPORT static typename MLFieldTraits<T>::FMTSType *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, const std::vector< std::pair<TypeOfField,INTERP_KERNEL::NormalizedCellType> >& entities, bool loadAll=true);
30145 +    MEDLOADER_EXPORT typename MLFieldTraits<T>::FMTSType *extractPartImpl(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const;
30146 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *extractPart(const std::map<int, MCAuto<DataArrayInt> >& extractDef, MEDFileMesh *mm) const { return this->extractPartImpl(extractDef,mm); }
30147 +    //
30148 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *field(int iteration, int order, const MEDFileMesh *mesh) const;
30149 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const;
30150 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const;
30151 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const;
30152 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, const MEDCouplingMesh *mesh, int renumPol=0) const;
30153 +    MEDLOADER_EXPORT typename Traits<T>::FieldType *getFieldAtLevelOld(TypeOfField type, int iteration, int order, const std::string& mname, int meshDimRelToMax, int renumPol=0) const;
30154 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getFieldWithProfile(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, DataArrayInt *&pfl) const;
30155 +    //
30156 +    MEDLOADER_EXPORT void appendFieldNoProfileSBT(const typename Traits<T>::FieldType *field);
30157 +    MEDLOADER_EXPORT void appendFieldProfile(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile);
30158 +    MEDLOADER_EXPORT void appendFieldProfileFlatly(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile);
30159 +    //
30160 +    MEDLOADER_EXPORT typename MLFieldTraits<T>::F1TSType *getTimeStepAtPos(int pos) const;
30161 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArray(int iteration, int order) const;
30162 +    MEDLOADER_EXPORT typename Traits<T>::ArrayType *getUndergroundDataArrayExt(int iteration, int order, std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > >& entries) const;
30163 +    MEDLOADER_EXPORT typename MLFieldTraits<T>::FMTSType *buildNewEmptyImpl() const;
30164 +    MEDLOADER_EXPORT void checkCoherencyOfType(const MEDFileAnyTypeField1TS *f1ts) const;
30165 +  protected:
30166 +    const typename MLFieldTraits<T>::FMTSWSDAType *contentNotNull() const;
30167 +    typename MLFieldTraits<T>::FMTSWSDAType *contentNotNull();
30168 +    void appendFieldProfileGeneral(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, bool smartPflKiller);
30169 +  protected:
30170 +    ~MEDFileTemplateFieldMultiTS() { }
30171 +    MEDFileTemplateFieldMultiTS();
30172 +    MEDFileTemplateFieldMultiTS(const typename MLFieldTraits<T>::FMTSWSDAType& other, bool shallowCopyOfContent);
30173 +    MEDFileTemplateFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
30174 +    MEDFileTemplateFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
30175 +  };
30176 +  
30177 +  class MEDFileIntFieldMultiTS;
30178 +
30179 +  /*!
30180 +   * User class.
30181 +   */
30182 +  class MEDFileFieldMultiTS : public MEDFileTemplateFieldMultiTS<double>
30183 +  {
30184 +    friend class MEDFileTemplateFieldMultiTS<double>;
30185 +  public:
30186 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *shallowCpy() const;
30187 +    MEDLOADER_EXPORT MEDFileIntFieldMultiTS *convertToInt(bool isDeepCpyGlobs=true) const;
30188 +    //
30189 +    MEDLOADER_EXPORT std::vector< std::vector<DataArrayDouble *> > getFieldSplitedByType2(int iteration, int order, const std::string& mname, std::vector<INTERP_KERNEL::NormalizedCellType>& types, std::vector< std::vector<TypeOfField> >& typesF, std::vector< std::vector<std::string> >& pfls, std::vector< std::vector<std::string> >& locs) const;
30190 +    MEDLOADER_EXPORT MEDFileFieldMultiTS *buildNewEmpty() const { return buildNewEmptyImpl(); }
30191 +  public:
30192 +  private:
30193 +    ~MEDFileFieldMultiTS() { }
30194 +    MEDFileFieldMultiTS() { }
30195 +    MEDFileFieldMultiTS(const MEDFileFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent);
30196 +    MEDFileFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms);
30197 +    MEDFileFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0);
30198 +  };
30199 +
30200 +  template<class T>
30201 +  class MEDFileNDTemplateFieldMultiTS : public MEDFileTemplateFieldMultiTS<T>
30202 +  {
30203 +  public:
30204 +    MEDLOADER_EXPORT MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const;
30205 +  protected:
30206 +    ~MEDFileNDTemplateFieldMultiTS() { }
30207 +    MEDFileNDTemplateFieldMultiTS() { }
30208 +    MEDFileNDTemplateFieldMultiTS(const typename MLFieldTraits<T>::FMTSWSDAType& other, bool shallowCopyOfContent):MEDFileTemplateFieldMultiTS<T>(other,shallowCopyOfContent) { }
30209 +    MEDFileNDTemplateFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileTemplateFieldMultiTS<T>(fid,loadAll,ms) { }
30210 +    MEDFileNDTemplateFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities):MEDFileTemplateFieldMultiTS<T>(fid,fieldName,loadAll,ms,entities) { }
30211 +  };
30212 +
30213 +  /*!
30214 +   * User class.
30215 +   */
30216 +  class MEDFileIntFieldMultiTS : public MEDFileNDTemplateFieldMultiTS<int>
30217 +  {
30218 +    friend class MEDFileTemplateFieldMultiTS<int>;
30219 +  public:
30220 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *shallowCpy() const { return new MEDFileIntFieldMultiTS(*this); }
30221 +    MEDLOADER_EXPORT MEDFileIntFieldMultiTS *buildNewEmpty() const { return buildNewEmptyImpl(); }
30222 +  private:
30223 +    ~MEDFileIntFieldMultiTS() { }
30224 +    MEDFileIntFieldMultiTS() { }
30225 +    MEDFileIntFieldMultiTS(const MEDFileIntFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateFieldMultiTS<int>(other,shallowCopyOfContent) { }
30226 +    MEDFileIntFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateFieldMultiTS<int>(fid,loadAll,ms) { }
30227 +    MEDFileIntFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0):MEDFileNDTemplateFieldMultiTS<int>(fid,fieldName,loadAll,ms,entities) { }
30228 +  };
30229 +
30230 +  /*!
30231 +   * User class.
30232 +   */
30233 +  class MEDFileFloatFieldMultiTS : public MEDFileNDTemplateFieldMultiTS<float>
30234 +  {
30235 +    friend class MEDFileTemplateFieldMultiTS<float>;
30236 +  public:
30237 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTS *shallowCpy() const { return new MEDFileFloatFieldMultiTS(*this); }
30238 +    MEDLOADER_EXPORT MEDFileFloatFieldMultiTS *buildNewEmpty() const { return buildNewEmptyImpl(); }
30239 +  private:
30240 +    ~MEDFileFloatFieldMultiTS() { }
30241 +    MEDFileFloatFieldMultiTS() { }
30242 +    MEDFileFloatFieldMultiTS(const MEDFileFloatFieldMultiTSWithoutSDA& other, bool shallowCopyOfContent):MEDFileNDTemplateFieldMultiTS<float>(other,shallowCopyOfContent) { }
30243 +    MEDFileFloatFieldMultiTS(med_idt fid, bool loadAll, const MEDFileMeshes *ms):MEDFileNDTemplateFieldMultiTS<float>(fid,loadAll,ms) { }
30244 +    MEDFileFloatFieldMultiTS(med_idt fid, const std::string& fieldName, bool loadAll, const MEDFileMeshes *ms, const MEDFileEntities *entities=0):MEDFileNDTemplateFieldMultiTS<float>(fid,fieldName,loadAll,ms,entities) { }
30245 +  };
30246 +
30247 +  class MEDFileAnyTypeFieldMultiTSIterator
30248 +  {
30249 +  public:
30250 +    MEDLOADER_EXPORT MEDFileAnyTypeFieldMultiTSIterator(MEDFileAnyTypeFieldMultiTS *fmts);
30251 +    MEDLOADER_EXPORT ~MEDFileAnyTypeFieldMultiTSIterator();
30252 +    MEDLOADER_EXPORT MEDFileAnyTypeField1TS *nextt();
30253 +  private:
30254 +    MCAuto<MEDFileAnyTypeFieldMultiTS> _fmts;
30255 +    int _iter_id;
30256 +    int _nb_iter;
30257 +  };
30258 +}
30259 +
30260 +#endif
30261 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldOverView.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldOverView.cxx
30262 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldOverView.cxx      2018-04-19 17:04:36.758223141 +0200
30263 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldOverView.cxx      2018-04-19 17:25:17.828799155 +0200
30264 @@ -28,7 +28,7 @@
30265  using namespace MEDCoupling;
30266  
30267  const unsigned char MEDMeshMultiLev::PARAMEDMEM_2_VTKTYPE[MEDMeshMultiLev::PARAMEDMEM_2_VTKTYPE_LGTH]=
30268 -{1,3,21,5,9,7,22,34,23,28,255,255,255,255,10,14,13,255,12,255,24,255,16,27,255,26,255,29,255,255,25,42,36,4};
30269 +{1,3,21,5,9,7,22,34,23,28,35,255,255,255,10,14,13,255,12,255,24,255,16,27,255,26,255,29,32,255,25,42,36,4};
30270  
30271  const unsigned char MEDMeshMultiLev::HEXA27_PERM_ARRAY[27]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,24,22,21,23,20,25,26};
30272  
30273 @@ -1360,7 +1360,7 @@
30274    if(!m)
30275      throw INTERP_KERNEL::Exception("MEDCMeshMultiLev constructor 2 : null input pointer !");
30276    if(gts.size()!=1 || pfls.size()!=1)
30277 -    throw INTERP_KERNEL::Exception("MEDCMeshMultiLev constructor 2 : lengthes of gts and pfls must be equal to one !");
30278 +    throw INTERP_KERNEL::Exception("MEDCMeshMultiLev constructor 2 : lengths of gts and pfls must be equal to one !");
30279    int mdim(m->getMeshDimension());
30280    INTERP_KERNEL::NormalizedCellType gt(MEDCouplingStructuredMesh::GetGeoTypeGivenMeshDimension(mdim));
30281    if(gt==gts[0])
30282 @@ -1456,7 +1456,7 @@
30283  }
30284  
30285  /*!
30286 - * \a param [out] isInternal if true the returned pointers are those in main data structure. If false those pointers have been built espacially for that method.
30287 + * \a param [out] isInternal if true the returned pointers are those in main data structure. If false those pointers have been built especially for that method.
30288   */
30289  std::vector< DataArrayDouble * > MEDCMeshMultiLev::buildVTUArrays(bool& isInternal) const
30290  {
30291 @@ -1502,7 +1502,7 @@
30292    if(!m)
30293      throw INTERP_KERNEL::Exception("MEDCurveLinearMeshMultiLev constructor 2 : null input pointer !");
30294    if(gts.size()!=1 || pfls.size()!=1)
30295 -    throw INTERP_KERNEL::Exception("MEDCurveLinearMeshMultiLev constructor 2 : lengthes of gts and pfls must be equal to one !");
30296 +    throw INTERP_KERNEL::Exception("MEDCurveLinearMeshMultiLev constructor 2 : lengths of gts and pfls must be equal to one !");
30297    INTERP_KERNEL::NormalizedCellType gt(MEDCouplingStructuredMesh::GetGeoTypeGivenMeshDimension(m->getMeshDimension()));
30298    if(gt==gts[0])
30299      {
30300 @@ -1680,7 +1680,7 @@
30301  }
30302  
30303  /*!
30304 - * \param [in] nbOfEntity - number of entity that can be either cells or nodes. Not other possiblity.
30305 + * \param [in] nbOfEntity - number of entity that can be either cells or nodes. Not other possibility.
30306   * \param [in] nip - number of integration points. 1 for ON_CELLS and NO_NODES
30307   */
30308  void MEDFileField1TSStructItem2::checkInRange(int nbOfEntity, int nip, const MEDFileFieldGlobsReal *globs)
30309 @@ -2272,7 +2272,7 @@
30310  
30311  /*!
30312   * Returns true if presence in \a this of discretization ON_CELLS, ON_GAUSS_PT, ON_GAUSS_NE.
30313 - * If true is returned the pos of the easiest is returned. The easiest is the first element in \a this having the less splitted subparts.
30314 + * If true is returned the pos of the easiest is returned. The easiest is the first element in \a this having the less split subparts.
30315   */
30316  bool MEDFileField1TSStruct::presenceOfCellDiscr(int& pos) const
30317  {
30318 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileField.txx MEDCOUPLING_new/src/MEDLoader/MEDFileField.txx
30319 --- MEDCOUPLING_old/src/MEDLoader/MEDFileField.txx      2018-04-19 17:04:36.757223122 +0200
30320 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileField.txx      2018-04-19 17:25:17.824799076 +0200
30321 @@ -199,6 +199,16 @@
30322        }
30323    }
30324  
30325 +  template<class T>
30326 +  void MEDFileField1TSTemplateWithoutSDA<T>::copyTimeInfoFrom(const typename Traits<T>::FieldType *mcf)
30327 +  {
30328 +    if(!mcf)
30329 +      throw INTERP_KERNEL::Exception("MEDFileField1TSTemplateWithoutSDA<T>::copyTimeInfoFrom : input field is nullptr !");
30330 +    int b(0),c(0);
30331 +    double a(mcf->getTime(b,c));
30332 +    setTime(b,c,a);
30333 +  }
30334 +
30335    ///////////////////////////////////////////////////////
30336  
30337    template<class T>
30338 @@ -398,6 +408,12 @@
30339    }
30340  
30341    template<class T>
30342 +  void MEDFileTemplateField1TS<T>::setArray(DataArray *arr)
30343 +  {
30344 +    return contentNotNull()->setArray(arr);
30345 +  }
30346 +
30347 +  template<class T>
30348    typename Traits<T>::ArrayType *MEDFileTemplateField1TS<T>::getUndergroundDataArray() const
30349    {
30350      return contentNotNull()->getUndergroundDataArrayTemplate();
30351 @@ -438,6 +454,12 @@
30352      return ret.retn();
30353    }
30354  
30355 +  template<class T>
30356 +  void MEDFileTemplateField1TS<T>::copyTimeInfoFrom(const typename Traits<T>::FieldType *mcf)
30357 +  {
30358 +    contentNotNull()->copyTimeInfoFrom(mcf);
30359 +  }
30360 +
30361    /*!
30362     * This is the simplest version to fetch a field for MED structure. One drawback : if \a this is a complex field (multi spatial discretization inside a same field) this method will throw exception and more advance
30363     * method should be called (getFieldOnMeshAtLevel for example).
30364 @@ -660,16 +682,32 @@
30365     *  \throw If the data array of \a this is already allocated but has different number of
30366     *         components than \a field.
30367     *  \throw If elements in \a mesh are not in the order suitable for writing to the MED file.
30368 -   *  \sa setFieldNoProfileSBT()
30369 +   *  \sa setFieldNoProfileSBT, setFieldProfileFlatly
30370     */
30371    template<class T>
30372    void MEDFileTemplateField1TS<T>::setFieldProfile(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile)
30373    {
30374 +    setFieldProfileGeneral(field,mesh,meshDimRelToMax,profile,true);
30375 +  }
30376 +
30377 +  /*!
30378 +   * Same as setFieldProfile except that here profile will be created unconditionally
30379 +   * \sa setFieldProfile
30380 +   */
30381 +  template<class T>
30382 +  void MEDFileTemplateField1TS<T>::setFieldProfileFlatly(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile)
30383 +  {
30384 +    setFieldProfileGeneral(field,mesh,meshDimRelToMax,profile,false);
30385 +  }
30386 +
30387 +  template<class T>
30388 +  void MEDFileTemplateField1TS<T>::setFieldProfileGeneral(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, bool smartPflKiller)
30389 +  {
30390      setFileName("");
30391      MCAuto<MEDCouplingFieldTemplate> ft(MEDCouplingFieldTemplate::NewWithoutCheck(*field));
30392 -    contentNotNull()->setFieldProfile(field->timeDiscrSafe(),ft,field->getArray(),mesh,meshDimRelToMax,profile,*this,*contentNotNull());
30393 +    contentNotNull()->setFieldProfile(field->timeDiscrSafe(),ft,field->getArray(),mesh,meshDimRelToMax,profile,*this,*contentNotNull(),smartPflKiller);
30394    }
30395 -
30396 +  
30397    /*!
30398     * Return an extraction of \a this using \a extractDef map to specify the extraction.
30399     * The keys of \a extractDef is level relative to max ext of \a mm mesh.
30400 @@ -1200,18 +1238,33 @@
30401     *  \throw If the data array of \a this is already allocated but has different number of
30402     *         components than \a field.
30403     *  \throw If elements in \a mesh are not in the order suitable for writing to the MED file.
30404 -   *  \sa setFieldNoProfileSBT()
30405 +   *  \sa setFieldNoProfileSBT, appendFieldProfileFlatly
30406     */
30407    template<class T>
30408    void MEDFileTemplateFieldMultiTS<T>::appendFieldProfile(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile)
30409    {
30410 +    appendFieldProfileGeneral(field,mesh,meshDimRelToMax,profile,true);
30411 +  }
30412 +
30413 +  /*!
30414 +   * same as appendFieldProfile except that here profile is created unconditionaly
30415 +   */
30416 +  template<class T>
30417 +  void MEDFileTemplateFieldMultiTS<T>::appendFieldProfileFlatly(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile)
30418 +  {
30419 +    appendFieldProfileGeneral(field,mesh,meshDimRelToMax,profile,false);
30420 +  }
30421 +
30422 +  template<class T>
30423 +  void MEDFileTemplateFieldMultiTS<T>::appendFieldProfileGeneral(const typename Traits<T>::FieldType *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile, bool smartPflKiller)
30424 +  {
30425      const typename Traits<T>::ArrayType *arr(NULL);
30426      if(field)
30427        arr=field->getArray();
30428      MCAuto<MEDCouplingFieldDouble> field2(MEDFileTemplateField1TS<T>::ToFieldTemplateWithTime(field));
30429 -    contentNotNull()->appendFieldProfile(field2,arr,mesh,meshDimRelToMax,profile,*this);
30430 +    contentNotNull()->appendFieldProfile(field2,arr,mesh,meshDimRelToMax,profile,*this,smartPflKiller);
30431    }
30432 -
30433 +  
30434    template<class T>
30435    const typename MLFieldTraits<T>::FMTSWSDAType *MEDFileTemplateFieldMultiTS<T>::contentNotNull() const
30436    {
30437 @@ -1272,7 +1325,7 @@
30438      typename Traits<T>::ArrayType *ret2(dynamic_cast<typename Traits<T>::ArrayType *>(ret));
30439      if(!ret2)
30440        {
30441 -        std::ostringstream oss; oss << "MEDFileTemplateFieldMultiTS<T>::getUndergroundDataArray : invalid type of data dectected ! Expecting " << MLFieldTraits<T>::F1TSWSDAType::TYPE_STR;
30442 +        std::ostringstream oss; oss << "MEDFileTemplateFieldMultiTS<T>::getUndergroundDataArray : invalid type of data detected ! Expecting " << MLFieldTraits<T>::F1TSWSDAType::TYPE_STR;
30443          throw INTERP_KERNEL::Exception(oss.str());
30444        }
30445      return ret2;
30446 @@ -1287,7 +1340,7 @@
30447      typename Traits<T>::ArrayType *ret2(dynamic_cast<typename Traits<T>::ArrayType *>(ret));
30448      if(!ret2)
30449        {
30450 -        std::ostringstream oss; oss << "MEDFileTemplateFieldMultiTS<T>::getUndergroundDataArrayExt : invalid type of data dectected ! Expecting " << MLFieldTraits<T>::F1TSWSDAType::TYPE_STR;
30451 +        std::ostringstream oss; oss << "MEDFileTemplateFieldMultiTS<T>::getUndergroundDataArrayExt : invalid type of data detected ! Expecting " << MLFieldTraits<T>::F1TSWSDAType::TYPE_STR;
30452          throw INTERP_KERNEL::Exception(oss.str());
30453        }
30454      return ret2;
30455 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileFieldVisitor.hxx MEDCOUPLING_new/src/MEDLoader/MEDFileFieldVisitor.hxx
30456 --- MEDCOUPLING_old/src/MEDLoader/MEDFileFieldVisitor.hxx       2018-04-19 17:04:36.759223161 +0200
30457 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileFieldVisitor.hxx       2018-04-19 17:25:17.860799788 +0200
30458 @@ -48,6 +48,7 @@
30459      virtual void endPerMeshPerTypeEntry(const MEDFileFieldPerMeshPerTypeCommon *pmpt) = 0;
30460      //
30461      virtual void newPerMeshPerTypePerDisc(const MEDFileFieldPerMeshPerTypePerDisc *pmptpd) = 0;
30462 +    virtual ~MEDFileFieldVisitor() { }
30463    };
30464  }
30465  
30466 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileJoint.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileJoint.cxx
30467 --- MEDCOUPLING_old/src/MEDLoader/MEDFileJoint.cxx      2018-04-19 17:04:36.759223161 +0200
30468 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileJoint.cxx      2018-04-19 17:25:17.863799847 +0200
30469 @@ -357,7 +357,7 @@
30470    if ( getNumberOfCorrespondences() != other->getNumberOfCorrespondences() )
30471      return false;
30472  
30473 -  std::vector<int> found( getNumberOfCorrespondences(), false );
30474 +  std::vector<bool> found( getNumberOfCorrespondences(), false );
30475    for(int i=0; i<getNumberOfCorrespondences(); i++)
30476      {
30477        int j;
30478 @@ -410,6 +410,7 @@
30479      }
30480    return oss.str();
30481  }
30482 +
30483  INTERP_KERNEL::NormalizedCellType MEDFileJointOneStep::convertGeometryType(med_geometry_type geotype)
30484  {
30485    INTERP_KERNEL::NormalizedCellType result=INTERP_KERNEL::NORM_ERROR;
30486 @@ -423,6 +424,7 @@
30487      }
30488    return result;
30489  }
30490 +
30491  std::size_t MEDFileJoint::getHeapMemorySizeWithoutChildren() const
30492  {
30493    return _joint.capacity()*sizeof(MCAuto<MEDFileJointOneStep>);
30494 @@ -545,20 +547,22 @@
30495      return false;
30496    if(_domain_number!=other->_domain_number)
30497      return false;
30498 -  std::vector<int> found( getNumberOfSteps(), false );
30499 -  for(int i=0; i<getNumberOfSteps(); i++)
30500 +  int nbTS(getNumberOfSteps());
30501 +  if(nbTS!=other->getNumberOfSteps())
30502 +    return false;
30503 +  std::vector<bool> found(nbTS,false);
30504 +  for(int i=0;i<nbTS;i++)
30505      {
30506        int j;
30507 -      for(j=0; j<getNumberOfSteps(); j++)
30508 +      for(j=0;j<nbTS;j++)
30509          {
30510 -          if ( !found[ j ] &&
30511 -            getStepAtPos(i)->isEqual(other->getStepAtPos(j)))
30512 +          if(!found[j] && getStepAtPos(i)->isEqual(other->getStepAtPos(j)))
30513              {
30514 -              found[ j ] = true;
30515 +              found[j]=true;
30516                break;
30517              }
30518          }
30519 -      if ( j == getNumberOfSteps() )
30520 +      if(j==nbTS)
30521          return false;
30522      }
30523    return true;
30524 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileMesh.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileMesh.cxx
30525 --- MEDCOUPLING_old/src/MEDLoader/MEDFileMesh.cxx       2018-04-19 17:04:36.760223181 +0200
30526 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileMesh.cxx       2018-04-19 17:25:17.810798800 +0200
30527 @@ -673,6 +673,35 @@
30528    return ret;
30529  }
30530  
30531 +void MEDFileMesh::removeGroupAtLevel(int meshDimRelToMaxExt, const std::string& name)
30532 +{
30533 +  std::map<std::string, std::vector<std::string> >::iterator it(_groups.find(name));
30534 +  std::vector<std::string> grps(getGroupsNames());
30535 +  if(it==_groups.end())
30536 +    {
30537 +      std::ostringstream oss; oss << "No such groupname \"" << name << "\" !\nAvailable groups are :";
30538 +      std::copy(grps.begin(),grps.end(),std::ostream_iterator<std::string>(oss," "));
30539 +      throw INTERP_KERNEL::Exception(oss.str().c_str());
30540 +    }
30541 +  const std::vector<std::string> &famsOnGrp((*it).second);
30542 +  std::vector<int> famIds(getFamiliesIdsOnGroup(name));
30543 +  const DataArrayInt *famArr(getFamilyFieldAtLevel(meshDimRelToMaxExt));
30544 +  if(!famArr)
30545 +    return ;
30546 +  MCAuto<DataArrayInt> vals(famArr->getDifferentValues());
30547 +  MCAuto<DataArrayInt> famIds2(DataArrayInt::NewFromStdVector(famIds));
30548 +  MCAuto<DataArrayInt> idsToKill(famIds2->buildIntersection(vals));
30549 +  if(idsToKill->empty())
30550 +    return ;
30551 +  std::vector<std::string> newFamsOnGrp;
30552 +  for(std::vector<std::string>::const_iterator it=famsOnGrp.begin();it!=famsOnGrp.end();it++)
30553 +    {
30554 +      if(!idsToKill->presenceOfValue(getFamilyId(*it)))
30555 +         newFamsOnGrp.push_back(*it);
30556 +    }
30557 +  (*it).second=newFamsOnGrp;
30558 +}
30559 +
30560  /*!
30561   * Removes a group from \a this mesh.
30562   *  \param [in] name - the name of the group to remove.
30563 @@ -680,9 +709,8 @@
30564   */
30565  void MEDFileMesh::removeGroup(const std::string& name)
30566  {
30567 -  std::string oname(name);
30568 -  std::map<std::string, std::vector<std::string> >::iterator it=_groups.find(oname);
30569 -  std::vector<std::string> grps=getGroupsNames();
30570 +  std::map<std::string, std::vector<std::string> >::iterator it=_groups.find(name);
30571 +  std::vector<std::string> grps(getGroupsNames());
30572    if(it==_groups.end())
30573      {
30574        std::ostringstream oss; oss << "No such groupname \"" << name << "\" !\nAvailable groups are :";
30575 @@ -795,7 +823,7 @@
30576  }
30577  
30578  /*!
30579 - * This method has no impact on groups. This method only works on families. This method firstly removes families not refered by any groups in \a this, then all unused entities
30580 + * This method has no impact on groups. This method only works on families. This method firstly removes families not referred by any groups in \a this, then all unused entities
30581   * are put as belonging to family 0 ("FAMILLE_ZERO"). Finally, all orphanFamilies are killed.
30582   * This method raises an exception if "FAMILLE_ZERO" is already belonging to a group.
30583   *
30584 @@ -1256,6 +1284,19 @@
30585      }
30586  }
30587  
30588 +void MEDFileMesh::checkNoGroupClash(const DataArrayInt *famArr, const std::string& grpName) const
30589 +{
30590 +  std::vector<std::string> grpsNames(getGroupsNames());
30591 +  if(std::find(grpsNames.begin(),grpsNames.end(),grpName)==grpsNames.end())
30592 +    return ;
30593 +  std::vector<int> famIds(getFamiliesIdsOnGroup(grpName));
30594 +  if(famArr->presenceOfValue(famIds))
30595 +    {
30596 +      std::ostringstream oss; oss << "MEDFileUMesh::addGroup : Group with name \"" << grpName << "\" already exists at specified level ! Destroy it before calling this method !";
30597 +      throw INTERP_KERNEL::Exception(oss.str().c_str());
30598 +    }
30599 +}
30600 +
30601  /*!
30602   * \param [in] ids ids and group name of the new group to add. The ids should be sorted and different each other (MED file norm).
30603   * \parma [in,out] famArr family array on level of interest to be renumbered. The input pointer should be not \c NULL (no check of that will be performed)
30604 @@ -1268,13 +1309,8 @@
30605    if(grpName.empty())
30606      throw INTERP_KERNEL::Exception("MEDFileUMesh::addGroup : empty group name ! MED file format do not accept empty group name !");
30607    ids->checkStrictlyMonotonic(true);
30608 -  famArr->incrRef(); MCAuto<DataArrayInt> famArrTmp(famArr);
30609 -  std::vector<std::string> grpsNames=getGroupsNames();
30610 -  if(std::find(grpsNames.begin(),grpsNames.end(),grpName)!=grpsNames.end())
30611 -    {
30612 -      std::ostringstream oss; oss << "MEDFileUMesh::addGroup : Group with name \"" << grpName << "\" already exists ! Destroy it before calling this method !";
30613 -      throw INTERP_KERNEL::Exception(oss.str().c_str());
30614 -    }
30615 +  checkNoGroupClash(famArr,grpName);
30616 +  MCAuto<DataArrayInt> famArrTmp; famArrTmp.takeRef(famArr);
30617    std::list< MCAuto<DataArrayInt> > allFamIds(getAllNonNullFamilyIds());
30618    allFamIds.erase(std::find(allFamIds.begin(),allFamIds.end(),famArrTmp));
30619    MCAuto<DataArrayInt> famIds=famArr->selectByTupleIdSafe(ids->begin(),ids->end());
30620 @@ -1331,8 +1367,15 @@
30621        famArr->setPartOfValuesSimple3(familyIds[i],da->begin(),da->end(),0,1,1);
30622      }
30623    _families=families;
30624 +  std::map<std::string, std::vector<std::string> >::iterator itt(groups.find(grpName));
30625 +  if(itt!=groups.end())
30626 +    {
30627 +      std::vector<std::string>& famsOnGrp((*itt).second);
30628 +      famsOnGrp.insert(famsOnGrp.end(),fams.begin(),fams.end());
30629 +    }
30630 +  else
30631 +    groups[grpName]=fams;
30632    _groups=groups;
30633 -  _groups[grpName]=fams;
30634  }
30635  
30636  void MEDFileMesh::changeAllGroupsContainingFamily(const std::string& familyNameToChange, const std::vector<std::string>& newFamiliesNames)
30637 @@ -2282,7 +2325,7 @@
30638  }
30639  
30640  /*!
30641 - * \b WARNING this implementation is dependant from MEDCouplingMappedExtrudedMesh::buildUnstructured !
30642 + * \b WARNING this implementation is dependent from MEDCouplingMappedExtrudedMesh::buildUnstructured !
30643   * \sa MEDCouplingMappedExtrudedMesh::buildUnstructured , MEDCouplingMappedExtrudedMesh::build3DUnstructuredMesh
30644   */
30645  MEDFileUMesh *MEDFileUMesh::New(const MEDCouplingMappedExtrudedMesh *mem)
30646 @@ -2776,7 +2819,7 @@
30647    if(getAxisType()!=AX_CART)
30648      {
30649        std::ostringstream oss; oss << "MEDFileMesh::checkCartesian : request for method that is dedicated to a cartesian convention ! But you are not in cartesian convention (" << DataArray::GetAxisTypeRepr(getAxisType()) << ").";
30650 -      oss << std::endl << "To perform operation you have two possiblities :" << std::endl;
30651 +      oss << std::endl << "To perform operation you have two possibilities :" << std::endl;
30652        oss << " - call setAxisType(AX_CART)" << std::endl;
30653        oss << " - call cartesianize()";
30654        throw INTERP_KERNEL::Exception(oss.str().c_str());
30655 @@ -3635,7 +3678,7 @@
30656  /*!
30657   * This method is for advanced users. There is two storing strategy of mesh in \a this.
30658   * Either MEDCouplingUMesh, or vector of MEDCoupling1GTUMesh instances.
30659 - * When assignement is done the first one is done, which is not optimal in write mode for MED file.
30660 + * When assignment is done the first one is done, which is not optimal in write mode for MED file.
30661   * This method allows to switch from MEDCouplingUMesh mode to MEDCoupling1GTUMesh mode.
30662   */
30663  void MEDFileUMesh::forceComputationOfParts() const
30664 @@ -4133,12 +4176,12 @@
30665  /*! \endcond */
30666  
30667  /*!
30668 - * Array returned is the correspondance in \b old \b to \b new format. The returned array is newly created and should be dealt by the caller.
30669 + * Array returned is the correspondence in \b old \b to \b new format. The returned array is newly created and should be dealt by the caller.
30670   * The maximum value stored in returned array is the number of nodes of \a this minus 1 after call of this method.
30671   * The size of returned array is the number of nodes of the old (previous to the call of this method) number of nodes.
30672   * -1 values in returned array means that the corresponding old node is no more used.
30673   *
30674 - * \return newly allocated array containing correspondance in \b old \b to \b new format. If all nodes in \a this are fetched \c NULL pointer is returned and nothing
30675 + * \return newly allocated array containing correspondence in \b old \b to \b new format. If all nodes in \a this are fetched \c NULL pointer is returned and nothing
30676   *         is modified in \a this.
30677   * \throw If no coordinates are set in \a this or if there is in any available mesh in \a this a cell having a nodal connectivity containing a node id not in the range of
30678   *  set coordinates.
30679 @@ -4874,7 +4917,7 @@
30680    if(!coords)
30681      throw INTERP_KERNEL::Exception("MEDFileUMesh::addNodeGroup : no coords set !");
30682    int nbOfNodes(coords->getNumberOfTuples());
30683 -  if(!((DataArrayInt *)_fam_coords))
30684 +  if(_fam_coords.isNull())
30685      { _fam_coords=DataArrayInt::New(); _fam_coords->alloc(nbOfNodes,1); _fam_coords->fillWithZero(); }
30686    //
30687    addGroupUnderground(true,ids,_fam_coords);
30688 @@ -5005,7 +5048,7 @@
30689   *
30690   * \param [in] ms - List of unstructured meshes lying on the same coordinates and having different mesh dimesnion.
30691   * \param [in] renum - the parameter (set to false by default) that tells the beheviour if there is a mesh on \a ms that is not geo type sorted.
30692 - *                     If false, an exception ois thrown. If true the mesh is reordered automatically. It is highly recommanded to let this parameter to false.
30693 + *                     If false, an exception is thrown. If true the mesh is reordered automatically. It is highly recommended to let this parameter to false.
30694   *
30695   * \throw If \a there is a null pointer in \a ms.
30696   * \sa MEDFileUMesh::setMeshAtLevel
30697 @@ -6095,7 +6138,7 @@
30698  }
30699  
30700  /*!
30701 - * Returns a pointer to mesh at the specified level (here 0 is compulsary for cartesian mesh).
30702 + * Returns a pointer to mesh at the specified level (here 0 is compulsory for cartesian mesh).
30703   * 
30704   * \return a pointer to cartesian mesh that need to be managed by the caller.
30705   * \warning the returned pointer has to be managed by the caller.
30706 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileMeshElt.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileMeshElt.cxx
30707 --- MEDCOUPLING_old/src/MEDLoader/MEDFileMeshElt.cxx    2018-04-19 17:04:36.761223201 +0200
30708 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileMeshElt.cxx    2018-04-19 17:25:17.865799887 +0200
30709 @@ -141,7 +141,7 @@
30710            nbOfElt=tmp;
30711            whichEntity=entities[i];
30712            if(i>0)
30713 -            std::cerr << "WARNING : MEDFile has been detected to be no compilant with MED 3 : Please change entity in MEDFile for geotype " <<  geoElt << std::endl;
30714 +            std::cerr << "WARNING : MEDFile has been detected to be noncompliant with MED 3 : Please change entity in MEDFile for geotype " <<  geoElt << std::endl;
30715          }
30716      }
30717    return nbOfElt>0;
30718 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileMesh.hxx MEDCOUPLING_new/src/MEDLoader/MEDFileMesh.hxx
30719 --- MEDCOUPLING_old/src/MEDLoader/MEDFileMesh.hxx       2018-04-19 17:04:36.761223201 +0200
30720 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileMesh.hxx       2018-04-19 17:25:17.831799215 +0200
30721 @@ -136,6 +136,7 @@
30722      MEDLOADER_EXPORT static std::string GetMagicFamilyStr();
30723      MEDLOADER_EXPORT void assignFamilyNameWithGroupName();
30724      MEDLOADER_EXPORT std::vector<std::string> removeEmptyGroups();
30725 +    MEDLOADER_EXPORT void removeGroupAtLevel(int meshDimRelToMaxExt, const std::string& name);
30726      MEDLOADER_EXPORT void removeGroup(const std::string& name);
30727      MEDLOADER_EXPORT void removeFamily(const std::string& name);
30728      MEDLOADER_EXPORT std::vector<std::string> removeOrphanGroups();
30729 @@ -227,6 +228,7 @@
30730      bool areEquivalencesEqual(const MEDFileMesh *other, std::string& what) const;
30731      void getEquivalencesRepr(std::ostream& oss) const;
30732      void checkCartesian() const;
30733 +    void checkNoGroupClash(const DataArrayInt *famArr, const std::string& grpName) const;
30734    private:
30735      virtual void writeMeshLL(med_idt fid) const = 0;
30736    protected:
30737 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileMeshLL.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileMeshLL.cxx
30738 --- MEDCOUPLING_old/src/MEDLoader/MEDFileMeshLL.cxx     2018-04-19 17:04:36.761223201 +0200
30739 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileMeshLL.cxx     2018-04-19 17:25:17.851799610 +0200
30740 @@ -331,7 +331,7 @@
30741        INTERP_KERNEL::AutoPtr<char> groName=MEDLoaderBase::buildEmptyString(MED_LNAME_SIZE*ngro);
30742        int i=0;
30743        for(std::vector<std::string>::const_iterator it2=(*it).second.second.begin();it2!=(*it).second.second.end();it2++,i++)
30744 -        MEDLoaderBase::safeStrCpy2((*it2).c_str(),MED_LNAME_SIZE-1,groName+i*MED_LNAME_SIZE,tooLongStrPol);
30745 +        MEDLoaderBase::safeStrCpy2((*it2).c_str(),MED_LNAME_SIZE,groName+i*MED_LNAME_SIZE,tooLongStrPol);
30746        INTERP_KERNEL::AutoPtr<char> famName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE);
30747        MEDLoaderBase::safeStrCpy((*it).first.c_str(),MED_NAME_SIZE,famName,tooLongStrPol);
30748        int ret=MEDfamilyCr(fid,mname.c_str(),famName,(*it).second.first,ngro,groName);
30749 @@ -354,7 +354,7 @@
30750  
30751  /*!
30752   * This method is dedicated to the killers that use a same family name to store different family ids. MED file API authorizes it.
30753 - * So this method renames families (if needed generaly not !) in order to have a discriminant name for families.
30754 + * So this method renames families (if needed generally not !) in order to have a discriminant name for families.
30755   */
30756  void MEDFileMeshL2::RenameFamiliesFromFileToMemInternal(std::vector< std::pair<std::string,std::pair<int,std::vector<std::string> > > >& crudeFams)
30757  {
30758 @@ -387,7 +387,7 @@
30759  
30760  /*!
30761   * This method is dedicated to the killers that use a same family name to store different family ids. MED file API authorizes it.
30762 - * So this method renames families (if needed generaly not !) in order to have a discriminant name for families.
30763 + * So this method renames families (if needed generally not !) in order to have a discriminant name for families.
30764   */
30765  void MEDFileMeshL2::RenameFamiliesFromMemToFileInternal(std::vector< std::pair<std::string,std::pair<int,std::vector<std::string> > > >& crudeFams)
30766  {
30767 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDFileUtilities.cxx MEDCOUPLING_new/src/MEDLoader/MEDFileUtilities.cxx
30768 --- MEDCOUPLING_old/src/MEDLoader/MEDFileUtilities.cxx  2018-04-19 17:04:36.762223221 +0200
30769 +++ MEDCOUPLING_new/src/MEDLoader/MEDFileUtilities.cxx  2018-04-19 17:25:17.867799926 +0200
30770 @@ -190,7 +190,7 @@
30771  void MEDCoupling::MEDFileWritableStandAlone::write30(const std::string& fileName, int mode) const
30772  {
30773    med_access_mode medmod(MEDFileUtilities::TraduceWriteMode(mode));
30774 -#if MED_NUM_MAJEUR>=3 && MED_NUM_MINEUR>=2 && MED_NUM_RELEASE>=1
30775 +#if MED_NUM_MAJEUR>3 || ( MED_NUM_MAJEUR==3 && ( (MED_NUM_MINEUR==2 && MED_NUM_RELEASE>=1) || MED_NUM_MINEUR>=3) )
30776    MEDFileUtilities::AutoFid fid(MEDfileVersionOpen(fileName.c_str(),medmod,3,0,0));
30777    writeLL(fid);
30778  #else
30779 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDLoaderBase.cxx MEDCOUPLING_new/src/MEDLoader/MEDLoaderBase.cxx
30780 --- MEDCOUPLING_old/src/MEDLoader/MEDLoaderBase.cxx     2018-04-19 17:04:36.762223221 +0200
30781 +++ MEDCOUPLING_new/src/MEDLoader/MEDLoaderBase.cxx     2018-04-19 17:25:17.862799828 +0200
30782 @@ -130,7 +130,7 @@
30783  
30784  /*!
30785   * This method operates a safe copy from 'src' to 'dest' by checking the size of 'src' before trying to copy.
30786 - * If size of 'src' string is higher than 'maxLgth' the behaviour is dependant from 'behaviour' parameter.
30787 + * If size of 'src' string is higher than 'maxLgth' the behaviour is dependent from 'behaviour' parameter.
30788   * If 'behaviour' equals 0 an exception is thrown. If 'behaviour' equals 1 an attempt of zipping of string will be done
30789   * ( see zipString to have more details).
30790   */
30791 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDLoader.cxx MEDCOUPLING_new/src/MEDLoader/MEDLoader.cxx
30792 --- MEDCOUPLING_old/src/MEDLoader/MEDLoader.cxx 2018-04-19 17:04:36.762223221 +0200
30793 +++ MEDCOUPLING_new/src/MEDLoader/MEDLoader.cxx 2018-04-19 17:25:17.735797317 +0200
30794 @@ -29,7 +29,10 @@
30795  #include "MEDCouplingUMesh.hxx"
30796  #include "MEDCouplingMemArray.hxx"
30797  #include "MEDCouplingFieldDouble.hxx"
30798 +#include "MEDCouplingFieldFloat.hxx"
30799 +#include "MEDCouplingFieldInt.hxx"
30800  #include "MEDCouplingGaussLocalization.hxx"
30801 +#include "MEDCouplingTraits.hxx"
30802  #include "MCAuto.hxx"
30803  
30804  #include "InterpKernelAutoPtr.hxx"
30805 @@ -64,6 +67,7 @@
30806    MED_TETRA10,
30807    MED_PYRA13,
30808    MED_PENTA15,
30809 +  MED_PENTA18,
30810    MED_HEXA20,
30811    MED_HEXA27,
30812    MED_POLYGON,
30813 @@ -90,6 +94,7 @@
30814    INTERP_KERNEL::NORM_TETRA10,
30815    INTERP_KERNEL::NORM_PYRA13,
30816    INTERP_KERNEL::NORM_PENTA15,
30817 +  INTERP_KERNEL::NORM_PENTA18,
30818    INTERP_KERNEL::NORM_HEXA20,
30819    INTERP_KERNEL::NORM_HEXA27,
30820    INTERP_KERNEL::NORM_POLYGON,
30821 @@ -124,7 +129,7 @@
30822    MED_PENTA15,//25
30823    MED_NONE,//26
30824    MED_HEXA27,//27
30825 -  MED_NONE,//28
30826 +  MED_PENTA18,//28
30827    MED_NONE,//29
30828    MED_HEXA20,//30
30829    MED_POLYHEDRON,//31
30830 @@ -308,7 +313,7 @@
30831  
30832  std::string MEDCoupling::MEDFileVersionOfFileStr(const std::string& fileName)
30833  {
30834 -#if MED_NUM_MAJEUR>=3 && MED_NUM_MINEUR>=2 && MED_NUM_RELEASE>=1
30835 +#if MED_NUM_MAJEUR>3 || ( MED_NUM_MAJEUR==3 && ( (MED_NUM_MINEUR==2 && MED_NUM_RELEASE>=1) || MED_NUM_MINEUR>=3) )
30836    MEDFileUtilities::AutoFid fid(MEDCoupling::OpenMEDFileForRead(fileName));
30837    const int SZ=20;
30838    const char START_EXPECTED[]="MED-";
30839 @@ -341,7 +346,7 @@
30840  }
30841  
30842  /*!
30843 - * This method sets the epsilon value used for node comparison when trying to buid a profile for a field on node/cell on an already written mesh.
30844 + * This method sets the epsilon value used for node comparison when trying to build a profile for a field on node/cell on an already written mesh.
30845   */
30846  void MEDCoupling::SetEpsilonForNodeComp(double val)
30847  {
30848 @@ -1153,7 +1158,7 @@
30849    return mmuPtr->getGroups(meshDimRelToMax,grps,true);
30850  }
30851  
30852 -MCAuto<MEDCoupling::MEDCouplingFieldDouble> MEDCoupling::ReadField(const std::string& fileName)
30853 +MCAuto<MEDCoupling::MEDCouplingField> MEDCoupling::ReadField(const std::string& fileName)
30854  {
30855    std::vector<std::string> fieldNames(GetAllFieldNames(fileName));
30856    std::size_t sz(fieldNames.size());
30857 @@ -1176,7 +1181,7 @@
30858    return ReadField(fileName,fieldNames[0]);
30859  }
30860  
30861 -MCAuto<MEDCoupling::MEDCouplingFieldDouble> MEDCoupling::ReadField(const std::string& fileName, const std::string& fieldName)
30862 +MCAuto<MEDCoupling::MEDCouplingField> MEDCoupling::ReadField(const std::string& fileName, const std::string& fieldName)
30863  {
30864    std::vector< std::pair< std::pair<int,int>, double> > iterations(GetAllFieldIterations(fileName,fieldName));
30865    std::size_t sz(iterations.size());
30866 @@ -1199,12 +1204,38 @@
30867    return ReadField(fileName,fieldName,iterations[0].first.first,iterations[0].first.second);
30868  }
30869  
30870 -MCAuto<MEDCoupling::MEDCouplingFieldDouble> MEDCoupling::ReadField(const std::string& fileName, const std::string& fieldName, int iteration, int order)
30871 +MCAuto<MEDCoupling::MEDCouplingField> MEDCoupling::ReadField(const std::string& fileName, const std::string& fieldName, int iteration, int order)
30872  {
30873 -  MCAuto<MEDFileField1TS> f(MEDFileField1TS::New(fileName,fieldName,iteration,order));
30874 +  MCAuto<MEDFileAnyTypeField1TS> f(MEDFileAnyTypeField1TS::New(fileName,fieldName,iteration,order));
30875    MCAuto<MEDFileMesh> mesh(MEDFileMesh::New(fileName,f->getMeshName()));
30876 -  MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(f->field(mesh));
30877 -  return ret;
30878 +  {
30879 +    MCAuto<MEDFileField1TS> f1(MEDCoupling::DynamicCast<MEDFileAnyTypeField1TS,MEDFileField1TS>(f));
30880 +    if(f1.isNotNull())
30881 +      {
30882 +        MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(f1->field(mesh));
30883 +        return MEDCoupling::DynamicCast<MEDCouplingFieldDouble,MEDCouplingField>(ret);
30884 +      }
30885 +  }
30886 +  {
30887 +    MCAuto<MEDFileIntField1TS> f1(MEDCoupling::DynamicCast<MEDFileAnyTypeField1TS,MEDFileIntField1TS>(f));
30888 +    if(f1.isNotNull())
30889 +      {
30890 +        MCAuto<MEDCoupling::MEDCouplingFieldInt> ret(f1->field(mesh));
30891 +        return MEDCoupling::DynamicCast<MEDCouplingFieldInt,MEDCouplingField>(ret);
30892 +      }
30893 +  }
30894 +  {
30895 +    MCAuto<MEDFileFloatField1TS> f1(MEDCoupling::DynamicCast<MEDFileAnyTypeField1TS,MEDFileFloatField1TS>(f));
30896 +    if(f1.isNotNull())
30897 +      {
30898 +        MCAuto<MEDCoupling::MEDCouplingFieldFloat> ret(f1->field(mesh));
30899 +        return MEDCoupling::DynamicCast<MEDCouplingFieldFloat,MEDCouplingField>(ret);
30900 +      }
30901 +  }
30902 +  throw INTERP_KERNEL::Exception("MEDCoupling::ReadField : only FLOAT32, FLOAT64 and INT32 supported for the moment !");
30903 +  //MCAuto<MEDFileMesh> mesh(MEDFileMesh::New(fileName,f->getMeshName()));
30904 +  //MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(f->field(mesh));
30905 +  //return ret;
30906  }
30907  
30908  MCAuto<MEDCoupling::MEDCouplingFieldDouble> MEDCoupling::ReadField(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order)
30909 @@ -1463,25 +1494,26 @@
30910  
30911  void MEDCoupling::WriteUMeshes(const std::string& fileName, const std::vector<const MEDCoupling::MEDCouplingUMesh *>& meshes, bool writeFromScratch)
30912  {
30913 -  int mod=writeFromScratch?2:0;
30914 +  int mod(writeFromScratch?2:0);
30915    MCAuto<MEDFileUMesh> m(MEDFileUMesh::New());
30916    AssignStaticWritePropertiesTo(*m);
30917    m->setMeshes(meshes,true);
30918    m->write(fileName,mod);
30919  }
30920  
30921 -void MEDLoaderNS::writeFieldWithoutReadingAndMappingOfMeshInFile(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch)
30922 +template<class T>
30923 +void MEDLoaderNS::writeFieldWithoutReadingAndMappingOfMeshInFile(const std::string& fileName, const typename MEDCoupling::Traits<T>::FieldType *f, bool writeFromScratch)
30924  {
30925 -  MCAuto<MEDFileField1TS> ff(MEDFileField1TS::New());
30926 +  MCAuto< typename MLFieldTraits<T>::F1TSType > ff(MLFieldTraits<T>::F1TSType::New());
30927    AssignStaticWritePropertiesTo(*ff);
30928 -  MCAuto<MEDCouplingFieldDouble> f2(f->deepCopy());
30929 +  MCAuto<typename MEDCoupling::Traits<T>::FieldType> f2(f->deepCopy());
30930    const MEDCouplingMesh *m(f2->getMesh());
30931    const MEDCouplingUMesh *um(dynamic_cast<const MEDCouplingUMesh *>(m));
30932    const MEDCoupling1GTUMesh *um2(dynamic_cast<const MEDCoupling1GTUMesh *>(m));
30933    const MEDCouplingCMesh *um3(dynamic_cast<const MEDCouplingCMesh *>(m));
30934    const MEDCouplingCurveLinearMesh *um4(dynamic_cast<const MEDCouplingCurveLinearMesh *>(m));
30935    MCAuto<MEDFileMesh> mm;
30936 -  int mod=writeFromScratch?2:0;
30937 +  int mod(writeFromScratch?2:0);
30938    if(um)
30939      {
30940        MCAuto<MEDFileUMesh> mmu(MEDFileUMesh::New());
30941 @@ -1523,12 +1555,13 @@
30942    ff->write(fileName,0);
30943  }
30944  
30945 -void MEDCoupling::WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch)
30946 +template<class T>
30947 +void WriteFieldT(const std::string& fileName, const typename MEDCoupling::Traits<T>::FieldType *f, bool writeFromScratch)
30948  {
30949    if(!f)
30950      throw INTERP_KERNEL::Exception("WriteField : input field is NULL !");
30951    f->checkConsistencyLight();
30952 -  int status=MEDLoaderBase::getStatusOfFile(fileName);
30953 +  int status(MEDLoaderBase::getStatusOfFile(fileName));
30954    if(status!=MEDLoaderBase::EXIST_RW && status!=MEDLoaderBase::NOT_EXIST)
30955      {
30956        std::ostringstream oss; oss << "File with name \'" << fileName << "\' has not valid permissions !";
30957 @@ -1536,44 +1569,44 @@
30958      }
30959    if(writeFromScratch || (!writeFromScratch && status==MEDLoaderBase::NOT_EXIST))
30960      {
30961 -      MEDLoaderNS::writeFieldWithoutReadingAndMappingOfMeshInFile(fileName,f,true);
30962 +      MEDLoaderNS::writeFieldWithoutReadingAndMappingOfMeshInFile<T>(fileName,f,true);
30963      }
30964    else
30965      {
30966 -      std::vector<std::string> meshNames=GetMeshNames(fileName);
30967 +      std::vector<std::string> meshNames(GetMeshNames(fileName));
30968        if(!f->getMesh())
30969          throw INTERP_KERNEL::Exception("WriteField : trying to write a field with no mesh !");
30970        std::string fileNameCpp(f->getMesh()->getName());
30971        if(std::find(meshNames.begin(),meshNames.end(),fileNameCpp)==meshNames.end())
30972 -        MEDLoaderNS::writeFieldWithoutReadingAndMappingOfMeshInFile(fileName,f,false);
30973 +        MEDLoaderNS::writeFieldWithoutReadingAndMappingOfMeshInFile<T>(fileName,f,false);
30974        else
30975          {
30976            MCAuto<MEDFileMesh> mm(MEDFileMesh::New(fileName,f->getMesh()->getName().c_str()));
30977            AssignStaticWritePropertiesTo(*mm);
30978            const MEDFileMesh *mmPtr(mm);
30979 -          const MEDFileUMesh *mmuPtr=dynamic_cast<const MEDFileUMesh *>(mmPtr);
30980 +          const MEDFileUMesh *mmuPtr(dynamic_cast<const MEDFileUMesh *>(mmPtr));
30981            if(!mmuPtr)
30982              throw INTERP_KERNEL::Exception("WriteField : only umeshes are supported now !");
30983 -          MCAuto<MEDCouplingFieldDouble> f2(f->deepCopy());
30984 -          MEDCouplingUMesh *m=dynamic_cast<MEDCouplingUMesh *>(const_cast<MEDCouplingMesh *>(f2->getMesh()));
30985 +          MCAuto< typename MEDCoupling::Traits<T>::FieldType > f2(f->deepCopy());
30986 +          MEDCouplingUMesh *m(dynamic_cast<MEDCouplingUMesh *>(const_cast<MEDCouplingMesh *>(f2->getMesh())));
30987            if(!m)
30988              throw INTERP_KERNEL::Exception("WriteField : only umesh in input field supported !");
30989 -          MCAuto<DataArrayInt> o2n=m->getRenumArrForMEDFileFrmt();
30990 +          MCAuto<DataArrayInt> o2n(m->getRenumArrForMEDFileFrmt());
30991            f2->renumberCells(o2n->begin(),false);
30992            m=static_cast<MEDCouplingUMesh *>(const_cast<MEDCouplingMesh *>(f2->getMesh()));
30993 -          MCAuto<MEDCouplingUMesh> mread=mmuPtr->getMeshAtLevel(m->getMeshDimension()-mm->getMeshDimension());
30994 +          MCAuto<MEDCouplingUMesh> mread(mmuPtr->getMeshAtLevel(m->getMeshDimension()-mm->getMeshDimension()));
30995            if(f2->getTypeOfField()!=ON_NODES)
30996              {
30997                m->tryToShareSameCoordsPermute(*mread,_EPS_FOR_NODE_COMP);
30998 -              DataArrayInt *part=0;
30999 -              bool b=mread->areCellsIncludedIn(m,_COMP_FOR_CELL,part);
31000 +              DataArrayInt *part(NULL);
31001 +              bool b(mread->areCellsIncludedIn(m,_COMP_FOR_CELL,part));
31002                MCAuto<DataArrayInt> partSafe(part);
31003                if(!b)
31004                  {
31005                    std::ostringstream oss; oss << "WriteField : The file \""<< fileName << "\" already contains a mesh named \""<< f->getMesh()->getName() << "\" and this mesh in the file is not compatible (a subpart) with the mesh you intend to write ! This is maybe due to a too strict policy ! Try with to lease it by calling SetCompPolicyForCell !";
31006                    throw INTERP_KERNEL::Exception(oss.str().c_str());
31007                  }
31008 -              MCAuto<MEDFileField1TS> f1ts(MEDFileField1TS::New());
31009 +              MCAuto< typename MLFieldTraits<T>::F1TSType > f1ts(MLFieldTraits<T>::F1TSType::New());
31010                AssignStaticWritePropertiesTo(*f1ts);
31011                if(part->isIota(mread->getNumberOfCells()))
31012                  f1ts->setFieldNoProfileSBT(f2);
31013 @@ -1587,15 +1620,15 @@
31014              }
31015            else
31016              {
31017 -              DataArrayInt *part=0;
31018 -              bool b=mread->getCoords()->areIncludedInMe(m->getCoords(),_EPS_FOR_NODE_COMP,part);
31019 +              DataArrayInt *part(NULL);
31020 +              bool b(mread->getCoords()->areIncludedInMe(m->getCoords(),_EPS_FOR_NODE_COMP,part));
31021                MCAuto<DataArrayInt> partSafe(part);
31022                if(!b)
31023                  {
31024                    std::ostringstream oss; oss << "WriteField : The file \""<< fileName << "\" already contains a mesh named \""<< f->getMesh()->getName() << "\" and this mesh in the file is not compatible (a subpart regarding nodes) with the mesh you intend to write ! This is maybe due to a too strict epsilon ! Try with to lease it by calling SetEpsilonForNodeComp !";
31025                    throw INTERP_KERNEL::Exception(oss.str().c_str());
31026                  }
31027 -              MCAuto<MEDFileField1TS> f1ts(MEDFileField1TS::New());
31028 +              MCAuto< typename MLFieldTraits<T>::F1TSType > f1ts(MLFieldTraits<T>::F1TSType::New());
31029                AssignStaticWritePropertiesTo(*f1ts);
31030                if(part->isIota(mread->getNumberOfNodes()))
31031                  f1ts->setFieldNoProfileSBT(f2);
31032 @@ -1610,29 +1643,61 @@
31033      }
31034  }
31035  
31036 -void MEDCoupling::WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch)
31037 +void MEDCoupling::WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch)
31038 +{
31039 +  if(!f)
31040 +    throw INTERP_KERNEL::Exception("WriteField : input field is null !");
31041 +  {
31042 +    const MEDCoupling::MEDCouplingFieldDouble *f1(dynamic_cast<const MEDCoupling::MEDCouplingFieldDouble *>(f));
31043 +    if(f1)
31044 +      {
31045 +        WriteFieldT<double>(fileName,f1,writeFromScratch);
31046 +        return ;
31047 +      }
31048 +  }
31049 +  {
31050 +    const MEDCoupling::MEDCouplingFieldInt *f1(dynamic_cast<const MEDCoupling::MEDCouplingFieldInt *>(f));
31051 +    if(f1)
31052 +      {
31053 +        WriteFieldT<int>(fileName,f1,writeFromScratch);
31054 +        return ;
31055 +      }
31056 +  }
31057 +  {
31058 +    const MEDCoupling::MEDCouplingFieldFloat *f1(dynamic_cast<const MEDCoupling::MEDCouplingFieldFloat *>(f));
31059 +    if(f1)
31060 +      {
31061 +        WriteFieldT<float>(fileName,f1,writeFromScratch);
31062 +        return ;
31063 +      }
31064 +  }
31065 +  throw INTERP_KERNEL::Exception("WriteField : input field is not in FLOAT32, FLOAT64, INT32 !");
31066 +}
31067 +
31068 +void MEDCoupling::WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch)
31069  {
31070    WriteField(fileName,f,writeFromScratch);
31071  }
31072  
31073 -void MEDCoupling::WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f)
31074 +template<class T>
31075 +void WriteFieldUsingAlreadyWrittenMeshT(const std::string& fileName, const typename MEDCoupling::Traits<T>::FieldType *f)
31076  {
31077    if(!f)
31078 -    throw INTERP_KERNEL::Exception("WriteFieldUsingAlreadyWrittenMesh : input field is null !");
31079 +    throw INTERP_KERNEL::Exception("WriteFieldUsingAlreadyWrittenMeshT : input field is null !");
31080    f->checkConsistencyLight();
31081 -  int status=MEDLoaderBase::getStatusOfFile(fileName);
31082 +  int status(MEDLoaderBase::getStatusOfFile(fileName));
31083    if(status!=MEDLoaderBase::EXIST_RW)
31084      {
31085        std::ostringstream oss; oss << "File with name \'" << fileName << "\' has not valid permissions or not exists !";
31086        throw INTERP_KERNEL::Exception(oss.str().c_str());
31087      }
31088 -  MCAuto<MEDFileField1TS> f1ts(MEDFileField1TS::New());
31089 +  MCAuto< typename MLFieldTraits<T>::F1TSType > f1ts(MLFieldTraits<T>::F1TSType::New());
31090    AssignStaticWritePropertiesTo(*f1ts);
31091    MEDCouplingUMesh *m(dynamic_cast<MEDCouplingUMesh *>(const_cast<MEDCouplingMesh *>(f->getMesh())));
31092    if(m)
31093      {
31094        MCAuto<DataArrayInt> o2n(m->getRenumArrForMEDFileFrmt());
31095 -      MCAuto<MEDCouplingFieldDouble> f2(f->deepCopy());
31096 +      MCAuto< typename MEDCoupling::Traits<T>::FieldType > f2(f->deepCopy());
31097        f2->renumberCells(o2n->begin(),false);
31098        f1ts->setFieldNoProfileSBT(f2);
31099      }
31100 @@ -1640,3 +1705,28 @@
31101      f1ts->setFieldNoProfileSBT(f);
31102    f1ts->write(fileName,0);
31103  }
31104 +
31105 +void MEDCoupling::WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingField *f)
31106 +{
31107 +  if(!f)
31108 +    throw INTERP_KERNEL::Exception("WriteFieldUsingAlreadyWrittenMesh : input field is null !");
31109 +  {
31110 +    const MEDCoupling::MEDCouplingFieldDouble *f1(dynamic_cast<const MEDCoupling::MEDCouplingFieldDouble *>(f));
31111 +    if(f1)
31112 +      WriteFieldUsingAlreadyWrittenMeshT<double>(fileName,f1);
31113 +    return ;
31114 +  }
31115 +  {
31116 +    const MEDCoupling::MEDCouplingFieldInt *f1(dynamic_cast<const MEDCoupling::MEDCouplingFieldInt *>(f));
31117 +    if(f1)
31118 +      WriteFieldUsingAlreadyWrittenMeshT<int>(fileName,f1);
31119 +    return ;
31120 +  }
31121 +  {
31122 +    const MEDCoupling::MEDCouplingFieldFloat *f1(dynamic_cast<const MEDCoupling::MEDCouplingFieldFloat *>(f));
31123 +    if(f1)
31124 +      WriteFieldUsingAlreadyWrittenMeshT<float>(fileName,f1);
31125 +    return ;
31126 +  }
31127 +  throw INTERP_KERNEL::Exception("WriteFieldUsingAlreadyWrittenMesh : input field is not in FLOAT32, FLOAT64, INT32 !");
31128 +}
31129 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDLoader.hxx MEDCOUPLING_new/src/MEDLoader/MEDLoader.hxx
31130 --- MEDCOUPLING_old/src/MEDLoader/MEDLoader.hxx 2018-04-19 17:04:36.762223221 +0200
31131 +++ MEDCOUPLING_new/src/MEDLoader/MEDLoader.hxx 2018-04-19 17:25:17.802798642 +0200
31132 @@ -35,6 +35,7 @@
31133    class DataArrayInt;
31134    class MEDCouplingMesh;
31135    class MEDCouplingUMesh;
31136 +  class MEDCouplingField;
31137    class MEDCouplingFieldDouble;
31138    class MEDFileWritable;
31139  
31140 @@ -72,9 +73,9 @@
31141    MEDLOADER_EXPORT MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFile(const std::string& fileName, const std::string& meshName, int meshDimRelToMax=0);
31142    MEDLOADER_EXPORT MEDCoupling::MEDCouplingUMesh *ReadUMeshFromFile(const std::string& fileName, int meshDimRelToMax=0);
31143    MEDLOADER_EXPORT int ReadUMeshDimFromFile(const std::string& fileName, const std::string& meshName);
31144 -  MEDLOADER_EXPORT MCAuto<MEDCoupling::MEDCouplingFieldDouble> ReadField(const std::string& fileName);
31145 -  MEDLOADER_EXPORT MCAuto<MEDCoupling::MEDCouplingFieldDouble> ReadField(const std::string& fileName, const std::string& fieldName);
31146 -  MEDLOADER_EXPORT MCAuto<MEDCoupling::MEDCouplingFieldDouble> ReadField(const std::string& fileName, const std::string& fieldName, int iteration, int order);
31147 +  MEDLOADER_EXPORT MCAuto<MEDCoupling::MEDCouplingField> ReadField(const std::string& fileName);
31148 +  MEDLOADER_EXPORT MCAuto<MEDCoupling::MEDCouplingField> ReadField(const std::string& fileName, const std::string& fieldName);
31149 +  MEDLOADER_EXPORT MCAuto<MEDCoupling::MEDCouplingField> ReadField(const std::string& fileName, const std::string& fieldName, int iteration, int order);
31150    MEDLOADER_EXPORT MCAuto<MEDCoupling::MEDCouplingFieldDouble> ReadField(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName, int iteration, int order);
31151    MEDLOADER_EXPORT std::vector<MEDCoupling::MEDCouplingFieldDouble *> ReadFieldsOnSameMesh(MEDCoupling::TypeOfField type, const std::string& fileName, const std::string& meshName, int meshDimRelToMax, const std::string& fieldName,
31152                                                                                             const std::vector<std::pair<int,int> >& its);
31153 @@ -96,9 +97,9 @@
31154    MEDLOADER_EXPORT void WriteUMeshesPartition(const std::string& fileName, const std::string& meshName, const std::vector<const MEDCoupling::MEDCouplingUMesh *>& meshes, bool writeFromScratch);
31155    MEDLOADER_EXPORT void WriteUMeshesPartitionDep(const std::string& fileName, const std::string& meshName, const std::vector<const MEDCoupling::MEDCouplingUMesh *>& meshes, bool writeFromScratch);
31156    MEDLOADER_EXPORT void WriteUMeshes(const std::string& fileName, const std::vector<const MEDCoupling::MEDCouplingUMesh *>& meshes, bool writeFromScratch);
31157 -  MEDLOADER_EXPORT void WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch);
31158 -  MEDLOADER_EXPORT void WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch);
31159 -  MEDLOADER_EXPORT void WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f);
31160 +  MEDLOADER_EXPORT void WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch);
31161 +  MEDLOADER_EXPORT void WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch);
31162 +  MEDLOADER_EXPORT void WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingField *f);
31163  
31164    MEDLOADER_EXPORT void AssignStaticWritePropertiesTo(MEDCoupling::MEDFileWritable& obj);
31165  }
31166 diff -Naur MEDCOUPLING_old/src/MEDLoader/MEDLoaderNS.hxx MEDCOUPLING_new/src/MEDLoader/MEDLoaderNS.hxx
31167 --- MEDCOUPLING_old/src/MEDLoader/MEDLoaderNS.hxx       2018-04-19 17:04:36.763223241 +0200
31168 +++ MEDCOUPLING_new/src/MEDLoader/MEDLoaderNS.hxx       2018-04-19 17:25:17.736797337 +0200
31169 @@ -35,7 +35,8 @@
31170  {
31171    int readUMeshDimFromFile(const std::string& fileName, const std::string& meshName, std::vector<int>& possibilities);
31172    void dispatchElems(int nbOfElemCell, int nbOfElemFace, int& nbOfElem, med_entity_type& whichEntity);
31173 -  void writeFieldWithoutReadingAndMappingOfMeshInFile(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch);
31174 +  template<class T>
31175 +  void writeFieldWithoutReadingAndMappingOfMeshInFile(const std::string& fileName, const typename MEDCoupling::Traits<T>::FieldType *f, bool writeFromScratch);
31176    med_int getIdFromMeshName(med_idt fid, const std::string& meshName, std::string& trueMeshName);
31177    std::vector<std::string> getMeshNamesFid(med_idt fid);
31178  }
31179 diff -Naur MEDCOUPLING_old/src/MEDLoader/SauvMedConvertor.cxx MEDCOUPLING_new/src/MEDLoader/SauvMedConvertor.cxx
31180 --- MEDCOUPLING_old/src/MEDLoader/SauvMedConvertor.cxx  2018-04-19 17:04:36.764223261 +0200
31181 +++ MEDCOUPLING_new/src/MEDLoader/SauvMedConvertor.cxx  2018-04-19 17:25:17.733797278 +0200
31182 @@ -1925,7 +1925,7 @@
31183    // 53619905   |       1       2       6       8
31184    // 53619906   |                                                                SCALAIRE
31185    // 53619907   |    -63312600499       1       0       0       0      -2       0       2
31186 -  //   where -63312600499 is actualy -633 and 12600499
31187 +  //   where -63312600499 is actually -633 and 12600499
31188    char hold=_curPos[_width];
31189    _curPos[_width] = '\0';
31190    int result = atoi( _curPos );
31191 @@ -2311,7 +2311,7 @@
31192  
31193  Group* IntermediateMED::addNewGroup(std::vector<SauvUtilities::Group*>* groupsToFix)
31194  {
31195 -  if ( _groups.size() == _groups.capacity() ) // re-allocation would occure
31196 +  if ( _groups.size() == _groups.capacity() ) // re-allocation would occur
31197      {
31198        std::vector<Group> newGroups( _groups.size() );
31199        newGroups.push_back( Group() );
31200 @@ -2741,7 +2741,7 @@
31201        //       if (( x = nodeCoords( elemIt->_nodes[ iNode ])[ 0 ]) < minX )
31202        //         minX = x, iLeft = iNode;
31203  
31204 -      //     // indeces of the nodes neighboring the most left one
31205 +      //     // indices of the nodes neighboring the most left one
31206        //     int iPrev = ( iLeft - 1 < 0 ) ? nbNodes - 1 : iLeft - 1;
31207        //     int iNext = ( iLeft + 1 == nbNodes ) ? 0 : iLeft + 1;
31208        //     // find components of prev-left and left-next vectors
31209 @@ -3843,7 +3843,7 @@
31210    init( dimm );
31211  }
31212  /*!
31213 - * \brief Initialize iteration on cells of given dimention
31214 + * \brief Initialize iteration on cells of given dimension
31215   */
31216  void CellsByDimIterator::init(const int  dimm)
31217  {
31218 diff -Naur MEDCOUPLING_old/src/MEDLoader/SauvMedConvertor.hxx MEDCOUPLING_new/src/MEDLoader/SauvMedConvertor.hxx
31219 --- MEDCOUPLING_old/src/MEDLoader/SauvMedConvertor.hxx  2018-04-19 17:04:36.764223261 +0200
31220 +++ MEDCOUPLING_new/src/MEDLoader/SauvMedConvertor.hxx  2018-04-19 17:25:17.741797436 +0200
31221 @@ -170,7 +170,7 @@
31222    };
31223    // ==============================================================================
31224    /*!
31225 -   * \if developper
31226 +   * \if developer
31227     * Iterator on set of Cell's of given dimension
31228     * \endif
31229     */
31230 @@ -195,7 +195,7 @@
31231  
31232    // ==============================================================================
31233    /*!
31234 -   * \if developper
31235 +   * \if developer
31236     * Container of Node's. Prevents re-allocation at addition of Node's
31237     * \endif
31238     */
31239 @@ -226,7 +226,7 @@
31240  
31241    // ==============================================================================
31242    /*!
31243 -   * \if developper
31244 +   * \if developer
31245     * Intermediate structure used to store data read from the Sauve format file.
31246     * The structure provides functions that transform the stored data to the MED format
31247     *
31248 diff -Naur MEDCOUPLING_old/src/MEDLoader/SauvReader.cxx MEDCOUPLING_new/src/MEDLoader/SauvReader.cxx
31249 --- MEDCOUPLING_old/src/MEDLoader/SauvReader.cxx        2018-04-19 17:04:36.764223261 +0200
31250 +++ MEDCOUPLING_new/src/MEDLoader/SauvReader.cxx        2018-04-19 17:25:17.801798622 +0200
31251 @@ -220,7 +220,7 @@
31252  
31253  int SauvReader::readPileNumber(int& nbNamedObjects, int& nbObjects)
31254  {
31255 -  // FORMAT(' PILE NUMERO',I4,'NBRE ObjectS NOMMES',I8,'NBRE ObjectS',I8)
31256 +  // FORMAT(' PILE NUMERO',I4,'NBRE OBJETS NOMMES',I8,'NBRE OBJETS',I8)
31257    int pileNumber;
31258    if ( !isASCII() )
31259      {
31260 @@ -233,7 +233,7 @@
31261      {
31262        char* line;
31263        getNextLine(line);
31264 -      const char *s1 = " PILE NUMERO", *s2 = "NBRE ObjectS NOMMES", *s3 = "NBRE ObjectS";
31265 +      const char *s1 = " PILE NUMERO", *s2 = "NBRE OBJETS NOMMES", *s3 = "NBRE OBJETS";
31266        if ( ! GIBI_EQUAL( line, s1 ) )
31267          THROW_IK_EXCEPTION("Could not read the pile number " << lineNb() );
31268        line           = line + strlen(s1);
31269 diff -Naur MEDCOUPLING_old/src/MEDLoader/SauvWriter.cxx MEDCOUPLING_new/src/MEDLoader/SauvWriter.cxx
31270 --- MEDCOUPLING_old/src/MEDLoader/SauvWriter.cxx        2018-04-19 17:04:36.764223261 +0200
31271 +++ MEDCOUPLING_new/src/MEDLoader/SauvWriter.cxx        2018-04-19 17:25:17.853799650 +0200
31272 @@ -106,7 +106,7 @@
31273  
31274    //================================================================================
31275    /*!
31276 -   * \brief Converts MED long names into SAUVE short ones, returnes a healed long name
31277 +   * \brief Converts MED long names into SAUVE short ones, returns a healed long name
31278     */
31279    //================================================================================
31280  
31281 @@ -559,7 +559,7 @@
31282  
31283  //================================================================================
31284  /*!
31285 - * \brief Transorm a profile into ids of mesh elements
31286 + * \brief Transform a profile into ids of mesh elements
31287   */
31288  //================================================================================
31289  
31290 @@ -725,7 +725,7 @@
31291  
31292    writeNames( nameNbMap );
31293  
31294 -  TFieldCounter fcount( *_sauvFile, 10 ); // 10 intergers per line
31295 +  TFieldCounter fcount( *_sauvFile, 10 ); // 10 integers per line
31296  
31297    for ( size_t iSub = 0; iSub < _subs.size(); ++iSub )
31298      {
31299 @@ -832,7 +832,7 @@
31300               << zeroI8
31301               << zeroI8 << endl;
31302  
31303 -  TFieldCounter fcount( *_sauvFile, 10 ); // 10 intergers per line
31304 +  TFieldCounter fcount( *_sauvFile, 10 ); // 10 integers per line
31305    for ( size_t i = 0; i < subIDs.size(); ++i, fcount++ )
31306      *_sauvFile << setw(8) << subIDs[i];
31307  }
31308 @@ -1170,7 +1170,7 @@
31309                fcount.stop();
31310              }
31311          }
31312 -    } // loop on fiels
31313 +    } // loop on files
31314  }
31315  
31316  //================================================================================
31317 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/case2med MEDCOUPLING_new/src/MEDLoader/Swig/case2med
31318 --- MEDCOUPLING_old/src/MEDLoader/Swig/case2med 2018-04-19 17:04:36.768223341 +0200
31319 +++ MEDCOUPLING_new/src/MEDLoader/Swig/case2med 2018-04-19 17:25:17.796798523 +0200
31320 @@ -46,7 +46,7 @@
31321  try:
31322      medfd=cr.loadInMEDFileDS()
31323  except:
31324 -    print "An error occured during the conversion!"
31325 +    print "An error occurred during the conversion!"
31326      print "#######################################"
31327      raise
31328  medfd.write(fOut,2)
31329 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/CaseReader.py MEDCOUPLING_new/src/MEDLoader/Swig/CaseReader.py
31330 --- MEDCOUPLING_old/src/MEDLoader/Swig/CaseReader.py    2018-04-19 17:04:36.765223281 +0200
31331 +++ MEDCOUPLING_new/src/MEDLoader/Swig/CaseReader.py    2018-04-19 17:25:17.749797594 +0200
31332 @@ -23,7 +23,7 @@
31333  import numpy as np
31334  from MEDLoader import *
31335  from CaseIO import CaseIO
31336 -import sys,re
31337 +import sys,re,os
31338  
31339  class CaseReader(CaseIO):
31340      """ Converting a file in the Case format (Ensight) to the MED format.
31341 @@ -77,7 +77,7 @@
31342          arr0mc2=DataArrayInt(len(arr0),2) ; arr0mc2[:,0]=DataArrayInt(arr0)-1 ; arr0mc2[:,1]=1 ; arr0mc2.rearrange(1) ; arr0mc2.computeOffsetsFull()
31343          arr0mc3=DataArrayInt.Range(0,2*len(arr0),2).buildExplicitArrByRanges(arr0mc2)
31344          arr1mc0=DataArrayInt(arr1) ; arr1mc0.computeOffsetsFull()
31345 -        arr1mc1=arr1mc0[arr0mc0] ; arr1mc1[1:]+=arr0mc0[1:] 
31346 +        arr1mc1=arr1mc0[arr0mc0] ; arr1mc1[1:]+=arr0mc0[1:]
31347          arr1mc2=DataArrayInt(arr1).deepCopy() ; arr1mc2+=1 ; arr1mc2.computeOffsetsFull()
31348          arr2mc0=(arr1mc2[1:])[arr0mc3]
31349          #
31350 @@ -109,7 +109,7 @@
31351          return m
31352  
31353      def __convertGeo2MED(self,geoFileName):
31354 -        """ Convert all the geometry (all the meshes) contained in teh CASE file into MEDCouplingUMesh'es. """
31355 +        """ Convert all the geometry (all the meshes) contained in the CASE file into MEDCouplingUMesh'es. """
31356          fd=open(os.path.join(self._dirName,geoFileName),"r+b") ; fd.seek(0,2) ; end=fd.tell() ; fd.seek(0) ; title=fd.read(80)
31357          title=title.strip().lower()
31358          if "binary" not in title:
31359 @@ -182,7 +182,7 @@
31360              mcmeshes2.append(self.__traduceMesh(meshName,zeK,coo,nodalConn))
31361              pos+=nbNodesPerCell*nbCellsOfType*4
31362              if abs(pos-end)>8:
31363 -                fd.seek(pos) ;elt=fd.read(80) ; typ=elt[:] ; pos+=80 
31364 +                fd.seek(pos) ;elt=fd.read(80) ; typ=elt[:] ; pos+=80
31365                  pass
31366              nbOfTurn+=1
31367              pass
31368 @@ -193,8 +193,10 @@
31369          return mcmeshes2
31370  
31371      def __convertGeo2MEDC(self,fd,end):
31372 -        fd.readline()
31373 -        name=fd.readline().strip() ; fd.readline() ; fd.readline()
31374 +        #fd.readline()
31375 +        #name=fd.readline().strip() ; fd.readline() ; fd.readline()
31376 +        name=fd.read(80)
31377 +        descrip=fd.read(80).strip() ; fd.read(80) ; fd.read(80)
31378          pos=fd.tell()
31379          mcmeshes=[]
31380          elt=fd.read(80) ; elt=elt.strip() ; pos+=80
31381 @@ -254,15 +256,15 @@
31382                  mcmeshes.append(m)
31383              pass
31384          return mcmeshes
31385 -        
31386 -    
31387 +
31388 +
31389      def __convertField(self,mlfields, mcmeshes, fileName, fieldName, discr, nbCompo, locId, it):
31390          """ Convert the fields. """
31391          stars=re.search("[\*]+",fileName).group()
31392          st="%0"+str(len(stars))+"i"
31393          trueFileName=fileName.replace(stars,st%(it))
31394          fd=open(os.path.join(self._dirName,trueFileName),"r+b") ; fd.seek(0,2) ; end=fd.tell() ; fd.seek(0)
31395 -        name=fd.readline().strip().split(" ")[0]
31396 +        name=fd.read(80).strip().split(" ")[0]
31397          if name!=fieldName:
31398              raise Exception("ConvertField : mismatch")
31399          pos=fd.tell()
31400 @@ -351,7 +353,7 @@
31401              nbTurn+=1
31402              pass
31403          pass
31404 -    
31405 +
31406      def loadInMEDFileDS(self):
31407          """ Load a CASE file into a MEDFileData object. """
31408          f=file(self._fileName)
31409 @@ -368,16 +370,17 @@
31410              if "TIME\n" in lines:
31411                  end=lines.index("TIME\n")
31412                  pass
31413 -            for i in range(ind + 1, end):
31414 -                m=re.match("^([\w]+)[\s]+\per[\s]+([\w]+)[\s]*\:[\s]*([\w]+)[\s]+([\S]+)$",lines[i])
31415 +            for i in range(ind + 1,end):
31416 +                m=re.match("^([\w]+)[\s]+\per[\s]+([\w]+)[\s]*\:[\s]*[0-9]*[\s]*([\w]+)[\s]+([\S]+)$",lines[i])
31417                  if m:
31418                      if m.groups()[0]=="constant":
31419                          continue
31420                      spatialDisc=m.groups()[1] ; fieldName=m.groups()[2] ; nbOfCompo=self.dictCompo2[m.groups()[0]] ; fieldFileName=m.groups()[3]
31421 -                    fieldsInfo.append((fieldName,spatialDisc,nbOfCompo,fieldFileName))
31422 +                    if fieldFileName.endswith("*"):
31423 +                      fieldsInfo.append((fieldName,spatialDisc,nbOfCompo,fieldFileName))
31424                      pass
31425                  pass
31426 -            
31427 +
31428              expr=re.compile("number[\s]+of[\s]+steps[\s]*\:[\s]*([\d]+)")
31429              tmp = [line for line in lines if expr.search(line)]
31430              if tmp:
31431 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/CaseWriter.py MEDCOUPLING_new/src/MEDLoader/Swig/CaseWriter.py
31432 --- MEDCOUPLING_old/src/MEDLoader/Swig/CaseWriter.py    2018-04-19 17:04:36.765223281 +0200
31433 +++ MEDCOUPLING_new/src/MEDLoader/Swig/CaseWriter.py    2018-04-19 17:25:17.751797633 +0200
31434 @@ -28,7 +28,7 @@
31435  
31436  class CaseWriter(CaseIO):
31437      """ Converting MED file format in memory to a the Case file format (Ensight).
31438 -    A new file with the same base name and the .case extension is created with its depencies (.geo ...).
31439 +    A new file with the same base name and the .case extension is created with its dependencies (.geo ...).
31440      """
31441  
31442      header="""FORMAT
31443 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/CMakeLists.txt MEDCOUPLING_new/src/MEDLoader/Swig/CMakeLists.txt
31444 --- MEDCOUPLING_old/src/MEDLoader/Swig/CMakeLists.txt   2018-04-19 17:04:36.764223261 +0200
31445 +++ MEDCOUPLING_new/src/MEDLoader/Swig/CMakeLists.txt   2018-04-19 17:25:17.760797811 +0200
31446 @@ -69,21 +69,22 @@
31447  ENDIF()
31448  
31449  SWIG_ADD_MODULE(MEDLoader python MEDLoader.i)
31450 -SWIG_LINK_LIBRARIES(MEDLoader ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} medloader medcoupling)
31451 +SWIG_LINK_LIBRARIES(MEDLoader ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} medloader medcouplingcpp )
31452  SWIG_CHECK_GENERATION(MEDLoader)
31453  IF(WIN32)
31454    SET_TARGET_PROPERTIES(_MEDLoader PROPERTIES DEBUG_OUTPUT_NAME _MEDLoader_d)
31455  ENDIF(WIN32)
31456  
31457  INSTALL(TARGETS _MEDLoader DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
31458 -INSTALL(FILES MEDLoader.i MEDLoaderTypemaps.i MEDLoaderCommon.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
31459 +INSTALL(FILES MEDLoader.i MEDLoaderTypemaps.i MEDLoaderCommon.i MEDLoaderFinalize.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
31460  
31461  SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/MEDLoader.py ${MEDCOUPLING_INSTALL_PYTHON})
31462  
31463  INSTALL(FILES MEDLoaderSplitter.py DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
31464  
31465  
31466 -INSTALL(FILES ${ALL_TESTS} MEDLoaderDataForTest.py MEDLoaderTest1.py MEDLoaderTest2.py MEDLoaderTest3.py CaseIO.py CaseReader.py CaseWriter.py VTKReader.py medutilities.py DESTINATION ${MEDCOUPLING_INSTALL_SCRIPT_SCRIPTS})
31467 +INSTALL(FILES ${ALL_TESTS} MEDLoaderDataForTest.py MEDLoaderTest1.py MEDLoaderTest2.py MEDLoaderTest3.py CaseIO.py CaseReader.py CaseWriter.py VTKReader.py DESTINATION ${MEDCOUPLING_INSTALL_SCRIPT_SCRIPTS})
31468 +INSTALL(FILES medutilities.py DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
31469  
31470  INSTALL(FILES med2sauv PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${MEDCOUPLING_INSTALL_BINS} )
31471  INSTALL(FILES sauv2med PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${MEDCOUPLING_INSTALL_BINS} )
31472 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/ConvertMEDFileTo30.py MEDCOUPLING_new/src/MEDLoader/Swig/ConvertMEDFileTo30.py
31473 --- MEDCOUPLING_old/src/MEDLoader/Swig/ConvertMEDFileTo30.py    2018-04-19 17:04:36.765223281 +0200
31474 +++ MEDCOUPLING_new/src/MEDLoader/Swig/ConvertMEDFileTo30.py    2018-04-19 17:25:17.780798207 +0200
31475 @@ -35,7 +35,7 @@
31476      #
31477      finalVersion=ml.MEDFileVersionOfFileStr(realFnOut)
31478      #
31479 -    print(("File \"%s\" has been converted to 3.0 successfuly ( %s -> %s ) !\nOutput file is here : \"%s\" !"%(fn,initalVersion,finalVersion,realFnOut)))
31480 +    print(("File \"%s\" has been converted to 3.0 successfully ( %s -> %s ) !\nOutput file is here : \"%s\" !"%(fn,initalVersion,finalVersion,realFnOut)))
31481      pass
31482  
31483  if __name__=="__main__":
31484 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderCommon.i MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderCommon.i
31485 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderCommon.i        2018-04-19 17:04:36.765223281 +0200
31486 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderCommon.i        2018-04-19 17:25:17.755797713 +0200
31487 @@ -1,4 +1,4 @@
31488 -// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
31489 +// Copyright (C) 2017  CEA/DEN, EDF R&D
31490  //
31491  // This library is free software; you can redistribute it and/or
31492  // modify it under the terms of the GNU Lesser General Public
31493 @@ -18,8 +18,6 @@
31494  //
31495  // Author : Anthony Geay (EDF R&D)
31496  
31497 -%module MEDLoader
31498 -
31499  #define MEDCOUPLING_EXPORT
31500  #define MEDLOADER_EXPORT
31501  
31502 @@ -162,6 +160,7 @@
31503  %newobject MEDCoupling::MEDFileFields::partOfThisOnStructureElements;
31504  %newobject MEDCoupling::MEDFileFields::__iter__;
31505  %newobject MEDCoupling::MEDFileFields::extractPart;
31506 +%newobject MEDCoupling::MEDFileFields::linearToQuadratic;
31507  
31508  %newobject MEDCoupling::MEDFileWritableStandAlone::serialize;
31509  %newobject MEDCoupling::MEDFileAnyTypeFieldMultiTS::New;
31510 @@ -372,9 +371,9 @@
31511    void WriteMesh(const std::string& fileName, const MEDCoupling::MEDCouplingMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
31512    void WriteUMesh(const std::string& fileName, const MEDCoupling::MEDCouplingUMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
31513    void WriteUMeshDep(const std::string& fileName, const MEDCoupling::MEDCouplingUMesh *mesh, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
31514 -  void WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
31515 -  void WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
31516 -  void WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingFieldDouble *f) throw(INTERP_KERNEL::Exception);
31517 +  void WriteField(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
31518 +  void WriteFieldDep(const std::string& fileName, const MEDCoupling::MEDCouplingField *f, bool writeFromScratch) throw(INTERP_KERNEL::Exception);
31519 +  void WriteFieldUsingAlreadyWrittenMesh(const std::string& fileName, const MEDCoupling::MEDCouplingField *f) throw(INTERP_KERNEL::Exception);
31520  }
31521  
31522  %rename (MEDFileVersion) MEDFileVersionSwig;
31523 @@ -406,21 +405,21 @@
31524      return ret;
31525    }
31526  
31527 -  MEDCoupling::MEDCouplingFieldDouble *ReadFieldSwig(const std::string& fileName) throw(INTERP_KERNEL::Exception)
31528 +  MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName) throw(INTERP_KERNEL::Exception)
31529    {
31530 -    MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(MEDCoupling::ReadField(fileName));
31531 +    MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName));
31532      return ret.retn();
31533    }
31534  
31535 -  MEDCoupling::MEDCouplingFieldDouble *ReadFieldSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
31536 +  MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName, const std::string& fieldName) throw(INTERP_KERNEL::Exception)
31537    {
31538 -    MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(MEDCoupling::ReadField(fileName,fieldName));
31539 +    MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName,fieldName));
31540      return ret.retn();
31541    }
31542    
31543 -  MEDCoupling::MEDCouplingFieldDouble *ReadFieldSwig(const std::string& fileName, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception)
31544 +  MEDCoupling::MEDCouplingField *ReadFieldSwig(const std::string& fileName, const std::string& fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception)
31545    {
31546 -    MCAuto<MEDCoupling::MEDCouplingFieldDouble> ret(MEDCoupling::ReadField(fileName,fieldName,iteration,order));
31547 +    MCAuto<MEDCoupling::MEDCouplingField> ret(MEDCoupling::ReadField(fileName,fieldName,iteration,order));
31548      return ret.retn();
31549    }
31550    
31551 @@ -622,24 +621,6 @@
31552           void __setstate__(PyObject *inp) throw(INTERP_KERNEL::Exception)
31553           {
31554           }
31555 -
31556 -         PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
31557 -         {
31558 -#ifdef WITH_NUMPY
31559 -           PyObject *ret(PyTuple_New(1));
31560 -           PyObject *ret0(PyDict_New());
31561 -           DataArrayByte *retCpp(MEDCoupling_MEDFileWritableStandAlone_serialize(self));
31562 -           PyObject *numpyArryObj=SWIG_NewPointerObj(SWIG_as_voidptr(retCpp),SWIGTYPE_p_MEDCoupling__DataArrayByte, SWIG_POINTER_OWN | 0 );
31563 -           {// create a dict to discriminite in __new__ if __init__ should be called. Not beautiful but not idea ...
31564 -             PyObject *tmp1(PyInt_FromLong(0));
31565 -             PyDict_SetItem(ret0,tmp1,numpyArryObj); Py_DECREF(tmp1); Py_DECREF(numpyArryObj);
31566 -             PyTuple_SetItem(ret,0,ret0);
31567 -           }
31568 -           return ret;
31569 -#else
31570 -           throw INTERP_KERNEL::Exception("PyWrap of MEDFileData.__getnewargs__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !");
31571 -#endif
31572 -         }
31573         }
31574    };
31575    
31576 @@ -1130,6 +1111,7 @@
31577      static std::string GetMagicFamilyStr();
31578      void assignFamilyNameWithGroupName() throw(INTERP_KERNEL::Exception);
31579      std::vector<std::string> removeEmptyGroups() throw(INTERP_KERNEL::Exception);
31580 +    void removeGroupAtLevel(int meshDimRelToMaxExt, const std::string& name) throw(INTERP_KERNEL::Exception);
31581      void removeGroup(const std::string& name) throw(INTERP_KERNEL::Exception);
31582      void removeFamily(const std::string& name) throw(INTERP_KERNEL::Exception);
31583      std::vector<std::string> removeOrphanGroups() throw(INTERP_KERNEL::Exception);
31584 @@ -1440,12 +1422,6 @@
31585             return MEDFileUMesh::New();
31586           }
31587  
31588 -         // serialization
31589 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31590 -         {
31591 -           return NewMethWrapCallInitOnlyIfEmptyDictInInput(cls,args,"MEDFileUMesh");
31592 -         }
31593 -
31594           static MEDFileUMesh *LoadPartOf(const std::string& fileName, const std::string& mName, PyObject *types, const std::vector<int>& slicPerTyp, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
31595           {
31596             std::vector<int> typesCpp1;
31597 @@ -1457,14 +1433,6 @@
31598             return MEDFileUMesh::LoadPartOf(fileName,mName,typesCpp2,slicPerTyp,dt,it,mrs);
31599           }
31600  
31601 -         PyObject *__getnewargs__() throw(INTERP_KERNEL::Exception)
31602 -         {// put an empty dict in input to say to __new__ to call __init__...
31603 -           PyObject *ret(PyTuple_New(1));
31604 -           PyObject *ret0(PyDict_New());
31605 -           PyTuple_SetItem(ret,0,ret0);
31606 -           return ret;
31607 -         }
31608 -
31609           PyObject *__getstate__() throw(INTERP_KERNEL::Exception)
31610           {
31611             std::vector<double> a0;
31612 @@ -1724,12 +1692,6 @@
31613           {
31614             return MEDFileCMesh::New(db);
31615           }
31616 -
31617 -         // serialization
31618 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31619 -         {
31620 -           return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileCMesh");
31621 -         }
31622           
31623           PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
31624           {
31625 @@ -1770,12 +1732,6 @@
31626           {
31627             return MEDFileCurveLinearMesh::New(db);
31628           }
31629 -
31630 -         // serialization
31631 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31632 -         {
31633 -           return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileCurveLinearMesh");
31634 -         }
31635           
31636           PyObject *getMesh() const throw(INTERP_KERNEL::Exception)
31637           {
31638 @@ -1879,12 +1835,6 @@
31639             return MEDFileMeshes::New(db);
31640           }
31641  
31642 -         // serialization
31643 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31644 -         {
31645 -           return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileMeshes");
31646 -         }
31647 -
31648           std::string __str__() const throw(INTERP_KERNEL::Exception)
31649             {
31650               return self->simpleRepr();
31651 @@ -1989,6 +1939,7 @@
31652      void changeLocName(const std::string& oldName, const std::string& newName) throw(INTERP_KERNEL::Exception);
31653      int getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception);
31654      int getLocalizationId(const std::string& loc) const throw(INTERP_KERNEL::Exception);
31655 +    int getProfileId(const std::string& pfl) const throw(INTERP_KERNEL::Exception);
31656      void killStructureElementsInGlobs() throw(INTERP_KERNEL::Exception);
31657    %extend
31658       {
31659 @@ -2273,6 +2224,7 @@
31660      static MEDFileField1TS *New(DataArrayByte *db) throw(INTERP_KERNEL::Exception);
31661      static MEDFileField1TS *New();
31662      MEDCoupling::MEDFileIntField1TS *convertToInt(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
31663 +    void copyTimeInfoFrom(MEDCouplingFieldDouble *mcf) throw(INTERP_KERNEL::Exception);
31664      MEDCouplingFieldDouble *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
31665      MEDCouplingFieldDouble *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31666      MEDCouplingFieldDouble *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31667 @@ -2282,6 +2234,7 @@
31668      //
31669      void setFieldNoProfileSBT(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception);
31670      void setFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31671 +    void setFieldProfileFlatly(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31672      void setProfileNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
31673      void setLocNameOnLeaf(const std::string& mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const std::string& newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception);
31674      %extend
31675 @@ -2310,12 +2263,6 @@
31676           {
31677             return MEDFileField1TS::New();
31678           }
31679 -
31680 -         // serialization
31681 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31682 -         {
31683 -           return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileField1TS");
31684 -         }
31685           
31686           void copyTinyInfoFrom(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception)
31687           {
31688 @@ -2332,12 +2279,7 @@
31689           
31690           PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
31691           {
31692 -           DataArrayInt *ret1=0;
31693 -           DataArrayDouble *ret0=self->getFieldWithProfile(type,meshDimRelToMax,mesh,ret1);
31694 -           PyObject *ret=PyTuple_New(2);
31695 -           PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
31696 -           PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
31697 -           return ret;
31698 +           return MEDFileField1TS_getFieldWithProfile<double>(self,type,meshDimRelToMax,mesh);
31699           }
31700  
31701           PyObject *getFieldSplitedByType2(const std::string& mname=std::string()) const throw(INTERP_KERNEL::Exception)
31702 @@ -2384,29 +2326,7 @@
31703  
31704           PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
31705           {
31706 -           std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > > elt1Cpp;
31707 -           DataArrayDouble *elt0=self->getUndergroundDataArrayExt(elt1Cpp);
31708 -           if(elt0)
31709 -             elt0->incrRef();
31710 -           PyObject *ret=PyTuple_New(2);
31711 -           PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elt0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
31712 -           std::size_t sz=elt1Cpp.size();
31713 -           PyObject *elt=PyList_New(sz);
31714 -           for(std::size_t i=0;i<sz;i++)
31715 -             {
31716 -               PyObject *elt1=PyTuple_New(2);
31717 -               PyObject *elt2=PyTuple_New(2);
31718 -               PyTuple_SetItem(elt2,0,SWIG_From_int((int)elt1Cpp[i].first.first));
31719 -               PyTuple_SetItem(elt2,1,SWIG_From_int(elt1Cpp[i].first.second));
31720 -               PyObject *elt3=PyTuple_New(2);
31721 -               PyTuple_SetItem(elt3,0,SWIG_From_int(elt1Cpp[i].second.first));
31722 -               PyTuple_SetItem(elt3,1,SWIG_From_int(elt1Cpp[i].second.second));
31723 -               PyTuple_SetItem(elt1,0,elt2);
31724 -               PyTuple_SetItem(elt1,1,elt3);
31725 -               PyList_SetItem(elt,i,elt1);
31726 -             }
31727 -           PyTuple_SetItem(ret,1,elt);
31728 -           return ret;
31729 +           return MEDFileField1TS_getUndergroundDataArrayExt<double>(self);
31730           }
31731         }
31732    };
31733 @@ -2423,6 +2343,8 @@
31734      //
31735      void setFieldNoProfileSBT(const MEDCouplingFieldInt *field) throw(INTERP_KERNEL::Exception);
31736      void setFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31737 +    void setFieldProfileFlatly(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31738 +    void copyTimeInfoFrom(MEDCouplingFieldInt *mcf) throw(INTERP_KERNEL::Exception);
31739      MEDCouplingFieldInt *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
31740      MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31741      MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31742 @@ -2456,12 +2378,6 @@
31743          return MEDFileIntField1TS::New(db);
31744        }
31745  
31746 -      // serialization
31747 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31748 -      {
31749 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileIntField1TS");
31750 -      }
31751 -
31752        std::string __str__() const throw(INTERP_KERNEL::Exception)
31753        {
31754          return self->simpleRepr();
31755 @@ -2469,12 +2385,7 @@
31756  
31757        PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
31758        {
31759 -         DataArrayInt *ret1=0;
31760 -         DataArrayInt *ret0=self->getFieldWithProfile(type,meshDimRelToMax,mesh,ret1);
31761 -         PyObject *ret=PyTuple_New(2);
31762 -         PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
31763 -         PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
31764 -         return ret;
31765 +         return MEDFileField1TS_getFieldWithProfile<int>(self,type,meshDimRelToMax,mesh);
31766        }
31767        
31768        DataArrayInt *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
31769 @@ -2484,6 +2395,11 @@
31770            ret->incrRef();
31771          return ret;
31772        }
31773 +
31774 +      PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
31775 +      {
31776 +        return MEDFileField1TS_getUndergroundDataArrayExt<int>(self);
31777 +      }
31778      }
31779    };
31780  
31781 @@ -2499,6 +2415,8 @@
31782      //
31783      void setFieldNoProfileSBT(const MEDCouplingFieldFloat *field) throw(INTERP_KERNEL::Exception);
31784      void setFieldProfile(const MEDCouplingFieldFloat *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31785 +    void setFieldProfileFlatly(const MEDCouplingFieldFloat *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31786 +    void copyTimeInfoFrom(MEDCouplingFieldFloat *mcf) throw(INTERP_KERNEL::Exception);
31787      MEDCouplingFieldFloat *field(const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
31788      MEDCouplingFieldFloat *getFieldAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31789      MEDCouplingFieldFloat *getFieldAtTopLevel(TypeOfField type, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31790 @@ -2532,12 +2450,6 @@
31791          return MEDFileFloatField1TS::New(db);
31792        }
31793  
31794 -      // serialization
31795 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31796 -      {
31797 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileFloatField1TS");
31798 -      }
31799 -
31800        std::string __str__() const throw(INTERP_KERNEL::Exception)
31801        {
31802          return self->simpleRepr();
31803 @@ -2545,12 +2457,7 @@
31804  
31805        PyObject *getFieldWithProfile(TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception)
31806        {
31807 -         DataArrayInt *ret1=0;
31808 -         DataArrayFloat *ret0=self->getFieldWithProfile(type,meshDimRelToMax,mesh,ret1);
31809 -         PyObject *ret=PyTuple_New(2);
31810 -         PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
31811 -         PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayFloat, SWIG_POINTER_OWN | 0 ));
31812 -         return ret;
31813 +         return MEDFileField1TS_getFieldWithProfile<float>(self,type,meshDimRelToMax,mesh);
31814        }
31815        
31816        DataArrayFloat *getUndergroundDataArray() const throw(INTERP_KERNEL::Exception)
31817 @@ -2560,6 +2467,11 @@
31818            ret->incrRef();
31819          return ret;
31820        }
31821 +      
31822 +      PyObject *getUndergroundDataArrayExt() const throw(INTERP_KERNEL::Exception)
31823 +      {
31824 +        return MEDFileField1TS_getUndergroundDataArrayExt<float>(self);
31825 +      }
31826      }
31827    };
31828  
31829 @@ -2992,12 +2904,6 @@
31830           {
31831             return MEDFileFieldMultiTS::New(db);
31832           }
31833 -         
31834 -         // serialization
31835 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31836 -         {
31837 -           return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileFieldMultiTS");
31838 -         }
31839  
31840           static MEDFileFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
31841           {
31842 @@ -3127,7 +3033,7 @@
31843      void appendFieldNoProfileSBT(const MEDCouplingFieldInt *field) throw(INTERP_KERNEL::Exception);
31844      void appendFieldProfile(const MEDCouplingFieldInt *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31845      MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
31846 -    MEDCouplingFieldDouble *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
31847 +    MEDCouplingFieldInt *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
31848      MEDCouplingFieldInt *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31849      MEDCouplingFieldInt *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31850      MEDCouplingFieldInt *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31851 @@ -3155,12 +3061,6 @@
31852          return MEDFileIntFieldMultiTS::New(db);
31853        }
31854        
31855 -      // serialization
31856 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31857 -      {
31858 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileIntFieldMultiTS");
31859 -      }
31860 -      
31861        static MEDFileIntFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
31862        {
31863          std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
31864 @@ -3204,7 +3104,7 @@
31865      void appendFieldNoProfileSBT(const MEDCouplingFieldFloat *field) throw(INTERP_KERNEL::Exception);
31866      void appendFieldProfile(const MEDCouplingFieldFloat *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception);
31867      MEDCoupling::MEDFileFieldMultiTS *convertToDouble(bool isDeepCpyGlobs=true) const throw(INTERP_KERNEL::Exception);
31868 -    MEDCouplingFieldDouble *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
31869 +    MEDCouplingFieldFloat *field(int iteration, int order, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception);
31870      MEDCouplingFieldFloat *getFieldAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31871      MEDCouplingFieldFloat *getFieldAtTopLevel(TypeOfField type, int iteration, int order, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31872      MEDCouplingFieldFloat *getFieldOnMeshAtLevel(TypeOfField type, int iteration, int order, int meshDimRelToMax, const MEDFileMesh *mesh, int renumPol=0) const throw(INTERP_KERNEL::Exception);
31873 @@ -3232,12 +3132,6 @@
31874          return MEDFileFloatFieldMultiTS::New(db);
31875        }
31876        
31877 -      // serialization
31878 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31879 -      {
31880 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileFloatFieldMultiTS");
31881 -      }
31882 -      
31883        static MEDFileFloatFieldMultiTS *LoadSpecificEntities(const std::string& fileName, const std::string& fieldName, PyObject *entities, bool loadAll=true)
31884        {
31885          std::vector<std::pair<int,int> > tmp(convertTimePairIdsFromPy(entities));
31886 @@ -3352,12 +3246,6 @@
31887             return MEDFileFields::NewAdv(fileName,loadAll,entities);
31888           }
31889           
31890 -         // serialization
31891 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31892 -         {
31893 -           return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileFields");
31894 -         }
31895 -         
31896           std::string __str__() const throw(INTERP_KERNEL::Exception)
31897           {
31898             return self->simpleRepr();
31899 @@ -3529,6 +3417,12 @@
31900             convertToMapIntDataArrayInt(extractDef,extractDefCpp);
31901             return self->extractPart(extractDefCpp,mm);
31902           }
31903 +
31904 +         MEDFileFields *linearToQuadratic(const MEDFileMeshes *oldLin, const MEDFileMeshes *newQuad) const throw(INTERP_KERNEL::Exception)
31905 +         {
31906 +           MCAuto<MEDFileFields> ret(self->linearToQuadratic(oldLin,newQuad));
31907 +           return ret.retn();
31908 +         }
31909         }
31910    };
31911  
31912 @@ -3847,12 +3741,6 @@
31913        {
31914          return MEDFileParameters::New(db);
31915        }
31916 -
31917 -      // serialization
31918 -      static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31919 -      {
31920 -        return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileParameters");
31921 -      }
31922        
31923        std::string __str__() const throw(INTERP_KERNEL::Exception)
31924        {
31925 @@ -3989,12 +3877,6 @@
31926             MCAuto<MEDFileData> ret(MEDFileData::Aggregate(mfdsCpp));
31927             return ret.retn();
31928           }
31929 -
31930 -         // serialization
31931 -         static PyObject *___new___(PyObject *cls, PyObject *args) throw(INTERP_KERNEL::Exception)
31932 -         {
31933 -           return NewMethWrapCallInitOnlyIfDictWithSingleEltInInput(cls,args,"MEDFileData");
31934 -         }
31935         }
31936    };
31937  
31938 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderDataForTest.pyc MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderDataForTest.pyc
31939 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderDataForTest.pyc 1970-01-01 01:00:00.000000000 +0100
31940 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderDataForTest.pyc 2018-04-19 17:25:17.759797792 +0200
31941 @@ -0,0 +1,211 @@
31942 +\ 3ó\r
31943 +\18;ÕZc\0\0\0\0\0\0\0\0\ 3\0\0\0@\0\0\0s=\0\0\0d\0\0d\ 1\0l\0\0Td\0\0d\ 2\0l\ 1\0m\ 2\0Z\ 2\0m\ 3\0Z\ 3\0m\ 4\0Z\ 4\0\ 1d\ 3\0d\ 6\0d\ 4\0\84\0\0\83\0\0YZ\ 5\0d\ 5\0S(\a\0\0\0iÿÿÿÿ(\ 1\0\0\0t\ 1\0\0\0*(\ 3\0\0\0t\ 2\0\0\0pit\ 1\0\0\0et\ 4\0\0\0sqrtt\14\0\0\0MEDLoaderDataForTestc\0\0\0\0\0\0\0\0\ 2\0\0\0B\0\0\0s\82\ 1\0\0e\0\0Z\ 1\0d\0\0\84\0\0Z\ 2\0d\ 1\0\84\0\0Z\ 3\0d\ 2\0\84\0\0Z\ 4\0d\ 3\0\84\0\0Z\ 5\0d\ 4\0\84\0\0Z\ 6\0d\ 5\0\84\0\0Z\a\0d\ 6\0\84\0\0Z\b\0d\a\0\84\0\0Z     \0d\b\0\84\0\0Z
31944 +\0d     \0\84\0\0Z\v\0d
31945 +\0\84\0\0Z\f\0d\v\0\84\0\0Z\r\0d\f\0\84\0\0Z\ e\0d\r\0\84\0\0Z\ f\0d\ e\0\84\0\0Z\10\0d\ f\0\84\0\0Z\11\0d\10\0\84\0\0Z\12\0d\11\0\84\0\0Z\13\0e\14\0e\ 2\0\83\ 1\0Z\ 2\0e\14\0e\ 3\0\83\ 1\0Z\ 3\0e\14\0e\ 4\0\83\ 1\0Z\ 4\0e\14\0e\ 5\0\83\ 1\0Z\ 5\0e\14\0e\ 6\0\83\ 1\0Z\ 6\0e\14\0e\a\0\83\ 1\0Z\a\0e\14\0e\b\0\83\ 1\0Z\b\0e\14\0\0\83\ 1\0Z   \0e\14\0e\v\0\83\ 1\0Z\v\0e\14\0e
31946 +\0\83\ 1\0Z
31947 +\0e\14\0e\f\0\83\ 1\0Z\f\0e\14\0e\r\0\83\ 1\0Z\r\0e\14\0e\ e\0\83\ 1\0Z\ e\0e\14\0e\ f\0\83\ 1\0Z\ f\0e\14\0e\10\0\83\ 1\0Z\10\0e\14\0e\11\0\83\ 1\0Z\11\0e\14\0e\12\0\83\ 1\0Z\12\0e\14\0e\13\0\83\ 1\0Z\13\0RS(\12\0\0\0c\ 1\0\0\0\ 5\0\0\0      \0\0\0C\0\0\0s\1e\ 1\0\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 6\0}\ 1\0d\a\0d\b\0d\b\0d  \0d      \0d
31948 +\0d
31949 +\0d\v\0d\f\0g       \0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\r\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\v\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0d       \0|\ 2\0d\a\0d        \0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d        \0|\ 2\0d   \0d\v\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d     \0|\ 2\0d\v\0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d
31950 +\0|\ 2\0d\ e\0d\ f\0!\83\ 3\0\ 1|\ 3\0j\b\0\83\0\0\ 1t     \0j\ 1\0\83\0\0}\ 4\0|\ 4\0j
31951 +\0|\ 1\0d\ e\0d\b\0\83\ 3\0\ 1|\ 4\0j\v\0d\a\0d\10\0\83\ 2\0\ 1|\ 3\0j\f\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\11\0\0\0Ng\0\0\0\0\0\0\0\0g333333Ó?g\0\0\0\0\0\0è?g\0\0\0\0\0\0ð?gffffffö?gÍÌÌÌÌÌô?i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0t\b\0\0\01DMesh_1i\ 6\0\0\0i   \0\0\0s!\0\0\0tototototototot [m*m*m*m*m*m*m*m](\r\0\0\0t\10\0\0\0MEDCouplingUMesht\ 3\0\0\0Newt\a\0\0\0setNamet\10\0\0\0setMeshDimensiont\r\0\0\0allocateCellst\ e\0\0\0insertNextCellt      \0\0\0NORM_SEG2t   \0\0\0NORM_SEG3t\14\0\0\0finishInsertingCellst\ f\0\0\0DataArrayDoublet      \0\0\0setValuest\12\0\0\0setInfoOnComponentt    \0\0\0setCoords(\ 5\0\0\0t\ 3\0\0\0clst\ 6\0\0\0coordst\ 4\0\0\0connt\ 4\0\0\0mesht\b\0\0\0myCoords(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\r\0\0\0build1DMesh_1\1a\0\0\0\0\0\0\0\ 1\18\ 1!\ 1\f\ 1\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
31952 +\ 1\f\ 1\13\ 1\10\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\f\0\0\0C\0\0\0\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 4\0d\ 5\0d\ 5\0d\ 6\0d\ 6\0g\f\0}\ 1\0d\a\0d\b\0d\b\0d    \0d      \0d
31953 +\0d
31954 +\0d\v\0d\f\0g       \0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\r\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\v\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0d       \0|\ 2\0d\a\0d        \0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d        \0|\ 2\0d   \0d\v\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d     \0|\ 2\0d\v\0d\ e\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d
31955 +\0|\ 2\0d\ e\0d\ f\0!\83\ 3\0\ 1|\ 3\0j\b\0\83\0\0\ 1t     \0j\ 1\0\83\0\0}\ 4\0|\ 4\0j
31956 +\0|\ 1\0d\ e\0d       \0\83\ 3\0\ 1|\ 3\0j\v\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\10\0\0\0Ng\0\0\0\0\0\0\0\0g333333Ó?g\0\0\0\0\0\0è?g\0\0\0\0\0\0ð?gffffffö?gÍÌÌÌÌÌô?i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0t\r\0\0\02DCurveMesh_1i\ 6\0\0\0i        \0\0\0(\f\0\0\0R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R        \0\0\0R
31957 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\12\0\0\0(\ 5\0\0\0R\13\0\0\0R\14\0\0\0R\15\0\0\0R\16\0\0\0R\17\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\12\0\0\0build2DCurveMesh_1,\0\0\0s\1e\0\0\0\0\ 1*\ 1!\ 1\f\ 1\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
31958 +\ 1\f\ 1\13\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\18\0\0\0C\0\0\0\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 2\0d\ 6\0d\a\0d\ 5\0g\18\0}\ 1\0d\b\0d        \0d
31959 +\0d     \0d\v\0d
31960 +\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d     \0d\b\0d\f\0d\11\0d     \0d\13\0d\11\0d\ e\0d\v\0d  \0g\18\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d
31961 +\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\f\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\14\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\13\0d\f\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d\f\0|\ 2\0d\f\0d\15\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\b\0d        \0|\ 2\0d\15\0d\16\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\b\0d       \0|\ 2\0d\16\0d\17\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t  \0d      \0|\ 2\0d\17\0d\18\0!\83\ 3\0\ 1|\ 3\0j
31962 +\0\83\0\0\ 1t\v\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\f\0|\ 1\0d\15\0d
31963 +\0\83\ 3\0\ 1|\ 4\0j\r\0d\12\0d\19\0\83\ 2\0\ 1|\ 4\0j\r\0d\b\0d\1a\0\83\ 2\0\ 1|\ 3\0j\ e\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\e\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?g\9a\99\99\99\99\99©¿gffffffî?g333333ó?gÍÌÌÌÌÌÜ?i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i
31964 +\0\0\0i\b\0\0\0i      \0\0\0i\v\0\0\0i\a\0\0\0i\0\0\0\0i\ 3\0\0\0t\b\0\0\02DMesh_1i\f\0\0\0i\10\0\0\0i\14\0\0\0i\18\0\0\0s\13\0\0\0tototototototot [m]s\f\0\0\0energie [kW](\ f\0\0\0R\ 6\0\0\0R\a\0\0\0R       \0\0\0R
31965 +\0\0\0R\b\0\0\0R\v\0\0\0\0\0\0NORM_TRI3t   \0\0\0NORM_TRI6t
31966 +\0\0\0NORM_QUAD4t\f\0\0\0NORM_POLYGONR\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0R\12\0\0\0(\ 5\0\0\0R\13\0\0\0t\f\0\0\0targetCoordst
31967 +\0\0\0targetConnt
31968 +\0\0\0targetMeshR\17\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\r\0\0\0build2DMesh_1=\0\0\0s(\0\0\0\0\ 16\ 1\18\ 1N\ 1\f\ 1\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
31969 +\ 1\f\ 1\13\ 1\10\ 1\10\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\18\0\0\0C\0\0\0\ 1\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 2\0d\ 6\0d\a\0d\ 5\0g\18\0}\ 1\0d\b\0d    \0d
31970 +\0d     \0d\v\0d
31971 +\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d     \0d\b\0d\f\0d\11\0d     \0d\13\0d\11\0d\ e\0d\v\0d  \0g\18\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d
31972 +\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\v\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\14\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\13\0d\f\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d  \0|\ 2\0d\15\0d\16\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d       \0|\ 2\0d\16\0d\17\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\b\0d\f\0|\ 2\0d\f\0d\15\0!\83\ 3\0\ 1|\ 3\0j   \0\83\0\0\ 1t
31973 +\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\v\0|\ 1\0d\15\0d
31974 +\0\83\ 3\0\ 1|\ 4\0j\f\0d\12\0d\18\0\83\ 2\0\ 1|\ 4\0j\f\0d\b\0d\19\0\83\ 2\0\ 1|\ 3\0j\r\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\1a\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?g\9a\99\99\99\99\99©¿gffffffî?g333333ó?gÍÌÌÌÌÌÜ?i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i
31975 +\0\0\0i\b\0\0\0i      \0\0\0i\v\0\0\0i\a\0\0\0i\0\0\0\0i\ 3\0\0\0t\b\0\0\02DMesh_2i\f\0\0\0i\10\0\0\0i\14\0\0\0s\b\0\0\0toto [m]s\f\0\0\0energie [kW](\ e\0\0\0R\ 6\0\0\0R\a\0\0\0R       \0\0\0R
31976 +\0\0\0R\b\0\0\0R\v\0\0\0R\1c\0\0\0R\1e\0\0\0R\1d\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0R\12\0\0\0(\ 5\0\0\0R\13\0\0\0\0\0\0R!\0\0\0R"\0\0\0R\17\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\r\0\0\0build2DMesh_2S\0\0\0s&\0\0\0\0\ 16\ 1\18\ 1N\ 1\f\ 1\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
31977 +\ 1\f\ 1\13\ 1\10\ 1\10\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0\18\0\0\0C\0\0\0s{\ 2\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 2\0d\ 6\0d\a\0d\ 5\0g\18\0}\ 1\0d\b\0d    \0d
31978 +\0d     \0d\v\0d
31979 +\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d     \0d\b\0d\f\0d\11\0d     \0d\13\0d\11\0d\ e\0d\v\0d  \0g\18\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d
31980 +\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\14\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\15\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\13\0d\f\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\13\0d\f\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\13\0d\f\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d  \0|\ 2\0d\16\0d\17\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d       \0|\ 2\0d\17\0d\18\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d       \0|\ 2\0d\16\0d\17\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d       \0|\ 2\0d\17\0d\18\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\b\0d\f\0|\ 2\0d\f\0d\16\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\b\0d\f\0|\ 2\0d\f\0d\16\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\b\0d\f\0|\ 2\0d\f\0d\16\0!\83\ 3\0\ 1|\ 3\0j       \0\83\0\0\ 1t
31981 +\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\v\0|\ 1\0d\16\0d
31982 +\0\83\ 3\0\ 1|\ 4\0j\f\0d\12\0d\19\0\83\ 2\0\ 1|\ 4\0j\f\0d\b\0d\1a\0\83\ 2\0\ 1|\ 3\0j\r\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\e\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?g\9a\99\99\99\99\99©¿gffffffî?g333333ó?gÍÌÌÌÌÌÜ?i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i
31983 +\0\0\0i\b\0\0\0i      \0\0\0i\v\0\0\0i\a\0\0\0i\0\0\0\0i\ 3\0\0\0i\r\0\0\0t\b\0\0\02DMesh_3i\f\0\0\0i\10\0\0\0i\14\0\0\0s\b\0\0\0toto [m]s\f\0\0\0energie [kW](\ e\0\0\0R\ 6\0\0\0R\a\0\0\0R  \0\0\0R
31984 +\0\0\0R\b\0\0\0R\v\0\0\0R\1c\0\0\0R\1e\0\0\0R\1d\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0R\12\0\0\0(\ 5\0\0\0R\13\0\0\0\0\0\0R!\0\0\0R"\0\0\0R\17\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\r\0\0\0build2DMesh_3i\0\0\0s6\0\0\0\0\ 16\ 1\18\ 1N\ 1\f\ 1\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
31985 +\ 1\f\ 1\13\ 1\10\ 1\10\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0b\ 1\0\0C\0\0\0s¿\b\0\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 4\0d\ 1\0d\ 5\0d\ 1\0d\ 1\0d\ 5\0d\ 2\0d\ 1\0d\ 2\0d\ 5\0d\ 1\0d\ 1\0d\ 5\0d\ 1\0d\ 6\0d\ 2\0d\ 1\0d\ 6\0d\ 5\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 6\0d\ 1\0d\ 5\0d\ 5\0d\ 1\0d\ 5\0d\ 6\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 4\0d\ 2\0d\ 5\0d\ 1\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 2\0d\ 5\0d\ 2\0d\ 1\0d\ 5\0d\ 2\0d\ 6\0d\ 2\0d\ 2\0d\ 6\0d\ 5\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 6\0d\ 2\0d\ 5\0d\ 5\0d\ 2\0d\ 5\0d\ 6\0d\ 2\0d\ 1\0d\ 1\0d\ 5\0d\ 2\0d\ 2\0d\ 5\0d\ 2\0d\ 3\0d\ 5\0d\ 1\0d\ 2\0d\ 5\0d\ 2\0d\ 4\0d\ 5\0d\ 5\0d\ 1\0d\ 5\0d\ 5\0d\ 2\0d\ 5\0d\ 2\0d\ 5\0d\ 5\0d\ 1\0d\ 5\0d\ 5\0d\ 6\0d\ 2\0d\ 5\0d\ 6\0d\ 5\0d\ 5\0d\ 1\0d\ 2\0d\ 5\0d\ 2\0d\ 6\0d\ 5\0d\ 5\0d\ 5\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 1\0d\ 1\0d\ 6\0d\ 2\0d\ 2\0d\ 6\0d\ 2\0d\ 3\0d\ 6\0d\ 1\0d\ 2\0d\ 6\0d\ 2\0d\ 4\0d\ 6\0d\ 5\0d\ 1\0d\ 6\0d\ 5\0d\ 2\0d\ 6\0d\ 2\0d\ 5\0d\ 6\0d\ 1\0d\ 5\0d\ 6\0d\ 6\0d\ 2\0d\ 6\0d\ 6\0d\ 5\0d\ 6\0d\ 1\0d\ 2\0d\ 6\0d\ 2\0d\ 6\0d\ 6\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0\0}\ 1\0d\a\0d\b\0d     \0d
31986 +\0d\v\0d\f\0d\r\0d\ e\0\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d    \0d\r\0d\15\0d\13\0d\14\0d\13\0d\15\0d\16\0d\12\0d\14\0d\12\0d\11\0d\17\0d\16\0d\14\0d\11\0d\10\0d\18\0d\17\0d\14\0d\10\0d\ f\0d\19\0d\18\0d\14\0d\ f\0d   \0d\r\0d\19\0d\14\0d\r\0d\15\0d\16\0d\17\0d\18\0d\19\0d   \0d\13\0d\1a\0d
31987 +\0d\r\0d\15\0d\e\0d\ e\0d\12\0d\1c\0d\1d\0d\13\0d\16\0d\1e\0d\1f\0d\15\0d\b\0\0d\11\0d\10\0d\ f\0d  \0d\14\0d\b\0d\f\0d\r\0d  \0d\14\0d   \0d\r\0d\19\0d\ f\0d\14\0d\ f\0d\19\0d\18\0d\10\0d\14\0d\10\0d\18\0d\17\0d\11\0d\14\0d\11\0\0d!\0d\17\0d\14\0\0d\b\0d\f\0d!\0d\14\0d\f\0d\r\0d\19\0d\18\0d\17\0d!\0d\11\0d"\0d#\0d\12\0d\17\0d$\0d%\0d\16\0d\v\0d\f\0d\r\0d\ e\0d&\0d'\0d(\0d)\0d\r\0d\19\0d\18\0d\17\0d\16\0d\15\0d\14\0d\r\0d(\0d*\0d\15\0d\14\0d\15\0d*\0d+\0d\16\0d\14\0d\16\0d\17\0d,\0d+\0d\14\0d\17\0d\18\0d-\0d,\0d\14\0d\18\0d\19\0d.\0d-\0d\14\0d\19\0d\r\0d(\0d.\0d\14\0d(\0d*\0d+\0d,\0d-\0d.\0d\r\0d\15\0d\e\0d\ e\0d(\0d*\0d/\0d)\0d\16\0d\1e\0d\1f\0d\15\0d+\0d0\0d1\0d*\0d\f\0d!\0d\17\0d\18\0d\19\0d\r\0d\14\0d\f\0d'\0d(\0d\r\0d\14\0d\r\0d(\0d.\0d\19\0d\14\0d\19\0d.\0d-\0d\18\0d\14\0d\18\0d-\0d,\0d\17\0d\14\0d\17\0d!\0d2\0d,\0d\14\0d!\0d\f\0d'\0d2\0d\14\0d'\0d(\0d.\0d-\0d,\0d2\0d\17\0d$\0d%\0d\16\0d,\0d3\0d4\0d+\0d&\0d'\0d(\0d)\0d5\0d6\0d7\0d8\0d(\0d.\0d-\0d,\0d+\0d*\0d\14\0d(\0d7\0d9\0d*\0d\14\0d*\0d9\0d:\0d+\0d\14\0d+\0d,\0d;\0d:\0d\14\0d,\0d-\0d<\0d;\0d\14\0d-\0d.\0d=\0d<\0d\14\0d.\0d(\0d7\0d=\0d\14\0d7\0d9\0d:\0d;\0d<\0d=\0d(\0d*\0d/\0d)\0d7\0d9\0d>\0d8\0d+\0d0\0d1\0d*\0d:\0d?\0d@\0d9\0d'\0d2\0d,\0d-\0d.\0d(\0d\14\0d'\0d6\0d7\0d(\0d\14\0d(\0d7\0d=\0d.\0d\14\0d.\0d=\0d<\0d-\0d\14\0d-\0d<\0d;\0d,\0d\14\0d,\0d2\0dA\0d;\0d\14\0d2\0d'\0d6\0dA\0d\14\0d6\0d7\0d=\0d<\0d;\0dA\0d,\0d3\0d4\0d+\0d;\0dB\0dC\0d:\0gb\ 1}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0dD\0\83\ 1\0\ 1|\ 3\0j\ 3\0d
31988 +\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\ e\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0d\a\0\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0d9\0dC\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dC\0dE\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dF\0dG\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dG\0dH\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dI\0dJ\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dJ\0dK\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dL\0dM\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dM\0dN\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dO\0dP\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dP\0dQ\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0\0|\ 2\0dR\0dS\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d+\0|\ 2\0\0d9\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d+\0|\ 2\0dE\0dF\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d+\0|\ 2\0dH\0dI\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d+\0|\ 2\0dK\0dL\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d+\0|\ 2\0dN\0dO\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d+\0|\ 2\0dQ\0dR\0!\83\ 3\0\ 1|\ 3\0j\b\0\83\0\0\ 1t      \0j\ 1\0\83\0\0}\ 4\0|\ 4\0j
31989 +\0|\ 1\0dT\0d
31990 +\0\83\ 3\0\ 1|\ 4\0j\v\0d\a\0dU\0\83\ 2\0\ 1|\ 4\0j\v\0d   \0dV\0\83\ 2\0\ 1|\ 4\0j\v\0d\ f\0dW\0\83\ 2\0\ 1|\ 3\0j\f\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(X\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ô?g\0\0\0\0\0\0ø?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@i\0\0\0\0i\v\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\ f\0\0\0i\1a\0\0\0i\10\0\0\0i\12\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\a\0\0\0i\r\0\0\0i\ 6\0\0\0iÿÿÿÿi\15\0\0\0i\1c\0\0\0i\16\0\0\0i\13\0\0\0i\11\0\0\0i\ 5\0\0\0i\14\0\0\0i
31991 +\0\0\0i   \0\0\0i\19\0\0\0i\18\0\0\0i\b\0\0\0i\17\0\0\0i\f\0\0\0i\ e\0\0\0i\e\0\0\0i\1d\0\0\0i\1e\0\0\0i)\0\0\0i\1f\0\0\0i!\0\0\0i$\0\0\0i+\0\0\0i%\0\0\0i"\0\0\0\0\0\0i#\0\0\0i(\0\0\0i'\0\0\0i&\0\0\0i*\0\0\0i,\0\0\0i-\0\0\0i8\0\0\0i.\0\0\0i0\0\0\0i3\0\0\0i:\0\0\0i4\0\0\0i1\0\0\0i/\0\0\0i2\0\0\0i7\0\0\0i6\0\0\0i5\0\0\0i9\0\0\0i;\0\0\0t\b\0\0\03DMesh_1iC\0\0\0in\0\0\0iv\0\0\0i~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\1f\ 1\0\0i'\ 1\0\0i/\ 1\0\0iZ\ 1\0\0ib\ 1\0\0i<\0\0\0s\b\0\0\0titi [m]s\16\0\0\0density power [MW/m^3]s\ 6\0\0\0t [kW](\r\0\0\0R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R  \0\0\0R
31992 +\0\0\0R\v\0\0\0t
31993 +\0\0\0NORM_HEXA8t\f\0\0\0NORM_POLYHEDR\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0R\12\0\0\0(\ 5\0\0\0R\13\0\0\0R\14\0\0\0R\15\0\0\0t\ 3\0\0\0retR\17\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\r\0\0\0build3DMesh_1\86\0\0\0sd\0\0\0\0\ 1Z\ 1-\ 1Z\ 1-\ 1Z\ 1-\ 1Z\ 13\ 3\99\ 10\ 1\81\ 1\18\ 2\99\ 10\ 1\81\ 1\18\ 2\99\ 10\ 1\81\ 1\1e\ 2\f\ 1\r\ 1\r\ 1\r\ 2\1a\ 1\1a\ 1\1a\ 1\1a\ 2\1a\ 1\1a\ 1\1a\ 1\1a\ 2\1a\ 1\1a\ 1\1a\ 1\1a\ 2\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 2
31994 +\ 1\f\ 1\13\ 1\10\ 1\10\ 1\10\ 1\r\ 1c\ 1\0\0\0\ 5\0\0\0$\0\0\0C\0\0\0\ 1\0\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 1\0d\ 3\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 3\0d\ 3\0d\ 1\0d\ 4\0d\ 5\0d\ 1\0d\ 2\0d\ 6\0d\ 1\0d\a\0d\ 5\0d\ 1\0g$\0}\ 1\0d\b\0d      \0d
31995 +\0d     \0d\v\0d
31996 +\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d     \0d\b\0d\f\0d\11\0d     \0d\13\0d\11\0d\ e\0d\v\0d  \0g\18\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d
31997 +\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\f\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\14\0\83\ 1\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\12\0d\13\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\ 6\0d\13\0|\ 2\0d\13\0d\f\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d  \0|\ 2\0d\15\0d\16\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\a\0d       \0|\ 2\0d\16\0d\17\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t\b\0d\f\0|\ 2\0d\f\0d\15\0!\83\ 3\0\ 1|\ 3\0j\ 5\0t        \0d      \0|\ 2\0d\17\0d\18\0!\83\ 3\0\ 1|\ 3\0j
31998 +\0\83\0\0\ 1t\v\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\f\0|\ 1\0d\15\0d\13\0\83\ 3\0\ 1|\ 4\0j\r\0d\12\0d\19\0\83\ 2\0\ 1|\ 4\0j\r\0d
31999 +\0d\1a\0\83\ 2\0\ 1|\ 3\0j\ e\0|\ 4\0\83\ 1\0\ 1|\ 3\0S(\e\0\0\0Ng333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?g\9a\99\99\99\99\99©¿gffffffî?g333333ó?gÍÌÌÌÌÌÜ?i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i
32000 +\0\0\0i\b\0\0\0i      \0\0\0i\v\0\0\0i\a\0\0\0i\0\0\0\0i\ 3\0\0\0t\f\0\0\03DSurfMesh_1i\f\0\0\0i\10\0\0\0i\14\0\0\0i\18\0\0\0s\b\0\0\0toto [m]s\a\0\0\0ff [km](\ f\0\0\0R\ 6\0\0\0R\a\0\0\0R   \0\0\0R
32001 +\0\0\0R\b\0\0\0R\v\0\0\0R\1c\0\0\0R\1e\0\0\0R\1d\0\0\0R\1f\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0R\11\0\0\0R\12\0\0\0(\ 5\0\0\0R\13\0\0\0\0\0\0R!\0\0\0R"\0\0\0R\17\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\11\0\0\0build3DSurfMesh_1Ä\0\0\0s(\0\0\0\0\ 1Q\ 1!\ 1N\ 1\f\ 1\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
32002 +\ 1\f\ 1\13\ 1\10\ 1\10\ 1\r\ 1c\ 1\0\0\0
32003 +\0\0\0\ 5\0\0\0C\0\0\0\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 5\0}\ 2\0|\ 1\0j\ 2\0|\ 2\0t\ 3\0\83\ 2\0}\ 3\0t\0\0j\ 4\0\83\0\0}\ 4\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0g\ 4\0}\ 5\0|\ 4\0j\ 2\0|\ 5\0t\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 5\0d\ 4\0\83\ 1\0\ 1d\ 6\0d\a\0d\ 6\0g\ 3\0}\a\0d\ 6\0d\ 6\0d\ 6\0g\ 3\0}\b\0|\ 6\0j\ 6\0|\b\0|\a\0t\a\0\vd\b\0\15\83\ 3\0\ 1|\ 3\0j\b\0|\ 6\0d\ 1\0\83\ 2\0\0|      \0S(     \0\0\0Ni\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@(       \0\0\0R\ 4\0\0\0R.\0\0\0t\11\0\0\0buildPartOfMySelft\ 5\0\0\0FalseR\18\0\0\0t\14\0\0\0changeSpaceDimensiont\ 6\0\0\0rotateR\ 1\0\0\0t\11\0\0\0buildExtrudedMesh(
32004 +\0\0\0R\13\0\0\0t\v\0\0\0m3dsurfBaset\a\0\0\0numberst\a\0\0\0m3dsurft\a\0\0\0m1dBaset\b\0\0\0numbers2t\ 3\0\0\0m1dt\ 3\0\0\0vect\ 2\0\0\0ptR+\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\r\0\0\0build3DMesh_2Ú\0\0\0s\18\0\0\0\0\ 1\f\ 1\15\ 1\12\ 1\f\ 1\12\ 1\12\ 1\r\ 1\ f\ 1\ f\ 1\18\ 1\12\ 1c\ 1\0\0\0\19\0\0\0\ e\ 1\0\0C\0\0\0sW\11\0\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 4\0d\ 1\0d\ 5\0d\ 1\0d\ 6\0d\a\0d\ 2\0d\a\0d\ 3\0d\a\0d\ 4\0d\a\0d\ 5\0d\a\0d\ 6\0d\b\0d\ 2\0d\b\0d\ 3\0d\b\0d\ 4\0d\b\0d\ 5\0d\b\0d\ 6\0d      \0d\ 2\0d   \0d\ 3\0d   \0d\ 4\0d   \0d\ 5\0d   \0d\ 6\0d\ 6\0d\ 2\0d\ 6\0d\ 3\0d\ 6\0d\ 4\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0d\ 5\0d\ 2\0d\ 5\0d\ 3\0d\ 5\0d\ 4\0d\ 5\0d\ 5\0d\ 5\0d\ 6\0d\ 4\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0d\ 5\0d\ 4\0d\ 6\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 5\0d\ 3\0d\ 6\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 5\0d\ 2\0d\ 6\0d\ 2\0d\ 2\0d\ 2\0d\ 6\0d\ 1\0d\ 6\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 6\0d\ 6\0d\ 6\0d\ 6\0d\ 6\0d\ 1\0d\ 6\0d\ 1\0d
32005 +\0d\ 6\0d\ 3\0d\ 6\0d\v\0d\ 6\0d\ 4\0d\ 6\0d\f\0d\ 6\0d\ 5\0d\ 6\0d\r\0d\ 6\0d\ 6\0d   \0d\ 6\0d\b\0d\ 6\0d\a\0d\r\0d\ 1\0d\ 5\0d\ 1\0d\f\0d\ 1\0d\ 4\0d\ 1\0d\v\0d\ 1\0d\ 3\0d\ 1\0d
32006 +\0d\ 1\0d\ 2\0d\a\0d\ 2\0d\b\0d\ 2\0d   \0d\r\0d   \0d\r\0d\b\0d\r\0d\a\0d\ 5\0d       \0d\ 5\0d\b\0d\ 5\0d\a\0d\f\0d       \0d\f\0d\b\0d\f\0d\a\0d\ 4\0d       \0d\ 4\0d\b\0d\ 4\0d\a\0d\v\0d       \0d\v\0d\b\0d\v\0d\a\0d\ 3\0d       \0d\ 3\0d\b\0d\ 3\0d\a\0d
32007 +\0d     \0d
32008 +\0d\b\0d
32009 +\0d\a\0d\ e\0d\ 6\0d    \0d\ 6\0d\ f\0d\ 6\0d\b\0d\ 6\0d\10\0d\ 6\0d\a\0d\ 6\0d\11\0d\ 6\0d\ 1\0d  \0d\ 1\0d\b\0d\ 1\0d\a\0d\11\0d\ 1\0d\a\0d\ 1\0d\10\0d\ 1\0d\b\0d\ 1\0d\ f\0d\ 1\0d    \0d\ 1\0d\ e\0d\ 1\0d\ 6\0d\a\0d\ 6\0d\b\0d\ 6\0d      \0d\11\0d   \0d\11\0d\b\0d\11\0d\a\0d\a\0d       \0d\a\0d\b\0d\a\0d\a\0d\10\0d       \0d\10\0d\b\0d\10\0d\a\0d\b\0d       \0d\b\0d\b\0d\b\0d\a\0d\ f\0d       \0d\ f\0d\b\0d\ f\0d\a\0d  \0d      \0d      \0d\b\0d   \0d\a\0d\ e\0d        \0d\ e\0d\b\0d\ e\0d\a\0g\ e\ 1}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0|\ 1\0d\12\0d\13\0\83\ 3\0\ 1|\ 2\0j\ 3\0d\14\0d\ 2\0\83\ 2\0}\ 2\0|\ 2\0j\ 4\0d\15\0d\16\0\83\ 2\0\ 1|\ 2\0j\ 4\0d\17\0d\18\0\83\ 2\0\ 1|\ 2\0j\ 4\0d\13\0d\19\0\83\ 2\0\ 1d\15\0d\17\0d\1a\0d\15\0d\1a\0d\e\0d\17\0d\13\0d\1a\0d\13\0d\1c\0d\1a\0d\13\0d\14\0d\1d\0d\13\0d\1d\0d\1c\0d\14\0d\1e\0d\1d\0d\1e\0d\1f\0d\1d\0d\e\0d\1a\0\0d\e\0\0d!\0d\1a\0d\1c\0\0d\1c\0d"\0\0d\1c\0d\1d\0d#\0d\1c\0d#\0d"\0d\1d\0d\1f\0d#\0d\1f\0d$\0d#\0d!\0\0d%\0d!\0d%\0d&\0\0d"\0d%\0d"\0d'\0d%\0d"\0d#\0d(\0d"\0d(\0d'\0d#\0d$\0d(\0d$\0d)\0d(\0d&\0d%\0d*\0d&\0d*\0d+\0d%\0d'\0d*\0d'\0d,\0d*\0d'\0d(\0d-\0d'\0d-\0d,\0d(\0d)\0d-\0d)\0d.\0d-\0d+\0d*\0d/\0d+\0d/\0d0\0d*\0d,\0d/\0d,\0d1\0d/\0d,\0d-\0d2\0d,\0d2\0d1\0d-\0d.\0d2\0d.\0d3\0d2\0d0\0d/\0d4\0d0\0d4\0d5\0d/\0d1\0d4\0d1\0d6\0d4\0d1\0d2\0d7\0d1\0d7\0d6\0d2\0d3\0d7\0d3\0d8\0d7\0d5\0d4\0d9\0d5\0d9\0d:\0d4\0d6\0d9\0d6\0d;\0d9\0d6\0d7\0d<\0d6\0d<\0d;\0d7\0d8\0d<\0d8\0d=\0d<\0d:\0d9\0d>\0d:\0d>\0d?\0d9\0d;\0d>\0d;\0d@\0d>\0d;\0d<\0dA\0d;\0dA\0d@\0d<\0d=\0dA\0d=\0dB\0dA\0\0}\ 3\0dC\0dD\0dE\0dF\0dD\0dG\0dH\0dE\0dG\0dI\0dJ\0dH\0dI\0dK\0dL\0dJ\0dF\0dE\0dM\0dN\0dE\0dH\0dO\0dM\0dH\0dJ\0dP\0dO\0dJ\0dL\0dQ\0dP\0dN\0dM\0dR\0dS\0dM\0dO\0dT\0dR\0dO\0dP\0dU\0dT\0dP\0dQ\0dV\0dU\0dS\0dR\0dW\0dX\0dR\0dT\0dY\0dW\0dT\0dU\0dZ\0dY\0dU\0dV\0d[\0dZ\0dX\0dW\0d\\0d]\0dW\0dY\0d^\0d\\0dY\0dZ\0d_\0d^\0dZ\0d[\0d`\0d_\0d]\0d\\0da\0db\0d\\0d^\0dc\0da\0d^\0d_\0dd\0dc\0d_\0d`\0de\0dd\0db\0da\0df\0dg\0da\0dc\0dh\0df\0dc\0dd\0di\0dh\0dd\0de\0dj\0di\0dg\0df\0dk\0dl\0df\0dh\0dm\0dk\0dh\0di\0dn\0dm\0di\0dj\0do\0dn\0dp\0dq\0dr\0ds\0dq\0dt\0du\0dr\0dt\0dv\0dw\0du\0dv\0dx\0dy\0dw\0ds\0dr\0dz\0d{\0dr\0du\0d|\0dz\0du\0dw\0d}\0d|\0dw\0dy\0d~\0d}\0d{\0dz\0d\7f\0d\80\0dz\0d|\0d\81\0d\7f\0d|\0d}\0d\82\0d\81\0d}\0d~\0d\83\0d\82\0d\80\0d\7f\0d\84\0d\85\0d\7f\0d\81\0d\86\0d\84\0d\81\0d\82\0d\87\0d\86\0d\82\0d\83\0d\88\0d\87\0d\85\0d\84\0d\89\0d\8a\0d\84\0d\86\0d\8b\0d\89\0d\86\0d\87\0d\8c\0d\8b\0d\87\0d\88\0d\8d\0d\8c\0d\8a\0d\89\0d\8e\0d\8f\0d\89\0d\8b\0d\90\0d\8e\0d\8b\0d\8c\0d\91\0d\90\0d\8c\0d\8d\0d\92\0d\91\0d\8f\0d\8e\0d\93\0d\94\0d\8e\0d\90\0d\95\0d\93\0d\90\0d\91\0d\96\0d\95\0d\91\0d\92\0d\97\0d\96\0d\94\0d\93\0d\98\0d\99\0d\93\0d\95\0d\9a\0d\98\0d\95\0d\96\0d\9b\0d\9a\0d\96\0d\97\0d\9c\0d\9b\0g\0\ 1}\ 4\0t\ 5\0j\ 1\0d\9d\0d\13\0\83\ 2\0}\ 5\0|\ 5\0j\ 6\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\a\0d_\0\83\ 1\0\ 1t\b\0|\ 3\0\83\ 1\0d\14\0\1a}\ 6\0x:\0t        \0|\ 6\0\83\ 1\0D],\0}\a\0|\ 5\0j
32010 +\0t\v\0d\14\0|\ 3\0d\14\0|\a\0\14d\14\0|\a\0\14d\14\0\17!\83\ 3\0\ 1q&    Wt\b\0|\ 4\0\83\ 1\0d\1e\0\1a}\b\0x:\0t   \0|\b\0\83\ 1\0D],\0}\a\0|\ 5\0j
32011 +\0t\f\0d\1e\0|\ 4\0d\1e\0|\a\0\14d\1e\0|\a\0\14d\1e\0\17!\83\ 3\0\ 1qs    W|\ 5\0j\r\0\83\0\0\ 1|\ 5\0j\ e\0d\9e\0\83\ 1\0\ 1t\ 5\0j\ 1\0d\9d\0d\17\0\83\ 2\0}        \0|      \0j\ 6\0|\ 2\0\83\ 1\0\ 1d\15\0d\17\0d\17\0d\13\0d\13\0d\14\0d\14\0d\1e\0d\1e\0d\1f\0d\1f\0d$\0d$\0d)\0d)\0d.\0d.\0d3\0d3\0d8\0d8\0d=\0d=\0dB\0dB\0dA\0dA\0d@\0d@\0d>\0d>\0d?\0d?\0d:\0d:\0d5\0d5\0d0\0d0\0d+\0d+\0d&\0d&\0d!\0d!\0d\e\0d\e\0d\15\0dB\0d=\0d=\0d8\0d8\0d3\0d3\0d.\0d.\0d)\0d)\0d$\0d$\0d\1f\0d\1f\0d\1e\0d\99\0d\94\0d\94\0d\8f\0d\8f\0d\8a\0d\8a\0d\85\0d\85\0d\80\0d\80\0d{\0d{\0ds\0ds\0dp\0dp\0dq\0dq\0dt\0dt\0dv\0dv\0dx\0dx\0dy\0dy\0d~\0d~\0d\83\0d\83\0d\88\0d\88\0d\8d\0d\8d\0d\92\0d\92\0d\97\0d\97\0d\9c\0d\9c\0d\9b\0d\9b\0d\9a\0d\9a\0d\98\0d\98\0d\99\0dl\0dg\0dg\0db\0db\0d]\0d]\0dX\0dX\0dS\0dS\0dN\0dN\0dF\0dF\0dC\0dC\0dD\0dD\0dG\0dG\0dI\0dI\0dK\0dK\0dL\0dL\0dQ\0dQ\0dV\0dV\0d[\0d[\0d`\0d`\0de\0de\0dj\0dj\0do\0do\0dn\0dn\0dm\0dm\0dk\0dk\0dl\0\0}
32012 +\0|     \0j\a\0d\81\0\83\ 1\0\ 1x:\0\0d\81\0\83\ 1\0D],\0}\a\0\0j
32013 +\0t\ f\0d\13\0|
32014 +\0d\13\0|\a\0\14d\13\0|\a\0\14d\13\0\17!\83\ 3\0\ 1\vW|  \0j\r\0\83\0\0\ 1|       \0j\ e\0d\9e\0\83\ 1\0\ 1t\ 5\0j\ 1\0d\9d\0d\15\0\83\ 2\0}\v\0|\v\0j\ 6\0|\ 2\0\83\ 1\0\ 1d?\0d\15\0d\9c\0dK\0g\ 4\0}\f\0|\v\0j\a\0d\1e\0\83\ 1\0\ 1x.\0t   \0d\1e\0\83\ 1\0D] \0}\a\0|\v\0j
32015 +\0t\10\0d\17\0|\f\0|\a\0\19g\ 1\0\83\ 3\0\ 1qk\fW|\v\0j\r\0\83\0\0\ 1t\11\0j\ 1\0\83\0\0}\r\0|\r\0j\12\0d_\0d\17\0\83\ 2\0\ 1d\9f\0|\r\0d~\0*d \0|\r\0d~\0d]\0+d¡\0|\r\0d]\0)t\11\0j\ 1\0\83\0\0}\ e\0|\ e\0j\12\0d\81\0d\17\0\83\ 2\0\ 1\0|\ e\0d\1e\0*d£\0|\ e\0d\1e\0d"\0+d¤\0|\ e\0d"\0d%\0+d¥\0|\ e\0d%\0d.\0+d¦\0|\ e\0d.\0d2\0+d§\0|\ e\0d2\0d6\0+d¨\0|\ e\0d6\0d>\0+d©\0|\ e\0d>\0d?\0+dª\0|\ e\0d?\0dx\0+d«\0|\ e\0dx\0d\85\0+d¬\0|\ e\0d\85\0d~\0+d­\0|\ e\0d~\0d\92\0+d®\0|\ e\0d\92\0dz\0+d¯\0|\ e\0dz\0)t\11\0j\ 1\0\83\0\0}\ f\0|\ f\0j\ 2\0\0\0\0\0g\ 4\0d\1e\0d\17\0\83\ 3\0\ 1t\11\0j\ 1\0\83\0\0}\10\0|\10\0j\12\0d\12\0d\17\0\83\ 2\0\ 1|\10\0j\13\0\83\0\0\ 1t\11\0j\ 1\0\83\0\0}\11\0|\11\0j\12\0d#\0d\17\0\83\ 2\0\ 1|\11\0j\14\0d\17\0\83\ 1\0\ 1|\11\0|\10\0d\15\0d\1e\0d.\0dB\0d?\0d\99\0dC\0d\9c\0dK\0dp\0dl\0do\0dx\0g\r\0<t\11\0j\ 1\0\83\0\0}\12\0|\12\0j\12\0d_\0d\17\0\83\ 2\0\ 1|\12\0j\14\0d\17\0\83\ 1\0\ 1t\11\0j\ 1\0\83\0\0}\13\0|\13\0j\12\0d\81\0d\17\0\83\ 2\0\ 1|\13\0j\14\0dh\0\83\ 1\0\ 1t\11\0j\ 1\0\83\0\0}\14\0|\14\0j\12\0d\1e\0d\17\0\83\ 2\0\ 1|\14\0j\14\0da\0\83\ 1\0\ 1\0\0\0\0\0\0\0\0\0\0\0d¿\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g#\0}\15\0\0d\e\0\0d\17\0\0\0d\1e\0\0d\13\0\0d\1a\0\0d\1c\0\0d\1d\0\0d\1f\0\0d!\0\0\0\0d"\0\0d#\0\0d\14\0d\15\0\0\0\0\0\0\0d\9f\0g#\0}\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g&\0}\17\0d\e\0g\ 1\0\0g\ 1\0d\17\0g\ 1\0\0g\ 1\0d\1e\0g\ 1\0\0g\ 1\0\0g\ 1\0d\13\0g\ 1\0\0g\ 1\0\0g\ 1\0\0g\ 1\0\0g\ 1\0\0g\ 1\0\0\0\0\0g\ 4\0d\1a\0g\ 1\0\0g\ 1\0d\1c\0g\ 1\0\0g\ 1\0d\1d\0g\ 1\0\0g\ 1\0d\1f\0g\ 1\0\0g\ 1\0d!\0g\ 1\0\0g\ 1\0\0g\ 1\0\0g\ 1\0d"\0g\ 1\0\0g\ 1\0d#\0g\ 1\0\0g\ 1\0d\14\0g\ 1\0\0g\ 1\0\0\0d\9f\0g\ 3\0\0g\ 1\0\0g\ 1\0d\9f\0g\ 1\0\0\0\0\0\0\0d\9f\0g\a\0d\14\0g\ 1\0g&\0}\18\0|\ 5\0|        \0|\v\0|\r\0|\ e\0|\ f\0|\10\0|\12\0|\13\0|\14\0|\15\0|\16\0|\17\0|\18\0f\ e\0S(ý\0\0\0Ng\0\0\0\0\0\0$@g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ô?g\0\0\0\0\0\0\ 4@g\0\0\0\0\0\0\ e@g\0\0\0\0\0\0\14@g\0\0\0\0\0\80!@g\0\0\0\0\0\0\1e@g\0\0\0\0\0\0\19@g\0\0\0\0\0\0ä?g\0\0\0\0\0\0þ?g\0\0\0\0\0\0       @g\0\0\0\0\0\80\11@g\0\0\0\0\0\80\16@g\0\0\0\0\0\80\e@g\0\0\0\0\0@ @g\0\0\0\0\0À"@i\87\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0s\f\0\0\0X [INCONNUE]i\ 1\0\0\0s\f\0\0\0Y [INCONNUE]s\f\0\0\0Z [INCONNUE]i\ 6\0\0\0i\ 5\0\0\0i\a\0\0\0i\b\0\0\0i\ 4\0\0\0i    \0\0\0i\v\0\0\0i
32016 +\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\10\0\0\0i\ f\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\15\0\0\0i\14\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\1a\0\0\0i\19\0\0\0i\e\0\0\0i\1c\0\0\0i\1d\0\0\0i\1f\0\0\0i\1e\0\0\0\0\0\0i!\0\0\0i"\0\0\0i$\0\0\0i#\0\0\0i%\0\0\0i&\0\0\0i'\0\0\0i(\0\0\0i,\0\0\0i)\0\0\0i*\0\0\0i+\0\0\0i.\0\0\0ie\0\0\0ir\0\0\0id\0\0\0if\0\0\0is\0\0\0ig\0\0\0it\0\0\0i0\0\0\0ih\0\0\0iu\0\0\0ic\0\0\0iv\0\0\0iw\0\0\0ii\0\0\0ix\0\0\0ib\0\0\0iy\0\0\0iz\0\0\0ij\0\0\0i{\0\0\0ia\0\0\0i|\0\0\0i}\0\0\0ik\0\0\0i~\0\0\0i`\0\0\0i\7f\0\0\0i\80\0\0\0il\0\0\0i\81\0\0\0i_\0\0\0i\82\0\0\0i\83\0\0\0im\0\0\0i\84\0\0\0i^\0\0\0i\85\0\0\0i\86\0\0\0in\0\0\0iq\0\0\0i2\0\0\0ip\0\0\0io\0\0\0i3\0\0\0i1\0\0\0i<\0\0\0iI\0\0\0i;\0\0\0i=\0\0\0iJ\0\0\0i>\0\0\0iK\0\0\0i4\0\0\0i?\0\0\0iL\0\0\0i:\0\0\0iM\0\0\0iN\0\0\0i@\0\0\0iO\0\0\0i9\0\0\0iP\0\0\0iQ\0\0\0iA\0\0\0iR\0\0\0i8\0\0\0iS\0\0\0iT\0\0\0iB\0\0\0iU\0\0\0i7\0\0\0iV\0\0\0iW\0\0\0iC\0\0\0iX\0\0\0i6\0\0\0iY\0\0\0iZ\0\0\0iD\0\0\0i[\0\0\0i5\0\0\0i\\0\0\0i]\0\0\0iE\0\0\0iH\0\0\0i-\0\0\0iG\0\0\0iF\0\0\0i/\0\0\0t\ 2\0\0\0mas\13\0\0\0CREE PAR CODE_ASTERiÿÿÿÿiþÿÿÿiýÿÿÿiøÿÿÿi÷ÿÿÿiöÿÿÿiõÿÿÿiôÿÿÿióÿÿÿiòÿÿÿiñÿÿÿiðÿÿÿiïÿÿÿiîÿÿÿiíÿÿÿiìÿÿÿiëÿÿÿiüÿÿÿiûÿÿÿiúÿÿÿiùÿÿÿt \0\0\0A1A2____________________________t \0\0\0A1______________________________t \0\0\0A2A4____________________________t \0\0\0A2______________________________t \0\0\0A3A1____________________________t \0\0\0A3C5____________________________t \0\0\0A3______________________________t \0\0\0A4A3____________________________t \0\0\0A4______________________________t \0\0\0B1C1____________________________t \0\0\0B1______________________________t \0\0\0B2B4____________________________t \0\0\0B2______________________________t \0\0\0B3B1____________________________t \0\0\0B3______________________________t \0\0\0B4C3____________________________t \0\0\0B4______________________________t \0\0\0C1C4____________________________t \0\0\0C1______________________________t \0\0\0C2B2____________________________t \0\0\0C2______________________________t \0\0\0C3C2____________________________t \0\0\0C3______________________________t \0\0\0C4B3____________________________t \0\0\0C4______________________________t \0\0\0C5A4____________________________t \0\0\0C5______PMMA____________________t\f\0\0\0FAMILLE_ZEROt \0\0\0MESH____APPS____AP1_____________t \0\0\0MESH____APPS____AP2_____________t \0\0\0MESH____APPS____AP3_____________t \0\0\0MESH____APPS____AP4_____________t \0\0\0MESH____DALQ1___DALLE___________t \0\0\0MESH____DALQ2___DALLE___________t \0\0\0MESH____DALT3___DALLE___________t\ 2\0\0\0A1t\ 4\0\0\0A1A2t\ 2\0\0\0A2t\ 4\0\0\0A2A4t\ 2\0\0\0A3t\ 4\0\0\0A3A1t\ 4\0\0\0A3C5t\ 2\0\0\0A4t\ 4\0\0\0A4A3t\ 3\0\0\0AP1t\ 3\0\0\0AP2t\ 3\0\0\0AP3t\ 3\0\0\0AP4t\ 4\0\0\0APPSt\ 2\0\0\0B1t\ 4\0\0\0B1C1t\ 2\0\0\0B2t\ 4\0\0\0B2B4t\ 2\0\0\0B3t\ 4\0\0\0B3B1t\ 2\0\0\0B4t\ 4\0\0\0B4C3t\ 2\0\0\0C1t\ 4\0\0\0C1C4t\ 2\0\0\0C2t\ 4\0\0\0C2B2t\ 2\0\0\0C3t\ 4\0\0\0C3C2t\ 2\0\0\0C4t\ 4\0\0\0C4B3t\ 2\0\0\0C5t\ 4\0\0\0C5A4t\ 5\0\0\0DALLEt\ 5\0\0\0DALQ1t\ 5\0\0\0DALQ2t\ 5\0\0\0DALT3t\ 4\0\0\0MESHt\ 4\0\0\0PMMA(\15\0\0\0R\ f\0\0\0R\a\0\0\0R\10\0\0\0t\14\0\0\0changeNbOfComponentsR\11\0\0\0R\ 6\0\0\0R\12\0\0\0R
32017 +\0\0\0t\ 3\0\0\0lent\ 5\0\0\0rangeR\v\0\0\0R\1c\0\0\0R\1e\0\0\0R\ e\0\0\0t\ e\0\0\0setDescriptionR\f\0\0\0t\v\0\0\0NORM_POINT1t\f\0\0\0DataArrayIntt\ 5\0\0\0alloct\f\0\0\0fillWithZerot\ 4\0\0\0iota(\19\0\0\0R\13\0\0\0t\ 3\0\0\0coot\ 4\0\0\0coo2t\ 5\0\0\0c2trit\a\0\0\0c2quad4t\ 2\0\0\0m2t\ 5\0\0\0nbTrit\ 1\0\0\0it\ 5\0\0\0nbQuat\ 2\0\0\0m1t\ 5\0\0\0c1segt\ 2\0\0\0m0t\ 4\0\0\0c0ptt\ 2\0\0\0f2t\ 2\0\0\0f1t\ 2\0\0\0f0t\ 1\0\0\0pt\ 2\0\0\0p1t\ 2\0\0\0n2t\ 2\0\0\0n1t\ 2\0\0\0n0t\ 3\0\0\0fnst\ 4\0\0\0fidst\ 5\0\0\0grpnst\f\0\0\0famIdsPerGrp(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\15\0\0\0buildMultiLevelMesh_1è\0\0\0\0\0\0\0\ 1ÿ\0ÿ\0ÿ\03\ 1\f\ 1\13\ 1\12\ 1\10\ 1\10\ 1\10\ 1ÿ\0ÿ\0H\ 1ÿ\0ÿ\0ÿ\0      \ 1\12\ 1\r\ 1\r\ 1\10\ 1\13\ 1&\ 1\ 4\ 1\10\ 1\13\ 1&\ 1\ 4\ 1
32018 +\ 1\r\ 1\12\ 1\r\ 1ÿ\0ç\ 1\r\ 1\13\ 1&\ 1\ 4\ 1
32019 +\ 1\r\ 1\12\ 1\r\ 1\12\ 1\r\ 1\13\ 1\1a\ 1\ 4\ 1
32020 +\ 1\f\ 1\10\ 1
32021 +\ 1\r\ 1
32022 +\ 1\f\ 1\10\ 1
32023 +\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1
32024 +\ 1\f\ 1\1f\ 1\f\ 1\10\ 1
32025 +\ 1\f\ 1\10\ 1\r\ 11\ 1\f\ 1\10\ 1\r\ 1\f\ 1\10\ 1\r\ 1\f\ 1\10\ 1\r\ 1o\ 1o\ 1x\ 1ÿ\0\f\ 1c\ 2\0\0\0\15\0\0\0#\0\0\0C\0\0\0\ 5\0\0d\ 1\0}\ 2\0t\0\0j\ 1\0d\ 2\0d\ 3\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0d\ 4\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\ 5\0\83\ 1\0\ 1|\ 3\0j\ 2\0d\ 3\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\ 6\0d\a\0d\b\0g\ 3\0\83\ 1\0\ 1t\ 5\0|\ 2\0d\ 3\0\83\ 2\0}\ 4\0t\ 6\0t\ 6\0t\a\0t\a\0t\a\0t\b\0t\b\0g\a\0}\ 5\0d    \0d\ 4\0d
32026 +\0d\ 3\0g\ 4\0d\v\0d\f\0d\r\0d\ e\0g\ 4\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0g\ 6\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0g\ 6\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0g\ 6\0d!\0d"\0d#\0d$\0d!\0d%\0d"\0d$\0d"\0d%\0d#\0d$\0d#\0d%\0d!\0g\ f\0d&\0d'\0d(\0d)\0d$\0d*\0d+\0d,\0d-\0d$\0d&\0d*\0d-\0d'\0d$\0d'\0d-\0d,\0d(\0d$\0d(\0d,\0d+\0d)\0d$\0d)\0d+\0d*\0d&\0g\1d\0g\a\0}\ 6\0|\ 4\0j      \0t
32027 +\0|\ 5\0\83\ 1\0\83\ 1\0\ 1x-\0t\v\0|\ 5\0|\ 6\0\83\ 2\0D]\1c\0\\ 2\0}\a\0}\b\0|\ 4\0j\f\0|\a\0|\b\0\83\ 2\0\ 1q\8f\ 1W|\ 4\0j\r\0\83\0\0\ 1|\ 4\0j\ e\0|\ 3\0\83\ 1\0\ 1t\ 5\0|\ 2\0d
32028 +\0\83\ 2\0}  \0t\ f\0t\ f\0t\10\0t\10\0t\10\0t\11\0t\11\0t\11\0t\11\0g   \0}
32029 +\0d     \0d\ 4\0d
32030 +\0g\ 3\0d\ 3\0d\v\0d\f\0g\ 3\0d\r\0d\ e\0d\ f\0d\10\0g\ 4\0d\11\0d\12\0d\13\0d\14\0g\ 4\0d\15\0d\16\0d\17\0d\18\0g\ 4\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0g\ 5\0d\1e\0d\1f\0\0d!\0d"\0g\ 5\0d#\0d%\0d&\0g\ 3\0d'\0d(\0d)\0d*\0d-\0d,\0d+\0g\a\0\0}\v\0|   \0j      \0t
32031 +\0|
32032 +\0\83\ 1\0\83\ 1\0\ 1x-\0t\v\0|
32033 +\0|\v\0\83\ 2\0D]\1c\0\\ 2\0}\a\0}\b\0|  \0j\f\0|\a\0|\b\0\83\ 2\0\ 1\ 2W|     \0j\r\0\83\0\0\ 1|       \0j\ e\0|\ 3\0\83\ 1\0\ 1t\12\0j\ 1\0\83\0\0}\f\0|\f\0j\13\0d  \0|\ 4\0\83\ 2\0\ 1|\f\0j\13\0d$\0|      \0\83\ 2\0\ 1t\14\0j\ 1\0d    \0d\ 4\0d\f\0d\ e\0g\ 4\0\83\ 1\0}\r\0|\r\0j\15\0d.\0\83\ 1\0\ 1t\14\0j\ 1\0d\ 4\0d
32034 +\0d\ 3\0d\v\0d\r\0g\ 5\0\83\ 1\0}\ e\0|\ e\0j\15\0d/\0\83\ 1\0\ 1|\ 1\0j\16\0t\17\0|\f\0j\18\0d       \0|\r\0|\ e\0g\ 2\0\83\ 4\0\ 1t\14\0j\ 1\0d   \0d\ 4\0d\f\0d\r\0g\ 4\0\83\ 1\0}\r\0|\r\0j\15\0d.\0\83\ 1\0\ 1|\f\0j\18\0\0|\r\0|\ e\0g\ 2\0\83\ 2\0\ 1t\14\0j\ 1\0d\ 4\0d
32035 +\0d\ 3\0d\v\0d\ e\0g\ 5\0\83\ 1\0}\ f\0|\ f\0j\15\0d0\0\83\ 1\0\ 1t\14\0j\ 1\0d
32036 +\0d\ 3\0d\v\0d\f\0g\ 4\0\83\ 1\0}\10\0|\10\0j\15\0d1\0\83\ 1\0\ 1t\14\0j\ 1\0d\f\0d\r\0d\ e\0d\ f\0g\ 4\0\83\ 1\0}\11\0|\11\0j\15\0d2\0\83\ 1\0\ 1|\f\0j\18\0d$\0|\ f\0|\10\0|\11\0g\ 3\0\83\ 2\0\ 1t\14\0j\ 1\0d       \0d\12\0d\16\0d\17\0g\ 4\0\83\ 1\0}\12\0|\12\0j\15\0d3\0\83\ 1\0\ 1t\14\0j\ 1\0d\ 4\0d
32037 +\0d\14\0d\15\0d\17\0g\ 5\0\83\ 1\0}\13\0|\13\0j\15\0d4\0\83\ 1\0\ 1|\f\0j\18\0d\ 4\0|\12\0|\13\0g\ 2\0\83\ 2\0\ 1|\ 1\0j\16\0t\17\0|\f\0j\19\0\0t\14\0j\ 1\0d        \0d\ f\0d\10\0d\v\0d\f\0d\r\0d\ e\0d\11\0g\b\0\83\ 1\0\83\ 4\0\ 1|\f\0j\19\0\0t\14\0j\ 1\0d        \0d\ f\0d\10\0d\v\0d\f\0d\r\0d\ e\0g\a\0\83\ 1\0\83\ 2\0\ 1t\14\0j\ 1\0d    \0d\ f\0d\10\0d\v\0d\f\0d\r\0d\ e\0d\12\0d\13\0g      \0\83\ 1\0}\14\0|\f\0j\19\0d$\0|\14\0\83\ 2\0\ 1|\f\0j\19\0d$\0d5\0\83\ 2\0\ 1|\f\0j\19\0d$\0|\14\0\83\ 2\0\ 1t\14\0j\ 1\0|\f\0j\e\0\83\0\0d\ 4\0\17\83\ 1\0}\14\0|\14\0j\ 3\0d\ f\0\83\ 1\0\ 1|\ 1\0j\16\0t\17\0|\f\0j\19\0d\ 4\0|\14\0\83\ 4\0\ 1t\14\0j\ 1\0|\f\0j\e\0\83\0\0\83\ 1\0}\14\0|\14\0j\ 3\0d\ f\0\83\ 1\0\ 1|\f\0j\19\0d\ 4\0|\14\0\83\ 2\0\ 1|\f\0S(6\0\0\0\0\0\0Level 0 (meshDim=3) - 2 TETRA4 + 3 PENTA6 + 2 POLYH
32038 +        # POLYH #0 becomes 1 TETRA4
32039 +        # POLYH #1 becomes HEXA8
32040 +        # Level -1 (meshDim=2) - 2 TRI3 + 3 QUAD4 + 4 POLYG
32041 +        # POLYG #2 becomes TRI3t\r\0\0\0NightmareMeshi&\0\0\0i\ 3\0\0\0i\ 1\0\0\0g\0\0\0\0\0@\8f@s\ 5\0\0\0X [m]s\ 5\0\0\0Y [m]s\ 5\0\0\0Z [m]i\0\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i    \0\0\0i
32042 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0i\e\0\0\0i\1c\0\0\0iÿÿÿÿi\1d\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i%\0\0\0i$\0\0\0i#\0\0\0t\a\0\0\0grp0_L0t\a\0\0\0grp1_L0t\b\0\0\0grp0_LM1t\b\0\0\0grp1_LM1t\b\0\0\0grp2_LM1t        \0\0\0grp0_Nodet   \0\0\0grp1_NodeN(\1c\0\0\0R\ f\0\0\0R\a\0\0\0t   \0\0\0rearrangeR\8f\0\0\0t\13\0\0\0setInfoOnComponentsR\ 6\0\0\0t\v\0\0\0NORM_TETRA4t\v\0\0\0NORM_PENTA6R*\0\0\0R
32043 +\0\0\0R\88\0\0\0t\ 3\0\0\0zipR\v\0\0\0R\ e\0\0\0R\12\0\0\0R\1c\0\0\0R\1e\0\0\0R\1f\0\0\0t\f\0\0\0MEDFileUMesht\ e\0\0\0setMeshAtLevelR\8c\0\0\0R\b\0\0\0t\f\0\0\0assertRaisest\15\0\0\0InterpKernelExceptiont\10\0\0\0setGroupsAtLevelt\10\0\0\0setRenumFieldArrt\ 4\0\0\0Nonet\10\0\0\0getNumberOfNodes(\15\0\0\0R\13\0\0\0t\ 6\0\0\0testert\b\0\0\0meshNameR\14\0\0\0t\ 5\0\0\0mesh0t\ 5\0\0\0type0t\ 5\0\0\0conn0t\ 3\0\0\0typt  \0\0\0nodalConnt\ 6\0\0\0meshM1t\ 6\0\0\0typeM1t\ 6\0\0\0connM1t\ 2\0\0\0mmRª\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\ 2\0\0\0da(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\13\0\0\0buildMLMeshUnPolyze=\ 1\0\0sx\0\0\0\0\ 6\ 6\ 2\12\0\r\0\r\0\r\0\16\ 1\ f\ 1\e\ 1í\ 1\13\ 1\1c\ 1\10\ 1\ 4\ 1
32044 +\ 1\r\ 2\ f\ 1!\ 1\93\ 1\13\ 1\1c\ 1\10\ 1\ 4\ 1
32045 +\ 1\r\ 2\f\ 1\10\ 1\10\ 1\e\0\r\ 1\1e\0\r\ 1\1f\ 1\e\0\r\ 1\16\ 1\1e\0\r\ 1\e\0\r\ 1\e\0\r\ 1\19\ 1\e\0\r\ 1\1e\0\r\ 1\16\ 2:\ 1.\ 1*\ 1\10\ 1\10\ 1\10\ 1\19\0\r\0\19\ 1\15\0\r\0\10\ 1c\ 1\0\0\0\a\0\0\0\12\0\0\0C\0\0\0s    \ 1\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0}\ 2\0t\ 3\0j\ 4\0t\ 5\0t\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\a\0d\ 1\0\83\ 1\0\ 1|\ 3\0j\b\0|\ 1\0\83\ 1\0\ 1t        \0j\ 4\0\83\0\0}\ 4\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d        \0d
32046 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0g\12\0}\ 5\0|\ 4\0j
32047 +\0|\ 5\0|\ 2\0d\14\0\83\ 3\0\ 1|\ 4\0j\v\0d\15\0d\16\0\83\ 2\0\ 1|\ 4\0j\v\0d\17\0d\18\0\83\ 2\0\ 1|\ 4\0j\v\0d\19\0d\1a\0\83\ 2\0\ 1|\ 3\0j\f\0|\ 4\0\83\ 1\0\ 1|\ 4\0j\r\0\83\0\0}\ 6\0|\ 3\0j\ e\0d\b\0d\15\0d\17\0\83\ 3\0\ 1|\ 3\0j\ f\0\83\0\0\ 1|\ 3\0S(\e\0\0\0Nt\12\0\0\0VectorFieldOnCellsg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0$@g\0\0\0\0\0\04@g\0\0\0\0\0\0ð?g\0\0\0\0\0\0&@g\0\0\0\0\0\05@g\0\0\0\0\0\0\0@g\0\0\0\0\0\0(@g\0\0\0\0\0\06@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0*@g\0\0\0\0\0\07@g\0\0\0\0\0\0\10@g\0\0\0\0\0\0,@g\0\0\0\0\0\08@g\0\0\0\0\0\0\14@g\0\0\0\0\0\0.@g\0\0\0\0\0\09@i\ 3\0\0\0i\0\0\0\0s\ e\0\0\0power [MW/m^3]i\ 1\0\0\0s\10\0\0\0density [g/cm^3]i\ 2\0\0\0s\ f\0\0\0temperature [K](\10\0\0\0R\ 4\0\0\0R.\0\0\0t\10\0\0\0getNumberOfCellst\16\0\0\0MEDCouplingFieldDoubleR\a\0\0\0t\b\0\0\0ON_CELLSt\b\0\0\0ONE_TIMER\b\0\0\0t\a\0\0\0setMeshR\ f\0\0\0R\10\0\0\0R\11\0\0\0t\b\0\0\0setArrayt
32048 +\0\0\0getPointert\a\0\0\0setTimet\15\0\0\0checkConsistencyLight(\a\0\0\0R\13\0\0\0R\16\0\0\0t    \0\0\0nbOfCellsR\9d\0\0\0t\ 5\0\0\0arrayt\ 4\0\0\0arr1t\ 3\0\0\0tmp(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\16\0\0\0buildVecFieldOnCells_1t\ 1\0\0\0\0\0\0\ 1\f\ 1\f\ 1\12\ 1\r\ 1\r\ 1\f\ 1<\ 1\13\ 1\10\ 1\10\ 1\10\ 1\r\ 1\f\ 1\13\ 1
32049 +\ 1c\ 1\0\0\0\ 6\0\0\0$\0\0\0C\0\0\0s3\ 1\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0}\ 2\0t\ 3\0j\ 4\0t\ 5\0t\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\a\0d\ 1\0\83\ 1\0\ 1|\ 3\0j\b\0|\ 1\0\83\ 1\0\ 1t   \0j\ 4\0\83\0\0}\ 4\0|\ 3\0j
32050 +\0|\ 4\0\83\ 1\0\ 1d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0\0d
32051 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0d%\0g$\0}\ 5\0|\ 4\0j\v\0|\ 5\0|\ 2\0d&\0\83\ 3\0\ 1|\ 4\0j\f\0d'\0d(\0\83\ 2\0\ 1|\ 4\0j\f\0d)\0d*\0\83\ 2\0\ 1|\ 4\0j\f\0d+\0d,\0\83\ 2\0\ 1|\ 3\0j\r\0d-\0d+\0d&\0\83\ 3\0\ 1|\ 3\0j\ e\0\83\0\0\ 1|\ 3\0S(.\0\0\0Nt\12\0\0\0VectorFieldOnNodesg\0\0\0\0\0\80Q@g\0\0\0\0\0\0T@g\0\0\0\0\0\80V@g\0\0\0\0\0ÀQ@g\0\0\0\0\0@T@g\0\0\0\0\0ÀV@g\0\0\0\0\0\0R@g\0\0\0\0\0\80T@g\0\0\0\0\0\0W@g\0\0\0\0\0@R@g\0\0\0\0\0ÀT@g\0\0\0\0\0@W@g\0\0\0\0\0\80R@g\0\0\0\0\0\0U@g\0\0\0\0\0\80W@g\0\0\0\0\0ÀR@g\0\0\0\0\0@U@g\0\0\0\0\0ÀW@g\0\0\0\0\0@\8f@g\0\0\0\0\0\8dÃ@g\0\0\0\0\0\92Ã@g\0\0\0\0\0H\8f@g\0\0\0\0\80\8dÃ@g\0\0\0\0\80\92Ã@g\0\0\0\0\0P\8f@g\0\0\0\0\0\8eÃ@g\0\0\0\0\0\93Ã@g\0\0\0\0\0X\8f@g\0\0\0\0\80\8eÃ@g\0\0\0\0\80\93Ã@g\0\0\0\0\0`\8f@g\0\0\0\0\0\8fÃ@g\0\0\0\0\0\94Ã@g\0\0\0\0\0h\8f@g\0\0\0\0\80\8fÃ@g\0\0\0\0\80\94Ã@i\ 3\0\0\0i\0\0\0\0s\ e\0\0\0power [MW/m^3]i\ 1\0\0\0s\10\0\0\0density [g/cm^3]i\ 2\0\0\0s\ f\0\0\0temperature [K]gö(\\8fÂõ\0@(\ f\0\0\0R\ 4\0\0\0R.\0\0\0\0\0\0\0\0\0R\a\0\0\0t\b\0\0\0ON_NODESRÏ\0\0\0R\b\0\0\0\0\0\0R\ f\0\0\0\0\0\0R\10\0\0\0R\11\0\0\0\0\0\0\0\0\0(\ 6\0\0\0R\13\0\0\0R\16\0\0\0\0\0\0nbOfNodesR\9d\0\0\0\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\16\0\0\0buildVecFieldOnNodes_1\86\ 1\0\0\0\0\0\0\ 1\f\ 1\f\ 1\12\ 1\r\ 1\r\ 1\f\ 1\r\ 16\ 1<\ 1\13\ 1\10\ 1\10\ 1\10\ 1\13\ 1
32052 +\ 1c\ 1\0\0\0\16\0\0\0\r\0\0\0C\0\0\0\ 2\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 5\0d\ 6\0g\ 6\0}\ 5\0d\a\0|\ 2\0\14d\b\0\18d\b\0\0|\ 2\0\14\18d\a\0|\ 2\0\14d\b\0\18d
32053 +\0|\ 2\0\14d\b\0\18d\b\0d  \0|\ 2\0\14\18d\a\0|\ 2\0\14d\b\0\18d\b\0d   \0|\ 1\0\14\18d\a\0|\ 1\0\14d\b\0\18d\a\0|\ 1\0\14d\b\0\18d\b\0d        \0|\ 1\0\14\18d\a\0|\ 1\0\14d\b\0\18d\a\0|\ 1\0\14d\b\0\18g\f\0}\ 6\0d     \0|\ 4\0\14d  \0|\ 4\0\14d  \0|\ 4\0\14d  \0|\ 3\0\14d  \0|\ 3\0\14d  \0|\ 3\0\14g\ 6\0}\a\0|\ 5\0}\b\0|\ 6\0}   \0|\a\0}
32054 +\0t\0\0j\ 1\0\83\0\0}\v\0t\ 2\0j\ 3\0t\ 4\0t\ 5\0\83\ 2\0}\f\0|\f\0j\ 6\0d\v\0d\b\0d\f\0\83\ 3\0\ 1|\f\0j\a\0|\v\0\83\ 1\0\ 1|\f\0j\b\0\0|\b\0|   \0|
32055 +\0\83\ 4\0\ 1d\r\0d\ 6\0d\r\0d\r\0d\ 6\0d\r\0d\r\0d\ 5\0d\ 5\0d\r\0d\ 5\0d\ 5\0g\f\0}\r\0|\r\0}\ e\0\0d\ e\0d\ f\0!}       \0|      \0}\ f\0|
32056 +\0d\ e\0d\10\0!}
32057 +\0|
32058 +\0}\10\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0d\ 5\0d\ 6\0g\b\0}\11\0|\11\0}\12\0|      \0d\ e\0d   \0!}     \0|
32059 +\0d\ e\0d\a\0!}
32060 +\0|\f\0j\b\0t
32061 +\0|\12\0|  \0|
32062 +\0\83\ 4\0\ 1|\f\0j\b\0t\v\0|\ e\0|\ f\0|\10\0\83\ 4\0\ 1t\f\0j\ 3\0\83\0\0}\13\0|\13\0j\r\0d\11\0d\a\0\83\ 2\0\ 1|\13\0j\ e\0\83\0\0}\14\0x1\0t\ f\0d\16\0\83\ 1\0D]#\0}\15\0|\13\0j\10\0d\ e\0|\15\0t\11\0|\15\0d\12\0\17\83\ 1\0\83\ 3\0\ 1qE\ 2W|\f\0j\12\0|\13\0\83\ 1\0\ 1|\f\0j\13\0d\13\0\83\ 1\0\ 1|\13\0j\14\0d\ e\0d\14\0\83\ 2\0\ 1|\13\0j\14\0d\b\0d\15\0\83\ 2\0\ 1|\f\0j\15\0\83\0\0\ 1|\f\0S(\17\0\0\0Ng\86ÂÞ×Í\9aÜ?gÛ°\1dê\89q·?gB\14\19\97Ä\97¼?g2\82\18'Ì%¬?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 2\0\0\0i\ 1\0\0\0i\ 4\0\0\0g\8fÂõ(\\8f\0@g\1f\85ëQ¸\1e     @i\ 5\0\0\0g\0\0\0\0\0\0ð¿i\0\0\0\0i\ 6\0\0\0i\ 3\0\0\0i\13\0\0\0i\a\0\0\0t\18\0\0\0MyFirstFieldOnGaussPoints\ e\0\0\0power [MW/m^3]t\a\0\0\0densityi&\0\0\0(\16\0\0\0R\ 4\0\0\0R%\0\0\0\0\0\0R\a\0\0\0t\v\0\0\0ON_GAUSS_PTRÏ\0\0\0\0\0\0\0\0\0t\1a\0\0\0setGaussLocalizationOnTypeR\1c\0\0\0R\1e\0\0\0R\1d\0\0\0R\ f\0\0\0R\8d\0\0\0\0\0\0R\89\0\0\0t\ 5\0\0\0setIJt\ 5\0\0\0floatRÑ\0\0\0R\b\0\0\0R\11\0\0\0\0\0\0(\16\0\0\0R\13\0\0\0t\ 2\0\0\0_at\ 2\0\0\0_bt\ 3\0\0\0_p1t\ 3\0\0\0_p2t\a\0\0\0refCoo1t\ 6\0\0\0gsCoo1t\ 3\0\0\0wg1t\b\0\0\0_refCoo1t\a\0\0\0_gsCoo1t\ 4\0\0\0_wg1t\ 1\0\0\0mt\ 1\0\0\0ft\a\0\0\0refCoo2t\b\0\0\0_refCoo2t\a\0\0\0_gsCoo2t\ 4\0\0\0_wg2t\a\0\0\0refCoo3t\b\0\0\0_refCoo3RÖ\0\0\0t\ 3\0\0\0ptrR\96\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\16\0\0\0buildVecFieldOnGauss_1\98\ 1\0\0sP\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\18\ 17\ 1S\ 10\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\ 1\12\ 1\13\ 1\r\ 1\16\ 1*\ 1\ 6\ 1\r\ 1\ 6\ 1\r\ 1\ 6\ 1\1e\ 1\ 6\ 1\r\ 1\r\ 1\16\ 1\16\ 1\f\ 1\10\ 1\f\ 1\13\ 1\1d\ 1\ 4\ 1\r\ 1\r\ 1\10\ 1\10\ 1
32063 +\ 1c\ 1\0\0\0\17\0\0\0\r\0\0\0C\0\0\0sc\ 3\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 5\0d\ 6\0g\ 6\0}\ 5\0d\a\0|\ 2\0\14d\b\0\18d\b\0\0|\ 2\0\14\18d\a\0|\ 2\0\14d\b\0\18d
32064 +\0|\ 2\0\14d\b\0\18d\b\0d  \0|\ 2\0\14\18d\a\0|\ 2\0\14d\b\0\18d\b\0d   \0|\ 1\0\14\18d\a\0|\ 1\0\14d\b\0\18d\a\0|\ 1\0\14d\b\0\18d\b\0d        \0|\ 1\0\14\18d\a\0|\ 1\0\14d\b\0\18d\a\0|\ 1\0\14d\b\0\18g\f\0}\ 6\0d     \0|\ 4\0\14d  \0|\ 4\0\14d  \0|\ 4\0\14d  \0|\ 3\0\14d  \0|\ 3\0\14d  \0|\ 3\0\14g\ 6\0}\a\0|\ 5\0}\b\0|\ 6\0}   \0|\a\0}
32065 +\0t\0\0j\ 1\0\83\0\0}\v\0t\ 2\0j\ 3\0t\ 4\0t\ 5\0\83\ 2\0}\f\0|\f\0j\ 6\0d\v\0d\b\0d\f\0\83\ 3\0\ 1|\f\0j\a\0|\v\0\83\ 1\0\ 1t\b\0j\ 3\0\83\0\0}\r\0|\r\0j        \0d\r\0d\a\0d\ e\0g\ 3\0d\ e\0d\b\0\83\ 3\0\ 1|\f\0j
32066 +\0|\r\0|\b\0|       \0|
32067 +\0\83\ 4\0\ 1|
32068 +\0d\ f\0c\ 2\0\19d\a\09\ 3<|\f\0j
32069 +\0d\b\0d\f\0g\ 2\0|\b\0\0|
32070 +\0\83\ 4\0\ 1|
32071 +\0d\ f\0c\ 2\0\19d\a\09\ 3<|\f\0j
32072 +\0d     \0g\ 1\0|\b\0|        \0|
32073 +\0\83\ 4\0\ 1d\10\0d\ 6\0d\10\0d\10\0d\ 6\0d\10\0d\10\0d\ 5\0d\ 5\0d\10\0d\ 5\0d\ 5\0g\f\0}\ e\0|\ e\0}\ f\0\0d\r\0d\11\0!}       \0|      \0}\10\0|
32074 +\0d\r\0d\ e\0!}
32075 +\0|
32076 +\0}\11\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0d\ 5\0d\ 6\0g\b\0}\12\0|\12\0}\13\0|      \0d\r\0d   \0!}     \0|
32077 +\0d\r\0d\a\0!}
32078 +\0|\f\0j
32079 +\0d\11\0d\12\0d\13\0g\ 3\0|\13\0|      \0|
32080 +\0\83\ 4\0\ 1|
32081 +\0d\ f\0c\ 2\0\19d\a\09\ 3<|\f\0j
32082 +\0d\14\0g\ 1\0|\13\0|    \0|
32083 +\0\83\ 4\0\ 1|\f\0j\v\0t\f\0|\ f\0|\10\0|\11\0\83\ 4\0\ 1t\r\0j\ 3\0\83\0\0}\14\0|\14\0j\ e\0d\15\0d\a\0\83\ 2\0\ 1|\14\0j\ f\0\83\0\0}\15\0x1\0t\10\0d\19\0\83\ 1\0D]#\0}\16\0|\14\0j\11\0d\r\0|\16\0t\12\0|\16\0d\12\0\17\83\ 1\0\83\ 3\0\ 1\ 2W|\f\0j\13\0|\14\0\83\ 1\0\ 1|\f\0j\14\0d\16\0\83\ 1\0\ 1|\14\0j\15\0d\r\0d\17\0\83\ 2\0\ 1|\14\0j\15\0d\b\0d\18\0\83\ 2\0\ 1|\f\0j\16\0\83\0\0\ 1|\f\0S(\1a\0\0\0Ng\86ÂÞ×Í\9aÜ?gÛ°\1dê\89q·?gB\14\19\97Ä\97¼?g2\82\18'Ì%¬?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 2\0\0\0i\ 1\0\0\0i\ 4\0\0\0g\8fÂõ(\\8f\0@g\1f\85ëQ¸\1e     @i\ 5\0\0\0i\0\0\0\0i\ 3\0\0\0iÿÿÿÿg\0\0\0\0\0\0ð¿i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i  \0\0\0i5\0\0\0\0\0\0s\ e\0\0\0power [MW/m^3]Rß\0\0\0ij\0\0\0(\17\0\0\0R\ 4\0\0\0R'\0\0\0\0\0\0R\a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\8c\0\0\0R\10\0\0\0t\e\0\0\0setGaussLocalizationOnCellsRá\0\0\0R\1d\0\0\0R\ f\0\0\0R\8d\0\0\0\0\0\0R\89\0\0\0\0\0\0\0\0\0\0\0\0R\b\0\0\0R\11\0\0\0\0\0\0(\17\0\0\0R\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\ 2\0\0\0diRð\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\96\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\16\0\0\0buildVecFieldOnGauss_2Â\ 1\0\0s`\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\18\ 17\ 1S\ 10\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\ 1\12\ 1\13\ 1\r\ 1\f\0\1c\ 1\16\ 1\10\ 1\1c\ 1\10\ 1\19\ 1*\ 1\ 6\ 1\r\ 1\ 6\ 1\r\ 1\ 6\ 1\1e\ 1\ 6\ 1\r\ 1\r\ 1\1f\ 1\10\ 1\19\ 1\16\ 1\f\ 1\10\ 1\f\ 1\13\ 1\1d\ 1\ 4\ 1\r\ 1\r\ 1\10\ 1\10\ 1
32084 +\ 1c\ 1\0\0\0\17\0\0\0\r\0\0\0C\0\0\0sc\ 3\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 5\0d\ 6\0g\ 6\0}\ 5\0d\a\0|\ 2\0\14d\b\0\18d\b\0\0|\ 2\0\14\18d\a\0|\ 2\0\14d\b\0\18d
32085 +\0|\ 2\0\14d\b\0\18d\b\0d  \0|\ 2\0\14\18d\a\0|\ 2\0\14d\b\0\18d\b\0d   \0|\ 1\0\14\18d\a\0|\ 1\0\14d\b\0\18d\a\0|\ 1\0\14d\b\0\18d\b\0d        \0|\ 1\0\14\18d\a\0|\ 1\0\14d\b\0\18d\a\0|\ 1\0\14d\b\0\18g\f\0}\ 6\0d     \0|\ 4\0\14d  \0|\ 4\0\14d  \0|\ 4\0\14d  \0|\ 3\0\14d  \0|\ 3\0\14d  \0|\ 3\0\14g\ 6\0}\a\0|\ 5\0}\b\0|\ 6\0}   \0|\a\0}
32086 +\0t\0\0j\ 1\0\83\0\0}\v\0t\ 2\0j\ 3\0t\ 4\0t\ 5\0\83\ 2\0}\f\0|\f\0j\ 6\0d\v\0d\b\0d\f\0\83\ 3\0\ 1|\f\0j\a\0|\v\0\83\ 1\0\ 1t\b\0j\ 3\0\83\0\0}\r\0|\r\0j        \0d\r\0d\b\0d\a\0g\ 3\0d\ e\0d\b\0\83\ 3\0\ 1|\f\0j
32087 +\0|\r\0|\b\0|       \0|
32088 +\0\83\ 4\0\ 1|
32089 +\0d\ f\0c\ 2\0\19d\a\09\ 3<|\f\0j
32090 +\0d\ e\0d  \0g\ 2\0|\b\0|        \0|
32091 +\0\83\ 4\0\ 1|
32092 +\0d\ f\0c\ 2\0\19d\a\09\ 3<|\f\0j
32093 +\0d\f\0g\ 1\0|\b\0|    \0|
32094 +\0\83\ 4\0\ 1d\10\0d\ 6\0d\10\0d\10\0d\ 6\0d\10\0d\10\0d\ 5\0d\ 5\0d\10\0d\ 5\0d\ 5\0g\f\0}\ e\0|\ e\0}\ f\0\0d\r\0d\11\0!}       \0|      \0}\10\0|
32095 +\0d\r\0d\ e\0!}
32096 +\0|
32097 +\0}\11\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0d\ 5\0d\ 6\0g\b\0}\12\0|\12\0}\13\0|      \0d\r\0d   \0!}     \0|
32098 +\0d\r\0d\a\0!}
32099 +\0|\f\0j
32100 +\0d\11\0d\12\0d\13\0g\ 3\0|\13\0|      \0|
32101 +\0\83\ 4\0\ 1|
32102 +\0d\ f\0c\ 2\0\19d\a\09\ 3<|\f\0j
32103 +\0d\14\0g\ 1\0|\13\0|    \0|
32104 +\0\83\ 4\0\ 1|\f\0j\v\0t\f\0|\ f\0|\10\0|\11\0\83\ 4\0\ 1t\r\0j\ 3\0\83\0\0}\14\0|\14\0j\ e\0d\15\0d\a\0\83\ 2\0\ 1|\14\0j\ f\0\83\0\0}\15\0x1\0t\10\0d\19\0\83\ 1\0D]#\0}\16\0|\14\0j\11\0d\r\0|\16\0t\12\0|\16\0d\12\0\17\83\ 1\0\83\ 3\0\ 1\ 2W|\f\0j\13\0|\14\0\83\ 1\0\ 1|\f\0j\14\0d\16\0\83\ 1\0\ 1|\14\0j\15\0d\r\0d\17\0\83\ 2\0\ 1|\14\0j\15\0d\b\0d\18\0\83\ 2\0\ 1|\f\0j\16\0\83\0\0\ 1|\f\0S(\1a\0\0\0Ng\86ÂÞ×Í\9aÜ?gÛ°\1dê\89q·?gB\14\19\97Ä\97¼?g2\82\18'Ì%¬?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 2\0\0\0i\ 1\0\0\0i\ 4\0\0\0g\8fÂõ(\\8f\0@g\1f\85ëQ¸\1e     @i\ 5\0\0\0i\0\0\0\0i\ 3\0\0\0iÿÿÿÿg\0\0\0\0\0\0ð¿i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i  \0\0\0i5\0\0\0\0\0\0s\ e\0\0\0power [MW/m^3]Rß\0\0\0ij\0\0\0(\17\0\0\0R\ 4\0\0\0R'\0\0\0\0\0\0R\a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\8c\0\0\0R\10\0\0\0\0\0\0\0\0\0R\1d\0\0\0R\ f\0\0\0R\8d\0\0\0\0\0\0R\89\0\0\0\0\0\0\0\0\0\0\0\0R\b\0\0\0R\11\0\0\0\0\0\0(\17\0\0\0R\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\96\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\1e\0\0\0buildVecFieldOnGauss_2_Simplerô\ 1\0\0s`\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\18\ 17\ 1S\ 10\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\ 1\12\ 1\13\ 1\r\ 1\f\0\1c\ 1\16\ 1\10\ 1\1c\ 1\10\ 1\19\ 1*\ 1\ 6\ 1\r\ 1\ 6\ 1\r\ 1\ 6\ 1\1e\ 1\ 6\ 1\r\ 1\r\ 1\1f\ 1\10\ 1\19\ 1\16\ 1\f\ 1\10\ 1\f\ 1\13\ 1\1d\ 1\ 4\ 1\r\ 1\r\ 1\10\ 1\10\ 1
32105 +\ 1c\ 1\0\0\0\ 5\0\0\0\a\0\0\0C\0\0\0\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0t\ 2\0j\ 3\0t\ 4\0t\ 5\0\83\ 2\0}\ 2\0|\ 2\0j\ 6\0d\ 1\0d\ 2\0d\ 3\0\83\ 3\0\ 1|\ 2\0j\a\0|\ 1\0\83\ 1\0\ 1t\b\0j\ 3\0\83\0\0}\ 3\0|\ 3\0j  \0d\ 4\0d\ 5\0\83\ 2\0\ 1x1\0t
32106 +\0d\v\0\83\ 1\0D]#\0}\ 4\0|\ 3\0j\v\0d\ 6\0|\ 4\0t\f\0|\ 4\0d\a\0\17\83\ 1\0\83\ 3\0\ 1qg\0W|\ 2\0j\r\0|\ 3\0\83\ 1\0\ 1|\ 3\0j\ e\0d\ 6\0d\b\0\83\ 2\0\ 1|\ 3\0j\ e\0d\ 2\0\0\83\ 2\0\ 1|\ 2\0j\ f\0d
32107 +\0\83\ 1\0\ 1|\ 2\0j\10\0\83\0\0\ 1|\ 2\0S(\f\0\0\0Ng\1f\85ëQ¸\1e       @i\ 1\0\0\0i\ 5\0\0\0i\14\0\0\0i\ 2\0\0\0i\0\0\0\0i\b\0\0\0s        \0\0\0power [W]t\v\0\0\0temperaturet\10\0\0\0MyFieldOnGaussNEi(\0\0\0(\11\0\0\0R\ 4\0\0\0R%\0\0\0\0\0\0R\a\0\0\0t\v\0\0\0ON_GAUSS_NERÏ\0\0\0\0\0\0\0\0\0R\ f\0\0\0R\8d\0\0\0R\89\0\0\0\0\0\0\0\0\0\0\0\0R\11\0\0\0R\b\0\0\0\0\0\0(\ 5\0\0\0R\13\0\0\0\0\0\0\0\0\0\0\0\0R\96\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\18\0\0\0buildVecFieldOnGaussNE_1%\ 2\0\0s\1c\0\0\0\0\ 1\f\ 1\12\ 1\13\ 1\r\ 1\f\ 1\10\ 1\13\ 1!\ 1\r\ 1\10\ 1\10\ 1\r\ 1
32108 +\ 1c\ 1\0\0\0%\0\0\0\13\0\0\0C\0\0\0\ 6\0\0t\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0g\12\0d\ 4\0d\ 3\0\83\ 3\0}\ 1\0t\ 1\0d\ 5\0d\ 3\0\83\ 2\0}\ 2\0|\ 2\0j\ 2\0|\ 1\0\83\ 1\0\ 1|\ 2\0j\ 3\0\83\0\0\ 1|\ 2\0j\ 4\0t\ 5\0d\ 2\0d\ 6\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 5\0d\ 6\0d\a\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 6\0d\ 1\0d\b\0d\ 6\0d\ 2\0g\ 4\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 6\0d  \0d
32109 +\0d\ 6\0d\b\0g\ 4\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 6\0d
32110 +\0d\v\0d\a\0d\ 6\0g\ 4\0\83\ 2\0\ 1|\ 2\0j\a\0\83\0\0}\ 3\0t\b\0\83\0\0}\ 4\0|\ 4\0j     \0d\ 1\0|\ 2\0\83\ 2\0\ 1|\ 4\0\0d\f\0|\ 3\0\83\ 2\0\ 1t
32111 +\0d\ 1\0d\ 3\0d\ 6\0g\ 3\0\83\ 1\0}\ 5\0|\ 5\0j\v\0d\r\0\83\ 1\0\ 1t
32112 +\0d\ 2\0d\ 3\0d\b\0d\ 6\0g\ 4\0\83\ 1\0}\ 6\0|\ 6\0j\v\0d\ e\0\83\ 1\0\ 1t
32113 +\0d\ 1\0d\ 6\0g\ 2\0\83\ 1\0}\a\0|\a\0j\v\0d\ f\0\83\ 1\0\ 1|\ 4\0j\f\0d\ 1\0|\ 5\0|\ 6\0|\a\0g\ 3\0\83\ 2\0\ 1t
32114 +\0d\ 1\0d\ 2\0g\ 2\0\83\ 1\0}\b\0|\b\0j\v\0d\10\0\83\ 1\0\ 1t
32115 +\0d\ 3\0d\b\0d\ 6\0d\a\0\0d
32116 +\0g\ 6\0\83\ 1\0}       \0|      \0j\v\0d\11\0\83\ 1\0\ 1t
32117 +\0d\ 1\0d\b\0g\ 2\0\83\ 1\0}
32118 +\0|
32119 +\0j\v\0d\12\0\83\ 1\0\ 1|\ 4\0j\f\0d\f\0|\b\0|       \0|
32120 +\0g\ 3\0\83\ 2\0\ 1t\r\0\83\0\0}\v\0|\v\0j\ e\0|\ 4\0\83\ 1\0\ 1t\ f\0\83\0\0}\f\0d\13\0}\r\0d#\0d$\0g\ 2\0}\ e\0t\10\0\83\0\0}\ f\0\0t\11\0|\ e\0\83\ 1\0D]¬\0\\ 2\0}\10\0\\ 3\0}\11\0}\12\0}\13\0t\12\0t\13\0t\14\0\83\ 2\0}\14\0|\14\0j\15\0|\13\0|\11\0|\12\0\83\ 3\0\ 1|\14\0j\16\0|\ 2\0\83\ 1\0\ 1t\0\0|\ 2\0j\17\0\83\0\0d\ 2\0\83\ 2\0}\15\0|\15\0j\18\0\83\0\0\ 1|\15\0d\ 2\0|\10\0\177}\15\0|\15\0d\16\09}\15\0|\14\0j\19\0|\15\0\83\ 1\0\ 1|\14\0j\1a\0\83\0\0\ 1|\14\0j\v\0|\r\0\83\ 1\0\ 1|\ f\0j\e\0|\14\0\83\ 1\0\ 1qq\ 2W|\f\0j\1c\0|\ f\0\83\ 1\0\ 1d\17\0}\16\0d%\0d&\0d'\0g\ 3\0}\17\0t\10\0\83\0\0}\18\0xG\ 1t\11\0|\17\0\83\ 1\0D]9\ 1\\ 2\0}\10\0\\ 3\0}\11\0}\12\0}\13\0t\12\0t\13\0t\14\0\83\ 2\0}\19\0|\19\0j\15\0|\13\0|\11\0|\12\0\83\ 3\0\ 1|\19\0j\16\0|\ 2\0\83\ 1\0\ 1t\0\0|\ 2\0j\17\0\83\0\0d\ 2\0\83\ 2\0}\15\0|\15\0j\18\0\83\0\0\ 1|\15\0d\ 2\0|\10\0\177}\15\0|\19\0j\19\0|\15\0\83\ 1\0\ 1|\19\0j\1a\0\83\0\0\ 1|\19\0j\v\0|\16\0\83\ 1\0\ 1|\18\0j\e\0|\19\0\83\ 1\0\ 1t\12\0t\13\0t\14\0\83\ 2\0}\1a\0|\1a\0j\15\0|\13\0|\11\0|\12\0\83\ 3\0\ 1|\1a\0j\16\0|\ 3\0\83\ 1\0\ 1t\0\0|\ 3\0j\17\0\83\0\0d\ 2\0\83\ 2\0}\15\0|\15\0j\18\0\83\0\0\ 1|\15\0d(\0|\10\0\177}\15\0|\1a\0j\19\0|\15\0\83\ 1\0\ 1|\1a\0j\1a\0\83\0\0\ 1|\1a\0j\v\0|\16\0\83\ 1\0\ 1|\18\0|\11\0|\12\0f\ 2\0\19j\1d\0|\1a\0\83\ 1\0\ 1qY\ 3W|\f\0j\1c\0|\18\0\83\ 1\0\ 1d\e\0}\e\0d)\0d*\0d+\0d,\0g\ 4\0}\1c\0t\10\0\83\0\0}\1d\0\ 1t\11\0|\1c\0\83\ 1\0D]§\ 1\\ 2\0}\10\0\\ 3\0}\11\0}\12\0}\13\0t
32121 +\0d\ 1\0d\ 2\0d\b\0d\ 6\0g\ 4\0\83\ 1\0}\1e\0|\1e\0j\v\0d\1f\0\83\ 1\0\ 1|\ 2\0|\1e\0\19}\1f\0t\12\0t\13\0t\14\0\83\ 2\0\0\0j\15\0|\13\0|\11\0|\12\0\83\ 3\0\ 1\0j\16\0|\1f\0\83\ 1\0\ 1t\0\0|\1f\0j\17\0\83\0\0d\ 2\0\83\ 2\0}\15\0|\15\0j\18\0\83\0\0\ 1|\15\0\0|\10\0\17d\ 2\0\177}\15\0\0j\19\0|\15\0\83\ 1\0\ 1\0j\1a\0\83\0\0\ 1\0j\v\0|\e\0\83\ 1\0\ 1|\1d\0j\1e\0\0|\ 4\0d\ 1\0|\1e\0\83\ 4\0\ 1t
32122 +\0d\ 1\0d\b\0g\ 2\0\83\ 1\0}!\0|!\0j\v\0d!\0\83\ 1\0\ 1|\ 3\0|!\0\19}"\0t\12\0t\13\0t\14\0\83\ 2\0}#\0|#\0j\15\0|\13\0|\11\0|\12\0\83\ 3\0\ 1|#\0j\16\0|"\0\83\ 1\0\ 1t\0\0|"\0j\17\0\83\0\0d\ 2\0\83\ 2\0}\15\0|\15\0j\18\0\83\0\0\ 1|\15\0d-\0|\10\0\177}\15\0|#\0j\19\0|\15\0\83\ 1\0\ 1|#\0j\1a\0\83\0\0\ 1|#\0j\v\0|\e\0\83\ 1\0\ 1|\1d\0|\11\0|\12\0f\ 2\0\19j\1f\0|#\0|\ 4\0d\f\0|!\0\83\ 4\0\ 1\ 4W|\f\0j\1c\0|\1d\0\83\ 1\0\ 1\0\83\0\0}$\0|$\0j!\0|\v\0\83\ 1\0\ 1|$\0j"\0|\f\0\83\ 1\0\ 1|$\0S(.\0\0\0Ni\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i  \0\0\0R\16\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0iÿÿÿÿt    \0\0\0gr0_0_2_4t\v\0\0\0gr0_1_2_3_4t\a\0\0\0gr0_0_4t\ e\0\0\0grM1_SegOnTri3t\ f\0\0\0grM1_SegOnQuad4t\v\0\0\0grM1_bottomt
32123 +\0\0\0fNoProfileg{\14®Gáz\84?g{\14®Gáz\94?g\9a\99\99\99\99\99¹?t\13\0\0\0fNoProfileMultiLevsg\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99É?id\0\0\0t\11\0\0\0fProfileMultiLevsg\0\0\0\0\0\0$@g\0\0\0\0\0\04@g\0\0\0\0\0\0>@t\ 4\0\0\0pfl1iè\ 3\0\0t
32124 +\0\0\0pfl2BottomiÐ\a\0\0(\ 3\0\0\0i\0\0\0\0iÿÿÿÿg{\14®Gáz\84?(\ 3\0\0\0i\ 1\0\0\0iÿÿÿÿg{\14®Gáz\94?(\ 3\0\0\0i\0\0\0\0iÿÿÿÿg\0\0\0\0\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0iÿÿÿÿg\9a\99\99\99\99\99¹?(\ 3\0\0\0i\ 2\0\0\0iÿÿÿÿg\9a\99\99\99\99\99É?ie\0\0\0(\ 3\0\0\0i\0\0\0\0iÿÿÿÿg\0\0\0\0\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0iÿÿÿÿg\0\0\0\0\0\0$@(\ 3\0\0\0i\ 2\0\0\0iÿÿÿÿg\0\0\0\0\0\04@(\ 3\0\0\0i\ 3\0\0\0iÿÿÿÿg\0\0\0\0\0\0>@iÑ\a\0\0(#\0\0\0R\ f\0\0\0R\ 6\0\0\0R\12\0\0\0R
32125 +\0\0\0R\v\0\0\0R\1c\0\0\0R\1e\0\0\0t\v\0\0\0computeSkinR¶\0\0\0\0\0\0R\8c\0\0\0R\b\0\0\0\0\0\0t\r\0\0\0MEDFileMeshest\b\0\0\0pushMesht\r\0\0\0MEDFileFieldst\13\0\0\0MEDFileFieldMultiTSt  \0\0\0enumerateRÍ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\8f\0\0\0\0\0\0\0\0\0t\17\0\0\0appendFieldNoProfileSBTt  \0\0\0pushFieldt\14\0\0\0setFieldNoProfileSBTt\12\0\0\0appendFieldProfilet\ f\0\0\0setFieldProfilet\v\0\0\0MEDFileDatat       \0\0\0setMeshest   \0\0\0setFields(%\0\0\0R\13\0\0\0R\90\0\0\0R\9a\0\0\0R\98\0\0\0\0\0\0t\ 4\0\0\0grp0t\ 4\0\0\0grp1t\ 4\0\0\0grp2t\ 4\0\0\0grp3t\ 4\0\0\0grp4t\ 4\0\0\0grp5t\ 2\0\0\0mst\ 2\0\0\0fst\ 6\0\0\0f1Namet\v\0\0\0timeStepsF1R\9d\0\0\0R\96\0\0\0t\ 2\0\0\0itt\ 5\0\0\0ordert\ 3\0\0\0timt\ 6\0\0\0f11Tmpt\ 3\0\0\0arrt\ 6\0\0\0f2Namet\v\0\0\0timeStepsF2R\9c\0\0\0t\ 6\0\0\0f21Tmpt\ 6\0\0\0f22Tmpt\ 6\0\0\0f3Namet\v\0\0\0timeStepsF3t\ 2\0\0\0f3R        \ 1\0\0t\ 6\0\0\0m0Partt\ 6\0\0\0f31Tmpt\ 4\0\0\0pfl2t\ 6\0\0\0m1Partt\ 6\0\0\0f32Tmpt\ 4\0\0\0data(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt1\0\0\0buildACompleteMEDDataStructureWithFieldsOnCells_15\ 2\0\0\0\0\0\0\ 1H\ 1\ f\ 1\r\ 1
32126 +\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1\1c\ 1\f\ 1  \ 2\10\0\10\ 2\15\0\r\ 1\18\0\r\ 1\12\0\r\ 1\19\ 1\12\0\r\ 1\1e\0\r\ 1\12\0\r\ 1\19\ 1       \ 1\r\ 2     \ 2\ 6\ 1\f\ 1   \ 1"\ 1\ f\ 1\13\ 1\r\ 1\15\0
32127 +\0\ e\0
32128 +\ 1\r\ 1
32129 +\ 1\r\ 1\r\ 1\ 4\ 1\r\ 2\ 6\ 1\ f\ 1  \ 1"\ 1\ f\ 1\13\ 1\r\ 1\15\0
32130 +\0\ e\ 1\r\ 1
32131 +\ 1\r\ 1\r\ 1\ f\ 1\13\ 1\r\ 1\15\0
32132 +\0\ e\ 1\r\ 1
32133 +\ 1\r\ 1\17\ 1\ 4\ 1\r\ 2\ 6\ 1\12\ 1  \ 1"\ 1\18\0\r\ 1
32134 +\ 1\ f\ 1\13\ 1\r\ 1\15\0
32135 +\0\12\ 1\r\ 1
32136 +\ 1\r\ 1\16\ 1\12\0\r\ 1
32137 +\ 1\ f\ 1\13\ 1\r\ 1\15\0
32138 +\0\ e\ 1\r\ 1
32139 +\ 1\r\ 1 \ 1\ 4\ 1\r\ 2      \0\r\0\r\ 1c\ 1\0\0\0\f\0\0\0\b\0\0\0C\0\0\0s1\ 2\0\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 1\0g\b\0}\ 1\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0}\ 2\0d\a\0d\ 3\0d\ 3\0d\ 4\0d\ 4\0d\ 5\0d\ 6\0d\ 3\0g\b\0}\ 3\0t\0\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 2\0d\ 4\0\83\ 1\0\ 1|\ 4\0j\ 3\0d\ 3\0\83\ 1\0\ 1|\ 4\0j\ 4\0t\ 5\0d\ 6\0|\ 2\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0\ 1t\0\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j\ 2\0d\ 3\0\83\ 1\0\ 1|\ 5\0j\ 3\0d\ 6\0\83\ 1\0\ 1|\ 5\0j\ 4\0t\a\0d\ 4\0|\ 3\0d\a\0d\ 4\0!\83\ 3\0\ 1|\ 5\0j\ 4\0t\a\0d\ 4\0|\ 3\0d\ 4\0d\ 6\0!\83\ 3\0\ 1|\ 5\0j\ 4\0t\a\0d\ 4\0|\ 3\0d\ 6\0d\b\0!\83\ 3\0\ 1|\ 5\0j\ 4\0t\a\0d\ 4\0|\ 3\0d\b\0d     \0!\83\ 3\0\ 1|\ 5\0j\ 6\0\83\0\0\ 1t\b\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j        \0|\ 1\0d\ 6\0d\ 4\0\83\ 3\0\ 1|\ 4\0j
32140 +\0|\ 6\0\83\ 1\0\ 1|\ 5\0j
32141 +\0|\ 6\0\83\ 1\0\ 1t\v\0j\ 1\0\83\0\0}\a\0|\a\0j\f\0d\a\0|\ 4\0\83\ 2\0\ 1|\a\0j\f\0d
32142 +\0|\ 5\0\83\ 2\0\ 1|\a\0j\r\0d\v\0\83\ 1\0\ 1t\ e\0j\ 1\0d\a\0g\ 1\0\83\ 1\0}\b\0|\b\0j\r\0d\f\0\83\ 1\0\ 1t\ e\0j\ 1\0d\a\0d\ 3\0d\ 4\0d\ 5\0g\ 4\0\83\ 1\0}  \0|      \0j\r\0d\r\0\83\ 1\0\ 1|\a\0j\ f\0d
32143 +\0|\b\0|  \0g\ 2\0\83\ 2\0\ 1t\10\0j\ 1\0\83\0\0}
32144 +\0|
32145 +\0j\11\0d\a\0|\a\0\83\ 2\0\ 1t\12\0j\ 1\0\83\0\0}\v\0|\v\0j\13\0|
32146 +\0\83\ 1\0\ 1|\v\0S(\ e\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\0\0\0\0i\ 6\0\0\0i\b\0\0\0iÿÿÿÿt\ 5\0\0\0carreR¬\0\0\0\0\0\0(\14\0\0\0R\ 6\0\0\0R\a\0\0\0R  \0\0\0R
32147 +\0\0\0R\v\0\0\0R\1e\0\0\0R\ e\0\0\0R\f\0\0\0R\ f\0\0\0R\10\0\0\0R\12\0\0\0\0\0\0\0\0\0R\b\0\0\0R\8c\0\0\0\0\0\0R\f\ 1\0\0t\f\0\0\0setMeshAtPosR\16\ 1\0\0R\17\ 1\0\0(\f\0\0\0t\ 4\0\0\0selfR\14\0\0\0t\ 6\0\0\0conn2Dt\ 6\0\0\0conn1Dt\ 6\0\0\0mesh2Dt\ 6\0\0\0mesh1Dt
32148 +\0\0\0meshCoordsRÈ\0\0\0\0\0\0\0\0\0R\1f\ 1\0\0t\ 3\0\0\0mfd(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt,\0\0\0buildAMEDFileDataWithGroupOnOneFamilyForSauv\95\ 2\0\0sD\0\0\0\0\ 2\1e\ 2\12\ 2\1e\ 2\f\ 1\r\ 1\r\ 1\13\ 1
32149 +\ 2\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
32150 +\ 2\f\ 1\13\ 1\r\ 1\r\ 2\f\ 1\10\ 1\10\ 1\r\ 3\12\ 1\r\ 2\e\ 1\r\ 2\16\ 2\f\ 1\10\ 1\f\ 1\r\ 2(\15\0\0\0t\b\0\0\0__name__t
32151 +\0\0\0__module__R\18\0\0\0R\1a\0\0\0R#\0\0\0R%\0\0\0R'\0\0\0R,\0\0\0R.\0\0\0R<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Rÿ\0\0\0R5\ 1\0\0R?\ 1\0\0t\v\0\0\0classmethod(\0\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyR\ 4\0\0\0\19\0\0\0sJ\0\0\0\ 6\ 1   \12       \11       \16       \16       \1d       >       \16       \ e       U       7       \12       \12       *       2       1       \10       `       1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1\f\ 1N(\0\0\0\0(\ 6\0\0\0t       \0\0\0MEDLoadert\ 4\0\0\0mathR\ 1\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0(\0\0\0\0(\0\0\0\0(\0\0\0\0sy\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderDataForTest.pyt\b\0\0\0<module>\16\0\0\0s\ 4\0\0\0
32152 +\ 1\1c\ 2
32153 \ Pas de fin de ligne à la fin du fichier
32154 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderFinalize.i MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderFinalize.i
32155 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderFinalize.i      1970-01-01 01:00:00.000000000 +0100
32156 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderFinalize.i      2018-04-19 17:25:17.783798266 +0200
32157 @@ -0,0 +1,78 @@
32158 +// Copyright (C) 2017  CEA/DEN, EDF R&D
32159 +//
32160 +// This library is free software; you can redistribute it and/or
32161 +// modify it under the terms of the GNU Lesser General Public
32162 +// License as published by the Free Software Foundation; either
32163 +// version 2.1 of the License, or (at your option) any later version.
32164 +//
32165 +// This library is distributed in the hope that it will be useful,
32166 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
32167 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
32168 +// Lesser General Public License for more details.
32169 +//
32170 +// You should have received a copy of the GNU Lesser General Public
32171 +// License along with this library; if not, write to the Free Software
32172 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
32173 +//
32174 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
32175 +//
32176 +// Author : Anthony Geay (EDF R&D)
32177 +
32178 +%pythoncode %{
32179 +MEDFileMeshesIterator.__next__ = MEDFileMeshesIterator.next
32180 +MEDFileAnyTypeFieldMultiTSIterator.__next__ = MEDFileAnyTypeFieldMultiTSIterator.next
32181 +MEDFileFieldsIterator.__next__ = MEDFileFieldsIterator.next
32182 +%}
32183 +
32184 +%pythoncode %{
32185 +def MEDCouplingMEDFileUMeshReduce(self):
32186 +  return MEDCouplingStdReduceFunct,(MEDFileUMesh,((),(self.__getstate__()),))
32187 +MEDFileUMesh.__reduce__=MEDCouplingMEDFileUMeshReduce
32188 +del MEDCouplingMEDFileUMeshReduce
32189 +def MEDCouplingMEDFileCMeshReduce(self):
32190 +  return MEDCouplingStdReduceFunct,(MEDFileCMesh,((self.serialize(),),(self.__getstate__()),))
32191 +MEDFileCMesh.__reduce__=MEDCouplingMEDFileCMeshReduce
32192 +del MEDCouplingMEDFileCMeshReduce
32193 +def MEDCouplingMEDFileCurveLinearMeshReduce(self):
32194 +  return MEDCouplingStdReduceFunct,(MEDFileCurveLinearMesh,((self.serialize(),),(self.__getstate__()),))
32195 +MEDFileCurveLinearMesh.__reduce__=MEDCouplingMEDFileCurveLinearMeshReduce
32196 +del MEDCouplingMEDFileCurveLinearMeshReduce
32197 +def MEDCouplingMEDFileDataReduce(self):
32198 +  return MEDCouplingStdReduceFunct,(MEDFileData,((self.serialize(),),(self.__getstate__()),))
32199 +MEDFileData.__reduce__=MEDCouplingMEDFileDataReduce
32200 +del MEDCouplingMEDFileDataReduce
32201 +def MEDCouplingMEDFileMeshesReduce(self):
32202 +  return MEDCouplingStdReduceFunct,(MEDFileMeshes,((self.serialize(),),(self.__getstate__()),))
32203 +MEDFileMeshes.__reduce__=MEDCouplingMEDFileMeshesReduce
32204 +del MEDCouplingMEDFileMeshesReduce
32205 +def MEDCouplingMEDFileFieldsReduce(self):
32206 +  return MEDCouplingStdReduceFunct,(MEDFileFields,((self.serialize(),),(self.__getstate__()),))
32207 +MEDFileFields.__reduce__=MEDCouplingMEDFileFieldsReduce
32208 +del MEDCouplingMEDFileFieldsReduce
32209 +def MEDCouplingMEDFileField1TSReduce(self):
32210 +  return MEDCouplingStdReduceFunct,(MEDFileField1TS,((self.serialize(),),(self.__getstate__()),))
32211 +MEDFileField1TS.__reduce__=MEDCouplingMEDFileField1TSReduce
32212 +del MEDCouplingMEDFileField1TSReduce
32213 +def MEDCouplingMEDFileFieldMultiTSReduce(self):
32214 +  return MEDCouplingStdReduceFunct,(MEDFileFieldMultiTS,((self.serialize(),),(self.__getstate__()),))
32215 +MEDFileFieldMultiTS.__reduce__=MEDCouplingMEDFileFieldMultiTSReduce
32216 +del MEDCouplingMEDFileFieldMultiTSReduce
32217 +def MEDCouplingMEDFileIntField1TSReduce(self):
32218 +  return MEDCouplingStdReduceFunct,(MEDFileIntField1TS,((self.serialize(),),(self.__getstate__()),))
32219 +MEDFileIntField1TS.__reduce__=MEDCouplingMEDFileIntField1TSReduce
32220 +def MEDCouplingMEDFileIntFieldMultiTSReduce(self):
32221 +  return MEDCouplingStdReduceFunct,(MEDFileIntFieldMultiTS,((self.serialize(),),(self.__getstate__()),))
32222 +MEDFileIntFieldMultiTS.__reduce__=MEDCouplingMEDFileIntFieldMultiTSReduce
32223 +del MEDCouplingMEDFileIntFieldMultiTSReduce
32224 +def MEDCouplingMEDFileFloatField1TSReduce(self):
32225 +  return MEDCouplingStdReduceFunct,(MEDFileFloatField1TS,((self.serialize(),),(self.__getstate__()),))
32226 +MEDFileFloatField1TS.__reduce__=MEDCouplingMEDFileFloatField1TSReduce
32227 +def MEDCouplingMEDFileFloatFieldMultiTSReduce(self):
32228 +  return MEDCouplingStdReduceFunct,(MEDFileFloatFieldMultiTS,((self.serialize(),),(self.__getstate__()),))
32229 +MEDFileFloatFieldMultiTS.__reduce__=MEDCouplingMEDFileFloatFieldMultiTSReduce
32230 +del MEDCouplingMEDFileFloatFieldMultiTSReduce
32231 +def MEDCouplingMEDFileParametersReduce(self):
32232 +  return MEDCouplingStdReduceFunct,(MEDFileParameters,((self.serialize(),),(self.__getstate__()),))
32233 +MEDFileParameters.__reduce__=MEDCouplingMEDFileParametersReduce
32234 +del MEDCouplingMEDFileParametersReduce
32235 +%}
32236 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoader.i MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoader.i
32237 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoader.i      2018-04-19 17:04:36.765223281 +0200
32238 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoader.i      2018-04-19 17:25:17.760797811 +0200
32239 @@ -18,12 +18,11 @@
32240  //
32241  // Author : Anthony Geay (CEA/DEN)
32242  
32243 +%module MEDLoader
32244 +
32245  %include "MEDLoaderCommon.i"
32246  
32247  %pythoncode %{
32248 -def MEDCouplingDataArrayDoublenew(cls,*args):
32249 -    import _MEDLoader
32250 -    return _MEDLoader.DataArrayDouble____new___(cls,args)
32251  def MEDCouplingDataArrayDoubleIadd(self,*args):
32252      import _MEDLoader
32253      return _MEDLoader.DataArrayDouble____iadd___(self, self, *args)
32254 @@ -39,9 +38,6 @@
32255  def MEDCouplingDataArrayDoubleIpow(self,*args):
32256      import _MEDLoader
32257      return _MEDLoader.DataArrayDouble____ipow___(self, self, *args)
32258 -def MEDCouplingFieldDoublenew(cls,*args):
32259 -    import _MEDLoader
32260 -    return _MEDLoader.MEDCouplingFieldDouble____new___(cls,args)
32261  def MEDCouplingFieldDoubleIadd(self,*args):
32262      import _MEDLoader
32263      return _MEDLoader.MEDCouplingFieldDouble____iadd___(self, self, *args)
32264 @@ -57,18 +53,6 @@
32265  def MEDCouplingFieldDoubleIpow(self,*args):
32266      import _MEDLoader
32267      return _MEDLoader.MEDCouplingFieldDouble____ipow___(self, self, *args)
32268 -def MEDCouplingFieldIntnew(cls,*args):
32269 -    import _MEDLoader
32270 -    return _MEDLoader.MEDCouplingFieldInt____new___(cls,args)
32271 -def MEDCouplingFieldFloatnew(cls,*args):
32272 -    import _MEDLoader
32273 -    return _MEDLoader.MEDCouplingFieldFloat____new___(cls,args)
32274 -def MEDCouplingDataArrayBytenew(cls,*args):
32275 -    import _MEDLoader
32276 -    return _MEDLoader.DataArrayByte____new___(cls,args)
32277 -def MEDCouplingDataArrayFloatnew(cls,*args):
32278 -    import _MEDLoader
32279 -    return _MEDLoader.DataArrayFloat____new___(cls,args)
32280  def MEDCouplingDataArrayFloatIadd(self,*args):
32281      import _MEDLoader
32282      return _MEDLoader.DataArrayFloat____iadd___(self, self, *args)
32283 @@ -81,9 +65,6 @@
32284  def MEDCouplingDataArrayFloatIdiv(self,*args):
32285      import _MEDLoader
32286      return _MEDLoader.DataArrayFloat____idiv___(self, self, *args)
32287 -def MEDCouplingDataArrayIntnew(cls,*args):
32288 -    import _MEDLoader
32289 -    return _MEDLoader.DataArrayInt____new___(cls,args)
32290  def MEDCouplingDataArrayIntIadd(self,*args):
32291      import _MEDLoader
32292      return _MEDLoader.DataArrayInt____iadd___(self, self, *args)
32293 @@ -129,110 +110,14 @@
32294  def MEDCouplingDataArrayIntTupleImod(self,*args):
32295      import _MEDLoader
32296      return _MEDLoader.DataArrayIntTuple____imod___(self, self, *args)
32297 -def ParaMEDMEMDenseMatrixIadd(self,*args):
32298 +def MEDCouplingDenseMatrixIadd(self,*args):
32299      import _MEDLoader
32300      return _MEDLoader.DenseMatrix____iadd___(self, self, *args)
32301 -def ParaMEDMEMDenseMatrixIsub(self,*args):
32302 +def MEDCouplingDenseMatrixIsub(self,*args):
32303      import _MEDLoader
32304      return _MEDLoader.DenseMatrix____isub___(self, self, *args)
32305 -def MEDCouplingUMeshnew(cls,*args):
32306 -    import _MEDLoader
32307 -    return _MEDLoader.MEDCouplingUMesh____new___(cls,args)
32308 -def MEDCoupling1DGTUMeshnew(cls,*args):
32309 -    import _MEDLoader
32310 -    return _MEDLoader.MEDCoupling1DGTUMesh____new___(cls,args)
32311 -def MEDCoupling1SGTUMeshnew(cls,*args):
32312 -    import _MEDLoader
32313 -    return _MEDLoader.MEDCoupling1SGTUMesh____new___(cls,args)
32314 -def MEDCouplingCurveLinearMeshnew(cls,*args):
32315 -    import _MEDLoader
32316 -    return _MEDLoader.MEDCouplingCurveLinearMesh____new___(cls,args)
32317 -def MEDCouplingCMeshnew(cls,*args):
32318 -    import _MEDLoader
32319 -    return _MEDLoader.MEDCouplingCMesh____new___(cls,args)
32320 -def MEDCouplingIMeshnew(cls,*args):
32321 -    import _MEDLoader
32322 -    return _MEDLoader.MEDCouplingIMesh____new___(cls,args)
32323 -def MEDCouplingExtrudedMeshnew(cls,*args):
32324 -    import _MEDLoader
32325 -    return _MEDLoader.MEDCouplingMappedExtrudedMesh____new___(cls,args)
32326 -%}
32327 -
32328 -%pythoncode %{
32329 -def MEDCouplingMEDFileUMeshnew(cls,*args):
32330 -    import _MEDLoader
32331 -    return _MEDLoader.MEDFileUMesh____new___(cls,args)
32332 -def MEDCouplingMEDFileCMeshnew(cls,*args):
32333 -    import _MEDLoader
32334 -    return _MEDLoader.MEDFileCMesh____new___(cls,args)
32335 -def MEDCouplingMEDFileCurveLinearMeshnew(cls,*args):
32336 -    import _MEDLoader
32337 -    return _MEDLoader.MEDFileCurveLinearMesh____new___(cls,args)
32338 -def MEDCouplingMEDFileMeshesnew(cls,*args):
32339 -    import _MEDLoader
32340 -    return _MEDLoader.MEDFileMeshes____new___(cls,args)
32341 -def MEDCouplingMEDFileDatanew(cls,*args):
32342 -    import _MEDLoader
32343 -    return _MEDLoader.MEDFileData____new___(cls,args)
32344 -def MEDCouplingMEDFileFieldsnew(cls,*args):
32345 -    import _MEDLoader
32346 -    return _MEDLoader.MEDFileFields____new___(cls,args)
32347 -def MEDCouplingMEDFileField1TSnew(cls,*args):
32348 -    import _MEDLoader
32349 -    return _MEDLoader.MEDFileField1TS____new___(cls,args)
32350 -def MEDCouplingMEDFileFieldMultiTSnew(cls,*args):
32351 -    import _MEDLoader
32352 -    return _MEDLoader.MEDFileFieldMultiTS____new___(cls,args)
32353 -def MEDCouplingMEDFileIntField1TSnew(cls,*args):
32354 -    import _MEDLoader
32355 -    return _MEDLoader.MEDFileIntField1TS____new___(cls,args)
32356 -def MEDCouplingMEDFileIntFieldMultiTSnew(cls,*args):
32357 -    import _MEDLoader
32358 -    return _MEDLoader.MEDFileIntFieldMultiTS____new___(cls,args)
32359 -def MEDCouplingMEDFileFloatField1TSnew(cls,*args):
32360 -    import _MEDLoader
32361 -    return _MEDLoader.MEDFileFloatField1TS____new___(cls,args)
32362 -def MEDCouplingMEDFileFloatFieldMultiTSnew(cls,*args):
32363 -    import _MEDLoader
32364 -    return _MEDLoader.MEDFileFloatFieldMultiTS____new___(cls,args)
32365 -def MEDCouplingMEDFileParametersnew(cls,*args):
32366 -    import _MEDLoader
32367 -    return _MEDLoader.MEDFileParameters____new___(cls,args)
32368  %}
32369  
32370  %include "MEDCouplingFinalize.i"
32371  
32372 -%pythoncode %{
32373 -MEDFileMeshesIterator.__next__ = MEDFileMeshesIterator.next
32374 -MEDFileAnyTypeFieldMultiTSIterator.__next__ = MEDFileAnyTypeFieldMultiTSIterator.next
32375 -MEDFileFieldsIterator.__next__ = MEDFileFieldsIterator.next
32376 -%}
32377 -
32378 -%pythoncode %{
32379 -MEDFileUMesh.__new__=classmethod(MEDCouplingMEDFileUMeshnew)
32380 -del MEDCouplingMEDFileUMeshnew
32381 -MEDFileCMesh.__new__=classmethod(MEDCouplingMEDFileCMeshnew)
32382 -del MEDCouplingMEDFileCMeshnew
32383 -MEDFileCurveLinearMesh.__new__=classmethod(MEDCouplingMEDFileCurveLinearMeshnew)
32384 -del MEDCouplingMEDFileCurveLinearMeshnew
32385 -MEDFileData.__new__=classmethod(MEDCouplingMEDFileDatanew)
32386 -del MEDCouplingMEDFileDatanew
32387 -MEDFileMeshes.__new__=classmethod(MEDCouplingMEDFileMeshesnew)
32388 -del MEDCouplingMEDFileMeshesnew
32389 -MEDFileFields.__new__=classmethod(MEDCouplingMEDFileFieldsnew)
32390 -del MEDCouplingMEDFileFieldsnew
32391 -MEDFileField1TS.__new__=classmethod(MEDCouplingMEDFileField1TSnew)
32392 -del MEDCouplingMEDFileField1TSnew
32393 -MEDFileFieldMultiTS.__new__=classmethod(MEDCouplingMEDFileFieldMultiTSnew)
32394 -del MEDCouplingMEDFileFieldMultiTSnew
32395 -MEDFileIntField1TS.__new__=classmethod(MEDCouplingMEDFileIntField1TSnew)
32396 -del MEDCouplingMEDFileIntField1TSnew
32397 -MEDFileIntFieldMultiTS.__new__=classmethod(MEDCouplingMEDFileIntFieldMultiTSnew)
32398 -del MEDCouplingMEDFileIntFieldMultiTSnew
32399 -MEDFileFloatField1TS.__new__=classmethod(MEDCouplingMEDFileFloatField1TSnew)
32400 -del MEDCouplingMEDFileFloatField1TSnew
32401 -MEDFileFloatFieldMultiTS.__new__=classmethod(MEDCouplingMEDFileFloatFieldMultiTSnew)
32402 -del MEDCouplingMEDFileFloatFieldMultiTSnew
32403 -MEDFileParameters.__new__=classmethod(MEDCouplingMEDFileParametersnew)
32404 -del MEDCouplingMEDFileParametersnew
32405 -%}
32406 +%include "MEDLoaderFinalize.i"
32407 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderSplitter.py MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderSplitter.py
32408 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderSplitter.py     2018-04-19 17:04:36.766223301 +0200
32409 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderSplitter.py     2018-04-19 17:25:17.772798048 +0200
32410 @@ -26,7 +26,7 @@
32411      @classmethod
32412      def New(cls,mfd,idsLst):
32413          """ mfd is a MEDFileData instance containing only one mesh. idsLst is a list of DataArrayInt containing each the ids per processor """
32414 -        return MEDLoaderSplitter(fileName)
32415 +        return MEDLoaderSplitter(mfd,idsLst)
32416          pass
32417  
32418      def __init__(self,mfd,idsLst):
32419 @@ -96,18 +96,26 @@
32420  
32421      def __splitMesh(self,mfm,idsLst):
32422          ret0 = [MEDFileMeshes() for i in range(len(idsLst))]
32423 -        m=mfm.getMeshAtLevel(0)
32424 +        m=mfm[0]
32425 +        addlevs=list(mfm.getNonEmptyLevels())[1:]
32426 +        dAddlevs={k:mfm[k] for k in addlevs}
32427          for ret,ids in zip(ret0,idsLst):
32428              mlPart=mfm.createNewEmpty()
32429 -            mPart=m[ids] ; trad=mPart.zipCoordsTraducer()
32430 -            trad=trad.invertArrayO2N2N2O(mPart.getNumberOfNodes())
32431 -            mlPart.setMeshAtLevel(0,mPart)
32432 +            mPart=m[ids] ; trado2n=mPart.zipCoordsTraducer()
32433 +            trad=trado2n.invertArrayO2N2N2O(mPart.getNumberOfNodes())
32434 +            mlPart[0]=mPart
32435              if 0 in mfm.getFamArrNonEmptyLevelsExt():
32436                  mlPart.setFamilyFieldArr(0,mfm.getFamilyFieldAtLevel(0)[ids])
32437                  pass
32438              if 1 in mfm.getFamArrNonEmptyLevelsExt():
32439                  mlPart.setFamilyFieldArr(1,mfm.getFamilyFieldAtLevel(1)[trad])
32440                  pass
32441 +            for k,v in dAddlevs.iteritems():
32442 +                part=v.getCellIdsFullyIncludedInNodeIds(trad)
32443 +                mSubPart=v[part] ; mSubPart.renumberNodesInConn(trado2n) ; mSubPart.setCoords(mPart.getCoords())
32444 +                mlPart[k]=mSubPart
32445 +                mlPart.setFamilyFieldArr(k,mfm.getFamilyFieldAtLevel(k)[part])
32446 +                pass
32447              mlPart.copyFamGrpMapsFrom(mfm)
32448              ret.pushMesh(mlPart)
32449              pass
32450 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest1.pyc MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest1.pyc
32451 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest1.pyc       1970-01-01 01:00:00.000000000 +0100
32452 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest1.pyc       2018-04-19 17:25:17.768797969 +0200
32453 @@ -0,0 +1,192 @@
32454 +\ 3ó\r
32455 +\18;ÕZc\0\0\0\0\0\0\0\0\ 3\0\0\0@\0\0\0sz\0\0\0d\0\0d\ 1\0l\0\0Z\0\0d\0\0d\ 1\0l\ 1\0Z\ 1\0d\0\0d\ 2\0l\ 2\0m\ 3\0Z\ 3\0m\ 4\0Z\ 4\0m\ 5\0Z\ 5\0\ 1d\0\0d\ 3\0l\ 6\0m\ 6\0Z\ 6\0\ 1d\ 4\0e\ 1\0j\a\0f\ 1\0d\ 5\0\84\0\0\83\0\0YZ\b\0e       \0d\ 6\0k\ 2\0rv\0e\ 1\0j
32456 +\0\83\0\0\ 1n\0\0d\ 1\0S(\a\0\0\0iÿÿÿÿN(\ 3\0\0\0t\ 2\0\0\0pit\ 1\0\0\0et\ 4\0\0\0sqrt(\ 1\0\0\0t\14\0\0\0MEDLoaderDataForTestt\ e\0\0\0MEDLoaderTest1c\0\0\0\0\0\0\0\0\ 1\0\0\0B\0\0\0\0\0\0e\0\0Z\ 1\0d\0\0\84\0\0Z\ 2\0d\ 1\0\84\0\0Z\ 3\0d\ 2\0\84\0\0Z\ 4\0d\ 3\0\84\0\0Z\ 5\0d\ 4\0\84\0\0Z\ 6\0d\ 5\0\84\0\0Z\a\0d\ 6\0\84\0\0Z\b\0d\a\0\84\0\0Z  \0d\b\0\84\0\0Z
32457 +\0d     \0\84\0\0Z\v\0d
32458 +\0\84\0\0Z\f\0d\v\0\84\0\0Z\r\0d\f\0\84\0\0Z\ e\0d\r\0\84\0\0Z\ f\0d\ e\0\84\0\0Z\10\0d\ f\0\84\0\0Z\11\0d\10\0\84\0\0Z\12\0d\11\0\84\0\0Z\13\0d\12\0\84\0\0Z\14\0d\13\0\84\0\0Z\15\0d\14\0\84\0\0Z\16\0d\15\0\84\0\0Z\17\0d\16\0\84\0\0Z\18\0d\17\0\84\0\0Z\19\0d\18\0\84\0\0Z\1a\0d\19\0\84\0\0Z\e\0RS(\1a\0\0\0c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0sa\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0j\ 4\0d\ 1\0|\ 1\0t\ 5\0\83\ 3\0\ 1t\ 3\0j\ 6\0d\ 1\0|\ 1\0j\a\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\b\0|\ 1\0j      \0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile1.medi\0\0\0\0g\11ê-\81\99\97q=(
32459 +\0\0\0R\ 3\0\0\0t\r\0\0\0build1DMesh_1t\15\0\0\0checkConsistencyLightt  \0\0\0MEDLoadert
32460 +\0\0\0WriteUMesht\ 4\0\0\0Truet\11\0\0\0ReadUMeshFromFilet\a\0\0\0getNamet
32461 +\0\0\0assertTruet\a\0\0\0isEqual(\ 3\0\0\0t\ 4\0\0\0selft\ 4\0\0\0mesht\a\0\0\0mesh_rw(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\f\0\0\0testMesh1DRW\1c\0\0\0s\f\0\0\0\0\ 1\f\ 1
32462 +\ 1\13\ 1\e\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0sa\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0j\ 4\0d\ 1\0|\ 1\0t\ 5\0\83\ 3\0\ 1t\ 3\0j\ 6\0d\ 1\0|\ 1\0j\a\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\b\0|\ 1\0j    \0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile2.medi\0\0\0\0g\11ê-\81\99\97q=(
32463 +\0\0\0R\ 3\0\0\0t\12\0\0\0build2DCurveMesh_1R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R        \0\0\0R
32464 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\11\0\0\0testMesh2DCurveRW$\0\0\0s\f\0\0\0\0\ 1\f\ 1
32465 +\ 1\13\ 1\e\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0sa\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0j\ 4\0d\ 1\0|\ 1\0t\ 5\0\83\ 3\0\ 1t\ 3\0j\ 6\0d\ 1\0|\ 1\0j\a\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\b\0|\ 1\0j    \0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile3.medi\0\0\0\0g\11ê-\81\99\97q=(
32466 +\0\0\0R\ 3\0\0\0t\r\0\0\0build2DMesh_1R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R     \0\0\0R
32467 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\f\0\0\0testMesh2DRW,\0\0\0s\f\0\0\0\0\ 1\f\ 1
32468 +\ 1\13\ 1\e\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0sa\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0j\ 4\0d\ 1\0|\ 1\0t\ 5\0\83\ 3\0\ 1t\ 3\0j\ 6\0d\ 1\0|\ 1\0j\a\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\b\0|\ 1\0j    \0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile4.medi\0\0\0\0g\11ê-\81\99\97q=(
32469 +\0\0\0R\ 3\0\0\0t\11\0\0\0build3DSurfMesh_1R\ 6\0\0\0R\a\0\0\0R\b\0\0\0\0\0\0R
32470 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\10\0\0\0testMesh3DSurfRW4\0\0\0s\f\0\0\0\0\ 1\f\ 1
32471 +\ 1\13\ 1\e\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0sa\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0j\ 4\0d\ 1\0|\ 1\0t\ 5\0\83\ 3\0\ 1t\ 3\0j\ 6\0d\ 1\0|\ 1\0j\a\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\b\0|\ 1\0j    \0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile5.medi\0\0\0\0g\11ê-\81\99\97q=(
32472 +\0\0\0R\ 3\0\0\0t\r\0\0\0build3DMesh_1R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R     \0\0\0R
32473 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\f\0\0\0testMesh3DRW<\0\0\0s\f\0\0\0\0\ 1\f\ 1
32474 +\ 1\13\ 1\e\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0       \0\0\0C\0\0\0s\11\ 1\0\0t\0\0j\ 1\0\83\0\0}\ 1\0t\ 2\0j\ 3\0d\ 1\0|\ 1\0t\ 4\0\83\ 3\0\ 1t\ 2\0j\ 5\0d\ 1\0|\ 1\0j\ 6\0\83\0\0j\a\0\83\0\0d\ 2\0|\ 1\0j\a\0\83\0\0d\ 2\0d\ 3\0\83\ 6\0}\ 2\0|\0\0j\b\0|\ 1\0j   \0|\ 2\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1t\0\0j
32475 +\0\83\0\0}\ 1\0t\ 2\0j\ 3\0d\ 5\0|\ 1\0t\ 4\0\83\ 3\0\ 1t\ 2\0j\v\0d\ 5\0|\ 1\0j\ 6\0\83\0\0j\a\0\83\0\0d\ 2\0|\ 1\0j\a\0\83\0\0d\ 6\0d\a\0\83\ 6\0}\ 2\0|\0\0j\b\0|\ 1\0j   \0|\ 2\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1|\0\0j\f\0t\r\0t\ 2\0j\ 5\0d\ 5\0|\ 1\0j\ 6\0\83\0\0j\a\0\83\0\0d\ 2\0|\ 1\0j\a\0\83\0\0d\ 6\0d\a\0\83\b\0\ 1d\0\0S(\b\0\0\0Ns\v\0\0\0Pyfile6.medi\0\0\0\0i\ 1\0\0\0g\11ê-\81\99\97q=s\v\0\0\0Pyfile7.medi\ 2\0\0\0i\ 3\0\0\0(\ e\0\0\0R\ 3\0\0\0t\16\0\0\0buildVecFieldOnCells_1R\a\0\0\0t
32476 +\0\0\0WriteFieldR \0\0\0t\r\0\0\0ReadFieldCellt\a\0\0\0getMeshR\v\0\0\0R\f\0\0\0R\r\0\0\0t\16\0\0\0buildVecFieldOnNodes_1t\r\0\0\0ReadFieldNodet\f\0\0\0assertRaisest \0\0\0Exception(\ 3\0\0\0R\ e\0\0\0t\ 2\0\0\0f1t\ 2\0\0\0f2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\f\0\0\0testFieldRW1D\0\0\0s\14\0\0\0\0\ 1\f\ 1\13\ 10\ 1\1c\ 2\f\ 1\13\ 10\ 1\1c\ 17\ 1c\ 1\0\0\0       \0\0\0     \0\0\0C\0\0\0s#\ 4\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0t\0\0j\ 1\0\83\0\0}\ 4\0t\ 2\0j\ 3\0|\ 1\0|\ 4\0t\ 4\0\83\ 3\0\ 1|\ 4\0j\ 5\0d\ 4\0d\ 5\0d\ 6\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\a\0|\ 2\0\83\ 3\0\ 1t\ 2\0j\b\0|\ 1\0|\ 4\0\83\ 2\0\ 1|\ 4\0j\ 5\0d\b\0d     \0d
32477 +\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\a\0|\ 3\0\83\ 3\0\ 1t\ 2\0j\b\0|\ 1\0|\ 4\0\83\ 2\0\ 1t\ 2\0j     \0|\ 1\0|\ 4\0j
32478 +\0\83\0\0j\v\0\83\0\0d\a\0|\ 4\0j\v\0\83\0\0d\ 5\0d\ 6\0\83\ 6\0}\ 5\0|\ 4\0j\ 5\0d\ 4\0d\ 5\0d\ 6\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\a\0|\ 2\0\83\ 3\0\ 1|\0\0j\f\0|\ 4\0j\r\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\ 2\0\0|\ 1\0|\ 4\0j
32479 +\0\83\0\0j\v\0\83\0\0d\a\0|\ 4\0j\v\0\83\0\0d\a\0d\f\0\83\ 6\0}\ 5\0t\0\0j\ 1\0\83\0\0}\ 6\0|\0\0j\f\0|\ 6\0j\r\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\ 2\0\0|\ 1\0|\ 4\0j
32480 +\0\83\0\0j\v\0\83\0\0d\a\0|\ 4\0j\v\0\83\0\0d        \0d
32481 +\0\83\ 6\0}\ 5\0|\ 4\0j\ 5\0d\b\0d      \0d
32482 +\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\a\0|\ 3\0\83\ 3\0\ 1|\0\0j\f\0|\ 4\0j\r\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0t\ f\0t\ 2\0j        \0|\ 1\0|\ 4\0j
32483 +\0\83\0\0j\v\0\83\0\0d\a\0|\ 4\0j\v\0\83\0\0d\r\0d
32484 +\0\83\b\0\ 1t\0\0j\10\0\83\0\0}\ 4\0d\ e\0}\a\0t\ 2\0j\ 3\0|\a\0|\ 4\0t\ 4\0\83\ 3\0\ 1|\ 4\0j\ 5\0d\ f\0d\10\0d\11\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\11\0\83\0\0}\b\0|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\12\0|\ 2\0\83\ 3\0\ 1t\ 2\0j\b\0|\a\0|\ 4\0\83\ 2\0\ 1|\ 4\0j\ 5\0d\13\0d\14\0d\15\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\12\0|\ 3\0\83\ 3\0\ 1t\ 2\0j\b\0|\a\0|\ 4\0\83\ 2\0\ 1t\ 2\0j\12\0|\a\0|\ 4\0j
32485 +\0\83\0\0j\v\0\83\0\0d\a\0|\ 4\0j\v\0\83\0\0d\10\0d\11\0\83\ 6\0}\ 5\0|\ 4\0j\ 5\0d\ f\0d\10\0d\11\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\12\0|\ 2\0\83\ 3\0\ 1|\0\0j\f\0|\ 4\0j\r\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\ 2\0j\12\0|\a\0|\ 4\0j
32486 +\0\83\0\0j\v\0\83\0\0d\a\0|\ 4\0j\v\0\83\0\0d\16\0d\12\0\83\ 6\0}\ 5\0t\0\0j\10\0\83\0\0}\ 6\0|\0\0j\f\0|\ 6\0j\r\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\ 2\0j\12\0|\a\0|\ 4\0j
32487 +\0\83\0\0j\v\0\83\0\0d\a\0|\ 4\0j\v\0\83\0\0d\14\0d\15\0\83\ 6\0}\ 5\0|\ 4\0j\ 5\0d\13\0d\14\0d\15\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0j\a\0d\a\0d\12\0|\ 3\0\83\ 3\0\ 1|\0\0j\f\0|\ 4\0j\r\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\17\0\0\0Ns\v\0\0\0Pyfile8.medgºOLæÖ\1cÈ@g\0p\1c!6+pÂg\0\0\0\0\0\0$@i\b\0\0\0i  \0\0\0i\0\0\0\0gHáz\14®G$@i\12\0\0\0i\13\0\0\0g\11ê-\81\99\97q=i\ 1\0\0\0i\1c\0\0\0s\v\0\0\0Pyfile9.medg\0\0\0\0\0\80[@il\0\0\0im\0\0\0i\ 3\0\0\0g\0\0\0\0\0@j@iÐ\0\0\0\0\0\0i\ 2\0\0\0(\13\0\0\0R\ 3\0\0\0R\1a\0\0\0R\a\0\0\0R\e\0\0\0R        \0\0\0t\a\0\0\0setTimet\b\0\0\0getArrayt\ 5\0\0\0setIJt!\0\0\0WriteFieldUsingAlreadyWrittenMeshR\1c\0\0\0R\1d\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0\0\0\0R!\0\0\0R\1e\0\0\0t
32488 +\0\0\0getPointerR\1f\0\0\0(    \0\0\0R\ e\0\0\0t\b\0\0\0fileNamet\ 4\0\0\0VAL1t\ 4\0\0\0VAL2R"\0\0\0R#\0\0\0t\ 2\0\0\0f3t       \0\0\0fileName2t\ 3\0\0\0tmp(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\f\0\0\0testFieldRW2Q\0\0\0sZ\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\ 1\13\ 1\13\ 1\19\ 1\10\ 1\13\ 1\19\ 1\10\ 20\ 1\13\ 1\19\ 1\1c\ 10\ 1\f\ 1\1c\ 10\ 1\13\ 1\19\ 1\1c\ 27\ 2\f\ 1\ 6\ 1\13\ 1\13\ 1\12\ 1\19\ 1\10\ 1\13\ 1\19\ 1\10\ 10\ 1\13\ 1\19\ 1\1c\ 10\ 1\f\ 1\1c\ 10\ 1\13\ 1\19\ 1\1c\ 1c\ 1\0\0\0\v\0\0\0\a\0\0\0C\0\0\0s\93\ 6\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0}\ 5\0t\0\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j\ 2\0\83\0\0j\ 3\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 6\0j\ 4\0d\ 6\0d\a\0d\b\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\ 6\0\83\0\0}\a\0|\ 6\0j\ 5\0\83\0\0j\a\0d    \0d      \0|\ 2\0\83\ 3\0\ 1t\b\0j    \0|\ 1\0|\ 6\0t
32489 +\0\83\ 3\0\ 1|\ 6\0j\ 4\0d
32490 +\0d\v\0d\f\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d       \0d      \0|\ 3\0\83\ 3\0\ 1t\b\0j\v\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 2\0\83\0\0j\ 3\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\ 4\0d\r\0d\ e\0d\ f\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d     \0d      \0d\10\0|\ 2\0\14\83\ 3\0\ 1t\b\0j\v\0|\ 1\0|\ 6\0\83\ 2\0\ 1t\b\0j\f\0|\ 1\0|\ 4\0\83\ 2\0}\b\0|\ 6\0j\ 4\0d\11\0d\12\0d\13\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d  \0d      \0d\10\0|\ 3\0\14\83\ 3\0\ 1t\b\0j\v\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 4\0d\14\0d\15\0d\16\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d    \0d      \0d\17\0|\ 3\0\14\83\ 3\0\ 1t\b\0j\v\0|\ 1\0|\ 6\0\83\ 2\0\ 1t\0\0j\r\0\83\0\0}\ 6\0|\ 6\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 6\0j\ 2\0\83\0\0j\ 3\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\ 4\0d\18\0d\a\0d\b\0\83\ 3\0\ 1t\b\0j\v\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 4\0d\18\0d\19\0d\1a\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\ 6\0\83\0\0}\a\0|\ 6\0j\ 5\0\83\0\0j\a\0d   \0d\10\0|\ 2\0\83\ 3\0\ 1t\b\0j\v\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 4\0d\e\0d\1c\0d\1d\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d     \0d\10\0|\ 3\0\83\ 3\0\ 1t\b\0j\v\0|\ 1\0|\ 6\0\83\ 2\0\ 1t\b\0j\ e\0|\ 1\0|\ 5\0|\ 4\0\83\ 3\0}  \0|\0\0j\ f\0d\1e\0t\10\0|  \0\83\ 1\0\83\ 2\0\ 1|\0\0j\ f\0d\a\0|      \0d      \0\19d     \0\19\83\ 2\0\ 1|\0\0j\ f\0d\b\0|        \0d      \0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\ f\0d\v\0|    \0d\1f\0\19d  \0\19\83\ 2\0\ 1|\0\0j\ f\0d\f\0|        \0d\1f\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\ f\0d\ e\0\0\0\19d  \0\19\83\ 2\0\ 1|\0\0j\ f\0d\ f\0|        \0\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\ f\0d\12\0\0d\10\0\19d  \0\19\83\ 2\0\ 1|\0\0j\ f\0d\13\0|        \0d\10\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\ f\0d\15\0\0d\17\0\19d  \0\19\83\ 2\0\ 1|\0\0j\ f\0d\16\0|        \0d\17\0\19d\1f\0\19\83\ 2\0\ 1t\b\0j\11\0|\ 1\0|\ 5\0|\ 4\0\83\ 3\0}
32491 +\0|\0\0j\ f\0d\10\0t\10\0|
32492 +\0\83\ 1\0\83\ 2\0\ 1|\0\0j\ f\0d\a\0|
32493 +\0d     \0\19d     \0\19\83\ 2\0\ 1|\0\0j\ f\0d\b\0|
32494 +\0d     \0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\ f\0d\19\0|
32495 +\0d\1f\0\19\0\19\83\ 2\0\ 1|\0\0j\ f\0d\1a\0|
32496 +\0d\1f\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\ f\0d\1c\0|
32497 +\0\0\19\0\19\83\ 2\0\ 1|\0\0j\ f\0d\1d\0|
32498 +\0\0\19d\1f\0\19\83\ 2\0\ 1t\b\0j\12\0|\ 1\0|\ 5\0d     \0|\ 4\0d\a\0d\b\0\83\ 6\0}\ 6\0|\0\0j\13\0|\ 2\0|\ 6\0j\ 5\0\83\0\0j\14\0d  \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\b\0j\12\0|\ 1\0|\ 5\0d        \0|\ 4\0d\v\0d\f\0\83\ 6\0}\ 6\0|\0\0j\13\0|\ 3\0|\ 6\0j\ 5\0\83\0\0j\14\0d  \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\b\0j\12\0|\ 1\0|\ 5\0d        \0|\ 4\0d\ e\0d\ f\0\83\ 6\0}\ 6\0|\0\0j\13\0d\10\0|\ 2\0\14|\ 6\0j\ 5\0\83\0\0j\14\0d      \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\b\0j\12\0|\ 1\0|\ 5\0d        \0|\ 4\0d\12\0d\13\0\83\ 6\0}\ 6\0|\0\0j\13\0d\10\0|\ 3\0\14|\ 6\0j\ 5\0\83\0\0j\14\0d      \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\b\0j\12\0|\ 1\0|\ 5\0d        \0|\ 4\0d\15\0d\16\0\83\ 6\0}\ 6\0|\0\0j\13\0d\17\0|\ 3\0\14|\ 6\0j\ 5\0\83\0\0j\14\0d      \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\b\0j\15\0|\ 1\0|\ 5\0d        \0|\ 4\0d\a\0d\b\0\83\ 6\0}\ 6\0|\0\0j\13\0d"\0|\ 6\0j\ 5\0\83\0\0j\14\0d  \0d\10\0\83\ 2\0d!\0\83\ 3\0\ 1t\b\0j\15\0|\ 1\0|\ 5\0d     \0|\ 4\0d\19\0d\1a\0\83\ 6\0}\ 6\0|\0\0j\13\0|\ 2\0|\ 6\0j\ 5\0\83\0\0j\14\0d  \0d\10\0\83\ 2\0d!\0\83\ 3\0\ 1t\b\0j\15\0|\ 1\0|\ 5\0d     \0|\ 4\0d\1c\0d\1d\0\83\ 6\0}\ 6\0|\0\0j\13\0|\ 3\0|\ 6\0j\ 5\0\83\0\0j\14\0d  \0d\10\0\83\ 2\0d!\0\83\ 3\0\ 1d\0\0S(#\0\0\0Ns\f\0\0\0Pyfile11.medgºOLæÖ\1cÈ@g\0p\1c!6+pÂt\ 6\0\0\0AFieldt\ 6\0\0\0AMesh1g\0\0\0\0\0\0$@i\b\0\0\0i        \0\0\0i\0\0\0\0gHáz\14®G$@i\12\0\0\0i\13\0\0\0g\9a\99\99\99\99\19%@i\1c\0\0\0i\1d\0\0\0i\ 3\0\0\0gR¸\1e\85ëQ%@i&\0\0\0i'\0\0\0g
32499 +×£p=\8a%@i0\0\0\0i1\0\0\0i\ 4\0\0\0g\0\0\0\0\0\80[@il\0\0\0im\0\0\0g\0\0\0\0\0@j@iÐ\0\0\0\0\0\0i\ 5\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\r\0\0\0g\0\0\0\0\0ÀQ@(\16\0\0\0R\ 3\0\0\0R\1a\0\0\0R\1d\0\0\0t\a\0\0\0setNameR%\0\0\0R&\0\0\0R)\0\0\0R'\0\0\0R\a\0\0\0R\e\0\0\0R       \0\0\0R(\0\0\0t\13\0\0\0GetMeshNamesOnFieldR\1e\0\0\0t\16\0\0\0GetCellFieldIterationst\v\0\0\0assertEqualt\ 3\0\0\0lent\16\0\0\0GetNodeFieldIterationsR\1c\0\0\0t\11\0\0\0assertAlmostEqualt\ 5\0\0\0getIJR\1f\0\0\0(\v\0\0\0R\ e\0\0\0R*\0\0\0R+\0\0\0R,\0\0\0t\ 5\0\0\0name1t\ 5\0\0\0name3R"\0\0\0R/\0\0\0t\ 3\0\0\0vect\ 3\0\0\0it1t\ 3\0\0\0it3(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\f\0\0\0testFieldRW3\86\0\0\0s\96\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\ 1\13\ 1\r\ 1\13\ 1\12\ 1\19\ 1\13\ 1\13\ 1\19\ 1\10\ 1\13\ 1\13\ 1\1d\ 1\10\ 1\12\ 1\13\ 1\1d\ 1\10\ 1\13\ 1\1d\ 1\10\ 2\f\ 1\r\ 1\13\ 1\13\ 1\10\ 1\13\ 1\12\ 1\19\ 1\10\ 1\13\ 1\19\ 1\10\ 2\15\ 1\16\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 1\15\ 1\16\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 3\1e\ 1%\ 1\1e\ 1%\ 1\1e\ 1)\ 1\1e\ 1)\ 1\1e\ 1)\ 2\1e\ 1%\ 1\1e\ 1%\ 1\1e\ 1%\ 1c\ 1\0\0\0\17\0\0\0\12\0\0\0C\0\0\0s3\ 4\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 5\0}\ 3\0|\ 2\0j\ 2\0|\ 3\0t\ 3\0\83\ 2\0}\ 4\0|\ 4\0j\ 4\0d\a\0\83\ 1\0\ 1d\b\0d\ 4\0d\ 5\0d    \0g\ 4\0}\ 5\0|\ 2\0j\ 2\0|\ 5\0t\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 4\0d
32500 +\0\83\ 1\0\ 1t\ 5\0j\ 6\0j\a\0\83\0\0}\a\0|\a\0j\ 4\0d\v\0\83\ 1\0\ 1|\a\0j\b\0d\b\0\83\ 1\0\ 1|\a\0j     \0d\ 2\0\83\ 1\0\ 1d\f\0d\r\0d\ 2\0d\b\0g\ 4\0}\b\0|\a\0j
32501 +\0t\ 5\0j\v\0d\ 4\0|\b\0d\f\0d\ 4\0!\83\ 3\0\ 1|\a\0j\f\0\83\0\0\ 1|\a\0j\r\0|\ 2\0j\ e\0\83\0\0\83\ 1\0\ 1|\ 2\0|\ 4\0|\ 6\0|\a\0g\ 4\0}  \0d\ e\0}
32502 +\0t\ 5\0j\ f\0|\ 1\0|
32503 +\0|     \0t\ 3\0\83\ 4\0\ 1t\ 5\0j\10\0|\ 1\0|
32504 +\0\83\ 2\0}\v\0|\ 2\0j\ 4\0|
32505 +\0\83\ 1\0\ 1d\f\0d\ 2\0d\ 3\0d\b\0d\ 4\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\r\0d\15\0d\ 5\0d       \0d\ 6\0d\16\0d\17\0g\12\0}\f\0|\v\0j\ 2\0|\f\0t\ 3\0\83\ 2\0}\r\0|\r\0j\ 4\0|
32506 +\0\83\ 1\0\ 1|\0\0j\11\0|\r\0j\12\0|\ 2\0d\18\0\83\ 2\0\83\ 1\0\ 1t\ 5\0j\13\0|\ 1\0|
32507 +\0\83\ 2\0}\ e\0|\0\0j\14\0d\ 4\0t\15\0|\ e\0\83\ 1\0\83\ 2\0\ 1|\ e\0j\16\0d\a\0\83\ 1\0\ 1|\ e\0j\16\0d
32508 +\0\83\ 1\0\ 1|\ e\0j\16\0d\v\0\83\ 1\0\ 1|\ e\0j\16\0d\19\0\83\ 1\0\ 1d\1e\0}\ f\0t\ 5\0j\17\0|\ 1\0|
32509 +\0d\f\0|\ f\0\83\ 4\0}\10\0|\0\0j\11\0|\10\0j\12\0|\ 4\0d\18\0\83\ 2\0\83\ 1\0\ 1d
32510 +\0g\ 1\0}\ f\0t\ 5\0j\17\0|\ 1\0|
32511 +\0d\f\0|\ f\0\83\ 4\0}\11\0|\0\0j\11\0|\11\0j\12\0|\ 6\0d\18\0\83\ 2\0\83\ 1\0\ 1d\v\0g\ 1\0}\ f\0t\ 5\0j\17\0|\ 1\0|
32512 +\0d\f\0|\ f\0\83\ 4\0}\12\0|\0\0j\11\0|\12\0j\12\0|\a\0d\18\0\83\ 2\0\83\ 1\0\ 1d\19\0}\ f\0t\ 5\0j\17\0|\ 1\0|
32513 +\0d\f\0|\ f\0\83\ 4\0}\13\0|\ 2\0j\ 4\0d\19\0\83\ 1\0\ 1|\0\0j\11\0|\13\0j\12\0|\ 2\0d\18\0\83\ 2\0\83\ 1\0\ 1d\1a\0d\e\0g\ 2\0}\ f\0t\ 5\0j\18\0|\ 1\0|
32514 +\0d\f\0|\ f\0\83\ 4\0}\10\0|\10\0j\ 4\0d\a\0\83\ 1\0\ 1|\0\0j\11\0|\10\0j\12\0|\ 4\0d\18\0\83\ 2\0\83\ 1\0\ 1t\ 5\0j\19\0|\ 1\0d\ e\0d\19\0\83\ 3\0}\14\0|\0\0j\14\0d\ 4\0t\15\0|\14\0\83\ 1\0\83\ 2\0\ 1d\1a\0d\1c\0d\1d\0d\e\0g\ 4\0}\15\0|\0\0j\1a\0|\15\0d\f\0\19|\14\0\83\ 2\0\ 1|\0\0j\1a\0|\15\0d\ 2\0\19|\14\0\83\ 2\0\ 1|\0\0j\1a\0|\15\0d\ 3\0\19|\14\0\83\ 2\0\ 1|\0\0j\1a\0|\15\0d\b\0\19|\14\0\83\ 2\0\ 1t\ 5\0j\e\0|\ 1\0d\ e\0d\1a\0\83\ 3\0}\16\0|\0\0j\14\0d\ 3\0t\15\0|\16\0\83\ 1\0\83\ 2\0\ 1|\0\0j\14\0|\16\0d\f\0\19d\19\0\83\ 2\0\ 1|\0\0j\14\0|\16\0d\ 2\0\19d\a\0\83\ 2\0\ 1d\0\0S(\1f\0\0\0Ns\f\0\0\0Pyfile10.medi\ 1\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\r\0\0\0i\ f\0\0\0t\ 5\0\0\0mesh2i\ 3\0\0\0i\ e\0\0\0t\ 5\0\0\0mesh3t\ 5\0\0\0mesh4i\0\0\0\0i\v\0\0\0t\ 6\0\0\03DTotoi\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i      \0\0\0i
32515 +\0\0\0i\f\0\0\0i\10\0\0\0i\11\0\0\0g\11ê-\81\99\97q=t\b\0\0\03DMesh_1s      \0\0\0Family_-3s   \0\0\0Family_-5s   \0\0\0Family_-4s   \0\0\0Family_-2(\ 1\0\0\0s\ 5\0\0\0mesh2(\1c\0\0\0R\ 3\0\0\0R\18\0\0\0t\11\0\0\0buildPartOfMySelfR       \0\0\0R3\0\0\0R\a\0\0\0t\10\0\0\0MEDCouplingUMesht\ 3\0\0\0Newt\10\0\0\0setMeshDimensiont\r\0\0\0allocateCellst\ e\0\0\0insertNextCellt\v\0\0\0NORM_TETRA4t\14\0\0\0finishInsertingCellst  \0\0\0setCoordst   \0\0\0getCoordst\15\0\0\0WriteUMeshesPartitionR
32516 +\0\0\0R\f\0\0\0R\r\0\0\0t\12\0\0\0GetMeshGroupsNamesR6\0\0\0R7\0\0\0t\ 5\0\0\0indext\13\0\0\0ReadUMeshFromGroupst\15\0\0\0ReadUMeshFromFamiliest\e\0\0\0GetMeshFamiliesNamesOnGroupt\b\0\0\0assertInt\1a\0\0\0GetMeshGroupsNamesOnFamily(\17\0\0\0R\ e\0\0\0R*\0\0\0t\ 5\0\0\0mesh1t\ 5\0\0\0part1RA\0\0\0t\ 5\0\0\0part2RB\0\0\0RC\0\0\0t\ 4\0\0\0connt\ 6\0\0\0meshest\ 5\0\0\0mnanet\ 5\0\0\0mesh5t\ 5\0\0\0part3t\ 5\0\0\0mesh6t\ 4\0\0\0grpsR=\0\0\0t\a\0\0\0mesh2_2t\a\0\0\0mesh3_2t\a\0\0\0mesh4_2t\a\0\0\0mesh1_2t\ 3\0\0\0rett\ 3\0\0\0reft\ 4\0\0\0ret1(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\10\0\0\0testMultiMeshRW1Ð\0\0\0sx\0\0\0\0\ 1\ 6\ 1\f\ 1\15\ 1\12\ 1\r\ 1\12\ 1\12\ 1\r\ 1\ f\ 1\r\ 1\r\ 1\r\ 1\12\ 1\1d\ 1
32517 +\ 1\13\ 1\12\ 1\ 6\ 1\16\ 2\12\ 1\r\ 1<\ 1\12\ 1\r\ 1\19\ 1\12\ 1\16\ 1\r\ 1\r\ 1\r\ 1\r\ 2\ 6\ 1\18\ 1\19\ 1        \ 1\18\ 1\19\ 1   \ 1\18\ 1\19\ 1\ 6\ 1\18\ 1\r\ 1\19\ 2\f\ 1\18\ 1\r\ 1\19\ 2\15\ 1\16\ 1\12\ 1\14\ 1\14\ 1\14\ 1\14\ 2\15\ 1\16\ 1\14\ 1\14\ 1c\ 1\0\0\0\ e\0\0\0
32518 +\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0\83\ 1\0\\ 3\0}\ 3\0}\ 4\0}\ 5\0t\ 3\0j\ 4\0|\ 1\0|\ 2\0t\ 5\0\83\ 3\0\ 1d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 5\0}\ 6\0|\ 2\0j\ 6\0|\ 6\0t\ 5\0\83\ 2\0}\a\0|\a\0j\a\0|\ 2\0j\b\0\83\0\0\83\ 1\0\ 1|\a\0j        \0\83\0\0}\b\0|\0\0j
32519 +\0d\b\0|\b\0\83\ 2\0\ 1t\ 3\0j\v\0j\f\0t\ 3\0j\r\0t\ 3\0j\ e\0\83\ 2\0}   \0|      \0j\a\0d   \0\83\ 1\0\ 1|  \0j\ f\0|\a\0\83\ 1\0\ 1t\ 3\0j\10\0j\f\0\83\0\0}
32520 +\0|
32521 +\0j\11\0|\b\0d\ 4\0\83\ 2\0\ 1|        \0j\12\0|
32522 +\0\83\ 1\0\ 1d
32523 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0g
32524 +\0}\v\0|
32525 +\0j\13\0|\v\0|\b\0d\ 4\0\83\ 3\0\ 1|     \0j\14\0d\14\0d\ 4\0d\15\0\83\ 3\0\ 1|      \0j\15\0\83\0\0\ 1t\ 3\0j\16\0|\ 1\0|      \0t\17\0\83\ 3\0\ 1t\ 3\0j\18\0|\ 1\0|      \0j\19\0\83\0\0j\b\0\83\0\0d\16\0|       \0j\b\0\83\0\0d\ 4\0d\15\0\83\ 6\0}\f\0t\ 3\0j\1a\0|\ 1\0|   \0j\19\0\83\0\0j\b\0\83\0\0|  \0j\b\0\83\0\0\83\ 3\0}\r\0|\0\0j
32526 +\0|\r\0t\ 3\0j\r\0g\ 1\0\83\ 2\0\ 1|\f\0j\15\0\83\0\0\ 1|\0\0j\e\0|     \0j\1c\0|\f\0d\ 2\0d\ 2\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\17\0\0\0Ns\f\0\0\0Pyfile12.medg\11ê-\81\99\97q=i\ 1\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\r\0\0\0i\ f\0\0\0i\ 5\0\0\0t\12\0\0\0VectorFieldOnCellsg\0\0\0\0\0ÀQ@g\0\0\0\0\0`e@g\0\0\0\0\0\0$@g\0\0\0\0\0\80[@g\0\0\0\0\0\04@g\0\0\0\0\0\0^@g\0\0\0\0\0\0>@g\0\0\0\0\0@`@g\0\0\0\0\0\0D@g\0\0\0\0\0\80a@g\1f\85ëQ¸\1e  @i\a\0\0\0i\0\0\0\0(\1d\0\0\0R\ 3\0\0\0R\18\0\0\0t
32527 +\0\0\0mergeNodesR\a\0\0\0R\b\0\0\0R       \0\0\0RF\0\0\0R3\0\0\0R\v\0\0\0t\10\0\0\0getNumberOfCellsR6\0\0\0t\16\0\0\0MEDCouplingFieldDoubleRH\0\0\0t\b\0\0\0ON_CELLSt\b\0\0\0ONE_TIMEt\a\0\0\0setMesht\ f\0\0\0DataArrayDoublet\ 5\0\0\0alloct\b\0\0\0setArrayt  \0\0\0setValuesR%\0\0\0R\ 6\0\0\0R\e\0\0\0t\ 5\0\0\0FalseR\1c\0\0\0R\1d\0\0\0t\ f\0\0\0GetTypesOfFieldR\f\0\0\0R\r\0\0\0(\ e\0\0\0R\ e\0\0\0R*\0\0\0RX\0\0\0t\ 2\0\0\0dat\ 1\0\0\0bt\f\0\0\0newNbOfNodesRY\0\0\0RA\0\0\0t      \0\0\0nbOfCellsR"\0\0\0t\ 5\0\0\0arrayt\ 4\0\0\0arr1R#\0\0\0t\ 2\0\0\0tt(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\12\0\0\0testFieldProfilRW1\13\ 1\0\0s4\0\0\0\0\ 1\ 6\ 1\f\ 1\18\ 1\13\ 1\15\ 1\12\ 1\13\ 2\f\ 1\10\ 1\e\ 1\r\ 1\r\ 1\ f\ 1\10\ 1\r\ 1$\ 1\13\ 1\13\ 1
32528 +\ 2\13\ 20\ 1'\ 1\16\ 1
32529 +\ 1\1c\ 2c\ 1\0\0\0\ 4\0\0\0\b\0\0\0C\0\0\0s{\0\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0|\ 1\0|\ 2\0t\ 4\0\83\ 3\0\ 1t\ 2\0j\ 5\0t\ 2\0j\ 6\0|\ 1\0|\ 2\0j\a\0\83\0\0j\b\0\83\0\0d\ 2\0|\ 2\0j\b\0\83\0\0d\ 3\0d\ 4\0\83\a\0}\ 3\0|\0\0j       \0|\ 2\0j
32530 +\0|\ 3\0d\ 5\0d\ 5\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\ 6\0\0\0Ns\f\0\0\0Pyfile13.medi\0\0\0\0i\ 1\0\0\0i\ 5\0\0\0g\11ê-\81\99\97q=(\v\0\0\0R\ 3\0\0\0t\16\0\0\0buildVecFieldOnGauss_1R\a\0\0\0R\e\0\0\0R   \0\0\0t    \0\0\0ReadFieldt\v\0\0\0ON_GAUSS_PTR\1d\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 4\0\0\0R\ e\0\0\0R*\0\0\0R"\0\0\0R#\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\11\0\0\0testFieldGaussRW13\ 1\0\0s\f\0\0\0\0\ 1\ 6\ 1\f\ 1\13\ 16\ 1\1c\ 1c\ 1\0\0\0\ 4\0\0\0\b\0\0\0C\0\0\0\0\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0|\ 1\0|\ 2\0t\ 4\0\83\ 3\0\ 1|\0\0j\ 5\0t\ 2\0j\ 6\0g\ 1\0t\ 2\0j\a\0|\ 1\0d\ 2\0d\ 3\0\83\ 3\0\83\ 2\0\ 1t\ 2\0j\b\0t\ 2\0j\ 6\0|\ 1\0|\ 2\0j       \0\83\0\0j
32531 +\0\83\0\0d\ 4\0|\ 2\0j
32532 +\0\83\0\0d\ 5\0d\ 6\0\83\a\0}\ 3\0|\0\0j\v\0|\ 2\0j\f\0|\ 3\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\b\0\0\0Ns\f\0\0\0Pyfile14.medt\b\0\0\02DMesh_2t\10\0\0\0MyFieldOnGaussNEi\0\0\0\0i\ 1\0\0\0i\ 5\0\0\0g\11ê-\81\99\97q=(\r\0\0\0R\ 3\0\0\0t\18\0\0\0buildVecFieldOnGaussNE_1R\a\0\0\0R\e\0\0\0R    \0\0\0R6\0\0\0t\v\0\0\0ON_GAUSS_NERv\0\0\0R\80\0\0\0R\1d\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 4\0\0\0R\ e\0\0\0R*\0\0\0R"\0\0\0R#\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\13\0\0\0testFieldGaussNERW1;\ 1\0\0s\ e\0\0\0\0\ 1\ 6\ 1\f\ 1\13\ 1%\ 16\ 1\1c\ 1c\ 1\0\0\0\ 5\0\0\0\ 6\0\0\0C\0\0\0s\8f\0\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0}\ 3\0|\ 2\0j\ 2\0|\ 3\0t\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0\ 1t\ 5\0j\ 6\0|\ 1\0|\ 2\0t\a\0\83\ 3\0\ 1t\ 5\0j\b\0|\ 1\0|\ 2\0j      \0\83\0\0d\ 5\0\83\ 3\0}\ 4\0|\0\0j
32533 +\0|\ 2\0j\v\0|\ 4\0d\b\0\83\ 2\0\83\ 1\0\ 1d\0\0S(      \0\0\0Ns\f\0\0\0Pyfile15.medi\ 2\0\0\0i\ 5\0\0\0i\ 1\0\0\0i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0g\11ê-\81\99\97q=(\f\0\0\0R\ 3\0\0\0R\16\0\0\0t\r\0\0\0renumberCellsRu\0\0\0R\ 6\0\0\0R\a\0\0\0R\b\0\0\0R      \0\0\0R
32534 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 5\0\0\0R\ e\0\0\0R*\0\0\0R\ f\0\0\0t        \0\0\0renumber1R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\17\0\0\0testMesh3DSurfShuffleRWD\ 1\0\0s\12\0\0\0\0\ 1\ 6\ 1\f\ 1\18\ 1\10\ 1
32535 +\ 1\13\ 1\e\ 1\19\ 1c\ 1\0\0\0\f\0\0\0\14\0\0\0C\0\0\0sY\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\0\0j\ 2\0d\ 2\0|\ 2\0j\ 3\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d\ 3\0|\ 2\0j\ 4\0\83\0\0\83\ 2\0\ 1d\ 4\0d\ 5\0d\ 6\0g\ 3\0}\ 3\0|\ 2\0j\ 5\0|\ 3\0\83\ 1\0\ 1d\ 4\0d\a\0d\b\0d      \0d
32536 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\ 5\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\ 6\0d\17\0g\14\0}\ 4\0|\ 2\0j\ 6\0|\ 4\0t\a\0\83\ 2\0\ 1|\ 2\0j\b\0\83\0\0\ 1t        \0j
32537 +\0|\ 1\0|\ 2\0t\v\0\83\ 3\0\ 1|\ 2\0j\f\0t\a\0\83\ 1\0}\ 5\0|\ 5\0j\r\0t   \0j\ e\0t\a\0\83\ 2\0}\ 6\0|\ 6\0j\ f\0d\18\0d\ 4\0d\b\0\83\ 3\0\ 1|\ 6\0j\10\0t\v\0\83\ 1\0}\a\0t        \0j\11\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\12\0d\19\0\83\ 1\0\ 1|\ 6\0j\ f\0d\1a\0d\a\0d\ 5\0\83\ 3\0\ 1|\ 6\0j\10\0t\v\0\83\ 1\0}\b\0t  \0j\11\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\12\0d\e\0\83\ 1\0\ 1|\ 6\0j\ f\0d\1c\0d\11\0d\ 6\0\83\ 3\0\ 1|\ 6\0j\10\0t\v\0\83\ 1\0}     \0t      \0j\11\0|\ 1\0|\ 6\0\83\ 2\0\ 1d\1e\0d\1f\0\0g\ 3\0}
32538 +\0t     \0j\13\0t   \0j\14\0|\ 1\0|\a\0j\15\0\83\0\0j\16\0\83\0\0d\ f\0|\a\0j\16\0\83\0\0|
32539 +\0\83\ 6\0}\v\0|\0\0j\ 2\0d\a\0t\17\0|\v\0\83\ 1\0\83\ 2\0\ 1|\0\0j\18\0|\v\0d\ f\0\19j\19\0|\a\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1|\0\0j\18\0|\v\0d\ 4\0\19j\19\0|\b\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1|\0\0j\18\0|\v\0d\b\0\19j\19\0\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1d\0\0S(!\0\0\0Ns\f\0\0\0Pyfile17.medi\14\0\0\0i-\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\b\0\0\0i      \0\0\0i\f\0\0\0i\r\0\0\0i\10\0\0\0i\13\0\0\0i\0\0\0\0i\a\0\0\0i\ 5\0\0\0i\ f\0\0\0i\ e\0\0\0i\11\0\0\0i
32540 +\0\0\0i\12\0\0\0i\v\0\0\0g\0\0\0\0\0\0\0\0s\ 3\0\0\02*xg{\14®Gáz\84?s\ 5\0\0\02*x/3g{\14®Gáz\94?g\11ê-\81\99\97q=(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0(\1a\0\0\0R\ 3\0\0\0t\r\0\0\0build3DMesh_2R6\0\0\0Rl\0\0\0t\10\0\0\0getNumberOfNodest\12\0\0\0convertToPolyTypesR\88\0\0\0Ru\0\0\0t\1a\0\0\0orientCorrectlyPolyhedronsR\a\0\0\0R\b\0\0\0\0\0\0t\ f\0\0\0getMeasureFieldt\18\0\0\0buildNewTimeReprFromThisRo\0\0\0R%\0\0\0t\r\0\0\0cloneWithMeshR(\0\0\0t  \0\0\0applyFunct\14\0\0\0ReadFieldsOnSameMeshRn\0\0\0R\1d\0\0\0R\v\0\0\0R7\0\0\0R\f\0\0\0R\r\0\0\0(\f\0\0\0R\ e\0\0\0R*\0\0\0t\ 1\0\0\0mt\ 5\0\0\0polyst\ 5\0\0\0renumt\ 5\0\0\0f1TmpR"\0\0\0t\ 3\0\0\0f_1t\ 3\0\0\0f_2t\ 3\0\0\0f_3t\ 3\0\0\0itst\ 2\0\0\0fs(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\18\0\0\0testMultiFieldShuffleRW1O\ 1\0\0s<\0\0\0\0\ 1\ 6\ 1\f\ 1\16\ 1\16\ 1\ f\ 1\r\ 1B\ 1\10\ 1
32541 +\ 2\13\ 1\ f\ 1\15\ 1\13\ 1\ f\ 1\10\ 1\r\ 1\13\ 1\ f\ 1\10\ 1\r\ 1\13\ 1\ f\ 1\10\ 2\ f\ 13\ 1\16\ 1 \ 1 \ 1 \ 1c\ 1\0\0\0\10\0\0\0
32542 +\0\0\0C\0\0\0s\83\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 2\0d\ 3\0g\ 3\0}\ 3\0d\ 2\0d\ 2\0d\ 4\0g\ 3\0}\ 4\0|\ 2\0j\ 2\0|\ 3\0|\ 4\0d\ 5\0\83\ 3\0}\ 5\0|\ 2\0j\ 3\0|\ 5\0t\ 4\0\83\ 2\0}\ 6\0d\ 6\0d\a\0d\b\0d  \0d
32543 +\0g\ 5\0}\a\0|\ 6\0j\ 5\0|\a\0t\ 6\0\83\ 2\0\ 1|\ 6\0j\a\0d\v\0\83\ 1\0\ 1|\ 6\0|\ 2\0g\ 2\0}\b\0t\b\0j   \0|\ 1\0|\b\0t\ 4\0\83\ 3\0\ 1t\b\0j
32544 +\0|\ 1\0|\ 6\0j\v\0\83\0\0d\b\0\83\ 3\0}   \0|\0\0j\f\0|        \0j\r\0|\ 2\0d\ 5\0\83\ 2\0\f\83\ 1\0\ 1|     \0j\a\0|\ 2\0j\v\0\83\0\0\83\ 1\0\ 1|\0\0j\f\0|        \0j\r\0|\ 2\0d\ 5\0\83\ 2\0\83\ 1\0\ 1t\b\0j
32545 +\0|\ 1\0|\ 6\0j\v\0\83\0\0d\f\0\83\ 3\0}
32546 +\0|\0\0j\f\0|
32547 +\0j\r\0|\ 6\0d\ 5\0\83\ 2\0\83\ 1\0\ 1t\b\0j\ e\0j\ f\0t\b\0j\10\0t\b\0j\11\0\83\ 2\0}\v\0|\v\0j\a\0d\r\0\83\ 1\0\ 1|\v\0j\12\0|\ 6\0\83\ 1\0\ 1t\b\0j\13\0j\ f\0\83\0\0}\f\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0g
32548 +\0}\r\0|\f\0j\14\0|\r\0|\ 6\0j\15\0\83\0\0d\a\0\83\ 3\0\ 1|\f\0j\16\0d\b\0d\18\0\83\ 2\0\ 1|\f\0j\16\0d\ 6\0d\19\0\83\ 2\0\ 1|\v\0j\17\0|\f\0\83\ 1\0\ 1|\f\0j\14\0|\r\0|\ 6\0j\15\0\83\0\0d\a\0\83\ 3\0}\ e\0|\v\0j\18\0d\1a\0d\a\0d\e\0\83\ 3\0\ 1|\v\0j\19\0\83\0\0\ 1t\b\0j\1a\0|\ 1\0|\v\0\83\ 2\0\ 1t\b\0j\e\0|\ 1\0|\v\0j\1c\0\83\0\0j\v\0\83\0\0d\f\0|\v\0j\v\0\83\0\0d\a\0d\e\0\83\ 6\0}\ f\0|\0\0j\f\0|\ f\0j\r\0|\v\0d\ 5\0d\ 5\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\1c\0\0\0Ns\f\0\0\0Pyfile18.medg\0\0\0\0\0\0\0\0g333333Ó¿g\0\0\0\0\0\0ð?g\11ê-\81\99\97q=i\ 1\0\0\0i\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0i\ 3\0\0\0t\12\0\0\0ExampleOfMultiDimWiÿÿÿÿt\13\0\0\0FieldOnFacesShuffleg\0\0\0\0\0ÀQ@g\0\0\0\0\0`e@g\0\0\0\0\0\0$@g\0\0\0\0\0\80[@g\0\0\0\0\0\04@g\0\0\0\0\0\0^@g\0\0\0\0\0\0>@g\0\0\0\0\0@`@g\0\0\0\0\0\0D@g\0\0\0\0\0\80a@s  \0\0\0plkj [mm]s\v\0\0\0pqqqss [mm]g\1f\85ëQ¸\1e     @i\a\0\0\0(\1d\0\0\0R\ 3\0\0\0R\8b\0\0\0t\10\0\0\0findNodesOnPlanet\19\0\0\0buildFacePartOfMySelfNodeR       \0\0\0R\88\0\0\0Ru\0\0\0R3\0\0\0R\a\0\0\0t\f\0\0\0WriteUMeshesR
32549 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0Rm\0\0\0RH\0\0\0Rn\0\0\0Ro\0\0\0Rp\0\0\0Rq\0\0\0Rt\0\0\0Rl\0\0\0t\12\0\0\0setInfoOnComponentRs\0\0\0R%\0\0\0R\ 6\0\0\0R(\0\0\0R\1c\0\0\0R\1d\0\0\0(\10\0\0\0R\ e\0\0\0R*\0\0\0t\ 3\0\0\0m3dt\ 2\0\0\0ptR=\0\0\0t\ 5\0\0\0nodest\ 3\0\0\0m2dt\b\0\0\0renumberR\\0\0\0t\a\0\0\0m3d_bist\a\0\0\0m2d_bisR"\0\0\0R{\0\0\0R|\0\0\0R/\0\0\0R#\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\13\0\0\0testWriteUMeshesRW1q\ 1\0\0sB\0\0\0\0\ 1\ 6\ 1\f\ 1\ f\ 1\ f\ 1\15\ 1\12\ 1\15\ 1\10\ 1\r\ 1\f\ 1\13\ 1\e\ 1\1a\ 1\13\ 1\19\ 1\e\ 1\19\ 2\e\ 1\r\ 1\r\ 1\ f\ 1$\ 1\19\ 1\10\ 1\10\ 1\r\ 1\e\ 1\13\ 1
32550 +\ 1\10\ 10\ 1\1c\ 1c\ 1\0\0\0\f\0\0\0\18\0\0\0C\0\0\0sn\ 2\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0\83\0\0}\ 4\0t\ 3\0j\ 4\0|\ 1\0|\ 3\0t\ 5\0\83\ 3\0\ 1t\ 3\0j\ 6\0j\a\0t\ 3\0j\b\0t\ 3\0j        \0\83\ 2\0}\ 5\0|\ 5\0j
32551 +\0d\ 3\0\83\ 1\0\ 1|\ 5\0j\v\0|\ 3\0\83\ 1\0\ 1t\ 3\0j\f\0j\a\0\83\0\0}\ 6\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d   \0d
32552 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0g\18\0}\a\0|\ 6\0j\r\0|\a\0|\ 4\0d\1c\0\83\ 3\0\ 1|\ 5\0j\ e\0|\ 6\0\83\ 1\0\ 1|\ 6\0j\ f\0d\1d\0d\1e\0\83\ 2\0\ 1|\ 6\0j\ f\0d\1f\0\0\83\ 2\0\ 1|\ 5\0j\10\0d!\0d\1c\0d"\0\83\ 3\0\ 1|\ 5\0j\11\0\83\0\0\ 1d\1f\0d#\0g\ 2\0}\b\0|\ 5\0j\12\0|\b\0\83\ 1\0}       \0|      \0j\13\0\83\0\0j
32553 +\0|\ 5\0j\13\0\83\0\0j\14\0\83\0\0\83\ 1\0\ 1t\ 3\0j\15\0|\ 1\0\0t\16\0\83\ 3\0\ 1t\ 3\0j\17\0|\ 1\0|      \0j\13\0\83\0\0j\14\0\83\0\0d\1d\0|       \0j\14\0\83\0\0d\1c\0d"\0\83\ 6\0}
32554 +\0|
32555 +\0j\11\0\83\0\0\ 1|\0\0j\18\0|
32556 +\0j\19\0|  \0d$\0d$\0\83\ 3\0\83\ 1\0\ 1d\1f\0d%\0d\1d\0d&\0d\1c\0d#\0g\ 6\0}\v\0\0j\1a\0|\v\0\83\ 1\0\ 1t\ 3\0j\ 4\0|\ 2\0|\ 3\0t\ 5\0\83\ 3\0\ 1t\ 3\0j\15\0|\ 2\0|        \0t\16\0\83\ 3\0\ 1t\ 3\0j\17\0|\ 2\0|      \0j\13\0\83\0\0j\14\0\83\0\0d\1d\0|       \0j\14\0\83\0\0d\1c\0d"\0\83\ 6\0}
32557 +\0|
32558 +\0j\11\0\83\0\0\ 1|\0\0j\18\0|
32559 +\0j\19\0|  \0d$\0d$\0\83\ 3\0\83\ 1\0\ 1d\0\0S('\0\0\0Ns\f\0\0\0Pyfile19.meds\f\0\0\0Pyfile20.medt\r\0\0\0VFieldOnNodesg\0\0\0\0\0\0ð?g\0\0\0\0\0@Y@g\0\0\0\0\0\0\0@g\0\0\0\0\0\80Y@g\0\0\0\0\0\0\b@g\0\0\0\0\0ÀY@g\0\0\0\0\0\0\10@g\0\0\0\0\0\0Z@g\0\0\0\0\0\0\14@g\0\0\0\0\0@Z@g\0\0\0\0\0\0\18@g\0\0\0\0\0\80Z@g\0\0\0\0\0\0\1c@g\0\0\0\0\0ÀZ@g\0\0\0\0\0\0 @g\0\0\0\0\0\0[@g\0\0\0\0\0\0"@g\0\0\0\0\0@[@g\0\0\0\0\0\0$@g\0\0\0\0\0\80[@g\0\0\0\0\0\0&@g\0\0\0\0\0À[@g\0\0\0\0\0\0(@g\0\0\0\0\0\0\@i\ 2\0\0\0i\0\0\0\0\0\0\0tyty [mm]i\ 1\0\0\0s      \0\0\0uiop [MW]g\1f\85ëQ¸\1e     @i\a\0\0\0i\ 4\0\0\0g\11ê-\81\99\97q=i\ 3\0\0\0i\ 5\0\0\0(\e\0\0\0R\ 3\0\0\0R\14\0\0\0R\8c\0\0\0R\a\0\0\0R\b\0\0\0R   \0\0\0Rm\0\0\0RH\0\0\0t\b\0\0\0ON_NODESRo\0\0\0R3\0\0\0Rp\0\0\0Rq\0\0\0Rt\0\0\0Rs\0\0\0\0\0\0R%\0\0\0R\ 6\0\0\0t\f\0\0\0buildSubPartR\1d\0\0\0R\v\0\0\0R\e\0\0\0Ru\0\0\0R\1f\0\0\0R\f\0\0\0R\r\0\0\0t\r\0\0\0renumberNodes(\f\0\0\0R\ e\0\0\0R*\0\0\0R.\0\0\0R\94\0\0\0\0\0\0nbOfNodesR"\0\0\0R{\0\0\0R|\0\0\0t\ 4\0\0\0arr2R#\0\0\0R-\0\0\0t\ 4\0\0\0arr3(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\16\0\0\0testFieldNodeProfilRW1\95\ 1\0\0s>\0\0\0\0\ 1\ 6\ 1\ 6\ 1\f\ 1\f\ 1\13\ 1\e\ 1\r\ 1\r\ 1\ f\ 1N\ 1\13\ 1\r\ 1\10\ 1\10\ 1\13\ 1
32560 +\ 1\f\ 1\ f\ 1\1f\ 1\13\ 20\ 1
32561 +\ 1\1c\ 2\18\ 1\r\ 1\13\ 1\13\ 10\ 1
32562 +\ 1\1c\ 2c\ 1\0\0\0       \0\0\0\18\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0|\ 1\0|\ 2\0t\ 4\0\83\ 3\0\ 1t\ 2\0j\ 5\0j\ 6\0t\ 2\0j\a\0t\ 2\0j\b\0\83\ 2\0}\ 3\0|\ 3\0j    \0d\ 2\0\83\ 1\0\ 1|\ 3\0j
32563 +\0|\ 2\0\83\ 1\0\ 1d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d    \0d
32564 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0g\18\0}\ 4\0t\ 2\0j\v\0j\ 6\0\83\0\0}\ 5\0|\ 5\0j\f\0|\ 4\0d\e\0d\1c\0\83\ 3\0\ 1|\ 3\0j\r\0|\ 5\0\83\ 1\0\ 1|\ 5\0j\ e\0d\1d\0d\1e\0\83\ 2\0\ 1|\ 5\0j\ e\0d\1f\0\0\83\ 2\0\ 1|\ 5\0j\ f\0\83\0\0}\ 6\0|\ 3\0j\10\0d!\0d\1c\0d"\0\83\ 3\0\ 1d#\0d"\0d\1c\0d\1f\0d$\0d%\0d&\0d\1d\0d'\0d(\0d)\0d*\0g\f\0}\a\0|\ 3\0j\11\0|\a\0\83\ 1\0\ 1|\ 3\0j\12\0\83\0\0\ 1t\ 2\0j\13\0|\ 1\0|\ 3\0t\14\0\83\ 3\0\ 1t\ 2\0j\15\0|\ 1\0|\ 3\0j\16\0\83\0\0j\17\0\83\0\0d\1d\0|\ 3\0j\17\0\83\0\0d\1c\0d"\0\83\ 6\0}\b\0|\0\0j\18\0|\b\0j\19\0|\ 3\0d+\0d+\0\83\ 3\0\83\ 1\0\ 1d\0\0S(,\0\0\0Ns\f\0\0\0Pyfile23.medt\b\0\0\0FieldMixg\0\0\0\0\0¼\90@g\0\0\0\0\0L\92@g\0\0\0\0\0\90\8f@g\0\0\0\0\0X\91@g\0\0\0\0\0à\8f@g\0\0\0\0\0\80\91@g\0\0\0\0\0\18\90@g\0\0\0\0\0¨\91@g\0\0\0\0\0@\90@g\0\0\0\0\0Ð\91@g\0\0\0\0\0h\90@g\0\0\0\0\0ø\91@g\0\0\0\0\0\90\90@g\0\0\0\0\0 \92@g\0\0\0\0\0¸\90@g\0\0\0\0\0H\92@g\0\0\0\0\0à\90@g\0\0\0\0\0p\92@g\0\0\0\0\0\b\91@g\0\0\0\0\0\98\92@g\0\0\0\0\0\f\91@g\0\0\0\0\0\9c\92@g\0\0\0\0\0\10\91@g\0\0\0\0\0 \92@i\f\0\0\0i\ 2\0\0\0i\0\0\0\0s  \0\0\0plkj [mm]i\ 1\0\0\0s\v\0\0\0pqqqss [mm]g\\8fÂõ(\        @i\a\0\0\0i\ 3\0\0\0i\ 5\0\0\0i\v\0\0\0i
32565 +\0\0\0i   \0\0\0i\ 6\0\0\0i\b\0\0\0i\ 4\0\0\0g\11ê-\81\99\97q=(\1a\0\0\0R\ 3\0\0\0R\16\0\0\0R\a\0\0\0R\b\0\0\0R   \0\0\0Rm\0\0\0RH\0\0\0\0\0\0Ro\0\0\0R3\0\0\0Rp\0\0\0Rq\0\0\0Rt\0\0\0Rs\0\0\0\0\0\0R)\0\0\0R%\0\0\0\0\0\0R\ 6\0\0\0R\e\0\0\0Ru\0\0\0R\1f\0\0\0R\1d\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(   \0\0\0R\ e\0\0\0R*\0\0\0R\ f\0\0\0R"\0\0\0\0\0\0R{\0\0\0R/\0\0\0t\b\0\0\0renumArrR#\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\16\0\0\0testFieldNodeProfilRW2¹\ 1\0\0s,\0\0\0\0\ 1\ 6\ 1\f\ 1\13\ 2\e\ 1\r\ 1\r\ 1$\ 1*\ 1\ f\ 1\13\ 1\r\ 1\10\ 1\10\ 1\f\ 1\13\ 2*\ 1\r\ 1
32566 +\ 1\13\ 10\ 1\1c\ 2c\ 1\0\0\0\v\0\0\0\18\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0j\ 4\0t\ 2\0j\ 5\0t\ 2\0j\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\a\0d\ 2\0\83\ 1\0\ 1|\ 3\0j\b\0|\ 2\0\83\ 1\0\ 1t\ 2\0j       \0j\ 4\0\83\0\0}\ 4\0|\ 3\0j
32567 +\0|\ 4\0\83\ 1\0\ 1d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d    \0d
32568 +\0d\v\0d\f\0d\r\0d\ e\0g\f\0}\ 5\0|\ 4\0j\v\0|\ 5\0d\ f\0d\10\0\83\ 3\0\ 1|\ 4\0j\f\0d\11\0d\12\0\83\ 2\0\ 1|\ 4\0j\f\0d\13\0d\14\0\83\ 2\0\ 1|\ 3\0j\r\0d\15\0d\10\0d\16\0\83\ 3\0\ 1|\ 3\0j\ e\0\83\0\0\ 1t\ 2\0j\ 3\0j\ 4\0t\ 2\0j\ f\0t\ 2\0j\ 6\0\83\ 2\0}\ 6\0|\ 6\0j\a\0d\ 2\0\83\ 1\0\ 1|\ 6\0j\b\0|\ 2\0\83\ 1\0\ 1t\ 2\0j   \0j\ 4\0\83\0\0}\ 4\0|\ 6\0j
32569 +\0|\ 4\0\83\ 1\0\ 1d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0d%\0d&\0d'\0d(\0d)\0d*\0d+\0d,\0d-\0d.\0g\18\0}\a\0|\ 4\0j\v\0|\a\0d/\0d\10\0\83\ 3\0\ 1|\ 4\0j\f\0d\11\0d\12\0\83\ 2\0\ 1|\ 4\0j\f\0d\13\0d\14\0\83\ 2\0\ 1|\ 6\0j\r\0d\15\0d\10\0d\16\0\83\ 3\0\ 1|\ 6\0j\ e\0\83\0\0\ 1t\ 2\0j\10\0|\ 1\0|\ 3\0t\11\0\83\ 3\0\ 1t\ 2\0j\12\0|\ 1\0|\ 3\0j\13\0\83\0\0j\14\0\83\0\0|\ 3\0j\14\0\83\0\0\83\ 3\0}\b\0|\0\0j\15\0d\13\0t\16\0|\b\0\83\ 1\0\83\ 2\0\ 1|\0\0j\15\0t\ 2\0j\ 5\0|\b\0d\11\0\19\83\ 2\0\ 1t\ 2\0j\17\0|\ 1\0|\ 3\0j\13\0\83\0\0j\14\0\83\0\0\83\ 2\0}      \0|\0\0j\15\0d\13\0t\16\0|  \0\83\ 1\0\83\ 2\0\ 1|\0\0j\18\0\0d\11\0\19d\ 2\0k\ 2\0\83\ 1\0\ 1t\ 2\0j\19\0|\ 1\0|\ 6\0\83\ 2\0\ 1t\ 2\0j\17\0|\ 1\0|\ 3\0j\13\0\83\0\0j\14\0\83\0\0\83\ 2\0}     \0|\0\0j\15\0d\13\0t\16\0|  \0\83\ 1\0\83\ 2\0\ 1|\0\0j\18\0\0d\11\0\19d\ 2\0k\ 2\0\83\ 1\0\ 1t\ 2\0j\12\0|\ 1\0|\ 3\0j\13\0\83\0\0j\14\0\83\0\0|\ 3\0j\14\0\83\0\0\83\ 3\0}\b\0|\0\0j\15\0d\10\0t\16\0|\b\0\83\ 1\0\83\ 2\0\ 1|\0\0j\15\0t\ 2\0j\ f\0|\b\0d\11\0\19\83\ 2\0\ 1|\0\0j\15\0t\ 2\0j\ 5\0|\b\0d\13\0\19\83\ 2\0\ 1t\ 2\0j\1a\0|\ 1\0|\ 3\0j\13\0\83\0\0j\14\0\83\0\0d\11\0|\ 3\0j\14\0\83\0\0d\10\0d\16\0\83\ 6\0}
32570 +\0|\0\0j\18\0|
32571 +\0j\e\0|\ 6\0d0\0d0\0\83\ 3\0\83\ 1\0\ 1t\ 2\0j\1c\0|\ 1\0|\ 3\0j\13\0\83\0\0j\14\0\83\0\0d\11\0|\ 3\0j\14\0\83\0\0d\10\0d\16\0\83\ 6\0}
32572 +\0|\0\0j\18\0|
32573 +\0j\e\0|\ 3\0d0\0d0\0\83\ 3\0\83\ 1\0\ 1d\0\0S(1\0\0\0Ns\f\0\0\0Pyfile21.medR´\0\0\0g\0\0\0\0\0ÀQ@g\0\0\0\0\0`e@g\0\0\0\0\0\0$@g\0\0\0\0\0\80[@g\0\0\0\0\0\04@g\0\0\0\0\0\0^@g\0\0\0\0\0\0>@g\0\0\0\0\0@`@g\0\0\0\0\0\0D@g\0\0\0\0\0\80a@g\0\0\0\0\0\0I@g\0\0\0\0\0Àb@i\ 6\0\0\0i\ 2\0\0\0i\0\0\0\0s       \0\0\0plkj [mm]i\ 1\0\0\0s\v\0\0\0pqqqss [mm]g\1f\85ëQ¸\1e        @i\a\0\0\0g\0\0\0\0\0¼\90@g\0\0\0\0\0L\92@g\0\0\0\0\0\90\8f@g\0\0\0\0\0X\91@g\0\0\0\0\0à\8f@g\0\0\0\0\0\80\91@g\0\0\0\0\0\18\90@g\0\0\0\0\0¨\91@g\0\0\0\0\0@\90@g\0\0\0\0\0Ð\91@g\0\0\0\0\0h\90@g\0\0\0\0\0ø\91@g\0\0\0\0\0\90\90@g\0\0\0\0\0 \92@g\0\0\0\0\0¸\90@g\0\0\0\0\0H\92@g\0\0\0\0\0à\90@g\0\0\0\0\0p\92@g\0\0\0\0\0\b\91@g\0\0\0\0\0\98\92@g\0\0\0\0\0\f\91@g\0\0\0\0\0\9c\92@g\0\0\0\0\0\10\91@g\0\0\0\0\0 \92@i\f\0\0\0g\11ê-\81\99\97q=(\1d\0\0\0R\ 3\0\0\0R\16\0\0\0R\a\0\0\0Rm\0\0\0RH\0\0\0Rn\0\0\0Ro\0\0\0R3\0\0\0Rp\0\0\0Rq\0\0\0Rs\0\0\0Rt\0\0\0\0\0\0R%\0\0\0R\ 6\0\0\0\0\0\0R\e\0\0\0\0\0\0Rv\0\0\0R\1d\0\0\0R\v\0\0\0R6\0\0\0R7\0\0\0t\16\0\0\0GetAllFieldNamesOnMeshR\f\0\0\0R(\0\0\0R\1f\0\0\0R\r\0\0\0R\1c\0\0\0(\v\0\0\0R\ e\0\0\0R*\0\0\0R\ f\0\0\0R"\0\0\0R{\0\0\0R|\0\0\0R#\0\0\0\0\0\0t\ 2\0\0\0tsR\9c\0\0\0R-\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\e\0\0\0testMixCellAndNodesFieldRW1Ô\ 1\0\0sZ\0\0\0\0\ 1\ 6\ 1\f\ 1\e\ 1\r\ 1\r\ 1\ f\ 1\r\ 1*\ 1\13\ 1\10\ 1\10\ 1\13\ 1
32574 +\ 2\e\ 1\r\ 1\r\ 1\ f\ 1\r\ 1$\ 1*\ 1\13\ 1\10\ 1\10\ 1\13\ 1
32575 +\ 2\13\ 1'\ 1\16\ 1\17\ 1\1e\ 1\16\ 1\17\ 1\10\ 1\1e\ 1\16\ 1\17\ 2'\ 1\16\ 1\17\ 1\17\ 20\ 1\1c\ 10\ 1\1c\ 2c\ 1\0\0\0\ 5\0\0\0\ 4\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0j\ 4\0t\ 2\0j\ 5\0t\ 2\0j\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\a\0d\ 2\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 3\0d\ 4\0d\ 5\0\83\ 3\0\ 1|\ 3\0\0|\ 2\0\83\ 1\0\ 1|\ 3\0j
32576 +\0d\ 6\0d\a\0\83\ 2\0\ 1t\ 2\0j\v\0|\ 1\0|\ 3\0t\f\0\83\ 3\0\ 1|\ 3\0j\b\0d\b\0d       \0d
32577 +\0\83\ 3\0\ 1|\ 3\0j
32578 +\0d\ 6\0d\v\0\83\ 2\0\ 1t\ 2\0j\r\0|\ 1\0|\ 3\0\83\ 2\0\ 1|\ 3\0j\a\0d\f\0\83\ 1\0\ 1t\ 2\0j\v\0|\ 1\0|\ 3\0t\ e\0\83\ 3\0\ 1|\ 3\0j\a\0d\r\0\83\ 1\0\ 1|\ 2\0j\a\0d\ e\0\83\ 1\0\ 1t\ 2\0j\v\0|\ 1\0|\ 3\0t\ e\0\83\ 3\0\ 1t\ 2\0j\ 3\0j\ 4\0t\ 2\0j\ f\0t\ 2\0j\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\a\0d\ f\0\83\ 1\0\ 1|\ 3\0j\b\0d\10\0d     \0d\11\0\83\ 3\0\ 1|\ 3\0j    \0|\ 2\0\83\ 1\0\ 1|\ 3\0j
32579 +\0d\12\0d\13\0\83\ 2\0\ 1t\ 2\0j\v\0|\ 1\0|\ 3\0t\ e\0\83\ 3\0\ 1t\ 2\0j\10\0|\ 1\0\83\ 1\0}\ 4\0|\0\0j\11\0d\14\0t\12\0|\ 4\0\83\ 1\0\83\ 2\0\ 1|\0\0j\13\0|\ 4\0d\15\0\19d\ 2\0k\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\ 4\0d\16\0\19d\f\0k\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\ 4\0d\ 6\0\19d\r\0k\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\ 4\0d\12\0\19d\ f\0k\ 2\0\83\ 1\0\ 1d\0\0S(\17\0\0\0Ns\f\0\0\0Pyfile22.medt\ 6\0\0\0Field1g\85ëQ¸\1e\85\v@i\ 5\0\0\0i\ 6\0\0\0i\ 2\0\0\0s\ 3\0\0\0x+ygfffffR\8f@i\a\0\0\0i\b\0\0\0s\a\0\0\0x+77.*yt\ 6\0\0\0Field2t\ 6\0\0\0Field3t\v\0\0\02DMesh_2Bist\ 6\0\0\0Field8g{\14®Gáú!@i        \0\0\0i\ 3\0\0\0s\ 5\0\0\03*x+yi\ 4\0\0\0i\0\0\0\0i\ 1\0\0\0(\14\0\0\0R\ 3\0\0\0t\r\0\0\0build2DMesh_2R\a\0\0\0Rm\0\0\0RH\0\0\0\0\0\0Ro\0\0\0R3\0\0\0R%\0\0\0Rp\0\0\0t\10\0\0\0fillFromAnalyticR\e\0\0\0R        \0\0\0R(\0\0\0Ru\0\0\0Rn\0\0\0t\10\0\0\0GetAllFieldNamesR6\0\0\0R7\0\0\0R\f\0\0\0(\ 5\0\0\0R\ e\0\0\0R*\0\0\0R\ f\0\0\0R"\0\0\0R\9c\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\17\0\0\0testGetAllFieldNamesRW1\b\ 2\0\0s:\0\0\0\0\ 1\ 6\ 1\f\ 1\e\ 1\r\ 1\13\ 1\r\ 1\10\ 1\13\ 1\13\ 1\10\ 1\10\ 1\r\ 1\13\ 1\r\ 1\r\ 1\13\ 1\e\ 1\r\ 1\13\ 1\r\ 1\10\ 1\13\ 1\ f\ 1\16\ 1\17\ 1\17\ 1\17\ 1\17\ 1c\ 1\0\0\0\b\0\0\0\a\0\0\0C\0\0\0sa\ 1\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0t\0\0j\ 3\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 4\0\83\ 1\0t\0\0j\ 3\0d\ 2\0d\ 3\0g\ 2\0\83\ 1\0t\0\0j\ 3\0d\ 2\0d\ 3\0g\ 2\0\83\ 1\0\83\ 3\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0d\ 6\0\83\ 1\0\ 1t\0\0j\ 6\0t\0\0j\a\0\83\ 1\0}\ 3\0|\ 3\0j\b\0|\ 2\0\83\ 1\0\ 1d\a\0}\ 4\0t\0\0j\ 3\0|\ 4\0d\ 5\0\14\83\ 1\0}\ 5\0|\ 5\0j        \0\83\0\0\ 1|\ 5\0j
32580 +\0|\ 4\0\83\ 1\0\ 1|\ 5\0j\v\0g\0\0t\f\0|\ 4\0\83\ 1\0D]\10\0}\ 6\0d\b\0|\ 6\0\16^\ 2\0\0\83\ 1\0\ 1|\ 3\0j\r\0|\ 5\0\83\ 1\0\ 1|\ 3\0j\ 5\0\0\83\ 1\0\ 1t\0\0j\ e\0|\ 1\0|\ 3\0t\ f\0\83\ 3\0\ 1t\0\0j\10\0|\ 1\0|\ 2\0j\11\0\83\0\0d\ 2\0|\ 3\0j\11\0\83\0\0d
32581 +\0d
32582 +\0\83\ 6\0}\a\0|\0\0j\12\0|\ 3\0j\13\0|\a\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\f\0\0\0Ns\f\0\0\0Pyfile57.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0t\b\0\0\0TinyMeshi\ 4\10\0\0s\ 3\0\0\0c%it\r\0\0\0FieldBigCompoiÿÿÿÿg\11ê-\81\99\97q=(\14\0\0\0R\a\0\0\0t\10\0\0\0MEDCouplingCMeshRN\0\0\0Rq\0\0\0t\11\0\0\0buildUnstructuredR3\0\0\0Rm\0\0\0Rn\0\0\0Rp\0\0\0t\ 4\0\0\0iotat      \0\0\0rearranget\13\0\0\0setInfoOnComponentst\ 5\0\0\0rangeRs\0\0\0R\e\0\0\0R       \0\0\0R\1c\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\b\0\0\0R\ e\0\0\0R*\0\0\0R\94\0\0\0t\ 1\0\0\0ft      \0\0\0nbOfCompot\ 3\0\0\0arrt\ 1\0\0\0iR#\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\16\0\0\0testBigNbOfCompoNonReg'\ 2\0\0s$\0\0\0\0\ 1\ 6\ 1\f\0F\ 1\f\0\r\ 1\12\0\r\ 1\ 6\ 1\13\0
32583 +\ 1\r\ 1*\ 1\r\ 1\r\ 1\13\ 1*\ 1\1c\ 1c\ 1\0\0\0\v\0\0\0
32584 +\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0d\ 2\0t\0\0j\ 2\0\83\ 2\0}\ 2\0|\ 2\0j\ 3\0\83\0\0\ 1|\ 2\0j\ 4\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0\ 1|\ 2\0j\ 5\0t\0\0j\ 6\0d\a\0d\a\0d\b\0d\b\0d\b\0d\a\0d\a\0d\b\0g\b\0d     \0d\ 4\0\83\ 3\0\83\ 1\0\ 1g\0\0t\a\0d      \0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\b\0\83\0\0^\ 2\0q\7f\0}\ 4\0x7\0t       \0|\ 4\0\83\ 1\0D])\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j
32585 +\0t\v\0|\ 3\0\83\ 1\0d
32586 +\0\14d\a\0g\ 2\0\83\ 1\0\ 1\0Wt\0\0j\ 1\0j\f\0|\ 4\0\83\ 1\0}\ 6\0|\ 6\0j\r\0t\ e\0\83\ 1\0}\a\0|\a\0j\ f\0\83\0\0j\10\0d\v\0g\ 1\0\83\ 1\0\ 1t\0\0j\11\0|\ 1\0|\a\0t\12\0\83\ 3\0\ 1t\0\0j\13\0|\ 1\0d\f\0d\ 3\0|\a\0j\14\0\83\0\0d\r\0d\r\0\83\ 6\0}\b\0|\b\0j\15\0t\0\0j\ 1\0|\b\0j\16\0\83\0\0\83\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\a\0j\18\0|\b\0d\ e\0d\ e\0\83\ 3\0\83\ 1\0\ 1|\ 6\0j\19\0\83\0\0}\ 6\0|\ 6\0j\1a\0\83\0\0\ 1t\0\0j\e\0|\ 6\0\83\ 1\0}\ 6\0|\ 6\0j\r\0t\ e\0\83\ 1\0}\a\0|\a\0j\ f\0\83\0\0j\10\0d\v\0g\ 1\0\83\ 1\0\ 1t\0\0j\11\0|\ 1\0|\a\0t\12\0\83\ 3\0\ 1t\0\0j\13\0|\ 1\0d\f\0d\ 3\0|\a\0j\14\0\83\0\0d\r\0d\r\0\83\ 6\0}\b\0|\b\0j\15\0t\0\0j\e\0|\b\0j\16\0\83\0\0\83\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\a\0j\18\0|\b\0d\ e\0d\ e\0\83\ 3\0\83\ 1\0\ 1t\0\0j\1c\0\83\0\0}\ 6\0t\0\0j\ 6\0d     \0\83\ 1\0}   \0|      \0j\1d\0\83\0\0\ 1|\ 6\0j\ 5\0\0|      \0\83\ 2\0\ 1|\ 6\0j\1e\0d\ 2\0\83\ 1\0\ 1|\ 6\0j\r\0t\ e\0\83\ 1\0}\a\0|\a\0j\ f\0\83\0\0j\10\0d\v\0g\ 1\0\83\ 1\0\ 1t\0\0j\11\0|\ 1\0|\a\0t\12\0\83\ 3\0\ 1t\0\0j\13\0|\ 1\0d\ 2\0d\ 3\0|\a\0j\14\0\83\0\0d\r\0d\r\0\83\ 6\0}\b\0|\0\0j\17\0|\a\0j\18\0|\b\0d\ e\0d\ e\0\83\ 3\0\83\ 1\0\ 1|\ 6\0j\19\0\83\0\0j\1f\0\83\0\0}
32587 +\0t\0\0\0d\ 2\0\83\ 1\0}\ 6\0|\ 6\0j!\0d        \0d      \0g\ 2\0\83\ 1\0\ 1|\ 6\0j\ 5\0|
32588 +\0\83\ 1\0\ 1|\ 6\0j\r\0t\ e\0\83\ 1\0}\a\0|\a\0j\ f\0\83\0\0j\10\0d\v\0g\ 1\0\83\ 1\0\ 1t\0\0j\11\0|\ 1\0|\a\0t\12\0\83\ 3\0\ 1t\0\0j\13\0|\ 1\0d\ 2\0d\ 3\0|\a\0j\14\0\83\0\0d\r\0d\r\0\83\ 6\0}\b\0|\0\0j\17\0|\a\0j\18\0|\b\0d\ e\0d\ e\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\ f\0\0\0Ns\f\0\0\0Pyfile73.medR\ f\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0g\0\0\0\0\0\0ø?s
32589 +\0\0\0ABC [defg]t\ 5\0\0\0mergeiÿÿÿÿg\11ê-\81\99\97q=("\0\0\0R\a\0\0\0t\14\0\0\0MEDCoupling1SGTUMesht
32590 +\0\0\0NORM_QUAD4RJ\0\0\0RK\0\0\0RN\0\0\0Rq\0\0\0\0\0\0t\b\0\0\0deepCopyt   \0\0\0enumeratet   \0\0\0translatet\ 5\0\0\0floatt\10\0\0\0Merge1SGTUMeshesR\8f\0\0\0Ru\0\0\0R&\0\0\0\0\0\0R\e\0\0\0R   \0\0\0R\1c\0\0\0R\v\0\0\0Rp\0\0\0R\1d\0\0\0R\f\0\0\0R\r\0\0\0\0\0\0t\10\0\0\0convertAllToPolyt\14\0\0\0MEDCoupling1DGTUMeshRÅ\0\0\0\0\0\0R3\0\0\0RO\0\0\0t\1a\0\0\0MEDCouplingCurveLinearMesht\14\0\0\0setNodeGridStructure(\v\0\0\0R\ e\0\0\0t\ 5\0\0\0fnameR\94\0\0\0\0\0\0t\ 2\0\0\0mst\ 3\0\0\0eltt\ 2\0\0\0m0RË\0\0\0t\ 5\0\0\0fReadRÍ\0\0\0t\ 1\0\0\0c(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\17\0\0\0testMultiMeshTypeWrite07\ 2\0\0sZ\0\0\0\0\ 1\ 6\ 1\15\0
32591 +\ 1\19\ 14\ 2%\ 1\19\ 1\1d\ 1\ 4\ 2\12\ 1\ f\0\16\ 1\13\ 2$\ 1\1c\ 1\1c\ 2\f\0
32592 +\ 1\ f\ 1\ f\0\16\ 1\13\ 2$\ 1\1c\ 1\1c\ 2\f\ 1\ f\0
32593 +\ 1\10\ 1\r\ 1\ f\0\16\ 1\13\ 2$\ 1\1c\ 2\12\ 1\ f\ 1\13\ 1\r\ 1\ f\0\16\ 1\13\ 2$\ 1\1c\ 1c\ 1\0\0\0
32594 +\0\0\0
32595 +\0\0\0C\0\0\0\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0d\ 2\0t\0\0j\ 2\0\83\ 2\0}\ 2\0|\ 2\0j\ 3\0\83\0\0\ 1|\ 2\0j\ 4\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0\ 1|\ 2\0j\ 5\0t\0\0j\ 6\0d\a\0d\a\0d\b\0d\b\0d\b\0d\a\0d\a\0d\b\0g\b\0d     \0d\ 4\0\83\ 3\0\83\ 1\0\ 1g\0\0t\a\0d      \0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\b\0\83\0\0^\ 2\0q\7f\0}\ 4\0x7\0t       \0|\ 4\0\83\ 1\0D])\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j
32596 +\0t\v\0|\ 3\0\83\ 1\0d
32597 +\0\14d\a\0g\ 2\0\83\ 1\0\ 1\0Wt\0\0j\ 1\0j\f\0|\ 4\0\83\ 1\0}\ 6\0t\0\0j\r\0|\ 1\0|\ 6\0t\ e\0\83\ 3\0\ 1t\0\0j\ f\0|\ 1\0d\v\0d\ 3\0\83\ 3\0}\a\0|\0\0j\10\0t\11\0|\a\0t\0\0j\12\0\83\ 2\0\83\ 1\0\ 1t\0\0j\ 1\0|\a\0\83\ 1\0}\a\0|\0\0j\10\0|\ 6\0j\13\0|\a\0d\f\0\83\ 2\0\83\ 1\0\ 1|\ 6\0j\14\0\83\0\0}\ 6\0|\ 6\0j\15\0\83\0\0\ 1t\0\0j\16\0|\ 6\0\83\ 1\0}\ 6\0t\0\0j\r\0|\ 1\0|\ 6\0t\ e\0\83\ 3\0\ 1t\0\0j\ f\0|\ 1\0d\v\0d\ 3\0\83\ 3\0}\a\0t\0\0j\16\0|\a\0\83\ 1\0}\a\0|\0\0j\10\0|\ 6\0j\13\0|\a\0d\f\0\83\ 2\0\83\ 1\0\ 1t\0\0j\17\0\83\0\0}\ 6\0t\0\0j\ 6\0d    \0\83\ 1\0}\b\0|\b\0j\18\0\83\0\0\ 1|\ 6\0j\ 5\0|\b\0|\b\0\83\ 2\0\ 1|\ 6\0j\19\0d\ 2\0\83\ 1\0\ 1t\0\0j\r\0|\ 1\0|\ 6\0t\ e\0\83\ 3\0\ 1t\0\0j\ f\0|\ 1\0d\ 3\0\83\ 2\0}\a\0|\0\0j\10\0t\11\0|\a\0t\0\0j\17\0\83\ 2\0\83\ 1\0\ 1|\0\0j\10\0|\ 6\0j\13\0|\a\0d\f\0\83\ 2\0\83\ 1\0\ 1|\ 6\0j\14\0\83\0\0j\1a\0\83\0\0}   \0t\0\0j\e\0d\ 2\0\83\ 1\0}\ 6\0|\ 6\0j\1c\0\0d      \0g\ 2\0\83\ 1\0\ 1|\ 6\0j\ 5\0\0\83\ 1\0\ 1t\0\0j\r\0|\ 1\0|\ 6\0t\ e\0\83\ 3\0\ 1t\0\0j\ f\0|\ 1\0d\ 3\0\83\ 2\0}\a\0|\0\0j\10\0t\11\0|\a\0t\0\0j\e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\10\0|\ 6\0j\13\0|\a\0d\f\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\r\0\0\0Ns\f\0\0\0Pyfile74.medR\ f\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0g\0\0\0\0\0\0ø?RÐ\0\0\0g\11ê-\81\99\97q=(\1d\0\0\0R\a\0\0\0\0\0\0\0\0\0RJ\0\0\0RK\0\0\0RN\0\0\0Rq\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t   \0\0\0WriteMeshR   \0\0\0t\10\0\0\0ReadMeshFromFileR\f\0\0\0t
32598 +\0\0\0isinstanceRG\0\0\0R\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R3\0\0\0RO\0\0\0\0\0\0\0\0\0(
32599 +\0\0\0R\ e\0\0\0\0\0\0R\94\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\ 5\0\0\0mReadRÍ\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\17\0\0\0testMultiMeshTypeWrite1h\ 2\0\0sP\0\0\0\0\ 1\ 6\ 1\15\0
32600 +\ 1\19\ 14\ 2%\ 1\19\ 1\1d\ 1\ 4\ 1\12\ 1\13\ 2\15\ 1\19\ 1\ f\ 1\19\ 2\f\0
32601 +\ 1\ f\ 1\13\ 2\15\ 1\ f\ 1\19\ 2\f\ 1\ f\0
32602 +\ 1\10\ 1\r\ 1\13\ 2\12\ 1\19\ 1\19\ 2\12\ 1\ f\ 1\13\ 1\r\ 1\13\ 2\12\ 1\19\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 3\0\0\0C\0\0\0sN\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0j\ 3\0d\ 1\0\83\ 1\0}\ 2\0|\ 2\0j\ 4\0d\ 2\0d\ 3\0\83\ 2\0\ 1|\0\0j\ 5\0d\ 3\0|\ 2\0j\ 6\0\83\0\0k\ 6\0\83\ 1\0\ 1d\ 4\0S(\ 5\0\0\0s`\0\0\0 This test is a non regression test on MEDFileUMesh.changeGroupName thanks to Alliance.
32603 +        i\0\0\0\0t\b\0\0\0grp0_LM1t\a\0\0\0xonall1N(\a\0\0\0R\ 3\0\0\0t,\0\0\0buildAMEDFileDataWithGroupOnOneFamilyForSauvt    \0\0\0getMeshest\f\0\0\0getMeshAtPost\ f\0\0\0changeGroupNameR\f\0\0\0t\ e\0\0\0getGroupsNames(\ 3\0\0\0R\ e\0\0\0t\ 3\0\0\0mfdR\ f\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\13\0\0\0testChangeGroupName\97\ 2\0\0s
32604 +\0\0\0\0\ 3\f\ 1\15\ 1\10\ 1\19\ 1c\ 1\0\0\0     \0\0\0\b\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 3\0d\ 2\0g\b\0}\ 2\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 4\0}\ 3\0t\0\0j\ 1\0j\ 2\0d\b\0d\ 5\0\83\ 2\0}\ 4\0|\ 4\0j\ 3\0d\ 4\0\83\ 1\0\ 1|\ 4\0j\ 4\0t\0\0j\ 5\0d\a\0|\ 3\0\83\ 3\0\ 1|\ 4\0j\ 6\0\83\0\0\ 1t\0\0j\a\0j\ 2\0\83\0\0}\ 5\0|\ 5\0j\b\0|\ 2\0d\a\0d\ 5\0\83\ 3\0\ 1|\ 4\0j  \0|\ 5\0\83\ 1\0\ 1t\0\0j
32605 +\0j\ 2\0t\0\0j\v\0t\0\0j\f\0\83\ 2\0}\ 6\0|\ 6\0j\r\0|\ 4\0\83\ 1\0\ 1t\0\0j\a\0j\ 2\0\83\0\0}\a\0|\a\0j\ e\0d\ 4\0d\ 4\0\83\ 2\0\ 1|\a\0j\ f\0d\ 3\0\83\ 1\0\ 1|\a\0j\10\0\0d
32606 +\0\83\ 2\0\ 1|\ 6\0j\11\0|\a\0\83\ 1\0\ 1|\ 6\0j\12\0d\v\0\83\ 1\0\ 1t\0\0j\13\0\83\0\0}\b\0t\0\0j\14\0d\ 5\0\83\ 1\0\ 1t\0\0j\15\0|\b\0\83\ 1\0\ 1|\0\0j\16\0d\ 5\0|\b\0j\17\0\83\0\0\83\ 2\0\ 1t\0\0j\14\0d     \0\83\ 1\0\ 1t\0\0j\15\0|\b\0\83\ 1\0\ 1|\0\0j\16\0d       \0|\b\0j\17\0\83\0\0\83\ 2\0\ 1~\b\0t\0\0j\14\0d\ 5\0\83\ 1\0\ 1|\0\0j\18\0t\0\0j\19\0t\0\0j\1a\0|\ 1\0|\ 6\0t\e\0\83\ 5\0\ 1|\ 6\0j\1c\0\83\0\0j\10\0d      \0d\f\0\83\ 2\0\ 1t\0\0j\1a\0|\ 1\0|\ 6\0t\e\0\83\ 3\0\ 1d\r\0S(\ e\0\0\0sm\0\0\0 This test is a non regression test, to check that in basic API the policies are taken into account.
32607 +        s\f\0\0\0Pyfile75.medg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0R\ f\0\0\0i\0\0\0\0s\15\0\0\0CONCENTRATION of I129t\ 5\0\0\0fieldt\ 4\0\0\0I129N(\1d\0\0\0R\a\0\0\0RG\0\0\0RH\0\0\0RJ\0\0\0RK\0\0\0\0\0\0RM\0\0\0Rq\0\0\0Rt\0\0\0RN\0\0\0Rm\0\0\0Rn\0\0\0Ro\0\0\0Rp\0\0\0Rr\0\0\0\0\0\0\0\0\0Rs\0\0\0R3\0\0\0t\f\0\0\0MEDFileUMesht\13\0\0\0SetTooLongStrPolicyt\1d\0\0\0AssignStaticWritePropertiesToR6\0\0\0t\13\0\0\0getTooLongStrPolicyR \0\0\0t\15\0\0\0InterpKernelExceptionR\e\0\0\0R       \0\0\0R&\0\0\0(       \0\0\0R\ e\0\0\0\0\0\0t\ 6\0\0\0coordst\ 6\0\0\0conn2DR\94\0\0\0t
32608 +\0\0\0meshCoordsRË\0\0\0t\ 1\0\0\0dt\ 2\0\0\0mm(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\18\0\0\0testFieldWithTooLongName \ 2\0\0s>\0\0\0\0\ 3\ 6\ 2\1e\ 2\12\ 2\15\ 1\r\ 1\16\ 1
32609 +\ 2\ f\ 1\13\ 1\r\ 2\e\ 1\r\ 1\ f\ 1\10\ 1\r\ 2\10\ 1\r\ 1\r\ 2\f\ 1\r\ 1\r\ 1\16\ 1\r\ 1\r\ 1\16\ 1\ 3\ 2\r\ 1\1f\ 1\16\ 1\13\ 1c\ 1\0\0\0\r\0\0\0\17\0\0\0C\0\0\0s\8c\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0d\ 2\0\83\ 1\0}\ 2\0t\0\0j\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0}\ 3\0t\0\0j\ 2\0d\ 3\0d\ 5\0d\ 6\0d\a\0d\b\0g\ 5\0\83\ 1\0}\ 4\0t\0\0j\ 2\0d\b\0g\ 1\0\83\ 1\0}\ 5\0|\ 2\0j\ 3\0|\ 3\0|\ 4\0|\ 5\0\83\ 3\0\ 1t\0\0j\ 4\0t\0\0j\ 5\0\83\ 1\0}\ 6\0|\ 6\0j\ 6\0d      \0\83\ 1\0\ 1|\ 6\0j\a\0|\ 2\0\83\ 1\0\ 1t\0\0j\ 2\0d
32610 +\0\83\ 1\0}\a\0|\a\0j\b\0\83\0\0\ 1|\ 6\0j  \0|\a\0\83\ 1\0\ 1|\ 6\0j
32611 +\0\83\0\0\ 1t\0\0j\ 4\0t\0\0j\ 5\0\83\ 1\0}\b\0|\b\0j\ 6\0d\v\0\83\ 1\0\ 1|\b\0j\a\0|\ 2\0\83\ 1\0\ 1t\0\0j\ 2\0d
32612 +\0\83\ 1\0}\a\0|\a\0j\b\0\83\0\0\ 1|\a\0d\ 6\09}\a\0|\b\0j        \0|\a\0\83\ 1\0\ 1|\b\0j
32613 +\0\83\0\0\ 1|\ 6\0j\v\0\83\0\0}        \0|      \0j\f\0\83\0\0\ 4\1ed\f\09\ 2(|        \0j\r\0d\r\0d\a\0d\ e\0\83\ 3\0\ 1t\0\0j\ e\0|\ 1\0|\ 6\0j\ f\0\83\0\0t\10\0\83\ 3\0\ 1t\0\0j\11\0|\ 1\0|\ 6\0\83\ 2\0\ 1t\0\0j\11\0|\ 1\0|\b\0\83\ 2\0\ 1t\0\0j\11\0|\ 1\0|    \0\83\ 2\0\ 1t\0\0j\12\0|\ 1\0d\ 2\0d\ 3\0d   \0d\ f\0d\ f\0\83\ 6\0}
32614 +\0|\0\0j\13\0|\ 6\0j\14\0|
32615 +\0d\10\0d\10\0\83\ 3\0\83\ 1\0\ 1|\0\0j\13\0|
32616 +\0j\f\0\83\0\0j\14\0t\0\0j\ 2\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0g\14\0\83\ 1\0d\10\0\83\ 2\0\83\ 1\0\ 1t\0\0j\12\0|\ 1\0d\ 2\0d\ 3\0d\v\0d\ f\0d\ f\0\83\ 6\0}\v\0|\0\0j\13\0|\b\0j\14\0|\v\0d\10\0d\10\0\83\ 3\0\83\ 1\0\ 1|\0\0j\13\0|\v\0j\f\0\83\0\0j\14\0t\0\0j\ 2\0d\11\0d\14\0d\17\0d\1a\0d\1d\0\0d#\0d%\0d&\0d'\0d(\0d)\0d*\0d+\0d,\0d-\0d.\0d/\0d0\0d1\0g\14\0\83\ 1\0d\10\0\83\ 2\0\83\ 1\0\ 1t\0\0j\12\0|\ 1\0d\ 2\0d\ 3\0d     \0d\a\0d\ e\0\83\ 6\0}\f\0|\0\0j\13\0|    \0j\14\0|\f\0d\10\0d\10\0\83\ 3\0\83\ 1\0\ 1|\0\0j\13\0|\f\0j\f\0\83\0\0j\14\0t\0\0j\ 2\0d\11\0d\15\0d\19\0d\1d\0d!\0d2\0d&\0d3\0d4\0d*\0d5\0d6\0d.\0d7\0d8\0d9\0d:\0d;\0d<\0d=\0g\14\0\83\ 1\0d\10\0\83\ 2\0\83\ 1\0\ 1d>\0S(?\0\0\0sj\0\0\0 This test focuses on MEDLoader.WriteFieldUsingAlreadyWrittenMesh with mesh different from UMesh.
32617 +        s\f\0\0\0Pyfile76.medR\ f\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0i\a\0\0\0R"\0\0\0i\14\0\0\0R#\0\0\0i\ 4\0\0\0g\9a\99\99\99\99\99ñ?i\ 6\0\0\0iÿÿÿÿg\11ê-\81\99\97q=g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\18@g\0\0\0\0\0\0\1c@g\0\0\0\0\0\0 @g\0\0\0\0\0\0"@g\0\0\0\0\0\0$@g\0\0\0\0\0\0&@g\0\0\0\0\0\0(@g\0\0\0\0\0\0*@g\0\0\0\0\0\0,@g\0\0\0\0\0\0.@g\0\0\0\0\0\00@g\0\0\0\0\0\01@g\0\0\0\0\0\02@g\0\0\0\0\0\03@g\0\0\0\0\0\05@g\0\0\0\0\0\08@g\0\0\0\0\0\0;@g\0\0\0\0\0\0>@g\0\0\0\0\0\80@@g\0\0\0\0\0\0B@g\0\0\0\0\0\80C@g\0\0\0\0\0\0E@g\0\0\0\0\0\80F@g\0\0\0\0\0\0H@g\0\0\0\0\0\80I@g\0\0\0\0\0\0K@g\0\0\0\0\0\80L@g\0\0\0\0\0\04@g\0\0\0\0\0\0<@g\0\0\0\0\0\0@@g\0\0\0\0\0\0D@g\0\0\0\0\0\0F@g\0\0\0\0\0\0J@g\0\0\0\0\0\0L@g\0\0\0\0\0\0N@g\0\0\0\0\0\0P@g\0\0\0\0\0\0Q@g\0\0\0\0\0\0R@g\0\0\0\0\0\0S@N(\15\0\0\0R\a\0\0\0\0\0\0Rq\0\0\0RN\0\0\0Rm\0\0\0\0\0\0R3\0\0\0Rp\0\0\0\0\0\0Rs\0\0\0R\ 6\0\0\0\0\0\0R&\0\0\0R%\0\0\0\0\0\0R\1d\0\0\0R       \0\0\0R(\0\0\0R\1f\0\0\0R\f\0\0\0R\r\0\0\0(\r\0\0\0R\ e\0\0\0\0\0\0R\ f\0\0\0t\ 4\0\0\0arrXt\ 4\0\0\0arrYt\ 4\0\0\0arrZR"\0\0\0\0\0\0R#\0\0\0t\ 3\0\0\0f11t\ 3\0\0\0f1rt\ 3\0\0\0f2rt\ 3\0\0\0f3r(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\1c\0\0\0testUsingAlreadyWrittenMesh2Ë\ 2\0\0sL\0\0\0\0\ 3\ 6\ 1\ f\ 1\e\ 1\1e\ 1\12\ 1\13\ 2\12\0\r\ 1\r\ 1\ f\0
32618 +\ 1\r\ 1
32619 +\ 2\12\0\r\ 1\r\ 1\ f\0
32620 +\0
32621 +\ 1\r\ 1
32622 +\ 2\f\0\11\0\13\ 2\19\ 1\10\ 1\10\ 1\10\ 2\1e\ 1\1c\ 1d\ 1\1e\ 1\1c\ 1d\ 1\1e\ 1\1c\ 1d\ 1c\ 1\0\0\0\v\0\0\0
32623 +\0\0\0C\0\0\0s\80\f\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0d\ 2\0\83\ 1\0}\ 2\0|\ 2\0j\ 2\0\83\0\0\ 1t\0\0j\ 3\0\83\0\0}\ 3\0|\ 3\0j\ 4\0|\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0d\ 3\0\83\ 1\0\ 1t\0\0j\a\0t\0\0j\b\0\83\ 1\0}\ 4\0|\ 4\0j\ 6\0d\ 4\0\83\ 1\0\ 1|\ 4\0j    \0d\ 5\0d\ 6\0d\a\0\83\ 3\0\ 1t\0\0j\ 1\0d\a\0d\b\0d\ 2\0d  \0d
32624 +\0d\v\0d\f\0d\r\0d\ e\0\0\83\ 1\0}\ 5\0|\ 4\0j
32625 +\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\v\0|\ 3\0\83\ 1\0\ 1t\0\0j\f\0|\ 1\0|\ 4\0t\r\0\83\ 3\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0\83\ 1\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\ 4\0j\11\0\83\0\0}\ 6\0|\ 6\0j
32626 +\0|\ 4\0j\12\0\83\0\0d\11\0\17\83\ 1\0\ 1|\ 6\0j\ 6\0d\12\0\83\ 1\0\ 1|\ 6\0j    \0d\13\0d\ 2\0d        \0\83\ 3\0\ 1t\0\0j\13\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0\83\ 3\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0d\ 2\0\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\12\0d\ 2\0d       \0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\ 4\0j\11\0\83\0\0}\a\0|\a\0j       \0d\14\0d\b\0d\ 2\0\83\ 3\0\ 1|\a\0j
32627 +\0|\a\0j\12\0\83\0\0d\ e\0\17\83\ 1\0\ 1t\0\0j\13\0|\ 1\0|\a\0\83\ 2\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0\83\ 3\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0d\ 4\0\83\ 4\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\b\0d\ 2\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\b\0d\ 2\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\b\0d\ 2\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\b\0d\ 2\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0d\ 2\0d  \0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0d\12\0\0d      \0\83\ 6\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\12\0d\ 2\0d   \0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\12\0d     \0d      \0\83      \0\ 1t\0\0j\16\0\83\0\0}\b\0|\ 3\0|\b\0d\10\0<|\b\0j\17\0|\ 1\0d\a\0\83\ 2\0\ 1t\0\0j\18\0t\19\0t\1a\0d\f\0\83\ 1\0\83\ 1\0\83\ 1\0}       \0|      \0j\ 6\0d\15\0\83\ 1\0\ 1t\0\0j\a\0t\0\0j\b\0\83\ 1\0}\ 4\0|\ 4\0j\ 6\0d\ 4\0\83\ 1\0\ 1|\ 4\0j  \0d\ 5\0d\ 6\0d\a\0\83\ 3\0\ 1t\0\0j\ 1\0d\a\0d\b\0d\ 2\0d  \0d
32628 +\0d\v\0d\f\0d\r\0g\b\0\83\ 1\0}\ 5\0|\ 4\0j
32629 +\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\v\0|\ 3\0|     \0\19\83\ 1\0\ 1|\ 4\0j\e\0\83\0\0\ 1t\0\0j\1c\0\83\0\0}
32630 +\0|
32631 +\0j\1d\0|\ 4\0|\b\0d\10\0\0\83\ 4\0\ 1|
32632 +\0j\17\0|\ 1\0d\10\0\83\ 2\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0\83\ 1\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\ 4\0j\11\0\83\0\0}\ 6\0|\ 6\0j
32633 +\0|\ 4\0j\12\0\83\0\0d\11\0\17\83\ 1\0\ 1|\ 6\0j\ 6\0d\12\0\83\ 1\0\ 1|\ 6\0j    \0d\13\0d\ 2\0d        \0\83\ 3\0\ 1t\0\0j\1c\0\83\0\0}
32634 +\0|
32635 +\0j\1d\0|\ 6\0|\b\0d\10\0\0\83\ 4\0\ 1|
32636 +\0j\17\0|\ 1\0d\10\0\83\ 2\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0\83\ 3\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0d\ 2\0d       \0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\12\0d\ 2\0d       \0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\ 4\0j\11\0\83\0\0}\a\0|\a\0j       \0d\14\0d\b\0d\ 2\0\83\ 3\0\ 1|\a\0j
32637 +\0|\a\0j\12\0\83\0\0d\ e\0\17\83\ 1\0\ 1t\0\0j\1c\0\83\0\0}
32638 +\0|
32639 +\0j\1d\0|\a\0|\b\0d\10\0\0\83\ 4\0\ 1|
32640 +\0j\17\0|\ 1\0d\10\0\83\ 2\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0\83\ 3\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0d\ 4\0\83\ 4\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\b\0d\ 2\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\b\0d\ 2\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 4\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\ 6\0d\a\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0|\ 1\0d\ 4\0d\b\0d\ 2\0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\a\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\ 4\0d\b\0d\ 2\0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0\83\ 2\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0|\ 1\0d\12\0d\ 2\0d      \0\83\ 4\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0|\ 1\0d\12\0\0d      \0\83\ 6\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\12\0d\ 2\0d   \0\83\a\0d\ f\0d\ f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\14\0t\15\0t\0\0j\10\0t\0\0j\b\0|\ 1\0d\ 3\0d\10\0d\12\0d     \0d      \0\83      \0\ 1d\0\0S(\16\0\0\0Ns\r\0\0\0Pyfile111.medi\ 4\0\0\0R\ f\0\0\0\0\0\0g\0\0\0\0\0\0\b@i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i      \0\0\0i
32641 +\0\0\0g\11ê-\81\99\97q=i\0\0\0\0i\1e\0\0\0t\ 6\0\0\0field2g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\10@t\ 3\0\0\0PFL(\1e\0\0\0R\a\0\0\0Rq\0\0\0\0\0\0\0\0\0RN\0\0\0\0\0\0R3\0\0\0Rm\0\0\0Rn\0\0\0R%\0\0\0Rs\0\0\0Rp\0\0\0R\e\0\0\0R     \0\0\0R\f\0\0\0R\r\0\0\0R\80\0\0\0\0\0\0R&\0\0\0R(\0\0\0\0\0\0R!\0\0\0\0\0\0t\ 5\0\0\0writet\f\0\0\0DataArrayIntt\ 4\0\0\0listRÊ\0\0\0R\ 6\0\0\0t\ f\0\0\0MEDFileField1TSt\ f\0\0\0setFieldProfile(\v\0\0\0R\ e\0\0\0\0\0\0\0\0\0R\94\0\0\0\0\0\0Rw\0\0\0R-\0\0\0R#\0\0\0\0\0\0t\ 3\0\0\0pflt\ 4\0\0\0f1ts(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\12\0\0\0testEasyFieldRead1ó\ 2\0\0\0\0\0\0\ 1\ 6\ 1\ f\0
32642 +\ 1\f\0\10\ 1\f\ 1\r\ 1\12\ 1\r\ 1\13\ 1*\ 1\r\0\r\ 1\13\ 2%\ 1(\ 1.\ 1:\ 2\f\ 1\17\ 1\r\ 1\13\ 1\10\ 2\16\ 1(\ 1.\ 1:\ 1(\ 1.\ 1:\ 2\f\ 1\13\ 1\17\ 1\10\ 2\16\ 1\19\ 1.\ 1:\ 1.\ 1:\ 2.\ 1:\ 1.\ 1:\ 2(\ 1.\ 1\1f\ 1:\ 1+\ 2\f\ 1
32643 +\ 1\10\ 2\e\ 1\r\ 2\12\ 1\r\ 1\13\ 1'\ 1\r\0\11\ 1
32644 +\ 2\f\ 1\16\ 1\10\ 2%\ 1(\ 1.\ 1:\ 2\f\ 1\17\ 1\r\ 1\13\ 1\f\ 1\16\ 1\10\ 2\16\ 1(\ 1.\ 1:\ 1(\ 1.\ 1:\ 2\f\ 1\13\ 1\17\ 1\f\ 1\16\ 1\10\ 2\16\ 1\19\ 1.\ 1:\ 1.\ 1:\ 2.\ 1:\ 1.\ 1:\ 2(\ 1.\ 1\1f\ 1:\ 1+\ 1(\1c\0\0\0t\b\0\0\0__name__t
32645 +\0\0\0__module__R\11\0\0\0R\13\0\0\0R\15\0\0\0R\17\0\0\0R\19\0\0\0R$\0\0\0R0\0\0\0R@\0\0\0Ri\0\0\0R~\0\0\0R\82\0\0\0R\87\0\0\0R\8a\0\0\0R\9d\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\ 5\ 1\0\0R\ f\ 1\0\0(\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyR\ 4\0\0\0\e\0\0\0s6\0\0\0\ 6\ 1 \b       \b       \b       \b       \b       \r       5       J       C               \b                       \v       "       $       $       \e       4       \1f       \10       1       /                       +       (       xt\b\0\0\0__main__(\v\0\0\0R\a\0\0\0t\b\0\0\0unittestt\ 4\0\0\0mathR\0\0\0\0R\ 1\0\0\0R\ 2\0\0\0R\ 3\0\0\0t\b\0\0\0TestCaseR\ 4\0\0\0R\10\ 1\0\0t\ 4\0\0\0main(\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest1.pyt\b\0\0\0<module>\16\0\0\0s\12\0\0\0\f\ 1\f\ 1\1c\ 1\10\ 2\19ÿ\0ÿ\0ÿ\0U\f\ 1
32646 \ Pas de fin de ligne à la fin du fichier
32647 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest2.pyc MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest2.pyc
32648 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest2.pyc       1970-01-01 01:00:00.000000000 +0100
32649 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest2.pyc       2018-04-19 17:25:17.779798187 +0200
32650 @@ -0,0 +1,84 @@
32651 +\ 3ó\r
32652 +\18;ÕZc\0\0\0\0\0\0\0\0\ 3\0\0\0@\0\0\0sx\0\0\0d\0\0d\ 1\0l\0\0Td\0\0d\ 2\0l\ 1\0Z\ 1\0d\0\0d\ 3\0l\ 2\0m\ 3\0Z\ 3\0m\ 4\0Z\ 4\0m\ 5\0Z\ 5\0\ 1d\0\0d\ 4\0l\ 6\0m\ 6\0Z\ 6\0\ 1d\ 5\0e\ 1\0j\a\0f\ 1\0d\ 6\0\84\0\0\83\0\0YZ\b\0\0d\a\0k\ 2\0rt\0e\ 1\0j
32653 +\0\83\0\0\ 1n\0\0d\ 2\0S(\b\0\0\0iÿÿÿÿ(\ 1\0\0\0t\ 1\0\0\0*N(\ 3\0\0\0t\ 2\0\0\0pit\ 1\0\0\0et\ 4\0\0\0sqrt(\ 1\0\0\0t\14\0\0\0MEDLoaderDataForTestt\ e\0\0\0MEDLoaderTest2c\0\0\0\0\0\0\0\0\ 1\0\0\0B\0\0\0st\0\0\0e\0\0Z\ 1\0d\0\0\84\0\0Z\ 2\0d\ 1\0\84\0\0Z\ 3\0d\ 2\0\84\0\0Z\ 4\0d\ 3\0\84\0\0Z\ 5\0d\ 4\0\84\0\0Z\ 6\0d\ 5\0\84\0\0Z\a\0d\ 6\0\84\0\0Z\b\0d\a\0\84\0\0Z       \0d\b\0\84\0\0Z
32654 +\0d     \0\84\0\0Z\v\0d
32655 +\0\84\0\0Z\f\0d\v\0\84\0\0Z\r\0RS(\f\0\0\0c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0s[\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0d\ 1\0|\ 1\0t\ 4\0\83\ 3\0\ 1t\ 5\0d\ 1\0|\ 1\0j\ 6\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\a\0|\ 1\0j\b\0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile1.medi\0\0\0\0g\11ê-\81\99\97q=(  \0\0\0R\ 4\0\0\0t\r\0\0\0build1DMesh_1t\15\0\0\0checkConsistencyLightt\r\0\0\0WriteUMeshDept\ 5\0\0\0Falset\11\0\0\0ReadUMeshFromFilet\a\0\0\0getNamet
32656 +\0\0\0assertTruet\a\0\0\0isEqual(\ 3\0\0\0t\ 4\0\0\0selft\ 4\0\0\0mesht\a\0\0\0mesh_rw(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\f\0\0\0testMesh1DRW\1c\0\0\0s\f\0\0\0\0\ 1\f\ 1
32657 +\ 1\10\ 1\18\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0s[\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0d\ 1\0|\ 1\0t\ 4\0\83\ 3\0\ 1t\ 5\0d\ 1\0|\ 1\0j\ 6\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\a\0|\ 1\0j\b\0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile2.medi\0\0\0\0g\11ê-\81\99\97q=(  \0\0\0R\ 4\0\0\0t\12\0\0\0build2DCurveMesh_1R\a\0\0\0R\b\0\0\0R      \0\0\0R
32658 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\11\0\0\0testMesh2DCurveRW$\0\0\0s\f\0\0\0\0\ 1\f\ 1
32659 +\ 1\10\ 1\18\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0s[\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0d\ 1\0|\ 1\0t\ 4\0\83\ 3\0\ 1t\ 5\0d\ 1\0|\ 1\0j\ 6\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\a\0|\ 1\0j\b\0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile3.medi\0\0\0\0g\11ê-\81\99\97q=(  \0\0\0R\ 4\0\0\0t\r\0\0\0build2DMesh_1R\a\0\0\0R\b\0\0\0R   \0\0\0R
32660 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\f\0\0\0testMesh2DRW,\0\0\0s\f\0\0\0\0\ 1\f\ 1
32661 +\ 1\10\ 1\18\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0s[\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0d\ 1\0|\ 1\0t\ 4\0\83\ 3\0\ 1t\ 5\0d\ 1\0|\ 1\0j\ 6\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\a\0|\ 1\0j\b\0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile4.medi\0\0\0\0g\11ê-\81\99\97q=(  \0\0\0R\ 4\0\0\0t\11\0\0\0build3DSurfMesh_1R\a\0\0\0R\b\0\0\0R       \0\0\0R
32662 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\10\0\0\0testMesh3DSurfRW4\0\0\0s\f\0\0\0\0\ 1\f\ 1
32663 +\ 1\10\ 1\18\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0s[\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0d\ 1\0|\ 1\0t\ 4\0\83\ 3\0\ 1t\ 5\0d\ 1\0|\ 1\0j\ 6\0\83\0\0d\ 2\0\83\ 3\0}\ 2\0|\0\0j\a\0|\ 1\0j\b\0|\ 2\0d\ 3\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\ 4\0\0\0Ns\v\0\0\0Pyfile5.medi\0\0\0\0g\11ê-\81\99\97q=(  \0\0\0R\ 4\0\0\0t\r\0\0\0build3DMesh_1R\a\0\0\0R\b\0\0\0R   \0\0\0R
32664 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 3\0\0\0R\ e\0\0\0R\ f\0\0\0R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\f\0\0\0testMesh3DRW<\0\0\0s\f\0\0\0\0\ 1\f\ 1
32665 +\ 1\10\ 1\18\ 1\19\ 1c\ 1\0\0\0\ 3\0\0\0\a\0\0\0C\0\0\0\0\0\0t\0\0j\ 1\0\83\0\0}\ 1\0t\ 2\0d\ 1\0|\ 1\0t\ 3\0\83\ 3\0\ 1t\ 4\0d\ 1\0|\ 1\0j\ 5\0\83\0\0j\ 6\0\83\0\0d\ 2\0|\ 1\0j\ 6\0\83\0\0d\ 2\0d\ 3\0\83\ 6\0}\ 2\0|\0\0j\a\0|\ 1\0j\b\0|\ 2\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1t\0\0\0\83\0\0}\ 1\0t\ 2\0d\ 5\0|\ 1\0t\ 3\0\83\ 3\0\ 1t
32666 +\0d\ 5\0|\ 1\0j\ 5\0\83\0\0j\ 6\0\83\0\0d\ 2\0|\ 1\0j\ 6\0\83\0\0d\ 6\0d\a\0\83\ 6\0}\ 2\0|\0\0j\a\0|\ 1\0j\b\0|\ 2\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\b\0\0\0Ns\v\0\0\0Pyfile6.medi\0\0\0\0i\ 1\0\0\0g\11ê-\81\99\97q=s\v\0\0\0Pyfile7.medi\ 2\0\0\0i\ 3\0\0\0(\v\0\0\0R\ 4\0\0\0t\16\0\0\0buildVecFieldOnCells_1t\r\0\0\0WriteFieldDepR \0\0\0t\r\0\0\0ReadFieldCellt\a\0\0\0getMeshR\v\0\0\0R\f\0\0\0R\r\0\0\0t\16\0\0\0buildVecFieldOnNodes_1t\r\0\0\0ReadFieldNode(\ 3\0\0\0R\ e\0\0\0t\ 2\0\0\0f1t\ 2\0\0\0f2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\f\0\0\0testFieldRW1D\0\0\0s\12\0\0\0\0\ 1\f\ 1\10\ 1-\ 1\1c\ 2\f\ 1\10\ 1-\ 1\1c\ 1c\ 1\0\0\0        \0\0\0\a\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0t\0\0j\ 1\0\83\0\0}\ 4\0t\ 2\0|\ 1\0|\ 4\0t\ 3\0\83\ 3\0\ 1|\ 4\0j\ 4\0d\ 4\0d\ 5\0d\ 6\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\a\0|\ 2\0\83\ 3\0\ 1t\a\0|\ 1\0|\ 4\0\83\ 2\0\ 1|\ 4\0j\ 4\0d\b\0d       \0d
32667 +\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\a\0|\ 3\0\83\ 3\0\ 1t\a\0|\ 1\0|\ 4\0\83\ 2\0\ 1t\b\0|\ 1\0|\ 4\0j  \0\83\0\0j
32668 +\0\83\0\0d\a\0|\ 4\0j
32669 +\0\83\0\0d\ 5\0d\ 6\0\83\ 6\0}\ 5\0|\ 4\0j\ 4\0d\ 4\0d\ 5\0d\ 6\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\a\0|\ 2\0\83\ 3\0\ 1|\0\0j\v\0|\ 4\0j\f\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\b\0|\ 1\0|\ 4\0j     \0\83\0\0j
32670 +\0\83\0\0d\a\0|\ 4\0j
32671 +\0\83\0\0d\a\0d\f\0\83\ 6\0}\ 5\0t\0\0j\ 1\0\83\0\0}\ 6\0|\0\0j\v\0|\ 6\0j\f\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\b\0|\ 1\0|\ 4\0j     \0\83\0\0j
32672 +\0\83\0\0d\a\0|\ 4\0j
32673 +\0\83\0\0d  \0d
32674 +\0\83\ 6\0}\ 5\0|\ 4\0j\ 4\0d\b\0d      \0d
32675 +\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\a\0|\ 3\0\83\ 3\0\ 1|\0\0j\v\0|\ 4\0j\f\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\0\0j\r\0\83\0\0}\ 4\0d\r\0}\a\0t\ 2\0|\a\0|\ 4\0t\ 3\0\83\ 3\0\ 1|\ 4\0j\ 4\0d\ e\0d\ f\0d\10\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ e\0\83\0\0}\b\0|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\11\0|\ 2\0\83\ 3\0\ 1t\a\0|\a\0|\ 4\0\83\ 2\0\ 1|\ 4\0j\ 4\0d\12\0d\13\0d\14\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\11\0|\ 3\0\83\ 3\0\ 1t\a\0|\a\0|\ 4\0\83\ 2\0\ 1t\ f\0|\a\0|\ 4\0j     \0\83\0\0j
32676 +\0\83\0\0d\a\0|\ 4\0j
32677 +\0\83\0\0d\ f\0d\10\0\83\ 6\0}\ 5\0|\ 4\0j\ 4\0d\ e\0d\ f\0d\10\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\11\0|\ 2\0\83\ 3\0\ 1|\0\0j\v\0|\ 4\0j\f\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\ f\0|\a\0|\ 4\0j     \0\83\0\0j
32678 +\0\83\0\0d\a\0|\ 4\0j
32679 +\0\83\0\0d\15\0d\11\0\83\ 6\0}\ 5\0t\0\0j\r\0\83\0\0}\ 6\0|\0\0j\v\0|\ 6\0j\f\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1t\ f\0|\a\0|\ 4\0j     \0\83\0\0j
32680 +\0\83\0\0d\a\0|\ 4\0j
32681 +\0\83\0\0d\13\0d\14\0\83\ 6\0}\ 5\0|\ 4\0j\ 4\0d\12\0d\13\0d\14\0\83\ 3\0\ 1|\ 4\0j\ 5\0\83\0\0j\ 6\0d\a\0d\11\0|\ 3\0\83\ 3\0\ 1|\0\0j\v\0|\ 4\0j\f\0|\ 5\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\16\0\0\0Ns\v\0\0\0Pyfile8.medgºOLæÖ\1cÈ@g\0p\1c!6+pÂg\0\0\0\0\0\0$@i\b\0\0\0i    \0\0\0i\0\0\0\0gHáz\14®G$@i\12\0\0\0i\13\0\0\0g\11ê-\81\99\97q=i\ 1\0\0\0s\v\0\0\0Pyfile9.medg\0\0\0\0\0\80[@il\0\0\0im\0\0\0i\ 3\0\0\0g\0\0\0\0\0@j@iÐ\0\0\0\0\0\0i\ 2\0\0\0(\10\0\0\0R\ 4\0\0\0R\1a\0\0\0R\e\0\0\0R  \0\0\0t\a\0\0\0setTimet\b\0\0\0getArrayt\ 5\0\0\0setIJt!\0\0\0WriteFieldUsingAlreadyWrittenMeshR\1c\0\0\0R\1d\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0R\1e\0\0\0t
32682 +\0\0\0getPointerR\1f\0\0\0(    \0\0\0R\ e\0\0\0t\b\0\0\0fileNamet\ 4\0\0\0VAL1t\ 4\0\0\0VAL2R \0\0\0R!\0\0\0t\ 2\0\0\0f3t       \0\0\0fileName2t\ 3\0\0\0tmp(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\f\0\0\0testFieldRW2P\0\0\0sX\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\ 1\10\ 1\13\ 1\19\ 1\r\ 1\13\ 1\19\ 1\r\ 2-\ 1\13\ 1\19\ 1\1c\ 1-\ 1\f\ 1\1c\ 1-\ 1\13\ 1\19\ 1\1c\ 2\f\ 1\ 6\ 1\10\ 1\13\ 1\12\ 1\19\ 1\r\ 1\13\ 1\19\ 1\r\ 1-\ 1\13\ 1\19\ 1\1c\ 1-\ 1\f\ 1\1c\ 1-\ 1\13\ 1\19\ 1\1c\ 1c\ 1\0\0\0
32683 +\0\0\0\a\0\0\0C\0\0\0sK\ 6\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0}\ 5\0t\0\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j\ 2\0\83\0\0j\ 3\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 6\0j\ 4\0d\ 6\0d\a\0d\b\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\ 6\0\83\0\0}\a\0|\ 6\0j\ 5\0\83\0\0j\a\0d   \0d      \0|\ 2\0\83\ 3\0\ 1t\b\0|\ 1\0|\ 6\0t      \0\83\ 3\0\ 1|\ 6\0j\ 4\0d
32684 +\0d\v\0d\f\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d       \0d      \0|\ 3\0\83\ 3\0\ 1t
32685 +\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 2\0\83\0\0j\ 3\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\ 4\0d\r\0d\ e\0d\ f\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0\0d      \0d\10\0|\ 2\0\14\83\ 3\0\ 1t
32686 +\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 4\0d\11\0d\12\0d\13\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d    \0d      \0d\10\0|\ 3\0\14\83\ 3\0\ 1t
32687 +\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 4\0d\14\0d\15\0d\16\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d    \0d      \0d\17\0|\ 3\0\14\83\ 3\0\ 1t
32688 +\0|\ 1\0|\ 6\0\83\ 2\0\ 1t\0\0j\v\0\83\0\0}\ 6\0|\ 6\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 6\0j\ 2\0\83\0\0j\ 3\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\ 4\0d\18\0d\a\0d\b\0\83\ 3\0\ 1t
32689 +\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 4\0d\18\0d\19\0d\1a\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\ 6\0\83\0\0}\a\0|\ 6\0j\ 5\0\83\0\0j\a\0d  \0d\10\0|\ 2\0\83\ 3\0\ 1t
32690 +\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\ 4\0d\e\0d\1c\0d\1d\0\83\ 3\0\ 1|\ 6\0j\ 5\0\83\0\0j\a\0d    \0d\10\0|\ 3\0\83\ 3\0\ 1t
32691 +\0|\ 1\0|\ 6\0\83\ 2\0\ 1t\f\0|\ 1\0|\ 5\0|\ 4\0\83\ 3\0}\b\0|\0\0j\r\0d\1e\0t\ e\0|\b\0\83\ 1\0\83\ 2\0\ 1|\0\0j\r\0d\a\0|\b\0d       \0\19d     \0\19\83\ 2\0\ 1|\0\0j\r\0d\b\0|\b\0d     \0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\r\0d\v\0|\b\0d\1f\0\19d     \0\19\83\ 2\0\ 1|\0\0j\r\0d\f\0|\b\0d\1f\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\r\0d\ e\0|\b\0\0\19\0\19\83\ 2\0\ 1|\0\0j\r\0d\ f\0|\b\0\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\r\0d\12\0|\b\0d\10\0\19\0\19\83\ 2\0\ 1|\0\0j\r\0d\13\0|\b\0d\10\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\r\0d\15\0|\b\0d\17\0\19\0\19\83\ 2\0\ 1|\0\0j\r\0d\16\0|\b\0d\17\0\19d\1f\0\19\83\ 2\0\ 1t\ f\0|\ 1\0|\ 5\0|\ 4\0\83\ 3\0}  \0|\0\0j\r\0d\10\0t\ e\0|  \0\83\ 1\0\83\ 2\0\ 1|\0\0j\r\0d\a\0|      \0d      \0\19d     \0\19\83\ 2\0\ 1|\0\0j\r\0d\b\0|        \0d      \0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\r\0d\19\0|    \0d\1f\0\19d  \0\19\83\ 2\0\ 1|\0\0j\r\0d\1a\0|        \0d\1f\0\19d\1f\0\19\83\ 2\0\ 1|\0\0j\r\0d\1c\0\0\0\19d  \0\19\83\ 2\0\ 1|\0\0j\r\0d\1d\0|        \0\0\19d\1f\0\19\83\ 2\0\ 1t\10\0|\ 1\0|\ 5\0\0|\ 4\0d\a\0d\b\0\83\ 6\0}\ 6\0|\0\0j\11\0|\ 2\0|\ 6\0j\ 5\0\83\0\0j\12\0d  \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\10\0|\ 1\0|\ 5\0d   \0|\ 4\0d\v\0d\f\0\83\ 6\0}\ 6\0|\0\0j\11\0|\ 3\0|\ 6\0j\ 5\0\83\0\0j\12\0d  \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\10\0|\ 1\0|\ 5\0d   \0|\ 4\0d\ e\0d\ f\0\83\ 6\0}\ 6\0|\0\0j\11\0d\10\0|\ 2\0\14|\ 6\0j\ 5\0\83\0\0j\12\0d      \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\10\0|\ 1\0|\ 5\0d   \0|\ 4\0d\12\0d\13\0\83\ 6\0}\ 6\0|\0\0j\11\0d\10\0|\ 3\0\14|\ 6\0j\ 5\0\83\0\0j\12\0d      \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\10\0|\ 1\0|\ 5\0d   \0|\ 4\0d\15\0d\16\0\83\ 6\0}\ 6\0|\0\0j\11\0d\17\0|\ 3\0\14|\ 6\0j\ 5\0\83\0\0j\12\0d      \0d      \0\83\ 2\0d!\0\83\ 3\0\ 1t\13\0|\ 1\0|\ 5\0d   \0|\ 4\0d\a\0d\b\0\83\ 6\0}\ 6\0|\0\0j\11\0d"\0|\ 6\0j\ 5\0\83\0\0j\12\0d  \0d\10\0\83\ 2\0d!\0\83\ 3\0\ 1t\13\0|\ 1\0|\ 5\0d        \0|\ 4\0d\19\0d\1a\0\83\ 6\0}\ 6\0|\0\0j\11\0|\ 2\0|\ 6\0j\ 5\0\83\0\0j\12\0d  \0d\10\0\83\ 2\0d!\0\83\ 3\0\ 1t\13\0|\ 1\0|\ 5\0d        \0|\ 4\0d\1c\0d\1d\0\83\ 6\0}\ 6\0|\0\0j\11\0|\ 3\0|\ 6\0j\ 5\0\83\0\0j\12\0d  \0d\10\0\83\ 2\0d!\0\83\ 3\0\ 1d\0\0S(#\0\0\0Ns\f\0\0\0Pyfile11.medgºOLæÖ\1cÈ@g\0p\1c!6+pÂt\ 6\0\0\0AFieldt\ 6\0\0\0AMesh1g\0\0\0\0\0\0$@i\b\0\0\0i        \0\0\0i\0\0\0\0gHáz\14®G$@i\12\0\0\0i\13\0\0\0g\9a\99\99\99\99\19%@i\1c\0\0\0i\1d\0\0\0i\ 3\0\0\0gR¸\1e\85ëQ%@i&\0\0\0i'\0\0\0g
32692 +×£p=\8a%@i0\0\0\0i1\0\0\0i\ 4\0\0\0g\0\0\0\0\0\80[@il\0\0\0im\0\0\0g\0\0\0\0\0@j@iÐ\0\0\0\0\0\0i\ 5\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\r\0\0\0g\0\0\0\0\0ÀQ@(\14\0\0\0R\ 4\0\0\0R\1a\0\0\0R\1d\0\0\0t\a\0\0\0setNameR#\0\0\0R$\0\0\0R'\0\0\0R%\0\0\0R\e\0\0\0R    \0\0\0R&\0\0\0R\1e\0\0\0t\16\0\0\0GetCellFieldIterationst\v\0\0\0assertEqualt\ 3\0\0\0lent\16\0\0\0GetNodeFieldIterationsR\1c\0\0\0t\11\0\0\0assertAlmostEqualt\ 5\0\0\0getIJR\1f\0\0\0(
32693 +\0\0\0R\ e\0\0\0R(\0\0\0R)\0\0\0R*\0\0\0t\ 5\0\0\0name1t\ 5\0\0\0name3R \0\0\0R-\0\0\0t\ 3\0\0\0it1t\ 3\0\0\0it3(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\f\0\0\0testFieldRW3\83\0\0\0s\94\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\ 1\13\ 1\r\ 1\13\ 1\12\ 1\19\ 1\10\ 1\13\ 1\19\ 1\r\ 1\13\ 1\13\ 1\1d\ 1\r\ 1\13\ 1\1d\ 1\r\ 1\13\ 1\1d\ 1\r\ 2\f\ 1\r\ 1\13\ 1\13\ 1\r\ 1\13\ 1\12\ 1\19\ 1\r\ 1\13\ 1\19\ 1\r\ 2\12\ 1\16\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 1\12\ 1\16\ 1\18\0\18\ 1\18\0\18\ 1\18\0\18\ 3\e\ 1%\ 1\e\ 1%\ 1\e\ 1)\ 1\e\ 1)\ 1\e\ 1)\ 2\e\ 1%\ 1\e\ 1%\ 1\e\ 1%\ 1c\ 1\0\0\0\14\0\0\0\12\0\0\0C\0\0\0s;\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 5\0}\ 3\0|\ 2\0j\ 2\0|\ 3\0t\ 3\0\83\ 2\0}\ 4\0|\ 4\0j\ 4\0d\a\0\83\ 1\0\ 1d\b\0d\ 4\0d\ 5\0d    \0g\ 4\0}\ 5\0|\ 2\0j\ 2\0|\ 5\0t\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 4\0d
32694 +\0\83\ 1\0\ 1t\ 5\0j\ 6\0\83\0\0}\a\0|\a\0j\ 4\0d\v\0\83\ 1\0\ 1|\a\0j\a\0d\b\0\83\ 1\0\ 1|\a\0j\b\0d\ 2\0\83\ 1\0\ 1d\f\0d\r\0d\ 2\0d\b\0g\ 4\0}\b\0|\a\0\0t
32695 +\0d\ 4\0|\b\0d\f\0d\ 4\0!\83\ 3\0\ 1|\a\0j\v\0\83\0\0\ 1|\a\0j\f\0|\ 2\0j\r\0\83\0\0\83\ 1\0\ 1|\ 2\0|\ 4\0|\ 6\0|\a\0g\ 4\0}        \0d\ e\0}
32696 +\0t\ e\0|\ 1\0|
32697 +\0|     \0t\ f\0\83\ 4\0\ 1t\10\0|\ 1\0|
32698 +\0\83\ 2\0}\v\0|\ 2\0j\ 4\0|
32699 +\0\83\ 1\0\ 1d\f\0d\ 2\0d\ 3\0d\b\0d\ 4\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\r\0d\15\0d\ 5\0d       \0d\ 6\0d\16\0d\17\0g\12\0}\f\0|\v\0j\ 2\0|\f\0t\ 3\0\83\ 2\0}\r\0|\r\0j\ 4\0|
32700 +\0\83\ 1\0\ 1|\0\0j\11\0|\r\0j\12\0|\ 2\0d\18\0\83\ 2\0\83\ 1\0\ 1t\13\0|\ 1\0|
32701 +\0\83\ 2\0}\ e\0|\0\0j\14\0d\ 4\0t\15\0|\ e\0\83\ 1\0\83\ 2\0\ 1|\ e\0j\16\0d\a\0\83\ 1\0\ 1|\ e\0j\16\0d
32702 +\0\83\ 1\0\ 1|\ e\0j\16\0d\v\0\83\ 1\0\ 1|\ e\0j\16\0d\19\0\83\ 1\0\ 1d\a\0g\ 1\0}\ f\0t\17\0|\ 1\0|
32703 +\0d\f\0|\ f\0\83\ 4\0}\10\0|\0\0j\11\0|\10\0j\12\0|\ 4\0d\18\0\83\ 2\0\83\ 1\0\ 1d
32704 +\0g\ 1\0}\ f\0t\17\0|\ 1\0|
32705 +\0d\f\0|\ f\0\83\ 4\0}\11\0|\0\0j\11\0|\11\0j\12\0|\ 6\0d\18\0\83\ 2\0\83\ 1\0\ 1d\v\0g\ 1\0}\ f\0t\17\0|\ 1\0|
32706 +\0d\f\0|\ f\0\83\ 4\0}\12\0|\0\0j\11\0|\12\0j\12\0|\a\0d\18\0\83\ 2\0\83\ 1\0\ 1d\19\0g\ 1\0}\ f\0t\17\0|\ 1\0|
32707 +\0d\f\0|\ f\0\83\ 4\0}\13\0|\ 2\0j\ 4\0d\19\0\83\ 1\0\ 1|\0\0j\11\0|\13\0j\12\0|\ 2\0d\18\0\83\ 2\0\83\ 1\0\ 1d\1a\0d\e\0g\ 2\0}\ f\0t\18\0|\ 1\0|
32708 +\0d\f\0|\ f\0\83\ 4\0}\10\0|\10\0j\ 4\0d\a\0\83\ 1\0\ 1|\0\0j\11\0|\10\0j\12\0|\ 4\0d\18\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\1c\0\0\0Ns\f\0\0\0Pyfile10.medi\ 1\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\r\0\0\0i\ f\0\0\0t\ 5\0\0\0mesh2i\ 3\0\0\0i\ e\0\0\0t\ 5\0\0\0mesh3t\ 5\0\0\0mesh4i\0\0\0\0i\v\0\0\0t\ 6\0\0\03DTotoi\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i      \0\0\0i
32709 +\0\0\0i\f\0\0\0i\10\0\0\0i\11\0\0\0g\11ê-\81\99\97q=t\b\0\0\03DMesh_1s      \0\0\0Family_-5s   \0\0\0Family_-3(\19\0\0\0R\ 4\0\0\0R\18\0\0\0t\11\0\0\0buildPartOfMySelft\ 4\0\0\0TrueR1\0\0\0t\10\0\0\0MEDCouplingUMesht\ 3\0\0\0Newt\10\0\0\0setMeshDimensiont\r\0\0\0allocateCellst\ e\0\0\0insertNextCellt\v\0\0\0NORM_TETRA4t\14\0\0\0finishInsertingCellst        \0\0\0setCoordst   \0\0\0getCoordst\18\0\0\0WriteUMeshesPartitionDepR      \0\0\0R
32710 +\0\0\0R\f\0\0\0R\r\0\0\0t\12\0\0\0GetMeshGroupsNamesR3\0\0\0R4\0\0\0t\ 5\0\0\0indext\13\0\0\0ReadUMeshFromGroupst\15\0\0\0ReadUMeshFromFamilies(\14\0\0\0R\ e\0\0\0R(\0\0\0t\ 5\0\0\0mesh1t\ 5\0\0\0part1R=\0\0\0t\ 5\0\0\0part2R>\0\0\0R?\0\0\0t\ 4\0\0\0connt\ 6\0\0\0meshest\ 5\0\0\0mnanet\ 5\0\0\0mesh5t\ 5\0\0\0part3t\ 5\0\0\0mesh6t\ 4\0\0\0grpst\ 3\0\0\0vect\a\0\0\0mesh2_2t\a\0\0\0mesh3_2t\a\0\0\0mesh4_2t\a\0\0\0mesh1_2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\10\0\0\0testMultiMeshRW1Ì\0\0\0sb\0\0\0\0\ 1\ 6\ 1\f\ 1\15\ 1\12\ 1\r\ 1\12\ 1\12\ 1\r\ 1\f\ 1\r\ 1\r\ 1\r\ 1\12\ 1\1a\ 1
32711 +\ 1\13\ 1\12\ 1\ 6\ 1\13\ 2\ f\ 1\r\ 1<\ 1\12\ 1\r\ 1\19\ 1\ f\ 1\16\ 1\r\ 1\r\ 1\r\ 1\r\ 2      \ 1\15\ 1\19\ 1   \ 1\15\ 1\19\ 1   \ 1\15\ 1\19\ 1   \ 1\15\ 1\r\ 1\19\ 2\f\ 1\15\ 1\r\ 1\19\ 1c\ 1\0\0\0\ 5\0\0\0\ 6\0\0\0C\0\0\0s\89\0\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0}\ 3\0|\ 2\0j\ 2\0|\ 3\0t\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0\ 1t\ 5\0|\ 1\0|\ 2\0t\ 3\0\83\ 3\0\ 1t\ 6\0|\ 1\0|\ 2\0j\a\0\83\0\0d\ 5\0\83\ 3\0}\ 4\0|\0\0j\b\0|\ 2\0j     \0|\ 4\0d\b\0\83\ 2\0\83\ 1\0\ 1d\0\0S(     \0\0\0Ns\f\0\0\0Pyfile15.medi\ 2\0\0\0i\ 5\0\0\0i\ 1\0\0\0i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0g\11ê-\81\99\97q=(
32712 +\0\0\0R\ 4\0\0\0R\16\0\0\0t\r\0\0\0renumberCellsR       \0\0\0R\a\0\0\0R\b\0\0\0R
32713 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0(\ 5\0\0\0R\ e\0\0\0R(\0\0\0R\ f\0\0\0t        \0\0\0renumber1R\10\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\17\0\0\0testMesh3DSurfShuffleRW\ 2\ 1\0\0s\12\0\0\0\0\ 1\ 6\ 1\f\ 1\18\ 1\10\ 1
32714 +\ 1\10\ 1\18\ 1\19\ 1c\ 1\0\0\0\f\0\0\0\14\0\0\0C\0\0\0sD\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\0\0j\ 2\0d\ 2\0|\ 2\0j\ 3\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d\ 3\0|\ 2\0j\ 4\0\83\0\0\83\ 2\0\ 1d\ 4\0d\ 5\0d\ 6\0g\ 3\0}\ 3\0|\ 2\0j\ 5\0|\ 3\0\83\ 1\0\ 1d\ 4\0d\a\0d\b\0d      \0d
32715 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\ 5\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\ 6\0d\17\0g\14\0}\ 4\0|\ 2\0j\ 6\0|\ 4\0t\a\0\83\ 2\0\ 1|\ 2\0j\b\0\83\0\0\ 1t        \0|\ 1\0|\ 2\0t\a\0\83\ 3\0\ 1|\ 2\0j
32716 +\0t\a\0\83\ 1\0}\ 5\0|\ 5\0j\v\0t\f\0t\a\0\83\ 2\0}\ 6\0|\ 6\0j\r\0d\18\0d\ 4\0d\b\0\83\ 3\0\ 1|\ 6\0j\ e\0t\ f\0\83\ 1\0}\a\0t\10\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\11\0d\19\0\83\ 1\0\ 1|\ 6\0j\r\0d\1a\0d\a\0d\ 5\0\83\ 3\0\ 1|\ 6\0j\ e\0t\ f\0\83\ 1\0}\b\0t\10\0|\ 1\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\11\0d\e\0\83\ 1\0\ 1|\ 6\0j\r\0d\1c\0d\11\0d\ 6\0\83\ 3\0\ 1|\ 6\0j\ e\0t\ f\0\83\ 1\0}   \0t\10\0|\ 1\0|\ 6\0\83\ 2\0\ 1d\1e\0d\1f\0\0g\ 3\0}
32717 +\0t\12\0t\13\0|\ 1\0|\a\0j\14\0\83\0\0j\15\0\83\0\0d\ f\0|\a\0j\15\0\83\0\0|
32718 +\0\83\ 6\0}\v\0|\0\0j\ 2\0d\a\0t\16\0|\v\0\83\ 1\0\83\ 2\0\ 1|\0\0j\17\0|\v\0d\ f\0\19j\18\0|\a\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1|\0\0j\17\0|\v\0d\ 4\0\19j\18\0|\b\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1|\0\0j\17\0|\v\0d\b\0\19j\18\0\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1d\0\0S(!\0\0\0Ns\f\0\0\0Pyfile17.medi\14\0\0\0i-\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\b\0\0\0i      \0\0\0i\f\0\0\0i\r\0\0\0i\10\0\0\0i\13\0\0\0i\0\0\0\0i\a\0\0\0i\ 5\0\0\0i\ f\0\0\0i\ e\0\0\0i\11\0\0\0i
32719 +\0\0\0i\12\0\0\0i\v\0\0\0g\0\0\0\0\0\0\0\0s\ 3\0\0\02*xg{\14®Gáz\84?s\ 5\0\0\02*x/3g{\14®Gáz\94?g\11ê-\81\99\97q=(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0(\19\0\0\0R\ 4\0\0\0t\r\0\0\0build3DMesh_2R3\0\0\0t\10\0\0\0getNumberOfCellst\10\0\0\0getNumberOfNodest\12\0\0\0convertToPolyTypesRb\0\0\0R       \0\0\0t\1a\0\0\0orientCorrectlyPolyhedronsR\b\0\0\0t\ f\0\0\0getMeasureFieldt\18\0\0\0buildNewTimeReprFromThist\b\0\0\0ONE_TIMER#\0\0\0t\r\0\0\0cloneWithMeshRC\0\0\0R&\0\0\0\0\0\0applyFunct\14\0\0\0ReadFieldsOnSameMesht\b\0\0\0ON_CELLSR\1d\0\0\0R\v\0\0\0R4\0\0\0R\f\0\0\0R\r\0\0\0(\f\0\0\0R\ e\0\0\0R(\0\0\0t\ 1\0\0\0mt\ 5\0\0\0polyst\ 5\0\0\0renumt\ 5\0\0\0f1TmpR \0\0\0t\ 3\0\0\0f_1t\ 3\0\0\0f_2t\ 3\0\0\0f_3t\ 3\0\0\0itst\ 2\0\0\0fs(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\18\0\0\0testMultiFieldShuffleRW1\r\ 1\0\0s<\0\0\0\0\ 1\ 6\ 1\f\ 1\16\ 1\16\ 1\ f\ 1\r\ 1B\ 1\10\ 1
32720 +\ 2\10\ 1\ f\ 1\12\ 1\13\ 1\ f\ 1\r\ 1\r\ 1\13\ 1\ f\ 1\r\ 1\r\ 1\13\ 1\ f\ 1\r\ 2\ f\ 1-\ 1\16\ 1 \ 1 \ 1 \ 1c\ 1\0\0\0\10\0\0\0
32721 +\0\0\0C\0\0\0sh\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 2\0d\ 3\0g\ 3\0}\ 3\0d\ 2\0d\ 2\0d\ 4\0g\ 3\0}\ 4\0|\ 2\0j\ 2\0|\ 3\0|\ 4\0d\ 5\0\83\ 3\0}\ 5\0|\ 2\0j\ 3\0|\ 5\0t\ 4\0\83\ 2\0}\ 6\0d\ 6\0d\a\0d\b\0d  \0d
32722 +\0g\ 5\0}\a\0|\ 6\0j\ 5\0|\a\0t\ 6\0\83\ 2\0\ 1|\ 6\0j\a\0d\v\0\83\ 1\0\ 1|\ 6\0|\ 2\0g\ 2\0}\b\0t\b\0|\ 1\0|\b\0t\ 6\0\83\ 3\0\ 1t      \0|\ 1\0|\ 6\0j
32723 +\0\83\0\0d\b\0\83\ 3\0}    \0|\0\0j\v\0|        \0j\f\0|\ 2\0d\ 5\0\83\ 2\0\f\83\ 1\0\ 1|     \0j\a\0|\ 2\0j
32724 +\0\83\0\0\83\ 1\0\ 1|\0\0j\v\0|        \0j\f\0|\ 2\0d\ 5\0\83\ 2\0\83\ 1\0\ 1t      \0|\ 1\0|\ 6\0j
32725 +\0\83\0\0d\f\0\83\ 3\0}
32726 +\0|\0\0j\v\0|
32727 +\0j\f\0|\ 6\0d\ 5\0\83\ 2\0\83\ 1\0\ 1t\r\0j\ e\0t\ f\0t\10\0\83\ 2\0}\v\0|\v\0j\a\0d\r\0\83\ 1\0\ 1|\v\0j\11\0|\ 6\0\83\ 1\0\ 1t\12\0j\ e\0\83\0\0}\f\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0g
32728 +\0}\r\0|\f\0j\13\0|\r\0|\ 6\0j\14\0\83\0\0d\a\0\83\ 3\0\ 1|\f\0j\15\0d\b\0d\18\0\83\ 2\0\ 1|\f\0j\15\0d\ 6\0d\19\0\83\ 2\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|\f\0j\13\0|\r\0|\ 6\0j\14\0\83\0\0d\a\0\83\ 3\0}\ e\0|\v\0j\17\0d\1a\0d\a\0d\e\0\83\ 3\0\ 1|\v\0j\18\0\83\0\0\ 1t\19\0|\ 1\0|\v\0\83\ 2\0\ 1t\1a\0|\ 1\0|\v\0j\e\0\83\0\0j
32729 +\0\83\0\0d\f\0|\v\0j
32730 +\0\83\0\0d\a\0d\e\0\83\ 6\0}\ f\0|\0\0j\v\0|\ f\0j\f\0|\v\0d\ 5\0d\ 5\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\1c\0\0\0Ns\f\0\0\0Pyfile18.medg\0\0\0\0\0\0\0\0g333333Ó¿g\0\0\0\0\0\0ð?g\11ê-\81\99\97q=i\ 1\0\0\0i\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0i\ 3\0\0\0t\12\0\0\0ExampleOfMultiDimWiÿÿÿÿt\13\0\0\0FieldOnFacesShuffleg\0\0\0\0\0ÀQ@g\0\0\0\0\0`e@g\0\0\0\0\0\0$@g\0\0\0\0\0\80[@g\0\0\0\0\0\04@g\0\0\0\0\0\0^@g\0\0\0\0\0\0>@g\0\0\0\0\0@`@g\0\0\0\0\0\0D@g\0\0\0\0\0\80a@s    \0\0\0plkj [mm]s\v\0\0\0pqqqss [mm]g\1f\85ëQ¸\1e     @i\a\0\0\0(\1c\0\0\0R\ 4\0\0\0Re\0\0\0t\10\0\0\0findNodesOnPlanet\19\0\0\0buildFacePartOfMySelfNodeRC\0\0\0Rb\0\0\0R     \0\0\0R1\0\0\0t\f\0\0\0WriteUMeshesR
32731 +\0\0\0R\v\0\0\0R\f\0\0\0R\r\0\0\0t\16\0\0\0MEDCouplingFieldDoubleRE\0\0\0Rp\0\0\0Rl\0\0\0t\a\0\0\0setMesht\ f\0\0\0DataArrayDoublet  \0\0\0setValuesRf\0\0\0t\12\0\0\0setInfoOnComponentt\b\0\0\0setArrayR#\0\0\0R\a\0\0\0R&\0\0\0R\1c\0\0\0R\1d\0\0\0(\10\0\0\0R\ e\0\0\0R(\0\0\0t\ 3\0\0\0m3dt\ 2\0\0\0ptR\\0\0\0t\ 5\0\0\0nodest\ 3\0\0\0m2dt\b\0\0\0renumberRV\0\0\0t\a\0\0\0m3d_bist\a\0\0\0m2d_bisR \0\0\0t\ 5\0\0\0arrayt\ 4\0\0\0arr1R-\0\0\0R!\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\13\0\0\0testWriteUMeshesRW1/\ 1\0\0sB\0\0\0\0\ 1\ 6\ 1\f\ 1\ f\ 1\ f\ 1\15\ 1\12\ 1\15\ 1\10\ 1\r\ 1\f\ 1\10\ 1\18\ 1\1a\ 1\13\ 1\19\ 1\18\ 1\19\ 2\12\ 1\r\ 1\r\ 1\f\ 1$\ 1\19\ 1\10\ 1\10\ 1\r\ 1\e\ 1\13\ 1
32732 +\ 1\r\ 1-\ 1\1c\ 1(\ e\0\0\0t\b\0\0\0__name__t
32733 +\0\0\0__module__R\11\0\0\0R\13\0\0\0R\15\0\0\0R\17\0\0\0R\19\0\0\0R"\0\0\0R.\0\0\0R<\0\0\0Ra\0\0\0Rd\0\0\0Rz\0\0\0R\8f\0\0\0(\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyR\ 5\0\0\0\e\0\0\0s\1a\0\0\0\ 6\ 1       \b       \b       \b       \b       \b       \f       3       I       6       \v       "       #t\b\0\0\0__main__(\v\0\0\0t    \0\0\0MEDLoadert\b\0\0\0unittestt\ 4\0\0\0mathR\ 1\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0t\b\0\0\0TestCaseR\ 5\0\0\0R\90\0\0\0t\ 4\0\0\0main(\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest2.pyt\b\0\0\0<module>\16\0\0\0s\ e\0\0\0
32734 +\ 1\f\ 1\1c\ 1\10\ 2\19ÿ\0:\f\ 1
32735 \ Pas de fin de ligne à la fin du fichier
32736 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest3.py MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest3.py
32737 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest3.py        2018-04-19 17:04:36.767223321 +0200
32738 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest3.py        2018-04-19 17:25:17.795798503 +0200
32739 @@ -32,6 +32,36 @@
32740  else:
32741      import pickle
32742  
32743 +class StdOutRedirect(object):
32744 +    def __init__(self,fileName):
32745 +        import os,sys
32746 +        sys.stderr.flush()
32747 +        self.stdoutOld=os.dup(2)
32748 +        self.fdOfSinkFile=os.open(fileName,os.O_CREAT | os.O_RDWR)
32749 +        fd2=os.dup2(self.fdOfSinkFile,2)
32750 +        self.origPyVal=sys.stderr
32751 +        class FlushFile(object):
32752 +            def __init__(self,f):
32753 +                self.f=f
32754 +            def write(self,st):
32755 +                self.f.write(st)
32756 +                self.f.flush()
32757 +            def flush(self):
32758 +                return self.f.flush()
32759 +            def isatty(self):
32760 +                return self.f.isatty()
32761 +            def close(self):
32762 +                os.fsync(self.f)
32763 +                self.f.close();
32764 +        sys.stderr=FlushFile(os.fdopen(self.fdOfSinkFile,"w"))
32765 +    def __del__(self):
32766 +        import os,sys
32767 +        sys.stderr.close()
32768 +        sys.stderr=self.origPyVal
32769 +        os.fsync(2)
32770 +        os.dup2(self.stdoutOld,2)
32771 +        os.close(self.stdoutOld)
32772 +
32773  class MEDLoaderTest3(unittest.TestCase):
32774      def testMEDMesh1(self):
32775          fileName="Pyfile18.med"
32776 @@ -546,6 +576,10 @@
32777          ff1.setTime(3,4,2.3)
32778          itt,orr,ti=ff1.getTime()
32779          self.assertEqual(3,itt); self.assertEqual(4,orr); self.assertAlmostEqual(2.3,ti,14);
32780 +        f1.setTime(5.5,7,8)
32781 +        ff1.copyTimeInfoFrom(f1)
32782 +        itt,orr,ti=ff1.getTime()
32783 +        self.assertEqual(7,itt); self.assertEqual(8,orr); self.assertAlmostEqual(5.5,ti,14);
32784          da,infos=ff1.getUndergroundDataArrayExt()
32785          f2.getArray().setName(da.getName())#da has the same name than f2
32786          self.assertTrue(da.isEqual(f2.getArray(),1e-12))
32787 @@ -878,7 +912,7 @@
32788          pass
32789      # Tricky test of the case of in a MED file containing a Field on GAUSS_NE is lying on a profile that is reality represents all the geom entities of a level.
32790      # By default when using setFieldProfile method such profile is not created because it is not useful ! So here a trick is used to force MEDLoader to do that
32791 -    # for the necessity of the test ! The idea is too create artificially a mesh having one more fictious cell per type and to roll back right after !
32792 +    # for the necessity of the test ! The idea is too create artificially a mesh having one more fictitious cell per type and to roll back right after !
32793      def testMEDField15(self):
32794          fname="Pyfile36.med"
32795          m0=MEDLoaderDataForTest.build2DMesh_1()
32796 @@ -1381,7 +1415,7 @@
32797          mm.write(fname,2)   
32798  
32799      def testBuildInnerBoundaryAlongM1Group4(self):
32800 -        """ Test case where cells touch the M1 group on some nodes only and not on full egdes (triangle mesh for ex)
32801 +        """ Test case where cells touch the M1 group on some nodes only and not on full edges (triangle mesh for ex)
32802          """
32803          coo = DataArrayDouble([0.,0., 1.,0., 2.,0., 3.,0.,
32804                                 0.,1., 1.,1., 2.,1., 3.,1.,
32805 @@ -2027,8 +2061,16 @@
32806          mm.setFamiliesOnGroup("grp0",["MyOtherFam"])
32807          mm.setFamiliesOnGroup("grpA",["MyOther-1"])
32808          #
32809 +        self.assertTrue(mm.getNodeFamiliesArr(["MyFam","MyOtherFam"]).isEqual(DataArrayInt([1,3,4,12]))) # find family id 2 and 3 into famCoo
32810 +        #
32811          daTest=DataArrayInt([1,3,4,6,9,10,12]) ; daTest.setName("grp1")
32812          mm.addNodeGroup(daTest)
32813 +        self.assertTrue(mm.getNodeGroupArr(daTest.getName()).isEqual(daTest)) # the node group has been pushed right before -> now read it
32814 +        self.assertTrue(mm.getNodeGroupsArr(["grp1","grpA"]).isEqual(DataArrayInt([1,3,4,6,9,10,11,12])))#daTest+[11] because 11 is the rank of -1 (MyOther-1) in famCoo
32815 +        #
32816 +        expect1=DataArrayInt([1,4]) ; expect1.setName("MyFam")
32817 +        self.assertTrue(mm.getNodeFamilyArr(expect1.getName()).isEqual(expect1))
32818 +        #
32819          self.assertTrue(mm.getGroupArr(1,daTest.getName()).isEqual(daTest))
32820          self.assertTrue(mm.getFamilyFieldAtLevel(1).isEqual(DataArrayInt([6,2,6,8,2,6,5,6,6,7,7,4,8])))
32821          for lev,arr in [(0,da0),(-1,da1),(-2,da2)]:
32822 @@ -2596,31 +2638,34 @@
32823          ff1.setFieldNoProfileSBT(f1)
32824          a=ff1.getFieldOnMeshAtLevel(0,ON_CELLS,mm1)
32825          self.assertEqual(a.getArray().getInfoOnComponents(),['power [MW/m^3]','density [g/cm^3]','temperature [K]'])
32826 -        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
32827 +        self.assertTrue(a.isEqual(f1,1e-12,0))
32828          ff1.write(fname,0)
32829 +        a,b=ff1.getUndergroundDataArrayExt()
32830 +        self.assertEqual(a.getHiddenCppPointer(),ff1.getUndergroundDataArray().getHiddenCppPointer())
32831 +        self.assertEqual(b,[((3,0),(0,2)),((4,0),(2,4)),((6,0),(4,5)),((5,0),(5,6))])
32832          ff2=MEDFileAnyTypeField1TS.New(fname)
32833          self.assertEqual(ff2.getName(),"VectorFieldOnCells")
32834          self.assertEqual(ff2.getTime(),[0,1,2.0])
32835          self.assertTrue(isinstance(ff2,MEDFileIntField1TS))
32836          a=ff1.getFieldOnMeshAtLevel(ON_CELLS,0,mm1)
32837          self.assertEqual(a.getArray().getInfoOnComponents(),['power [MW/m^3]','density [g/cm^3]','temperature [K]'])
32838 -        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
32839 +        self.assertTrue(a.isEqual(f1,1e-12,0))
32840          ff2.setTime(1,2,3.)
32841          c=ff2.getUndergroundDataArray() ; c*=2
32842 -        ff2.write(fname,0) # 2 time steps in 
32843 +        ff2.write(fname,0) # 2 time steps in
32844          ffs1=MEDFileAnyTypeFieldMultiTS.New(fname,"VectorFieldOnCells")
32845          self.assertEqual(ffs1.getTimeSteps(),[(0, 1, 2.0), (1, 2, 3.0)])
32846          self.assertEqual(len(ffs1),2)
32847          self.assertTrue(isinstance(ffs1,MEDFileIntFieldMultiTS))
32848          a=ffs1[2.].getFieldOnMeshAtLevel(ON_CELLS,0,mm1)
32849 -        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
32850 +        self.assertTrue(a.isEqual(f1,1e-12,0))
32851          a=ffs1.getFieldOnMeshAtLevel(ON_CELLS,0,1,0,mm1)
32852 -        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
32853 +        self.assertTrue(a.isEqual(f1,1e-12,0))
32854          it=ffs1.__iter__() ; it.next() ; ff2bis=it.next()
32855          a=ff2bis.getFieldOnMeshAtLevel(0,ON_CELLS,mm1)
32856          self.assertTrue(a.getArray().isEqual(2*f1.getArray()))
32857          f1.setTime(3.,1,2) ; f1.getArray()[:]*=2
32858 -        self.assertTrue(a.isEqual(f1,1e-12,1e-12)) ; f1.getArray()[:]/=2
32859 +        self.assertTrue(a.isEqual(f1,1e-12,0)) ; f1.getArray()[:]/=2
32860          bc=DataArrayInt(6,3) ; bc[:]=0 ; bc.setInfoOnComponents(['power [MW/m^3]','density [g/cm^3]','temperature [K]'])
32861          for it in ffs1:
32862              a=it.getFieldOnMeshAtLevel(ON_CELLS,0,mm1)
32863 @@ -3708,7 +3753,7 @@
32864          pass
32865  
32866      def testMEDFileUMeshSetName(self):
32867 -        """ This test is a small but important one for MEDReader in sauv mode. When .sauv file is loaded the convertion is performed in memory and a preparation is done then.
32868 +        """ This test is a small but important one for MEDReader in sauv mode. When .sauv file is loaded the conversion is performed in memory and a preparation is done then.
32869          This preparation makes access to internal MEDCouplingMesh pointers whose name must be updated.
32870          """
32871          fname="Pyfile79.med"
32872 @@ -4523,8 +4568,7 @@
32873              grpExp=grp+delta ; grpExp.setName("%s_node"%grp.getName())
32874              self.assertTrue(mm.getGroupArr(1,"%s_node"%grp.getName()).isEqual(grpExp))
32875          pass
32876 -
32877 -    pass
32878 +    
32879      def testMEDFileJoint1(self):
32880          fileName="Pyfile92.med"
32881          coo=DataArrayDouble([(0,0,0),(1,0,0),(2,0,0)])
32882 @@ -4562,8 +4606,8 @@
32883          self.assertRaises( InterpKernelException, jointsR.getJointAtPos,1)
32884          self.assertRaises( InterpKernelException, jointsR.destroyJointAtPos,1)
32885          jointsR.destroyJointAtPos(0)
32886 -        
32887 -    pass
32888 +        pass
32889 +    
32890      def testMEDFileJoint2(self):
32891          fileNameWr="Pyfile93.med"
32892          coo=DataArrayDouble([(0,0,0),(1,0,0),(2,0,0)])
32893 @@ -4656,35 +4700,7 @@
32894          """ EDF11242 : check status of MED file calls to detect problems immediately. Sorry this test generates awful messages !"""
32895          fname="Pyfile94.med"
32896          errfname="Pyfile94.err"
32897 -        class StdOutRedirect(object):
32898 -            def __init__(self,fileName):
32899 -                import os,sys
32900 -                sys.stderr.flush()
32901 -                self.stdoutOld=os.dup(2)
32902 -                self.fdOfSinkFile=os.open(fileName,os.O_CREAT | os.O_RDWR)
32903 -                fd2=os.dup2(self.fdOfSinkFile,2)
32904 -                self.origPyVal=sys.stderr
32905 -                class FlushFile(object):
32906 -                    def __init__(self,f):
32907 -                        self.f=f
32908 -                    def write(self,st):
32909 -                        self.f.write(st)
32910 -                        self.f.flush()
32911 -                    def flush(self):
32912 -                        return self.f.flush()
32913 -                    def isatty(self):
32914 -                        return self.f.isatty()
32915 -                sys.stderr=FlushFile(os.fdopen(self.fdOfSinkFile,"w"))
32916 -            def __del__(self):
32917 -                import os,sys
32918 -                sys.stderr=self.origPyVal
32919 -                if sys.version_info.major >= 3:
32920 -                    self.fdOfSinkFile.close()
32921 -                    pass
32922 -                #os.fsync(self.fdOfSinkFile)
32923 -                os.fsync(2)
32924 -                os.dup2(self.stdoutOld,2)
32925 -                os.close(self.stdoutOld)
32926 +        
32927          import os
32928          # first clean file if needed
32929          if os.path.exists(fname):
32930 @@ -4855,7 +4871,7 @@
32931        self.assertEqual(mm.getFamiliesIdsOnGroup("RID"),(-4,3))
32932        mm.write(fileName,2)
32933        # now read such funny file !
32934 -      mm2=MEDFileMesh.New(fileName) # <- normaly mdump of Pyfile98.med must contain only RID and FAMILLE_ZERO families.
32935 +      mm2=MEDFileMesh.New(fileName) # <- normally mdump of Pyfile98.med must contain only RID and FAMILLE_ZERO families.
32936        self.assertTrue(mm.isEqual(mm2,1e-16))
32937        self.assertEqual(mm2.getFamiliesNames(),("FAMILLE_ZERO",'RIDF!/__\\!0000','RIDF!/__\\!0001'))
32938        self.assertEqual(mm2.getFamiliesNamesWithFilePointOfView(),("FAMILLE_ZERO","RIDF","RIDF"))
32939 @@ -5230,12 +5246,12 @@
32940          mm=MEDFileMesh.New(fname)
32941          f1ts=MEDFileIntField1TS(fname,fieldName,6,7)
32942          ftst0=f1ts.field(mm)
32943 -        self.assertTrue(f0.isEqual(ftst0,1e-12,1e-12))
32944 +        self.assertTrue(f0.isEqual(ftst0,1e-12,0))
32945          f1ts=MEDFileIntField1TS(fname,fieldName,8,9)
32946          ftst1=f1ts.field(mm)
32947 -        self.assertTrue(f1.isEqual(ftst1,1e-12,1e-12))
32948 +        self.assertTrue(f1.isEqual(ftst1,1e-12,0))
32949          fmts=MEDFileIntFieldMultiTS(fname,fieldName)
32950 -        self.assertTrue(f1.isEqual(fmts.field(8,9,mm),1e-12,1e-12))
32951 +        self.assertTrue(f1.isEqual(fmts.field(8,9,mm),1e-12,0))
32952          ## Basic test on nodes on top level
32953          f2=MEDCouplingFieldInt(ON_NODES) ; arr2=DataArrayInt([200,201,202]) ; arr2.setInfoOnComponent(0,"tutu") ; f2.setArray(arr2) ; f2.setMesh(m) ; f2.setTime(22.,23,24)
32954          f2.setName(fieldName)
32955 @@ -5244,9 +5260,9 @@
32956          #
32957          mm=MEDFileMesh.New(fname)
32958          f1ts=MEDFileIntField1TS(fname,fieldName,23,24)
32959 -        self.assertTrue(f2.isEqual(f1ts.field(mm),1e-12,1e-12))
32960 +        self.assertTrue(f2.isEqual(f1ts.field(mm),1e-12,0))
32961          fmts=MEDFileIntFieldMultiTS(fname,fieldName)
32962 -        self.assertTrue(f2.isEqual(fmts.field(23,24,mm),1e-12,1e-12))
32963 +        self.assertTrue(f2.isEqual(fmts.field(23,24,mm),1e-12,0))
32964          ## Node on elements
32965          f3=MEDCouplingFieldInt(ON_GAUSS_NE) ; f3.setMesh(m) ; arr3=DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]) ; f3.setArray(arr3) ; f3.setTime(0.5,2,3)
32966          f3.setName(fieldName) ; f3.checkConsistencyLight()
32967 @@ -5254,7 +5270,7 @@
32968          #
32969          mm=MEDFileMesh.New(fname)
32970          f1ts=MEDFileIntField1TS(fname,fieldName,2,3)
32971 -        self.assertTrue(f3.isEqual(f1ts.field(mm),1e-12,1e-12))
32972 +        self.assertTrue(f3.isEqual(f1ts.field(mm),1e-12,0))
32973          ## Gauss
32974          f4=MEDCouplingFieldInt(ON_GAUSS_PT) ; f4.setMesh(m) ; f4.setName(fieldName)
32975          f4.setGaussLocalizationOnType(NORM_TRI3,[0.,0.,1.,0.,1.,1.],[0.1,0.1, 0.2,0.2, 0.3,0.3, 0.4,0.4, 0.5,0.5],[0.2,0.3,0.1,0.05,0.35])
32976 @@ -5265,7 +5281,7 @@
32977          #
32978          mm=MEDFileMesh.New(fname)
32979          f1ts=MEDFileIntField1TS(fname,fieldName,4,5)
32980 -        self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,1e-12))
32981 +        self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,0))
32982          pass
32983  
32984      def testMEDFileFieldEasyField3(self):
32985 @@ -5353,7 +5369,7 @@
32986          f1ts=MEDFileIntField1TS() ; f1ts.setFieldNoProfileSBT(f1) ; f1ts.write(fname,0)
32987          #
32988          mm=MEDFileMesh.New(fname) ; f1ts=MEDFileIntField1TS(fname,fieldName,1,2)
32989 -        self.assertTrue(f1.isEqual(f1ts.field(mm),1e-12,1e-12))
32990 +        self.assertTrue(f1.isEqual(f1ts.field(mm),1e-12,0))
32991          # here f1 lying on level -1 not 0 check if "field" method detect it !
32992          f1=MEDCouplingFieldInt(ON_CELLS) ; f1.setName(fieldName) ; f1.setArray(DataArrayInt([(0,100),(1,101),(0,100),(1,101),(0,100),(1,101)]))
32993          f1.setMesh(mm[-1]) # -1 is very important
32994 @@ -5363,7 +5379,7 @@
32995          f1ts=MEDFileIntField1TS() ; f1ts.setFieldNoProfileSBT(f1) ; f1ts.write(fname,0)
32996          #
32997          mm=MEDFileMesh.New(fname) ; f1ts=MEDFileIntField1TS(fname,fieldName,3,4)
32998 -        self.assertTrue(f1.isEqual(f1ts.field(mm),1e-12,1e-12))
32999 +        self.assertTrue(f1.isEqual(f1ts.field(mm),1e-12,0))
33000          # nodes on elements
33001          f3=MEDCouplingFieldInt(ON_GAUSS_NE)
33002          f3.setMesh(mm[-1]) # this line is important
33003 @@ -5372,7 +5388,7 @@
33004          mm.write(fname,2) ; ff=MEDFileIntField1TS() ; ff.setFieldNoProfileSBT(f3) ; ff.write(fname,0)
33005          #
33006          mm=MEDFileMesh.New(fname) ; f1ts=MEDFileIntField1TS(fname,fieldName,2,3)
33007 -        self.assertTrue(f3.isEqual(f1ts.field(mm),1e-12,1e-12))
33008 +        self.assertTrue(f3.isEqual(f1ts.field(mm),1e-12,0))
33009          # gauss
33010          f4=MEDCouplingFieldInt(ON_GAUSS_PT)
33011          f4.setMesh(mm[-1]) # this line is important
33012 @@ -5383,7 +5399,7 @@
33013          f4.checkConsistencyLight()
33014          mm.write(fname,2) ; ff=MEDFileIntField1TS() ; ff.setFieldNoProfileSBT(f4) ; ff.write(fname,0)
33015          mm=MEDFileMesh.New(fname) ; f1ts=MEDFileIntField1TS(fname,fieldName,4,5)
33016 -        self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,1e-12))
33017 +        self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,0))
33018          pass
33019  
33020      def testMEDFileFieldEasyField5(self):
33021 @@ -5767,6 +5783,8 @@
33022          pass
33023      
33024      @unittest.skipUnless(LooseVersion(MEDFileVersionStr())>=LooseVersion('3.2.1'),"This test requires at least MEDFile version 3.2.1")
33025 +    @unittest.skipUnless(LooseVersion(MEDFileVersionStr())<LooseVersion('4.0.0'),
33026 +                         "This test is not compatible with MEDFile version 4.0.0 and above")
33027      def testWriteInto30(self):
33028          fname="Pyfile108.med"
33029          fname2="Pyfile109.med"
33030 @@ -5900,12 +5918,12 @@
33031          fmts5=pickle.loads(st)
33032          self.assertEqual(len(fs4[0]),len(fmts5))
33033          self.assertTrue(isinstance(fmts5,MEDFileIntFieldMultiTS))
33034 -        self.assertTrue(fmts5[0].field(ms4[0]).isEqual((fs4[0][0]).field(ms4[0]),1e-12,1e-12))
33035 +        self.assertTrue(fmts5[0].field(ms4[0]).isEqual((fs4[0][0]).field(ms4[0]),1e-12,0))
33036          # MEDFileIntField1TS
33037          st=pickle.dumps(fs4[0][0],pickle.HIGHEST_PROTOCOL)
33038          f1ts6=pickle.loads(st)
33039          self.assertTrue(isinstance(f1ts6,MEDFileIntField1TS))
33040 -        self.assertTrue(f1ts6.field(ms4[0]).isEqual((fs4[0][0]).field(ms4[0]),1e-12,1e-12))
33041 +        self.assertTrue(f1ts6.field(ms4[0]).isEqual((fs4[0][0]).field(ms4[0]),1e-12,0))
33042          # MEDFileParameters
33043          self.testParameters1()# generates Pyfile56.med
33044          params=MEDFileParameters("Pyfile56.med")
33045 @@ -5989,6 +6007,447 @@
33046          self.assertTrue(ff1.field(mm).isEqual(f3,1e-12,1e-12))
33047          pass
33048      
33049 +    def testFloat32InMEDFileFieldStar1(self):
33050 +        """Like testInt32InMEDFileFieldStar1 but with float32 :)"""
33051 +        fname="Pyfile114.med"
33052 +        f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
33053 +        f1=f1.convertToFloatField()
33054 +        m1=f1.getMesh()
33055 +        mm1=MEDFileUMesh.New()
33056 +        mm1.setCoords(m1.getCoords())
33057 +        mm1.setMeshAtLevel(0,m1)
33058 +        mm1.setName(m1.getName())
33059 +        mm1.write(fname,2)
33060 +        ff1=MEDFileFloatField1TS()
33061 +        ff1.setFieldNoProfileSBT(f1)
33062 +        a=ff1.getFieldOnMeshAtLevel(0,ON_CELLS,mm1)
33063 +        self.assertEqual(a.getArray().getInfoOnComponents(),['power [MW/m^3]','density [g/cm^3]','temperature [K]'])
33064 +        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
33065 +        ff1.write(fname,0)
33066 +        a,b=ff1.getUndergroundDataArrayExt()
33067 +        self.assertEqual(a.getHiddenCppPointer(),ff1.getUndergroundDataArray().getHiddenCppPointer())
33068 +        self.assertEqual(b,[((3,0),(0,2)),((4,0),(2,4)),((6,0),(4,5)),((5,0),(5,6))])
33069 +        ff2=MEDFileAnyTypeField1TS.New(fname)
33070 +        self.assertEqual(ff2.getName(),"VectorFieldOnCells")
33071 +        self.assertEqual(ff2.getTime(),[0,1,2.0])
33072 +        self.assertTrue(isinstance(ff2,MEDFileFloatField1TS))
33073 +        a=ff1.getFieldOnMeshAtLevel(ON_CELLS,0,mm1)
33074 +        self.assertEqual(a.getArray().getInfoOnComponents(),['power [MW/m^3]','density [g/cm^3]','temperature [K]'])
33075 +        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
33076 +        ff2.setTime(1,2,3.)
33077 +        c=ff2.getUndergroundDataArray() ; c*=2
33078 +        ff2.write(fname,0) # 2 time steps in 
33079 +        ffs1=MEDFileAnyTypeFieldMultiTS.New(fname,"VectorFieldOnCells")
33080 +        self.assertEqual(ffs1.getTimeSteps(),[(0, 1, 2.0), (1, 2, 3.0)])
33081 +        self.assertEqual(len(ffs1),2)
33082 +        self.assertTrue(isinstance(ffs1,MEDFileFloatFieldMultiTS))
33083 +        a=ffs1[2.].getFieldOnMeshAtLevel(ON_CELLS,0,mm1)
33084 +        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
33085 +        a=ffs1.getFieldOnMeshAtLevel(ON_CELLS,0,1,0,mm1)
33086 +        self.assertTrue(a.isEqual(f1,1e-12,1e-12))
33087 +        it=ffs1.__iter__() ; it.next() ; ff2bis=it.next()
33088 +        a=ff2bis.getFieldOnMeshAtLevel(0,ON_CELLS,mm1)
33089 +        self.assertTrue(a.getArray().isEqual(2*f1.getArray(),1e-7))
33090 +        f1.setTime(3.,1,2) ; f1.getArray()[:]*=2
33091 +        self.assertTrue(a.isEqual(f1,1e-12,1e-12)) ; f1.getArray()[:]/=2
33092 +        bc=DataArrayFloat(6,3) ; bc[:]=0 ; bc.setInfoOnComponents(['power [MW/m^3]','density [g/cm^3]','temperature [K]'])
33093 +        for it in ffs1:
33094 +            a=it.getFieldOnMeshAtLevel(ON_CELLS,0,mm1)
33095 +            bc+=a.getArray()
33096 +            pass
33097 +        self.assertTrue(bc.isEqual(3*f1.getArray(),1e-7))
33098 +        nf1=MEDCouplingFieldFloat(ON_NODES)
33099 +        nf1.setTime(9.,10,-1)
33100 +        nf1.setMesh(f1.getMesh())
33101 +        narr=DataArrayFloat(12,2) ; narr.setInfoOnComponents(["aa [u1]","bbbvv [ppp]"]) ; narr[:,0]=list(range(12)) ; narr[:,1]=2*narr[:,0]
33102 +        nf1.setName("VectorFieldOnNodes") ; nf1.setArray(narr)
33103 +        nff1=MEDFileFloatField1TS.New()
33104 +        nff1.setFieldNoProfileSBT(nf1)
33105 +        self.assertEqual(nff1.getInfo(),('aa [u1]','bbbvv [ppp]'))
33106 +        self.assertEqual(nff1.getTime(),[10,-1,9.0])
33107 +        nff1.write(fname,0)
33108 +        #
33109 +        nf2=MEDCouplingFieldFloat(ON_NODES)
33110 +        nf2.setTime(19.,20,-11)
33111 +        nf2.setMesh(f1.getMesh())
33112 +        narr2=DataArrayFloat(8,2) ; narr.setInfoOnComponents(["aapfl [u1]","bbbvvpfl [ppp]"]) ; narr2[:,0]=list(range(8)) ; narr2[:,0]+=10  ; narr2[:,1]=3*narr2[:,0]
33113 +        nf2.setName("VectorFieldOnNodesPfl") ; narr2.setName(nf2.getName()) ; nf2.setArray(narr2)
33114 +        nff2=MEDFileFloatField1TS.New()
33115 +        npfl=DataArrayInt([1,2,4,5,6,7,10,11]) ; npfl.setName("npfl")
33116 +        nff2.setFieldProfile(nf2,mm1,0,npfl)
33117 +        nff2.getFieldWithProfile(ON_NODES,0,mm1)
33118 +        a,b=nff2.getFieldWithProfile(ON_NODES,0,mm1) ; b.setName(npfl.getName())
33119 +        self.assertTrue(b.isEqual(npfl))
33120 +        self.assertTrue(a.isEqual(narr2,1e-7))
33121 +        nff2.write(fname,0)
33122 +        nff2bis=MEDFileFloatField1TS(fname,"VectorFieldOnNodesPfl")
33123 +        a,b=nff2bis.getFieldWithProfile(ON_NODES,0,mm1) ; b.setName(npfl.getName())
33124 +        self.assertTrue(b.isEqual(npfl))
33125 +        self.assertTrue(a.isEqual(narr2,1e-7))
33126 +        #
33127 +        nf3=MEDCouplingFieldDouble(ON_NODES)
33128 +        nf3.setName("VectorFieldOnNodesDouble")
33129 +        nf3.setTime(29.,30,-21)
33130 +        nf3.setMesh(f1.getMesh())
33131 +        nf3.setArray(f1.getMesh().getCoords())
33132 +        nff3=MEDFileField1TS.New()
33133 +        nff3.setFieldNoProfileSBT(nf3)
33134 +        nff3.write(fname,0)
33135 +        fs=MEDFileFields(fname)
33136 +        self.assertEqual(len(fs),4)
33137 +        ffs=[it for it in fs]
33138 +        self.assertTrue(isinstance(ffs[0],MEDFileFloatFieldMultiTS))
33139 +        self.assertTrue(isinstance(ffs[1],MEDFileFloatFieldMultiTS))
33140 +        self.assertTrue(isinstance(ffs[2],MEDFileFieldMultiTS))
33141 +        self.assertTrue(isinstance(ffs[3],MEDFileFloatFieldMultiTS))
33142 +        #
33143 +        self.assertTrue(fs["VectorFieldOnCells"][0].getUndergroundDataArray().isEqualWithoutConsideringStr(f1.getArray(),1e-7))
33144 +        self.assertTrue(fs["VectorFieldOnCells"][1,2].getUndergroundDataArray().isEqualWithoutConsideringStr(2*f1.getArray(),1e-7))
33145 +        self.assertTrue(fs["VectorFieldOnNodesPfl"][0].getUndergroundDataArray().isEqualWithoutConsideringStr(narr2,1e-7))
33146 +        self.assertTrue(fs["VectorFieldOnNodes"][9.].getUndergroundDataArray().isEqualWithoutConsideringStr(narr,1e-7))
33147 +        self.assertTrue(fs["VectorFieldOnNodesDouble"][29.].getUndergroundDataArray().isEqualWithoutConsideringStr(f1.getMesh().getCoords(),1e-12))
33148 +        #
33149 +        nf3_read=MEDFileFieldMultiTS(fname,"VectorFieldOnNodesDouble")
33150 +        self.assertTrue(nf3_read[29.].getUndergroundDataArray().isEqualWithoutConsideringStr(f1.getMesh().getCoords(),1e-12))
33151 +        self.assertRaises(InterpKernelException,MEDFileFloatFieldMultiTS.New,fname,"VectorFieldOnNodesDouble")# exception because trying to read a double field with int instance
33152 +        self.assertRaises(InterpKernelException,MEDFileFieldMultiTS.New,fname,"VectorFieldOnNodes")# exception because trying to read a int field with double instance
33153 +        MEDFileField1TS.New(fname,"VectorFieldOnNodesDouble",30,-21)
33154 +        self.assertRaises(InterpKernelException,MEDFileFloatField1TS.New,fname,"VectorFieldOnNodesDouble",30,-21)# exception because trying to read a double field with int instance
33155 +        MEDFileFloatField1TS.New(fname,"VectorFieldOnNodes",10,-1)
33156 +        self.assertRaises(InterpKernelException,MEDFileField1TS.New,fname,"VectorFieldOnNodes",10,-1)# exception because trying to read a double field with int instance
33157 +        #
33158 +        self.assertEqual(fs.getMeshesNames(),('3DSurfMesh_1','3DSurfMesh_1','3DSurfMesh_1','3DSurfMesh_1'))
33159 +        self.assertTrue(fs.changeMeshNames([('3DSurfMesh_1','3DSurfMesh')]))
33160 +        self.assertEqual(fs.getMeshesNames(),('3DSurfMesh','3DSurfMesh','3DSurfMesh','3DSurfMesh'))
33161 +        self.assertTrue(not fs.changeMeshNames([('3DSurfMesh_1','3DSurfMesh')]))
33162 +        pass
33163 +
33164 +    def testPenta18_1(self):
33165 +        """EDF8478 : Test of read/write of penta18"""
33166 +        fname="Pyfile115.med"
33167 +        arr=DataArrayDouble([
33168 +            (0.,1.,1.),(0.,0.,1.),(1.,0.,1.),
33169 +            (0.,1.,0.),(0.,0.,0.),(1.,0.,0.),
33170 +            (0.,0.5,1.),(0.5,0.,1.),(0.5,0.5,1.),
33171 +            (0.,0.5,0.),(0.5,0.,0.),(0.5,0.5,0.),
33172 +            (0.,1.,0.5),(0.,0.,0.5),(1.,0.,0.5),
33173 +            (0.,0.5,0.5),(0.5,0.,0.5),(0.5,0.5,0.5)])
33174 +        m=MEDCouplingUMesh("mesh",3)
33175 +        m.setCoords(arr)
33176 +        m.allocateCells(1)
33177 +        m.insertNextCell(NORM_PENTA18,list(range(18)))
33178 +        m.checkConsistencyLight()
33179 +        #
33180 +        f=MEDCouplingFieldDouble(ON_NODES)
33181 +        f.setMesh(m)
33182 +        f.setName("FieldOnPenta18")
33183 +        f.setArray(DataArrayDouble(list(range(18))))
33184 +        f.checkConsistencyLight()
33185 +        #
33186 +        m2,d,di,rd,rdi=m.buildDescendingConnectivity()
33187 +        #
33188 +        f2=MEDCouplingFieldDouble(ON_NODES)
33189 +        f2.setMesh(m)
33190 +        f2.setName("FieldOnPenta18Sub")
33191 +        f2.setArray(DataArrayDouble(list(range(18))))
33192 +        f2.checkConsistencyLight()
33193 +        WriteField(fname,f2,True)
33194 +        f3=ReadField(fname)
33195 +        self.assertTrue(f2.isEqual(f3,1e-12,1e-12))
33196 +        self.assertEqual(f3.getMesh().getNumberOfCells(),1)
33197 +        self.assertEqual(f3.getMesh().getTypeOfCell(0),NORM_PENTA18)
33198 +        pass
33199 +
33200 +    @unittest.skipUnless('linux'==platform.system().lower(),"stderr redirection not ported on Windows ?")
33201 +    @unittest.skipUnless(LooseVersion(MEDFileVersionStr())<LooseVersion('4.0.0'),
33202 +                         "This test is not compatible with MEDFile version 4.0.0 and above")
33203 +    def testMedFileCapabilityToCryOnNewFeatureWritingIntoOldFiles(self):
33204 +        fname="Pyfile116.med"
33205 +        errfname="Pyfile116.err"
33206 +        c=DataArrayDouble([0,1,2,3])
33207 +        m=MEDCouplingCMesh()
33208 +        m.setCoords(c,c)
33209 +        m=m.buildUnstructured()
33210 +        m.setName("mesh")
33211 +        mm=MEDFileUMesh()
33212 +        mm[0]=m
33213 +        f=MEDCouplingFieldInt(ON_CELLS)
33214 +        f.setMesh(m) ; arr2=DataArrayInt(m.getNumberOfCells()) ; arr2.iota()
33215 +        f.setArray(arr2)
33216 +        f.setName("field")
33217 +        f1ts=MEDFileIntField1TS()
33218 +        f1ts.setFieldNoProfileSBT(f)
33219 +        mm.write30(fname,2)
33220 +        f1ts.write30(fname,0)
33221 +        #
33222 +        f=MEDCouplingFieldFloat(ON_CELLS)
33223 +        f.setMesh(m) ; arr2=DataArrayFloat(m.getNumberOfCells()) ; arr2.iota()
33224 +        f.setArray(arr2)
33225 +        f.setName("field2")
33226 +        f1ts=MEDFileFloatField1TS()
33227 +        f1ts.setFieldNoProfileSBT(f)
33228 +        #
33229 +        import os,gc
33230 +        tmp=StdOutRedirect(errfname)
33231 +        self.assertRaises(InterpKernelException,f1ts.write30,fname,0)
33232 +        del tmp
33233 +        gc.collect(0)
33234 +        if os.path.exists(errfname):
33235 +            os.remove(errfname)
33236 +        pass
33237 +
33238 +    def testFieldsLinearToQuadratic(self):
33239 +        fname="Pyfile117.med"
33240 +        arr=DataArrayDouble([0,1])
33241 +        m=MEDCouplingCMesh();
33242 +        m.setCoords(arr,arr,arr)
33243 +        m=m.buildUnstructured()
33244 +        m2=m.deepCopy()
33245 +        m2.translate([2,0,0])
33246 +        m3=MEDCouplingUMesh.MergeUMeshes([m,m2])
33247 +        m3.setName("mesh")
33248 +        mm=MEDFileUMesh()
33249 +        mm[0]=m3
33250 +        mmq=mm.linearToQuadratic(0)
33251 +        mms=MEDFileMeshes() ; mms.pushMesh(mm)
33252 +        mmsq=MEDFileMeshes() ; mmsq.pushMesh(mmq)
33253 +        #
33254 +        f=MEDCouplingFieldDouble(ON_NODES)
33255 +        f.setName("field")
33256 +        f.setMesh(m3)
33257 +        f.setTime(3.,1,2)
33258 +        arr=DataArrayDouble(m3.getNumberOfNodes())
33259 +        arr.iota()
33260 +        f.setArray(arr)
33261 +        f1ts=MEDFileField1TS()
33262 +        f1ts.setFieldNoProfileSBT(f)
33263 +        fmts=MEDFileFieldMultiTS()
33264 +        fmts.pushBackTimeStep(f1ts)
33265 +        f1ts_2=f1ts.deepCopy()
33266 +        f1ts_2.setTime(3,4,5.)
33267 +        f1ts_2.getUndergroundDataArray()[:]*=2.
33268 +        fmts.pushBackTimeStep(f1ts_2)
33269 +        fs=MEDFileFields()
33270 +        fs.pushField(fmts)
33271 +        fs2=fs.linearToQuadratic(mms,mmsq)
33272 +        self.myTester1(fs2,mmsq[0])
33273 +        # A small Write/Read and test again
33274 +        mms.write(fname,2) ; fs.write(fname,0)
33275 +        mms=MEDFileMeshes(fname) ; fs=MEDFileFields(fname)
33276 +        mmq=mms[0].linearToQuadratic(0) ; mmqs=MEDFileMeshes() ; mmqs.pushMesh(mmq)
33277 +        fs2=fs.linearToQuadratic(mms,mmqs)
33278 +        self.myTester1(fs2,mmqs[0])
33279 +        pass
33280 +    
33281 +    def myTester1(self,fs2,mmq):
33282 +        dataExp=DataArrayDouble([0.,0.,0.,1.,0.,0.,0.,1.,0.,1.,1.,0.,0.,0.,1.,1.,0.,1.,0.,1.,1.,1.,1.,1.,2.,0.,0.,3.,0.,0.,2.,1.,0.,3.,1.,0.,2.,0.,1.,3.,0.,1.,2.,1.,1.,3.,1.,1.,0.5, 0.,0.,0.,0.5, 0.,0.5, 1.,0.,1.,0.5, 0.,0.5, 0.,1.,0.,0.5, 1.,0.5, 1.,1.,1.,0.5, 1.,1.,0.,0.5, 0.,0.,0.5, 0.,1.,0.5, 1.,1.,0.5, 2.5, 0.,0.,2.,0.5, 0.,2.5, 1.,0.,3.,0.5, 0.,2.5, 0.,1.,2.,0.5, 1.,2.5, 1.,1.,3.,0.5, 1.,3.,0.,0.5, 2.,0.,0.5, 2.,1.,0.5, 3.,1.,0.5],40,3)
33283 +        dataExp1=DataArrayInt([1,0,2,3,5,4,6,7,16,17,18,19,20,21,22,23,24,25,26,27,9,8,10,11,13,12,14,15,28,29,30,31,32,33,34,35,36,37,38,39])
33284 +        dataExp2=DataArrayDouble([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0.5,1,2.5,2,4.5,5,6.5,6,3,2,4,5,8.5,9,10.5,10,12.5,13,14.5,14,11,10,12,13])
33285 +        fToTest=fs2[0][0].field(mmq)
33286 +        self.assertEqual(fToTest.getTime(),[3.,1,2])
33287 +        mTest=MEDCoupling1SGTUMesh(fToTest.getMesh())
33288 +        self.assertTrue(mTest.getNodalConnectivity().isEqual(dataExp1))
33289 +        self.assertTrue(mTest.getCoords().isEqual(dataExp,1e-12))
33290 +        self.assertTrue(fToTest.getArray().isEqual(dataExp2,1e-12))
33291 +        # testing 2nd timestep
33292 +        fToTest=fs2[0][1].field(mmq)
33293 +        self.assertEqual(fToTest.getTime(),[5.,3,4])
33294 +        mTest=MEDCoupling1SGTUMesh(fToTest.getMesh())
33295 +        self.assertTrue(mTest.getNodalConnectivity().isEqual(dataExp1))
33296 +        self.assertTrue(mTest.getCoords().isEqual(dataExp,1e-12))
33297 +        self.assertTrue(fToTest.getArray().isEqual(2*dataExp2,1e-12))
33298 +        pass
33299 +
33300 +    def testFieldsLinearToQuadratic2(self):
33301 +        """Same than testFieldsLinearToQuadratic but with profile on NODES"""
33302 +        fname="Pyfile118.med"
33303 +        arr=DataArrayDouble([0,1])
33304 +        m=MEDCouplingCMesh();
33305 +        m.setCoords(arr,arr,arr)
33306 +        m=m.buildUnstructured()
33307 +        m2=m.deepCopy()
33308 +        m2.translate([2,0,0])
33309 +        m3=MEDCouplingUMesh.MergeUMeshes([m,m2])
33310 +        m3.setName("mesh")
33311 +        # add a point for fun
33312 +        m3.setCoords(DataArrayDouble.Aggregate(m3.getCoords(),DataArrayDouble([1.5,1.5,1.5],1,3)))
33313 +        #
33314 +        mm=MEDFileUMesh()
33315 +        mm[0]=m3
33316 +        mmq=mm.linearToQuadratic(0)
33317 +        mms=MEDFileMeshes() ; mms.pushMesh(mm)
33318 +        mmsq=MEDFileMeshes() ; mmsq.pushMesh(mmq)
33319 +        #
33320 +        f=MEDCouplingFieldDouble(ON_NODES)
33321 +        f.setName("field")
33322 +        f.setMesh(m3)
33323 +        f.setTime(3.,1,2)
33324 +        arr=DataArrayDouble(8) ; arr.iota()
33325 +        arr.iota()
33326 +        f.setArray(arr)
33327 +        f1ts=MEDFileField1TS()
33328 +        pfl=DataArrayInt([8,9,10,11,12,13,14,15]) ; pfl.setName("pfl")
33329 +        f1ts.setFieldProfile(f,mm,0,pfl) # f lying on 8 nodes of cell #1
33330 +        f1ts_2=f1ts.deepCopy()
33331 +        f1ts_2.setTime(3,4,5.)
33332 +        f1ts_2.getUndergroundDataArray()[:]*=4.
33333 +        fmts=MEDFileFieldMultiTS()
33334 +        fmts.pushBackTimeStep(f1ts)
33335 +        fmts.pushBackTimeStep(f1ts_2)
33336 +        fs=MEDFileFields()
33337 +        fs.pushField(fmts)
33338 +        fs2=fs.linearToQuadratic(mms,mmsq)
33339 +        mms.write(fname,2) ; fs.write(fname,0)
33340 +        #
33341 +        self.myTester2(fs2,mmq)
33342 +        # Read/write
33343 +        mms=MEDFileMeshes(fname) ; fs=MEDFileFields(fname)
33344 +        mmq=mms[0].linearToQuadratic(0) ; mmqs=MEDFileMeshes() ; mmqs.pushMesh(mmq)
33345 +        fs2=fs.linearToQuadratic(mms,mmqs)
33346 +        self.myTester2(fs2,mmq)
33347 +        ## More vicious add single node 16
33348 +        mm=MEDFileUMesh()
33349 +        mm[0]=m3
33350 +        mmq=mm.linearToQuadratic(0)
33351 +        mms=MEDFileMeshes() ; mms.pushMesh(mm)
33352 +        mmsq=MEDFileMeshes() ; mmsq.pushMesh(mmq)
33353 +        #
33354 +        f=MEDCouplingFieldDouble(ON_NODES)
33355 +        f.setName("field")
33356 +        f.setMesh(m3)
33357 +        f.setTime(3.,1,2)
33358 +        arr=DataArrayDouble(9) ; arr.iota()
33359 +        arr.iota()
33360 +        f.setArray(arr)
33361 +        f1ts=MEDFileField1TS()
33362 +        pfl=DataArrayInt([8,9,10,11,12,13,14,15,16]) ; pfl.setName("pfl")
33363 +        f1ts.setFieldProfile(f,mm,0,pfl) # f lying on 9 nodes of cell #1 + orphan node
33364 +        fmts=MEDFileFieldMultiTS()
33365 +        fmts.pushBackTimeStep(f1ts)
33366 +        fs=MEDFileFields()
33367 +        fs.pushField(fmts)
33368 +        fs2=fs.linearToQuadratic(mms,mmsq)
33369 +        #
33370 +        pflExpected=DataArrayInt([8,9,10,11,12,13,14,15,16,29,30,31,32,33,34,35,36,37,38,39,40]) ; pflExpected.setName("pfl_NODE")
33371 +        f1tsToTest=fs2[0][0]
33372 +        exp1=DataArrayDouble([0,1,2,3,4,5,6,7,8,0.5,1,2.5,2,4.5,5,6.5,6,3,2,4,5])
33373 +        assert(f1tsToTest.getProfile("pfl_NODE").isEqual(pflExpected))
33374 +        assert(f1tsToTest.getUndergroundDataArray().isEqual(exp1,1e-12))
33375 +        assert(f1tsToTest.getFieldSplitedByType()==[(40,[(1,(0,21),'pfl_NODE','')])])
33376 +        pass
33377 +
33378 +    def myTester2(self,fs2,mmq):
33379 +        pflExpected=DataArrayInt([8,9,10,11,12,13,14,15,29,30,31,32,33,34,35,36,37,38,39,40]) ; pflExpected.setName("pfl_NODE")
33380 +        f1tsToTest=fs2[0][0]
33381 +        exp1=DataArrayDouble([0,1,2,3,4,5,6,7,0.5,1,2.5,2,4.5,5,6.5,6,3,2,4,5])
33382 +        self.assertTrue(f1tsToTest.getProfile("pfl_NODE").isEqual(pflExpected))
33383 +        self.assertTrue(f1tsToTest.getUndergroundDataArray().isEqual(exp1,1e-12))
33384 +        self.assertEqual(f1tsToTest.getFieldSplitedByType(),[(NORM_ERROR,[(1,(0,20),'pfl_NODE','')])])
33385 +        fToTest=fs2[0][0].field(mmq)
33386 +        self.assertEqual(fToTest.getTime(),[3.,1,2])
33387 +        mTest=MEDCoupling1SGTUMesh(fToTest.getMesh())
33388 +        self.assertTrue(mTest.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3,5,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19])))
33389 +        self.assertTrue(mTest.getCoords().isEqual(DataArrayDouble([(2,0,0),(3,0,0),(2,1,0),(3,1,0),(2,0,1),(3,0,1),(2,1,1),(3,1,1),(2.5,0,0),(2,0.5,0),(2.5,1,0),(3,0.5,0),(2.5,0,1),(2,0.5,1),(2.5,1,1),(3,0.5,1),(3,0,0.5),(2,0,0.5),(2,1,0.5),(3,1,0.5)],20,3),1e-12))
33390 +        self.assertTrue(fToTest.getArray().isEqual(exp1,1e-12))
33391 +        # 2nd Time step
33392 +        f1tsToTest=fs2[0][1]
33393 +        self.assertTrue(f1tsToTest.getProfile("pfl_NODE").isEqual(pflExpected))
33394 +        self.assertTrue(f1tsToTest.getUndergroundDataArray().isEqual(4*exp1,1e-12))
33395 +        self.assertEqual(f1tsToTest.getFieldSplitedByType(),[(NORM_ERROR,[(1,(0,20),'pfl_NODE','')])])
33396 +        fToTest=fs2[0][1].field(mmq)
33397 +        self.assertEqual(fToTest.getTime(),[5.,3,4])
33398 +        mTest=MEDCoupling1SGTUMesh(fToTest.getMesh())
33399 +        self.assertTrue(mTest.getNodalConnectivity().isEqual(DataArrayInt([1,0,2,3,5,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19])))
33400 +        self.assertTrue(mTest.getCoords().isEqual(DataArrayDouble([(2,0,0),(3,0,0),(2,1,0),(3,1,0),(2,0,1),(3,0,1),(2,1,1),(3,1,1),(2.5,0,0),(2,0.5,0),(2.5,1,0),(3,0.5,0),(2.5,0,1),(2,0.5,1),(2.5,1,1),(3,0.5,1),(3,0,0.5),(2,0,0.5),(2,1,0.5),(3,1,0.5)],20,3),1e-12))
33401 +        self.assertTrue(fToTest.getArray().isEqual(4*exp1,1e-12))
33402 +        
33403 +        pass
33404 +
33405 +    def testSetFieldProfileFlatly1(self):
33406 +        """ Sometimes for downstream code fan of profiles, profile are requested unconditionally. setFieldProfile try to reduce at most profile usage. So setFieldProfileFlatly has been added to always create
33407 +        a profile."""
33408 +        arr=DataArrayDouble(10) ; arr.iota()
33409 +        m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
33410 +        m=m.buildUnstructured()
33411 +        m2=m.deepCopy()
33412 +        m2.simplexize(0)
33413 +        m=MEDCouplingUMesh.MergeUMeshes(m2,m)
33414 +        m.setName("mesh")
33415 +        mm=MEDFileUMesh()
33416 +        mm[0]=m
33417 +        f=MEDCouplingFieldDouble(ON_CELLS)
33418 +        f.setMesh(m)
33419 +        arr=DataArrayDouble(m.getNumberOfCells())
33420 +        arr.iota()
33421 +        f.setArray(arr)
33422 +        f.setName("field")
33423 +        pfl=DataArrayInt(m.getNumberOfCells()) ; pfl.iota() ; pfl.setName("pfl")
33424 +        #
33425 +        refSp=[(3,[(0,(0,162),'','')]),(4,[(0,(162,243),'','')])]
33426 +        refSp1=[(3,[(0,(0,162),'pfl_NORM_TRI3','')]),(4,[(0,(162,243),'pfl_NORM_QUAD4','')])]
33427 +        #
33428 +        f1ts=MEDFileField1TS()
33429 +        f1ts.setFieldProfile(f,mm,0,pfl)
33430 +        self.assertEqual(f1ts.getPfls(),()) # here setFieldProfile has detected useless pfl -> no pfl
33431 +        self.assertEqual(f1ts.getFieldSplitedByType(),refSp)
33432 +        self.assertTrue(f1ts.field(mm).isEqual(f,1e-12,1e-12)) # the essential
33433 +        #
33434 +        f1ts=MEDFileField1TS()
33435 +        f1ts.setFieldProfileFlatly(f,mm,0,pfl) # no optimization attempt. Create pfl unconditionally
33436 +        self.assertEqual(f1ts.getPfls(),("%s_NORM_TRI3"%pfl.getName(),"%s_NORM_QUAD4"%pfl.getName()))
33437 +        self.assertEqual(f1ts.getFieldSplitedByType(),refSp1)
33438 +        self.assertTrue(f1ts.field(mm).isEqual(f,1e-12,1e-12)) # the essential
33439 +        self.assertTrue(f1ts.getProfile("pfl_NORM_TRI3").isIota(162))
33440 +        self.assertTrue(f1ts.getProfile("pfl_NORM_QUAD4").isIota(81))
33441 +        pass
33442 +
33443 +    def testRmGroupAtSpeLevelAndMultiLevGrpCreation(self):
33444 +        """ Here multi level groups are created"""
33445 +        arr=DataArrayDouble(11) ; arr.iota()
33446 +        m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
33447 +        m=m.buildUnstructured()
33448 +        m.setName("mesh")
33449 +        m1=m.buildDescendingConnectivity()[0]
33450 +        mm=MEDFileUMesh()
33451 +        mm[0]=m ; mm[-1]=m1
33452 +        ################
33453 +        grpName="grp0"
33454 +        grp0_0=DataArrayInt([0,1,2,6]) ; grp0_0.setName(grpName)
33455 +        grp0_1=DataArrayInt([0,1,2,7]) ; grp0_1.setName(grpName)
33456 +        grp1=DataArrayInt([1,2,3,5,6]) ; grp1.setName("grp1")
33457 +        grp2=DataArrayInt([2,3,5,8]) ; grp2.setName("grp2")
33458 +        ################ ajouter un groupe sur plusieurs niveau
33459 +        mm.addGroup(0,grp1)
33460 +        mm.addGroup(-1,grp2)
33461 +        mm.addGroup(0,grp0_0)
33462 +        mm.addGroup(-1,grp0_1)
33463 +        self.assertEqual(mm.getGrpNonEmptyLevels(grpName),(0,-1))
33464 +        self.assertTrue(mm.getGroupArr(0,grpName).isEqual(grp0_0))
33465 +        self.assertTrue(mm.getGroupArr(-1,grpName).isEqual(grp0_1))
33466 +        self.assertTrue(mm.getGroupArr(0,"grp1").isEqual(grp1))
33467 +        self.assertTrue(mm.getGroupArr(-1,"grp2").isEqual(grp2))
33468 +        self.assertRaises(InterpKernelException,mm.addGroup,-1,grp0_1) # raise
33469 +        self.assertTrue(mm.getGroupArr(0,grpName).isEqual(grp0_0))
33470 +        self.assertTrue(mm.getGroupArr(-1,grpName).isEqual(grp0_1))
33471 +        self.assertTrue(mm.getGroupArr(0,"grp1").isEqual(grp1))
33472 +        self.assertTrue(mm.getGroupArr(-1,"grp2").isEqual(grp2))
33473 +        mm.removeGroupAtLevel(0,grpName)
33474 +        self.assertEqual(mm.getGrpNonEmptyLevels(grpName),(-1,))
33475 +        self.assertTrue(mm.getGroupArr(-1,grpName).isEqual(grp0_1))
33476 +        self.assertTrue(mm.getGroupArr(0,"grp1").isEqual(grp1))
33477 +        self.assertTrue(mm.getGroupArr(-1,"grp2").isEqual(grp2))
33478 +        mm.removeGroupAtLevel(-1,grpName)
33479 +        self.assertEqual(mm.getGrpNonEmptyLevels(grpName),())
33480 +        self.assertRaises(InterpKernelException,mm.removeGroupAtLevel,-2,grpName)
33481 +        mm.addGroup(-1,grp0_1)
33482 +        mm.addGroup(0,grp0_0)
33483 +        self.assertEqual(mm.getGrpNonEmptyLevels(grpName),(0,-1))
33484 +        self.assertTrue(mm.getGroupArr(0,grpName).isEqual(grp0_0))
33485 +        self.assertTrue(mm.getGroupArr(-1,grpName).isEqual(grp0_1))
33486 +        self.assertTrue(mm.getGroupArr(0,"grp1").isEqual(grp1))
33487 +        self.assertTrue(mm.getGroupArr(-1,"grp2").isEqual(grp2))
33488 +        pass
33489 +    
33490      pass
33491  
33492  if __name__ == "__main__":
33493 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest3.pyc MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest3.pyc
33494 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest3.pyc       1970-01-01 01:00:00.000000000 +0100
33495 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest3.pyc       2018-04-19 17:25:17.777798147 +0200
33496 @@ -0,0 +1,2042 @@
33497 +\ 3ó\r
33498 +\18;ÕZc\0\0\0\0\0\0\0\0\ 3\0\0\0@\0\0\0\0\0\0d\0\0d\ 1\0l\0\0Td\0\0d\ 2\0l\ 1\0Z\ 1\0d\0\0d\ 2\0l\ 2\0Z\ 2\0d\0\0d\ 3\0l\ 3\0m\ 4\0Z\ 4\0m\ 5\0Z\ 5\0m\ 6\0Z\ 6\0\ 1d\0\0d\ 4\0l\a\0m\a\0Z\a\0\ 1d\0\0d\ 5\0l\b\0m     \0Z      \0\ 1d\0\0d\ 2\0l
33499 +\0Z
33500 +\0e
33501 +\0j\v\0j\f\0d\ 6\0k\0\0r\8b\0d\0\0d\ 2\0l\r\0Z\ e\0n\f\0d\0\0d\ 2\0l\ e\0Z\ e\0d\a\0e\ f\0f\ 1\0d\b\0\84\0\0\83\0\0YZ\10\0d     \0e\ 1\0j\11\0f\ 1\0d
33502 +\0\84\0\0\83\0\0YZ\12\0e\13\0d\v\0k\ 2\0\0e\ 1\0j\14\0\83\0\0\ 1n\0\0d\ 2\0S(\f\0\0\0iÿÿÿÿ(\ 1\0\0\0t\ 1\0\0\0*N(\ 3\0\0\0t\ 2\0\0\0pit\ 1\0\0\0et\ 4\0\0\0sqrt(\ 1\0\0\0t\14\0\0\0MEDLoaderDataForTest(\ 1\0\0\0t\f\0\0\0LooseVersioni\ 3\0\0\0t\ e\0\0\0StdOutRedirectc\0\0\0\0\0\0\0\0\ 1\0\0\0B\0\0\0s\1a\0\0\0e\0\0Z\ 1\0d\0\0\84\0\0Z\ 2\0d\ 1\0\84\0\0Z\ 3\0RS(\ 2\0\0\0c\ 2\0\0\0\ 5\0\0\0\ 4\0\0\0\ 3\0\0\0\0\0\0d\ 1\0d\0\0l\0\0\89\0\0d\ 1\0d\0\0l\ 1\0}\ 2\0|\ 2\0j\ 2\0j\ 3\0\83\0\0\ 1\88\0\0j\ 4\0d\ 2\0\83\ 1\0|\0\0_\ 5\0\88\0\0j\ 6\0|\ 1\0\88\0\0j\a\0\88\0\0j\b\0B\83\ 2\0|\0\0_   \0\88\0\0j
33503 +\0|\0\0j  \0d\ 2\0\83\ 2\0}\ 3\0|\ 2\0j\ 2\0|\0\0_\v\0d\ 3\0t\f\0f\ 1\0\87\0\0f\ 1\0d\ 4\0\86\0\0\83\0\0Y}\ 4\0|\ 4\0\88\0\0j\r\0|\0\0\0d\ 5\0\83\ 2\0\83\ 1\0|\ 2\0_\ 2\0d\0\0S(\ 6\0\0\0Niÿÿÿÿi\ 2\0\0\0t   \0\0\0FlushFilec\0\0\0\0\0\0\0\0\ 2\0\0\0\ 2\0\0\0s;\0\0\0e\0\0Z\ 1\0d\0\0\84\0\0Z\ 2\0d\ 1\0\84\0\0Z\ 3\0d\ 2\0\84\0\0Z\ 4\0d\ 3\0\84\0\0Z\ 5\0\87\0\0f\ 1\0d\ 4\0\86\0\0Z\ 6\0RS(\ 5\0\0\0c\ 2\0\0\0\ 2\0\0\0\ 2\0\0\0S\0\0\0s\r\0\0\0|\ 1\0|\0\0_\0\0d\0\0S(\ 1\0\0\0N(\ 1\0\0\0t\ 1\0\0\0f(\ 2\0\0\0t\ 4\0\0\0selfR\b\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\b\0\0\0__init__,\0\0\0s\ 2\0\0\0\0\ 1c\ 2\0\0\0\ 2\0\0\0\ 2\0\0\0S\0\0\0s!\0\0\0|\0\0j\0\0j\ 1\0|\ 1\0\83\ 1\0\ 1|\0\0j\0\0j\ 2\0\83\0\0\ 1d\0\0S(\ 1\0\0\0N(\ 3\0\0\0R\b\0\0\0t\ 5\0\0\0writet\ 5\0\0\0flush(\ 2\0\0\0R    \0\0\0t\ 2\0\0\0st(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR\v\0\0\0.\0\0\0s\ 4\0\0\0\0\ 1\10\ 1c\ 1\0\0\0\ 1\0\0\0\ 1\0\0\0S\0\0\0s\r\0\0\0|\0\0j\0\0j\ 1\0\83\0\0S(\ 1\0\0\0N(\ 2\0\0\0R\b\0\0\0R\f\0\0\0(\ 1\0\0\0R    \0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR\f\0\0\01\0\0\0s\ 2\0\0\0\0\ 1c\ 1\0\0\0\ 1\0\0\0\ 1\0\0\0S\0\0\0s\r\0\0\0|\0\0j\0\0j\ 1\0\83\0\0S(\ 1\0\0\0N(\ 2\0\0\0R\b\0\0\0t\ 6\0\0\0isatty(\ 1\0\0\0R       \0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR\ e\0\0\03\0\0\0s\ 2\0\0\0\0\ 1c\ 1\0\0\0\ 1\0\0\0\ 2\0\0\0\13\0\0\0s!\0\0\0\88\0\0j\0\0|\0\0j\ 1\0\83\ 1\0\ 1|\0\0j\ 1\0j\ 2\0\83\0\0\ 1d\0\0S(\ 1\0\0\0N(\ 3\0\0\0t\ 5\0\0\0fsyncR\b\0\0\0t\ 5\0\0\0close(\ 1\0\0\0R  \0\0\0(\ 1\0\0\0t\ 2\0\0\0os(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR\10\0\0\05\0\0\0s\ 4\0\0\0\0\ 1\10\ 1(\a\0\0\0t\b\0\0\0__name__t
33504 +\0\0\0__module__R
33505 +\0\0\0R\v\0\0\0R\f\0\0\0R\ e\0\0\0R\10\0\0\0(\0\0\0\0(\ 1\0\0\0R\11\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR\a\0\0\0+\0\0\0s
33506 +\0\0\0\ 6\ 1  \ 2       \ 3       \ 2       \ 2t\ 1\0\0\0w(\ e\0\0\0R\11\0\0\0t\ 3\0\0\0syst\ 6\0\0\0stderrR\f\0\0\0t\ 3\0\0\0dupt      \0\0\0stdoutOldt\ 4\0\0\0opent\a\0\0\0O_CREATt\ 6\0\0\0O_RDWRt\f\0\0\0fdOfSinkFilet\ 4\0\0\0dup2t \0\0\0origPyValt\ 6\0\0\0objectt\ 6\0\0\0fdopen(\ 5\0\0\0R        \0\0\0t\b\0\0\0fileNameR\15\0\0\0t\ 3\0\0\0fd2R\a\0\0\0(\0\0\0\0(\ 1\0\0\0R\11\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR
33507 +\0\0\0$\0\0\0s\10\0\0\0\0\ 1\18\ 1\r\ 1\12\ 1\1f\ 1\15\ 1\f\ 1\1c\rc\ 1\0\0\0\ 3\0\0\0\ 3\0\0\0C\0\0\0se\0\0\0d\ 1\0d\0\0l\0\0}\ 1\0d\ 1\0d\0\0l\ 1\0}\ 2\0|\ 2\0j\ 2\0j\ 3\0\83\0\0\ 1|\0\0j\ 4\0|\ 2\0_\ 2\0|\ 1\0j\ 5\0d\ 2\0\83\ 1\0\ 1|\ 1\0j\ 6\0|\0\0j\a\0d\ 2\0\83\ 2\0\ 1|\ 1\0j\ 3\0|\0\0j\a\0\83\ 1\0\ 1d\0\0S(\ 3\0\0\0Niÿÿÿÿi\ 2\0\0\0(\b\0\0\0R\11\0\0\0R\15\0\0\0R\16\0\0\0R\10\0\0\0R\1e\0\0\0R\ f\0\0\0R\1d\0\0\0R\18\0\0\0(\ 3\0\0\0R     \0\0\0R\11\0\0\0R\15\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\a\0\0\0__del__9\0\0\0s\f\0\0\0\0\ 1\18\ 1\r\ 1\f\ 1\r\ 1\13\ 1(\ 4\0\0\0R\12\0\0\0R\13\0\0\0R
33508 +\0\0\0R#\0\0\0(\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR\ 6\0\0\0#\0\0\0s\ 4\0\0\0\ 6\ 1        \15t\ e\0\0\0MEDLoaderTest3c\0\0\0\0\0\0\0\0\ 5\0\0\0B\0\0\0sc\ 5\0\0e\0\0Z\ 1\0d\0\0\84\0\0Z\ 2\0d\ 1\0\84\0\0Z\ 3\0d\ 2\0\84\0\0Z\ 4\0d\ 3\0\84\0\0Z\ 5\0d\ 4\0\84\0\0Z\ 6\0d\ 5\0\84\0\0Z\a\0d\ 6\0\84\0\0Z\b\0d\a\0\84\0\0Z  \0d\b\0\84\0\0Z
33509 +\0d     \0\84\0\0Z\v\0d
33510 +\0\84\0\0Z\f\0d\v\0\84\0\0Z\r\0d\f\0\84\0\0Z\ e\0d\r\0\84\0\0Z\ f\0d\ e\0\84\0\0Z\10\0d\ f\0\84\0\0Z\11\0d\10\0\84\0\0Z\12\0d\11\0\84\0\0Z\13\0d\12\0\84\0\0Z\14\0d\13\0\84\0\0Z\15\0d\14\0\84\0\0Z\16\0d\15\0\84\0\0Z\17\0d\16\0\84\0\0Z\18\0d\17\0\84\0\0Z\19\0d\18\0\84\0\0Z\1a\0d\19\0\84\0\0Z\e\0d\1a\0\84\0\0Z\1c\0d\e\0\84\0\0Z\1d\0d\1c\0\84\0\0Z\1e\0d\1d\0\84\0\0Z\1f\0d\1e\0\84\0\0\0d\1f\0\84\0\0Z!\0\0\84\0\0Z"\0d!\0\84\0\0Z#\0d"\0\84\0\0Z$\0d#\0\84\0\0Z%\0d$\0\84\0\0Z&\0d%\0\84\0\0Z'\0d&\0\84\0\0Z(\0d'\0\84\0\0Z)\0d(\0\84\0\0Z*\0d)\0\84\0\0Z+\0d*\0\84\0\0Z,\0d+\0\84\0\0Z-\0d,\0\84\0\0Z.\0d-\0\84\0\0Z/\0d.\0\84\0\0Z0\0d/\0\84\0\0Z1\0d0\0\84\0\0Z2\0d1\0\84\0\0Z3\0d2\0\84\0\0Z4\0d3\0\84\0\0Z5\0d4\0\84\0\0Z6\0d5\0\84\0\0Z7\0d6\0\84\0\0Z8\0d7\0\84\0\0Z9\0d8\0\84\0\0Z:\0d9\0\84\0\0Z;\0d:\0\84\0\0Z<\0d;\0\84\0\0Z=\0d<\0\84\0\0Z>\0d=\0\84\0\0Z?\0d>\0\84\0\0Z@\0d?\0\84\0\0ZA\0d@\0\84\0\0ZB\0dA\0\84\0\0ZC\0dB\0\84\0\0ZD\0dC\0\84\0\0ZE\0dD\0\84\0\0ZF\0dE\0\84\0\0ZG\0dF\0\84\0\0ZH\0dG\0\84\0\0ZI\0dH\0\84\0\0ZJ\0dI\0\84\0\0ZK\0dJ\0\84\0\0ZL\0dK\0\84\0\0ZM\0dL\0\84\0\0ZN\0dM\0\84\0\0ZO\0eP\0jQ\0eR\0\83\0\0dN\0\83\ 2\0dO\0\84\0\0\83\ 1\0ZS\0dP\0\84\0\0ZT\0dQ\0\84\0\0ZU\0dR\0\84\0\0ZV\0dS\0\84\0\0ZW\0dT\0\84\0\0ZX\0dU\0\84\0\0ZY\0dV\0\84\0\0ZZ\0dW\0\84\0\0Z[\0dX\0\84\0\0ZZ\0eP\0jQ\0dY\0e\\0j]\0\83\0\0j^\0\83\0\0k\ 2\0dZ\0\83\ 2\0d[\0\84\0\0\83\ 1\0Z_\0d\\0\84\0\0Z`\0d]\0\84\0\0Za\0eP\0jQ\0eR\0\83\0\0dN\0\83\ 2\0d^\0\84\0\0\83\ 1\0Zb\0d_\0\84\0\0Zc\0d`\0\84\0\0Zd\0da\0\84\0\0Ze\0db\0\84\0\0Zf\0dc\0\84\0\0Zg\0dd\0\84\0\0Zh\0de\0\84\0\0Zi\0df\0\84\0\0Zj\0dg\0\84\0\0Zk\0dh\0\84\0\0Zl\0di\0\84\0\0Zm\0dj\0\84\0\0Zn\0dk\0\84\0\0Zo\0dl\0\84\0\0Zp\0dm\0\84\0\0Zq\0dn\0\84\0\0Zr\0eP\0jQ\0es\0et\0\83\0\0\83\ 1\0es\0do\0\83\ 1\0k\ 5\0dp\0\83\ 2\0eP\0jQ\0es\0et\0\83\0\0\83\ 1\0es\0dq\0\83\ 1\0k\0\0dr\0\83\ 2\0ds\0\84\0\0\83\ 1\0\83\ 1\0Zu\0eP\0jQ\0eR\0\83\0\0dN\0\83\ 2\0dt\0\84\0\0\83\ 1\0Zv\0eP\0jQ\0eR\0\83\0\0dN\0\83\ 2\0du\0\84\0\0\83\ 1\0Zw\0dv\0\84\0\0Zx\0dw\0\84\0\0Zy\0dx\0\84\0\0Zz\0dy\0\84\0\0Z{\0eP\0jQ\0dY\0e\\0j]\0\83\0\0j^\0\83\0\0k\ 2\0dZ\0\83\ 2\0eP\0jQ\0es\0et\0\83\0\0\83\ 1\0es\0dq\0\83\ 1\0k\0\0dr\0\83\ 2\0dz\0\84\0\0\83\ 1\0\83\ 1\0Z|\0d{\0\84\0\0Z}\0d|\0\84\0\0Z~\0d}\0\84\0\0Z\7f\0d~\0\84\0\0Z\80\0d\7f\0\84\0\0Z\81\0d\80\0\84\0\0Z\82\0RS(\81\0\0\0c\ 1\0\0\0\b\0\0\0\ 5\0\0\0C\0\0\0\0\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0j\ 1\0|\ 1\0|\ 2\0\83\ 2\0}\ 3\0|\0\0j\ 2\0t\ 3\0t\0\0j\ 1\0|\ 1\0d\ 3\0\83\ 4\0\ 1|\0\0j\ 4\0d\a\0|\ 3\0j\ 5\0\83\0\0\83\ 2\0\ 1|\ 3\0j\ 6\0t\a\0\83\ 1\0}\ 4\0t\b\0|\ 1\0|\ 2\0d\ 4\0\83\ 3\0}\ 5\0|\0\0\0|\ 4\0j
33511 +\0|\ 5\0d\ 6\0\83\ 2\0\83\ 1\0\ 1|\ 3\0j\v\0t\a\0\83\ 1\0}\ 6\0t\b\0|\ 1\0|\ 2\0d\ 5\0\83\ 3\0}\a\0|\0\0j    \0|\ 6\0j
33512 +\0|\a\0d\ 6\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\b\0\0\0Ns\f\0\0\0Pyfile18.medt\12\0\0\0ExampleOfMultiDimWt\0\0\0\0i\0\0\0\0iÿÿÿÿg\11ê-\81\99\97q=(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\f\0\0\0t\v\0\0\0MEDFileMesht\ 3\0\0\0Newt\f\0\0\0assertRaisest\15\0\0\0InterpKernelExceptiont\v\0\0\0assertEqualt\11\0\0\0getNonEmptyLevelst\r\0\0\0getLevel0Mesht\ 4\0\0\0Truet\11\0\0\0ReadUMeshFromFilet
33513 +\0\0\0assertTruet\a\0\0\0isEqualt\ e\0\0\0getLevelM1Mesh(\b\0\0\0R     \0\0\0R!\0\0\0t\ 5\0\0\0mnamet\a\0\0\0medmesht\ 4\0\0\0m1_0t\ 4\0\0\0m1_1t\ 4\0\0\0m2_0t\ 4\0\0\0m2_1(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh1B\0\0\0s\18\0\0\0\0\ 1\ 6\ 1\ 6\ 1\12\ 1\19\ 1\16\ 1\ f\ 1\12\ 1\19\ 1\ f\ 1\12\ 1\19\ 1c\ 1\0\0\0
33514 +\0\0\0    \0\0\0C\0\0\0s0\ 4\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0t\0\0j\ 1\0|\ 1\0|\ 2\0\83\ 2\0}\ 4\0|\0\0j\ 2\0d\15\0|\ 4\0j\ 3\0\83\0\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\ 5\0\83\ 1\0}\ 5\0t\ 6\0|\ 1\0|\ 2\0d\ 4\0\83\ 3\0}\ 6\0|\0\0j\a\0|\ 5\0j\b\0|\ 6\0d\ 5\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j    \0d\ 4\0d\ 6\0t\ 5\0\83\ 3\0}\a\0t
33515 +\0|\ 1\0|\ 2\0d\ 4\0d\ 6\0g\ 1\0\83\ 4\0}\b\0|\0\0j\a\0|\a\0j\b\0|\b\0d\ 5\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j    \0d\ 4\0d\a\0t\ 5\0\83\ 3\0}\a\0t
33516 +\0|\ 1\0|\ 2\0d\ 4\0d\a\0g\ 1\0\83\ 4\0}\b\0|\0\0j\a\0|\a\0j\b\0|\b\0d\ 5\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j\v\0d\ 4\0d\a\0d\ 6\0g\ 2\0\83\ 2\0}\a\0t
33517 +\0|\ 1\0|\ 2\0d\ 4\0d\a\0d\ 6\0g\ 2\0\83\ 4\0}\b\0|\b\0j\f\0|\a\0j\r\0\83\0\0\83\ 1\0\ 1|\0\0j\a\0|\a\0j\b\0|\b\0d\ 5\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j\ e\0d\ 4\0d\b\0t\ 5\0\83\ 3\0}\a\0t\ f\0|\ 1\0|\ 2\0d\ 4\0d\b\0g\ 1\0\83\ 4\0}\b\0|\0\0j\a\0|\a\0j\b\0|\b\0d\ 5\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j\10\0d\ 4\0d\b\0d       \0g\ 2\0t\ 5\0\83\ 3\0}\a\0t\ f\0|\ 1\0|\ 2\0d\ 4\0d\b\0d   \0g\ 2\0\83\ 4\0}\b\0|\b\0j\f\0|\a\0j\r\0\83\0\0\83\ 1\0\ 1|\0\0j\a\0|\a\0j\b\0|\b\0d\ 5\0\83\ 2\0\83\ 1\0\ 1|\0\0j\a\0|\a\0j\b\0|\b\0d\ 5\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j\11\0|\ 3\0d
33518 +\0\83\ 2\0\ 1|\0\0j\ 2\0d\v\0d
33519 +\0d\f\0d\r\0d\ e\0g\ 5\0|\ 4\0j\12\0d\ 4\0d\ 6\0t\ 5\0\83\ 3\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d\v\0d
33520 +\0d\ e\0g\ 3\0|\ 4\0j\14\0d\ 4\0d\b\0t\ 5\0\83\ 3\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d\v\0d
33521 +\0d\f\0d\r\0d\ e\0g\ 5\0|\ 4\0j\15\0d\ 4\0d        \0d\b\0g\ 2\0t\ 5\0\83\ 3\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d\ f\0d\v\0d
33522 +\0d\10\0d\f\0d\r\0d\11\0d\ e\0g\b\0|\ 4\0j\16\0d\ 4\0d\ 6\0d\12\0d\a\0g\ 3\0t\ 5\0\83\ 3\0j\13\0\83\0\0\83\ 2\0\ 1|\ 4\0j\17\0d\ 4\0\83\ 1\0}  \0|\0\0j\18\0t\19\0|\ 4\0j\1a\0|       \0t\ 5\0\83\ 4\0\ 1|\0\0j\ 2\0d
33523 +\0d\10\0d\13\0d\11\0d\14\0g\ 5\0|\ 4\0j\12\0d\ 4\0d\ 6\0\83\ 2\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d
33524 +\0d\10\0d\14\0g\ 3\0|\ 4\0j\14\0d\ 4\0d\b\0\83\ 2\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d
33525 +\0d\10\0d\13\0d\11\0d\14\0g\ 5\0|\ 4\0j\15\0d\ 4\0d     \0d\b\0g\ 2\0\83\ 2\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0d\ 4\0d
33526 +\0d\10\0d\f\0d\13\0d\11\0d\ e\0d\14\0g\b\0|\ 4\0j\16\0d\ 4\0d\ 6\0d\a\0d\12\0g\ 3\0t\e\0\83\ 3\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\18\0t\19\0|\ 4\0j\1a\0|    \0t\e\0\83\ 4\0\ 1d\0\0S(\16\0\0\0Ns\f\0\0\0Pyfile10.medt\ 6\0\0\03DTotos\10\0\0\0MEDFileMesh1.medi\0\0\0\0g\11ê-\81\99\97q=t\ 5\0\0\0mesh2t\ 5\0\0\0mesh3s  \0\0\0Family_-3s   \0\0\0Family_-5i\ 2\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\r\0\0\0i\ f\0\0\0i\12\0\0\0i\ 3\0\0\0i\ e\0\0\0t\ 5\0\0\0mesh4i\ 5\0\0\0i\10\0\0\0(\ 1\0\0\0i\0\0\0\0(\1c\0\0\0t\f\0\0\0MEDFileUMeshR(\0\0\0R+\0\0\0R,\0\0\0R-\0\0\0R.\0\0\0R/\0\0\0R0\0\0\0R1\0\0\0t\b\0\0\0getGroupt\13\0\0\0ReadUMeshFromGroupst  \0\0\0getGroupst\a\0\0\0setNamet\a\0\0\0getNamet   \0\0\0getFamilyt\15\0\0\0ReadUMeshFromFamiliest\v\0\0\0getFamiliesR\v\0\0\0t\v\0\0\0getGroupArrt    \0\0\0getValuest\f\0\0\0getFamilyArrt\ e\0\0\0getFamiliesArrt\f\0\0\0getGroupsArrt\14\0\0\0getFamilyNameGivenIdR)\0\0\0R*\0\0\0t\10\0\0\0getNodeFamilyArrt\ 5\0\0\0False(
33527 +\0\0\0R   \0\0\0R!\0\0\0R3\0\0\0t\v\0\0\0outFileNameR4\0\0\0R5\0\0\0R6\0\0\0t\ 4\0\0\0g1_0t\ 4\0\0\0g1_1t\ 4\0\0\0famn(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh2P\0\0\0sN\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\12\ 1\16\ 1\ f\ 1\12\ 1\19\ 1\15\ 1\18\ 1\19\ 1\15\ 1\18\ 1\19\ 1\18\ 1\e\ 1\13\ 1\19\ 1\15\ 1\18\ 1\19\ 1\e\ 1\e\ 1\13\ 1\19\ 1\19\ 1\10\ 14\ 1.\ 1:\ 1F\ 1\ f\ 1\19\ 21\ 1+\ 17\ 1F\ 1\19\ 1c\ 1\0\0\0\14\0\0\0\12\0\0\0C\0\0\0s}\b\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0g\12\0}\ 3\0d\ 5\0d\ 6\0d\a\0d\b\0d\b\0d\a\0d        \0d\a\0d
33528 +\0d     \0d\v\0d\f\0d\a\0d\ 6\0d\f\0d\r\0d
33529 +\0d\a\0g\12\0}\ 4\0|\ 2\0j\ 2\0|\ 3\0d\ e\0d        \0\83\ 3\0\ 1t\ 3\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j\ 4\0d        \0\83\ 1\0\ 1|\ 5\0j\ 5\0d
33530 +\0\83\ 1\0\ 1|\ 5\0j\ 6\0t\a\0d\ 6\0|\ 4\0d\a\0d\f\0!\83\ 3\0\ 1|\ 5\0j\ 6\0t\a\0d\ 6\0|\ 4\0d\f\0d\ f\0!\83\ 3\0\ 1|\ 5\0j\ 6\0t\b\0d\a\0|\ 4\0d\ 5\0d\a\0!\83\ 3\0\ 1|\ 5\0j\ 6\0t     \0d\a\0|\ 4\0d\ f\0d\10\0!\83\ 3\0\ 1|\ 5\0j\ 6\0t       \0d\a\0|\ 4\0d\10\0d\11\0!\83\ 3\0\ 1|\ 5\0j
33531 +\0\83\0\0\ 1|\ 5\0j\v\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\f\0\83\0\0\ 1t\ 3\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j\ 4\0d\b\0\83\ 1\0\ 1|\ 6\0j\ 5\0d\ 6\0\83\ 1\0\ 1|\ 6\0j\ 6\0t\r\0d   \0d\b\0d\a\0g\ 2\0\83\ 3\0\ 1|\ 6\0j\ 6\0t\r\0d        \0d\ 6\0d\v\0g\ 2\0\83\ 3\0\ 1|\ 6\0j\ 6\0t\ e\0d\ 6\0d     \0d\r\0d
33532 +\0g\ 3\0\83\ 3\0\ 1|\ 6\0j
33533 +\0\83\0\0\ 1|\ 6\0j\v\0|\ 2\0\83\ 1\0\ 1|\ 6\0j\f\0\83\0\0\ 1t\ 3\0j\ 1\0\83\0\0}\a\0|\a\0j\ 4\0d\ 5\0\83\ 1\0\ 1|\a\0j\ 5\0d\a\0\83\ 1\0\ 1|\a\0j\ 6\0t\ f\0d\b\0d\b\0g\ 1\0\83\ 3\0\ 1|\a\0j\ 6\0t\ f\0d\b\0d\ 6\0g\ 1\0\83\ 3\0\ 1|\a\0j\ 6\0t\ f\0d\b\0d    \0g\ 1\0\83\ 3\0\ 1|\a\0j\ 6\0t\ f\0d\b\0d\v\0g\ 1\0\83\ 3\0\ 1|\a\0j
33534 +\0\83\0\0\ 1|\a\0j\v\0|\ 2\0\83\ 1\0\ 1|\a\0j\f\0\83\0\0\ 1t\10\0j\ 1\0\83\0\0}\b\0|\0\0j\11\0|\b\0j\12\0\83\0\0\83\ 1\0\ 1|\b\0j\13\0d\12\0\83\ 1\0\ 1|\b\0j\14\0d\13\0\83\ 1\0\ 1|\b\0j\v\0|\ 2\0\83\ 1\0\ 1|\b\0j\15\0d\14\0|\ 6\0\83\ 2\0\ 1|\b\0j\15\0d\ 5\0|\ 5\0\83\ 2\0\ 1|\b\0j\15\0d\15\0|\a\0\83\ 2\0\ 1t\16\0j\ 1\0\83\0\0}   \0|      \0j\ 2\0d\b\0d\ 6\0g\ 2\0d  \0d\b\0\83\ 3\0\ 1|       \0j\13\0d\16\0\83\ 1\0\ 1t\16\0j\ 1\0\83\0\0}
33535 +\0|
33536 +\0j\ 2\0d\b\0d       \0d\ 6\0g\ 3\0d\ 6\0d\b\0\83\ 3\0\ 1|
33537 +\0j\13\0d\17\0\83\ 1\0\ 1|\b\0j\17\0d\ 5\0|  \0|
33538 +\0g\ 2\0t\18\0\83\ 3\0\ 1t\16\0j\ 1\0\83\0\0}\v\0|\v\0j\ 2\0d\ 5\0d\b\0d   \0g\ 3\0d\ 6\0d\b\0\83\ 3\0\ 1|\v\0j\13\0d\16\0\83\ 1\0\ 1t\16\0j\ 1\0\83\0\0}\f\0|\f\0j\ 2\0d\ 5\0d       \0g\ 2\0d   \0d\b\0\83\ 3\0\ 1|\f\0j\13\0d\17\0\83\ 1\0\ 1|\b\0j\17\0d\14\0|\v\0|\f\0g\ 2\0t\18\0\83\ 3\0\ 1t\16\0j\ 1\0\83\0\0}\r\0|\r\0j\ 2\0t\19\0t\1a\0d\r\0\83\ 1\0\83\ 1\0d\r\0d\b\0\83\ 3\0\ 1|\r\0j\13\0d\16\0\83\ 1\0\ 1t\16\0j\ 1\0\83\0\0}\ e\0|\ e\0j\ 2\0t\19\0t\1a\0d\ e\0\83\ 1\0\83\ 1\0d\ e\0d\b\0\83\ 3\0\ 1|\ e\0j\13\0d\17\0\83\ 1\0\ 1|\b\0j\17\0d\b\0|\r\0|\ e\0g\ 2\0t\18\0\83\ 3\0\ 1|\b\0j\e\0d\ 5\0d\18\0\83\ 2\0\ 1|\b\0j\1c\0d\ 5\0d\16\0t\18\0\83\ 3\0}\ f\0|\0\0j\11\0|     \0j\1d\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\b\0j\1c\0d\ 5\0d\17\0t\18\0\83\ 3\0}\ f\0|\0\0j\11\0|
33539 +\0j\1d\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\b\0j\1c\0d\14\0d\16\0t\18\0\83\ 3\0}\ f\0|\0\0j\11\0|\v\0j\1d\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\b\0j\1c\0d\14\0d\17\0t\18\0\83\ 3\0}\ f\0|\0\0j\11\0|\f\0j\1d\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\b\0j\1c\0d\b\0d\16\0t\18\0\83\ 3\0}\ f\0|\0\0j\11\0|\r\0j\1d\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\b\0j\1c\0d\b\0d\17\0t\18\0\83\ 3\0}\ f\0|\0\0j\11\0|\ e\0j\1d\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\11\0|\b\0j\1e\0d\18\0\83\ 1\0\83\ 1\0\ 1|\b\0j\1c\0d\ 5\0d\18\0\83\ 2\0}\ f\0|\0\0j\11\0|\ f\0j\1f\0\83\0\0t\19\0t\1a\0d
33540 +\0\83\ 1\0\83\ 1\0k\ 2\0\83\ 1\0\ 1|\b\0\0\83\0\0}\10\0|\0\0j\11\0|\b\0j\1d\0|\10\0d\19\0\83\ 2\0d\ 5\0\19\83\ 1\0\ 1~\b\0|\10\0j!\0|\ 1\0d   \0\83\ 2\0\ 1t"\0j\ 1\0|\ 1\0\83\ 1\0}\b\0|\0\0j#\0t\a\0t\b\0t       \0g\ 3\0|\b\0j$\0d\ 5\0\83\ 1\0\83\ 2\0\ 1|\0\0j#\0t\r\0t\ e\0g\ 2\0|\b\0j$\0d\14\0\83\ 1\0\83\ 2\0\ 1|\0\0j#\0t\ f\0g\ 1\0|\b\0j$\0d\15\0\83\ 1\0\83\ 2\0\ 1|\b\0j%\0t  \0\83\ 1\0}\11\0|\0\0j\11\0t&\0|\11\0t'\0\83\ 2\0\83\ 1\0\ 1|\0\0j\11\0|\11\0j(\0\83\0\0j\1d\0t\16\0d\v\0d\f\0d\a\0d\ 6\0d\f\0d\r\0d
33541 +\0d\a\0g\b\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\11\0|\11\0j)\0\83\0\0j\1d\0t\16\0d\ 5\0d\a\0d\r\0g\ 3\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\b\0j*\0d\ 5\0\83\ 1\0}\12\0|\0\0j#\0d\ 6\0t+\0|\12\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0t&\0|\12\0d\ 5\0\19t,\0\83\ 2\0\83\ 1\0\ 1|\0\0j\11\0t&\0|\12\0d\b\0\19t,\0\83\ 2\0\83\ 1\0\ 1|\0\0j\11\0t&\0|\12\0d     \0\19t'\0\83\ 2\0\83\ 1\0\ 1|\0\0j\11\0|\b\0j\12\0\83\0\0\83\ 1\0\ 1|\0\0j\11\0t&\0|\b\0j-\0\83\0\0t.\0\83\ 2\0\83\ 1\0\ 1|\0\0j\11\0t+\0|\b\0j-\0\83\0\0\83\ 1\0d\ 5\0k\ 3\0\83\ 1\0\ 1|\b\0j/\0d\ 5\0\83\ 1\0}\13\0|\ 5\0j\13\0|\b\0j0\0\83\0\0\83\ 1\0\ 1|\ 5\0j\14\0|\b\0j1\0\83\0\0\83\ 1\0\ 1|\0\0j\11\0|\ 5\0j\1d\0|\13\0d\19\0\83\ 2\0\83\ 1\0\ 1|\0\0j#\0d\1a\0d\e\0d\1c\0g\ 3\0d\1d\0d\1e\0g\ 2\0d\1f\0g\ 1\0g\ 3\0d   \0d      \0d\ e\0f\ 4\0t2\0|\ 1\0d\12\0\83\ 2\0\83\ 2\0\ 1d\0\0S( \0\0\0Ns\10\0\0\0MEDFileMesh3.medg333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0\0\0\0i
33542 +\0\0\0i\ e\0\0\0i\12\0\0\0t\19\0\0\0MyFirstMEDCouplingMEDmesht\1e\0\0\0IHopeToConvinceLastMEDMEMUsersiÿÿÿÿiþÿÿÿt\ 2\0\0\0G1t\ 2\0\0\0G2t\f\0\0\0GrpOnAllCellg\11ê-\81\99\97q=(\ 2\0\0\0i\ 3\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\b\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0(3\0\0\0t\ f\0\0\0DataArrayDoubleR(\0\0\0t      \0\0\0setValuest\10\0\0\0MEDCouplingUMesht\10\0\0\0setMeshDimensiont\r\0\0\0allocateCellst\ e\0\0\0insertNextCellt    \0\0\0NORM_TRI3t
33543 +\0\0\0NORM_QUAD4t\f\0\0\0NORM_POLYGONt\14\0\0\0finishInsertingCellst       \0\0\0setCoordst\15\0\0\0checkConsistencyLightt \0\0\0NORM_SEG2t   \0\0\0NORM_SEG3t\v\0\0\0NORM_POINT1R>\0\0\0R0\0\0\0t\13\0\0\0getUnivNameWrStatusRB\0\0\0t\ e\0\0\0setDescriptiont\ e\0\0\0setMeshAtLevelt\f\0\0\0DataArrayIntt\10\0\0\0setGroupsAtLevelRN\0\0\0t\ 4\0\0\0listt\ 5\0\0\0ranget\10\0\0\0createGroupOnAllRG\0\0\0R1\0\0\0t\v\0\0\0existsGroupRH\0\0\0t\b\0\0\0deepCopyR\v\0\0\0R'\0\0\0R+\0\0\0t\12\0\0\0getGeoTypesAtLevelt%\0\0\0getDirectUndergroundSingleGeoTypeMesht
33544 +\0\0\0isinstancet\14\0\0\0MEDCoupling1DGTUMesht\14\0\0\0getNodalConnectivityt\19\0\0\0getNodalConnectivityIndext'\0\0\0getDirectUndergroundSingleGeoTypeMeshest\ 3\0\0\0lent\14\0\0\0MEDCoupling1SGTUMesht\v\0\0\0getUnivNamet\ 3\0\0\0strt\ e\0\0\0getMeshAtLevelRC\0\0\0t\ e\0\0\0getDescriptiont\12\0\0\0GetUMeshGlobalInfo(\14\0\0\0R     \0\0\0RO\0\0\0t\ 1\0\0\0ct\ 6\0\0\0coordst
33545 +\0\0\0targetConnt\ 1\0\0\0mt\ 2\0\0\0m1t\ 2\0\0\0m2t\ 2\0\0\0mmt\ 4\0\0\0g1_2t\ 4\0\0\0g2_2RQ\0\0\0t\ 4\0\0\0g2_1t\ 4\0\0\0g1_Nt\ 4\0\0\0g2_Nt\ 1\0\0\0tt\ 5\0\0\0mmCpyt\ 3\0\0\0mm0t\ 3\0\0\0lmmt\ 4\0\0\0mbis(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh3{\0\0\0\0\0\0\0\ 1\ 6\ 1\f\ 1<\ 1<\ 1\13\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
33546 +\ 1\r\ 1
33547 +\ 1\f\ 1\r\ 1\r\ 1\19\ 1\19\ 1\1c\ 1
33548 +\ 1\r\ 1
33549 +\ 1\f\ 1\r\ 1\r\ 1\16\ 1\16\ 1\16\ 1\16\ 1
33550 +\ 1\r\ 1
33551 +\ 2\f\ 1\13\ 1\r\ 1\r\ 1\r\ 1\10\ 1\10\ 1\10\ 2\f\ 1\19\ 1\r\ 1\f\ 1\1c\ 1\r\ 1\19\ 1\f\ 1\1c\ 1\r\ 1\f\ 1\19\ 1\r\ 1\19\ 1\f\ 1\1f\ 1\r\ 1\f\ 1\1f\ 1\r\ 1\19\ 1\10\ 2\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\16\ 1\12\ 1%\ 2\f\ 1\1d\0\ 3\ 1\10\ 2\ f\ 2"\ 1\1f\ 1\1c\ 1\ f\ 1\16\ 1:\ 1+\ 1\ f\ 1\16\ 1\1a\ 1\1a\ 1\1a\ 2\13\ 1\1c\ 1\1f\ 1\ f\ 1\13\0\13\ 1\19\ 2@\ 1c\ 1\0\0\0\15\0\0\0\12\0\0\0C\0\0\0\a\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0g\12\0}\ 3\0d\ 5\0d\ 6\0d\a\0d\b\0d\b\0d\a\0d   \0d\a\0d
33552 +\0d     \0d\v\0d\f\0d\a\0d\ 6\0d\f\0d\r\0d
33553 +\0d\a\0g\12\0}\ 4\0|\ 2\0j\ 2\0|\ 3\0d\ e\0d        \0\83\ 3\0\ 1|\ 2\0j\ 3\0d\ 5\0d\ f\0\83\ 2\0\ 1|\ 2\0j\ 3\0d\b\0d\10\0\83\ 2\0\ 1t\ 4\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j\ 5\0d        \0\83\ 1\0\ 1|\ 5\0j\ 6\0d
33554 +\0\83\ 1\0\ 1|\ 5\0j\a\0t\b\0d\a\0|\ 4\0d\ 5\0d\a\0!\83\ 3\0\ 1|\ 5\0j\a\0\0d\ 6\0|\ 4\0d\a\0d\f\0!\83\ 3\0\ 1|\ 5\0j\a\0t       \0d\ 6\0|\ 4\0d\f\0d\11\0!\83\ 3\0\ 1|\ 5\0j\a\0t\b\0d\a\0|\ 4\0d\11\0d\12\0!\83\ 3\0\ 1|\ 5\0j\a\0t\b\0d\a\0|\ 4\0d\12\0d\13\0!\83\ 3\0\ 1|\ 5\0j
33555 +\0\83\0\0\ 1|\ 5\0j\v\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\f\0\83\0\0\ 1t\ 4\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j\ 5\0d\b\0\83\ 1\0\ 1|\ 6\0j\ 6\0d\ 6\0\83\ 1\0\ 1|\ 6\0j\a\0t\r\0d   \0d\b\0d\a\0g\ 2\0\83\ 3\0\ 1|\ 6\0j\a\0t\ e\0d\ 6\0d     \0d\r\0d
33556 +\0g\ 3\0\83\ 3\0\ 1|\ 6\0j\a\0t\r\0d     \0d\ 6\0d\v\0g\ 2\0\83\ 3\0\ 1|\ 6\0j
33557 +\0\83\0\0\ 1|\ 6\0j\v\0|\ 2\0\83\ 1\0\ 1|\ 6\0j\f\0\83\0\0\ 1t\ 4\0j\ 1\0\83\0\0}\a\0|\a\0j\ 5\0d\ 5\0\83\ 1\0\ 1|\a\0j\ 6\0d\a\0\83\ 1\0\ 1|\a\0j\a\0t\ f\0d\b\0d\b\0g\ 1\0\83\ 3\0\ 1|\a\0j\a\0t\ f\0d\b\0d\ 6\0g\ 1\0\83\ 3\0\ 1|\a\0j\a\0t\ f\0d\b\0d    \0g\ 1\0\83\ 3\0\ 1|\a\0j\a\0t\ f\0d\b\0d\v\0g\ 1\0\83\ 3\0\ 1|\a\0j
33558 +\0\83\0\0\ 1|\a\0j\v\0|\ 2\0\83\ 1\0\ 1|\a\0j\f\0\83\0\0\ 1t\10\0j\ 1\0\83\0\0}\b\0|\b\0j\11\0d\14\0\83\ 1\0\ 1|\b\0j\12\0d\15\0\83\ 1\0\ 1|\b\0j\v\0|\ 2\0\83\ 1\0\ 1t\13\0j\ 1\0\83\0\0}      \0|      \0j\ 2\0d\11\0d\16\0d\17\0d\18\0d\12\0d\19\0d\1a\0d\e\0d\13\0g        \0d\ e\0d\b\0\83\ 3\0\ 1|\b\0j\14\0d\b\0|   \0\83\ 2\0\ 1|\b\0j\15\0d\1c\0|\ 6\0t\16\0\83\ 3\0\ 1|\b\0j\15\0d\ 5\0|\ 5\0t\16\0\83\ 3\0\ 1|\b\0j\15\0d\1d\0|\a\0t\16\0\83\ 3\0\ 1|\b\0j\17\0d\1d\0\83\ 1\0\ 1|\b\0j\15\0d\1d\0|\a\0t\16\0\83\ 3\0\ 1t\13\0j\ 1\0\83\0\0}
33559 +\0|
33560 +\0j\ 2\0d  \0d\ 6\0g\ 2\0d        \0d\b\0\83\ 3\0\ 1|
33561 +\0j\11\0d\1e\0\83\ 1\0\ 1t\13\0j\ 1\0\83\0\0}\v\0|\v\0j\ 2\0\0d\ 5\0d\ 6\0g\ 3\0d\ 6\0d\b\0\83\ 3\0\ 1|\v\0j\11\0d\1f\0\83\ 1\0\ 1|\b\0j\18\0d\ 5\0|
33562 +\0|\v\0g\ 2\0t\16\0\83\ 3\0\ 1t\13\0j\ 1\0\83\0\0}\f\0|\f\0j\ 2\0d\ 5\0d   \0d\b\0g\ 3\0d\ 6\0d\b\0\83\ 3\0\ 1|\f\0j\11\0d\1e\0\83\ 1\0\ 1t\13\0j\ 1\0\83\0\0}\r\0|\r\0j\ 2\0d\ 5\0d    \0g\ 2\0d   \0d\b\0\83\ 3\0\ 1|\r\0j\11\0d\1f\0\83\ 1\0\ 1|\b\0j\18\0d\1c\0|\f\0|\r\0g\ 2\0t\16\0\83\ 3\0\ 1t\13\0j\ 1\0\83\0\0}\ e\0|\ e\0j\ 2\0d\11\0d\16\0d\17\0d\18\0d\12\0d\19\0d\1a\0d\e\0g\b\0d\r\0d\b\0\83\ 3\0\ 1|\ e\0j\11\0d\1e\0\83\ 1\0\ 1t\13\0j\ 1\0\83\0\0}\ f\0|\ f\0j\ 2\0d\11\0d\16\0d\17\0d\18\0d\12\0d\19\0d\1a\0d\e\0d\13\0g        \0d\ e\0d\b\0\83\ 3\0\ 1|\ f\0j\11\0d\1f\0\83\ 1\0\ 1|\b\0j\18\0d\b\0|\ e\0|\ f\0g\ 2\0t\16\0\83\ 3\0\ 1|\b\0j\19\0d\ 5\0d\1e\0t\16\0\83\ 3\0}\10\0|\0\0j\1a\0|
33563 +\0j\e\0|\10\0\83\ 1\0\83\ 1\0\ 1|\b\0j\19\0d\ 5\0d\1f\0t\16\0\83\ 3\0}\10\0|\0\0j\1a\0|\v\0j\e\0|\10\0\83\ 1\0\83\ 1\0\ 1|\b\0j\19\0d\1c\0d\1e\0t\16\0\83\ 3\0}\10\0|\0\0j\1a\0|\f\0j\e\0|\10\0\83\ 1\0\83\ 1\0\ 1|\b\0j\19\0d\1c\0d\1f\0t\16\0\83\ 3\0}\10\0|\0\0j\1a\0|\r\0j\e\0|\10\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1a\0|\b\0j\1c\0\0\83\ 1\0\f\83\ 1\0\ 1|\b\0j\1d\0|\ 1\0d       \0\83\ 2\0\ 1t\1e\0j\ 1\0|\ 1\0\83\ 1\0}\11\0|\b\0j\e\0|\11\0d!\0\83\ 2\0}\12\0|\0\0j\1a\0|\12\0d\ 5\0\19\83\ 1\0\ 1t\1f\0|\11\0\0d\1f\0\83\ 1\0\83\ 1\0}\13\0|\13\0j!\0\83\0\0\ 1|\0\0j"\0d"\0d#\0d$\0d%\0d&\0g\ 5\0|\13\0\83\ 2\0\ 1|\11\0j#\0d\ 6\0g\ 1\0d\1c\0g\ 1\0\83\ 2\0\ 1xK\0|\b\0j$\0d\1f\0\83\ 1\0D]:\0}\14\0|\0\0j"\0|\b\0j\19\0|\14\0d\1f\0\83\ 2\0j%\0\83\0\0|\11\0j\19\0|\14\0d\1f\0\83\ 2\0j%\0\83\0\0\83\ 2\0\ 1q\9d\ 6Wt\1f\0|\11\0\0d\1f\0\83\ 1\0\83\ 1\0}\13\0|\13\0j!\0\83\0\0\ 1|\0\0j"\0d"\0d#\0d$\0d%\0d&\0g\ 5\0|\13\0\83\ 2\0\ 1|\0\0j"\0d'\0d'\0d(\0g\ 3\0|\11\0j&\0d\1c\0\83\ 1\0j%\0\83\0\0\83\ 2\0\ 1|\11\0j&\0d\1c\0\83\ 1\0j'\0d\b\0d\ 5\0d)\0\83\ 3\0\ 1|\0\0j"\0d'\0d)\0d(\0g\ 3\0|\11\0j&\0d\1c\0\83\ 1\0j%\0\83\0\0\83\ 2\0\ 1|\0\0j\1a\0|\11\0j(\0d*\0\83\ 1\0\f\83\ 1\0\ 1|\11\0j)\0d\1c\0d+\0\83\ 2\0\ 1|\0\0j\1a\0|\11\0j(\0d*\0\83\ 1\0\83\ 1\0\ 1|\0\0j"\0t\1f\0t*\0d\ 6\0\83\ 1\0\83\ 1\0|\11\0j\19\0d\1c\0d+\0\83\ 2\0j%\0\83\0\0\83\ 2\0\ 1d\0\0S(,\0\0\0Ns\10\0\0\0MEDFileMesh4.medg333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?i\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i  \0\0\0s\v\0\0\0abcdef [km]s    \0\0\0ghij [MW]i
33564 +\0\0\0i\ e\0\0\0i\12\0\0\0t\17\0\0\0My2ndMEDCouplingMEDmesht\1e\0\0\0ThisIsImpossibleToDoWithMEDMEMi\v\0\0\0i\f\0\0\0i\r\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0iÿÿÿÿiþÿÿÿRV\0\0\0RW\0\0\0RX\0\0\0g\11ê-\81\99\97q=s  \0\0\0Family_-3s   \0\0\0Family_-4s   \0\0\0Family_-7t   \0\0\0Family_10t   \0\0\0Family_11iùÿÿÿiúÿÿÿiøÿÿÿs    \0\0\0Family_-8t\f\0\0\0GrpOnAllFace(+\0\0\0RY\0\0\0R(\0\0\0RZ\0\0\0t\12\0\0\0setInfoOnComponentR[\0\0\0R\\0\0\0R]\0\0\0R^\0\0\0R`\0\0\0R_\0\0\0Rb\0\0\0Rc\0\0\0Rd\0\0\0Re\0\0\0Rf\0\0\0Rg\0\0\0R>\0\0\0RB\0\0\0Ri\0\0\0Rk\0\0\0t\10\0\0\0setRenumFieldArrRj\0\0\0R.\0\0\0t\11\0\0\0removeMeshAtLevelRl\0\0\0RG\0\0\0R0\0\0\0R1\0\0\0Rp\0\0\0R\v\0\0\0R'\0\0\0Rm\0\0\0t\12\0\0\0getFamiliesOnGroupt\ 4\0\0\0sortR+\0\0\0t\14\0\0\0keepFamIdsOnlyOnLevst\17\0\0\0getGrpNonEmptyLevelsExtRH\0\0\0t\15\0\0\0getFamilyFieldAtLevelt\ 5\0\0\0setIJt\f\0\0\0existsFamilyRo\0\0\0Rn\0\0\0(\15\0\0\0R       \0\0\0RO\0\0\0R\80\0\0\0R\81\0\0\0R\82\0\0\0R\83\0\0\0R\84\0\0\0R\85\0\0\0R\86\0\0\0t    \0\0\0renumNodeR\87\0\0\0R\88\0\0\0RQ\0\0\0R\89\0\0\0R\8a\0\0\0R\8b\0\0\0R\8c\0\0\0t\ 3\0\0\0mm2t\ 3\0\0\0rest\ 1\0\0\0lt\ 3\0\0\0lev(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh4î\0\0\0\0\0\0\0\ 1\ 6\ 1\f\ 1<\ 1<\ 1\13\ 1\10\ 1\10\ 1\f\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
33565 +\ 1\r\ 1
33566 +\ 1\f\ 1\r\ 1\r\ 1\19\ 1\1c\ 1\19\ 1
33567 +\ 1\r\ 1
33568 +\ 1\f\ 1\r\ 1\r\ 1\16\ 1\16\ 1\16\ 1\16\ 1
33569 +\ 1\r\ 1
33570 +\ 2\f\ 1\r\ 1\r\ 1\r\ 1\f\ 1.\ 1\10\ 1\13\ 1\13\ 1\13\ 1\r\ 1\13\ 2\f\ 1\19\ 1\r\ 1\f\ 1\1c\ 1\r\ 1\19\ 1\f\ 1\1c\ 1\r\ 1\f\ 1\19\ 1\r\ 1\19\ 1\f\ 1+\ 1\r\ 1\f\ 1.\ 1\r\ 1\19\ 2\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\17\ 2\10\ 1\ f\ 1\12\ 1\11\ 1\15\0
33571 +\ 1\1f\ 1\16\ 1\16\ 14\ 1\ 4\ 1\15\0
33572 +\ 1\1f\ 2(\ 1\1c\ 1(\ 1\17\ 1\10\ 1\16\ 1.\ 1c\ 1\0\0\0\ 6\0\0\0\ 3\0\0\0C\0\0\0so\0\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0j\ 1\0|\ 1\0|\ 2\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0t\ 3\0\83\ 1\0}\ 4\0|\ 3\0j\ 4\0d\ 3\0\83\ 1\0}\ 5\0~\ 3\0|\0\0j\ 5\0d\ 4\0|\ 4\0j\ 6\0\83\0\0\83\ 2\0\ 1|\0\0j\ 5\0d\ 4\0|\ 5\0j\a\0\83\0\0\83\ 2\0\ 1d\0\0S(\ 5\0\0\0Ns\f\0\0\0Pyfile18.medR%\0\0\0i\0\0\0\0i\14\0\0\0(\b\0\0\0R>\0\0\0R(\0\0\0R-\0\0\0R.\0\0\0R\9e\0\0\0R+\0\0\0t\10\0\0\0getNumberOfCellst\11\0\0\0getNumberOfTuples(\ 6\0\0\0R       \0\0\0R!\0\0\0R3\0\0\0R4\0\0\0R5\0\0\0t\ 3\0\0\0da1(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh5Y\ 1\0\0s\12\0\0\0\0\ 1\ 6\ 1\ 6\ 1\12\ 1\ f\ 1\ f\ 1\ 3\ 1\16\ 1\16\ 1c\ 1\0\0\0      \0\0\0\r\0\0\0C\0\0\0s\80\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 2\0d\ 3\0\83\ 3\0\ 1t\ 3\0j\ 1\0\83\0\0}\ 3\0t\ 4\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 5\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0d\a\0d\b\0\83\ 3\0\ 1|\ 4\0j\ 6\0d        \0d
33573 +\0\83\ 2\0\ 1|\ 3\0j\a\0d   \0|\ 4\0\83\ 2\0\ 1t\ 4\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 5\0d\ 4\0d\v\0g\ 2\0d\f\0d\b\0\83\ 3\0\ 1|\ 4\0j\ 6\0d    \0d\r\0\83\ 2\0\ 1|\ 3\0j\a\0d\b\0|\ 4\0\83\ 2\0\ 1t\ 4\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 5\0d\ 4\0d\ e\0g\ 2\0d\f\0d\b\0\83\ 3\0\ 1|\ 4\0j\ 6\0d    \0d\ f\0\83\ 2\0\ 1|\ 3\0j\a\0d\f\0|\ 4\0\83\ 2\0\ 1|\ 2\0j\b\0|\ 3\0\83\ 1\0\ 1|\0\0j       \0|\ 2\0d   \0\19j
33574 +\0|\ 3\0d\10\0\83\ 2\0\83\ 1\0\ 1|\0\0j     \0t\v\0|\ 2\0d        \0\19t\ 3\0\83\ 2\0\83\ 1\0\ 1|\ 2\0j\f\0d\11\0\83\ 1\0\ 1|\ 2\0j\r\0d\12\0\83\ 1\0\ 1|\ 2\0j\ e\0d\ 3\0\83\ 1\0\ 1|\ 2\0j\ f\0d\13\0\83\ 1\0\ 1t\10\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 5\0d     \0d      \0d\b\0d   \0d\b\0d\f\0d\14\0d\a\0d  \0d\b\0d\f\0d\f\0g\f\0d\15\0d\b\0\83\ 3\0\ 1|\ 2\0j\11\0d\b\0|\ 4\0\83\ 2\0\ 1|\ 2\0j\12\0d\16\0d\b\0\83\ 2\0\ 1|\ 2\0j\13\0d\b\0d\16\0\83\ 2\0}\ 4\0d\f\0d\14\0d\17\0g\ 3\0}\ 5\0|\0\0j\14\0|\ 5\0|\ 4\0j\15\0\83\0\0\83\ 2\0\ 1|\0\0j      \0|\ 2\0j\16\0\83\0\0\83\ 1\0\ 1|\ 2\0j\17\0|\ 1\0d\f\0\83\ 2\0\ 1t\18\0j\ 1\0|\ 1\0\83\ 1\0}\ 6\0|\0\0j\14\0t\19\0g\ 1\0|\ 6\0j\1a\0d        \0\83\ 1\0\83\ 2\0\ 1|\0\0j    \0t\v\0|\ 6\0t\0\0\83\ 2\0\83\ 1\0\ 1|\0\0j   \0t\v\0|\ 6\0j\e\0\83\0\0t\1c\0\83\ 2\0\83\ 1\0\ 1|\0\0j     \0t\1d\0|\ 6\0j\e\0\83\0\0\83\ 1\0d       \0k\ 3\0\83\ 1\0\ 1|\0\0j    \0|\ 2\0j
33575 +\0|\ 6\0d\10\0\83\ 2\0d    \0\19\83\ 1\0\ 1|\0\0j\14\0|\ 5\0|\ 6\0j\13\0d\b\0d\16\0\83\ 2\0j\15\0\83\0\0\83\ 2\0\ 1|\ 6\0j\1e\0\83\0\0}\a\0|\ 2\0j\1f\0\83\0\0}\b\0|\ 3\0j\ 2\0|\b\0d\f\0\19|\b\0d       \0\19|\b\0d\b\0\19\83\ 3\0\ 1|\ 3\0j\f\0|\ 2\0\0\83\0\0\83\ 1\0\ 1|\ 3\0j\ f\0|\ 2\0j!\0\83\0\0\83\ 1\0\ 1|\ 3\0j\r\0|\ 2\0j"\0\83\0\0\83\ 1\0\ 1|\0\0j      \0|\a\0j
33576 +\0|\ 3\0d\10\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\18\0\0\0Ns\10\0\0\0MEDFileMesh5.mediÿÿÿÿgffffff\ 2@g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@i\ 3\0\0\0i\ 1\0\0\0i\0\0\0\0s\a\0\0\0XX [mm]g333333ó?i\ 2\0\0\0s\a\0\0\0YY [km]gÍÌÌÌÌÌô?s\a\0\0\0ZZ [um]g\11ê-\81\99\97q=t\ f\0\0\0myFirstCartMesht\f\0\0\0mmmmppppppppt\ 2\0\0\0msi\ 4\0\0\0i\f\0\0\0t\a\0\0\0family1i   \0\0\0(#\0\0\0t\f\0\0\0MEDFileCMeshR(\0\0\0t\a\0\0\0setTimet\10\0\0\0MEDCouplingCMeshRY\0\0\0RZ\0\0\0R\97\0\0\0t\v\0\0\0setCoordsAtt\a\0\0\0setMeshR0\0\0\0R1\0\0\0Rt\0\0\0RB\0\0\0Ri\0\0\0t\f\0\0\0setTimeValuet\v\0\0\0setTimeUnitRk\0\0\0t\11\0\0\0setFamilyFieldArrt\v\0\0\0setFamilyIdRI\0\0\0R+\0\0\0RH\0\0\0Rh\0\0\0R\v\0\0\0R'\0\0\0t
33577 +\0\0\0NORM_HEXA8Rr\0\0\0R{\0\0\0R|\0\0\0Ry\0\0\0t\a\0\0\0getMesht\a\0\0\0getTimeRC\0\0\0t\v\0\0\0getTimeUnitR~\0\0\0(   \0\0\0R    \0\0\0RO\0\0\0R\83\0\0\0R\84\0\0\0t\ 2\0\0\0dat      \0\0\0expected1R\86\0\0\0R\85\0\0\0t\ 2\0\0\0tt(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh6d\ 1\0\0s^\0\0\0\0\ 1\ 6\ 1\f\ 1\13\ 1\f\ 1\f\ 1\1c\ 1\10\ 1\10\ 1\f\ 1\19\ 1\10\ 1\10\ 1\f\ 1\19\ 1\10\ 1\10\ 1\r\ 1\1d\ 1\1a\ 1\r\ 1\r\ 1\r\ 1\r\ 1\f\ 17\ 1\10\ 1\10\ 1\12\ 1\ f\ 1\16\ 1\13\ 1\10\ 1\ f\ 1\1c\ 1\16\ 1\1c\ 1\1f\ 1\1d\ 1"\ 1\f\ 1\f\ 1\1f\ 1\13\ 1\13\ 1\13\ 1\19\ 1c\ 1\0\0\0\14\0\0\0\ f\0\0\0C\0\0\0\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0\\ e\0}\ 2\0}\ 3\0}\ 4\0}\ 5\0}\ 6\0}\a\0}\b\0}   \0}
33578 +\0}\v\0}\f\0}\r\0}\ e\0}\ f\0t\ 2\0j\ 3\0\83\0\0}\10\0|\10\0j\ 4\0|\ 2\0j\ 5\0\83\0\0\83\ 1\0\ 1|\10\0j\ 6\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\10\0j\ 6\0d\ 3\0|\ 3\0\83\ 2\0\ 1|\10\0j\ 6\0d\ 4\0|\ 4\0\83\ 2\0\ 1|\10\0j\a\0d\ 2\0|\ 5\0\83\ 2\0\ 1|\10\0j\a\0d\ 3\0|\ 6\0\83\ 2\0\ 1|\10\0j\a\0d\ 4\0|\a\0\83\ 2\0\ 1|\10\0j\a\0d\ 5\0|\b\0\83\ 2\0\ 1|\10\0j\b\0d\ 2\0|      \0\83\ 2\0\ 1|\10\0j\b\0d\ 3\0|
33579 +\0\83\ 2\0\ 1|\10\0j\b\0d\ 4\0|\v\0\83\ 2\0\ 1\0|\f\0\83\ 1\0}\11\0x,\0t
33580 +\0|\11\0\83\ 1\0D]\1e\0}\12\0|\10\0j\v\0|\f\0|\12\0\19|\r\0|\12\0\19\83\ 2\0\ 1q\14\ 1Wt    \0|\ e\0\83\ 1\0}\13\0x,\0t
33581 +\0|\13\0\83\ 1\0D]\1e\0}\12\0|\10\0j\f\0|\ e\0|\12\0\19|\ f\0|\12\0\19\83\ 2\0\ 1qO\ 1W|\10\0j\r\0|\ 2\0j\ e\0\83\0\0\83\ 1\0\ 1|\10\0j\ f\0|\ 2\0j\10\0\83\0\0\83\ 1\0\ 1|\0\0j\11\0d\1e\0|\10\0j\12\0d\ 6\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0d\1f\0|\10\0j\12\0d\a\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0\0|\10\0j\12\0d\b\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0d!\0|\10\0j\13\0d\ 6\0d\b\0g\ 2\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0d"\0|\10\0j\14\0d     \0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0d#\0|\10\0j\14\0d
33582 +\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0d$\0|\10\0j\15\0d
33583 +\0d     \0g\ 2\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0d%\0|\10\0j\16\0d\ 3\0\83\ 1\0\83\ 2\0\ 1|\0\0j\11\0d&\0|\10\0j\16\0d\ 2\0\83\ 1\0\83\ 2\0\ 1|\10\0j\17\0|\ 1\0d\1d\0\83\ 2\0\ 1|\0\0j\18\0t\19\0t\1a\0|\ 1\0\83\ 3\0\ 1d\0\0S('\0\0\0Ns\f\0\0\0Pyfile24.medi\0\0\0\0iÿÿÿÿiþÿÿÿi\ 1\0\0\0t\ 4\0\0\0A2A4t\ 2\0\0\0A1t\ 3\0\0\0AP2t \0\0\0A4A3____________________________t \0\0\0MESH____DALT3___DALLE___________t\ 4\0\0\0A1A2t\ 4\0\0\0A3A1t\ 4\0\0\0A3C5t\ 4\0\0\0A4A3t\ 4\0\0\0B1C1t\ 4\0\0\0B2B4t\ 4\0\0\0B3B1t\ 4\0\0\0B4C3t\ 4\0\0\0C1C4t\ 4\0\0\0C2B2t\ 4\0\0\0C3C2t\ 4\0\0\0C4B3t\ 4\0\0\0C5A4t\ 5\0\0\0DALLEt\ 5\0\0\0DALQ1t\ 5\0\0\0DALQ2t\ 5\0\0\0DALT3t\ 4\0\0\0MESHi\ 2\0\0\0(\ 1\0\0\0iÿÿÿÿ(\0\0\0\0(\ 1\0\0\0iþÿÿÿ(\ 2\0\0\0iÿÿÿÿiþÿÿÿ(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\ e\0\0\0s\ 4\0\0\0A1A2s\ 4\0\0\0A2A4s\ 4\0\0\0A3A1s\ 4\0\0\0A3C5s\ 4\0\0\0A4A3s\ 4\0\0\0B1C1s\ 4\0\0\0B2B4s\ 4\0\0\0B3B1s\ 4\0\0\0B4C3s\ 4\0\0\0C1C4s\ 4\0\0\0C2B2s\ 4\0\0\0C3C2s\ 4\0\0\0C4B3s\ 4\0\0\0C5A4(\ 5\0\0\0s\ 5\0\0\0DALLEs\ 5\0\0\0DALQ1s\ 5\0\0\0DALQ2s\ 5\0\0\0DALT3s\ 4\0\0\0MESH(\e\0\0\0R\ 4\0\0\0t\15\0\0\0buildMultiLevelMesh_1R>\0\0\0R(\0\0\0Rc\0\0\0t    \0\0\0getCoordsRj\0\0\0\0\0\0R\98\0\0\0Ry\0\0\0Rn\0\0\0t  \0\0\0addFamilyt\15\0\0\0setFamiliesIdsOnGroupRB\0\0\0RC\0\0\0Ri\0\0\0R~\0\0\0R+\0\0\0t\14\0\0\0getGrpNonEmptyLevelst\15\0\0\0getGrpsNonEmptyLevelst\14\0\0\0getFamNonEmptyLevelst\15\0\0\0getFamsNonEmptyLevelst\17\0\0\0getGroupsOnSpecifiedLevR\v\0\0\0R)\0\0\0R*\0\0\0t\ f\0\0\0MEDFileField1TS(\14\0\0\0R      \0\0\0R!\0\0\0R\85\0\0\0R\84\0\0\0t\ 2\0\0\0m0t\ 2\0\0\0f2t\ 2\0\0\0f1t\ 2\0\0\0f0t\ 1\0\0\0pt\ 2\0\0\0n2t\ 2\0\0\0n1t\ 2\0\0\0n0t\ 3\0\0\0fnst\ 4\0\0\0fidst\ 5\0\0\0grpnst\f\0\0\0famIdsPerGrpR\83\0\0\0t\b\0\0\0nbOfFamst\ 1\0\0\0it\b\0\0\0nbOfGrps(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh7\95\ 1\0\0sH\0\0\0\0\ 1\ 6\ 16\ 1\f\ 1\13\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\f\ 1\13\ 1\18\ 1\ 4\ 1\f\ 1\13\ 1\18\ 1\ 4\ 1\13\ 1\13\ 2\19\ 1\19\ 1\19\ 1\1f\ 1\19\ 1\19\ 1\1f\ 1\19\ 1\19\ 2\10\ 1\13\ 1c\ 2\0\0\0\ 2\0\0\0\ 4\0\0\0C\0\0\0s\11\0\0\0|\ 1\0d\ 1\0d\ 4\0g\ 2\0=d\0\0S(\ 5\0\0\0Ng{\14®Gáz\94?i\ 3\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0(\0\0\0\0(\ 2\0\0\0R        \0\0\0t\ 2\0\0\0ff(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\11\0\0\0funcToTestDelItem½\ 1\0\0s\ 4\0\0\0\0\ 1\r\ 1c\ 1\0\0\0\b\0\0\0\ 5\0\0\0C\0\0\0\ 1\0\0t\0\0j\ 1\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 2\0d\ 2\0d\ 3\0\83\ 2\0\ 1t\ 3\0d\ 1\0\83\ 1\0}\ 2\0d\ 4\0d\ 3\0g\ 2\0d\ 5\0d\ 6\0g\ 2\0d\a\0d\b\0g\ 2\0g\ 3\0}\ 3\0|\0\0j\ 4\0d\ 5\0t\ 5\0|\ 2\0\83\ 1\0\83\ 2\0\ 1xN\0t\ 6\0|\ 2\0\83\ 1\0D]@\0\\ 2\0}\ 4\0}\ 5\0|\0\0j\ 4\0|\ 3\0|\ 4\0\19|\ 5\0j\a\0\83\0\0d\ 3\0 \83\ 2\0\ 1|\0\0j\ 4\0t\b\0|\ 5\0\83\ 1\0t  \0\83\ 2\0\ 1qo\0W|\0\0j\ 4\0d        \0|\ 2\0j
33584 +\0\83\0\0\83\ 2\0\ 1|\0\0j\ 4\0d\ 5\0d\ 6\0g\ 2\0|\ 2\0d\ 4\0\19j\a\0\83\0\0d
33585 +\0 \83\ 2\0\ 1|\0\0j\ 4\0d\ 5\0d\ 6\0g\ 2\0|\ 2\0d\r\0\19j\a\0\83\0\0d
33586 +\0 \83\ 2\0\ 1|\0\0j\ 4\0d\ 5\0d\ 6\0g\ 2\0|\ 2\0d\v\0\19j\a\0\83\0\0d
33587 +\0 \83\ 2\0\ 1|\ 2\0j\ 2\0d\ 2\0d\f\0\83\ 2\0\ 1|\ 2\0j\v\0\83\0\0}\ 6\0g\0\0|\ 6\0D]\10\0}\a\0|\a\0d
33588 +\0 ^\ 2\0qX\ 1}\ 6\0|\0\0j\ 4\0d\ e\0d\ f\0d\10\0g\ 3\0|\ 6\0\83\ 2\0\ 1|\0\0j\f\0|\ 2\0\83\ 1\0\ 1|\ 2\0j\v\0\83\0\0}\ 6\0g\0\0|\ 6\0D]\10\0}\a\0|\a\0d
33589 +\0 ^\ 2\0\ 1}\ 6\0|\0\0j\ 4\0d\11\0g\ 1\0|\ 6\0\83\ 2\0\ 1d\0\0S(\12\0\0\0Ns\f\0\0\0Pyfile17.meds\10\0\0\0Pyfile17_bis.medi\ 2\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0t\16\0\0\0MeasureOfMesh_Extrudediÿÿÿÿg{\14®Gáz\84?i\0\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\r\0\0\0R'\0\0\0R(\0\0\0R\v\0\0\0t\13\0\0\0MEDFileFieldMultiTSR+\0\0\0Ry\0\0\0t   \0\0\0enumerateRº\0\0\0t\ 4\0\0\0typeRà\0\0\0RC\0\0\0t\f\0\0\0getTimeStepsRò\0\0\0(\b\0\0\0R        \0\0\0R\86\0\0\0\0\0\0t
33590 +\0\0\0tsExpectedt\ 3\0\0\0post\ 4\0\0\0f1tst\ 2\0\0\0tst\ 3\0\0\0elt(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField1Â\ 1\0\0s,\0\0\0\0\ 1\ f\ 1\10\ 1\f\ 1!\ 1\16\ 1\19\ 1\1e\ 1\16\ 1\ 4\ 1\16\ 1$\ 1$\ 1$\ 1\10\ 2\f\0\1d\ 1\19\ 1\r\ 1\f\0\1d\ 1\13\ 1c\ 1\0\0\0\ 3\0\0\0\ 5\0\0\0C\0\0\0sa\0\0\0t\0\0j\ 1\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 2\0d\ 2\0d\ 3\0\83\ 2\0\ 1t\ 3\0j\ 1\0d\ 1\0\83\ 1\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 4\0\83\ 2\0\ 1|\0\0j\ 4\0d
33591 +\0d\v\0g\ 2\0t\ 5\0d\ 2\0\0\83\ 2\0\83\ 2\0\ 1d\0\0S(\f\0\0\0Ns\f\0\0\0Pyfile19.meds\10\0\0\0Pyfile19_bis.medi\ 2\0\0\0i\0\0\0\0t\ 4\0\0\0tytyR\86\0\0\0t\ 4\0\0\0uiopt\ 2\0\0\0MWt\r\0\0\0VFieldOnNodes(\ 2\0\0\0\0\0\0s\ 2\0\0\0mm(\ 2\0\0\0Rÿ\0\0\0R\0\ 1\0\0(\ 6\0\0\0R'\0\0\0R(\0\0\0R\v\0\0\0\0\0\0R+\0\0\0t\19\0\0\0GetComponentsNamesOfField(\ 3\0\0\0R    \0\0\0R\86\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField2Ú\ 1\0\0s\f\0\0\0\0\ 1\ f\ 1\10\ 1\ f\ 1\10\ 1\1f\ 1c\ 1\0\0\0     \0\0\0\a\0\0\0C\0\0\0s#\ 1\0\0t\0\0j\ 1\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 2\0d\ 2\0d\ 3\0\83\ 2\0\ 1t\ 3\0j\ 1\0d\ 1\0d\ 4\0\83\ 2\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 5\0\83\ 2\0\ 1t\ 4\0j\ 1\0d\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0}\ 2\0|\ 2\0j\ 5\0t\ 6\0d\ 5\0\83\ 2\0}\ 3\0t\a\0d\ 1\0d\b\0d\ 5\0d\ 4\0d\ 6\0d\a\0\83\ 6\0}\ 4\0|\0\0j\b\0|\ 3\0j        \0|\ 4\0d   \0d      \0\83\ 3\0\83\ 1\0\ 1t\ 4\0j\ 1\0d\ 1\0d\ 4\0\83\ 2\0}\ 5\0|\ 5\0j\ 5\0t\ 6\0d\ 5\0\83\ 2\0}\ 6\0|\0\0j\b\0|\ 3\0j  \0|\ 6\0d   \0d      \0\83\ 3\0\83\ 1\0\ 1t\ 4\0j\ 1\0d\ 1\0\83\ 1\0}\a\0|\a\0j\ 5\0t\ 6\0d\ 5\0\83\ 2\0}\b\0|\0\0j\b\0|\ 3\0j     \0|\b\0d   \0d      \0\83\ 3\0\83\ 1\0\ 1d\0\0S(
33592 +\0\0\0Ns\f\0\0\0Pyfile13.meds\10\0\0\0Pyfile13_bis.medi\ 2\0\0\0t\18\0\0\0MyFirstFieldOnGaussPointi\0\0\0\0i\ 1\0\0\0i\ 5\0\0\0t\b\0\0\02DMesh_2g\11ê-\81\99\97q=(
33593 +\0\0\0R'\0\0\0R(\0\0\0R\v\0\0\0\0\0\0\0\0\0t\ f\0\0\0getFieldAtLevelt\v\0\0\0ON_GAUSS_PTt\ e\0\0\0ReadFieldGaussR0\0\0\0R1\0\0\0\0\0\0R    \0\0\0R\86\0\0\0\0\0\0R\b\0\0\0\0\0\0t\ 3\0\0\0ff3t\ 2\0\0\0f3t\ 3\0\0\0ff4t\ 2\0\0\0f4(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField3ã\ 1\0\0s\1e\0\0\0\0\ 1\ f\ 1\10\ 1\12\ 1\10\ 1\18\ 1\12\ 1\e\ 1\1c\ 1\12\ 1\12\ 1\1c\ 1\ f\ 1\12\ 1\1c\ 1c\ 1\0\0\0\ 5\0\0\0\a\0\0\0C\0\0\0\0\0\0t\0\0j\ 1\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 2\0d\ 2\0d\ 3\0\83\ 2\0\ 1t\ 3\0j\ 1\0d\ 1\0d\ 4\0\83\ 2\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 5\0\83\ 2\0\ 1t\ 4\0j\ 1\0d\ 1\0d\ 4\0d\ 6\0d\a\0\83\ 4\0}\ 2\0|\ 2\0j\ 5\0t\ 6\0d\ 5\0\83\ 2\0}\ 3\0t\a\0d\ 1\0d\b\0d\ 5\0d\ 4\0d\ 6\0d\a\0\83\ 6\0}\ 4\0|\0\0j\b\0|\ 3\0j  \0|\ 4\0d   \0d      \0\83\ 3\0\83\ 1\0\ 1d\0\0S(
33594 +\0\0\0Ns\f\0\0\0Pyfile14.meds\10\0\0\0Pyfile14_bis.medi\ 2\0\0\0t\10\0\0\0MyFieldOnGaussNEi\0\0\0\0i\ 1\0\0\0i\ 5\0\0\0R\ 5\ 1\0\0g\11ê-\81\99\97q=(
33595 +\0\0\0R'\0\0\0R(\0\0\0R\v\0\0\0\0\0\0\0\0\0R\ 6\ 1\0\0t\v\0\0\0ON_GAUSS_NEt\10\0\0\0ReadFieldGaussNER0\0\0\0R1\0\0\0(\ 5\0\0\0\0\0\0R\86\0\0\0\0\0\0R\b\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField4õ\ 1\0\0s\12\0\0\0\0\ 1\ f\ 1\10\ 1\12\ 1\10\ 1\18\ 1\12\ 1\e\ 1\1c\ 1c\ 1\0\0\0\ 4\0\0\0\a\0\0\0C\0\0\0\ 1\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0\83\ 4\0}\ 1\0|\ 1\0j\ 2\0t\ 3\0d\ 5\0\83\ 2\0}\ 2\0t\ 4\0d\ 1\0d\ 6\0d\ 5\0d\ 2\0d\ 3\0d\ 4\0\83\ 6\0}\ 3\0|\0\0j\ 5\0|\ 2\0j\ 6\0\83\0\0j\a\0\83\0\0j\b\0|\ 3\0j\ 6\0\83\0\0j\a\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1|\ 2\0j\ 6\0\83\0\0j    \0|\ 3\0j\ 6\0\83\0\0d\a\0\83\ 2\0\ 1|\ 2\0j
33596 +\0|\ 3\0j\ 6\0\83\0\0d\b\0d\a\0\83\ 3\0\ 1|\0\0j\ 5\0|\ 2\0j\b\0|\ 3\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ 1\0j\ 2\0t\ 3\0d\ 5\0d\ 3\0\83\ 3\0}\ 2\0t\ 4\0d\ 1\0d\ 6\0d\ 5\0d\ 2\0d\ 3\0d\ 4\0\83\ 6\0}\ 3\0|\0\0j\ 5\0|\ 2\0j\b\0|\ 3\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ 1\0j\ 2\0t\ 3\0d\ 5\0d      \0\83\ 3\0}\ 2\0|\0\0j\ 5\0|\ 2\0j\b\0|\ 3\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ 1\0j\ 2\0t\ 3\0d\ 5\0d\ 4\0\83\ 3\0}\ 2\0|\0\0j\ 5\0|\ 2\0j\b\0|\ 3\0d\a\0d\a\0\83\ 3\0\f\83\ 1\0\ 1|\ 2\0j
33597 +\0|\ 3\0j\ 6\0\83\0\0d
33598 +\0d\a\0\83\ 3\0\ 1|\0\0j\ 5\0|\ 2\0j\b\0|\ 3\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\v\0\0\0Ns\f\0\0\0Pyfile17.medRó\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\0\0\0\0t\b\0\0\0Extrudedg\11ê-\81\99\97q=i\16\0\0\0i\ 3\0\0\0i\f\0\0\0(\v\0\0\0\0\0\0R(\0\0\0R\ 6\ 1\0\0t\b\0\0\0ON_CELLSt\r\0\0\0ReadFieldCellR0\0\0\0\0\0\0\0\0\0R1\0\0\0t\14\0\0\0tryToShareSameCoordst\14\0\0\0changeUnderlyingMesh(\ 4\0\0\0R        \0\0\0\0\0\0R\b\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField5\ 1\ 2\0\0s"\0\0\0\0\ 1\18\ 1\12\ 1\e\ 11\ 1\1c\ 1\19\ 1\1c\ 2\15\ 1\e\ 1\1c\ 1\15\ 1\1c\ 1\15\ 1\1d\ 1\19\ 1\1c\ 1c\ 1\0\0\0\ 5\0\0\0\b\0\0\0C\0\0\0\ 1\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 2\0\83\0\0}\ 2\0|\0\0j\ 3\0t\ 4\0|\ 1\0j\ 5\0t\ 6\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19d\ 3\0\83\ 6\0\ 1|\ 1\0j\ 5\0t\a\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19d\ 3\0\83\ 4\0}\ 3\0t\b\0d\ 1\0d\ 5\0d\ 3\0d\ 2\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19\83\ 6\0}\ 4\0|\0\0j     \0|\ 3\0j
33599 +\0|\ 4\0d\ 6\0d\ 6\0\83\ 3\0\83\ 1\0\ 1t\0\0j\ 1\0d\a\0d\b\0\83\ 2\0}\ 1\0|\ 1\0j\ 2\0\83\0\0}\ 2\0|\ 1\0j\ 5\0t\a\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19d\ 3\0\83\ 4\0}\ 3\0t\b\0d\a\0\0d\ 3\0d\b\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19\83\ 6\0}\ 4\0|\0\0\0|\ 3\0j
33600 +\0|\ 4\0d\ 6\0d\ 6\0\83\ 3\0\83\ 1\0\ 1|\0\0j\ 3\0t\ 4\0|\ 1\0j\ 5\0t\ 6\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19d\ 3\0\83\ 6\0\ 1|\0\0j\ 3\0t\ 4\0|\ 1\0j\ 5\0t\a\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19d\ 3\0d\ 4\0\83\a\0\ 1d\0\0S(
33601 +\0\0\0Ns\v\0\0\0Pyfile7.medt\12\0\0\0VectorFieldOnNodesi\0\0\0\0i\ 1\0\0\0t\f\0\0\03DSurfMesh_1g\11ê-\81\99\97q=s\f\0\0\0Pyfile19.medR\ 1\ 1\0\0t\b\0\0\02DMesh_1(\v\0\0\0\0\0\0R(\0\0\0t\r\0\0\0getIterationsR)\0\0\0R*\0\0\0R\ 6\ 1\0\0R\13\ 1\0\0t\b\0\0\0ON_NODESt\r\0\0\0ReadFieldNodeR0\0\0\0R1\0\0\0(\ 5\0\0\0\0\0\0\0\0\0t\ 3\0\0\0itsR\b\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField6\16\ 2\0\0s\1c\0\0\0\0\ 1\12\ 1\f\ 1/\ 1(\ 1+\ 1\1c\ 1\12\ 1\f\ 1(\ 1+\ 1\1c\ 1/\ 12\ 1c\ 1\0\0\0\ 5\0\0\0\b\0\0\0C\0\0\0s\91\0\0\0t\0\0j\ 1\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 2\0\83\0\0}\ 2\0|\ 1\0j\ 3\0t\ 4\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19d\ 3\0\83\ 4\0}\ 3\0t\ 5\0d\ 1\0d\ 5\0d\ 3\0d\ 2\0|\ 2\0d\ 3\0\19d\ 3\0\19|\ 2\0d\ 3\0\19d\ 4\0\19\83\ 6\0}\ 4\0|\0\0j\ 6\0|\ 3\0j\a\0|\ 4\0d\ 6\0d\ 6\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\a\0\0\0Ns\f\0\0\0Pyfile12.medt\12\0\0\0VectorFieldOnCellsi\0\0\0\0i\ 1\0\0\0t\b\0\0\03DMesh_1g\11ê-\81\99\97q=(\b\0\0\0\0\0\0R(\0\0\0R\e\ 1\0\0R\ 6\ 1\0\0R\13\ 1\0\0R\14\ 1\0\0R0\0\0\0R1\0\0\0(\ 5\0\0\0R     \0\0\0\0\0\0R\1e\ 1\0\0R\b\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField7'\ 2\0\0s\f\0\0\0\0\ 1\12\ 1\f\ 1(\ 1+\ 1\1c\ 1c\ 1\0\0\0\12\0\0\0\r\0\0\0C\0\0\0\a\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0\83\0\0}\ 3\0t\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 3\0j   \0\83\0\0\83\ 1\0\ 1|\ 4\0j
33602 +\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\v\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\f\0|\ 2\0\83\ 1\0\ 1|\ 5\0j
33603 +\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\r\0|\ 1\0|\ 2\0j\ 2\0\83\0\0j    \0\83\0\0d\ 2\0|\ 2\0j     \0\83\0\0|\ 2\0j\ e\0\83\0\0d\ 4\0\19|\ 2\0j\ e\0\83\0\0d\ 3\0\19\83\ 6\0}\ 6\0|\ 5\0j\ e\0\83\0\0\\ 3\0}\a\0}\b\0\0|\0\0j\ f\0d\ 2\0|\a\0\83\ 2\0\ 1|\0\0j\ f\0d\ 4\0|\b\0\83\ 2\0\ 1|\0\0j\10\0d\ 5\0|     \0d\ 6\0\83\ 3\0\ 1|\0\0j\11\0|\ 2\0j\12\0|\ 6\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ 5\0j\13\0d\b\0d  \0d
33604 +\0\83\ 3\0\ 1|\ 5\0j\ e\0\83\0\0\\ 3\0}\a\0}\b\0}       \0|\0\0j\ f\0d\b\0|\a\0\83\ 2\0\ 1|\0\0j\ f\0d        \0|\b\0\83\ 2\0\ 1|\0\0j\10\0d
33605 +\0|     \0d\ 6\0\83\ 3\0\ 1|\ 2\0j\13\0d\v\0d\f\0d\r\0\83\ 3\0\ 1|\ 5\0j\14\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\ e\0\83\0\0\\ 3\0}\a\0}\b\0}     \0|\0\0j\ f\0d\f\0|\a\0\83\ 2\0\ 1|\0\0j\ f\0d\r\0|\b\0\83\ 2\0\ 1|\0\0j\10\0d\v\0|     \0d\ 6\0\83\ 3\0\ 1|\ 5\0j\15\0\83\0\0\\ 2\0}
33606 +\0}\v\0|\ 6\0j\16\0\83\0\0j\b\0|
33607 +\0j     \0\83\0\0\83\ 1\0\ 1|\0\0j\11\0|
33608 +\0j\12\0|\ 6\0j\16\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ f\0d\1d\0d\1e\0f\ 2\0d\1f\0\0f\ 2\0d!\0d"\0f\ 2\0d#\0d$\0f\ 2\0g\ 4\0|\v\0\83\ 2\0\ 1d\10\0}\ 1\0t\0\0j\17\0\83\0\0}\ 2\0|\ 2\0j\ 2\0\83\0\0}\ 3\0t\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 3\0j     \0\83\0\0\83\ 1\0\ 1|\ 4\0j
33609 +\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\v\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\f\0|\ 2\0\83\ 1\0\ 1d\11\0}\f\0|\ 5\0j\18\0\83\0\0j\19\0d\ 2\0d\ 2\0|\f\0\83\ 3\0}
33610 +\0|\ 5\0j
33611 +\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\1a\0|\ 1\0|\ 2\0j\ 2\0\83\0\0j    \0\83\0\0d\ 2\0|\ 2\0j     \0\83\0\0|\ 2\0j\ e\0\83\0\0d\ 4\0\19|\ 2\0j\ e\0\83\0\0d\ 3\0\19\83\ 6\0}\ 6\0|\0\0j\11\0|\ 2\0j\12\0|\ 6\0d\a\0d\a\0\83\ 3\0\f\83\ 1\0\ 1|\ 2\0j\16\0\83\0\0j\19\0d\ 2\0d\ 2\0|\f\0\83\ 3\0\ 1|\0\0j\11\0|\ 2\0j\12\0|\ 6\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1d\12\0}\ 1\0t\0\0j\e\0\83\0\0}\ 2\0|\ 2\0j\ 2\0\83\0\0}\ 3\0t\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 3\0j   \0\83\0\0\83\ 1\0\ 1|\ 4\0j
33612 +\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\v\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\f\0|\ 2\0\83\ 1\0\ 1|\ 5\0j
33613 +\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\1c\0|\ 1\0|\ 2\0j\ 2\0\83\0\0j    \0\83\0\0d\ 2\0|\ 2\0j     \0\83\0\0|\ 2\0j\ e\0\83\0\0d\ 4\0\19|\ 2\0j\ e\0\83\0\0d\ 3\0\19\83\ 6\0}\ 6\0|\0\0j\11\0|\ 2\0j\12\0|\ 6\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ 5\0j\15\0\83\0\0\\ 2\0}
33614 +\0}\v\0|\ 6\0j\16\0\83\0\0j\b\0|
33615 +\0j     \0\83\0\0\83\ 1\0\ 1|\0\0j\11\0|
33616 +\0j\12\0|\ 6\0j\16\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ f\0d%\0d&\0f\ 2\0d'\0d(\0f\ 2\0d)\0d*\0f\ 2\0g\ 3\0|\v\0\83\ 2\0\ 1d\14\0}\ 1\0t\0\0j\1d\0\83\0\0}\ 2\0|\ 2\0j\1e\0\83\0\0}\r\0|\r\0j\1f\0\0\83\0\0\83\ 1\0\ 1|\ 2\0j\1e\0\83\0\0}\ e\0|\ e\0j\1f\0\0\83\0\0\83\ 1\0\ 1|\ 2\0j\ 2\0\83\0\0}\ 3\0t\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 3\0j      \0\83\0\0\83\ 1\0\ 1|\ 4\0j
33617 +\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\v\0j\ 4\0\83\0\0}\ 5\0|\0\0j!\0t"\0|\ 5\0j\f\0|\r\0\83\ 3\0\ 1|\ e\0j#\0\83\0\0j$\0|\ 2\0j#\0\83\0\0j%\0\83\0\0\83\ 1\0\ 1|\0\0j!\0t"\0|\ 5\0j\f\0|\ e\0\83\ 3\0\ 1|\ 5\0j\f\0|\ 2\0\83\ 1\0\ 1|\ 5\0j
33618 +\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\v\0j\ 4\0|\ 1\0|\ 2\0j       \0\83\0\0|\ 2\0j\ e\0\83\0\0d\ 4\0\19|\ 2\0j\ e\0\83\0\0d\ 3\0\19\83\ 4\0}\ f\0|\ f\0j&\0t'\0d\ 2\0\83\ 2\0}\ 6\0|\0\0j\11\0|\ 2\0j\12\0|\ 6\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ f\0j(\0\83\0\0}\10\0|\ f\0j)\0d\15\0\83\ 1\0}\11\0|\0\0j\ f\0d\15\0|\11\0j      \0\83\0\0\83\ 2\0\ 1|\0\0j\ f\0d+\0|\11\0j*\0\83\0\0\83\ 2\0\ 1|\0\0j\ f\0d\ e\0|\11\0j+\0\83\0\0\83\ 2\0\ 1|\0\0j\ f\0d\b\0|\11\0j,\0\83\0\0\83\ 2\0\ 1|\0\0j\ f\0d\ 3\0|\11\0j-\0\83\0\0\83\ 2\0\ 1|\ f\0j\15\0\83\0\0\\ 2\0}
33619 +\0}\v\0|\ 6\0j\16\0\83\0\0j\b\0|
33620 +\0j     \0\83\0\0\83\ 1\0\ 1|\0\0j\11\0|
33621 +\0j\12\0|\ 6\0j\16\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ f\0d\17\0|
33622 +\0j.\0\83\0\0\83\ 2\0\ 1|\0\0j\ f\0d,\0d-\0f\ 2\0d.\0d/\0f\ 2\0d0\0d1\0f\ 2\0d2\0d3\0f\ 2\0d4\0d5\0f\ 2\0d6\0d7\0f\ 2\0g\ 6\0|\v\0\83\ 2\0\ 1d\0\0S(8\0\0\0Ns\f\0\0\0Pyfile25.medi\0\0\0\0i\ 2\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0@i\ e\0\0\0g\11ê-\81\99\97q=i\ 3\0\0\0i\ 4\0\0\0gffffff\ 2@g\0\0\0\0\0\0\16@i\a\0\0\0i\b\0\0\0i\ 6\0\0\0i\ 5\0\0\0s\f\0\0\0Pyfile26.medg\0\0\0\0\0À\96@s\f\0\0\0Pyfile27.medi\14\0\0\0s\f\0\0\0Pyfile28.medt(\0\0\0Loc_MyFirstFieldOnGaussPoint_NORM_TRI6_5iÿÿÿÿi5\0\0\0i\12\0\0\0i\1e\0\0\0i$\0\0\0i*\0\0\0i,\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 6\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 5\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 6\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 6\0\0\0i\ e\0\0\0(\ 2\0\0\0i\ 6\0\0\0i\0\0\0\0(\ 2\0\0\0i\ e\0\0\0i\14\0\0\0(\f\0\0\0iÿÿÿÿi\ 1\0\0\0iÿÿÿÿiÿÿÿÿi\ 1\0\0\0iÿÿÿÿiÿÿÿÿi\0\0\0\0i\0\0\0\0iÿÿÿÿi\0\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\12\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\12\0\0\0i\1e\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\1e\0\0\0i$\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\0\0\0\0(\ 2\0\0\0i$\0\0\0i*\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 1\0\0\0(\ 2\0\0\0i*\0\0\0i,\0\0\0(\ 2\0\0\0i\ 6\0\0\0i\0\0\0\0(\ 2\0\0\0i,\0\0\0i5\0\0\0(/\0\0\0R\ 4\0\0\0t\16\0\0\0buildVecFieldOnCells_1R¹\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0R\v\0\0\0\0\0\0t\14\0\0\0setFieldNoProfileSBTR\14\ 1\0\0\0\0\0R+\0\0\0t\11\0\0\0assertAlmostEqualR0\0\0\0R1\0\0\0\0\0\0t\10\0\0\0copyTimeInfoFromt\1a\0\0\0getUndergroundDataArrayExtt\b\0\0\0getArrayt\16\0\0\0buildVecFieldOnNodes_1t\17\0\0\0getUndergroundDataArrayR\9f\0\0\0R\1d\ 1\0\0t\18\0\0\0buildVecFieldOnGaussNE_1R\10\ 1\0\0t\1e\0\0\0buildVecFieldOnGauss_2_SimplerRq\0\0\0t\11\0\0\0setDiscretizationt#\0\0\0MEDCouplingFieldDiscretizationGaussR)\0\0\0R*\0\0\0t\11\0\0\0getDiscretizationt\11\0\0\0setArrayOfDiscIdst\11\0\0\0getArrayOfDiscIdsR\ 6\ 1\0\0R\a\ 1\0\0t\16\0\0\0getFieldSplitedByType2t\ f\0\0\0getLocalizationt\f\0\0\0getRefCoordst\18\0\0\0getNumberOfPointsInCellst\16\0\0\0getNumberOfGaussPointst\f\0\0\0getDimensionR¨\0\0\0(\12\0\0\0R     \0\0\0t\ 5\0\0\0fnameRã\0\0\0R\84\0\0\0t\ 3\0\0\0mm1t\ 3\0\0\0ff1Râ\0\0\0t\ 3\0\0\0ittt\ 3\0\0\0orrt\ 2\0\0\0tiR¼\0\0\0t\ 5\0\0\0infost\ 2\0\0\0nvt\f\0\0\0f1InvalidCpyt\r\0\0\0f1InvalidCpy2t\ 3\0\0\0ff2t\ 3\0\0\0sbtt\ 4\0\0\0loc1(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField80\ 2\0\0\0\0\0\0\ 1\ 6\ 1\f\ 1\f\ 1\f\ 1\13\ 1\10\ 1\13\ 1\10\ 1\f\ 1\r\ 1\10\ 1A\ 1\15\ 1\10\0\10\0\13\ 1\1c\ 1\13\ 1\15\ 1\10\0\10\0\13\ 1\13\ 1\r\ 1\15\ 1\10\0\10\0\13\ 1\12\ 1\19\ 1\1f\ 14\ 2\ 6\ 1\f\ 1\f\ 1\f\ 1\13\ 1\10\ 1\13\ 1\10\ 1\f\ 1\r\ 1\ 6\ 1\e\ 1\10\ 1A\ 1\1d\ 1\19\ 1\1c\ 2\ 6\ 1\f\ 1\f\ 1\f\ 1\13\ 1\10\ 1\13\ 1\10\ 1\f\ 1\r\ 1\10\ 1A\ 1\1c\ 1\12\ 1\19\ 1\1f\ 1+\ 2\ 6\ 1\f\ 1\f\ 1\10\ 1\f\ 1\10\ 1\f\ 1\f\ 1\13\ 1\10\ 1\13\ 1\10\ 1\f\ 1\16\ 1\1f\ 1\16\ 1\r\ 1\10\ 12\ 1\12\ 1\1c\ 1\f\ 1\ f\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\12\ 1\19\ 1\1f\ 1\16\ 1F\ 2c\ 1\0\0\0\17\0\0\0\ 4\0\0\0C\0\0\0\ 4\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0\83\0\0}\ 3\0t\ 4\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 3\0\0\83\0\0\83\ 1\0\ 1t
33623 +\0j\ 1\0\83\0\0}\ 5\0|\ 5\0j\v\0|\ 4\0\83\ 1\0\ 1t\ 2\0j\f\0\83\0\0}\ 6\0t\ 4\0j\ 1\0\83\0\0}\a\0|\a\0j\ 5\0|\ 6\0j\ 6\0\83\0\0\83\ 1\0\ 1|\a\0j\a\0d\ 2\0|\ 6\0\83\ 2\0\ 1|\a\0j\b\0|\ 6\0j   \0\83\0\0\83\ 1\0\ 1t
33624 +\0j\ 1\0\83\0\0}\b\0|\b\0j\v\0|\a\0\83\ 1\0\ 1t\r\0j\ 1\0\83\0\0}      \0|      \0j\ e\0d\ 2\0|\ 4\0\83\ 2\0\ 1\0j\ e\0d\ 3\0|\a\0\83\ 2\0\ 1|\ 2\0j\ f\0|   \0\83\ 1\0\ 1xO\0t\10\0d\ 4\0d\ 5\0g\ 2\0|   \0\83\ 2\0D]8\0\\ 2\0}
33625 +\0}\v\0|\0\0j\11\0|
33626 +\0|\v\0j  \0\83\0\0\83\ 2\0\ 1|\0\0j\11\0t\12\0|\v\0\83\ 1\0t\ 4\0\83\ 2\0\ 1q/\ 1W|\0\0j\11\0d\14\0|\ 2\0j\13\0\83\0\0j\14\0\83\0\0\83\ 2\0\ 1t\15\0j\ 1\0\83\0\0}\f\0t\15\0j\ 1\0\83\0\0}\r\0t\15\0j\ 1\0\83\0\0}\ e\0|\ 3\0j\16\0t\17\0\83\ 1\0}\ f\0|\ f\0j\b\0d\ 6\0\83\ 1\0\ 1|\ f\0j\18\0t\19\0t\1a\0\83\ 2\0}\ f\0|\ f\0j\e\0\83\0\0j\1c\0d\ 2\0d\a\0\83\ 2\0\ 1|\f\0j\1d\0|\ f\0\83\ 1\0\ 1|\ 6\0j\16\0t\17\0\83\ 1\0}\10\0|\10\0j\b\0d\b\0\83\ 1\0\ 1|\10\0j\18\0t\19\0t\1a\0\83\ 2\0}\10\0|\10\0j\e\0\83\0\0j\1c\0d\ 2\0d       \0\83\ 2\0\ 1|\r\0j\1d\0|\10\0\83\ 1\0\ 1|\10\0j\1e\0\83\0\0}\11\0|\11\0j\b\0d
33627 +\0\83\ 1\0\ 1|\11\0j\18\0t\19\0t\1a\0\83\ 2\0}\11\0|\11\0j\1f\0d\v\0d\f\0\83\ 2\0\ 1|\11\0j\e\0\83\0\0j\1c\0d\ 2\0d\r\0\83\ 2\0\ 1|\11\0j\e\0\83\0\0j\1c\0d\ 3\0d\ e\0\83\ 2\0\ 1|\ e\0j\1d\0|\11\0\83\ 1\0\ 1\0j\ 1\0\83\0\0}\12\0|\12\0j!\0|\f\0\83\ 1\0\ 1|\12\0j!\0|\r\0\83\ 1\0\ 1|\12\0j!\0|\ e\0\83\ 1\0\ 1x<\0t\10\0d\ 6\0d\b\0d
33628 +\0g\ 3\0|\12\0\83\ 2\0D]"\0\\ 2\0}
33629 +\0}\13\0|\0\0j\11\0|
33630 +\0|\13\0j  \0\83\0\0\83\ 2\0\ 1q\r\ 3W|\ 2\0j"\0|\12\0\83\ 1\0\ 1d\ f\0}\14\0|\ 2\0j#\0|\14\0d\v\0\83\ 2\0\ 1t\0\0j\ 1\0|\14\0\83\ 1\0}\15\0|\0\0j\11\0d\v\0|\15\0j$\0\83\0\0\83\ 2\0\ 1|\0\0j\11\0d\10\0|\15\0j%\0\83\0\0\83\ 2\0\ 1|\0\0j&\0t'\0|\15\0j\13\0\83\0\0j(\0d\ 2\0\83\ 1\0t\ 4\0\83\ 2\0\83\ 1\0\ 1|\0\0j&\0t'\0|\15\0j\13\0\83\0\0d\ 2\0\19t\ 4\0\83\ 2\0\83\ 1\0\ 1|\0\0j&\0t'\0|\15\0j\13\0\83\0\0d\ 5\0\19t\ 4\0\83\ 2\0\83\ 1\0\ 1|\15\0j\13\0\83\0\0j(\0d\ 2\0\83\ 1\0j)\0d\ 2\0\83\ 1\0}\16\0|\0\0j&\0|\ 3\0j*\0|\16\0d\11\0\83\ 2\0\83\ 1\0\ 1|\0\0j\11\0d\15\0|\15\0j+\0\83\0\0j,\0\83\0\0\83\ 2\0\ 1|\0\0j\11\0d\16\0g\ 1\0|\15\0j+\0\83\0\0j-\0d\v\0\83\ 1\0j.\0\83\0\0\83\ 2\0\ 1|\0\0j\11\0d\17\0g\ 1\0|\15\0j+\0\83\0\0d\v\0\19j.\0\83\0\0\83\ 2\0\ 1|\0\0j\11\0d\18\0g\ 1\0|\15\0j+\0\83\0\0j/\0d\b\0\83\ 1\0j.\0\83\0\0\83\ 2\0\ 1|\0\0j\11\0d\19\0g\ 1\0|\15\0j+\0\83\0\0d\b\0\19j.\0\83\0\0\83\ 2\0\ 1d\0\0S(\1a\0\0\0Ns\f\0\0\0Pyfile29.medi\0\0\0\0i\ 1\0\0\0t\b\0\0\01DMesh_1t\r\0\0\02DCurveMesh_1Rã\0\0\0s
33631 +\0\0\0power [kW]t\ 3\0\0\0f21s\b\0\0\0sta [mm]t\ 3\0\0\0f22i\ 2\0\0\0s\11\0\0\03*x*IVec+2*x*JVecs\r\0\0\0distance [km]s\11\0\0\0displacement [cm]s\ e\0\0\0Pyfile29_2.medi\ 3\0\0\0g\11ê-\81\99\97q=iÿÿÿÿg\0\0\0\0\0\0\0\0(\ 2\0\0\0s\b\0\0\01DMesh_1s\r\0\0\02DCurveMesh_1(\ 3\0\0\0s\ 2\0\0\0f1s\ 3\0\0\0f21s\ 3\0\0\0f22(\ 3\0\0\0iÿÿÿÿiÿÿÿÿg\0\0\0\0\0\0\0\0(\ 3\0\0\0iÿÿÿÿiÿÿÿÿg\0\0\0\0\0\0\0\0(\ 3\0\0\0iÿÿÿÿiÿÿÿÿg\0\0\0\0\0\0\0\0(\ 3\0\0\0iÿÿÿÿiÿÿÿÿg\0\0\0\0\0\0\0\0(0\0\0\0t\v\0\0\0MEDFileDataR(\0\0\0R\ 4\0\0\0t\r\0\0\0build1DMesh_1R>\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0t\12\0\0\0MEDFileMeshMultiTSt\ e\0\0\0setOneTimeStept\12\0\0\0build2DCurveMesh_1t\r\0\0\0MEDFileMeshest\f\0\0\0setMeshAtPost       \0\0\0setMeshest\ 3\0\0\0zipR+\0\0\0\0\0\0\0\0\0getMeshest\ e\0\0\0getMeshesNamesRô\0\0\0t\ f\0\0\0getMeasureFieldR.\0\0\0t\18\0\0\0buildNewTimeReprFromThist\b\0\0\0ONE_TIMERN\0\0\0R)\ 1\0\0R\97\0\0\0t\17\0\0\0appendFieldNoProfileSBTRq\0\0\0t        \0\0\0applyFunct\r\0\0\0MEDFileFieldst \0\0\0pushFieldt   \0\0\0setFieldsR\v\0\0\0t\11\0\0\0getNumberOfMeshest\11\0\0\0getNumberOfFieldsR0\0\0\0Rt\0\0\0t\f\0\0\0getMeshAtPosR}\0\0\0R1\0\0\0t     \0\0\0getFieldst\ e\0\0\0getFieldsNamest\r\0\0\0getFieldAtPosR÷\0\0\0t\10\0\0\0getFieldWithName(\17\0\0\0R       \0\0\0R9\ 1\0\0t\ 1\0\0\0dR\84\0\0\0R:\ 1\0\0t\ 4\0\0\0mmm1R\85\0\0\0\0\0\0t\ 4\0\0\0mmm2R­\0\0\0t\ 4\0\0\0namet\ 3\0\0\0mmmR;\ 1\0\0t\ 4\0\0\0ff21t\ 4\0\0\0ff22Rã\0\0\0RI\ 1\0\0RJ\ 1\0\0t\ 2\0\0\0fst\ 4\0\0\0fmtst\ 6\0\0\0fname2t\ 2\0\0\0d2t\ 5\0\0\0m1bis(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\10\0\0\0testMEDFileData1\94\ 2\0\0s\8a\0\0\0\0\ 1\ 6\ 1\f\ 2\f\ 1\f\0\13\0\10\0\13\ 1\f\ 1\r\ 1\f\ 1\f\0\13\0\10\0\13\ 1\f\0\r\ 1\f\0\10\0\10\ 1\r\ 1"\ 1\16\ 1\16\ 1\ 4\ 1\1c\ 2\f\ 1\f\ 1\f\ 1\ f\0\r\0\12\ 1\16\ 1\r\ 1\ f\0\r\0\12\ 1\16\ 1\r\ 1\f\0\r\0\12\ 1\10\ 1\16\0\16\ 1\r\ 1\f\ 1\r\0\r\0\r\ 1%\ 1\16\ 1\ 4\ 1\r\ 2\ 6\ 1\10\ 2\ f\ 1\16\ 1\16\ 1%\ 1 \ 1 \ 1\1e\ 1\19\ 1\1c\ 1(\ 1#\ 1(\ 1#\ 1c\ 1\0\0\0\r\0\0\0\r\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0\83\0\0}\ 3\0|\ 3\0j\ 4\0|\ 2\0j\ 5\0\83\0\0\83\ 1\0\ 1|\ 3\0j\ 6\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j\a\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\b\0j\ 3\0\83\0\0}\ 4\0t      \0j\ 3\0t
33632 +\0t\v\0\83\ 2\0}\ 5\0|\ 5\0j\f\0d\ 4\0\83\ 1\0\ 1t\r\0j\ 3\0\83\0\0}\ 6\0|\ 6\0j\ e\0d#\0d\ 6\0\83\ 2\0\ 1|\ 6\0j\ f\0d\a\0\83\ 1\0\ 1|\ 6\0j\10\0d\ 3\0\83\ 1\0\ 1|\ 6\0j\11\0d\ 2\0d\b\0\83\ 2\0\ 1|\ 6\0j\11\0d\ 6\0d        \0\83\ 2\0\ 1|\ 5\0j\12\0|\ 6\0\83\ 1\0\ 1t\13\0j\ 3\0\83\0\0}\a\0|\a\0j\ e\0d\ 5\0d\ 6\0\83\ 2\0\ 1|\a\0j\ f\0d\ 2\0\83\ 1\0\ 1|\a\0j\f\0d
33633 +\0\83\ 1\0\ 1|\ 4\0j\14\0|\ 5\0|\ 3\0d\ 2\0|\a\0\83\ 4\0\ 1|\ 4\0j\15\0d\v\0g\ 1\0d\f\0f\ 2\0g\ 1\0\83\ 1\0\ 1|\ 4\0j\16\0\83\0\0}\ 4\0|\ 4\0j\a\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 4\0j\17\0t
33634 +\0d\ 2\0|\ 3\0\83\ 3\0\\ 2\0}\b\0}      \0|\b\0j\f\0d\r\0\83\ 1\0\ 1|\0\0j\18\0|   \0j\19\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\18\0|\b\0j\1a\0|\ 6\0d\ e\0\83\ 2\0\83\ 1\0\ 1t\b\0j\ 3\0|\ 1\0|\ 5\0j\e\0\83\0\0d\ f\0d\ f\0\83\ 4\0}
33635 +\0t\b\0j\ 3\0|\ 1\0|\ 5\0j\e\0\83\0\0d\ f\0d\ f\0\83\ 4\0}\v\0|
33636 +\0j\1c\0|\v\0\83\ 1\0\ 1|
33637 +\0j\1d\0\83\0\0}\f\0|\0\0j\1e\0d\10\0|\f\0d\ 2\0\19d\ 2\0\19\83\ 2\0\ 1|\0\0j\1e\0d\ 2\0|\f\0d\ 2\0\19d\ 6\0\19d\ 2\0\19d\ 2\0\19\83\ 2\0\ 1|\0\0j\1e\0d\r\0|\f\0d\ 2\0\19d\ 6\0\19d\ 2\0\19d\ 3\0\19\83\ 2\0\ 1|\0\0j\1e\0d\11\0d\12\0d\ 5\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0g\f\0|\f\0d\ 2\0\19d\ 6\0\19d\ 2\0\19d\ 6\0\19j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\1e\0d\1c\0|\f\0d\ 6\0\19d\ 2\0\19\83\ 2\0\ 1|\0\0j\1e\0d\ 2\0|\f\0d\ 6\0\19d\ 6\0\19d\ 2\0\19d\ 2\0\19\83\ 2\0\ 1|\0\0j\1e\0d\f\0|\f\0d\ 6\0\19d\ 6\0\19d\ 2\0\19d\ 3\0\19\83\ 2\0\ 1|\0\0j\1e\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\ 6\0|\f\0d\ 6\0\19d\ 6\0\19d\ 2\0\19d\ 6\0\19j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\1e\0d\ 2\0g\ 1\0|
33638 +\0\0\83\0\0\83\ 2\0\ 1|
33639 +\0j\17\0t
33640 +\0d\ 2\0|\ 3\0\83\ 3\0\\ 2\0}\b\0}      \0|\b\0j\f\0d\r\0\83\ 1\0\ 1|\0\0j\18\0|   \0j\19\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\18\0|\b\0j\1a\0|\ 6\0d\ e\0\83\ 2\0\83\ 1\0\ 1d\0\0S($\0\0\0Ns\f\0\0\0Pyfile30.medi\0\0\0\0i\ 2\0\0\0t\ 2\0\0\0F1i    \0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\1c@s
33641 +\0\0\0sigX [MPa]s
33642 +\0\0\0sigY [GPa]t\ 4\0\0\0sup1t\ f\0\0\0sup1_NORM_QUAD4t\a\0\0\0ForV650R&\0\0\0g\9b\86\9b\84\ 6=iÿÿÿÿi\ 3\0\0\0i\a\0\0\0i\b\0\0\0i
33643 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\ 4\0\0\0i\13\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\12\0\0\0(!\0\0\0R\ 4\0\0\0t\r\0\0\0build2DMesh_3R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0t\16\0\0\0MEDCouplingFieldDoubleR\13\ 1\0\0RX\ 1\0\0RB\0\0\0RY\0\0\0t\ 5\0\0\0alloct\ 4\0\0\0iotat  \0\0\0rearrangeR\97\0\0\0t\b\0\0\0setArrayRk\0\0\0t\ f\0\0\0setFieldProfilet\ f\0\0\0changePflsNamesRq\0\0\0t\13\0\0\0getFieldWithProfileR0\0\0\0t\1c\0\0\0isEqualWithoutConsideringStrR1\0\0\0RC\0\0\0t\f\0\0\0deepCpyGlobsR3\ 1\0\0R+\0\0\0RH\0\0\0t\18\0\0\0getTypesOfFieldAvailable(\r\0\0\0R     \0\0\0R9\ 1\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0t\ 4\0\0\0valst\ 3\0\0\0pflRC\ 1\0\0R   \ 1\0\0RD\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testMEDField9Í\ 2\0\0s\\0\0\0\0\ 2\ 6\ 1\f\ 1\f\0\13\0\10\ 1\10\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0\10\0\r\0\r\ 2\16\ 1\19\ 1\f\ 1\10\ 2\e\0\r\ 1\16\ 1\19\ 2\1e\ 1\1e\ 1\r\ 1\f\ 1\18\ 1 \ 1 \ 1J\ 1\18\ 1 \ 1 \ 18\ 1\19\ 1\e\0\r\ 1\16\ 1\19\ 1c\ 1\0\0\0\f\0\0\0\a\0\0\0C\0\0\0s|\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1t\ 4\0j\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0|\ 2\0j\a\0\83\0\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j  \0|\ 2\0j
33644 +\0\83\0\0\83\ 1\0\ 1|\ 3\0j\v\0|\ 1\0d\ 5\0\83\ 2\0\ 1t\f\0j\ 5\0\83\0\0}\ 4\0t\r\0j\ 5\0t\ e\0t\ f\0\83\ 2\0}\ 5\0|\ 5\0j     \0d\b\0\83\ 1\0\ 1t\10\0j\ 5\0\83\0\0}\ 6\0|\ 6\0j\11\0d\13\0d\ 3\0\83\ 2\0\ 1|\ 6\0j\12\0d     \0\83\ 1\0\ 1|\ 6\0j\13\0d\ 5\0\83\ 1\0\ 1|\ 6\0j\14\0d\ 2\0d
33645 +\0\83\ 2\0\ 1|\ 6\0j\14\0d\ 3\0d\v\0\83\ 2\0\ 1|\ 5\0j\15\0|\ 6\0\83\ 1\0\ 1t\16\0j\ 5\0\83\0\0}\a\0|\a\0j\17\0d\ 2\0d\ 3\0d\ 5\0d\ 4\0g\ 4\0d\ 4\0d\ 3\0\83\ 3\0\ 1|\a\0j      \0d\f\0\83\ 1\0\ 1|\ 4\0j\18\0|\ 5\0|\ 3\0d\ 2\0|\a\0\83\ 4\0\ 1|\ 5\0j\19\0d\r\0d\ 3\0d\ 5\0\83\ 3\0\ 1|\ 6\0j\1a\0d\ e\0\83\ 1\0}\b\0|\b\0j\e\0|\ 6\0\83\ 1\0\ 1|\ 5\0j\15\0|\b\0\83\ 1\0\ 1|\ 4\0j\18\0|\ 5\0|\ 3\0d\ 2\0|\a\0\83\ 4\0\ 1|\ 4\0j\1c\0\83\0\0}\ 4\0|\ 4\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 4\0j\1d\0t\ e\0d\ 3\0d\ 5\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0}        \0}
33646 +\0|     \0j      \0d\ f\0\83\ 1\0\ 1|\0\0j\1e\0|
33647 +\0j\1f\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1e\0|  \0\0|\b\0d\10\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j\1d\0t\ e\0d\11\0d\11\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0}   \0}
33648 +\0|     \0j      \0d\ f\0\83\ 1\0\ 1|\0\0j\1e\0|
33649 +\0j\1f\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1e\0|  \0\0|\ 6\0d\10\0\83\ 2\0\83\ 1\0\ 1t\f\0j\ 5\0|\ 1\0|\ 5\0j
33650 +\0\83\0\0\83\ 2\0}\v\0|\0\0j!\0d\14\0d\15\0g\ 2\0|\v\0j"\0\83\0\0\83\ 2\0\ 1|\v\0j\1d\0t\ e\0d\ 3\0d\ 5\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0}     \0}
33651 +\0|     \0j      \0d\ f\0\83\ 1\0\ 1|\0\0j\1e\0|
33652 +\0j\1f\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1e\0|  \0\0|\b\0d\10\0\83\ 2\0\83\ 1\0\ 1|\v\0j\1d\0t\ e\0d\11\0d\11\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0}   \0}
33653 +\0|     \0j      \0d\ f\0\83\ 1\0\ 1|\0\0j\1e\0|
33654 +\0j\1f\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1e\0|  \0\0|\ 6\0d\10\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\16\0\0\0Ns\f\0\0\0Pyfile31.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0t\ 2\0\0\0F2g\0\0\0\0\0\0\1c@s
33655 +\0\0\0sigX [MPa]s
33656 +\0\0\0sigY [GPa]t\ 4\0\0\0sup2g333333ó?s\ 3\0\0\02*xR&\0\0\0g\9b\86\9b\84\ 6=iÿÿÿÿg\0\0\0\0\0\0\0\0i\b\0\0\0(\ 3\0\0\0iÿÿÿÿiÿÿÿÿg\0\0\0\0\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0i\ 2\0\0\0g333333ó?(#\0\0\0R\ 4\0\0\0t\r\0\0\0build2DMesh_1t\r\0\0\0renumberCellsRN\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0R\v\0\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0t\12\0\0\0appendFieldProfileR°\0\0\0RZ\ 1\0\0t\12\0\0\0copyStringInfoFromRq\0\0\0R~\ 1\0\0R0\0\0\0R\7f\ 1\0\0R1\0\0\0R+\0\0\0\0\0\0(\f\0\0\0R       \0\0\0R9\ 1\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0R\ 2\0\0\0R\82\ 1\0\0R\83\ 1\0\0RC\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField10ô\ 2\0\0s`\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\0\13\0\10\0\13\ 1\10\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0\1f\0\r\ 2\16\ 1\13\0\ f\0\r\0\r\ 1\16\ 1\f\ 1\10\ 2!\0\r\ 1\16\ 1\19\ 1!\0\r\ 1\16\ 1\19\ 2\18\ 1\1c\ 1!\0\r\ 1\16\ 1\19\ 1!\0\r\ 1\16\ 1\19\ 1c\ 1\0\0\0\v\0\0\0\a\0\0\0C\0\0\0sQ\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1t\ 4\0j\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0|\ 2\0j\a\0\83\0\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j   \0|\ 1\0d\ 5\0\83\ 2\0\ 1t
33657 +\0j\ 5\0\83\0\0}\ 4\0t\v\0j\ 5\0t\f\0t\r\0\83\ 2\0}\ 5\0|\ 5\0j\ e\0d\b\0\83\ 1\0\ 1t\ f\0j\ 5\0\83\0\0}\ 6\0|\ 6\0j\10\0d\13\0d\ 3\0\83\ 2\0\ 1|\ 6\0j\11\0d
33658 +\0\83\ 1\0\ 1|\ 6\0j\12\0d\ 5\0\83\ 1\0\ 1|\ 6\0j\13\0d\ 2\0d\v\0\83\ 2\0\ 1|\ 6\0j\13\0d\ 3\0d\f\0\83\ 2\0\ 1|\ 5\0j\14\0|\ 6\0\83\ 1\0\ 1t\15\0j\ 5\0\83\0\0}\a\0|\a\0j\16\0d\ 3\0d\ 5\0d\ 4\0d\a\0d\r\0d\ e\0g\ 6\0d        \0d\ 3\0\83\ 3\0\ 1|\a\0j\ e\0d\ f\0\83\ 1\0\ 1|\ 4\0j\17\0|\ 5\0|\ 3\0d\ 2\0|\a\0\83\ 4\0\ 1|\0\0j\18\0|\ 4\0j\19\0\83\0\0d\10\0g\0\0f\ 2\0\83\ 2\0\ 1|\ 4\0j     \0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 4\0j\1a\0t\f\0d\ 2\0|\ 3\0\83\ 3\0\\ 2\0}\b\0}    \0|\b\0j\ e\0d\11\0\83\ 1\0\ 1|\0\0j\e\0|   \0j\1c\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\e\0|\b\0j\1d\0|\ 6\0d\12\0\83\ 2\0\83\ 1\0\ 1t
33659 +\0j\ 5\0|\ 1\0|\ 5\0j\1e\0\83\0\0d\10\0d\10\0\83\ 4\0}
33660 +\0|
33661 +\0j\1a\0t\f\0d\ 2\0|\ 3\0\83\ 3\0\\ 2\0}\b\0}        \0|\b\0j\ e\0d\11\0\83\ 1\0\ 1|\0\0j\e\0|   \0j\1c\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\e\0|\b\0j\1d\0|\ 6\0d\12\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\14\0\0\0Ns\f\0\0\0Pyfile32.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0t\ 6\0\0\0F1Nodei\ 6\0\0\0g\0\0\0\0\0\0\1c@s
33662 +\0\0\0sigX [MPa]s
33663 +\0\0\0sigY [GPa]i\a\0\0\0i\b\0\0\0t\b\0\0\0sup1NodeiÿÿÿÿR&\0\0\0g\9b\86\9b\84\ 6=i\f\0\0\0(\1f\0\0\0R\ 4\0\0\0R\87\ 1\0\0R\88\ 1\0\0RN\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0Rw\ 1\0\0R\1c\ 1\0\0RX\ 1\0\0RB\0\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0R|\ 1\0\0R+\0\0\0R,\0\0\0R~\ 1\0\0R0\0\0\0R\7f\ 1\0\0R1\0\0\0RC\0\0\0(\v\0\0\0R     \0\0\0R9\ 1\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0R\82\ 1\0\0R\83\ 1\0\0RC\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField11\18\ 3\0\0sB\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\0\13\0\10\ 1\10\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0%\0\r\ 2\16\ 1\1c\ 1\10\ 2\e\0\r\ 1\16\ 1\19\ 2\1e\ 1\e\0\r\ 1\16\ 1\19\ 1c\ 1\0\0\0\f\0\0\0\a\0\0\0C\0\0\0sG\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1t\ 4\0j\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0|\ 2\0j\a\0\83\0\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j      \0|\ 1\0d\ 5\0\83\ 2\0\ 1t
33664 +\0j\ 5\0\83\0\0}\ 4\0t\v\0j\ 5\0t\f\0t\r\0\83\ 2\0}\ 5\0|\ 5\0j\ e\0d\b\0\83\ 1\0\ 1t\ f\0j\ 5\0\83\0\0}\ 6\0|\ 6\0j\10\0d\15\0d\ 3\0\83\ 2\0\ 1|\ 6\0j\11\0d
33665 +\0\83\ 1\0\ 1|\ 6\0j\12\0d\ 5\0\83\ 1\0\ 1|\ 6\0j\13\0d\ 2\0d\v\0\83\ 2\0\ 1|\ 6\0j\13\0d\ 3\0d\f\0\83\ 2\0\ 1|\ 5\0j\14\0|\ 6\0\83\ 1\0\ 1t\15\0j\ 5\0\83\0\0}\a\0|\a\0j\16\0d\ 3\0d\ 5\0d\ 4\0d\a\0d\r\0d\ e\0g\ 6\0d        \0d\ 3\0\83\ 3\0\ 1|\a\0j\ e\0d\ f\0\83\ 1\0\ 1|\ 4\0j\17\0|\ 5\0|\ 3\0d\ 2\0|\a\0\83\ 4\0\ 1|\ 5\0j\18\0d\10\0d\ 3\0d\ 5\0\83\ 3\0\ 1|\ 6\0j\19\0d\11\0\83\ 1\0}\b\0|\b\0j\1a\0|\ 6\0\83\ 1\0\ 1|\ 5\0j\14\0|\b\0\83\ 1\0\ 1|\ 4\0j\17\0|\ 5\0|\ 3\0d\ 2\0|\a\0\83\ 4\0\ 1|\ 4\0j       \0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 4\0j\e\0t\f\0d\ 3\0d\ 5\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0\0}
33666 +\0|     \0j\ e\0d\12\0\83\ 1\0\ 1|\0\0j\1c\0|
33667 +\0j\1d\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1c\0|  \0j\1e\0|\b\0d\13\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j\e\0t\f\0d\14\0d\14\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0}   \0}
33668 +\0|     \0j\ e\0d\12\0\83\ 1\0\ 1|\0\0j\1c\0|
33669 +\0j\1d\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1c\0|  \0j\1e\0|\ 6\0d\13\0\83\ 2\0\83\ 1\0\ 1t
33670 +\0j\ 5\0|\ 1\0|\ 5\0j\1f\0\83\0\0\83\ 2\0}\v\0|\v\0j\e\0t\f\0d\ 3\0d\ 5\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0}     \0}
33671 +\0|     \0j\ e\0d\12\0\83\ 1\0\ 1|\0\0j\1c\0|
33672 +\0j\1d\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1c\0|  \0j\1e\0|\b\0d\13\0\83\ 2\0\83\ 1\0\ 1|\v\0j\e\0t\f\0d\14\0d\14\0d\ 2\0|\ 3\0\83\ 5\0\\ 2\0}   \0}
33673 +\0|     \0j\ e\0d\12\0\83\ 1\0\ 1|\0\0j\1c\0|
33674 +\0j\1d\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1c\0|  \0j\1e\0|\ 6\0d\13\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\16\0\0\0Ns\f\0\0\0Pyfile33.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0R\8c\ 1\0\0i\ 6\0\0\0g\0\0\0\0\0\0\1c@s
33675 +\0\0\0sigX [MPa]s
33676 +\0\0\0sigY [GPa]i\a\0\0\0i\b\0\0\0R\8d\ 1\0\0g333333ó?s\ 3\0\0\02*xR&\0\0\0g\9b\86\9b\84\ 6=iÿÿÿÿi\f\0\0\0\0\0\0R\ 4\0\0\0R\87\ 1\0\0R\88\ 1\0\0RN\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0Rw\ 1\0\0R\1c\ 1\0\0RX\ 1\0\0RB\0\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0R\89\ 1\0\0\0\0\0RZ\ 1\0\0R\8a\ 1\0\0R~\ 1\0\0R0\0\0\0R\7f\ 1\0\0R1\0\0\0RC\0\0\0(\f\0\0\0R       \0\0\0R9\ 1\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0R\ 2\0\0\0R\82\ 1\0\0R\83\ 1\0\0RC\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField122\ 3\0\0sZ\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\0\13\0\10\ 1\10\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0%\0\r\ 2\16\ 1\13\0\ f\0\r\0\r\ 1\16\ 1\10\ 2!\0\r\ 1\16\ 1\19\ 1!\0\r\ 1\16\ 1\19\ 2\18\ 1!\0\r\ 1\16\ 1\19\ 1!\0\r\ 1\16\ 1\19\ 1c\ 1\0\0\0\f\0\0\0\a\0\0\0C\0\0\0sc\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 3\0|\ 2\0j\ 5\0t\ 6\0t\a\0d\a\0\83\ 1\0\83\ 1\0t\b\0\83\ 2\0}\ 2\0|\ 2\0j      \0|\ 3\0\83\ 1\0\ 1t
33677 +\0j\v\0\83\0\0}\ 4\0|\ 4\0j\f\0|\ 2\0j\r\0\83\0\0\83\ 1\0\ 1|\ 4\0j\ e\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 4\0j\ f\0|\ 1\0d\ 5\0\83\ 2\0\ 1t\10\0j\v\0\83\0\0}\ 5\0t\11\0j\v\0t\12\0t\13\0\83\ 2\0}\ 6\0|\ 6\0j        \0d\b\0\83\ 1\0\ 1t\14\0j\v\0\83\0\0}\a\0|\a\0j\15\0d\11\0d\ 3\0\83\ 2\0\ 1|\a\0j\16\0d
33678 +\0\83\ 1\0\ 1|\a\0j\17\0d\ 5\0\83\ 1\0\ 1|\a\0j\18\0d\ 2\0d\v\0\83\ 2\0\ 1|\a\0j\18\0d\ 3\0d\f\0\83\ 2\0\ 1|\ 6\0j\19\0|\a\0\83\ 1\0\ 1t\1a\0j\v\0\83\0\0}\b\0|\b\0j\e\0d\ 2\0d\ 5\0d\ 6\0g\ 3\0d\ 6\0d\ 3\0\83\ 3\0\ 1|\b\0j    \0d\r\0\83\ 1\0\ 1|\ 5\0j\1c\0|\ 6\0|\ 4\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 5\0j\ f\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 5\0j\1d\0t\12\0d\ 2\0|\ 4\0\83\ 3\0\\ 2\0}    \0}
33679 +\0|     \0j      \0d\ e\0\83\ 1\0\ 1|\0\0j\1e\0|
33680 +\0j\1f\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1e\0|  \0\0|\a\0d\ f\0\83\ 2\0\83\ 1\0\ 1t\10\0j\v\0|\ 1\0|\ 6\0j\ 4\0\83\0\0d\10\0d\10\0\83\ 4\0}\v\0|\v\0j\1d\0t\12\0d\ 2\0|\ 4\0\83\ 3\0\\ 2\0}   \0}
33681 +\0|     \0j      \0d\ e\0\83\ 1\0\ 1|\0\0j\1e\0|
33682 +\0j\1f\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1e\0|  \0\0|\a\0d\ f\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\12\0\0\0Ns\f\0\0\0Pyfile34.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0t\ 6\0\0\0F3Nodei\v\0\0\0g\0\0\0\0\0\0\1c@s
33683 +\0\0\0sigX [MPa]s
33684 +\0\0\0sigY [GPa]t\v\0\0\0sup1NodeEltR&\0\0\0g\9b\86\9b\84\ 6=iÿÿÿÿi\16\0\0\0(!\0\0\0R\ 4\0\0\0R\87\ 1\0\0R\88\ 1\0\0RN\0\0\0RC\0\0\0t\11\0\0\0buildPartOfMySelfRm\0\0\0Rn\0\0\0R.\0\0\0RB\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0Rw\ 1\0\0R\ f\ 1\0\0RX\ 1\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0R|\ 1\0\0R~\ 1\0\0R0\0\0\0R\7f\ 1\0\0R1\0\0\0(\f\0\0\0\0\0\0R9\ 1\0\0R\84\0\0\0t\ 3\0\0\0tmpR:\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0R\82\ 1\0\0R\83\ 1\0\0RC\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField13S\ 3\0\0sF\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\ 1\1e\0\r\ 1\f\0\13\0\10\ 1\10\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0\1c\0\r\ 2\16\ 1\10\ 2\e\0\r\ 1\16\ 1\19\ 2\1e\ 1\e\0\r\ 1\16\ 1\19\ 1c\ 1\0\0\0\r\0\0\0\a\0\0\0C\0\0\0s\97\ 3\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 3\0|\ 2\0j\ 5\0t\ 6\0t\a\0d\a\0\83\ 1\0\83\ 1\0t\b\0\83\ 2\0}\ 2\0|\ 2\0j       \0|\ 3\0\83\ 1\0\ 1t
33685 +\0j\v\0\83\0\0}\ 4\0|\ 4\0j\f\0|\ 2\0j\r\0\83\0\0\83\ 1\0\ 1|\ 4\0j\ e\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 4\0j\ f\0|\ 1\0d\ 5\0\83\ 2\0\ 1t\10\0j\v\0\83\0\0}\ 5\0t\11\0j\v\0t\12\0t\13\0\83\ 2\0}\ 6\0|\ 6\0j        \0d\b\0\83\ 1\0\ 1t\14\0j\v\0\83\0\0}\a\0|\a\0j\15\0d\13\0d\ 3\0\83\ 2\0\ 1|\a\0j\16\0d
33686 +\0\83\ 1\0\ 1|\a\0j\17\0d\ 5\0\83\ 1\0\ 1|\a\0j\18\0d\ 2\0d\v\0\83\ 2\0\ 1|\a\0j\18\0d\ 3\0d\f\0\83\ 2\0\ 1|\ 6\0j\19\0|\a\0\83\ 1\0\ 1t\1a\0j\v\0\83\0\0}\b\0|\b\0j\e\0d\ 2\0d\ 5\0d\ 6\0g\ 3\0d\ 6\0d\ 3\0\83\ 3\0\ 1|\b\0j    \0d\r\0\83\ 1\0\ 1|\ 5\0j\1c\0|\ 6\0|\ 4\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 6\0j\1d\0d\ e\0d\ 3\0d\ 5\0\83\ 3\0\ 1|\a\0j\1e\0d\ f\0\83\ 1\0}  \0|      \0j\1f\0|\a\0\83\ 1\0\ 1|\ 6\0j\19\0|      \0\83\ 1\0\ 1|\ 5\0j\1c\0|\ 6\0|\ 4\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 5\0j\ f\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 5\0\0t\12\0d\10\0d\10\0d\ 2\0|\ 4\0\83\ 5\0\\ 2\0}
33687 +\0}\v\0|
33688 +\0j     \0d\11\0\83\ 1\0\ 1|\0\0j!\0|\v\0j"\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j!\0|
33689 +\0j#\0|\a\0d\12\0\83\ 2\0\83\ 1\0\ 1|\ 5\0\0t\12\0d\ 3\0d\ 5\0d\ 2\0|\ 4\0\83\ 5\0\\ 2\0}
33690 +\0}\v\0|
33691 +\0j     \0d\11\0\83\ 1\0\ 1|\0\0j!\0|\v\0j"\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j!\0|
33692 +\0j#\0|  \0d\12\0\83\ 2\0\83\ 1\0\ 1|\0\0j$\0d\ 6\0g\ 1\0d\ 6\0g\ 1\0g\ 2\0|\ 5\0j%\0\83\0\0\83\ 2\0\ 1t\10\0j\v\0|\ 1\0|\ 6\0j\ 4\0\83\0\0\83\ 2\0}\f\0|\ 5\0\0t\12\0d\10\0d\10\0d\ 2\0|\ 4\0\83\ 5\0\\ 2\0}
33693 +\0}\v\0|
33694 +\0j     \0d\11\0\83\ 1\0\ 1|\0\0j!\0|\v\0j"\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j!\0|
33695 +\0j#\0|\a\0d\12\0\83\ 2\0\83\ 1\0\ 1|\ 5\0\0t\12\0d\ 3\0d\ 5\0d\ 2\0|\ 4\0\83\ 5\0\\ 2\0}
33696 +\0}\v\0|
33697 +\0j     \0d\11\0\83\ 1\0\ 1|\0\0j!\0|\v\0j"\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j!\0|
33698 +\0j#\0|  \0d\12\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\14\0\0\0Ns\f\0\0\0Pyfile35.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0t\ 6\0\0\0F4Nodei\v\0\0\0g\0\0\0\0\0\0\1c@s
33699 +\0\0\0sigX [MPa]s
33700 +\0\0\0sigY [GPa]R\91\ 1\0\0g333333ó?s\ 3\0\0\02*xiÿÿÿÿR&\0\0\0g\9b\86\9b\84\ 6=i\16\0\0\0(&\0\0\0R\ 4\0\0\0R\87\ 1\0\0R\88\ 1\0\0RN\0\0\0RC\0\0\0R\92\ 1\0\0Rm\0\0\0Rn\0\0\0R.\0\0\0RB\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0Rw\ 1\0\0R\ f\ 1\0\0RX\ 1\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0R\89\ 1\0\0\0\0\0RZ\ 1\0\0R\8a\ 1\0\0R~\ 1\0\0R0\0\0\0R\7f\ 1\0\0R1\0\0\0R+\0\0\0R\81\ 1\0\0(\r\0\0\0R   \0\0\0R9\ 1\0\0R\84\0\0\0R\93\ 1\0\0R:\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0R\ 2\0\0\0R\82\ 1\0\0R\83\ 1\0\0RC\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField14n\ 3\0\0sb\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\ 1\1e\0\r\ 1\f\0\13\0\10\ 1\10\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0\1c\0\r\ 2\16\ 1\13\0\ f\0\r\0\r\ 1\16\ 1\10\ 2!\0\r\ 1\16\ 1\19\ 1!\0\r\ 1\16\ 1\19\ 1"\ 2\18\ 1!\0\r\ 1\16\ 1\19\ 1!\0\r\ 1\16\ 1\19\ 1c\ 1\0\0\0\f\0\0\0        \0\0\0C\0\0\0sV\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 3\0|\ 2\0j\ 5\0d\ 2\0d\ 3\0d\ 3\0d\ 5\0d\ 6\0d\ 6\0d\ 4\0d\ 4\0g\b\0t\ 6\0\83\ 2\0}\ 4\0|\ 4\0j\a\0|\ 3\0\83\ 1\0\ 1t\b\0\0\83\0\0}\ 5\0|\ 5\0j
33701 +\0|\ 4\0j\v\0\83\0\0\83\ 1\0\ 1|\ 5\0j\f\0d\ 2\0|\ 4\0\83\ 2\0\ 1t\r\0j     \0\83\0\0}\ 6\0t\ e\0j     \0t\ f\0t\10\0\83\ 2\0}\a\0|\a\0j\a\0d\b\0\83\ 1\0\ 1t\11\0j  \0\83\0\0}\b\0|\b\0j\12\0d\11\0d\ 3\0\83\ 2\0\ 1|\b\0j\13\0d
33702 +\0\83\ 1\0\ 1|\b\0j\14\0d\ 5\0\83\ 1\0\ 1|\b\0j\15\0d\ 2\0d\v\0\83\ 2\0\ 1|\b\0j\15\0d\ 3\0d\f\0\83\ 2\0\ 1|\a\0j\16\0|\b\0\83\ 1\0\ 1t\17\0j    \0\83\0\0}   \0|      \0j\18\0d\ 2\0d\ 3\0d\ 6\0d\ 4\0d\r\0g\ 5\0d\a\0d\ 3\0\83\ 3\0\ 1|       \0j\a\0d\ e\0\83\ 1\0\ 1|\ 6\0j\19\0|\a\0|\ 5\0d\ 2\0|     \0\83\ 4\0\ 1|\ 2\0j\ 5\0t\1a\0t\e\0d\a\0\83\ 1\0\83\ 1\0t\ 6\0\83\ 2\0}\ 4\0|\ 4\0j\a\0|\ 3\0\83\ 1\0\ 1|\ 5\0j\f\0d\ 2\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\1c\0|\ 1\0d\ 5\0\83\ 2\0\ 1|\ 6\0j\1c\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 6\0j\1d\0t\ f\0|\ 4\0d\ 2\0\83\ 3\0}\a\0|\ 6\0j\1e\0t\ f\0d\ 2\0|\ 5\0\83\ 3\0\\ 2\0}
33703 +\0}\v\0|
33704 +\0j\a\0d\ f\0\83\ 1\0\ 1|\0\0j\1f\0|\v\0\0d\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1f\0|\a\0j!\0\83\0\0j"\0|
33705 +\0d\10\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\12\0\0\0Ns\f\0\0\0Pyfile36.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0R\95\ 1\0\0i\14\0\0\0g\0\0\0\0\0\0\1c@s
33706 +\0\0\0sigX [MPa]s
33707 +\0\0\0sigY [GPa]i\ 6\0\0\0R\91\ 1\0\0R&\0\0\0g\11ê-\81\99\97q=i(\0\0\0(#\0\0\0R\ 4\0\0\0R\87\ 1\0\0R\88\ 1\0\0RN\0\0\0RC\0\0\0R\92\ 1\0\0R.\0\0\0RB\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0\0\0\0Rw\ 1\0\0R\ f\ 1\0\0RX\ 1\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0R|\ 1\0\0Rm\0\0\0Rn\0\0\0R\v\0\0\0t\15\0\0\0getFieldOnMeshAtLevelR~\ 1\0\0R0\0\0\0t\ 6\0\0\0isIotaR)\ 1\0\0R1\0\0\0(\f\0\0\0R        \0\0\0R9\ 1\0\0\0\0\0R\93\ 1\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0\0\0\0t\ 2\0\0\0p1(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField15\94\ 3\0\0sD\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\ 1*\0\r\ 1\f\0\13\0\10\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0"\0\r\ 2\16\ 1\1e\0\r\0\10\ 1\10\ 1\10\ 1\15\ 1\e\0\r\ 1\16\ 1\1f\ 1c\ 1\0\0\0\v\0\0\0\ 5\0\0\0C\0\0\0\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0\83\0\0}\ 3\0t\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 3\0j     \0\83\0\0\83\ 1\0\ 1t
33708 +\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\v\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\f\0\83\0\0d\ 2\0\19}\ 6\0|\ 6\0j\r\0\83\0\0\ 1|\ 6\0j\b\0|\ 3\0j    \0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 3\0|\ 6\0\83\ 2\0\ 1|\ 4\0j\ e\0|\ 1\0d\ 4\0\83\ 2\0\ 1|\ 6\0j\ f\0t\10\0\83\ 1\0}\a\0t\11\0j\ 4\0\83\0\0}\b\0|\b\0j\12\0|\a\0j\13\0\83\0\0j\14\0\83\0\0d\ 5\0\83\ 2\0\ 1|\a\0j\13\0\83\0\0|\b\0d\0\0d\0\0\85\ 2\0d\ 2\0f\ 2\0<d\ 4\0|\a\0j\13\0\83\0\0\14|\b\0d\0\0d\0\0\85\ 2\0d\ 6\0f\ 2\0<d\ 5\0|\a\0j\13\0\83\0\0\14|\b\0d\0\0d\0\0\85\ 2\0d\ 4\0f\ 2\0<|\a\0j\15\0t\16\0t\17\0\83\ 2\0}\a\0|\a\0j\18\0|\b\0\83\ 1\0\ 1|\a\0j\19\0|\ 2\0\83\ 1\0\ 1|\a\0j\1a\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\v\0|\a\0\83\ 1\0\ 1|\ 5\0j\ e\0|\ 1\0d\ 2\0\83\ 2\0\ 1t
33709 +\0j\ 4\0|\ 1\0|\a\0j    \0\83\0\0d\ 2\0d\ 6\0\83\ 4\0}  \0|      \0j\e\0t\1c\0d\ 2\0\83\ 2\0}
33710 +\0|\0\0j\1d\0|\ 2\0j\1e\0|
33711 +\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|        \0j\e\0t\1c\0d\ 3\0\83\ 2\0}
33712 +\0|\0\0j\1d\0|\a\0j\1e\0|
33713 +\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|        \0j\1f\0t\1c\0\83\ 1\0}
33714 +\0|\0\0j\1d\0|\ 2\0j\1e\0|
33715 +\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1d\b\0}\ 1\0|\ 4\0j\ e\0|\ 1\0d\ 4\0\83\ 2\0\ 1t
33716 +\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\v\0|\a\0\83\ 1\0\ 1|\ 5\0j\ e\0|\ 1\0d\ 2\0\83\ 2\0\ 1t
33717 +\0j\ 4\0|\ 1\0|\a\0j    \0\83\0\0d\ 2\0d\ 6\0\83\ 4\0}  \0|      \0j\1f\0t\1c\0\83\ 1\0}
33718 +\0|\0\0j\1d\0|\a\0j\1e\0|
33719 +\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1d\0\0S(    \0\0\0Ns\f\0\0\0Pyfile37.medi\0\0\0\0iÿÿÿÿi\ 2\0\0\0i\ 3\0\0\0i\ 1\0\0\0g\11ê-\81\99\97q=s\f\0\0\0Pyfile38.med( \0\0\0R\ 4\0\0\0R$\ 1\0\0\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0\0\0\0R%\ 1\0\0t\e\0\0\0buildDescendingConnectivityt\16\0\0\0sortCellsInMEDFileFrmtR\v\0\0\0RV\ 1\0\0R.\0\0\0RY\0\0\0Rx\ 1\0\0R)\ 1\0\0\0\0\0RW\ 1\0\0RX\ 1\0\0RN\0\0\0R{\ 1\0\0t\13\0\0\0copyTinyStringsFromt\10\0\0\0copyTinyAttrFromR\ 6\ 1\0\0R\13\ 1\0\0R0\0\0\0R1\0\0\0t\12\0\0\0getFieldAtTopLevel(\v\0\0\0R       \0\0\0R9\ 1\0\0\0\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0R\85\0\0\0\0\0\0t\ 2\0\0\0ddRC\ 1\0\0t\ 5\0\0\0f1bis(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField16«\ 3\0\0sT\0\0\0\0\ 1\ 6\ 1\f\ 1\f\ 1\f\ 1\13\ 1\10\ 1\13\ 1\f\ 1\r\ 1\10\ 1
33720 +\ 1\13\ 1\10\ 1\10\ 1\ f\ 1\f\ 1\1c\ 1\1c\ 1 \ 1 \ 1\12\ 1\r\ 1\r\ 1\r\ 1\r\ 1\10\ 2\1e\ 1\12\ 1\1c\ 1\12\ 1\1c\ 1\ f\ 1\1c\ 2\ 6\ 1\10\ 1\f\ 1\r\ 1\10\ 1\1e\ 1\ f\ 1\1c\ 1c\ 1\0\0\0\r\0\0\0\a\0\0\0C\0\0\0sU\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1t\ 4\0j\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0|\ 2\0j\a\0\83\0\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j     \0|\ 2\0j
33721 +\0\83\0\0\83\ 1\0\ 1|\ 3\0j\v\0|\ 1\0d\ 5\0\83\ 2\0\ 1t\f\0j\ 5\0\83\0\0}\ 4\0t\r\0j\ 5\0\83\0\0}\ 5\0t\ e\0j\ 5\0t\ f\0t\10\0\83\ 2\0}\ 6\0|\ 6\0\0d\b\0\83\ 1\0\ 1t\11\0j\ 5\0\83\0\0}\a\0|\a\0j\12\0d\10\0d\ 3\0\83\ 2\0\ 1|\a\0j\13\0d     \0\83\ 1\0\ 1|\a\0j\14\0d\ 5\0\83\ 1\0\ 1|\a\0j\15\0d\ 2\0d
33722 +\0\83\ 2\0\ 1|\a\0j\15\0d\ 3\0d\v\0\83\ 2\0\ 1|\ 6\0j\16\0|\a\0\83\ 1\0\ 1t\17\0j\ 5\0\83\0\0}\b\0|\b\0j\18\0d\ 2\0d\ 3\0d\ 5\0d\ 4\0g\ 4\0d\ 4\0d\ 3\0\83\ 3\0\ 1|\b\0j      \0d\f\0\83\ 1\0\ 1|\ 5\0j\19\0|\ 6\0|\ 3\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 6\0j\1a\0d\r\0d\ 3\0d\ 5\0\83\ 3\0\ 1|\a\0j\e\0d\ e\0\83\ 1\0}  \0|      \0j\1c\0|\a\0\83\ 1\0\ 1|\ 6\0j\16\0|      \0\83\ 1\0\ 1|\ 5\0j\19\0|\ 6\0|\ 3\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 4\0j\1d\0d\ 3\0\83\ 1\0\ 1|\ 4\0j\1e\0d\ 2\0|\ 5\0\83\ 2\0\ 1|\ 4\0j\1f\0\83\0\0}\ 4\0|\ 4\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\f\0j\ 5\0|\ 1\0\83\ 1\0}
33723 +\0|
33724 +\0\0d\ 2\0\83\ 1\0}\v\0|\v\0j!\0t\ f\0d\ 3\0d\ 5\0\83\ 3\0}\f\0|\0\0j"\0|\f\0j#\0\83\0\0j$\0|\ 6\0j#\0\83\0\0d\ f\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\11\0\0\0Ns\f\0\0\0Pyfile39.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0R\85\ 1\0\0g\0\0\0\0\0\0\1c@s
33725 +\0\0\0sigX [MPa]s
33726 +\0\0\0sigY [GPa]R\86\ 1\0\0g333333ó?s\ 3\0\0\02*xg\11ê-\81\99\97q=i\b\0\0\0(%\0\0\0R\ 4\0\0\0R\87\ 1\0\0R\88\ 1\0\0RN\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0R\v\0\0\0R[\ 1\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0R\89\ 1\0\0\0\0\0RZ\ 1\0\0R\8a\ 1\0\0t\ 6\0\0\0resizet\r\0\0\0setFieldAtPosRq\0\0\0Rc\ 1\0\0R\9f\ 1\0\0R0\0\0\0R)\ 1\0\0R1\0\0\0(\r\0\0\0R       \0\0\0R9\ 1\0\0R\84\0\0\0R:\ 1\0\0t\ 3\0\0\0ffsR;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0R\ 2\0\0\0t\ 4\0\0\0ffsrR   \ 1\0\0R\f\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField17Ú\ 3\0\0sJ\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\0\13\0\10\0\13\ 1\10\ 1\f\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0\1f\0\r\ 2\16\ 1\13\0\ f\0\r\0\r\ 1\16\ 1\r\ 1\10\ 1\f\ 1\10\ 2\ f\ 1\ f\ 1\15\ 1%\ 1c\ 1\0\0\0\r\0\0\0\a\0\0\0C\0\0\0s9\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0t\ 3\0\83\ 2\0\ 1t\ 4\0j\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0|\ 2\0j\a\0\83\0\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j   \0|\ 2\0j
33727 +\0\83\0\0\83\ 1\0\ 1|\ 3\0j\v\0|\ 1\0d\ 5\0\83\ 2\0\ 1t\f\0j\ 5\0\83\0\0}\ 4\0t\r\0j\ 5\0\83\0\0}\ 5\0t\ e\0j\ 5\0t\ f\0t\10\0\83\ 2\0}\ 6\0|\ 6\0\0d\b\0\83\ 1\0\ 1t\11\0j\ 5\0\83\0\0}\a\0|\a\0j\12\0d\10\0d\ 3\0\83\ 2\0\ 1|\a\0j\13\0d     \0\83\ 1\0\ 1|\a\0j\14\0d\ 5\0\83\ 1\0\ 1|\a\0j\15\0d\ 2\0d
33728 +\0\83\ 2\0\ 1|\a\0j\15\0d\ 3\0d\v\0\83\ 2\0\ 1|\ 6\0j\16\0|\a\0\83\ 1\0\ 1t\17\0j\ 5\0\83\0\0}\b\0|\b\0j\18\0d\ 2\0d\ 3\0d\ 5\0d\ 4\0g\ 4\0d\ 4\0d\ 3\0\83\ 3\0\ 1|\b\0j      \0d\f\0\83\ 1\0\ 1|\ 5\0j\19\0|\ 6\0|\ 3\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 6\0j\1a\0d\r\0d\ 3\0d\ 5\0\83\ 3\0\ 1|\a\0j\e\0d\ e\0\83\ 1\0}  \0|      \0j\1c\0|\a\0\83\ 1\0\ 1|\ 6\0j\16\0|      \0\83\ 1\0\ 1|\ 5\0j\19\0|\ 6\0|\ 3\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 4\0j\1d\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\f\0j\ 5\0|\ 1\0\83\ 1\0}
33729 +\0|
33730 +\0j\1e\0d\ 2\0\83\ 1\0}\v\0|\v\0j\1f\0t\ f\0d\ 3\0d\ 5\0\83\ 3\0}\f\0|\0\0\0|\f\0j!\0\83\0\0j"\0|\ 6\0j!\0\83\0\0d\ f\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\11\0\0\0Ns\f\0\0\0Pyfile40.medi\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 5\0\0\0R\85\ 1\0\0g\0\0\0\0\0\0\1c@s
33731 +\0\0\0sigX [MPa]s
33732 +\0\0\0sigY [GPa]R\86\ 1\0\0g333333ó?s\ 3\0\0\02*xg\11ê-\81\99\97q=i\b\0\0\0(#\0\0\0R\ 4\0\0\0R\87\ 1\0\0R\88\ 1\0\0RN\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0R\v\0\0\0R[\ 1\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0RY\0\0\0Rx\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0R\97\0\0\0R{\ 1\0\0Rk\0\0\0RZ\0\0\0R\89\ 1\0\0\0\0\0RZ\ 1\0\0R\8a\ 1\0\0R\\ 1\0\0Rc\ 1\0\0R\9f\ 1\0\0R0\0\0\0R)\ 1\0\0R1\0\0\0(\r\0\0\0R    \0\0\0R9\ 1\0\0R\84\0\0\0R:\ 1\0\0\ 1\0\0R;\ 1\0\0\0\0\0Re\ 1\0\0\0\0\0R\ 2\0\0\0\ 1\0\0R  \ 1\0\0R\f\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ e\0\0\0testMEDField18ö\ 3\0\0sF\0\0\0\0\ 1\ 6\ 1\f\ 1"\ 1\f\0\13\0\10\0\13\ 1\10\ 1\f\ 1\f\ 1\12\0\r\ 1\f\0\10\0\r\0\r\0\10\0\10\ 1\r\ 1\f\0\1f\0\r\ 2\16\ 1\13\0\ f\0\r\0\r\ 1\16\ 1\r\ 1\10\ 2\ f\ 1\ f\ 1\15\ 1%\ 1c\ 1\0\0\0\ 3\0\0\0\ 4\0\0\0C\0\0\0s>\0\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0|\ 1\0\83\ 1\0}\ 2\0|\0\0j\ 2\0d\ 6\0|\ 2\0j\ 3\0\83\0\0j\ 4\0d\ 5\0\83\ 1\0j\ 5\0\83\0\0\83\ 2\0\ 1d\0\0S(\a\0\0\0Ns\f\0\0\0Pyfile13.medt)\0\0\0Loc_MyFirstFieldOnGaussPoint_NORM_QUAD4_1t(\0\0\0Loc_MyFirstFieldOnGaussPoint_NORM_TRI3_0t(\0\0\0Loc_MyFirstFieldOnGaussPoint_NORM_TRI6_2i\0\0\0\0(\ 3\0\0\0\ 1\0\0\ 1\0\0\ 1\0\0(\ 6\0\0\0RK\ 1\0\0R(\0\0\0R+\0\0\0Ra\ 1\0\0Rc\ 1\0\0t\a\0\0\0getLocs(\ 3\0\0\0R        \0\0\0R9\ 1\0\0Re\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\10\0\0\0testMEDFieldBug1\ f\ 4\0\0s\b\0\0\0\0\ 1\ 6\ 1\ f\ 1%\ 1c\ 1\0\0\0\a\0\0\0\ 5\0\0\0C\0\0\0sf\ 3\0\0t\0\0j\ 1\0\83\0\0}\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1t\ 3\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0d\ 1\0|\ 1\0\83\ 2\0\ 1t\ 6\0j\ 4\0\83\0\0}\ 3\0|\ 3\0j\a\0d\ 1\0d\ 2\0g\ 2\0d\ 2\0d\ 3\0\83\ 3\0\ 1|\ 3\0j\b\0d\ 4\0\83\ 1\0\ 1t\ 6\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\a\0d\ 3\0d\ 5\0g\ 2\0d\ 2\0d\ 3\0\83\ 3\0\ 1|\ 4\0j\b\0d\ 6\0\83\ 1\0\ 1t\ 6\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\a\0d\ 3\0d\ 2\0d\ 5\0g\ 3\0d\ 5\0d\ 3\0\83\ 3\0\ 1|\ 5\0j\b\0d\a\0\83\ 1\0\ 1|\ 2\0j      \0d\ 1\0|\ 3\0|\ 4\0g\ 2\0t
33733 +\0\83\ 3\0\ 1|\0\0j\v\0d\ e\0|\ 2\0j\f\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\ f\0|\ 2\0j\r\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\10\0|\ 2\0j\ e\0d\ 4\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0d\11\0|\ 2\0j\ e\0d\ 6\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ f\0\83\0\0\ 1|\0\0j\v\0d\12\0|\ 2\0j\f\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\13\0|\ 2\0j\r\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\14\0|\ 2\0j\ e\0d\ 4\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0d\15\0|\ 2\0j\ e\0d\ 6\0\83\ 1\0\83\ 2\0\ 1t\ 3\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0d\ 1\0|\ 1\0\83\ 2\0\ 1|\ 2\0j    \0d\ 1\0|\ 3\0|\ 4\0|\ 5\0g\ 3\0t
33734 +\0\83\ 3\0\ 1|\0\0j\v\0d\16\0|\ 2\0j\f\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\17\0|\ 2\0j\r\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\18\0|\ 2\0j\ e\0d\ 4\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0d\19\0|\ 2\0j\ e\0d\ 6\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0d\1a\0|\ 2\0j\ e\0d\a\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ f\0\83\0\0\ 1|\0\0j\v\0d\e\0|\ 2\0j\f\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\1c\0|\ 2\0j\r\0\83\0\0\83\ 2\0\ 1|\0\0j\v\0d\1d\0|\ 2\0j\ e\0d\ 4\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0d\1e\0|\ 2\0j\ e\0d\ 6\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0d\1f\0|\ 2\0j\ e\0d\a\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\10\0d\f\0d\r\0\83\ 2\0\ 1|\ 2\0j\11\0d\ 1\0d\a\0\83\ 2\0}\ 6\0|\0\0j\12\0|\ 6\0j\13\0|\ 5\0\83\ 1\0\83\ 1\0\ 1|\ 2\0j\11\0d\ 1\0d\ 6\0\83\ 2\0}\ 6\0|\0\0j\12\0|\ 6\0j\13\0|\ 4\0\83\ 1\0\83\ 1\0\ 1|\ 2\0j\11\0d\ 1\0d\ 4\0\83\ 2\0}\ 6\0|\0\0j\12\0|\ 6\0j\13\0|\ 3\0\83\ 1\0\83\ 1\0\ 1d\0\0S( \0\0\0Ni\0\0\0\0i\ 2\0\0\0i\ 1\0\0\0t\ 2\0\0\0g1i\ 3\0\0\0t\ 2\0\0\0g2t\ 2\0\0\0g3s      \0\0\0Family_-2s   \0\0\0Family_-3s   \0\0\0Family_-4s   \0\0\0Family_-5i\ 5\0\0\0i\ 6\0\0\0(\ 2\0\0\0s\ 2\0\0\0g1s\ 2\0\0\0g2(\ 2\0\0\0\0\0\0Family_-2s   \0\0\0Family_-3(\ 1\0\0\0s      \0\0\0Family_-2(\ 1\0\0\0s      \0\0\0Family_-3(\ 2\0\0\0s\ 2\0\0\0g1s\ 2\0\0\0g2(\ 2\0\0\0s\ 2\0\0\0g1s\ 2\0\0\0g2(\ 1\0\0\0s\ 2\0\0\0g1(\ 1\0\0\0s\ 2\0\0\0g2(\ 3\0\0\0s\ 2\0\0\0g1s\ 2\0\0\0g2s\ 2\0\0\0g3(\ 3\0\0\0s      \0\0\0Family_-2s   \0\0\0Family_-4s   \0\0\0Family_-5(\ 2\0\0\0s      \0\0\0Family_-2s   \0\0\0Family_-4(\ 1\0\0\0s      \0\0\0Family_-5(\ 2\0\0\0s      \0\0\0Family_-4s   \0\0\0Family_-5(\ 3\0\0\0s\ 2\0\0\0g1s\ 2\0\0\0g2s\ 2\0\0\0g3(\ 3\0\0\0s    \0\0\0Family_-2s   \0\0\0Family_-4s   \0\0\0Family_-5(\ 2\0\0\0s      \0\0\0Family_-2s   \0\0\0Family_-4(\ 1\0\0\0s      \0\0\0Family_-5(\ 2\0\0\0s      \0\0\0Family_-4s   \0\0\0Family_-5(\14\0\0\0R\ 4\0\0\0RL\ 1\0\0t\1d\0\0\0convertQuadraticCellsToLinearR>\0\0\0R(\0\0\0Rj\0\0\0Rk\0\0\0RZ\0\0\0RB\0\0\0Rl\0\0\0RN\0\0\0R+\0\0\0t\ e\0\0\0getGroupsNamest\10\0\0\0getFamiliesNamesR\9a\0\0\0t\1d\0\0\0assignFamilyNameWithGroupNamet\ e\0\0\0changeFamilyIdRG\0\0\0R0\0\0\0R1\0\0\0(\a\0\0\0R       \0\0\0R\83\0\0\0R\86\0\0\0\ 1\0\0\ 1\0\0\ 1\0\0t\ 1\0\0\0g(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testMEDMesh8\15\ 4\0\0sZ\0\0\0\0\ 1\f\ 1
33735 +\ 1\f\ 1\10\ 1\f\0\19\0\r\ 1\f\0\19\0\r\ 1\f\0\1c\0\r\ 1\19\ 1\16\ 1\16\ 1\19\ 1\19\ 1
33736 +\ 1\16\ 1\16\ 1\19\ 1\19\ 2\f\ 1\10\ 1\1c\ 1\16\ 1\16\ 1\19\ 1\19\ 1\19\ 1
33737 +\ 1\16\ 1\16\ 1\19\ 1\19\ 1\19\ 1\10\ 1\12\ 1\16\ 1\12\ 1\16\ 1\12\ 1\16\ 1c\ 1\0\0\0\f\0\0\0\a\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0\83\0\0}\ 3\0t\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 4\0j\a\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 1\0d\ 3\0\83\ 2\0\ 1t  \0j\ 4\0\83\0\0}\ 5\0|\ 5\0j
33738 +\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\b\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 2\0j\v\0\83\0\0}\ 6\0|\ 6\0j\ 2\0\83\0\0}\a\0|\a\0j\f\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 1\0\ 1|\a\0j\r\0d\a\0\83\ 1\0\ 1|\ 6\0j\ e\0\83\0\0\ 4\1ed\b\09\ 2(|\ 6\0j\r\0d    \0\83\ 1\0\ 1t\ 3\0j\ 4\0\83\0\0}\b\0|\b\0j\ 5\0|\a\0j\ 6\0\83\0\0\83\ 1\0\ 1|\b\0j\a\0d\ 2\0|\a\0\83\ 2\0\ 1|\b\0j\b\0|\ 1\0d\ 2\0\83\ 2\0\ 1t   \0j\ 4\0\83\0\0}        \0|      \0j
33739 +\0|\ 6\0\83\ 1\0\ 1|      \0j\b\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\ f\0|\ 1\0d
33740 +\0d\ 2\0d\v\0d\ 2\0d\f\0\83\ 6\0}
33741 +\0|\0\0j\10\0|
33742 +\0j\11\0|\ 2\0d\r\0d\r\0\83\ 3\0\83\ 1\0\ 1t\ f\0|\ 1\0d\a\0d\ 2\0d      \0d\ 2\0d\f\0\83\ 6\0}\v\0|\0\0j\10\0|\v\0j\11\0|\ 6\0d\r\0d\r\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\ e\0\0\0Ns\f\0\0\0Pyfile41.medi\0\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0à?g333333ã?gffffffæ?t\f\0\0\03DSurfMesh_2g\0\0\0\0\0\0\0@t\13\0\0\0VectorFieldOnCells2R\19\ 1\0\0\ 1\0\0i\ 1\0\0\0g\11ê-\81\99\97q=(\12\0\0\0R\ 4\0\0\0R$\ 1\0\0\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0R%\ 1\0\0Rq\0\0\0t   \0\0\0translateRB\0\0\0R)\ 1\0\0R\14\ 1\0\0R0\0\0\0R1\0\0\0(\f\0\0\0R     \0\0\0R9\ 1\0\0\0\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\0\0\0R\85\0\0\0\0\0\0RC\ 1\0\0R
33743 +\ 1\0\0R\f\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt4\0\0\0testMEDLoaderMEDLoaderNSReadFieldDoubleDataInMedFile@\ 4\0\0s8\0\0\0\0\ 1\ 6\ 1\f\ 1\f\ 1\f\ 1\13\ 1\10\ 1\10\ 1\f\ 1\r\ 1\10\ 2\f\ 1\f\ 1\16\ 1\r\ 1\11\ 1\r\ 1\f\ 1\13\ 1\10\ 1\10\ 1\f\ 1\r\ 1\10\ 2\e\ 1\1c\ 1\e\ 1\1c\ 1c\ 1\0\0\0\1a\0\0\0\ e\0\0\0C\0\0\0s\19\ 6\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0\\ e\0}\ 2\0}\ 3\0}\ 4\0}\ 5\0}\ 6\0}\a\0}\b\0}     \0}
33744 +\0}\v\0}\f\0}\r\0}\ e\0}\ f\0t\ 2\0j\ 3\0\83\0\0}\10\0|\10\0j\ 4\0|\ 2\0j\ 5\0\83\0\0\83\ 1\0\ 1|\10\0j\ 6\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\10\0j\ 6\0d\ 3\0|\ 3\0\83\ 2\0\ 1|\10\0j\ 6\0d\ 4\0|\ 4\0\83\ 2\0\ 1|\10\0j\a\0|\ 1\0d\ 5\0\83\ 2\0\ 1d\ 6\0}\11\0d\a\0d\b\0d   \0g\ 3\0}\12\0t\b\0j\ 3\0\83\0\0}\13\0t    \0j\ 3\0\83\0\0}\14\0|\14\0j
33745 +\0|\ 2\0j\v\0\83\0\0t\f\0|\12\0\83\ 1\0\14d
33746 +\0\83\ 2\0\ 1|\14\0j\r\0d\v\0\83\ 1\0\ 1|\14\0j\ e\0t\f\0|\12\0\83\ 1\0\83\ 1\0\ 1|\14\0j\ f\0|\12\0\83\ 1\0\ 1t\10\0j\ 3\0t\11\0t\12\0\83\ 2\0}\ 5\0|\ 5\0j\13\0|\11\0\83\ 1\0\ 1|\ 5\0j\14\0|\14\0\83\ 1\0\ 1|\ 5\0j\15\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\16\0\83\0\0\ 1|\13\0j\17\0|\ 5\0\83\ 1\0\ 1|\0\0j\18\0|\13\0j\19\0\83\0\0d\ 5\0d\ 2\0g\ 1\0f\ 2\0\83\ 2\0\ 1t     \0j\ 3\0\83\0\0}\15\0|\15\0j
33747 +\0|\ 4\0j\v\0\83\0\0t\f\0|\12\0\83\ 1\0\14d
33748 +\0\83\ 2\0\ 1|\15\0j\r\0d\f\0\83\ 1\0\ 1|\15\0j\ e\0t\f\0|\12\0\83\ 1\0\83\ 1\0\ 1|\15\0j\ f\0|\12\0\83\ 1\0\ 1t\10\0j\ 3\0t\11\0t\12\0\83\ 2\0}\a\0|\a\0j\13\0|\11\0\83\ 1\0\ 1|\a\0j\14\0|\15\0\83\ 1\0\ 1|\a\0j\15\0|\ 4\0\83\ 1\0\ 1|\a\0j\16\0\83\0\0\ 1|\13\0j\17\0|\a\0\83\ 1\0\ 1|\0\0j\18\0|\13\0j\19\0\83\0\0d\ 5\0d\ 2\0d\ 4\0g\ 2\0f\ 2\0\83\ 2\0\ 1t  \0j\ 3\0\83\0\0}\16\0|\16\0j
33749 +\0|\ 3\0j\v\0\83\0\0t\f\0|\12\0\83\ 1\0\14d
33750 +\0\83\ 2\0\ 1|\16\0j\r\0d\r\0\83\ 1\0\ 1|\16\0j\ e\0t\f\0|\12\0\83\ 1\0\83\ 1\0\ 1|\16\0j\ f\0|\12\0\83\ 1\0\ 1t\10\0j\ 3\0t\11\0t\12\0\83\ 2\0}\ 6\0|\ 6\0j\13\0|\11\0\83\ 1\0\ 1|\ 6\0j\14\0|\16\0\83\ 1\0\ 1|\ 6\0j\15\0|\ 3\0\83\ 1\0\ 1|\ 6\0j\16\0\83\0\0\ 1|\13\0j\17\0|\ 6\0\83\ 1\0\ 1|\0\0j\18\0|\13\0j\19\0\83\0\0d\ 5\0d\ 2\0d\ 3\0d\ 4\0g\ 3\0f\ 2\0\83\ 2\0\ 1|\13\0j\a\0|\ 1\0d\ 2\0\83\ 2\0\ 1d\ e\0}\17\0d\ f\0d\10\0g\ 2\0}\18\0t\b\0j\ 3\0\83\0\0}\19\0\0j\ 3\0\83\0\0}\15\0|\15\0j
33751 +\0|\ 4\0j\v\0\83\0\0d\ 5\0\14d
33752 +\0\83\ 2\0\ 1|\15\0j\r\0d\11\0\83\ 1\0\ 1|\15\0j\ e\0d\ 5\0\83\ 1\0\ 1|\15\0j\ f\0|\18\0\83\ 1\0\ 1t\10\0j\ 3\0t\11\0t\12\0\83\ 2\0}\a\0|\a\0j\13\0|\17\0\83\ 1\0\ 1|\a\0j\14\0|\15\0\83\ 1\0\ 1|\a\0j\15\0|\ 4\0\83\ 1\0\ 1|\a\0j\16\0\83\0\0\ 1|\19\0j\17\0|\a\0\83\ 1\0\ 1|\0\0j\18\0|\19\0j\19\0\83\0\0d\ 2\0d\ 2\0g\ 1\0f\ 2\0\83\ 2\0\ 1t   \0j\ 3\0\83\0\0}\16\0|\16\0j
33753 +\0|\ 3\0j\v\0\83\0\0t\f\0|\18\0\83\ 1\0\14d
33754 +\0\83\ 2\0\ 1|\16\0j\r\0d\12\0\83\ 1\0\ 1|\16\0j\ e\0t\f\0|\18\0\83\ 1\0\83\ 1\0\ 1|\16\0j\ f\0|\18\0\83\ 1\0\ 1t\10\0j\ 3\0t\11\0t\12\0\83\ 2\0}\ 6\0|\ 6\0j\13\0|\17\0\83\ 1\0\ 1|\ 6\0j\14\0|\16\0\83\ 1\0\ 1|\ 6\0j\15\0|\ 3\0\83\ 1\0\ 1|\ 6\0j\16\0\83\0\0\ 1|\19\0j\17\0|\ 6\0\83\ 1\0\ 1|\0\0j\18\0|\19\0j\19\0\83\0\0d
33755 +\0d\ 2\0d\ 3\0g\ 2\0f\ 2\0\83\ 2\0\ 1|\19\0j\a\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\b\0j\ 3\0|\ 1\0|\11\0d\ 3\0d\ 3\0\83\ 4\0}\13\0|\0\0j\18\0|\13\0j\19\0\83\0\0d\ 5\0d\ 2\0d\ 3\0d\ 4\0g\ 3\0f\ 2\0\83\ 2\0\ 1|\0\0j\18\0|\13\0j\1a\0\83\0\0d\ 2\0d\ 2\0d\19\0d\14\0d\14\0f\ 4\0g\ 1\0f\ 2\0d
33756 +\0d\ 2\0d\1a\0d\14\0d\14\0f\ 4\0g\ 1\0f\ 2\0d\16\0d\ 2\0d\e\0d\14\0d\14\0f\ 4\0g\ 1\0f\ 2\0d\13\0d\ 2\0d\1c\0d\14\0d\14\0f\ 4\0g\ 1\0f\ 2\0g\ 4\0\83\ 2\0\ 1t\b\0j\ 3\0|\ 1\0|\17\0d\ 3\0d\ 3\0\83\ 4\0}\19\0|\0\0j\18\0|\19\0j\19\0\83\0\0d
33757 +\0d\ 2\0d\ 3\0g\ 2\0f\ 2\0\83\ 2\0\ 1|\0\0j\18\0|\19\0j\1a\0\83\0\0d\ 2\0d\ 2\0d\1d\0d\14\0d\14\0f\ 4\0g\ 1\0f\ 2\0d
33758 +\0d\ 2\0d\1e\0d\14\0d\14\0f\ 4\0g\ 1\0f\ 2\0g\ 2\0\83\ 2\0\ 1d\0\0S(\1f\0\0\0Ns\f\0\0\0Pyfile42.medi\0\0\0\0iÿÿÿÿiþÿÿÿi\ 2\0\0\0t\ 6\0\0\0Field1t\ 5\0\0\0comp1t\ 5\0\0\0comp2t\ 5\0\0\0comp3i\ 1\0\0\0g\0\0\0\0\0\0\1c@g\0\0\0\0\0Àg@g\0\0\0\0\0\80V@t\ 6\0\0\0Field2t\ 6\0\0\0comp11t\ 6\0\0\0comp22g\0\0\0\0\0ÀgÀg\0\0\0\0\0\80VÀi\ 4\0\0\0R&\0\0\0iT\0\0\0i\ 3\0\0\0i\94\0\0\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 4\0\0\0iT\0\0\0(\ 2\0\0\0iT\0\0\0i\94\0\0\0(\ 2\0\0\0i\94\0\0\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 4\0\0\0iT\0\0\0(\e\0\0\0R\ 4\0\0\0\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0RY\0\0\0Rx\ 1\0\0\0\0\0Ry\0\0\0Ry\ 1\0\0Rz\ 1\0\0t\13\0\0\0setInfoOnComponentsRw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0RB\0\0\0R{\ 1\0\0\0\0\0Rd\0\0\0R%\ 1\0\0R+\0\0\0R,\0\0\0t\15\0\0\0getFieldSplitedByType(\1a\0\0\0R     \0\0\0R9\ 1\0\0R\85\0\0\0R\84\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\83\0\0\0t
33759 +\0\0\0FieldName1t
33760 +\0\0\0compNames1R;\ 1\0\0t\ 3\0\0\0da2t\ 3\0\0\0da0R©\0\0\0t
33761 +\0\0\0FieldName2t
33762 +\0\0\0compNames2RC\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt!\0\0\0testMEDLoaderMultiLevelCellField1`\ 4\0\0\0\0\0\0\ 1\ 6\ 16\ 1\f\ 1\13\ 1\10\ 1\10\ 1\10\ 1\10\ 2\ 6\ 1\ f\ 1\f\ 1\f\ 1 \ 1\r\ 1\13\ 1\r\ 1\12\0\r\0\r\0\r\0
33763 +\ 1\r\ 1\1f\ 1\f\ 1 \ 1\r\ 1\13\ 1\r\ 1\12\0\r\0\r\0\r\0
33764 +\ 1\r\ 1"\ 1\f\ 1 \ 1\r\ 1\13\ 1\r\ 1\12\0\r\0\r\0\r\0
33765 +\ 1\r\ 1%\ 2\10\ 2\ 6\ 1\f\ 1\f\ 1\f\ 1\1a\ 1\r\ 1\r\ 1\r\ 1\12\0\r\0\r\0\r\0
33766 +\ 1\r\ 1\1f\ 1\f\ 1 \ 1\r\ 1\13\ 1\r\ 1\12\0\r\0\r\0\r\0
33767 +\ 1\r\ 1"\ 2\10\ 2\18\ 1%\ 1v\ 1\18\ 1"\ 1F\ 1c\ 1\0\0\0\1e\0\0\0\ e\0\0\0C\0\0\0\a\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0\\ e\0}\ 2\0}\ 3\0}\ 4\0}\ 5\0}\ 6\0}\a\0}\b\0}      \0}
33768 +\0}\v\0}\f\0}\r\0}\ e\0}\ f\0t\ 2\0j\ 3\0\83\0\0}\10\0|\10\0j\ 4\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\10\0j\ 4\0d\ 3\0|\ 3\0\83\ 2\0\ 1|\10\0j\ 4\0d\ 4\0|\ 4\0\83\ 2\0\ 1t\ 5\0j\ 3\0\83\0\0}\11\0t\ 6\0j\ 3\0t\a\0t\b\0\83\ 2\0}\12\0|\12\0\0d\ 5\0\83\ 1\0\ 1t
33769 +\0j\ 3\0\83\0\0}\13\0|\13\0j\v\0d\ 6\0d\a\0d\b\0d     \0d
33770 +\0d\v\0g\ 6\0d\f\0d\r\0\83\ 3\0\ 1|\12\0j\f\0|\13\0\83\ 1\0\ 1t\r\0j\ 3\0\83\0\0}\14\0|\14\0j\v\0d\f\0d\r\0g\ 2\0d\f\0d\ e\0\83\ 3\0\ 1|\14\0j        \0d\ f\0\83\ 1\0\ 1|\11\0j\ e\0|\12\0|\10\0d\ 4\0|\14\0\83\ 4\0\ 1|\11\0j\ f\0t\a\0d\ 3\0|\10\0\83\ 3\0}\15\0|\0\0j\10\0t\a\0|\15\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0|\15\0j\12\0\83\0\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0|\15\0j\12\0\83\0\0j\14\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\15\0j\12\0\83\0\0j\15\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0d\ 2\0d\ e\0g\ 3\0|\15\0j\12\0\83\0\0j\16\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0d\r\0g\ 2\0|\15\0j\12\0\83\0\0j\18\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\15\0j\19\0\83\0\0j\1a\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\r\0|\15\0j\19\0\83\0\0j\e\0\83\0\0\83\ 2\0\ 1d\ 6\0d\a\0d\b\0d      \0d
33771 +\0d\v\0g\ 6\0}\16\0d\a\0d\10\0d\11\0g\ 3\0}\17\0d\a\0d\12\0d\11\0g\ 3\0}\18\0xh\0t\1c\0d\r\0\83\ 1\0D]Z\0}\19\0|\0\0j\1d\0|\17\0|\19\0\19|\15\0j\12\0\83\0\0j\1e\0d\ 2\0\83\ 1\0|\19\0\19d\13\0\83\ 3\0\ 1|\0\0j\1d\0|\18\0|\19\0\19|\15\0j\12\0\83\0\0j\1e\0d\ e\0\83\ 1\0|\19\0\19d\13\0\83\ 3\0\ 1qv\ 2Wx=\0t\1c\0d\14\0\83\ 1\0D]/\0}\19\0|\0\0j\1d\0|\16\0|\19\0\19|\15\0j\19\0\83\0\0j\1f\0d\ 2\0|\19\0\83\ 2\0d\13\0\83\ 3\0\ 1\ 2W~\15\0|\11\0j\ f\0t\a\0d\ e\0|\10\0\83\ 3\0}\1a\0|\0\0j\10\0\0|\1a\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0|\1a\0j\12\0\83\0\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\1a\0j\12\0\83\0\0j\14\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\15\0|\1a\0j\12\0\83\0\0j\15\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0d\f\0d\ 2\0d\r\0g\ 4\0|\1a\0j\12\0\83\0\0j\16\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0d\f\0d\16\0g\ 3\0|\1a\0j\12\0\83\0\0j\18\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\1a\0j\19\0\83\0\0j\1a\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\r\0|\1a\0j\19\0\83\0\0j\e\0\83\0\0\83\ 2\0\ 1x=\0t\1c\0d\14\0\83\ 1\0D]/\0}\19\0|\0\0j\1d\0|\16\0|\19\0\19|\1a\0j\19\0\83\0\0j\1f\0d\ 2\0|\19\0\83\ 2\0d\13\0\83\ 3\0\ 1q4\ 4W|\10\0j!\0|\ 1\0d\f\0\83\ 2\0\ 1|\11\0j!\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\r\0j\ 3\0\83\0\0}\14\0|\14\0j\v\0d\r\0d\f\0g\ 2\0d\f\0d\ e\0\83\ 3\0\ 1|\14\0j        \0d\ f\0\83\ 1\0\ 1t\ 5\0j\ 3\0\83\0\0}\11\0|\11\0j\ e\0|\12\0|\10\0d\ 4\0|\14\0\83\ 4\0\ 1|\11\0j\ f\0t\a\0d\ 3\0|\10\0\83\ 3\0}\e\0|\0\0j\10\0t\a\0|\e\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0|\e\0j\12\0\83\0\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0|\e\0j\12\0\83\0\0j\14\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\e\0j\12\0\83\0\0j\15\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0d\ 2\0d\ e\0g\ 3\0|\e\0j\12\0\83\0\0j\16\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0d\r\0g\ 2\0|\e\0j\12\0\83\0\0j\18\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\e\0j\19\0\83\0\0j\1a\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\r\0|\e\0j\19\0\83\0\0j\e\0\83\0\0\83\ 2\0\ 1d   \0d
33772 +\0d\v\0d\ 6\0d\a\0d\b\0g\ 6\0}\1c\0xh\0t\1c\0d\r\0\83\ 1\0D]Z\0}\19\0|\0\0j\1d\0|\17\0|\19\0\19|\e\0j\12\0\83\0\0j\1e\0d\ 2\0\83\ 1\0|\19\0\19d\13\0\83\ 3\0\ 1|\0\0j\1d\0|\18\0|\19\0\19|\e\0j\12\0\83\0\0j\1e\0d\ e\0\83\ 1\0|\19\0\19d\13\0\83\ 3\0\ 1q
33773 +\ 6Wx=\0t\1c\0d\14\0\83\ 1\0D]/\0}\19\0|\0\0j\1d\0|\1c\0|\19\0\19|\e\0j\19\0\83\0\0j\1f\0d\ 2\0|\19\0\83\ 2\0d\13\0\83\ 3\0\ 1qu\ 6W|\11\0j\ f\0t\a\0d\ e\0|\10\0\83\ 3\0}\1d\0|\0\0j\10\0\0|\1d\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0|\1d\0j\12\0\83\0\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\1d\0j\12\0\83\0\0j\14\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\15\0|\1d\0j\12\0\83\0\0j\15\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0d\r\0d\ 2\0d\f\0g\ 4\0|\1d\0j\12\0\83\0\0j\16\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 2\0d\f\0d\16\0g\ 3\0|\1d\0j\12\0\83\0\0j\18\0\83\0\0j\17\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\f\0|\1d\0j\19\0\83\0\0j\1a\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\r\0|\1d\0j\19\0\83\0\0j\e\0\83\0\0\83\ 2\0\ 1x=\0t\1c\0d\14\0\83\ 1\0D]/\0}\19\0|\0\0j\1d\0|\16\0|\19\0\19|\1d\0j\19\0\83\0\0j\1f\0d\ 2\0|\19\0\83\ 2\0d\13\0\83\ 3\0\ 1\aWd\0\0S(\17\0\0\0Ns\f\0\0\0Pyfile43.medi\0\0\0\0iÿÿÿÿiþÿÿÿt\f\0\0\0NodeFieldPflg\0\0\0\0\0\0ð?g\0\0\0\0\0\0$@g\0\0\0\0\0\0Y@g\0\0\0\0\0\0\0@g\0\0\0\0\0\04@g\0\0\0\0\0\0i@i\ 2\0\0\0i\ 3\0\0\0i\ 1\0\0\0t\a\0\0\0PflNodeg\0\0\0\0\0\0\ 4@g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\ e@i\r\0\0\0i\ 6\0\0\0i\87\0\0\0i\ 4\0\0\0("\0\0\0R\ 4\0\0\0\0\0\0R>\0\0\0R(\0\0\0Rj\0\0\0\0\0\0Rw\ 1\0\0R\1c\ 1\0\0RX\ 1\0\0RB\0\0\0RY\0\0\0RZ\0\0\0R{\ 1\0\0Rk\0\0\0R|\ 1\0\0R\97\ 1\0\0R+\0\0\0t\ e\0\0\0getTypeOfFieldR¹\0\0\0t\10\0\0\0getMeshDimensionR§\0\0\0t\10\0\0\0getNumberOfNodesRv\0\0\0RH\0\0\0Rw\0\0\0R)\ 1\0\0\0\0\0t\15\0\0\0getNumberOfComponentsRn\0\0\0R&\ 1\0\0t\14\0\0\0getCoordinatesOfNodet\ 5\0\0\0getIJR\13\ 1\0\0R\v\0\0\0(\1e\0\0\0\0\0\0R9\ 1\0\0R\85\0\0\0R\84\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\83\0\0\0R\b\0\0\0\0\0\0t\ 3\0\0\0arrR\83\ 1\0\0t\ 4\0\0\0tes0R½\0\0\0t\14\0\0\0nodeCoordsWithValue1t\14\0\0\0nodeCoordsWithValue2Rî\0\0\0t\ 4\0\0\0tes1t\ 4\0\0\0tes2t      \0\0\0expected2t\ 4\0\0\0tes3(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt#\0\0\0testFieldOnPflRetrieveOnMdimRelMax1¦\ 4\0\0\0\0\0\0\ 1\ 6\ 16\ 1\f\ 1\10\ 1\10\ 1\10\ 1\f\ 1\12\ 1\r\ 1\f\0%\ 1\r\ 1\f\0\19\0\r\ 1\16\ 1\15\ 1\16\ 1\1c\ 1\1c\ 1\1c\ 1+\ 1(\ 1\1c\ 1\1c\ 1\18\ 1\ f\ 1\ f\ 1\13\ 1*\ 1*\ 1\ 4\ 1\13\ 1)\ 1\ 4\ 1\ 3\ 2\15\ 1\16\ 1\1c\ 1\1c\ 1\1c\ 1.\ 1+\ 1\1c\ 1\1c\ 1\13\ 1)\ 1\ 4\ 1\10\ 1\10\ 2\f\0\19\0\r\ 1\f\ 1\16\ 1\15\ 1\16\ 1\1c\ 1\1c\ 1\1c\ 1+\ 1(\ 1\1c\ 1\1c\ 1\18\ 1\13\ 1*\ 1*\ 1\ 4\ 1\13\ 1)\ 1\ 4\ 2\15\ 1\16\ 1\1c\ 1\1c\ 1\1c\ 1.\ 1+\ 1\1c\ 1\1c\ 1\13\ 1)\ 1\ 4\ 1c\ 1\0\0\0\12\0\0\0\15\0\0\0C\0\0\0s-\ 6\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0t\ 3\0j\ 1\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0g\ 6\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ 2\0d    \0t\ 3\0j\ 1\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 5\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0d
33774 +\0\83\ 1\0\ 1|\ 2\0j\ 6\0\83\0\0j\a\0d\v\0d\f\0g\ 2\0\83\ 1\0\ 1|\ 2\0j\b\0\83\0\0d\ 2\0\19d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0g\11\0\19}\ 3\0|\ 3\0j\ 5\0|\ 2\0j        \0\83\0\0\83\ 1\0\ 1t
33775 +\0j\ 1\0d\1e\0d\1f\0d\r\0g\ 3\0\83\ 1\0}\ 4\0|\ 4\0j\ 5\0\0\83\ 1\0\ 1t
33776 +\0j\ 1\0d!\0d"\0g\ 2\0\83\ 1\0}\ 5\0|\ 5\0j\ 5\0d#\0\83\ 1\0\ 1t\v\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j\f\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 6\0j\f\0d$\0|\ 3\0\83\ 2\0\ 1|\ 6\0j\r\0d$\0|\ 4\0|\ 5\0g\ 2\0\83\ 2\0\ 1t
33777 +\0j\ 1\0d\1e\0d\11\0d\13\0g\ 3\0\83\ 1\0}\a\0|\a\0j\ 5\0d%\0\83\ 1\0\ 1|\ 6\0j\r\0d     \0|\a\0g\ 1\0\83\ 2\0\ 1d\1e\0d&\0d\ f\0d\10\0d\11\0d\1e\0d"\0d&\0d\11\0d\12\0d\1e\0d'\0d"\0d\12\0d\13\0g\ f\0}\b\0d\1e\0d!\0d\r\0d\ f\0d&\0d\1e\0d(\0d!\0d&\0d"\0d\1e\0d\ e\0d(\0d"\0d'\0g\ f\0\0d\1e\0d!\0d\r\0d\ f\0d)\0d\1e\0d(\0d!\0d)\0d\17\0d\1e\0d\ e\0d(\0d\17\0d\18\0g\ f\0}
33778 +\0|\0\0j\ e\0d)\0|\ 6\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|\b\0|\ 6\0j\10\0d\ 2\0\83\ 1\0d*\0d+\0d\ f\0g\ 3\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|       \0|\ 6\0j\10\0d\ 2\0\83\ 1\0d,\0d\r\0d!\0g\ 3\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\ 6\0j\13\0\0\83\ 1\0\\ 3\0}\v\0}\f\0}\r\0|\0\0j\ e\0d&\0d"\0d'\0g\ 3\0|\v\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d,\0d\r\0d!\0g\ 3\0|\f\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d*\0d+\0d\ f\0g\ 3\0|\r\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d\19\0|\ 6\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d\1e\0d\1f\0d\r\0g\ 3\0|\ 6\0j\14\0d$\0\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d!\0d"\0g\ 2\0|\ 6\0j\14\0d$\0d#\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d\1e\0d\11\0d\13\0g\ 3\0|\ 6\0j\14\0d       \0d%\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d'\0d-\0d.\0g\ 3\0|\ 6\0j\14\0d$\0d/\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|\b\0|\ 6\0j\10\0d\ 2\0\83\ 1\0d*\0d+\0d\ f\0g\ 3\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|
33779 +\0|\ 6\0j\10\0d\ 2\0\83\ 1\0d,\0d\r\0d!\0g\ 3\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\15\0t\16\0|\ 6\0j\17\0d$\0d/\0\83\ 2\0j\18\0|\ 6\0j\17\0d$\0\0\83\ 2\0d0\0d1\0\83\ 5\0\ 1|\ 6\0j\17\0d$\0d/\0\83\ 2\0j\18\0|\ 6\0j\17\0d$\0\0\83\ 2\0d*\0d1\0\83\ 3\0\ 1t\ 3\0j\ 1\0d2\0d3\0d4\0d5\0d6\0d3\0d7\0d8\0d9\0d:\0d4\0d8\0d;\0d<\0d=\0d5\0d9\0d<\0d>\0d?\0g\14\0\83\ 1\0}\ e\0|\ 6\0j\10\0d\ 2\0\83\ 1\0j\19\0t\1a\0\83\ 1\0j\e\0\83\0\0}\ f\0|\ f\0|\ e\0\18}\10\0|\10\0j\1c\0\83\0\0\ 1|\0\0j\1d\0|\10\0j\1e\0\83\0\0d\ 2\0\19d1\0k\0\0\83\ 1\0\ 1|\ 6\0j\ 6\0\83\0\0t\1f\0|\v\0\83\ 1\0\vc\ 2\0\1fd\ 3\0d@\0g\ 2\07\ 3)|\0\0j\15\0t\16\0|\ 6\0j\17\0d$\0d/\0\83\ 2\0j\18\0|\ 6\0j\17\0d$\0\0\83\ 2\0d*\0d1\0\83\ 5\0\ 1|\ e\0\1e}\11\0dA\0dB\0dC\0g\ 3\0|\11\0d,\0d(\0+|\ 6\0j\10\0d\ 2\0\83\ 1\0j\19\0t\1a\0\83\ 1\0j\e\0\83\0\0}\ f\0|\ f\0|\11\0\18}\10\0|\10\0j\1c\0\83\0\0\ 1|\0\0j\1d\0|\10\0j\1e\0\83\0\0d\ 2\0\19d1\0k\0\0\83\ 1\0\ 1|\ 6\0\0|\ 1\0d0\0\83\ 2\0\ 1d\0\0S(D\0\0\0Ns\f\0\0\0Pyfile44.medi\0\0\0\0g\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99ñ?gffffff\ 2@gÍÌÌÌÌÌ\f@g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\1a@i\ 1\0\0\0t\10\0\0\0AnthonyDuplicates\ 6\0\0\0X [km]s\ 6\0\0\0Z [mm]i\b\0\0\0i\v\0\0\0i\ e\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i\ 4\0\0\0i\ 6\0\0\0t\ 3\0\0\0Grpi   \0\0\0i\10\0\0\0t\ 4\0\0\0Grp2iÿÿÿÿt\a\0\0\0GrpNodei\ f\0\0\0i\11\0\0\0i
33780 +\0\0\0i\1e\0\0\0i\f\0\0\0i\r\0\0\0i\a\0\0\0i\12\0\0\0i\13\0\0\0t\a\0\0\0Grp_dupi\ 2\0\0\0g\11ê-\81\99\97q=g\\8fÂõ(\ó?g\1f\85ëQ¸\1eõ?gáz\14®Gáö?g¤p=
33781 +×£ø?gffffffú?g
33782 +ףp=
33783 +÷?gö(\\8fÂõø?gáz\14®Gáú?gÍÌÌÌÌÌü?g
33784 +ףp=
33785 +û?g\1f\85ëQ¸\1eý?g333333ÿ?g\\8fÂõ(\ÿ?gÍÌÌÌÌÌ\0@g333333Ó¿g×£p=
33786 +×õ?g)\\8fÂõ(ô?g\9a\99\99\99\99\99õ?(!\0\0\0\0\0\0R(\0\0\0\0\0\0RY\0\0\0t\11\0\0\0buildUnstructuredRB\0\0\0\0\0\0\ 1\0\0R\9b\ 1\0\0RC\0\0\0Rk\0\0\0R>\0\0\0Rj\0\0\0Rl\0\0\0R+\0\0\0\ 1\0\0R}\0\0\0Rv\0\0\0RH\0\0\0t\1e\0\0\0buildInnerBoundaryAlongM1GroupRG\0\0\0R)\0\0\0R*\0\0\0R?\0\0\0t\13\0\0\0checkGeoEquivalWithRV\ 1\0\0R.\0\0\0R)\ 1\0\0t\ 3\0\0\0absR0\0\0\0t\v\0\0\0getMaxValueRy\0\0\0R\v\0\0\0(\12\0\0\0R  \0\0\0R9\ 1\0\0R\83\0\0\0R\85\0\0\0t\ 3\0\0\0grpt\ 4\0\0\0grp2R\86\0\0\0t\a\0\0\0grpNodet\ 4\0\0\0ref0t\ 4\0\0\0ref1t\ 4\0\0\0ref2t\ 5\0\0\0nodest\ 5\0\0\0cellst\ 6\0\0\0cells2t \0\0\0refValuest
33787 +\0\0\0valsToTestt\ 5\0\0\0deltat
33788 +\0\0\0refValues2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt#\0\0\0testBuildInnerBoundaryAlongM1Group1û\ 4\0\0sl\0\0\0\0\ 1\ 6\ 1\f\ 1+\ 1(\ 1\f\0\r\ 1\19\ 1G\ 1\13\ 1\18\0\r\ 1\15\0\r\ 1\f\ 1\10\ 1\10\ 1\16\ 1\18\0\r\ 1\13\ 13\ 13\ 13\ 2\16\ 12\ 12\ 2\18\ 1\1f\ 1\1f\ 1\1f\ 1\16\ 1+\ 1(\ 1+\ 1+\ 12\ 12\ 14\ 1+\ 1K\ 1\1e\0
33789 +\0
33790 +\ 1\1d\ 2#\ 14\ 1\a\0\16\ 1\1e\0
33791 +\0
33792 +\ 1\1d\ 1\10\ 1c\ 1\0\0\0\12\0\0\0\15\0\0\0C\0\0\0\ 5\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0t\ 3\0j\ 1\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0g\ 6\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ 2\0d        \0t\ 3\0j\ 1\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 5\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0d
33793 +\0\83\ 1\0\ 1|\ 2\0j\ 6\0\83\0\0j\a\0d\v\0d\f\0g\ 2\0\83\ 1\0\ 1|\ 2\0j\b\0\83\0\0d\ 2\0\19d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0g\11\0\19}\ 3\0|\ 3\0j\ 5\0|\ 2\0j        \0\83\0\0\83\ 1\0\ 1t
33794 +\0j\ 1\0d\1e\0d\1f\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\ 5\0\0\83\ 1\0\ 1t
33795 +\0j\ 1\0d!\0d"\0g\ 2\0\83\ 1\0}\ 5\0|\ 5\0j\ 5\0d#\0\83\ 1\0\ 1t\v\0j\ 1\0\83\0\0}\ 6\0|\ 6\0j\f\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 6\0j\f\0d$\0|\ 3\0\83\ 2\0\ 1|\ 6\0j\r\0d$\0|\ 4\0|\ 5\0g\ 2\0\83\ 2\0\ 1t
33796 +\0j\ 1\0d\1e\0d\11\0d\13\0g\ 3\0\83\ 1\0}\a\0|\a\0j\ 5\0d%\0\83\ 1\0\ 1|\ 6\0j\r\0d     \0|\a\0g\ 1\0\83\ 2\0\ 1d\1e\0d&\0d\ f\0d\10\0d\11\0d\1e\0d"\0d&\0d\11\0d\12\0d\1e\0d'\0d"\0d\12\0d\13\0g\ f\0}\b\0d\1e\0d!\0d\r\0d\ f\0d&\0d\1e\0d(\0d!\0d&\0d"\0g
33797 +\0}     \0d\1e\0d!\0d\r\0d\ f\0d)\0d\1e\0d(\0d!\0d)\0d"\0g
33798 +\0}
33799 +\0|\0\0j\ e\0d)\0|\ 6\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|\b\0|\ 6\0j\10\0d\ 2\0\83\ 1\0d*\0d+\0d\ f\0g\ 3\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|       \0|\ 6\0j\10\0d\ 2\0\83\ 1\0d,\0d\r\0g\ 2\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\ 6\0j\13\0\0\83\ 1\0\\ 3\0}\v\0}\f\0}\r\0|\0\0j\ e\0d&\0g\ 1\0|\v\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d,\0d\r\0g\ 2\0|\f\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d*\0d+\0g\ 2\0|\r\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d\17\0|\ 6\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d\1e\0d\1f\0g\ 2\0|\ 6\0j\14\0d$\0\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d!\0d"\0g\ 2\0|\ 6\0j\14\0d$\0d#\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d\1e\0d\11\0d\13\0g\ 3\0|\ 6\0j\14\0\0d%\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d'\0d-\0g\ 2\0|\ 6\0j\14\0d$\0d.\0\83\ 2\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|\b\0|\ 6\0j\10\0d\ 2\0\83\ 1\0d*\0d+\0d\ f\0g\ 3\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|
33800 +\0|\ 6\0j\10\0d\ 2\0\83\ 1\0d,\0d\r\0g\ 2\0\19j\11\0\83\0\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\15\0t\16\0|\ 6\0j\17\0d$\0d.\0\83\ 2\0j\18\0|\ 6\0j\17\0d$\0\0\83\ 2\0d/\0d0\0\83\ 5\0\ 1|\ 6\0j\17\0d$\0d.\0\83\ 2\0j\18\0|\ 6\0j\17\0d$\0\0\83\ 2\0d*\0d0\0\83\ 3\0\ 1t\ 3\0j\ 1\0d1\0d2\0d3\0d4\0d5\0d2\0d6\0d7\0d8\0d9\0d3\0d7\0d:\0d;\0d<\0d4\0d8\0d;\0d=\0d>\0g\14\0\83\ 1\0}\ e\0|\ 6\0j\10\0d\ 2\0\83\ 1\0j\19\0t\1a\0\83\ 1\0j\e\0\83\0\0}\ f\0|\ f\0|\ e\0\18}\10\0|\10\0j\1c\0\83\0\0\ 1|\0\0j\1d\0|\10\0j\1e\0\83\0\0d\ 2\0\19d0\0k\0\0\83\ 1\0\ 1|\ 6\0j\ 6\0\83\0\0t\1f\0|\v\0\83\ 1\0\vc\ 2\0\1fd\ 3\0d?\0g\ 2\07\ 3)|\0\0j\15\0t\16\0|\ 6\0j\17\0d$\0d.\0\83\ 2\0j\18\0|\ 6\0j\17\0d$\0\0\83\ 2\0d*\0d0\0\83\ 5\0\ 1|\ e\0\1e}\11\0d@\0dA\0g\ 2\0|\11\0d,\0d!\0+|\ 6\0j\10\0d\ 2\0\83\ 1\0j\19\0t\1a\0\83\ 1\0j\e\0\83\0\0}\ f\0|\ f\0|\11\0\18}\10\0|\10\0j\1c\0\83\0\0\ 1|\0\0j\1d\0|\10\0j\1e\0\83\0\0d\ 2\0\19d0\0k\0\0\83\ 1\0\ 1|\ 6\0\0|\ 1\0d/\0\83\ 2\0\ 1d\0\0S(B\0\0\0Ns\f\0\0\0Pyfile45.medi\0\0\0\0g\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99ñ?gffffff\ 2@gÍÌÌÌÌÌ\f@g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\1a@i\ 1\0\0\0\ 1\0\0s\ 6\0\0\0X [km]s\ 6\0\0\0Z [mm]i\b\0\0\0i\v\0\0\0i\ e\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i\ 4\0\0\0i\ 6\0\0\0\ 1\0\0i    \0\0\0i\10\0\0\0\ 1\0\0iÿÿÿÿRà\ 1\0\0i\ f\0\0\0i\11\0\0\0i
33801 +\0\0\0i\1e\0\0\0i\f\0\0\0i\r\0\0\0i\a\0\0\0i\12\0\0\0\ 1\0\0i\ 2\0\0\0g\11ê-\81\99\97q=g\\8fÂõ(\ó?g\1f\85ëQ¸\1eõ?gáz\14®Gáö?g¤p=
33802 +×£ø?gffffffú?g
33803 +ףp=
33804 +÷?gö(\\8fÂõø?gáz\14®Gáú?gÍÌÌÌÌÌü?g
33805 +ףp=
33806 +û?g\1f\85ëQ¸\1eý?g333333ÿ?g\\8fÂõ(\ÿ?gÍÌÌÌÌÌ\0@g333333Ó¿g×£p=
33807 +×õ?g\85ëQ¸\1e\85÷?(!\0\0\0\0\0\0R(\0\0\0\0\0\0RY\0\0\0\ 1\0\0RB\0\0\0\0\0\0\ 1\0\0R\9b\ 1\0\0RC\0\0\0Rk\0\0\0R>\0\0\0Rj\0\0\0Rl\0\0\0R+\0\0\0\ 1\0\0R}\0\0\0Rv\0\0\0RH\0\0\0\ 1\0\0RG\0\0\0R)\0\0\0R*\0\0\0R?\0\0\0\ 1\0\0RV\ 1\0\0R.\0\0\0R)\ 1\0\0\ 1\0\0R0\0\0\0\ 1\0\0Ry\0\0\0R\v\0\0\0(\12\0\0\0R   \0\0\0R9\ 1\0\0R\83\0\0\0R\85\0\0\0\ 1\0\0\ 1\0\0R\86\0\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt#\0\0\0testBuildInnerBoundaryAlongM1Group2-\ 5\0\0sl\0\0\0\0\ 1\ 6\ 1\f\ 1+\ 1(\ 1\f\0\r\ 1\19\ 1G\ 1\13\ 1\15\0\r\ 1\15\0\r\ 1\f\ 1\10\ 1\10\ 1\16\ 1\18\0\r\ 1\13\ 13\ 1$\ 1$\ 2\16\ 12\ 1/\ 2\18\ 1\19\ 1\1c\ 1\1c\ 1\16\ 1(\ 1(\ 1+\ 1(\ 12\ 1/\ 14\ 1+\ 1K\ 1\1e\0
33808 +\0
33809 +\ 1\1d\ 2#\ 14\ 1\a\0\13\ 1\1e\0
33810 +\0
33811 +\ 1\1d\ 1\10\ 1c\ 1\0\0\0\ f\0\0\0
33812 +\0\0\0C\0\0\0s\ f\ 4\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0t\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 5\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ 2\0d\b\0t\ 3\0d\ 3\0d    \0d
33813 +\0g\ 3\0\83\ 1\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0d\v\0\83\ 1\0\ 1|\ 2\0j\ 6\0\83\0\0d\ 2\0\19}\ 3\0|\ 3\0j\ 5\0|\ 2\0j\a\0\83\0\0\83\ 1\0\ 1t\b\0d\f\0d\r\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\ 5\0d\ e\0\83\ 1\0\ 1t        \0j\ 1\0\83\0\0}\ 5\0|\ 5\0j
33814 +\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\ 5\0j
33815 +\0d\ f\0|\ 3\0\83\ 2\0\ 1|\ 5\0j\v\0d\ f\0|\ 4\0g\ 1\0\83\ 2\0\ 1|\ 5\0j\f\0d\ e\0\83\ 1\0\\ 3\0}\ 6\0}\a\0}\b\0|\0\0j\r\0d\b\0d\10\0g\ 2\0|\ 6\0j\ e\0\83\0\0\83\ 2\0\ 1|\0\0j\r\0d\ 2\0d\11\0g\ 2\0|\a\0j\ e\0\83\0\0\83\ 2\0\ 1|\0\0j\r\0d\b\0d\12\0g\ 2\0|\b\0j\ e\0\83\0\0\83\ 2\0\ 1|\0\0j\r\0d\13\0|\ 5\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\r\0d\f\0d\r\0g\ 2\0|\ 5\0j\10\0d\ f\0d\ e\0\83\ 2\0j\ e\0\83\0\0\83\ 2\0\ 1|\0\0j\r\0d\14\0d\15\0g\ 2\0|\ 5\0j\10\0d\ f\0d\16\0\83\ 2\0j\ e\0\83\0\0\83\ 2\0\ 1d\17\0d\18\0d\ 2\0d\19\0d\11\0d\17\0d\1a\0d\12\0d\e\0d\1c\0g
33816 +\0}     \0d\17\0d\1d\0d\b\0d\11\0d\12\0d\17\0d\1e\0d\1a\0d\10\0d\1f\0g
33817 +\0}
33818 +\0|\0\0j\r\0|       \0|\ 5\0j\11\0d\ 2\0\83\ 1\0d\ 2\0d\11\0g\ 2\0\19j\12\0\83\0\0j\ e\0\83\0\0\83\ 2\0\ 1|\0\0j\r\0|
33819 +\0|\ 5\0j\11\0d\ 2\0\83\ 1\0d\b\0d\12\0g\ 2\0\19j\12\0\83\0\0j\ e\0\83\0\0\83\ 2\0\ 1|\0\0j\13\0t\14\0|\ 5\0j\15\0d\ f\0d\16\0\83\ 2\0j\16\0|\ 5\0j\15\0d\ f\0d\ e\0\83\ 2\0d\1d\0\0\83\ 5\0\ 1|\ 5\0j\15\0d\ f\0d\16\0\83\ 2\0j\16\0|\ 5\0j\15\0d\ f\0d\ e\0\83\ 2\0d\e\0\0\83\ 3\0\ 1t\ 3\0d\ 4\0d!\0d"\0d#\0d\ 4\0d!\0d"\0d#\0g\b\0\83\ 1\0}\v\0|\ 5\0j\11\0d\ 2\0\83\ 1\0j\17\0t\18\0\83\ 1\0j\19\0\83\0\0}\f\0|\f\0|\v\0\18}\r\0|\r\0j\1a\0\83\0\0\ 1|\0\0j\e\0|\r\0j\1c\0\83\0\0d\ 2\0\19d$\0k\0\0\83\ 1\0\ 1|\ 5\0j\1d\0\83\0\0t\1e\0|\ 6\0\83\ 1\0\vc\ 2\0\1fd\ 3\0d%\0g\ 2\07\ 3)|\0\0j\13\0t\14\0|\ 5\0j\15\0d\ f\0d\16\0\83\ 2\0j\16\0|\ 5\0j\15\0d\ f\0d\ e\0\83\ 2\0d\e\0\0\83\ 5\0\ 1|\v\0\1e}\ e\0d&\0|\ e\0d\ 2\0<d'\0|\ e\0d\11\0<|\ 5\0j\11\0d\ 2\0\83\ 1\0j\17\0t\18\0\83\ 1\0j\19\0\83\0\0}\f\0|\f\0|\ e\0\18}\r\0|\r\0j\1a\0\83\0\0\ 1|\0\0j\e\0|\r\0j\1c\0\83\0\0d\ 2\0\19\0k\0\0\83\ 1\0\ 1|\ 5\0j\1f\0|\ 1\0d\1d\0\83\ 2\0\ 1d(\0S()\0\0\0s@\0\0\0 Test buildInnerBoundaryAlongM1Group() with *non-connex* cracks s\f\0\0\0Pyfile73.medi\0\0\0\0g\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99ñ?gffffff\ 2@gÍÌÌÌÌÌ\f@g\0\0\0\0\0\0\14@i\ 1\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@t\ 6\0\0\0simplei\ 3\0\0\0i\13\0\0\0\ 1\0\0iÿÿÿÿi\r\0\0\0i\ 6\0\0\0i\a\0\0\0i\11\0\0\0i\16\0\0\0i\17\0\0\0\ 1\0\0i\ 4\0\0\0i\ f\0\0\0i\ 5\0\0\0i\b\0\0\0i\f\0\0\0i\10\0\0\0i\ 2\0\0\0i       \0\0\0i\ e\0\0\0g\11ê-\81\99\97q=g333333ó?gÍÌÌÌÌÌô?gffffffö?g»½×Ùß|Û=g333333Ó¿g=
33820 +×£p=ô?g®Gáz\14®ñ?N( \0\0\0\0\0\0R(\0\0\0\0\0\0RY\0\0\0\ 1\0\0RB\0\0\0R\9b\ 1\0\0RC\0\0\0Rk\0\0\0R>\0\0\0Rj\0\0\0Rl\0\0\0\ 1\0\0R+\0\0\0RH\0\0\0\ 1\0\0RG\0\0\0R}\0\0\0Rv\0\0\0R)\0\0\0R*\0\0\0R?\0\0\0\ 1\0\0RV\ 1\0\0R.\0\0\0R)\ 1\0\0\ 1\0\0R0\0\0\0\ 1\0\0\0\0\0Ry\0\0\0R\v\0\0\0(\ f\0\0\0R    \0\0\0R9\ 1\0\0R\83\0\0\0R\85\0\0\0t\ 6\0\0\0grpSegR\86\0\0\0\ 1\0\0t\b\0\0\0cellsModt\v\0\0\0cellsNotModRê\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt#\0\0\0testBuildInnerBoundaryAlongM1Group3_\ 5\0\0sT\0\0\0\0\ 2\ 6\ 1\f\ 1%\ 1\1f\ 1\f\0\r\ 1\10\ 1\13\ 3\12\0\r\ 2\f\ 1\10\ 1\10\ 1\13\ 1\18\ 1\1c\ 1\1c\ 1\1c\ 1\16\ 1(\ 1(\ 1$\ 1$\ 1/\ 1/\ 14\ 1+\ 2$\ 1\1e\0
33821 +\0
33822 +\ 1\1d\ 2#\ 14\ 1\a\0
33823 +\0
33824 +\ 1\1e\0
33825 +\0
33826 +\ 1\1d\ 1c\ 1\0\0\0\14\0\0\00\0\0\0C\0\0\0s\1e\ 5\0\0t\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 4\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 1\0d\ 3\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0g\18\0d\ 5\0d\ 6\0\83\ 3\0}\ 1\0d\a\0d\b\0d     \0d
33827 +\0d\a\0d
33828 +\0d     \0d\v\0d\a\0d\v\0d\f\0d\r\0d\a\0d\v\0d\r\0d\ e\0d\a\0d\ 6\0d\ e\0d\ f\0d\a\0d\ 6\0d\ f\0d\a\0d\a\0d        \0d\10\0d\f\0d\a\0d     \0d\f\0d\v\0d\a\0d
33829 +\0d\v\0d\ e\0d\a\0d
33830 +\0d\ e\0d\ 6\0d\a\0d\ e\0d\r\0d\11\0d\a\0d\ e\0d\11\0d\ f\0g0\0}\ 2\0t\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0d\12\0d
33831 +\0\83\ 2\0\ 1|\ 3\0j\ 3\0\83\0\0\ 1|\ 3\0d    \09}\ 3\0t\ 4\0d\13\0d\ 6\0\83\ 2\0}\ 4\0|\ 4\0j\ 5\0|\ 1\0\83\ 1\0\ 1|\ 4\0j\ 6\0t\ 1\0|\ 2\0\83\ 1\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\a\0\83\0\0\ 1|\ 4\0j\b\0\83\0\0\\ 5\0}\ 5\0}\ 6\0}\ 6\0}\ 6\0}\ 6\0t\ 1\0d\f\0d\11\0g\ 2\0\83\ 1\0}\a\0|\a\0j      \0d\14\0\83\ 1\0\ 1t\ 1\0d\b\0d
33832 +\0g\ 2\0\83\ 1\0}\b\0|\b\0\0d\15\0\83\ 1\0\ 1t
33833 +\0\83\0\0}  \0|      \0j\v\0d\b\0|\ 4\0\83\ 2\0\ 1\0j\v\0d\16\0|\ 5\0\83\ 2\0\ 1\0j\f\0d\16\0|\a\0|\b\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\r\0\83\0\0}
33834 +\0|     \0j\ e\0d\14\0\83\ 1\0\\ 3\0}\v\0}\f\0}\r\0\0j\ f\0d\b\0\83\ 1\0}\ e\0|\ e\0j\a\0\83\0\0\ 1|        \0j\ f\0d\16\0\83\ 1\0}\ f\0|\ f\0j\a\0\83\0\0\ 1|\0\0j\10\0|
33835 +\0d\ 6\0\17\0j\r\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0|
33836 +\0d\ 6\0\17|\ e\0j\r\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0|
33837 +\0d\ 6\0\17|\ f\0j\r\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0d\ f\0g\ 2\0|\v\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0g\ 4\0|\ e\0j\12\0\83\0\0|
33838 +\0\1fj\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0t\13\0d\a\0d\r\0d\11\0g\ 3\0\83\ 1\0t\13\0|\f\0j\11\0\83\0\0\83\ 1\0\83\ 2\0\ 1|\0\0j\10\0t\13\0d\10\0d\f\0d        \0d\v\0g\ 4\0\83\ 1\0t\13\0|\r\0j\11\0\83\0\0\83\ 1\0\83\ 2\0\ 1|\0\0j\10\0d\f\0d\11\0g\ 2\0|   \0j\14\0d\16\0d\14\0\83\ 2\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\17\0d\18\0g\ 2\0\0j\14\0d\16\0d\19\0\83\ 2\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\b\0d
33839 +\0g\ 2\0|  \0j\14\0d\16\0d\15\0\83\ 2\0j\11\0\83\0\0\83\ 2\0\ 1d\a\0d\v\0d\r\0d\ 5\0d\a\0d\ 5\0d\r\0d\11\0d\a\0d\ 5\0d\11\0d\12\0g\f\0}\10\0d\a\0d\ 6\0d\ e\0d\ f\0d\a\0d\ 6\0d\ f\0d\a\0d\a\0d
33840 +\0d\v\0d\ e\0d\a\0d
33841 +\0d\ e\0d\ 6\0g\10\0}\11\0|\0\0j\10\0|\10\0|        \0j\ f\0d\b\0\83\ 1\0d\a\0d\r\0d\11\0g\ 3\0\19j\15\0\83\0\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0|\11\0|       \0j\ f\0d\b\0\83\ 1\0d     \0d\v\0d\10\0d\f\0g\ 4\0\19j\15\0\83\0\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\16\0t\17\0|        \0j\18\0d\16\0d\19\0\83\ 2\0j\19\0|       \0j\18\0d\16\0d\14\0\83\ 2\0d\ 6\0d\1a\0\83\ 5\0\ 1|        \0j\18\0d\16\0d\19\0\83\ 2\0j\19\0|       \0j\18\0d\16\0d\14\0\83\ 2\0d\ 5\0d\1a\0\83\ 3\0\ 1|        \0j\ f\0d\16\0\83\ 1\0}\12\0|\12\0j\b\0\83\0\0\\ 5\0}\13\0}\ 6\0}\ 6\0}\ 6\0}\ 6\0|\12\0j\1a\0\0j\ f\0d\16\0\83\ 1\0d\ 6\0d\e\0\83\ 3\0\ 1d\1c\0S(\1d\0\0\0sr\0\0\0 Test case where cells touch the M1 group on some nodes only and not on full edges (triangle mesh for ex)
33842 +        g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@i\f\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 5\0\0\0i       \0\0\0i
33843 +\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i\v\0\0\0i\r\0\0\0t\ 2\0\0\02Dt\ 5\0\0\0groupt\ 6\0\0\0group2iÿÿÿÿi\17\0\0\0i\18\0\0\0t       \0\0\0group_dupg\11ê-\81\99\97q=g­\ 1¥üÿÿ#@N(\e\0\0\0RY\0\0\0Rk\0\0\0Rx\ 1\0\0Ry\ 1\0\0R[\0\0\0Rc\0\0\0t\ f\0\0\0setConnectivityt\10\0\0\0checkConsistencyR\9b\ 1\0\0RB\0\0\0R>\0\0\0Rj\0\0\0Rl\0\0\0\ 1\0\0\ 1\0\0R}\0\0\0R+\0\0\0RH\0\0\0\0\0\0t\ 3\0\0\0setRG\0\0\0Rv\0\0\0R)\0\0\0R*\0\0\0R?\0\0\0\ 1\0\0t\1f\0\0\0checkDeepEquivalOnSameNodesWith(\14\0\0\0R      \0\0\0t\ 3\0\0\0coot\ 4\0\0\0connt\ 5\0\0\0connIR\85\0\0\0R\84\0\0\0t\ 1\0\0\0_t\ 6\0\0\0grpIdst\a\0\0\0grpIds2t\ 3\0\0\0mfut\ 4\0\0\0nNodt\b\0\0\0nodesDupt\ 6\0\0\0cells1Rï\ 1\0\0t\ 6\0\0\0m2_bist\ 6\0\0\0m1_bisRê\ 1\0\0\ 1\0\0t\ 6\0\0\0m_bis0t\ 6\0\0\0m_desc(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt#\0\0\0testBuildInnerBoundaryAlongM1Group4\89\ 5\0\0sf\0\0\0\0\ 3\e\ 1\18\ 1'\ 1\18\ 1\18\ 1\18\ 1\18\ 1\18\ 1\1e\ 2        \ 1\10\0
33844 +\0
33845 +\ 1\ f\ 1\r\ 1\16\ 1
33846 +\ 1\e\ 1\12\0\r\ 1\12\0\r\ 1    \ 1\10\ 1\10\ 1\16\ 1\f\ 1\18\ 1\ f\ 1
33847 +\ 1\ f\ 1
33848 +\ 1\1a\ 1\1a\ 1\1a\ 1\1c\ 1,\ 1+\ 1.\ 1(\ 1(\ 1(\ 2*\ 16\ 12\ 15\ 14\ 1+\ 1\ f\ 1\e\ 1c\ 1\0\0\0\12\0\0\0®\ 1\0\0C\0\0\0
33849 +\0\0t\0\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 2\0d\ 3\0d\ 1\0d\ 1\0d\ 3\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 1\0d\ 2\0d\ 4\0d\ 1\0d\ 5\0d\ 1\0d\ 1\0d\ 6\0d\ 1\0d\ 1\0d\ 1\0d\ 4\0d\ 1\0d\ 5\0d\ 2\0d\ 1\0d\ 6\0d\ 2\0d\ 1\0d\ 2\0d\ 4\0d\ 2\0d\ 5\0d\ 1\0d\ 2\0d\ 6\0d\ 1\0d\ 2\0d\ 1\0d\ 4\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 6\0d\ 2\0d\ 2\0d\ 1\0d\ 1\0d\a\0d\ 2\0d\ 1\0d\b\0d\ 1\0d\ 2\0d\a\0d\ 2\0d\ 2\0d\b\0d     \0d\ 1\0d\ 1\0d\ 3\0d
33850 +\0d\ 1\0d\v\0d\ 2\0d\ 1\0d\v\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 2\0d\v\0d\ 2\0d\ 2\0d\ 3\0d\ 1\0d\f\0d\ 3\0d\ 2\0d\r\0d\ e\0d\ f\0d\ 1\0d\10\0d\11\0d\ 2\0d\12\0d\ 1\0d\13\0d\14\0d\ 2\0d\15\0d\ 1\0d\16\0d\17\0d\ 2\0d\18\0d\19\0d\1a\0d\e\0d\ 2\0d\1c\0d\ 2\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0g\8a\0d$\0d%\0\83\ 3\0}\ 1\0d&\0d'\0d(\0d)\0d*\0d&\0d+\0d,\0d-\0d.\0d&\0d/\0d0\0d1\0d.\0d&\0d2\0d3\0d4\0d5\0d&\0d,\0d0\0d.\0d1\0d&\0d)\0d-\0d6\0d.\0d&\0d,\0d3\0d1\0d7\0d&\0d+\0d,\0d.\0d1\0d&\0d8\0d9\0d/\0d1\0d&\0d)\0d'\0d:\0d;\0d&\0d/\0d+\0d.\0d1\0d&\0d&\0d<\0d6\0d.\0d&\0d3\0d,\0d1\0d5\0d&\0d9\0d=\0d>\0d?\0d&\0d,\0d0\0d1\0d5\0d&\0d.\0d&\0d<\0d0\0d&\0d.\0d@\0d/\0d:\0d&\0d)\0d:\0d@\0d.\0d&\0d,\0d.\0d&\0d6\0d&\0d/\0d+\0d1\0d?\0d&\0d)\0dA\0d'\0d*\0d&\0d9\0d?\0d/\0d1\0d&\0d@\0d:\0d)\0d%\0d&\0d9\0d=\0d?\0d1\0d&\0d/\0d0\0d.\0dB\0d&\0d)\0d:\0d.\0d;\0d&\0d/\0d+\0d?\0d@\0d&\0d+\0d,\0d1\0d7\0d&\0d3\0d4\0d5\0d1\0d&\0dC\0d:\0dD\0d'\0d&\0d,\0d0\0d5\0d&\0d&\0d4\0d0\0d5\0d1\0d&\0d-\0d.\0d)\0d+\0d&\0d8\0d0\0d4\0d1\0d&\0d/\0d0\0dB\0d8\0d&\0d.\0d-\0d6\0d,\0d&\0d9\0d8\0d4\0d1\0d&\0d:\0d<\0dB\0d.\0d&\0d7\0d=\0d1\0d+\0d&\0d;\0d'\0d:\0d<\0d&\0d+\0d,\0d7\0d-\0d&\0dB\0d<\0d:\0dE\0d&\0d/\0d0\0d8\0d1\0d&\0d6\0d)\0d.\0d;\0d&\0d8\0dF\0d9\0d4\0d&\0d?\0d=\0d+\0d1\0d&\0d)\0d(\0d'\0d6\0d&\0d.\0d;\0d<\0d6\0d&\0d6\0d'\0d<\0dG\0d&\0d.\0d;\0d:\0d<\0d&\0d6\0d-\0d)\0dH\0d&\0d,\0d0\0d&\0d.\0d&\0d/\0d+\0d@\0d.\0d&\0d'\0d(\0d*\0dI\0d&\0d3\0d=\0d7\0dJ\0d&\0d0\0d.\0dB\0d<\0d&\0d3\0d7\0d=\0d1\0d&\0d6\0d<\0d&\0dK\0d&\0d'\0d6\0dL\0dG\0d&\0dM\0d'\0dC\0dD\0d&\0dB\0d.\0d/\0d:\0d&\0d.\0d@\0d)\0d+\0d&\0dC\0d'\0dN\0d<\0d&\0d'\0dM\0dA\0dD\0d&\0dC\0d<\0d:\0d'\0d&\0d(\0d)\0dH\0d6\0d&\0dA\0dM\0dI\0dO\0d&\0dN\0d'\0dL\0dG\0d&\0dI\0d'\0dL\0dN\0d&\0d'\0d(\0dI\0dL\0d&\0dA\0d:\0d'\0dD\0d&\0d'\0d(\0dL\0d6\0d&\0dA\0d:\0d)\0d'\0d&\0dP\0dC\0dM\0dN\0d&\0dA\0dM\0d'\0dI\0d&\0dA\0d'\0d*\0dI\0d&\0dI\0dQ\0dL\0d(\0d&\0d)\0d:\0dA\0d%\0d&\0dM\0d'\0dI\0dN\0d&\0dN\0dL\0dR\0dG\0d&\0d<\0d'\0d6\0d;\0d&\0dN\0d'\0dG\0d<\0d&\0d)\0d6\0d'\0d;\0d&\0d6\0d<\0dK\0dG\0d&\0dM\0d'\0dN\0dC\0d&\0d:\0d<\0dC\0dE\0\ 1}\ 2\0dH\0d2\0dO\0d<\0d-\0d3\0dC\0dM\0d;\0d'\0dS\0dT\0dU\0dV\0dW\0dX\0dY\0dZ\0d[\0d\\0d]\0d^\0d_\0d`\0da\0db\0dc\0dd\0de\0df\0dg\0dh\0di\0dj\0dk\0dl\0dm\0dn\0do\0dp\0dq\0dr\0ds\0dt\0du\0dv\0dw\0dx\0dy\0dz\0d{\0d|\0d}\0d~\0d\7f\0d\80\0d\81\0d\82\0d\83\0d\84\0d\85\0d\86\0d\87\0d\88\0d\89\0d\8a\0d\8b\0d\8c\0d\8d\0d\8e\0d\8f\0d\90\0d\91\0d\92\0d\93\0d\94\0d\95\0d\96\0d\97\0d\98\0d\99\0d\9a\0d\9b\0d\9c\0d\9d\0d\9e\0d\9f\0gW\0}\ 3\0t\ 1\0\0d%\0\83\ 2\0}\ 4\0|\ 4\0j\ 2\0|\ 1\0\83\ 1\0\ 1|\ 4\0j\ 3\0t\ 4\0|\ 2\0\83\ 1\0t\ 4\0|\ 3\0\83\ 1\0\83\ 2\0\ 1|\ 4\0j\ 5\0\83\0\0\ 1|\ 4\0j\ 6\0\83\0\0\\ 5\0}\ 5\0}\ 6\0}\ 6\0}\ 6\0}\ 6\0t\ 4\0d0\0\0g\ 2\0\83\ 1\0}\a\0|\a\0j\a\0\0\83\ 1\0\ 1t\b\0\83\0\0}\b\0|\b\0j        \0dH\0|\ 4\0\83\ 2\0\ 1|\b\0\0\0|\ 5\0\83\ 2\0\ 1t\ 4\0dH\0dK\0g\ 2\0\83\ 1\0}     \0|      \0j\a\0\0\83\ 1\0\ 1|\b\0j
33851 +\0dH\0|  \0g\ 1\0\83\ 2\0\ 1|\b\0j
33852 +\0\0|\a\0g\ 1\0\83\ 2\0\ 1|\ 4\0j\v\0\83\0\0}
33853 +\0|\b\0j\f\0\0\83\ 1\0\\ 3\0}\v\0}\f\0}\r\0|\b\0j\r\0dH\0\83\ 1\0}\ e\0|\ e\0j\ 5\0\83\0\0\ 1|\b\0j\r\0\0\83\ 1\0}\ f\0|\ f\0j\ 5\0\83\0\0\ 1|\0\0j\ e\0|
33854 +\0dK\0\17|\b\0j\v\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|
33855 +\0dK\0\17|\ e\0j\v\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|
33856 +\0dK\0\17|\ f\0j\v\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0d%\0g\ 1\0|\v\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0|\ e\0j\10\0\83\0\0d%\0\19j\ f\0\83\0\0|\ e\0j\10\0\83\0\0|
33857 +\0\1fj\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0t\11\0d?\0g\ 1\0\83\ 1\0t\11\0|\f\0j\ f\0\83\0\0\83\ 1\0\83\ 2\0\ 1|\0\0j\ e\0t\11\0\0g\ 1\0\83\ 1\0t\11\0|\r\0j\ f\0\83\0\0\83\ 1\0\83\ 2\0\ 1|\0\0j\ e\0d0\0\0g\ 2\0|\b\0j\12\0\0\0\83\ 2\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0dH\0dK\0g\ 2\0|\b\0j\12\0dH\0\0\83\ 2\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ e\0\0g\ 1\0|\b\0j\12\0\0\0\83\ 2\0j\ f\0\83\0\0\83\ 2\0\ 1|\b\0j\r\0\0\83\ 1\0}\10\0|\10\0j\ 6\0\83\0\0\\ 5\0}\11\0}\ 6\0}\ 6\0}\ 6\0}\ 6\0|\10\0j\13\0|\b\0j\r\0\0\83\ 1\0dE\0\0\83\ 3\0\ 1\0S(ª\0\0\0\0\0\0 Full 3D test with tetras only. In this case a tri from the group is not duplicated because it is made only
33858 +        of non duplicated nodes. The tri in question is hence not part of the final new "dup" group. g\0\0\0\0\0\0i@g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0y@g\v\0\0\0\0\0Y@g§õ\1aÒu\93O@gåQA@wÎ`@gü  ìü\\ 1Y@g\88cjµ\99\0Y@g\1dá Üä´r@gRÀË\97\95«X@g¢xÏ   Gîr@g#<©úG£X@g\ f\16ÛDb\ 1Y@g¢µî]=ÔX@g\80ÿóÿÿÿX@gö\82â^=ÔX@g+Im\0\0\0Y@gîÇ5^=ÔX@gèlÖ*S\0Y@gîô5^=ÔX@gMnÖ*S\0Y@gü
33859 +ÓÿÿÿX@g\19Ù"Â\9b\0Y@gÞÚ\93ÿÿÿX@g\1a·Ï\99D\0Y@gðÝ[o¦Ôr@gÂ\ 3
33860 +\0\0\0Y@g\fÌlo¦Ôr@g¯ü¾ë\9c\0Y@g\v\÷Éé\90a@g\19)}þÿÿX@g¶\80³jS\0Y@g\7fD}n\v\9er@glL[e¸JX@g¬8Þ$\88KX@i.\0\0\0i\ 3\0\0\0i\ e\0\0\0i-\0\0\0i\1f\0\0\0i\15\0\0\0i*\0\0\0i%\0\0\0i&\0\0\0i\14\0\0\0i,\0\0\0i'\0\0\0i$\0\0\0i)\0\0\0i\ 5\0\0\0i\19\0\0\0i\f\0\0\0i\r\0\0\0i\18\0\0\0i\13\0\0\0i\10\0\0\0i\e\0\0\0i\1a\0\0\0i(\0\0\0i\ f\0\0\0i\12\0\0\0i\ 6\0\0\0i\16\0\0\0i\17\0\0\0i!\0\0\0i\11\0\0\0i\1e\0\0\0i+\0\0\0i\ 2\0\0\0i\a\0\0\0i\1c\0\0\0i\0\0\0\0\0\0\0i\ 4\0\0\0i\ 1\0\0\0i"\0\0\0i#\0\0\0i\1d\0\0\0i
33861 +\0\0\0i\v\0\0\0i\b\0\0\0\0\0\0i2\0\0\0i7\0\0\0i<\0\0\0iA\0\0\0iF\0\0\0iK\0\0\0iP\0\0\0iU\0\0\0iZ\0\0\0i_\0\0\0id\0\0\0ii\0\0\0in\0\0\0is\0\0\0ix\0\0\0i}\0\0\0i\82\0\0\0i\87\0\0\0i\8c\0\0\0i\91\0\0\0i\96\0\0\0i\9b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0iÿ\0\0\0i\ 4\ 1\0\0i     \ 1\0\0i\ e\ 1\0\0i\13\ 1\0\0i\18\ 1\0\0i\1d\ 1\0\0i"\ 1\0\0i'\ 1\0\0i,\ 1\0\0i1\ 1\0\0i6\ 1\0\0i;\ 1\0\0i@\ 1\0\0iE\ 1\0\0iJ\ 1\0\0iO\ 1\0\0iT\ 1\0\0iY\ 1\0\0i^\ 1\0\0ic\ 1\0\0ih\ 1\0\0im\ 1\0\0ir\ 1\0\0iw\ 1\0\0i|\ 1\0\0i\81\ 1\0\0i\86\ 1\0\0i\8b\ 1\0\0i\90\ 1\0\0i\95\ 1\0\0i\9a\ 1\0\0i\9f\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0t\ 2\0\0\03DiJ\0\0\0\ 1\0\0iÿÿÿÿt\b\0\0\0group_3diM\0\0\0\0\0\0\ 1\0\0\ 1¥üÿÿ#@N(\14\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0Rÿ\ 1\0\0Rk\0\0\0R\0\ 2\0\0R\9b\ 1\0\0RB\0\0\0R>\0\0\0Rj\0\0\0Rl\0\0\0\ 1\0\0\ 1\0\0R}\0\0\0R+\0\0\0RH\0\0\0\0\0\0R\ 1\ 2\0\0RG\0\0\0R\ 2\ 2\0\0(\12\0\0\0R     \0\0\0R\ 3\ 2\0\0t\ 2\0\0\0c0t\ 3\0\0\0cI0t\ 2\0\0\0m3R\85\0\0\0R\ 6\ 2\0\0R\a\ 2\0\0R  \ 2\0\0t\b\0\0\0grpIds3DR
33862 +\ 2\0\0R\v\ 2\0\0R\f\ 2\0\0\ 1\0\0t\ 6\0\0\0m3_bisR\r\ 2\0\0R\ f\ 2\0\0R\10\ 2\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\17\0\0\0testBuildInnerBoundary5¾\ 5\0\0st\0\0\0\0\ 3H\ 1<\ 1-\ 13\ 1*\ 10\ 1$\ 1\1e\ 1\e\ 1\15\ 1\81\ 1\81\ 1\84\ 1\81\ 1\81\ 1\81\ 1\81\ 1~\ 1~\ 1~\ 1\f\ 1r\ 1f\ 13\ 1\ f\ 1\r\ 1\1c\ 1
33863 +\ 1\e\ 1\12\0\r\ 1        \ 1\10\ 1\10\ 1\12\0\r\ 1\13\ 1\13\ 1\f\ 1\18\ 1\ f\ 1
33864 +\ 1\ f\ 1
33865 +\ 1\1a\ 1\1a\ 1\1a\ 1\19\ 10\ 1%\ 1%\ 1(\ 1(\ 1%\ 1\ f\ 1\e\ 1\1c\ 1c\ 1\0\0\0\ 3\0\0\0\a\0\0\0C\0\0\0s\ 3\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0|\ 1\0\83\ 1\0}\ 2\0t\0\0j\ 1\0|\ 1\0d\ 2\0d\ 3\0d\ 3\0\83\ 4\0}\ 2\0t\0\0j\ 1\0|\ 1\0\83\ 1\0}\ 2\0t\ 2\0|\ 1\0d\ 2\0d\ 3\0d\ 3\0\83\ 4\0}\ 2\0t\ 2\0|\ 1\0\83\ 1\0}\ 2\0t\ 2\0\83\0\0}\ 2\0|\0\0j\ 3\0\83\0\0\ 1t\ 4\0d\ 4\0\83\ 1\0}\ 2\0t\ 4\0d\ 4\0d\ 5\0d\ 3\0d\ 3\0\83\ 4\0}\ 2\0t\ 4\0\83\0\0}\ 2\0t\ 5\0\83\0\0}\ 2\0t\ 5\0|\ 1\0\83\ 1\0}\ 2\0t\ 5\0|\ 1\0d\ 2\0\83\ 2\0}\ 2\0t\ 6\0\83\0\0}\ 2\0t\ 6\0|\ 1\0\83\ 1\0}\ 2\0t\a\0\83\0\0}\ 2\0t\a\0|\ 1\0d\ 6\0d\a\0d\b\0\83\ 4\0}\ 2\0t\b\0\83\0\0}\ 2\0t\b\0|\ 1\0d\ 6\0\83\ 2\0}\ 2\0t    \0\83\0\0}\ 2\0t        \0|\ 1\0\83\ 1\0}\ 2\0t
33866 +\0\83\0\0}\ 2\0t
33867 +\0|\ 1\0\83\ 1\0}\ 2\0t\v\0\83\0\0}\ 2\0t\v\0d        \0d\a\0\83\ 2\0}\ 2\0t\v\0d
33868 +\0d     \0d\v\0d\f\0d\a\0d\r\0g\ 6\0d\f\0d\a\0\83\ 3\0}\ 2\0t\f\0\83\0\0}\ 2\0t\f\0d       \0d\a\0\83\ 2\0}\ 2\0t\f\0d
33869 +\0d     \0d\v\0d\f\0d\a\0d\r\0g\ 6\0d\f\0d\a\0\83\ 3\0}\ 2\0t\r\0d\ e\0d\a\0\83\ 2\0}\ 2\0t\r\0\83\0\0}\ 2\0t\ e\0\83\0\0}\ 2\0t\ f\0t\10\0t\11\0\83\ 2\0}\ 2\0t\12\0t\13\0\83\ 1\0}\ 2\0t\14\0g\0\0\83\ 1\0}\ 2\0t\15\0g\0\0\83\ 1\0}\ 2\0d\0\0S(\ f\0\0\0Ns\f\0\0\0Pyfile18.medR%\0\0\0iÿÿÿÿs\10\0\0\0MEDFileMesh5.medR«\0\0\0t\13\0\0\0FieldOnFacesShufflei\ 2\0\0\0i\a\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\ 4\0\0\0i\ 3\0\0\0i\ 1\0\0\0t\ 3\0\0\0jjj(\16\0\0\0R'\0\0\0R(\0\0\0R>\0\0\0R¿\0\0\0\0\0\0RM\ 1\0\0RP\ 1\0\0\0\0\0\0\0\0R[\ 1\0\0RK\ 1\0\0Rk\0\0\0RY\0\0\0R[\0\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0t\18\0\0\0MEDCouplingFieldTemplateR\1c\ 1\0\0t\16\0\0\0MEDCouplingMultiFieldst\18\0\0\0MEDCouplingFieldOverTime(\ 3\0\0\0R       \0\0\0R9\ 1\0\0R\83\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\15\0\0\0testBasicConstructorsú\ 5\0\0sL\0\0\0\0\ 1\ 6\ 1\ f\ 1\18\ 1\ f\ 1\15\ 1\f\ 1        \ 1
33870 +\ 1\f\ 1\15\ 1  \ 1       \ 1\f\ 1\ f\ 1   \ 1\f\ 1     \ 1\15\ 1     \ 1\ f\ 1     \ 1\f\ 1     \ 1\f\ 2     \0\ f\0$\ 1   \0\ f\0$\ 1\ f\0 \ 1       \ 1\ f\ 1\f\ 1\f\ 1\f\ 1c\ 1\0\0\0\v\0\0\0\b\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0d\ 2\0 }\ 2\0|\ 2\0j\ 2\0d\ 3\0\83\ 1\0\ 1|\ 2\0j\ 3\0t\ 4\0\83\ 1\0}\ 3\0|\ 3\0j\ 5\0t\ 6\0t\ 4\0\83\ 2\0}\ 3\0|\ 3\0j\a\0d\ 4\0d\ 5\0d\ 6\0\83\ 3\0\ 1|\ 3\0j\ 2\0d\a\0\83\ 1\0\ 1|\ 3\0d\b\0 }\ 4\0|\ 4\0j\b\0\83\0\0j\ 2\0|\ 2\0j     \0\83\0\0\83\ 1\0\ 1|\ 3\0d\b\0\1f}\ 5\0|\ 5\0j\b\0\83\0\0j\ 2\0|\ 2\0j      \0\83\0\0\83\ 1\0\ 1t
33871 +\0j\v\0\83\0\0}\ 6\0|\ 6\0j\f\0d      \0|\ 2\0\83\ 2\0\ 1t\r\0j\v\0\83\0\0}\a\0|\a\0j\ e\0|\ 4\0|\ 6\0d       \0t\ f\0j\10\0d        \0d\b\0d
33872 +\0\83\ 3\0\83\ 4\0\ 1|\ 6\0j\11\0|\ 1\0d\v\0\83\ 2\0\ 1|\a\0j\11\0|\ 1\0d     \0\83\ 2\0\ 1t\r\0j\v\0|\ 1\0|\ 3\0j      \0\83\0\0|\ 3\0j\12\0\83\0\0d
33873 +\0\19|\ 3\0j\12\0\83\0\0d\v\0\19\83\ 4\0}\b\0|\b\0j\13\0t\14\0d        \0|\ 6\0\83\ 3\0}        \0|\b\0j\15\0t\14\0d     \0\83\ 2\0}
33874 +\0|     \0j\16\0\83\0\0\ 1|
33875 +\0j\16\0\83\0\0\ 1|\0\0j\17\0|        \0j\18\0|\ 4\0d\f\0d\f\0\83\ 3\0\83\ 1\0\ 1|\0\0j\17\0|
33876 +\0j\18\0|\ 4\0d\f\0d\f\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\r\0\0\0Ns\f\0\0\0Pyfile46.medi
33877 +\0\0\0t\ 4\0\0\0meshg\0\0\0\0\0\0\16@i\ 3\0\0\0i\ 4\0\0\0t\10\0\0\0SemiPartialFieldi\ 6\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0g\11ê-\81\99\97q=(\19\0\0\0R\ 4\0\0\0Rv\ 1\0\0RB\0\0\0RV\ 1\0\0RN\0\0\0RW\ 1\0\0RX\ 1\0\0\0\0\0\0\0\0RC\0\0\0R>\0\0\0R(\0\0\0Rj\0\0\0\0\0\0R|\ 1\0\0Rk\0\0\0t\ 5\0\0\0RangeR\v\0\0\0\0\0\0R\97\ 1\0\0R\13\ 1\0\0R\ 6\ 1\0\0Rd\0\0\0R0\0\0\0R1\0\0\0(\v\0\0\0\0\0\0R9\ 1\0\0R\83\0\0\0R\b\0\0\0\0\0\0\0\0\0R\86\0\0\0\0\0\0RC\ 1\0\0t\ 5\0\0\0freadt\ 6\0\0\0fread2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\17\0\0\0testBugSemiPartialField\1f\ 6\0\0s4\0\0\0\0\ 1\ 6\ 1\f\ 1
33878 +\0\r\ 1\ f\ 1\12\ 1\13\ 1\r\ 2
33879 +\0\19\ 1
33880 +\0\19\ 2\f\ 1\10\ 1\f\ 1%\ 1\10\ 1\10\ 22\ 1\15\ 1\12\ 2
33881 +\ 1
33882 +\ 1\1c\ 1\1c\ 1c\ 1\0\0\0\ 4\0\0\0&\0\0\0C\0\0\0\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0|\0\0\83\ 1\0}\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 2\0d\ 4\0d\ 3\0d\ 3\0d\ 2\0d\ 5\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0g&\0}\ 3\0|\0\0j\ 2\0|\ 3\0|\ 2\0j\ 3\0d\ 6\0\83\ 1\0j\ 4\0\83\0\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\ 5\0\83\0\0d\a\0 t\ 6\0d\a\0d\b\0d   \0g\ 3\0d
33883 +\0d\a\0d\b\0g\ 3\0d\v\0d
33884 +\0d\v\0g\ 3\0d\ 3\0d\b\0d\f\0g\ 3\0d\r\0d\a\0d\ e\0g\ 3\0d\ f\0d\b\0d\ 3\0g\ 3\0g\ 6\0d\a\0d\a\0d  \0g\ 3\0d
33885 +\0d\a\0d\a\0g\ 3\0d\v\0d\a\0d\10\0g\ 3\0d\ 3\0d\a\0d\f\0g\ 3\0d\r\0d\a\0d\ 4\0g\ 3\0d\11\0d\ 6\0d\ 5\0g\ 3\0g\ 6\0f\ 3\0\83\ 2\0\ 1|\ 2\0j\a\0|\ 1\0d\b\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\b\0d      \0d\12\0\83\ 2\0j\ 4\0\83\0\0d  \0d\ 6\0d\b\0d\10\0g\ 4\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\b\0d  \0d\13\0\83\ 2\0j\ 4\0\83\0\0d\ 6\0d\a\0d
33886 +\0d\v\0d\10\0g\ 5\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\b\0d\14\0d\15\0\83\ 2\0j\ 4\0\83\0\0d\ 6\0d\b\0d\a\0d
33887 +\0d\v\0g\ 5\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\b\0d\14\0d\16\0\83\ 2\0j\ 4\0\83\0\0d\a\0d
33888 +\0d\v\0d\10\0g\ 4\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\b\0d\14\0d\17\0\83\ 2\0j\ 4\0\83\0\0d\b\0d\10\0d\18\0d\19\0g\ 4\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\b\0d\ 6\0d\1a\0\83\ 2\0j\ 4\0\83\0\0d       \0d\ e\0d\ 5\0d\r\0g\ 4\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\b\0d\ 6\0d\e\0\83\ 2\0j\ 4\0\83\0\0d\ 6\0d\b\0d\ 2\0d\ 3\0d\r\0g\ 5\0\83\ 2\0\ 1|\0\0j\ 2\0|\ 2\0j\ 3\0d\ 6\0\83\ 1\0j\ 4\0\83\0\0|\ 3\0\83\ 2\0\ 1|\ 2\0j   \0d      \0d\0\0\83\ 2\0\ 1|\ 2\0j\v\0d\14\0d\0\0\83\ 2\0\ 1d\0\0S(\1c\0\0\0Ns\f\0\0\0Pyfile47.medi\r\0\0\0i\ e\0\0\0i\f\0\0\0i\ f\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0i\ 5\0\0\0i  \0\0\0i\10\0\0\0i\v\0\0\0i\1f\0\0\0i\ 6\0\0\0i\12\0\0\0t\a\0\0\0grp0_L0t\a\0\0\0grp1_L0iÿÿÿÿt\b\0\0\0grp0_LM1t\b\0\0\0grp1_LM1t\b\0\0\0grp2_LM1i\a\0\0\0i\b\0\0\0t     \0\0\0grp0_Nodet   \0\0\0grp1_Node(\f\0\0\0R\ 4\0\0\0t\13\0\0\0buildMLMeshUnPolyzeR+\0\0\0R\9e\0\0\0RH\0\0\0t\b\0\0\0unPolyzeR.\0\0\0R\v\0\0\0RG\0\0\0R\98\0\0\0t\ 4\0\0\0NoneR¶\0\0\0(\ 4\0\0\0R      \0\0\0R9\ 1\0\0R\86\0\0\0t\ 3\0\0\0ref(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testUnPolyze1<\ 6\0\0s"\0\0\0\0\ 1\ 6\ 1\ f\ 1x\ 1\1f\ 1³\ 1\10\ 1.\ 11\ 11\ 1.\ 1.\ 1.\ 11\ 1\1f\ 2\10\ 1\10\ 1c\ 1\0\0\0\13\0\0\0-\0\0\0C\0\0\0\b\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0t\ 2\0j\ 3\0|\0\0\83\ 1\0}\ 3\0t\ 4\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 3\0\83\ 1\0\ 1|\ 2\0j\ 6\0|\ 4\0\83\ 1\0\ 1t\a\0j\ 1\0\83\0\0}\ 5\0|\ 2\0j\b\0|\ 5\0\83\ 1\0\ 1t     \0j\ 1\0\83\0\0}\ 6\0|\ 5\0j
33889 +\0|\ 6\0\83\ 1\0\ 1t\v\0j\ 1\0t\f\0t\r\0\83\ 2\0}\a\0|\a\0j\ e\0d\ 2\0\83\ 1\0\ 1|\a\0j\ f\0d\ 3\0d\ 4\0d\ 5\0\83\ 3\0\ 1t\10\0j\ 1\0dT\0\83\ 1\0}\b\0|\b\0j\11\0d\b\0\83\ 1\0\ 1|\b\0j\12\0d\a\0\83\ 1\0\ 1|\b\0j\13\0d     \0d
33890 +\0g\ 2\0\83\ 1\0\ 1|\a\0j\14\0|\b\0\83\ 1\0\ 1|\a\0j\15\0|\ 3\0j\16\0d\v\0\83\ 1\0\83\ 1\0\ 1|\ 6\0j\17\0|\a\0\83\ 1\0\ 1|\ 6\0j\18\0d\v\0\83\ 1\0}  \0t\v\0j\ 1\0t\19\0t\r\0\83\ 2\0}
33891 +\0|
33892 +\0j\ e\0d\ 2\0\83\ 1\0\ 1|
33893 +\0j\ f\0d\ 3\0d\ 4\0d\ 5\0\83\ 3\0\ 1t\1a\0j\ 1\0d\f\0d\ 5\0d\r\0d\ e\0g\ 4\0\83\ 1\0}\v\0|\v\0j\ e\0d\ f\0\83\ 1\0\ 1|
33894 +\0j\15\0|\ 3\0j\16\0d\v\0\83\ 1\0|\v\0\19\83\ 1\0\ 1t\10\0j\ 1\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0g\b\0d\ 5\0d\a\0\83\ 3\0}\b\0|\b\0j\13\0d   \0d
33895 +\0g\ 2\0\83\ 1\0\ 1|
33896 +\0j\14\0|\b\0\83\ 1\0\ 1|   \0j\e\0|
33897 +\0|\ 3\0d\v\0|\v\0\83\ 4\0\ 1t\v\0j\ 1\0t\19\0t\r\0\83\ 2\0}\f\0|\f\0j\ e\0d\ 2\0\83\ 1\0\ 1|\f\0j\ f\0d\ 3\0d\ 4\0d\ 5\0\83\ 3\0\ 1t\1a\0j\ 1\0d\v\0d\f\0d\a\0d\ 4\0d\ 5\0d\r\0d\ e\0d\18\0g\b\0\83\ 1\0}\r\0|\r\0j\ e\0d\19\0\83\ 1\0\ 1t\10\0j\ 1\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0d%\0d&\0d'\0d(\0d)\0g\10\0d\18\0d\a\0\83\ 3\0}\b\0|\b\0j\13\0d       \0d
33898 +\0g\ 2\0\83\ 1\0\ 1|\f\0j\15\0|\ 3\0j\16\0d*\0\83\ 1\0|\r\0\19\83\ 1\0\ 1|\f\0j\14\0|\b\0\83\ 1\0\ 1|       \0j\e\0|\f\0|\ 3\0d*\0|\r\0\83\ 4\0\ 1|\ 2\0j\1c\0\83\0\0j\1d\0|       \0\83\ 1\0\ 1|\ 2\0j\1e\0\83\0\0\ 1|\ 2\0j\1c\0\83\0\0d\v\0\19}\ e\0|\0\0j\1f\0|\ e\0\0\83\0\0d\f\0\83\ 2\0\ 1|\0\0j\1f\0|\ e\0j!\0\83\0\0dU\0g\ 1\0\83\ 2\0\ 1|\ e\0j"\0d\ 4\0d\ 5\0\83\ 2\0\\ 2\0}\ f\0}\10\0|\0\0j\1f\0|\10\0dV\0dW\0f\ 2\0dX\0dY\0f\ 2\0dZ\0d[\0f\ 2\0d\\0d]\0f\ 2\0d^\0d_\0f\ 2\0d`\0da\0f\ 2\0db\0dc\0f\ 2\0g\a\0\83\ 2\0\ 1|\0\0j#\0|\ f\0d\ 6\0d+\0!j$\0t\10\0d\1a\0d\e\0d\1c\0d\1d\0g\ 4\0d\a\0d\a\0\83\ 3\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j#\0|\ f\0d+\0d,\0!j$\0t\10\0d\1e\0d\1f\0\0d!\0d"\0d#\0g\ 6\0d\ 4\0d\a\0\83\ 3\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j#\0|\ f\0d,\0d-\0!j$\0t\10\0d$\0d%\0d&\0d'\0d(\0d)\0g\ 6\0d\ 4\0d\a\0\83\ 3\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j#\0|\ f\0d-\0d/\0!j$\0t\10\0d\10\0d\11\0d\14\0d\15\0g\ 4\0d\a\0d\a\0\83\ 3\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j#\0|\ f\0d/\0d1\0!j$\0t\10\0d\12\0d\13\0g\ 2\0d\f\0d\a\0\83\ 3\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j#\0|\ f\0d1\0d3\0!j$\0t\10\0d\16\0d\17\0g\ 2\0d\f\0d\a\0\83\ 3\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1f\0dd\0|\ e\0j%\0\83\0\0\83\ 2\0\ 1|\0\0j\1f\0d\ 4\0d\v\0de\0d5\0d8\0f\ 4\0g\ 1\0f\ 2\0d\ 5\0d\v\0df\0d8\0d8\0f\ 4\0g\ 1\0f\ 2\0d\r\0d\v\0dg\0d8\0d8\0f\ 4\0g\ 1\0f\ 2\0d.\0d\v\0dh\0d6\0d8\0f\ 4\0g\ 1\0f\ 2\0d0\0d\v\0di\0d7\0d8\0f\ 4\0g\ 1\0f\ 2\0d2\0d\v\0dj\0d8\0d8\0f\ 4\0g\ 1\0f\ 2\0d+\0d\f\0dk\0d8\0d8\0f\ 4\0g\ 1\0f\ 2\0g\a\0|\ e\0j&\0d\ 4\0d\ 5\0\83\ 2\0\83\ 2\0\ 1|\0\0j\1f\0|\ e\0j'\0d5\0\83\ 1\0j(\0\83\0\0d\v\0d\f\0g\ 2\0\83\ 2\0\ 1|\0\0j\1f\0|\ e\0j'\0d6\0\83\ 1\0j(\0\83\0\0d\f\0d\a\0g\ 2\0\83\ 2\0\ 1|\0\0j\1f\0|\ e\0j'\0d7\0\83\ 1\0j(\0\83\0\0d\a\0g\ 1\0\83\ 2\0\ 1|\ e\0j)\0t\19\0d\ 4\0d\ 5\0d\v\0|\ 2\0j*\0\83\0\0d\v\0\19\83\ 5\0}\11\0|\0\0j#\0|\11\0j+\0\83\0\0j$\0t\10\0d\10\0d\11\0d\14\0d\15\0d\12\0d\13\0d\16\0d\17\0g\b\0d\ 5\0d\a\0\83\ 3\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1f\0|\11\0j,\0\83\0\0j-\0\83\0\0j(\0\83\0\0d.\0d\ 5\0d\r\0d\ e\0d9\0d.\0d:\0d;\0d<\0d=\0d0\0d>\0d?\0d@\0dA\0dB\0dC\0d2\0dD\0dE\0dF\0dG\0dH\0dI\0dJ\0dK\0g\1a\0\83\ 2\0\ 1|\0\0j\1f\0|\11\0j,\0\83\0\0j.\0\83\0\0j(\0\83\0\0d\v\0d\r\0dL\0dM\0d:\0g\ 5\0\83\ 2\0\ 1|\ e\0j)\0t\19\0d\ 4\0d\ 5\0d*\0|\ 2\0j*\0\83\0\0d\v\0\19\83\ 5\0}\12\0|\0\0j#\0|\12\0j+\0\83\0\0j$\0t\10\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0d%\0d&\0d'\0d(\0d)\0g\10\0\83\ 1\0d4\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1f\0|\12\0j,\0\83\0\0j-\0\83\0\0j(\0\83\0\0d\ 4\0d\v\0d\f\0d\a\0d\ 4\0d\ 4\0d\ 5\0d\r\0d\ 5\0d\ e\0d9\0d\18\0dN\0d\ 5\0dL\0dO\0dP\0dQ\0d\ 5\0d.\0dR\0d0\0dM\0d\r\0d2\0dS\0d>\0d?\0d@\0d\r\0dA\0dB\0dC\0d:\0d;\0d\r\0dE\0dF\0dG\0dH\0dI\0dJ\0dK\0g+\0\83\ 2\0\ 1|\0\0j\1f\0|\12\0j,\0\83\0\0j.\0\83\0\0j(\0\83\0\0d\v\0d\ 5\0d\18\0dQ\0d2\0dA\0d=\0dI\0d,\0g        \0\83\ 2\0\ 1|\ 2\0j/\0|\ 1\0d\a\0\83\ 2\0\ 1d\0\0S(l\0\0\0Ns\f\0\0\0Pyfile48.medRä\0\0\0g\0\0\0\0\0\0#@i\ 3\0\0\0i\ 4\0\0\0i&\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0\18@s
33899 +\0\0\0Power [MW]s\10\0\0\0Density [kg/m^3]i\0\0\0\0i\ 1\0\0\0i\ 5\0\0\0i\ 6\0\0\0t\a\0\0\0pfltestg\0\0\0\0\0ä\95@g\0\0\0\0\90Áø@g\0\0\0\0\0\b\99@g\0\0\0\0 Îø@g\0\0\0\0\08¨@g\0\0\0\0À+ù@g\0\0\0\0\0:¨@g\0\0\0\0Ð+ù@i\b\0\0\0t       \0\0\0pfltestM1g\0\0\0\0\0Àr@g\0\0\0\0À|ø@g\0\0\0\0\0Ðr@g\0\0\0\0Ð|ø@g\0\0\0\0\0\0y@g\0\0\0\0\0\83ø@g\0\0\0\0\0\10y@g\0\0\0\0\10\83ø@g\0\0\0\0\0 y@g\0\0\0\0 \83ø@g\0\0\0\0\0\0©@g\0\0\0\0\02ù@g\0\0\0\0\0\ 2©@g\0\0\0\0\102ù@g\0\0\0\0\0\ 6©@g\0\0\0\002ù@iÿÿÿÿi(\0\0\0i+\0\0\0i.\0\0\0i\ e\0\0\0i0\0\0\0i\10\0\0\0i1\0\0\0i\12\0\0\0i2\0\0\0g:\8c\8eyE>t\b\0\0\0NewPfl_0t\b\0\0\0NewPfl_1t\b\0\0\0NewPfl_2R&\0\0\0i\a\0\0\0i\1a\0\0\0i\e\0\0\0i\1c\0\0\0i\1d\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i
33900 +\0\0\0i\11\0\0\0i      \0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ f\0\0\0i\13\0\0\0iL\0\0\0(\ 3\0\0\0i\ 3\0\0\0i\ 4\0\0\0g\0\0\0\0\0\0#@(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i&\0\0\0i(\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\0\0\0\0(\ 2\0\0\0i(\0\0\0i+\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\0\0\0\0(\ 2\0\0\0i+\0\0\0i.\0\0\0(\ 2\0\0\0i\ e\0\0\0i\0\0\0\0(\ 2\0\0\0i.\0\0\0i0\0\0\0(\ 2\0\0\0i\10\0\0\0i\0\0\0\0(\ 2\0\0\0i0\0\0\0i1\0\0\0(\ 2\0\0\0i\12\0\0\0i\0\0\0\0(\ 2\0\0\0i1\0\0\0i2\0\0\0(\ 2\0\0\0i(\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i&\0\0\0(\ 3\0\0\0R4\ 2\0\0R5\ 2\0\0R6\ 2\0\0(\ 2\0\0\0i&\0\0\0i(\0\0\0(\ 2\0\0\0i(\0\0\0i+\0\0\0(\ 2\0\0\0i+\0\0\0i.\0\0\0(\ 2\0\0\0i.\0\0\0i0\0\0\0(\ 2\0\0\0i0\0\0\0i1\0\0\0(\ 2\0\0\0i1\0\0\0i2\0\0\0(\ 2\0\0\0i\0\0\0\0i&\0\0\0(0\0\0\0RK\ 1\0\0R(\0\0\0R\ 4\0\0\0R-\ 2\0\0RP\ 1\0\0t\b\0\0\0pushMeshRR\ 1\0\0R[\ 1\0\0R]\ 1\0\0\0\0\0R\\ 1\0\0Rw\ 1\0\0R\1c\ 1\0\0RX\ 1\0\0RB\0\0\0\0\0\0RY\0\0\0Ry\ 1\0\0Rz\ 1\0\0\ 1\0\0R{\ 1\0\0\0\0\0R}\0\0\0RY\ 1\0\0t\10\0\0\0getTimeStepAtPosR\13\ 1\0\0Rk\0\0\0R|\ 1\0\0Ra\ 1\0\0t\ f\0\0\0shallowCpyGlobst\ e\0\0\0unPolyzeMeshesR+\0\0\0t\r\0\0\0getNumberOfTSR÷\0\0\0R(\ 1\0\0R0\0\0\0R\7f\ 1\0\0t\11\0\0\0getPflsReallyUsedRÄ\ 1\0\0t
33901 +\0\0\0getProfileRH\0\0\0R\97\ 1\0\0RT\ 1\0\0R)\ 1\0\0\0\0\0Rv\0\0\0Rw\0\0\0R\v\0\0\0(\13\0\0\0R    \0\0\0R9\ 1\0\0t\ 3\0\0\0mfdR\86\0\0\0t\ 6\0\0\0meshest\ 6\0\0\0fieldsRñ\0\0\0t\ 4\0\0\0f0_0R¼\0\0\0t\ 3\0\0\0ff0t\ 4\0\0\0f0_1R\83\ 1\0\0t\ 4\0\0\0f0_2t\ 4\0\0\0pfl2Rm\ 1\0\0\ 1\0\0t\ 5\0\0\0entryt\ 6\0\0\0ftest0t\ 6\0\0\0ftest1(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testUnPolyze2P\ 6\0\0s\8a\0\0\0\0\ 1\ 6\ 1\f\ 1\ f\ 1\f\ 1\r\ 1\r\ 1\f\ 1\r\ 1\f\ 1\r\ 2\12\0\r\ 1\13\ 1\ f\0\r\0\r\0\13\ 1\r\ 1\16\ 1\r\ 1\ f\ 1\12\0\r\ 1\13\ 1\e\0\r\ 1\1a\ 1-\0\13\ 1\r\ 1\16\ 1\12\0\r\ 1\13\ 1'\0\r\ 1E\0\13\ 1\1a\ 1\r\ 1\16\ 1\13\ 2
33902 +\ 2\10\ 1\16\ 1\19\ 1\18\ 1O\ 18\ 1>\ 1>\ 18\ 12\ 12\ 1\16\ 1Ä\ 1%\ 1%\ 1"\ 1%\ 1C\ 1p\ 11\ 1%\ 1U\ 1£\ 1=\ 2\10\ 1c\ 1\0\0\0\1e\0\0\0\15\0\0\0C\0\0\0sÿ\10\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0d\ 4\0d\ 3\0d\ 3\0d\ 5\0d\ 5\0d\ 4\0d\ 4\0d\ 5\0d\ 5\0d\ 3\0g\10\0d\ 6\0d\a\0\83\ 3\0}\ 3\0t\ 1\0d\b\0d\a\0\83\ 2\0}\ 4\0|\ 4\0j\ 2\0|\ 3\0\83\ 1\0\ 1|\ 4\0j\ 3\0d     \0\83\ 1\0\ 1|\ 4\0j\ 4\0t\ 5\0t\ 6\0t\a\0d\ 6\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\ 4\0j\b\0\83\0\0\ 1t\ 1\0d\b\0d\a\0\83\ 2\0}\ 5\0|\ 5\0j\ 2\0|\ 3\0\83\ 1\0\ 1|\ 5\0j\ 3\0d  \0\83\ 1\0\ 1|\ 5\0j\ 4\0t    \0t\ 6\0t\a\0d
33903 +\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\ 5\0j\b\0\83\0\0\ 1t\ 1\0d\b\0d\a\0\83\ 2\0}\ 6\0|\ 6\0j\ 2\0|\ 3\0\83\ 1\0\ 1|\ 6\0j\ 3\0d       \0\83\ 1\0\ 1|\ 6\0j\ 4\0t
33904 +\0t\ 6\0t\a\0d\v\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\ 6\0j\b\0\83\0\0\ 1d\ 3\0d\f\0g\ 2\0d\r\0d\f\0g\ 2\0d\f\0d\f\0g\ 2\0d\ e\0d\f\0g\ 2\0d\ f\0d\f\0g\ 2\0d\10\0d\f\0g\ 2\0d\11\0d\f\0g\ 2\0d\12\0d\f\0g\ 2\0d\13\0d\f\0g\ 2\0d\14\0d\f\0g\ 2\0d\15\0d\f\0g\ 2\0d\ 3\0d\ 3\0g\ 2\0d\r\0d\ 3\0g\ 2\0d\ 3\0d\r\0g\ 2\0d\r\0d\r\0g\ 2\0d\f\0d\r\0g\ 2\0d\ e\0d\r\0g\ 2\0d\ f\0d\r\0g\ 2\0d\10\0d\r\0g\ 2\0d\11\0d\r\0g\ 2\0g\14\0}\a\0d\16\0|\ 6\0g\ 1\0\14d\a\0|\ 5\0g\ 1\0\14\17d\17\0|\ 4\0g\ 1\0\14\17}\b\0d\18\0\84\0\0|\b\0D\83\ 1\0|\b\0(x3\0t\v\0|\b\0|\a\0\83\ 2\0D]"\0\\ 2\0}    \0}
33905 +\0|     \0j\f\0\83\0\0}\v\0|\v\0|
33906 +\07}\v\0q9\ 2Wt\ 1\0j\r\0|\b\0\83\ 1\0\0|      \0j\ e\0d\19\0\83\ 1\0\ 1|    \0d\1a\0 }\f\0|\f\0j\ e\0\0j\ f\0\83\0\0\83\ 1\0\ 1t\10\0j\11\0t\12\0t\13\0\83\ 2\0}\r\0|\r\0j\14\0|\f\0\83\ 1\0\ 1|\r\0j\15\0d\e\0d    \0d\a\0\83\ 3\0\ 1t\0\0d\1c\0\83\ 1\0}\ e\0|\ e\0j\16\0d\1d\0\83\ 1\0\ 1|\r\0j\17\0|\ e\0\83\ 1\0\ 1|\r\0j\ e\0d\1e\0\83\ 1\0\ 1|\r\0j\18\0\83\0\0}\ f\0|\r\0j\19\0d\1f\0d       \0d\a\0d\v\0d
33907 +\0\0d!\0d\17\0d\ 6\0\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0g\ 6\0d"\0d"\0d#\0d#\0g\ 4\0d$\0d%\0g\ 2\0\83\ 4\0\ 1|\r\0j\19\0d&\0d'\0g\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0g\ 6\0d"\0d"\0d#\0d#\0d$\0d$\0g\ 6\0d$\0d(\0d)\0g\ 3\0\83\ 4\0\ 1|\r\0j\19\0d\16\0d*\0g\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 4\0g\b\0d"\0d"\0d#\0d#\0d$\0d$\0d$\0d$\0d$\0d$\0g
33908 +\0d$\0d(\0d+\0d,\0d-\0g\ 5\0\83\ 4\0\ 1|\r\0j\1a\0\83\0\0\ 1|\ f\0j\18\0\83\0\0}\10\0|\10\0j\e\0\83\0\0j\1c\0|\r\0j\e\0\83\0\0j\1d\0\83\0\0\83\ 1\0\ 1t\1e\0\83\0\0}\11\0|\11\0j\1f\0d\1f\0|        \0\83\ 2\0\ 1|\11\0\0|\ 1\0d\a\0\83\ 2\0\ 1t!\0j\11\0\83\0\0}\12\0t"\0t\ 6\0t\a\0d\1a\0\83\ 1\0\83\ 1\0\83\ 1\0}\13\0|\13\0j\ e\0d.\0\83\ 1\0\ 1|\0\0j#\0t$\0|\12\0j%\0|\ f\0|\11\0d\1f\0|\13\0\83\ 6\0\ 1|\0\0j#\0t$\0|\12\0j%\0|\10\0|\11\0d\1f\0|\13\0\83\ 6\0\ 1|\12\0j%\0|\r\0|\11\0d\1f\0|\13\0\83\ 4\0\ 1|\12\0\0|\ 1\0d\1f\0\83\ 2\0\ 1|\0\0j&\0|\12\0j'\0\83\0\0dH\0\83\ 2\0\ 1|\0\0j&\0|\12\0j(\0\83\0\0dI\0\83\ 2\0\ 1t"\0d\1f\0d   \0d\a\0d\v\0d
33909 +\0\0d!\0d\17\0d\ 6\0\0\83\ 1\0}\14\0|\14\0j\ e\0d/\0\83\ 1\0\ 1|\0\0j)\0|\12\0j*\0d/\0\83\ 1\0j+\0|\14\0\83\ 1\0\83\ 1\0\ 1t"\0d&\0d'\0g\ 2\0\83\ 1\0}\14\0|\14\0j\ e\0d0\0\83\ 1\0\ 1|\0\0j)\0|\12\0j*\0d0\0\83\ 1\0j+\0|\14\0\83\ 1\0\83\ 1\0\ 1|\0\0j&\0|\12\0j,\0\83\0\0dJ\0\83\ 2\0\ 1|\0\0j&\0|\12\0j-\0\83\0\0dK\0\83\ 2\0\ 1t.\0j\11\0|\ 1\0\83\ 1\0}\15\0|\15\0j/\0\83\0\0d\1f\0\19}\16\0|\15\0j0\0\83\0\0d\1f\0\19d\1f\0\19}\17\0|\17\0j1\0t\12\0d\1f\0|\16\0\83\ 3\0\ 1|\17\0j1\0t\12\0d\1f\0|\16\0\83\ 3\0}\18\0|\0\0j)\0|\r\0j+\0|\18\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t2\0|\ 1\0|     \0j\ f\0\83\0\0d\1f\0|\r\0j\ f\0\83\0\0|\r\0j3\0\83\0\0d   \0\19|\r\0j3\0\83\0\0d\a\0\19\83\ 6\0}\19\0|\19\0j\1a\0\83\0\0\ 1|\0\0j)\0|\r\0j+\0|\19\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t4\0|\ 2\0|\r\0t5\0\83\ 3\0\ 1t2\0|\ 2\0|      \0j\ f\0\83\0\0d\1f\0|\r\0j\ f\0\83\0\0|\r\0j3\0\83\0\0d   \0\19|\r\0j3\0\83\0\0d\a\0\19\83\ 6\0}\1a\0|\0\0j)\0|\r\0j+\0|\1a\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t\10\0j\11\0t\12\0t\13\0\83\ 2\0}\r\0t"\0\0d\a\0\0d!\0d\ 6\0d&\0d5\0d6\0d7\0d8\0g
33910 +\0\83\ 1\0}\13\0|\13\0j\ e\0d9\0\83\ 1\0\ 1|  \0|\13\0\19}\f\0|\f\0j\ e\0\0j\ f\0\83\0\0\83\ 1\0\ 1|\r\0j\14\0|\f\0\83\ 1\0\ 1|\r\0j\15\0d\e\0d      \0d\a\0\83\ 3\0\ 1t\0\0d:\0\83\ 1\0}\ e\0|\ e\0j\16\0d\1d\0\83\ 1\0\ 1|\r\0j\17\0|\ e\0\83\ 1\0\ 1|\r\0j\ e\0d;\0\83\ 1\0\ 1|\r\0j\19\0d\1f\0d   \0d\v\0g\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0g\ 6\0d"\0d"\0d#\0d#\0g\ 4\0d$\0d%\0g\ 2\0\83\ 4\0\ 1|\r\0j\19\0d\a\0d
33911 +\0\0g\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0g\ 6\0d"\0d"\0d#\0d#\0d$\0d$\0g\ 6\0d$\0d(\0d)\0g\ 3\0\83\ 4\0\ 1|\r\0j\19\0d!\0d\17\0d\ 6\0d&\0g\ 4\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 4\0d\ 5\0d\ 5\0d\ 4\0d\ 3\0d\ 5\0g\10\0d"\0d"\0d#\0d#\0d$\0d$\0d$\0d$\0d$\0d$\0g
33912 +\0d$\0d(\0d+\0d,\0d-\0g\ 5\0\83\ 4\0\ 1|\r\0j\1a\0\83\0\0\ 1t\1e\0\83\0\0}\11\0|\11\0j\1f\0d\1f\0|   \0\83\ 2\0\ 1|\11\0\0|\ 1\0d\a\0\83\ 2\0\ 1t!\0j\11\0\83\0\0}\12\0|\12\0j%\0|\r\0|\11\0d\1f\0|\13\0\83\ 4\0\ 1|\0\0j&\0|\12\0j'\0\83\0\0dL\0\83\ 2\0\ 1|\0\0j&\0|\12\0j*\0d<\0\83\ 1\0j6\0\83\0\0d  \0d\a\0d!\0g\ 3\0\83\ 2\0\ 1|\0\0j&\0|\12\0j*\0d=\0\83\ 1\0j6\0\83\0\0\0d\ 6\0d&\0g\ 3\0\83\ 2\0\ 1|\0\0j&\0|\12\0j*\0d>\0\83\ 1\0j6\0\83\0\0d\a\0d\v\0d
33913 +\0\0g\ 4\0\83\ 2\0\ 1|\12\0\0|\ 1\0d\1f\0\83\ 2\0\ 1t.\0j\11\0|\ 1\0\83\ 1\0}\15\0|\15\0j/\0\83\0\0d\1f\0\19}\16\0|\15\0j0\0\83\0\0d\1f\0\19d\1f\0\19}\17\0|\17\0j1\0t\12\0d\1f\0|\16\0\83\ 3\0\ 1|\17\0j1\0t\12\0d\1f\0|\16\0\83\ 3\0}\e\0|\e\0j7\0d\1f\0d       \0d\v\0d\a\0d
33914 +\0\0d!\0d\17\0d\ 6\0d&\0g
33915 +\0\83\ 1\0\ 1|\0\0j)\0|\r\0j+\0|\e\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t2\0|\ 1\0|       \0j\ f\0\83\0\0d\1f\0|\r\0j\ f\0\83\0\0|\r\0j3\0\83\0\0d   \0\19|\r\0j3\0\83\0\0d\a\0\19\83\ 6\0}\1c\0|\1c\0j7\0d\1f\0\0d\v\0d\a\0d
33916 +\0\0d!\0d\17\0d\ 6\0d&\0g
33917 +\0\83\ 1\0\ 1|\0\0j)\0|\r\0j+\0|\1c\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t4\0|\ 2\0|\r\0t5\0\83\ 3\0\ 1t2\0|\ 2\0|       \0j\ f\0\83\0\0d\1f\0|\r\0j\ f\0\83\0\0|\r\0j3\0\83\0\0d   \0\19|\r\0j3\0\83\0\0d\a\0\19\83\ 6\0}\1d\0|\1d\0j7\0d\1f\0\0d\v\0d\a\0d
33918 +\0\0d!\0d\17\0d\ 6\0d&\0g
33919 +\0\83\ 1\0\ 1|\0\0j)\0|\r\0j+\0|\1d\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t\10\0j\11\0t\12\0t\13\0\83\ 2\0}\r\0|\r\0j\14\0|     \0\83\ 1\0\ 1|\r\0j\15\0d\e\0\0d\a\0\83\ 3\0\ 1t\0\0d?\0\83\ 1\0}\ e\0|\ e\0j\16\0d\1d\0\83\ 1\0\ 1|\r\0j\17\0|\ e\0\83\ 1\0\ 1|\r\0j\ e\0d@\0\83\ 1\0\ 1|\r\0j\19\0d\1f\0d   \0d\a\0d\v\0d
33920 +\0\0d!\0d\17\0d\ 6\0\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0g\ 6\0d"\0d"\0d#\0d#\0g\ 4\0d$\0d%\0g\ 2\0\83\ 4\0\ 1|\r\0j\19\0d&\0d'\0g\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0g\ 6\0d"\0d"\0d#\0d#\0d$\0d$\0g\ 6\0d$\0d(\0d)\0g\ 3\0\83\ 4\0\ 1|\r\0j\19\0d\16\0d*\0g\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 4\0g\b\0d"\0d"\0d#\0d#\0d$\0d$\0d$\0d$\0d$\0d$\0g
33921 +\0d$\0d(\0d+\0d,\0d-\0g\ 5\0\83\ 4\0\ 1|\r\0j\19\0d\1a\0dA\0d5\0d7\0d8\0g\ 5\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 4\0d\ 5\0d\ 5\0d\ 4\0d\ 3\0d\ 5\0g\10\0d"\0d"\0d#\0d#\0d$\0d$\0d$\0d$\0g\b\0d$\0d+\0dB\0d(\0g\ 4\0\83\ 4\0\ 1|\r\0j\19\0d6\0dC\0g\ 2\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 4\0d\ 5\0d\ 5\0d\ 4\0d\ 3\0d\ 5\0g\10\0d"\0d"\0d#\0d#\0d$\0d$\0g\ 6\0d$\0d+\0d+\0g\ 3\0\83\ 4\0\ 1|\r\0j\1a\0\83\0\0\ 1t\1e\0\83\0\0}\11\0|\11\0j\1f\0d\1f\0|   \0\83\ 2\0\ 1t!\0j\11\0\83\0\0}\12\0|\12\0j8\0|\r\0\83\ 1\0\ 1|\0\0j&\0|\12\0j'\0\83\0\0dM\0\83\ 2\0\ 1|\0\0j&\0|\12\0j*\0dD\0\83\ 1\0j6\0\83\0\0d\1f\0d        \0d\a\0d\v\0d
33922 +\0\0d!\0d\17\0d\ 6\0\0\83\ 2\0\ 1|\0\0j&\0|\12\0j*\0dE\0\83\ 1\0j6\0\83\0\0d&\0d'\0g\ 2\0\83\ 2\0\ 1|\0\0j&\0|\12\0j*\0dF\0\83\ 1\0j6\0\83\0\0d\1f\0d  \0d\a\0d
33923 +\0\0g\ 5\0\83\ 2\0\ 1|\0\0j&\0|\12\0j*\0dG\0\83\ 1\0j6\0\83\0\0d\v\0d!\0g\ 2\0\83\ 2\0\ 1|\11\0\0|\ 1\0d\a\0\83\ 2\0\ 1|\12\0\0|\ 1\0d\1f\0\83\ 2\0\ 1t.\0j\11\0|\ 1\0\83\ 1\0}\15\0|\15\0j/\0\83\0\0d\1f\0\19}\16\0|\15\0j0\0\83\0\0d\1f\0\19d\1f\0\19}\17\0|\17\0j1\0t\12\0d\1f\0|\16\0\83\ 3\0}\e\0|\e\0j7\0d\1f\0d     \0d\a\0d\v\0d
33924 +\0\0d!\0d\17\0d\ 6\0d&\0d'\0d\16\0d*\0d\1a\0dA\0d5\0d7\0d8\0d6\0dC\0g\14\0\83\ 1\0\ 1|\0\0j)\0|\r\0j+\0|\e\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t2\0|\ 1\0|       \0j\ f\0\83\0\0d\1f\0|\r\0j\ f\0\83\0\0|\r\0j3\0\83\0\0d   \0\19|\r\0j3\0\83\0\0d\a\0\19\83\ 6\0}\1c\0|\1c\0j7\0d\1f\0\0d\a\0d\v\0d
33925 +\0\0d!\0d\17\0d\ 6\0d&\0d'\0d\16\0d*\0d\1a\0dA\0d5\0d7\0d8\0d6\0dC\0g\14\0\83\ 1\0\ 1|\0\0j)\0|\r\0j+\0|\1c\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1t4\0|\ 2\0|\r\0t5\0\83\ 3\0\ 1t2\0|\ 2\0|       \0j\ f\0\83\0\0d\1f\0|\r\0j\ f\0\83\0\0|\r\0j3\0\83\0\0d   \0\19|\r\0j3\0\83\0\0d\a\0\19\83\ 6\0}\1d\0|\1d\0j7\0d\1f\0\0d\a\0d\v\0d
33926 +\0\0d!\0d\17\0d\ 6\0d&\0d'\0d\16\0d*\0d\1a\0dA\0d5\0d7\0d8\0d6\0dC\0g\14\0\83\ 1\0\ 1|\0\0j)\0|\r\0j+\0|\1d\0d4\0d4\0\83\ 3\0\83\ 1\0\ 1d\0\0S(N\0\0\0Ns\f\0\0\0Pyfile49.meds\f\0\0\0Pyfile50.medg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0à?i\b\0\0\0i\ 2\0\0\0R&\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 3\0\0\0g\0\0\0\0\0\0\10@g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\18@g\0\0\0\0\0\0 @g\0\0\0\0\0\0$@g\0\0\0\0\0\0(@g\0\0\0\0\0\0,@g\0\0\0\0\0\00@g\0\0\0\0\0\02@g\0\0\0\0\0\04@i\v\0\0\0i\a\0\0\0c\ 1\0\0\0\ 2\0\0\0\ 2\0\0\0s\0\0\0s\e\0\0\0|\0\0]\11\0}\ 1\0|\ 1\0j\0\0\83\0\0V\ 1q\ 3\0d\0\0S(\ 1\0\0\0N(\ 1\0\0\0Rq\0\0\0(\ 2\0\0\0t\ 2\0\0\0.0Rü\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pys        \0\0\0<genexpr>¤\ 6\0\0s\ 2\0\0\0\ 6\0\ 2\0\0i\r\0\0\0g\0\0\0\0\0\0\12@i"\0\0\0g\0\0\0\0\0\0\b@t\18\0\0\0fieldCellOnPflWithoutPfli\0\0\0\0i\ 5\0\0\0i\ 6\0\0\0g333333Ó?gffffffæ?g\9a\99\99\99\99\99é?g\9a\99\99\99\99\99É?i       \0\0\0i
33927 +\0\0\0gìQ¸\1e\85ë±?g¤p=
33928 +×£À?i\f\0\0\0g\9a\99\99\99\99\99¹?g{\14®Gáz\84?g{\14®Gáz\94?R\83\ 1\0\0t\13\0\0\0pfl_NORM_TRI3_loc_0t\13\0\0\0pfl_NORM_TRI3_loc_1t(\0\0\0Loc_fieldCellOnPflWithoutPfl_NORM_TRI3_0t(\0\0\0Loc_fieldCellOnPflWithoutPfl_NORM_TRI3_1t)\0\0\0Loc_fieldCellOnPflWithoutPfl_NORM_QUAD4_2g\11ê-\81\99\97q=i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0RE\ 2\0\0i#\0\0\0t\19\0\0\0fieldCellOnPflWithoutPfl2t\14\0\0\0pfl2_NORM_TRI3_loc_0t\14\0\0\0pfl2_NORM_TRI3_loc_1t\15\0\0\0pfl2_NORM_QUAD8_loc_2i<\0\0\0t\13\0\0\0fieldCellWithoutPfli\ e\0\0\0\1e\85ëQ¸\9e?i\13\0\0\0t#\0\0\0Pfl_fieldCellWithoutPfl_NORM_TRI3_0t#\0\0\0Pfl_fieldCellWithoutPfl_NORM_TRI3_1t$\0\0\0Pfl_fieldCellWithoutPfl_NORM_QUAD8_3t$\0\0\0Pfl_fieldCellWithoutPfl_NORM_QUAD8_4(\ 2\0\0\0RL\ 2\0\0RM\ 2\0\0(\ 2\0\0\0RL\ 2\0\0RM\ 2\0\0(\ 3\0\0\0RN\ 2\0\0RO\ 2\0\0RP\ 2\0\0(\ 3\0\0\0RN\ 2\0\0RO\ 2\0\0RP\ 2\0\0(\ 3\0\0\0RR\ 2\0\0RS\ 2\0\0RT\ 2\0\0(\ 4\0\0\0RV\ 2\0\0RW\ 2\0\0RX\ 2\0\0RY\ 2\0\0(9\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0t
33929 +\0\0\0NORM_QUAD8Rm\0\0\0Rn\0\0\0Rb\0\0\0R`\0\0\0R_\0\0\0RS\ 1\0\0\0\0\0t\f\0\0\0MergeUMeshesRB\0\0\0RC\0\0\0Rw\ 1\0\0R(\0\0\0R\a\ 1\0\0RX\ 1\0\0\0\0\0\0\0\0Ry\ 1\0\0R{\ 1\0\0Rq\0\0\0t\e\0\0\0setGaussLocalizationOnCellsRd\0\0\0R0\ 1\0\0R1\ 1\0\0R2\ 1\0\0R>\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0Rk\0\0\0R)\0\0\0R*\0\0\0R|\ 1\0\0R+\0\0\0t\a\0\0\0getPflsR<\ 2\0\0R0\0\0\0R=\ 2\0\0R1\0\0\0\ 1\0\0t\11\0\0\0getLocsReallyUsedRK\ 1\0\0RT\ 1\0\0Ra\ 1\0\0R\97\ 1\0\0R\b\ 1\0\0\0\0\0t
33930 +\0\0\0WriteFieldR.\0\0\0RH\0\0\0R\88\ 1\0\0R%\ 1\0\0(\1e\0\0\0R        \0\0\0R9\ 1\0\0Rn\ 1\0\0R\81\0\0\0t\ 3\0\0\0mQ8t\ 3\0\0\0mQ4t\ 3\0\0\0mT3t\ 2\0\0\0trR­\0\0\0R\83\0\0\0R\8c\0\0\0Re\ 1\0\0R\85\0\0\0R\b\0\0\0\0\0\0t\b\0\0\0fInvalidt      \0\0\0fInvalid2R\86\0\0\0\0\0\0R\83\ 1\0\0\0\0\0t\b\0\0\0dataReadt\ 5\0\0\0mReadt\b\0\0\0f1tsReadRâ\0\0\0t\ 6\0\0\0f2_bist\ 6\0\0\0f2_terR
33931 +\ 1\0\0t\ 6\0\0\0f3_bist\ 6\0\0\0f3_ter(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\14\0\0\0testGaussWriteOnPfl1\91\ 6\0\0s0\ 1\0\0\0\ 1\ 6\ 1\ 6\ 1B\ 1\ f\0\r\ 1\r\ 1\1c\ 1
33932 +\ 1\ f\0\r\ 1\r\ 1\1c\ 1
33933 +\ 1\ f\0\r\ 1\r\ 1\1c\ 1
33934 +\ 2º\ 1#\ 1\11\ 1\1c\ 1\f\0
33935 +\ 1\ 4\ 1\ f\ 1\r\ 1
33936 +\0\13\ 3\12\ 1\r\ 1\13\ 1\f\0\r\ 1\r\ 1\r\ 1\f\ 1U\ 1I\ 1a\ 1
33937 +\ 1\f\ 1\1f\ 2  \ 1\10\ 1\10\ 2\f\ 1\18\0\r\ 1\1f\ 1\1f\ 1\16\ 1\10\ 2\16\ 1\16\ 1'\0\r\ 1\1f\ 1\12\0\r\ 1\1f\ 1\16\ 1\16\ 2\ f\ 1\10\ 1\14\ 1\13\ 1\15\ 1\1c\ 1;\ 1
33938 +\ 1\1c\ 2\10\ 1;\ 1\1c\ 2\12\ 1*\0\r\ 1
33939 +\0\13\ 1\r\ 1\13\ 1\f\0\r\ 1\r\ 1\r\ 1C\ 1L\ 1\7f\ 1
33940 +\ 2      \ 1\10\ 1\10\ 1\f\ 1\16\ 1\16\ 1(\ 1(\ 1+\ 1\10\ 1\ f\ 1\10\ 1\14\ 1\13\ 1\15\ 1+\ 1\1c\ 1;\ 1+\ 1\1c\ 2\10\ 1;\ 1+\ 1\1c\ 2\12\ 1\r\ 1\13\ 1\f\0\r\ 1\r\ 1\r\ 1U\ 1I\ 1a\ 1y\ 1g\ 1
33941 +\ 1      \ 1\10\ 1\f\ 1\r\ 1\16\ 1:\ 1%\ 1.\ 1%\ 1\10\ 1\10\ 2\ f\ 1\10\ 1\14\ 1\15\ 1I\ 1\1c\ 1;\ 1I\ 1\1c\ 2\10\ 1;\ 1I\ 1\1c\ 1c\ 1\0\0\0\1f\0\0\0\13\0\0\0C\0\0\0s@\a\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0g\12\0d\ 5\0d\ 6\0\83\ 3\0}\ 2\0t\ 1\0d\a\0d\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 3\0t\ 4\0d       \0d
33942 +\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 4\0d
33943 +\0d\b\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d\v\0d\f\0d
33944 +\0d     \0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d\f\0d\r\0d\ e\0d
33945 +\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d
33946 +\0d\ e\0d\ f\0d\b\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 6\0\83\0\0\ 1|\ 3\0j\a\0|\ 2\0\83\ 1\0\ 1t\ 1\0|\ 3\0j\b\0\83\0\0d  \0\83\ 2\0}\ 4\0|\ 4\0j\ 2\0d\ 5\0\83\ 1\0\ 1d\v\0d        \0d\v\0d\f\0d\f\0d
33947 +\0d
33948 +\0d     \0d\b\0d
33949 +\0d\ 6\0d
33950 +\0d     \0d\ 6\0d\f\0d\r\0d\b\0d\ f\0g\12\0}\ 5\0x7\0t      \0d\ 5\0\83\ 1\0D])\0}\ 6\0|\ 4\0j\ 3\0t
33951 +\0|\ 5\0d\ 6\0|\ 6\0\14d\ 6\0|\ 6\0\14d\ 6\0\17!\83\ 2\0\ 1qr\ 1W|\ 4\0j\ 6\0\83\0\0\ 1|\ 4\0j\a\0|\ 2\0\83\ 1\0\ 1t\v\0\83\0\0}\a\0|\a\0j\f\0d\v\0|\ 3\0\83\ 2\0\ 1|\a\0j\f\0d\10\0|\ 4\0\83\ 2\0\ 1d\f\0}\b\0d\ 6\0}      \0d\11\0}
33952 +\0t\r\0t\ e\0t\ f\0\83\ 2\0}\v\0|\v\0j\10\0d\12\0\83\ 1\0\ 1|\v\0j\11\0|
33953 +\0|\b\0|  \0\83\ 3\0\ 1t\12\0d\v\0d    \0d\ 6\0d\f\0d
33954 +\0g\ 5\0\83\ 1\0}\f\0|\f\0j\10\0d\13\0\83\ 1\0\ 1t\0\0d\14\0d\15\0d\16\0d\17\0d\18\0g\ 5\0\83\ 1\0}\r\0|\v\0j\13\0|\r\0\83\ 1\0\ 1t\14\0\83\0\0}\ e\0|\ e\0j\15\0|\v\0|\a\0d\v\0|\f\0\83\ 4\0\ 1|\a\0j\16\0|\ 1\0d\ 6\0\83\ 2\0\ 1|\ e\0j\16\0|\ 1\0d\v\0\83\ 2\0\ 1t\r\0t\ e\0t\ f\0\83\ 2\0}\ f\0|\ f\0j\10\0d\19\0\83\ 1\0\ 1|\ f\0j\11\0|
33955 +\0|\b\0|  \0\83\ 3\0\ 1t\12\0d\v\0d    \0d\ 6\0d\f\0d
33956 +\0d\b\0d\r\0g\a\0\83\ 1\0}\10\0|\10\0j\10\0d\1a\0\83\ 1\0\ 1t\0\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0g\a\0\83\ 1\0}\11\0|\ f\0j\13\0|\11\0\83\ 1\0\ 1t\14\0\83\0\0}\12\0|\12\0j\15\0|\ f\0|\a\0d\10\0|\10\0\83\ 4\0\ 1|\12\0j\16\0|\ 1\0d\v\0\83\ 2\0\ 1~\a\0~\ e\0~\ 3\0~\ 4\0~\12\0t\17\0j\18\0|\ 1\0\83\ 1\0}\a\0|\a\0j\19\0d\v\0\83\ 1\0}\ 3\0|\ 3\0j\1a\0\83\0\0}\13\0|\13\0d\v\0d\ 6\0g\ 2\0\19}\13\0|\13\0j\10\0|\a\0j\b\0\83\0\0\83\ 1\0\ 1|\13\0j\e\0\83\0\0\ 1|\v\0j\1c\0|\13\0\83\ 1\0\ 1t\14\0j\18\0|\ 1\0|\v\0j\b\0\83\0\0|\b\0|    \0\83\ 4\0}\ e\0|\ e\0j\1d\0t\ e\0|\ 3\0\83\ 2\0}\14\0|\14\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\14\0\0|\v\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1|\ e\0j!\0t\ e\0d\v\0\83\ 2\0}\15\0|\15\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\15\0\0|\v\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1|\ e\0j\1d\0t\ e\0d\v\0|\a\0\83\ 3\0}\16\0|\16\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\16\0\0|\v\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t"\0|\ 1\0|\a\0j\b\0\83\0\0d\v\0|\v\0j\b\0\83\0\0|\b\0|       \0\83\ 6\0}\17\0|\17\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\17\0\0|\v\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t\14\0j\18\0|\ 1\0|\ f\0j\b\0\83\0\0|\b\0|     \0\83\ 4\0}\12\0|\a\0j\19\0d\10\0\83\ 1\0}\ 4\0|\ 4\0j\1a\0\83\0\0}\18\0|\18\0d\v\0d       \0d\ 6\0d\f\0d
33957 +\0d\b\0d\r\0d\ e\0g\b\0\19}\18\0|\18\0j\10\0|\a\0j\b\0\83\0\0\83\ 1\0\ 1|\18\0j\e\0\83\0\0\ 1|\ f\0j\1c\0|\18\0\83\ 1\0\ 1|\12\0j\1d\0t\ e\0|\ 4\0\83\ 2\0}\19\0|\19\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\19\0\0|\ f\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1|\12\0j!\0t\ e\0d\10\0\83\ 2\0}\1a\0|\1a\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\1a\0\0|\ f\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1|\12\0j\1d\0t\ e\0d\10\0|\a\0\83\ 3\0}\e\0|\e\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\e\0\0|\ f\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t"\0|\ 1\0|\a\0j\b\0\83\0\0d\10\0|\ f\0j\b\0\83\0\0|\b\0|  \0\83\ 6\0}\1c\0|\1c\0j\1e\0\83\0\0\ 1|\0\0j\1f\0|\1c\0j#\0\83\0\0\0|\18\0d"\0\83\ 2\0\83\ 1\0\ 1|\0\0j$\0t%\0|\12\0j\1d\0t\ e\0|\ 3\0\83\ 4\0\ 1|\0\0j$\0t%\0|\12\0j!\0t\ e\0d\v\0\83\ 4\0\ 1|\0\0j$\0t%\0|\12\0j\1d\0t\ e\0d\v\0|\a\0\83\ 5\0\ 1|\12\0j&\0t\ e\0d\10\0|\a\0\83\ 3\0\\ 2\0}\1d\0}\1e\0|\1d\0j\10\0|\ f\0j'\0\83\0\0j\b\0\83\0\0\83\ 1\0\ 1|\0\0j\1f\0|\1d\0\0|\ f\0j'\0\83\0\0d"\0\83\ 2\0\83\ 1\0\ 1|\1e\0j\10\0|\10\0j\b\0\83\0\0\83\ 1\0\ 1|\0\0j\1f\0|\1e\0\0|\10\0\83\ 1\0\83\ 1\0\ 1d\0\0S(#\0\0\0Ns\f\0\0\0Pyfile51.medg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?i       \0\0\0i\ 2\0\0\0t\ 4\0\0\0Meshi\ 5\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\0\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0iÿÿÿÿg\0\0\0\0\0\0\12@t
33958 +\0\0\0fieldNode0t\f\0\0\0PflIdentity0i
33959 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0t
33960 +\0\0\0fieldNode1t\f\0\0\0PflIdentity1i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0g\11ê-\81\99\97q=((\0\0\0RY\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Rb\0\0\0Rc\0\0\0RC\0\0\0Rn\0\0\0Re\0\0\0R>\0\0\0Rj\0\0\0Rw\ 1\0\0R\1c\ 1\0\0RX\ 1\0\0RB\0\0\0\0\0\0Rk\0\0\0R{\ 1\0\0\0\0\0R|\ 1\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R}\0\0\0Rq\0\0\0t        \0\0\0zipCoordsR³\0\0\0R\97\ 1\0\0Rd\0\0\0R0\0\0\0R1\0\0\0R\ 6\ 1\0\0R\1d\ 1\0\0\0\0\0R)\0\0\0R*\0\0\0R~\ 1\0\0R)\ 1\0\0(\1f\0\0\0R  \0\0\0R9\ 1\0\0R\ 3\ 2\0\0\0\0\0R\84\0\0\0t\ 5\0\0\0conn1Rî\0\0\0R\83\0\0\0t\ 2\0\0\0dtt\ 2\0\0\0itt\ 3\0\0\0timRo\ 2\0\0t\ 4\0\0\0pfl0RÔ\ 1\0\0\0\0\0Rq\ 2\0\0t\ 4\0\0\0pfl1t\ 4\0\0\0arr1Rã\0\0\0t\ 3\0\0\0m00t\ 5\0\0\0ff0_1t\ 5\0\0\0ff0_2t\ 5\0\0\0ff0_3t\ 5\0\0\0ff0_4t\ 3\0\0\0m10t\ 5\0\0\0ff1_1t\ 5\0\0\0ff1_2t\ 5\0\0\0ff1_3t\ 5\0\0\0ff1_4t\ 5\0\0\0arr_rt\ 6\0\0\0pfl1_r(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\16\0\0\0testMEDFieldPflOnNode1-\a\0\0\0\0\0\0\ 1\ 6\ 1H\ 1\ f\ 1\r\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1\1c\ 1
33961 +\ 1\r\ 1\15\ 1\r\ 1<\ 1\13\ 1#\ 1\ 4\ 1
33962 +\ 1\r\ 2    \ 1\10\ 1\10\ 2\ 6\0\ 6\0\ 6\ 1\ f\ 1\r\ 1\13\ 1\e\0\r\ 1\e\ 1\r\ 1       \ 1\16\ 1\10\0\10\ 1\ f\ 1\r\ 1\13\ 1!\0\r\ 1!\ 1\r\ 1   \ 1\16\ 1\10\ 1\ f\ 2\ f\ 1\ f\ 1\f\0\10\0\13\0
33963 +\ 1\r\ 1\1e\ 1\12\ 1
33964 +\ 1\1c\ 1\12\ 1
33965 +\ 1\1c\ 1\15\ 1
33966 +\ 1\1c\ 1'\ 1
33967 +\ 1\1c\ 1\1e\ 1\ f\ 1\f\0"\0\13\0
33968 +\ 1\r\ 1\12\ 1
33969 +\ 1\1c\ 1\12\ 1
33970 +\ 1\1c\ 1\15\ 1
33971 +\ 1\1c\ 1'\ 1
33972 +\ 1\1f\ 1\19\ 1\19\ 1\1c\ 1\e\ 1\19\ 1\1f\ 1\13\ 1\16\ 1c\ 1\0\0\0\1f\0\0\0\13\0\0\0C\0\0\0s\ 2\a\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0g\12\0d\ 5\0d\ 6\0\83\ 3\0}\ 2\0t\ 1\0d\a\0d\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 3\0t\ 4\0d  \0d
33973 +\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 4\0d
33974 +\0d\b\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d\v\0d\f\0d
33975 +\0d     \0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d\f\0d\r\0d\ e\0d
33976 +\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d
33977 +\0d\ e\0d\ f\0d\b\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 6\0\83\0\0\ 1|\ 3\0j\a\0|\ 2\0\83\ 1\0\ 1t\ 1\0|\ 3\0j\b\0\83\0\0d  \0\83\ 2\0}\ 4\0|\ 4\0j\ 2\0d\ 5\0\83\ 1\0\ 1d\v\0d        \0d\v\0d\f\0d\f\0d
33978 +\0d
33979 +\0d     \0d\b\0d
33980 +\0d\ 6\0d
33981 +\0d     \0d\ 6\0d\f\0d\r\0d\b\0d\ f\0g\12\0}\ 5\0x7\0t      \0d\ 5\0\83\ 1\0D])\0}\ 6\0|\ 4\0j\ 3\0t
33982 +\0|\ 5\0d\ 6\0|\ 6\0\14d\ 6\0|\ 6\0\14d\ 6\0\17!\83\ 2\0\ 1qr\ 1W|\ 4\0j\ 6\0\83\0\0\ 1|\ 4\0j\a\0|\ 2\0\83\ 1\0\ 1t\v\0\83\0\0}\a\0|\a\0j\f\0d\v\0|\ 3\0\83\ 2\0\ 1|\a\0j\f\0d\10\0|\ 4\0\83\ 2\0\ 1d\f\0}\b\0d\ 6\0}      \0d\11\0}
33983 +\0t\r\0t\ e\0t\ f\0\83\ 2\0}\v\0|\v\0j\10\0d\12\0\83\ 1\0\ 1|\v\0j\11\0|
33984 +\0|\b\0|  \0\83\ 3\0\ 1t\12\0d\v\0d    \0d\ 6\0g\ 3\0\83\ 1\0}\f\0|\f\0j\10\0d\13\0\83\ 1\0\ 1t\0\0d\14\0d\15\0d\16\0g\ 3\0\83\ 1\0}\r\0|\v\0j\13\0|\r\0\83\ 1\0\ 1t\14\0\83\0\0}\ e\0|\ e\0j\15\0|\v\0|\a\0d\v\0|\f\0\83\ 4\0\ 1|\a\0j\16\0|\ 1\0d\ 6\0\83\ 2\0\ 1|\ e\0j\16\0|\ 1\0d\v\0\83\ 2\0\ 1t\r\0t\ e\0t\ f\0\83\ 2\0}\ f\0|\ f\0j\10\0d\17\0\83\ 1\0\ 1|\ f\0j\11\0|
33985 +\0|\b\0|  \0\83\ 3\0\ 1t\12\0d\v\0d    \0d\ 6\0d\f\0d
33986 +\0d\b\0d\r\0g\a\0\83\ 1\0}\10\0|\10\0j\10\0d\18\0\83\ 1\0\ 1t\0\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0g\a\0\83\ 1\0}\11\0|\ f\0j\13\0|\11\0\83\ 1\0\ 1t\14\0\83\0\0}\12\0|\12\0j\15\0|\ f\0|\a\0d\10\0|\10\0\83\ 4\0\ 1|\12\0j\16\0|\ 1\0d\v\0\83\ 2\0\ 1~\a\0~\ e\0~\ 3\0~\ 4\0~\12\0t\17\0j\18\0|\ 1\0\83\ 1\0}\a\0|\a\0j\19\0d\v\0\83\ 1\0}\ 3\0|\ 3\0j\1a\0\83\0\0}\13\0|\13\0|\f\0\19}\13\0|\13\0j\10\0|\a\0j\b\0\83\0\0\83\ 1\0\ 1|\v\0j\e\0|\13\0\83\ 1\0\ 1t\14\0j\18\0|\ 1\0|\v\0j\b\0\83\0\0|\b\0|    \0\83\ 4\0}\ e\0|\ e\0j\1c\0t\ e\0|\ 3\0\83\ 2\0}\14\0|\14\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\14\0j\1f\0|\v\0\0\0\83\ 3\0\83\ 1\0\ 1|\ e\0\0t\ e\0d\v\0\83\ 2\0}\15\0|\15\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\15\0j\1f\0|\v\0\0\0\83\ 3\0\83\ 1\0\ 1|\ e\0j\1c\0t\ e\0d\v\0|\a\0\83\ 3\0}\16\0|\16\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\16\0j\1f\0|\v\0\0\0\83\ 3\0\83\ 1\0\ 1t!\0|\ 1\0|\a\0j\b\0\83\0\0d\v\0|\v\0j\b\0\83\0\0|\b\0|       \0\83\ 6\0}\17\0|\17\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\17\0j\1f\0|\v\0\0\0\83\ 3\0\83\ 1\0\ 1t\14\0j\18\0|\ 1\0|\ f\0j\b\0\83\0\0|\b\0|     \0\83\ 4\0}\12\0|\a\0j\19\0d\10\0\83\ 1\0}\ 4\0|\ 4\0j\1a\0\83\0\0}\18\0|\18\0|\10\0\19}\18\0|\18\0j\10\0|\a\0j\b\0\83\0\0\83\ 1\0\ 1|\ f\0j\e\0|\18\0\83\ 1\0\ 1|\12\0j\1c\0t\ e\0|\ 4\0\83\ 2\0}\19\0|\19\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\19\0j\1f\0|\ f\0\0\0\83\ 3\0\83\ 1\0\ 1|\12\0\0t\ e\0d\10\0\83\ 2\0}\1a\0|\1a\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\1a\0j\1f\0|\ f\0\0\0\83\ 3\0\83\ 1\0\ 1|\12\0j\1c\0t\ e\0d\10\0|\a\0\83\ 3\0}\e\0|\e\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\e\0j\1f\0|\ f\0\0\0\83\ 3\0\83\ 1\0\ 1t!\0|\ 1\0|\a\0j\b\0\83\0\0d\10\0|\ f\0j\b\0\83\0\0|\b\0|  \0\83\ 6\0}\1c\0|\1c\0j\1d\0\83\0\0\ 1|\0\0j\1e\0|\1c\0j"\0\83\0\0j\1f\0|\18\0\0\83\ 2\0\83\ 1\0\ 1|\0\0j#\0t$\0|\12\0j\1c\0t\ e\0|\ 3\0\83\ 4\0\ 1|\0\0j#\0t$\0|\12\0\0t\ e\0d\v\0\83\ 4\0\ 1|\0\0j#\0t$\0|\12\0j\1c\0t\ e\0d\v\0|\a\0\83\ 5\0\ 1|\12\0j%\0t\ e\0d\10\0|\a\0\83\ 3\0\\ 2\0}\1d\0}\1e\0|\1d\0j\10\0|\ f\0j&\0\83\0\0j\b\0\83\0\0\83\ 1\0\ 1|\0\0j\1e\0|\1d\0j\1f\0|\ f\0j&\0\83\0\0\0\83\ 2\0\83\ 1\0\ 1|\1e\0j\10\0|\10\0j\b\0\83\0\0\83\ 1\0\ 1|\0\0j\1e\0|\1e\0j\1f\0|\10\0\83\ 1\0\83\ 1\0\ 1d\0\0S(!\0\0\0Ns\f\0\0\0Pyfile52.medg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?i       \0\0\0i\ 2\0\0\0Rn\ 2\0\0i\ 5\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\0\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0iÿÿÿÿg\0\0\0\0\0\0\12@t
33987 +\0\0\0fieldCell0Rp\ 2\0\0i
33988 +\0\0\0i\v\0\0\0i\f\0\0\0t
33989 +\0\0\0fieldCell1Rr\ 2\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0g\11ê-\81\99\97q=('\0\0\0RY\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Rb\0\0\0Rc\0\0\0RC\0\0\0Rn\0\0\0Re\0\0\0R>\0\0\0Rj\0\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0RB\0\0\0\0\0\0Rk\0\0\0R{\ 1\0\0\0\0\0R|\ 1\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R}\0\0\0Rq\0\0\0\0\0\0R\97\ 1\0\0Rd\0\0\0R0\0\0\0R1\0\0\0R\ 6\ 1\0\0R\14\ 1\0\0\0\0\0R)\0\0\0R*\0\0\0R~\ 1\0\0R)\ 1\0\0(\1f\0\0\0R   \0\0\0R9\ 1\0\0R\ 3\ 2\0\0\0\0\0R\84\0\0\0Rt\ 2\0\0\0\0\0R\83\0\0\0Ru\ 2\0\0Rv\ 2\0\0Rw\ 2\0\0R\88\ 2\0\0Rx\ 2\0\0\ 1\0\0\0\0\0R\89\ 2\0\0Ry\ 2\0\0Rz\ 2\0\0\0\0\0R{\ 2\0\0R|\ 2\0\0R}\ 2\0\0R~\ 2\0\0R\7f\ 2\0\0R\80\ 2\0\0R\81\ 2\0\0R\82\ 2\0\0R\83\ 2\0\0R\84\ 2\0\0R\85\ 2\0\0R\86\ 2\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\16\0\0\0testMEDFieldPflOnCell1\87\a\0\0\0\0\0\0\ 1\ 6\ 1H\ 1\ f\ 1\r\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1\1c\ 1
33990 +\ 1\r\ 1\15\ 1\r\ 1<\ 1\13\ 1#\ 1\ 4\ 1
33991 +\ 1\r\ 2    \ 1\10\ 1\10\ 2\ 6\0\ 6\0\ 6\ 1\ f\ 1\r\ 1\13\ 1\15\0\r\ 1\15\ 1\r\ 1       \ 1\16\ 1\10\0\10\ 1\ f\ 1\r\ 1\13\ 1!\0\r\ 1!\ 1\r\ 1   \ 1\16\ 1\10\ 1\ f\ 2\ f\ 1\ f\ 1\f\0
33992 +\0\13\ 1\r\ 1\1e\ 1\12\ 1
33993 +\ 1\1c\ 1\12\ 1
33994 +\ 1\1c\ 1\15\ 1
33995 +\ 1\1c\ 1'\ 1
33996 +\ 1\1c\ 1\1e\ 1\ f\ 1\f\0
33997 +\0\13\ 1\r\ 1\12\ 1
33998 +\ 1\1c\ 1\12\ 1
33999 +\ 1\1c\ 1\15\ 1
34000 +\ 1\1c\ 1'\ 1
34001 +\ 1\1f\ 1\19\ 1\19\ 1\1c\ 1\e\ 1\19\ 1\1f\ 1\13\ 1\16\ 1c\ 1\0\0\0
34002 +\0\0\0\12\0\0\0C\0\0\0s\ 5\ 5\0\0t\0\0\83\0\0}\ 1\0t\ 1\0d\ 1\0\83\ 1\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0\83\ 1\0\ 1|\ 2\0j\ 3\0d\ 3\0\83\ 1\0\ 1|\ 2\0j\ 4\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 1\0\ 1t\ 5\0d\a\0d\b\0\83\ 2\0}\ 3\0|\ 3\0j\ 6\0d    \0\83\ 1\0\ 1|\ 3\0j\a\0t\b\0d
34003 +\0d\b\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\a\0t  \0d\b\0d\v\0d\ 3\0d\v\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\a\0t
34004 +\0d
34005 +\0d\f\0d\f\0d\f\0d\b\0g\ 5\0\83\ 2\0\ 1t\ 5\0d\a\0d
34006 +\0\83\ 2\0}\ 4\0|\ 4\0j\ 6\0\0\83\ 1\0\ 1|\ 4\0j\a\0t\v\0d
34007 +\0d\f\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\a\0t\v\0d\r\0d\ 3\0g\ 2\0\83\ 2\0\ 1t\ 5\0d\a\0d       \0\83\ 2\0}\ 5\0|\ 5\0j\ 6\0d  \0\83\ 1\0\ 1|\ 5\0j\a\0t\f\0d\b\0g\ 1\0\83\ 2\0\ 1|\ 5\0j\a\0t\f\0d\f\0g\ 1\0\83\ 2\0\ 1|\ 5\0j\a\0t\f\0d\ e\0g\ 1\0\83\ 2\0\ 1|\ 3\0j\r\0|\ 2\0\83\ 1\0\ 1|\ 1\0j\ e\0d      \0|\ 3\0\83\ 2\0\ 1|\ 4\0j\r\0|\ 2\0\83\ 1\0\ 1|\ 1\0j\ e\0d\ f\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\r\0|\ 2\0\83\ 1\0\ 1|\ 1\0j\ e\0d\10\0|\ 5\0\83\ 2\0\ 1t\ f\0d\11\0\83\ 1\0}\ 6\0|\ 6\0j\ 2\0d\ 3\0\83\ 1\0\ 1|\ 1\0j\10\0d
34008 +\0|\ 6\0\83\ 2\0\ 1t\ f\0d\11\0\83\ 1\0}\a\0|\a\0j\ 2\0d\v\0\83\ 1\0\ 1|\ 1\0j\11\0d
34009 +\0|\a\0\83\ 2\0\ 1t\ f\0d\12\0d\ 1\0d\13\0g\ 3\0\83\ 1\0}\b\0|\ 1\0j\10\0d   \0|\b\0\83\ 2\0\ 1t\ f\0d\14\0d\15\0d\16\0g\ 3\0\83\ 1\0}\b\0|\ 1\0j\11\0d    \0|\b\0\83\ 2\0\ 1t\ f\0d\17\0d\18\0g\ 2\0\83\ 1\0}\b\0|\ 1\0j\10\0d\ f\0|\b\0\83\ 2\0\ 1t\ f\0d\19\0d\1a\0g\ 2\0\83\ 1\0}\b\0|\ 1\0j\11\0d\ f\0|\b\0\83\ 2\0\ 1t\ f\0d\e\0d\1c\0d\1d\0g\ 3\0\83\ 1\0}\b\0|\ 1\0j\10\0d\10\0|\b\0\83\ 2\0\ 1t\ f\0d\1e\0d\1f\0\0g\ 3\0\83\ 1\0}\b\0|\ 1\0j\11\0d\10\0|\b\0\83\ 2\0\ 1|\ 1\0j\12\0\83\0\0}        \0|\0\0j\13\0|        \0j\14\0t\ f\0d\ f\0d     \0d
34010 +\0d\b\0d\ 3\0d\ f\0d\v\0d!\0d\f\0d\ f\0g
34011 +\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\15\0d
34012 +\0\83\ 1\0j\14\0t\ f\0d\v\0d!\0d\f\0d\r\0d"\0d\11\0d#\0g\a\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\16\0d
34013 +\0\83\ 1\0j\14\0t\ f\0d!\0d\f\0d\r\0d\ e\0d\11\0d#\0d$\0g\a\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\17\0d      \0\83\ 1\0j\18\0\83\0\0j\14\0t\ f\0d\ 3\0d    \0d
34014 +\0d\b\0d\v\0d
34015 +\0d\ 3\0d\b\0d\ 3\0d!\0\0d\v\0d\v\0d\v\0d
34016 +\0g\ f\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\17\0d    \0\83\ 1\0j\19\0\83\0\0j\14\0t\ f\0d       \0d\v\0d"\0d%\0g\ 4\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\17\0d\ f\0\83\ 1\0j\18\0\83\0\0j\14\0t\ f\0d
34017 +\0d     \0d\v\0d
34018 +\0d!\0d\b\0g\ 6\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\17\0d\ f\0\83\ 1\0j\19\0\83\0\0j\14\0t\ f\0d    \0d\ 3\0d\f\0g\ 3\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\17\0d\10\0\83\ 1\0j\18\0\83\0\0j\14\0t\ f\0d     \0d
34019 +\0d     \0d\v\0d   \0d\f\0g\ 6\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 1\0j\17\0d\10\0\83\ 1\0j\19\0\83\0\0j\14\0t\ f\0d        \0d\b\0d\v\0d\f\0g\ 4\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1d\0\0S(&\0\0\0Ni\1e\0\0\0g\0\0\0\0\0\0ð?i\ 3\0\0\0s\a\0\0\0aaa [b]s\a\0\0\0cc [dd]s\a\0\0\0e [fff]t\ 4\0\0\0totoi\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0iÿÿÿÿiþÿÿÿi
34020 +\0\0\0i\14\0\0\0i(\0\0\0\0\0\0i,\ 1\0\0i\90\ 1\0\0i2\0\0\0i<\0\0\0\ 1\0\0iX\ 2\0\0iF\0\0\0iP\0\0\0iZ\0\0\0\ 2\0\0\ 3\0\0i\84\ 3\0\0i\ 5\0\0\0i   \0\0\0i\v\0\0\0i\f\0\0\0i\ f\0\0\0(\1a\0\0\0R>\0\0\0RY\0\0\0Ry\ 1\0\0Rz\ 1\0\0\ 1\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Ra\0\0\0Re\0\0\0Rg\0\0\0Rc\0\0\0Rj\0\0\0Rk\0\0\0R\98\0\0\0\0\0\0Rs\ 2\0\0R0\0\0\0R1\0\0\0t\15\0\0\0getNumberFieldAtLevelR\9e\0\0\0R}\0\0\0Rv\0\0\0Rw\0\0\0(
34021 +\0\0\0R   \0\0\0R\83\0\0\0R\ 3\ 2\0\0\0\0\0R\84\0\0\0R\85\0\0\0t\ 6\0\0\0numCoot\ 6\0\0\0famCooR¼\0\0\0t\ 3\0\0\0o2n(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileUMeshZipCoords1à\a\0\0sl\0\0\0\0\ 1     \ 1\f\0\r\0\r\0\16\ 1\ f\0\r\0\19\0\1c\0\1f\ 1\ f\0\r\0\16\0\16\ 1\ f\0\r\0\13\0\13\0\13\ 1\r\0\10\ 1\r\0\10\ 1\r\0\10\ 1\f\0\r\0\10\ 1\f\0\r\0\10\ 1\15\0\10\0\15\0\10\ 1\12\0\10\0\12\0\10\ 1\15\0\10\0\15\0\10\ 1\f\ 1:\ 1:\ 1:\ 1X\ 17\ 1=\ 14\ 1=\ 17\ 1c\ 1\0\0\0\13\0\0\0\10\0\0\0C\0\0\0\a\0\0d\ 1\0}\ 1\0t\0\0\83\0\0}\ 2\0t\ 1\0d\ 2\0\83\ 1\0}\ 3\0|\ 3\0j\ 2\0d\ 3\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\ 4\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\ 5\0d\ 6\0d\a\0g\ 3\0\83\ 1\0\ 1t\ 5\0d\b\0d       \0\83\ 2\0}\ 4\0|\ 4\0j\ 6\0d
34022 +\0\83\ 1\0\ 1|\ 4\0j\a\0t\b\0d\v\0d     \0d\ 4\0g\ 3\0\83\ 2\0\ 1|\ 4\0j\a\0t      \0d      \0d\f\0d\ 4\0d\f\0g\ 4\0\83\ 2\0\ 1|\ 4\0j\a\0t
34023 +\0d\v\0d\r\0d\r\0d\r\0\0g\ 5\0\83\ 2\0\ 1t\ 5\0d\b\0d\v\0\83\ 2\0}\ 5\0|\ 5\0j\ 6\0d
34024 +\0\83\ 1\0\ 1|\ 5\0j\a\0t\v\0d\v\0d\r\0g\ 2\0\83\ 2\0\ 1|\ 5\0j\a\0t\v\0d\ e\0d\ 4\0g\ 2\0\83\ 2\0\ 1t\ 5\0d\b\0d
34025 +\0\83\ 2\0}\ 6\0|\ 6\0j\ 6\0d
34026 +\0\83\ 1\0\ 1|\ 6\0j\a\0t\f\0d        \0g\ 1\0\83\ 2\0\ 1|\ 6\0j\a\0t\f\0d\r\0g\ 1\0\83\ 2\0\ 1|\ 6\0j\a\0t\f\0d\ f\0g\ 1\0\83\ 2\0\ 1|\ 4\0j\r\0|\ 3\0\83\ 1\0\ 1|\ 2\0j\ e\0d
34027 +\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\r\0|\ 3\0\83\ 1\0\ 1|\ 2\0j\ e\0d\10\0|\ 5\0\83\ 2\0\ 1|\ 6\0j\r\0|\ 3\0\83\ 1\0\ 1|\ 2\0j\ e\0d\11\0|\ 6\0\83\ 2\0\ 1|\ 2\0j\ f\0\83\0\0}\a\0t\10\0d
34028 +\0d     \0d
34029 +\0d\ 4\0d  \0d
34030 +\0d\10\0d
34031 +\0d
34032 +\0d
34033 +\0d
34034 +\0d\10\0d\ 4\0g\r\0\83\ 1\0}\b\0|\a\0j\11\0d\v\0|\b\0\83\ 2\0\ 1t\10\0d
34035 +\0d
34036 +\0d
34037 +\0g\ 3\0\83\ 1\0}       \0|\a\0j\11\0d
34038 +\0|     \0\83\ 2\0\ 1t\10\0d
34039 +\0d\ 4\0g\ 2\0\83\ 1\0}
34040 +\0|\a\0j\11\0d\10\0|
34041 +\0\83\ 2\0\ 1t\10\0d
34042 +\0d
34043 +\0d
34044 +\0g\ 3\0\83\ 1\0}\v\0|\a\0j\11\0d\11\0|\v\0\83\ 2\0\ 1|\a\0j\12\0d\12\0d   \0\83\ 2\0\ 1|\a\0j\12\0d\13\0d\ 4\0\83\ 2\0\ 1|\a\0j\12\0d\14\0d\10\0\83\ 2\0\ 1|\a\0j\13\0d\15\0d\13\0g\ 1\0\83\ 2\0\ 1|\a\0j\13\0d\16\0d\14\0g\ 1\0\83\ 2\0\ 1|\0\0j\14\0|\a\0j\15\0d\12\0d\13\0g\ 2\0\83\ 1\0j\16\0t\10\0d\v\0d\ 4\0d\f\0d\17\0g\ 4\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1t\10\0d\v\0d\ 4\0d\f\0d\r\0d\18\0d\19\0d\17\0g\a\0\83\ 1\0}\f\0|\f\0j\17\0d\1a\0\83\ 1\0\ 1|\a\0j\18\0|\f\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\19\0|\f\0j\1a\0\83\0\0\83\ 1\0j\16\0|\f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\e\0d\1a\0d\16\0g\ 2\0\83\ 1\0j\16\0t\10\0d\v\0d\ 4\0d\f\0d\r\0d\18\0d\19\0d\e\0d\17\0g\b\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1t\10\0d\v\0d\f\0g\ 2\0\83\ 1\0}\r\0|\r\0j\17\0d\12\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1c\0|\r\0j\1a\0\83\0\0\83\ 1\0j\16\0|\r\0\83\ 1\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1d\0d\v\0|\f\0j\1a\0\83\0\0\83\ 2\0j\16\0|\f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1e\0d\v\0\83\ 1\0j\16\0t\10\0d\r\0d   \0d\r\0d\ f\0d        \0d\r\0d\1c\0d\r\0d\r\0d\ e\0d\ e\0d\f\0d\ f\0g\r\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1xN\0d
34045 +\0|     \0f\ 2\0d\10\0|
34046 +\0f\ 2\0d\11\0|\v\0f\ 2\0g\ 3\0D]+\0\\ 2\0}\ e\0}\ f\0|\0\0j\14\0|\a\0j\1e\0|\ e\0\83\ 1\0j\16\0|\ f\0\83\ 1\0\83\ 1\0\ 1qt\ 4W|\0\0j\1f\0|\a\0\0\83\0\0d"\0\83\ 2\0\ 1|\0\0j\1f\0|\a\0j!\0\83\0\0d#\0\83\ 2\0\ 1|\0\0j\1f\0|\a\0j"\0d\ 4\0\83\ 1\0d\13\0\83\ 2\0\ 1|\0\0j\1f\0|\a\0j"\0d     \0\83\ 1\0d\12\0\83\ 2\0\ 1x9\0d$\0d%\0d&\0d'\0g\ 4\0D]%\0\\ 2\0}\10\0}\11\0|\0\0j\1f\0|\a\0j"\0|\11\0\83\ 1\0|\10\0\83\ 2\0\ 1q\14\ 5W|\0\0j\1f\0|\a\0j#\0d\15\0\83\ 1\0d(\0\83\ 2\0\ 1t\10\0d\ 4\0d\17\0g\ 2\0\83\ 1\0}\12\0|\12\0j\17\0d\15\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1d\0d\v\0d\15\0\83\ 2\0j\16\0|\12\0\83\ 1\0\83\ 1\0\ 1|\12\0j$\0d\v\0g\ 1\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1d\0d\10\0d\15\0\83\ 2\0j\16\0|\12\0\83\ 1\0\83\ 1\0\ 1|\a\0j%\0|\ 1\0d   \0\83\ 2\0\ 1t&\0j'\0|\ 1\0\83\ 1\0}\a\0|\0\0j\14\0|\a\0j\1d\0d\v\0|\f\0j\1a\0\83\0\0\83\ 2\0j\16\0|\f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1e\0d\v\0\83\ 1\0j\16\0t\10\0d\r\0d        \0d\r\0d\ f\0d        \0d\r\0d\1c\0d\r\0d\r\0d\ e\0d\ e\0d\f\0d\ f\0g\r\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1xN\0d
34047 +\0|     \0f\ 2\0d\10\0|
34048 +\0f\ 2\0d\11\0|\v\0f\ 2\0g\ 3\0D]+\0\\ 2\0}\ e\0}\ f\0|\0\0j\14\0|\a\0j\1e\0|\ e\0\83\ 1\0j\16\0|\ f\0\83\ 1\0\83\ 1\0\ 1q~\ 6W|\0\0j\1f\0|\a\0\0\83\0\0d)\0\83\ 2\0\ 1|\0\0j\1f\0|\a\0j!\0\83\0\0d*\0\83\ 2\0\ 1|\0\0j\1f\0|\a\0j"\0d\ 4\0\83\ 1\0d\13\0\83\ 2\0\ 1|\0\0j\1f\0|\a\0j"\0d     \0\83\ 1\0d\12\0\83\ 2\0\ 1x9\0d+\0d,\0d-\0d.\0g\ 4\0D]%\0\\ 2\0}\10\0}\11\0|\0\0j\1f\0|\a\0j"\0|\11\0\83\ 1\0|\10\0\83\ 2\0\ 1q\1e\aW|\0\0j\1f\0|\a\0j#\0d\15\0\83\ 1\0d/\0\83\ 2\0\ 1t\10\0d\ 4\0d\17\0g\ 2\0\83\ 1\0}\12\0|\12\0j\17\0d\15\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1d\0d\v\0d\15\0\83\ 2\0j\16\0|\12\0\83\ 1\0\83\ 1\0\ 1|\12\0j$\0d\v\0g\ 1\0\83\ 1\0\ 1|\0\0j\14\0|\a\0j\1d\0d\10\0d\15\0\83\ 2\0j\16\0|\12\0\83\ 1\0\83\ 1\0\ 1d\0\0S(0\0\0\0Ns\f\0\0\0Pyfile53.medi'\0\0\0g\0\0\0\0\0\0ð?i\ 3\0\0\0s\a\0\0\0aaa [b]s\a\0\0\0cc [dd]s\a\0\0\0e [fff]R\8b\ 2\0\0i\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0iÿÿÿÿiþÿÿÿt\ 5\0\0\0MyFamt
34049 +\0\0\0MyOtherFams \0\0\0MyOther-1t\ 4\0\0\0grp0t\ 4\0\0\0grpAi\f\0\0\0i    \0\0\0i
34050 +\0\0\0t\ 4\0\0\0grp1i\v\0\0\0i\ 5\0\0\0t\b\0\0\0Family_4t\b\0\0\0Family_5t\b\0\0\0Family_7t\b\0\0\0Family_8t\f\0\0\0FAMILLE_ZERO(\a\0\0\0R\96\ 2\0\0R\97\ 2\0\0R\98\ 2\0\0R\99\ 2\0\0R\91\ 2\0\0s     \0\0\0MyOther-1R\92\ 2\0\0(\ 3\0\0\0s\ 4\0\0\0grp0s\ 4\0\0\0grp1R\94\ 2\0\0(\ 2\0\0\0R\96\ 2\0\0i\ 4\0\0\0(\ 2\0\0\0R\97\ 2\0\0i\ 5\0\0\0(\ 2\0\0\0R\98\ 2\0\0i\a\0\0\0(\ 2\0\0\0R\99\ 2\0\0i\b\0\0\0(\ 2\0\0\0R\92\ 2\0\0R\99\ 2\0\0(\b\0\0\0s\f\0\0\0FAMILLE_ZEROR\96\ 2\0\0R\97\ 2\0\0R\98\ 2\0\0R\99\ 2\0\0R\91\ 2\0\0s        \0\0\0MyOther-1R\92\ 2\0\0(\ 3\0\0\0s\ 4\0\0\0grp0s\ 4\0\0\0grp1R\94\ 2\0\0(\ 2\0\0\0R\96\ 2\0\0i\ 4\0\0\0(\ 2\0\0\0R\97\ 2\0\0i\ 5\0\0\0(\ 2\0\0\0R\98\ 2\0\0i\a\0\0\0(\ 2\0\0\0R\99\ 2\0\0i\b\0\0\0(\ 2\0\0\0R\99\ 2\0\0R\92\ 2\0\0((\0\0\0R>\0\0\0RY\0\0\0Ry\ 1\0\0Rz\ 1\0\0\ 1\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Ra\0\0\0Re\0\0\0Rg\0\0\0Rc\0\0\0Rj\0\0\0Rq\0\0\0Rk\0\0\0\0\0\0\0\0\0t\12\0\0\0setFamiliesOnGroupR0\0\0\0t\12\0\0\0getNodeFamiliesArrR1\0\0\0RB\0\0\0t\f\0\0\0addNodeGroupt\ f\0\0\0getNodeGroupArrRC\0\0\0t\10\0\0\0getNodeGroupsArrRM\0\0\0RG\0\0\0R\9e\0\0\0R+\0\0\0\ 1\0\0\ 1\0\0RL\0\0\0R\9a\0\0\0RZ\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0(\13\0\0\0R      \0\0\0R9\ 1\0\0R\83\0\0\0R\ 3\ 2\0\0\0\0\0R\84\0\0\0R\85\0\0\0R\86\0\0\0R\8e\ 2\0\0\ 1\0\0\0\0\0\ 1\0\0t\ 6\0\0\0daTestt\a\0\0\0expect1R¥\0\0\0\ 1\0\0t\a\0\0\0famNamet\ 5\0\0\0famIdR¼\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\19\0\0\0testMEDUMeshAddNodeGroup1ú\a\0\0\0\0\0\0\ 1\ 6\ 1     \ 1\f\0\r\0\r\0\16\ 1\ f\0\r\0\19\0\1c\0\1f\ 1\ f\0\r\0\16\0\16\ 1\ f\0\r\0\13\0\13\0\13\ 1\r\0\10\ 1\r\0\10\ 1\r\0\10\ 2\f\ 13\0\10\ 1\15\0\10\ 1\12\0\10\ 1\15\0\10\ 1\10\ 1\10\ 1\10\ 1\13\ 1\13\ 27\ 2!\0\r\ 1\r\ 1%\ 1C\ 2\12\0\r\ 1%\ 2(\ 1L\ 1.\ 1\1f\ 1\ 4\ 1\16\ 1\16\ 1\19\ 1\19\ 1\1f\ 1\19\ 1\ 4\ 1\19\ 1\12\0\r\ 1"\ 1\10\ 1"\ 1\10\ 1\ f\ 1(\ 1L\ 1.\ 1\1f\ 1\ 4\ 1\16\ 1\16\ 1\19\ 1\19\ 1\1f\ 1\19\ 1\ 4\ 1\19\ 1\12\0\r\ 1"\ 1\10\ 1"\ 1c\ 1\0\0\0\13\0\0\0\10\0\0\0C\0\0\0s?\a\0\0d\ 1\0}\ 1\0t\0\0\83\0\0}\ 2\0t\ 1\0d\ 2\0\83\ 1\0}\ 3\0|\ 3\0j\ 2\0d\ 3\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\ 4\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\ 5\0d\ 6\0d\a\0g\ 3\0\83\ 1\0\ 1t\ 5\0d\b\0d     \0\83\ 2\0}\ 4\0|\ 4\0j\ 6\0d
34051 +\0\83\ 1\0\ 1x-\0t\a\0d\v\0\83\ 1\0D]\1f\0}\ 5\0|\ 4\0j\b\0t        \0d\f\0d   \0d\f\0g\ 3\0\83\ 2\0\ 1qt\0Wx0\0t\a\0d\r\0\83\ 1\0D]"\0}\ 5\0|\ 4\0j\b\0t
34052 +\0d\f\0d\f\0d       \0d
34053 +\0g\ 4\0\83\ 2\0\ 1\0Wx6\0t\a\0d    \0\83\ 1\0D](\0}\ 5\0|\ 4\0j\b\0t\v\0d
34054 +\0d
34055 +\0d\f\0d\f\0d       \0d      \0g\ 6\0\83\ 2\0\ 1\0Wt\ 5\0d\b\0d\f\0\83\ 2\0}\ 6\0|\ 6\0j\ 6\0d
34056 +\0\83\ 1\0\ 1|\ 6\0j\b\0t\f\0d\f\0d\ e\0g\ 2\0\83\ 2\0\ 1|\ 6\0j\b\0t\f\0d\v\0d\ 4\0g\ 2\0\83\ 2\0\ 1t\ 5\0d\b\0d
34057 +\0\83\ 2\0}\a\0|\a\0j\ 6\0d
34058 +\0\83\ 1\0\ 1|\a\0j\b\0t\r\0d        \0g\ 1\0\83\ 2\0\ 1|\a\0j\b\0t\r\0d\ e\0g\ 1\0\83\ 2\0\ 1|\a\0j\b\0t\r\0d\ f\0g\ 1\0\83\ 2\0\ 1|\ 4\0j\ e\0|\ 3\0\83\ 1\0\ 1|\ 2\0j\ f\0d
34059 +\0|\ 4\0\83\ 2\0\ 1|\ 6\0j\ e\0|\ 3\0\83\ 1\0\ 1|\ 2\0j\ f\0d\10\0|\ 6\0\83\ 2\0\ 1|\a\0j\ e\0|\ 3\0\83\ 1\0\ 1|\ 2\0j\ f\0d\11\0|\a\0\83\ 2\0\ 1|\ 2\0j\10\0\83\0\0}\b\0t\11\0d
34060 +\0d     \0d
34061 +\0d\ 4\0d  \0d
34062 +\0d\10\0d
34063 +\0d
34064 +\0d
34065 +\0d
34066 +\0d\10\0d\ 4\0g\r\0\83\ 1\0\0|\b\0j\12\0d
34067 +\0|     \0\83\ 2\0\ 1t\11\0d
34068 +\0d
34069 +\0d
34070 +\0g\ 3\0\83\ 1\0}
34071 +\0|\b\0j\12\0d\f\0|
34072 +\0\83\ 2\0\ 1t\11\0d
34073 +\0d\ 4\0g\ 2\0\83\ 1\0}\v\0|\b\0j\12\0d\10\0|\v\0\83\ 2\0\ 1t\11\0d
34074 +\0d
34075 +\0d
34076 +\0g\ 3\0\83\ 1\0}\f\0|\b\0j\12\0d\11\0|\f\0\83\ 2\0\ 1|\b\0j\13\0d\12\0d   \0\83\ 2\0\ 1|\b\0j\13\0d\13\0d\ 4\0\83\ 2\0\ 1|\b\0j\13\0d\14\0d\10\0\83\ 2\0\ 1|\b\0j\14\0d\15\0d\13\0g\ 1\0\83\ 2\0\ 1|\b\0j\14\0d\16\0d\14\0g\ 1\0\83\ 2\0\ 1t\11\0d\f\0d\ 4\0d\r\0d\ e\0d\ 2\0d\17\0d\18\0g\a\0\83\ 1\0}\r\0|\r\0j\15\0d\19\0\83\ 1\0\ 1|\b\0j\16\0d
34077 +\0|\r\0\83\ 2\0\ 1|\0\0j\17\0|\b\0j\18\0d
34078 +\0|\r\0j\19\0\83\0\0\83\ 2\0j\1a\0|\r\0\83\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\b\0j\e\0d
34079 +\0\83\ 1\0j\1a\0t\11\0d\1a\0\0d\1a\0d\e\0d        \0d\1a\0d\1c\0d\1a\0d\1a\0d\1d\0d\1d\0d\1e\0d\e\0g\r\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1xN\0d\f\0|
34080 +\0f\ 2\0d\10\0|\v\0f\ 2\0d\11\0|\f\0f\ 2\0g\ 3\0D]+\0\\ 2\0}\ e\0}\ f\0|\0\0j\17\0|\b\0j\e\0|\ e\0\83\ 1\0j\1a\0|\ f\0\83\ 1\0\83\ 1\0\ 1\ 3W|\0\0j\1c\0|\b\0j\1d\0\83\0\0d$\0\83\ 2\0\ 1|\0\0j\1c\0|\b\0j\1e\0\83\0\0d%\0\83\ 2\0\ 1|\0\0j\1c\0|\b\0j\1f\0d\ 4\0\83\ 1\0d\13\0\83\ 2\0\ 1|\0\0j\1c\0|\b\0j\1f\0d    \0\83\ 1\0d\12\0\83\ 2\0\ 1x9\0d&\0d'\0d(\0d)\0g\ 4\0D]%\0\\ 2\0}\10\0}\11\0|\0\0j\1c\0|\b\0j\1f\0|\11\0\83\ 1\0|\10\0\83\ 2\0\ 1q|\ 4W|\0\0j\1c\0|\b\0\0d\15\0\83\ 1\0d*\0\83\ 2\0\ 1t\11\0d\ 4\0d\18\0g\ 2\0\83\ 1\0}\12\0|\12\0j\15\0d\15\0\83\ 1\0\ 1|\0\0j\17\0|\b\0j\18\0d
34081 +\0d\15\0\83\ 2\0j\1a\0|\12\0\83\ 1\0\83\ 1\0\ 1|\12\0j!\0d\f\0g\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\b\0j\18\0d\10\0d\15\0\83\ 2\0j\1a\0|\12\0\83\ 1\0\83\ 1\0\ 1|\b\0j"\0|\ 1\0d       \0\83\ 2\0\ 1t#\0j$\0|\ 1\0\83\ 1\0}\b\0|\0\0j\17\0|\b\0j\18\0d
34082 +\0|\r\0j\19\0\83\0\0\83\ 2\0j\1a\0|\r\0\83\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\b\0j\e\0d
34083 +\0\83\ 1\0j\1a\0t\11\0d\1a\0\0d\1a\0d\e\0d        \0d\1a\0d\1c\0d\1a\0d\1a\0d\1d\0d\1d\0d\1e\0d\e\0g\r\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1xN\0d\f\0|
34084 +\0f\ 2\0d\10\0|\v\0f\ 2\0d\11\0|\f\0f\ 2\0g\ 3\0D]+\0\\ 2\0}\ e\0}\ f\0|\0\0j\17\0|\b\0j\e\0|\ e\0\83\ 1\0j\1a\0|\ f\0\83\ 1\0\83\ 1\0\ 1\ 5W|\0\0j\1c\0|\b\0j\1d\0\83\0\0d+\0\83\ 2\0\ 1|\0\0j\1c\0|\b\0j\1e\0\83\0\0d,\0\83\ 2\0\ 1|\0\0j\1c\0|\b\0j\1f\0d\ 4\0\83\ 1\0d\13\0\83\ 2\0\ 1|\0\0j\1c\0|\b\0j\1f\0d    \0\83\ 1\0d\12\0\83\ 2\0\ 1x9\0d-\0d.\0d/\0d0\0g\ 4\0D]%\0\\ 2\0}\10\0}\11\0|\0\0j\1c\0|\b\0j\1f\0|\11\0\83\ 1\0|\10\0\83\ 2\0\ 1q\86\ 6W|\0\0j\1c\0|\b\0\0d\15\0\83\ 1\0d1\0\83\ 2\0\ 1t\11\0d\ 4\0d\18\0g\ 2\0\83\ 1\0}\12\0|\12\0j\15\0d\15\0\83\ 1\0\ 1|\0\0j\17\0|\b\0j\18\0d
34085 +\0d\15\0\83\ 2\0j\1a\0|\12\0\83\ 1\0\83\ 1\0\ 1|\12\0j!\0d\f\0g\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\b\0j\18\0d\10\0d\15\0\83\ 2\0j\1a\0|\12\0\83\ 1\0\83\ 1\0\ 1d\0\0S(2\0\0\0Ns\f\0\0\0Pyfile54.medi     \0\0\0g\0\0\0\0\0\0ð?i\ 3\0\0\0s\a\0\0\0aaa [b]s\a\0\0\0cc [dd]s\a\0\0\0e [fff]R\8b\ 2\0\0i\ 2\0\0\0i\0\0\0\0i\a\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\b\0\0\0iÿÿÿÿiþÿÿÿR\91\ 2\0\0R\92\ 2\0\0s      \0\0\0MyOther-1R\93\ 2\0\0R\94\ 2\0\0i
34086 +\0\0\0i\f\0\0\0R\95\ 2\0\0iúÿÿÿiøÿÿÿiûÿÿÿiùÿÿÿiüÿÿÿs        \0\0\0Family_-4s   \0\0\0Family_-5s   \0\0\0Family_-7s   \0\0\0Family_-8R\9a\ 2\0\0(\a\0\0\0\0\0\0Family_-4s   \0\0\0Family_-5s   \0\0\0Family_-7s   \0\0\0Family_-8s\ 5\0\0\0MyFams \0\0\0MyOther-1s
34087 +\0\0\0MyOtherFam(\ 3\0\0\0s\ 4\0\0\0grp0s\ 4\0\0\0grp1s\ 4\0\0\0grpA(\ 2\0\0\0s    \0\0\0Family_-4iüÿÿÿ(\ 2\0\0\0\0\0\0Family_-5iûÿÿÿ(\ 2\0\0\0\0\0\0Family_-7iùÿÿÿ(\ 2\0\0\0\0\0\0Family_-8iøÿÿÿ(\ 2\0\0\0s
34088 +\0\0\0MyOtherFams \0\0\0Family_-8(\b\0\0\0s\f\0\0\0FAMILLE_ZEROs     \0\0\0Family_-4s   \0\0\0Family_-5s   \0\0\0Family_-7s   \0\0\0Family_-8s\ 5\0\0\0MyFams \0\0\0MyOther-1s
34089 +\0\0\0MyOtherFam(\ 3\0\0\0s\ 4\0\0\0grp0s\ 4\0\0\0grp1s\ 4\0\0\0grpA(\ 2\0\0\0s    \0\0\0Family_-4iüÿÿÿ(\ 2\0\0\0\0\0\0Family_-5iûÿÿÿ(\ 2\0\0\0\0\0\0Family_-7iùÿÿÿ(\ 2\0\0\0\0\0\0Family_-8iøÿÿÿ(\ 2\0\0\0\0\0\0Family_-8s
34090 +\0\0\0MyOtherFam(%\0\0\0R>\0\0\0RY\0\0\0Ry\ 1\0\0Rz\ 1\0\0\ 1\0\0R[\0\0\0R]\0\0\0Rn\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Ra\0\0\0Re\0\0\0Rg\0\0\0Rc\0\0\0Rj\0\0\0Rq\0\0\0Rk\0\0\0\0\0\0\0\0\0R\9b\ 2\0\0RB\0\0\0t\b\0\0\0addGroupR0\0\0\0RG\0\0\0RC\0\0\0R1\0\0\0R\9e\0\0\0R+\0\0\0\ 1\0\0\ 1\0\0RL\0\0\0R\9a\0\0\0RZ\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0(\13\0\0\0R      \0\0\0R9\ 1\0\0R\83\0\0\0R\ 3\ 2\0\0\0\0\0\0\0\0R\84\0\0\0R\85\0\0\0R\86\0\0\0R\8e\ 2\0\0\ 1\0\0\0\0\0\ 1\0\0\ 2\0\0\0\0\0\ 1\0\0\ 2\0\0\ 2\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\15\0\0\0testMEDUMeshAddGroup1@\b\0\0\0\0\0\0\ 1\ 6\ 1  \ 1\f\0\r\0\r\0\16\ 1\ f\0\r\ 1\13\ 1\19\ 1\ 4\ 1\13\ 1\1c\ 1\ 4\ 1\13\ 1"\ 1\ 4\ 1\ f\0\r\0\16\0\16\ 1\ f\0\r\0\13\0\13\0\13\ 1\r\0\10\ 1\r\0\10\ 1\r\0\10\ 2\f\ 13\0\10\ 1\15\0\10\ 1\12\0\10\ 1\15\0\10\ 1\10\ 1\10\ 1\10\ 1\13\ 1\13\ 2!\0\r\ 1\10\ 1(\ 1L\ 1.\ 1\1f\ 1\ 4\ 1\16\ 1\16\ 1\19\ 1\19\ 1\1f\ 1\19\ 1\ 4\ 1\19\ 1\12\0\r\ 1"\ 1\10\ 1"\ 1\10\ 1\ f\ 1(\ 1L\ 1.\ 1\1f\ 1\ 4\ 1\16\ 1\16\ 1\19\ 1\19\ 1\1f\ 1\19\ 1\ 4\ 1\19\ 1\12\0\r\ 1"\ 1\10\ 1"\ 1c\ 1\0\0\0\f\0\0\0\b\0\0\0C\0\0\0s)\ 3\0\0t\0\0\83\0\0}\ 1\0|\ 1\0j\ 1\0\83\0\0}\ 2\0|\ 1\0j\ 2\0d\ 1\0d\ 2\0\83\ 2\0\ 1|\ 1\0j\ 1\0\83\0\0|\ 2\0\18}\ 3\0~\ 1\0~\ 2\0t\ 3\0\83\0\0}\ 4\0t\ 4\0d\ 3\0d\ 2\0\83\ 2\0}\ 5\0|\ 5\0j\ 5\0d\ 1\0\83\ 1\0\ 1|\ 4\0j\ 6\0|\ 5\0|\ 5\0\83\ 2\0\ 1|\ 4\0j\a\0\83\0\0}\ 4\0|\ 4\0j\b\0d\ 4\0\83\ 1\0\ 1|\ 4\0j  \0t
34091 +\0\83\ 1\0}\ 6\0|\0\0j\v\0|\ 4\0j\ 1\0\83\0\0t\f\0t\r\0d$\0d%\0d\a\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0|\ 6\0j\ 1\0\83\0\0t\f\0t\r\0d&\0d'\0d       \0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1t\ e\0\83\0\0}\a\0|\a\0j\ f\0d\ 1\0|\ 4\0\83\ 2\0\ 1|\0\0j\v\0|\a\0j\ 1\0\83\0\0t\f\0t\r\0d(\0d)\0d\ 3\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1t\10\0\83\0\0}\b\0|\b\0j\11\0|\ 6\0\83\ 1\0\ 1|\0\0j\v\0|\b\0j\ 1\0\83\0\0t\f\0t\r\0d*\0d+\0d,\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1t\12\0\83\0\0}        \0|      \0j\13\0|\ 6\0\83\ 1\0\ 1|\0\0j\v\0|      \0j\ 1\0\83\0\0t\f\0t\r\0d-\0d.\0d/\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\ 6\0j\14\0d\16\0d\ 1\0d\17\0\83\ 3\0\ 1|       \0j\13\0|\ 6\0\83\ 1\0\ 1|\0\0j\v\0|      \0j\ 1\0\83\0\0t\f\0t\r\0d0\0d1\0d2\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0|    \0d3\0\19j\ 1\0\83\0\0t\f\0t\r\0d4\0d5\0d6\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\ 6\0d\11\0 }
34092 +\0|
34093 +\0j\14\0d\1c\0d\ 2\0d\17\0\83\ 3\0\ 1t\0\0j\15\0d\ 1\0d\11\0d\ 2\0\83\ 3\0}\v\0|\v\0j\b\0d\1d\0\83\ 1\0\ 1|   \0j\16\0|
34094 +\0|\a\0d\ 1\0|\v\0\83\ 4\0\ 1|\0\0j\v\0|  \0j\ 1\0\83\0\0t\f\0t\r\0d7\0d8\0d9\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0|    \0j\17\0d\1d\0\83\ 1\0j\ 1\0\83\0\0t\f\0t\r\0d:\0d;\0d\15\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\0\0j\v\0|   \0d<\0\19j\ 1\0\83\0\0t\f\0t\r\0d=\0d>\0d\a\0|\ 3\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1d\0\0S(?\0\0\0Ni\0\0\0\0i\ 1\0\0\0i
34095 +\0\0\0R\86\0\0\0\r\0\0id\0\0\0i\ 4\0\0\0iw\10\0\0i\b\0\0\0i1\ f\0\0i\81\10\0\0i\ 3\ 3\0\0i(\0\0\0ig\ 3\0\0i\15\0\0\0i/\ 3\0\0i2\0\0\0i\93\ 3\0\0i\1e\0\0\0i\ 6\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0ð?iÿÿÿÿi:\ 6\0\0iZ\0\0\0i\ 2\a\0\0i\14\0\0\0g\0\0\0\0\0\0\0@R\83\ 1\0\0i,        \0\0i\82\0\0\0i0
34096 +\0\0\0\0\0\ 2\0\0iF\ 3\0\0i|\r\0\0iD\ e\0\0i\13\10\0\0\10\0\0\ e\0\0\10\0\0\ 2\0\0i|\ 3\0\0i\ 5\0\0\0\ 2\0\0\ 3\0\0i\b\0\0\0\ 5\0\0i4\a\0\0i\v\0\0\0(\ 2\0\0\0i\0\0\0\0iÿÿÿÿiÛ\ 2\0\0i{\ 3\0\0i\ 5\0\0\0\b\0\0i\94
34097 +\0\0i\f\0\0\0\0\0\0\0\0\0(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿi°\ 2\0\0id\ 3\0\0(\18\0\0\0Rk\0\0\0t\11\0\0\0getHeapMemorySizeRx\ 1\0\0\0\0\0RY\0\0\0Ry\ 1\0\0Rc\0\0\0\ 1\0\0RB\0\0\0RV\ 1\0\0RN\0\0\0t\b\0\0\0assertInRm\0\0\0Rn\0\0\0R>\0\0\0Rj\0\0\0\0\0\0R%\ 1\0\0\0\0\0RY\ 1\0\0\0\0\0R"\ 2\0\0R\89\ 1\0\0R=\ 2\0\0(\f\0\0\0\0\0\0t\ 1\0\0\0at\ 2\0\0\0aat       \0\0\0strMulFacR\83\0\0\0\ 1\0\0R\b\0\0\0R\86\0\0\0\0\0\0t\ 3\0\0\0fffRâ\0\0\0R\83\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0testHeapMem1\87\b\0\0sJ\0\0\0\0\ 1   \0\f\ 1\10\ 1\10\0\ 3\0\ 3\ 2     \ 1\ f\0\r\ 1\10\ 1\f\ 1\r\ 1\ f\ 1-\ 1-\ 2       \ 1\10\ 1-\ 1   \ 1\r\ 1-\ 2   \ 1\r\ 1-\ 1\13\ 1\r\ 1-\ 11\ 1
34098 +\ 1\13\ 1\15\0\r\ 1\16\ 1-\ 16\ 11\ 1c\ 1\0\0\0\v\0\0\0\ 5\0\0\0C\0\0\0si\ 2\0\0d\ 1\0}\ 1\0t\0\0\83\0\0}\ 2\0|\ 2\0j\ 1\0d\ 2\0d\ 3\0d\ 4\0\83\ 3\0\ 1|\ 2\0j\ 2\0d\ 5\0\83\ 1\0\ 1|\ 2\0j\ 3\0d\ 6\0\83\ 1\0\ 1|\ 2\0j\ 4\0d\a\0\83\ 1\0\ 1t\ 5\0d\14\0d
34099 +\0\83\ 2\0}\ 3\0|\ 3\0j\ 6\0d\v\0\83\ 1\0\ 1|\ 3\0j\a\0d\b\0\83\ 1\0\ 1|\ 2\0j\b\0|\ 3\0\83\ 1\0\ 1|\ 2\0j     \0d\ 3\0d\ 4\0g\ 2\0\83\ 1\0\ 1|\ 2\0j
34100 +\0\83\0\0\ 1t\v\0\83\0\0}\ 4\0|\ 4\0j\f\0|\ 2\0\83\ 1\0\ 1t\r\0d        \0\83\ 1\0}\ 5\0|\ 5\0j\ 6\0d\ 3\0\83\ 1\0\ 1|\ 4\0j\ e\0d
34101 +\0|\ 5\0\83\ 2\0\ 1t\r\0d   \0\83\ 1\0}\ 6\0|\ 6\0j\ 6\0d\f\0\83\ 1\0\ 1|\ 4\0j\ f\0d
34102 +\0|\ 6\0\83\ 2\0\ 1t\r\0d\r\0\83\ 1\0}\a\0|\a\0j\ 6\0d\ e\0\83\ 1\0\ 1|\ 4\0j\ e\0d\ f\0|\a\0\83\ 2\0\ 1t\r\0d\10\0\83\ 1\0}\b\0|\b\0j\ 6\0d\11\0\83\ 1\0\ 1|\0\0j\10\0t\11\0|\ 4\0j\ f\0d
34103 +\0|\b\0\83\ 4\0\ 1|\b\0j\12\0\83\0\0\ 1|\ 4\0j\ f\0d
34104 +\0|\b\0\83\ 2\0\ 1|\ 4\0j\13\0|\ 1\0d\12\0\83\ 2\0\ 1t\v\0|\ 1\0\83\ 1\0}     \0|      \0j\14\0\83\0\0}
34105 +\0|\0\0j\15\0|
34106 +\0j\16\0|\ 2\0d\13\0\83\ 2\0\83\ 1\0\ 1|\0\0j\17\0|
34107 +\0j\18\0\83\0\0d\b\0\83\ 2\0\ 1|\0\0j\17\0|
34108 +\0j\19\0\83\0\0d\12\0\83\ 2\0\ 1t\1a\0j\e\0|\ 1\0\83\ 1\0}    \0|\0\0j\15\0t\1c\0|     \0t\v\0\83\ 2\0\83\ 1\0\ 1|\0\0j\15\0t\1c\0|   \0j\1d\0\83\0\0t\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\15\0t\1f\0|     \0j\1d\0\83\0\0\83\ 1\0d\ f\0k\ 3\0\83\ 1\0\ 1|\0\0j\15\0|     \0j\14\0\83\0\0j\16\0|\ 2\0d\13\0\83\ 2\0\83\ 1\0\ 1d\0\0S(\15\0\0\0Ns\f\0\0\0Pyfile55.medgffffff\ 2@i\ 4\0\0\0i\ 5\0\0\0t\ 2\0\0\0uss\e\0\0\0Example of Cuve linear mesht\v\0\0\0buildCLMeshi\ 3\0\0\0i\14\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\1c@i\90\ 1\0\0i\f\0\0\0i(\0\0\0i\0\0\0\0i\15\0\0\0\ f\0\0i\ 2\0\0\0g\11ê-\81\99\97q=i<\0\0\0\0\0\0t\1a\0\0\0MEDCouplingCurveLinearMeshR°\0\0\0\0\0\0RB\0\0\0Ri\0\0\0RY\0\0\0Ry\ 1\0\0Rz\ 1\0\0Rc\0\0\0t\14\0\0\0setNodeGridStructureRd\0\0\0t\16\0\0\0MEDFileCurveLinearMeshR³\0\0\0Rk\0\0\0\0\0\0R\98\0\0\0R)\0\0\0R*\0\0\0t\r\0\0\0popBackSilentR\v\0\0\0\0\0\0R0\0\0\0R1\0\0\0R+\0\0\0t\11\0\0\0getSpaceDimensiont\1d\0\0\0getSpaceDimensionOnNodeStructR'\0\0\0R(\0\0\0Rt\0\0\0R{\0\0\0R|\0\0\0Ry\0\0\0(\v\0\0\0\0\0\0R9\ 1\0\0\ 2\0\0t\ 2\0\0\0a1R\83\0\0\0Re\ 1\0\0t\ 2\0\0\0d3Ro\ 1\0\0t\ 2\0\0\0d4R\84\0\0\0R\86\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\14\0\0\0testCurveLinearMesh1¬\b\0\0sP\0\0\0\0\ 1\ 6\ 1     \ 1\13\ 1\r\ 1\r\ 1\r\ 1\ f\ 1\r\0\r\ 1\r\ 1\13\ 1
34109 +\ 2      \ 1\r\ 1\f\0\r\ 1\10\ 1\f\0\r\ 1\10\ 1\f\0\r\ 1\10\ 1\f\0\r\ 1\19\ 1
34110 +\ 1\10\ 1\10\ 2\f\ 1\f\ 1\19\ 1\16\ 1\16\ 2\ f\ 1\16\ 1\1c\ 1\1f\ 1\1f\ 1c\ 1\0\0\0\11\0\0\0\ 5\0\0\0C\0\0\0s\97\ 4\0\0d\ 1\0}\ 1\0t\0\0\83\0\0}\ 2\0t\ 1\0d\ 2\0d\ 3\0d\ 4\0g\ 3\0\83\ 1\0}\ 3\0|\ 2\0j\ 2\0|\ 3\0|\ 3\0\83\ 2\0\ 1|\ 2\0j\ 3\0d\ 5\0\83\ 1\0\ 1t\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0|\ 2\0\83\ 1\0\ 1t\ 6\0\83\0\0}\ 5\0|\ 5\0j\a\0|\ 4\0\83\ 1\0\ 1t\b\0\83\0\0}\ 6\0\0\83\0\0}\a\0|\ 6\0j
34111 +\0|\a\0\83\ 1\0\ 1|\ 6\0j\v\0|\ 5\0\83\ 1\0\ 1t\f\0\83\0\0}\b\0|\b\0j\ 3\0d\ 6\0\83\ 1\0\ 1|\b\0j\r\0d\a\0\83\ 1\0\ 1|\b\0j\ e\0d\b\0\83\ 1\0\ 1|\b\0j\ f\0d   \0d
34112 +\0d\v\0d\f\0\83\ 4\0\ 1|\b\0j\ f\0d
34113 +\0d\r\0d\ e\0d\ f\0\83\ 4\0\ 1|\b\0j\10\0\83\0\0}       \0|      \0j\ 3\0d\10\0\83\ 1\0\ 1|    \0j\r\0d\11\0\83\ 1\0\ 1|\a\0j\11\0|\b\0\83\ 1\0\ 1|\a\0j\11\0\0\83\ 1\0\ 1|\ 6\0j\12\0|\ 1\0d
34114 +\0\83\ 2\0\ 1\0|\ 1\0\83\ 1\0}
34115 +\0|\0\0j\13\0|\a\0j\14\0|
34116 +\0d\12\0\83\ 2\0d\13\0\19\83\ 1\0\ 1|\0\0j\15\0|\a\0d      \0\19d\15\0\19j\16\0\83\0\0d\f\0d\14\0\83\ 3\0\ 1|\a\0j\10\0\83\0\0}\v\0|     \0j\10\0\83\0\0}\f\0|     \0j\10\0\83\0\0}\r\0|\0\0j\13\0|\r\0j\14\0\0d\12\0\83\ 2\0d\13\0\19\83\ 1\0\ 1|        \0j\17\0d\13\0g\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\r\0j\14\0|     \0d\12\0\83\ 2\0d\13\0\19\f\83\ 1\0\ 1|\r\0d\v\0g\ 1\0=|\0\0j\13\0|\r\0j\14\0\0d\12\0\83\ 2\0d\13\0\19\83\ 1\0\ 1|\0\0j\18\0t\19\0|\a\0d    \0\19j\1a\0d\16\0\83\ 3\0\ 1|\0\0j\18\0t\19\0|\a\0d\10\0\19j\1a\0d\17\0\83\ 3\0\ 1|\0\0j\15\0|\a\0d\13\0\19d\18\0\19j\16\0\83\0\0d\f\0d\14\0\83\ 3\0\ 1|\0\0j\15\0|\a\0d\ 6\0\19d\19\0\19j\16\0\83\0\0d\f\0d\14\0\83\ 3\0\ 1|\v\0}\a\0|\0\0j\13\0|\a\0j\14\0|
34117 +\0d\12\0\83\ 2\0d\13\0\19\83\ 1\0\ 1|\0\0j\13\0|
34118 +\0d\10\0\19j\14\0|\b\0d\12\0\83\ 2\0d\13\0\19\83\ 1\0\ 1|\0\0j\13\0|
34119 +\0d\10\0\19j\14\0|      \0d\12\0\83\ 2\0d\13\0\19\f\83\ 1\0\ 1|\0\0j\15\0|
34120 +\0d\13\0\19d\1a\0\19j\16\0\83\0\0d\f\0d\14\0\83\ 3\0\ 1|\0\0j\e\0|\a\0j\1c\0\83\0\0d\e\0\83\ 2\0\ 1t\f\0|\ 1\0d\10\0\83\ 2\0}\ e\0|\0\0j\13\0|\ e\0j\14\0|\f\0d\12\0\83\ 2\0d\13\0\19\83\ 1\0\ 1t\f\0|\ 1\0\83\ 1\0}\ e\0|\0\0j\13\0|\ e\0j\14\0|\b\0d\12\0\83\ 2\0d\13\0\19\83\ 1\0\ 1t\1d\0|\ 1\0\83\ 1\0}\ f\0|\0\0j\e\0|\ f\0j\1e\0\83\0\0d\ 6\0\83\ 2\0\ 1|\0\0j\15\0|\ f\0j\16\0\83\0\0d\f\0d\14\0\83\ 3\0\ 1t\1d\0|\ 1\0d\10\0\83\ 2\0}\ f\0|\0\0j\e\0|\ f\0j\1e\0\83\0\0d\10\0\83\ 2\0\ 1|\0\0j\15\0|\ f\0j\16\0\83\0\0d\f\0d\14\0\83\ 3\0\ 1t\1d\0|\ 1\0d\10\0d
34121 +\0d\r\0\83\ 4\0}\ f\0|\0\0j\e\0|\ f\0j\1e\0\83\0\0d\10\0\83\ 2\0\ 1|\0\0j\15\0|\ f\0j\16\0\83\0\0d\ f\0d\14\0\83\ 3\0\ 1t\b\0|\ 1\0\83\ 1\0}\10\0|\0\0j\e\0d
34122 +\0|\10\0j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\15\0|\10\0\0\83\0\0d\10\0\19d\1c\0\19j\16\0\83\0\0d\f\0d\14\0\83\ 3\0\ 1d\0\0S(\1d\0\0\0Ns\f\0\0\0Pyfile56.medg\0\0\0\0\0\0\0\0g333333ó?g\0\0\0\0\0\0\f@R \ 2\0\0t\ 1\0\0\0As\17\0\0\0An example of parameterR­\0\0\0i\ 1\0\0\0i\ 2\0\0\0g333333\v@g\85ëQ¸\1e¿\81@i\ 3\0\0\0gffffff\16@gD\8blçû8\8f@t\ 1\0\0\0Bs\10\0\0\0A second exampleg\9b\86\9b\84\ 6=i\0\0\0\0i\r\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0\ 2\0\0\ 2\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(!\0\0\0\0\0\0RY\0\0\0Rc\0\0\0RB\0\0\0\0\0\0\0\0\0RP\ 1\0\0R7\ 2\0\0RK\ 1\0\0t\11\0\0\0MEDFileParameterst      \0\0\0setParamsRR\ 1\0\0t\17\0\0\0MEDFileParameterMultiTSRi\0\0\0\0\0\0t\v\0\0\0appendValueRq\0\0\0t   \0\0\0pushParamR\v\0\0\0R0\0\0\0R1\0\0\0R&\ 1\0\0t\b\0\0\0getValuet\10\0\0\0eraseTimeStepIdsR)\0\0\0R*\0\0\0t\v\0\0\0__getitem__R+\0\0\0t\ e\0\0\0getParamsNamest\19\0\0\0MEDFileParameterDouble1TSRC\0\0\0t\11\0\0\0getNumberOfParamst  \0\0\0getParams(\11\0\0\0R      \0\0\0R9\ 1\0\0R\83\0\0\0\ 1\0\0R\86\0\0\0\0\0\0t\ 4\0\0\0dataRå\0\0\0t\ 3\0\0\0ptst\ 4\0\0\0pts2t\ 2\0\0\0p2t\ 2\0\0\0p3t\ 4\0\0\0pts4t\ 4\0\0\0pts3t\ 4\0\0\0ptsrt\ 5\0\0\0p1tsrt\ 5\0\0\0data2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ f\0\0\0testParameters1Ô\b\0\0s~\0\0\0\0\ 1\ 6\ 1     \0\15\0\10\0\r\ 1 \0\r\ 1     \0\r\ 1     \ 1       \ 1\r\0\r\ 1   \ 1\r\0\r\0\r\ 1\16\ 1\16\ 1\f\0\r\0\r\ 1\r\0\r\ 1\10\ 1\f\ 1\1d\ 1!\ 1\f\ 1\f\ 1\f\ 1\1d\ 1\10\ 1\1e\ 1
34123 +\ 1\1d\ 1\1a\ 1\1a\ 1!\ 1!\ 1\ 6\ 1\1d\ 1!\ 1"\ 1!\ 1\16\ 1\ f\ 1\1d\ 1\f\ 1\1d\ 1\f\ 1\16\ 1\19\ 1\ f\ 1\16\ 1\19\ 1\15\ 1\16\ 1\19\ 1\f\ 1\16\ 1'\ 1c\ 1\0\0\0\11\0\0\0\a\0\0\0C\0\0\0\ 5\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0\83\0\0d\ 3\0\19}\ 4\0|\ 4\0j\ 3\0\83\0\0\ 1t\ 4\0\83\0\0}\ 5\0|\ 5\0j\ 5\0d\ 3\0|\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0d\ 4\0|\ 4\0\83\ 2\0\ 1t\ 6\0d\ 5\0d\ 6\0\83\ 2\0}\ 6\0g\0\0t\a\0d\ 5\0\83\ 1\0D]\10\0}\a\0d\a\0|\a\0\16^\ 2\0qw\0|\ 6\0(|\ 5\0j\b\0d\ 3\0|\ 6\0\83\ 2\0\ 1t\ 6\0j        \0|\ 6\0|\ 6\0|\ 6\0j
34124 +\0d\b\0\83\ 1\0g\ 3\0\83\ 1\0}\b\0g\0\0t\a\0d\ 6\0\83\ 1\0D]\10\0}\a\0d   \0|\a\0\16^\ 2\0\0|\b\0(|\ 5\0j\b\0d\ 4\0|\b\0\83\ 2\0\ 1|\b\0j
34125 +\0d
34126 +\0d\ 6\0\83\ 2\0}       \0g\0\0t\a\0d\v\0\83\ 1\0D]\10\0}\a\0d\f\0|\a\0\16^\ 2\0q\12\ 1|      \0(|\ 5\0j\b\0d\r\0|    \0\83\ 2\0\ 1|\ 5\0j\v\0|\ 1\0d\b\0\83\ 2\0\ 1t\f\0j\r\0|\ 1\0\83\ 1\0}
34127 +\0|\0\0j\ e\0|\ 5\0j\ f\0d\ 3\0\83\ 1\0j\10\0t\ 6\0g\0\0t\a\0d\ 5\0\83\ 1\0D]\10\0}\a\0d\a\0|\a\0\16^\ 2\0q}\ 1\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ e\0|\ 5\0j\ f\0d\ 4\0\83\ 1\0j\10\0t\ 6\0g\0\0t\a\0d\ 6\0\83\ 1\0D]\10\0}\a\0d        \0|\a\0\16^\ 2\0q¿\ 1\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ e\0|\ 5\0j\ f\0d\r\0\83\ 1\0j\10\0t\ 6\0g\0\0t\a\0d\v\0\83\ 1\0D]\10\0}\a\0d\f\0|\a\0\16^\ 2\0q\ 1\ 2\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ e\0|\ 5\0j\10\0|
34128 +\0d\ e\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|
34129 +\0j\ f\0d\r\0\83\ 1\0j\11\0d\ 3\0d\ 3\0d\ f\0\83\ 3\0\ 1|\0\0j\ e\0|\ 5\0j\10\0|
34130 +\0d\ e\0\83\ 2\0d\ 3\0\19\f\83\ 1\0\ 1|
34131 +\0j\ f\0d\r\0\83\ 1\0j\11\0d\ 3\0d\ 3\0d\10\0\83\ 3\0\ 1|\0\0j\ e\0|\ 5\0j\10\0|
34132 +\0d\ e\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|\ 5\0j\12\0\83\0\0}\v\0|\0\0j\ e\0|\ 5\0j\10\0|\v\0d\ e\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|\v\0j\b\0d\r\0d\0\0\83\ 2\0\ 1|\0\0j\ e\0|\ 5\0j\10\0|\v\0d\ e\0\83\ 2\0d\ 3\0\19\f\83\ 1\0\ 1|\ 5\0j\b\0d\r\0d\0\0\83\ 2\0\ 1|\0\0j\ e\0|\ 5\0j\10\0|\v\0d\ e\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|\ 5\0j\b\0d\ 4\0d\0\0\83\ 2\0\ 1|\ 5\0j\v\0|\ 1\0d\b\0\83\ 2\0\ 1t\f\0j\r\0|\ 1\0\83\ 1\0}
34133 +\0|\0\0j\14\0|
34134 +\0j\ f\0d\r\0\83\ 1\0d\0\0\83\ 2\0\ 1|\0\0j\ e\0|
34135 +\0j\ f\0d\ 3\0\83\ 1\0j\10\0t\ 6\0g\0\0t\a\0d\ 5\0\83\ 1\0D]\10\0}\a\0d\a\0|\a\0\16^\ 2\0q\9f\ 3\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\14\0|
34136 +\0j\ f\0d\ 4\0\83\ 1\0d\0\0\83\ 2\0\ 1t\15\0\83\0\0}\f\0t\16\0d\11\0d\12\0d\13\0g\ 3\0\83\ 1\0}\r\0|\f\0j\17\0|\r\0|\r\0\83\ 2\0\ 1|\f\0j\18\0d\14\0\83\ 1\0\ 1t\19\0\83\0\0}\ e\0|\ e\0j\1a\0|\f\0\83\ 1\0\ 1|\ e\0j\b\0d\ 3\0t\ 6\0g\0\0t\a\0d
34137 +\0\83\ 1\0D]\10\0}\a\0d\15\0|\a\0\16^\ 2\0q?\ 4\83\ 1\0\83\ 2\0\ 1|\ e\0j\b\0d\r\0t\ 6\0g\0\0t\a\0d\16\0\83\ 1\0D]\10\0}\a\0d\f\0|\a\0\16^\ 2\0qr\ 4\83\ 1\0\83\ 2\0\ 1|\ e\0j\v\0|\ 2\0d\b\0\83\ 2\0\ 1t\f\0j\r\0|\ 2\0\83\ 1\0}\ f\0|\0\0j\ e\0|\ f\0j\ f\0d\ 3\0\83\ 1\0j\10\0t\ 6\0g\0\0t\a\0d
34138 +\0\83\ 1\0D]\10\0}\a\0d\15\0|\a\0\16^\ 2\0\ 4\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ e\0|\ f\0j\ f\0d\r\0\83\ 1\0j\10\0t\ 6\0g\0\0t\a\0d\16\0\83\ 1\0D]\10\0}\a\0d\f\0|\a\0\16^\ 2\0q\12\ 5\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ e\0|\ e\0j\10\0|\ f\0d\ e\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|\ f\0j\ f\0d\r\0\83\ 1\0j\11\0d\ 3\0d\ 3\0d\ f\0\83\ 3\0\ 1|\0\0j\ e\0|\ e\0j\10\0|\ f\0d\ e\0\83\ 2\0d\ 3\0\19\f\83\ 1\0\ 1|\ f\0j\ f\0d\r\0\83\ 1\0j\11\0d\ 3\0d\ 3\0d\10\0\83\ 3\0\ 1|\0\0j\ e\0|\ e\0j\10\0|\ f\0d\ e\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|\ e\0j\12\0\83\0\0}\10\0|\0\0j\ e\0|\ e\0j\10\0|\10\0d\ e\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1d\0\0S(\17\0\0\0Ns\f\0\0\0Pyfile58.meds\f\0\0\0Pyfile59.medi\0\0\0\0iÿÿÿÿi\ 6\0\0\0i\10\0\0\0s\11\0\0\0CellL0#%.3d      i\ 2\0\0\0s\11\0\0\0CellLM1#%.3d     i\ 4\0\0\0i\f\0\0\0s\11\0\0\0Node#%.3d        i\ 1\0\0\0g\11ê-\81\99\97q=t\ 1\0\0\0Mt\ 1\0\0\0Ng\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99ñ?gffffff\ 2@t\ 5\0\0\0cmeshs\11\0\0\0Cell#%.3d        i   \0\0\0(\e\0\0\0R\ 4\0\0\0t\11\0\0\0build3DSurfMesh_1R\9b\ 1\0\0R\9c\ 1\0\0R>\0\0\0Rj\0\0\0t\12\0\0\0DataArrayAsciiCharRn\0\0\0t\13\0\0\0setNameFieldAtLevelt    \0\0\0Aggregatet\b\0\0\0subArrayR\v\0\0\0R'\0\0\0R(\0\0\0R0\0\0\0t\13\0\0\0getNameFieldAtLevelR1\0\0\0R\9f\0\0\0Rq\0\0\0R/\ 2\0\0R+\0\0\0\0\0\0RY\0\0\0Rc\0\0\0RB\0\0\0\0\0\0\0\0\0(\11\0\0\0R      \0\0\0R9\ 1\0\0Rn\ 1\0\0R\83\0\0\0R\84\0\0\0R\86\0\0\0t\v\0\0\0namesCellL0Rî\0\0\0t\v\0\0\0namesCellL1t
34139 +\0\0\0namesNodest\ 3\0\0\0mmrR\8d\0\0\0R\80\0\0\0\ 1\0\0t\ 2\0\0\0cct\ 3\0\0\0ccrt\ 5\0\0\0ccCpy(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt \0\0\0testNamesOnCellAndNodesInMeshes1
34140 +       \0\0sv\0\0\0\0\ 1\ 6\ 1\ 6\ 1\f\ 1\10\ 1
34141 +\ 2      \ 1\10\ 1\10\ 1\ f\ 1$\ 1\10\ 1!\ 1$\ 1\10\ 1\12\ 1$\ 1\10\ 1\10\ 2\ f\ 1B\ 1B\ 1B\ 1\1d\ 1\1c\ 1\1e\ 1\1c\ 1\1d\ 1\f\ 1\1d\ 2\10\ 1\1e\ 1\10\ 1\1d\ 1\10\ 1\10\ 1\ f\ 1\19\ 1B\ 1\19\ 2     \ 1\15\ 1\10\ 1\r\ 1 \ 1\r\ 13\ 13\ 1\10\ 1\ f\ 1B\ 1B\ 1\1d\ 1\1c\ 1\1e\ 1\1c\ 1\1d\ 1\f\ 1\1d\ 1c\ 1\0\0\0\18\0\0\0\r\0\0\0C\0\0\0\ 2\0\0t\0\0\83\0\0}\ 1\0t\ 1\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 5\0\83\ 1\0}\ 2\0|\ 1\0j\ 2\0|\ 2\0|\ 2\0\83\ 2\0\ 1|\ 1\0j\ 3\0\83\0\0}\ 1\0|\ 1\0j\ 4\0d\ 6\0\83\ 1\0\ 1t\ 5\0d\a\0d\b\0d      \0d
34142 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0g\f\0\83\ 1\0}\ 3\0|\ 3\0j\ 4\0d\13\0\83\ 1\0\ 1t\ 5\0d\14\0d\15\0d\16\0d\17\0g\ 4\0\83\ 1\0}\ 4\0|\ 4\0j\ 4\0d\18\0\83\ 1\0\ 1|\ 1\0j\ 6\0\83\0\0}\ 5\0t\a\0\83\0\0}\ 6\0|\ 6\0j\b\0d\a\0|\ 1\0\83\ 2\0\ 1|\ 6\0j\b\0d\19\0|\ 5\0\83\ 2\0\ 1|\ 6\0j  \0d\a\0|\ 3\0|\ 4\0g\ 2\0\83\ 2\0\ 1|\ 6\0j
34143 +\0d\1a\0d  \0\83\ 2\0\ 1|\ 6\0j\v\0d\a\0\83\ 1\0}\a\0|\ 6\0j\v\0d\19\0\83\ 1\0}\b\0|\ 6\0j\f\0d\a\0d\13\0\83\ 2\0}\ 3\0|\ 6\0j\f\0d\a\0d\18\0\83\ 2\0}\ 4\0|\ 3\0|\ 4\0g\ 2\0}       \0t\ 5\0|\a\0j\r\0\83\0\0\83\ 1\0}
34144 +\0|
34145 +\0j\ e\0d\19\0\83\ 1\0\ 1x$\0t\ f\0|     \0\83\ 1\0D]\16\0\\ 2\0}\v\0}\f\0|\v\0|
34146 +\0|\f\0<q\84\ 1W|\a\0j\10\0\83\0\0\\ 5\0}\r\0}\ e\0}\ f\0}\10\0}\11\0|\r\0j\11\0|\b\0\0\83\ 2\0\\ 2\0}\12\0}\13\0|\0\0j\12\0|\12\0\83\ 1\0\ 1t\13\0j\14\0|\13\0|\10\0|\11\0\83\ 3\0\\ 2\0}\14\0}\15\0|\0\0j\12\0|\15\0j\15\0\83\0\0j\16\0d\b\0\83\ 1\0\83\ 1\0\ 1|\14\0j\17\0|
34147 +\0\83\ 1\0\ 1t\18\0|      \0\83\ 1\0d\0\0g\ 1\0\14}\16\0x3\0t\ f\0|   \0\83\ 1\0D]%\0\\ 2\0}\v\0}\f\0|\14\0j\1a\0|\v\0\83\ 1\0}\17\0|\17\0|\16\0|\v\0<qB\ 2W|\16\0d\a\0\19j\e\0t\ 5\0d\a\0d\b\0d      \0d\14\0d\f\0d\r\0d\ f\0d\16\0d\10\0d\11\0g
34148 +\0\83\ 1\0\83\ 1\0\ 1|\16\0d\b\0\19j\e\0t\ 5\0d
34149 +\0d\v\0d\15\0d\ e\0d\12\0d\17\0g\ 6\0\83\ 1\0\83\ 1\0\ 1d\0\0S(\e\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@R \ 2\0\0i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\b\0\0\0i     \0\0\0i
34150 +\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0R\95\ 2\0\0i\ 3\0\0\0i\a\0\0\0i\v\0\0\0i\ f\0\0\0\ 1\0\0iÿÿÿÿs\v\0\0\0example.med(\1c\0\0\0\0\0\0RY\0\0\0Rc\0\0\0\ 1\0\0RB\0\0\0Rk\0\0\0t\v\0\0\0computeSkinR>\0\0\0Rj\0\0\0Rl\0\0\0R\v\0\0\0R}\0\0\0RG\0\0\0\0\0\0t\r\0\0\0fillWithValueRõ\0\0\0R\9b\ 1\0\0t\12\0\0\0areCellsIncludedInR0\0\0\0R[\0\0\0t\18\0\0\0ExtractFromIndexedArrayst\ f\0\0\0deltaShiftIndext     \0\0\0isUniformt\13\0\0\0transformWithIndArrRy\0\0\0R/\ 2\0\0t\f\0\0\0findIdsEqualR1\0\0\0(\18\0\0\0R      \0\0\0R\83\0\0\0\ 1\0\0R\95\ 2\0\0\ 1\0\0R\85\0\0\0R\86\0\0\0\0\0\0R\84\0\0\0t\ 4\0\0\0grpst\b\0\0\0whichGrpt\ 5\0\0\0grpIdRç\ 1\0\0\ 2\0\0t\ 1\0\0\0bt\ 2\0\0\0bIR\80\0\0\0t\ 2\0\0\0cIR\ 2\0\0\0R\b\0\0\0t\ 2\0\0\0c2t\ 3\0\0\0c2It        \0\0\0splitOfM1R\93\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\17\0\0\0testToExportInExamples1K        \0\0sN\0\0\0\0\ 1       \ 1\e\ 1\10\ 1\f\0\r\ 10\0\r\ 1\18\0\r\ 1\f\ 1     \ 1\10\ 1\10\ 1\16\ 1\10\ 2\ f\ 1\ f\ 1\12\ 1\12\ 1\f\ 1\12\ 1\r\ 1\19\ 1
34151 +\ 1\ 4\ 1\e\ 1\18\ 1\r\ 1\e\ 1\1c\ 1\r\ 1\13\ 1\19\ 1\ f\ 1
34152 +\ 1\ 4\ 15\ 1)\ 1c\ 1\0\0\0\ 2\0\0\0\ 4\0\0\0C\0\0\0sD\0\0\0t\0\0\83\0\0}\ 1\0|\ 1\0j\ 1\0d\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0d\ 2\0\19d\0\0\83\ 2\0\ 1|\0\0j\ 2\0d\ 1\0t\ 4\0|\ 1\0\83\ 1\0\83\ 2\0\ 1d\0\0S(\ 3\0\0\0Ni\ 3\0\0\0i\0\0\0\0(\ 5\0\0\0R[\ 1\0\0\ 1\0\0R+\0\0\0R/\ 2\0\0Ry\0\0\0(\ 2\0\0\0R  \0\0\0Rl\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\12\0\0\0testBugCorrection1r      \0\0s
34153 +\0\0\0\0\ 1  \ 1\r\ 1\14\ 1\16\ 1c\ 1\0\0\0\19\0\0\0\b\0\0\0C\0\0\0s{\ 2\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0j\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\0\0j\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 2\0|\ 2\0d\ 3\0\83\ 2\0\ 1t\ 3\0|\ 1\0\83\ 1\0}\ 3\0t\ 3\0|\ 2\0\83\ 1\0}\ 4\0x\9f\0|\ 3\0j\ 4\0\83\0\0j\ 5\0\83\0\0D]\8b\0}\ 5\0|\ 3\0j\ 4\0\83\0\0|\ 5\0\19}\ 6\0|\ 4\0j\ 4\0\83\0\0|\ 5\0\19}\a\0xb\0|\ 6\0j\ 6\0\83\0\0D]T\0}\b\0|\ 6\0j\a\0|\b\0\83\ 1\0}      \0x<\0|   \0D]4\0}
34154 +\0|\0\0j\b\0|\ 6\0j    \0|\b\0|
34155 +\0\83\ 2\0j
34156 +\0|\a\0j  \0|\b\0|
34157 +\0\83\ 2\0\83\ 1\0\83\ 1\0\ 1\0Wq¢\0Wqo\0Wxv\ 1|\ 3\0j\v\0\83\0\0j\f\0\83\0\0D]b\ 1}\v\0|\ 3\0j\v\0\83\0\0|\v\0\19}\f\0|\ 4\0j\v\0\83\0\0|\v\0\19}\r\0x9\ 1|\f\0j\r\0\83\0\0D]+\ 1\\ 3\0}\ e\0}\ f\0}\10\0|\f\0|\ e\0|\ f\0f\ 2\0\19}\11\0|\r\0|\ e\0|\ f\0f\ 2\0\19}\12\0t\ e\0|\11\0j\ f\0\83\0\0\83\ 1\0d\ 4\0k\ 3\0r\ e\ 2\0|\11\0j\ 6\0\83\0\0d\ 5\0\19D]k\0}\b\0|\11\0j\10\0t\11\0|\b\0|\ 6\0\83\ 3\0\\ 2\0}\13\0}\14\0|\12\0j\10\0t\11\0|\b\0|\a\0\83\ 3\0\\ 2\0}\15\0}\16\0|\0\0j\b\0|\14\0j
34158 +\0|\16\0\83\ 1\0\83\ 1\0\ 1|\0\0j\b\0|\13\0j
34159 +\0|\15\0d\ 6\0\83\ 2\0\83\ 1\0\ 1q\9c\ 1WqD\ 1x^\0|\11\0j\ 6\0\83\0\0d\ 5\0\19D]L\0}\b\0|\11\0j\12\0t\11\0|\b\0|\ 6\0\83\ 3\0}\17\0|\12\0j\12\0t\11\0|\b\0|\a\0\83\ 3\0}\18\0|\0\0j\b\0|\17\0j
34160 +\0|\18\0d\ 6\0d\ 6\0\83\ 3\0\83\ 1\0\ 1q\1f\ 2WqD\ 1Wq\11\ 1Wd\0\0S(\a\0\0\0Ns\f\0\0\0Pyfile60.meds\f\0\0\0Pyfile61.medi\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0g»½×Ùß|Û=(\13\0\0\0R\ 4\0\0\0t1\0\0\0buildACompleteMEDDataStructureWithFieldsOnCells_1R\v\0\0\0RK\ 1\0\0RT\ 1\0\0RU\ 1\0\0R,\0\0\0\0\0\0R0\0\0\0RG\0\0\0R1\0\0\0Ra\ 1\0\0Rb\ 1\0\0\0\0\0Ry\0\0\0R<\ 2\0\0R~\ 1\0\0R\13\ 1\0\0R\97\ 1\0\0(\19\0\0\0R   \0\0\0t\ 6\0\0\0f1Namet\ 6\0\0\0f2Namet\ 2\0\0\0d1Ro\ 1\0\0t\ 2\0\0\0mnR\84\0\0\0R\85\0\0\0\0\0\0t    \0\0\0grpsNamest\a\0\0\0grpNamet\ 6\0\0\0fieldnRã\0\0\0\0\0\0Rv\ 2\0\0t\ 5\0\0\0orderRw\ 2\0\0t\ 3\0\0\0f1tt\ 3\0\0\0f2tRz\ 2\0\0Ry\ 2\0\0t\ 4\0\0\0arr2RE\ 2\0\0t\ 4\0\0\0f1mct\ 4\0\0\0f2mc(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt.\0\0\0testCompareMEDFilesContainingOnlyFieldsOnCell1y       \0\0sP\0\0\0\0\ 1\ 6\ 1\ 6\ 1\f\ 1\10\ 1\f\ 1\10\ 2\f\0\f\ 1\19\ 1\10\ 1\10\ 1\13\ 1\ f\ 1\r\ 1.\ 1\ 4\ 1\ 4\ 1\ 4\ 1\19\ 1\10\ 1\10\ 1\1c\ 1\10\ 1\10\ 1\18\ 2\17\ 1\e\ 1\e\ 1\16\ 1\19\ 1\ 4\ 1\ 3\ 3\17\ 1\15\ 1\15\ 1\1c\ 1\ 4\ 2\ 4\ 1\ 4\ 1c\ 1\0\0\0\14\0\0\0\ 6\0\0\0C\0\0\0sù      \0\0t\0\0\83\0\0}\ 1\0t\ 1\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 5\0\83\ 1\0}\ 2\0|\ 1\0j\ 2\0|\ 2\0|\ 2\0|\ 2\0\83\ 3\0\ 1|\ 1\0j\ 3\0\83\0\0}\ 1\0|\ 1\0j\ 4\0\83\0\0d\ 6\0\19}\ 3\0|\ 1\0j\ 5\0d\a\0\83\ 1\0\ 1t\ 6\0d\ 6\0d\b\0d    \0d
34161 +\0g\ 4\0\83\ 1\0}\ 4\0|\ 4\0j\ 5\0d\v\0\83\ 1\0\ 1t\ 6\0d    \0d
34162 +\0d\f\0d\r\0g\ 4\0\83\ 1\0}\ 5\0|\ 5\0j\ 5\0d\ e\0\83\ 1\0\ 1t\ 6\0d\ f\0d\10\0d\11\0d\12\0g\ 4\0\83\ 1\0}\ 6\0|\ 6\0j\ 5\0d\13\0\83\ 1\0\ 1t\ 6\0d\11\0d\12\0d\14\0d\15\0g\ 4\0\83\ 1\0}\a\0|\a\0j\ 5\0d\16\0\83\ 1\0\ 1t\ 6\0d\17\0d\18\0d\19\0d\1a\0g\ 4\0\83\ 1\0}\b\0|\b\0j\ 5\0d\e\0\83\ 1\0\ 1t\ 6\0d\19\0d\1a\0d\1c\0d\1d\0g\ 4\0\83\ 1\0}     \0|      \0j\ 5\0d\1e\0\83\ 1\0\ 1t\a\0\83\0\0}
34163 +\0|
34164 +\0j\b\0d\ 6\0|\ 1\0\83\ 2\0\ 1|
34165 +\0j     \0d\ 6\0|\ 4\0|\ 5\0g\ 2\0\83\ 2\0\ 1t
34166 +\0|
34167 +\0j\v\0d\v\0\83\ 1\0\83\ 1\0}\v\0t
34168 +\0|
34169 +\0j\v\0d\ e\0\83\ 1\0\83\ 1\0}\f\0|\0\0j\f\0|
34170 +\0j\r\0d\v\0\83\ 1\0\0\83\ 2\0\ 1|\0\0j\f\0|
34171 +\0j\r\0d\ e\0\83\ 1\0d!\0\83\ 2\0\ 1|
34172 +\0j\ e\0\83\0\0\ 1|\0\0j\f\0|
34173 +\0j\r\0d\v\0\83\ 1\0d"\0\83\ 2\0\ 1|\0\0j\f\0|
34174 +\0j\r\0d\ e\0\83\ 1\0d#\0\83\ 2\0\ 1|\0\0j\ f\0|
34175 +\0j\10\0d\ 6\0d\v\0\83\ 2\0j\11\0|\ 4\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34176 +\0j\10\0d\ 6\0d\ e\0\83\ 2\0j\11\0|\ 5\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\v\0t
34177 +\0|
34178 +\0j\v\0d\v\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\f\0t
34179 +\0|
34180 +\0j\v\0d\ e\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1xD\0|
34181 +\0j\12\0d\ 6\0\83\ 1\0D]3\0}\r\0x*\0|
34182 +\0j\13\0|\r\0\83\ 1\0D]\19\0}\ e\0|\0\0j\ f\0|\ e\0d\ 6\0k\0\0\83\ 1\0\ 1\ 2Wq\97\ 2Wt\a\0\83\0\0}
34183 +\0|
34184 +\0j\b\0d\ 6\0|\ 1\0\83\ 2\0\ 1|
34185 +\0j\b\0d\1f\0|\ 3\0\83\ 2\0\ 1|
34186 +\0j     \0d\ 6\0|\ 4\0|\ 5\0g\ 2\0\83\ 2\0\ 1|
34187 +\0j     \0d\1f\0|\ 6\0|\a\0g\ 2\0\83\ 2\0\ 1t
34188 +\0|
34189 +\0j\v\0d\v\0\83\ 1\0\83\ 1\0}\v\0t
34190 +\0|
34191 +\0j\v\0d\ e\0\83\ 1\0\83\ 1\0}\f\0t
34192 +\0|
34193 +\0j\v\0d\13\0\83\ 1\0\83\ 1\0}\ f\0t
34194 +\0|
34195 +\0j\v\0d\16\0\83\ 1\0\83\ 1\0}\10\0|\0\0j\f\0|
34196 +\0j\r\0d\v\0\83\ 1\0d$\0\83\ 2\0\ 1|\0\0j\f\0|
34197 +\0j\r\0d\ e\0\83\ 1\0d%\0\83\ 2\0\ 1|\0\0j\f\0|
34198 +\0j\r\0d\13\0\83\ 1\0d&\0\83\ 2\0\ 1|\0\0j\f\0|
34199 +\0j\r\0d\16\0\83\ 1\0d'\0\83\ 2\0\ 1|
34200 +\0j\ e\0\83\0\0\ 1|\0\0j\f\0|
34201 +\0j\r\0d\v\0\83\ 1\0d(\0\83\ 2\0\ 1|\0\0j\f\0|
34202 +\0j\r\0d\ e\0\83\ 1\0d)\0\83\ 2\0\ 1|\0\0j\f\0|
34203 +\0j\r\0d\13\0\83\ 1\0d*\0\83\ 2\0\ 1|\0\0j\f\0|
34204 +\0j\r\0d\16\0\83\ 1\0d+\0\83\ 2\0\ 1|\0\0j\ f\0|
34205 +\0j\10\0d\ 6\0d\v\0\83\ 2\0j\11\0|\ 4\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34206 +\0j\10\0d\ 6\0d\ e\0\83\ 2\0j\11\0|\ 5\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34207 +\0j\10\0d\1f\0d\13\0\83\ 2\0j\11\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34208 +\0j\10\0d\1f\0d\16\0\83\ 2\0j\11\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\v\0t
34209 +\0|
34210 +\0j\v\0d\v\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\f\0t
34211 +\0|
34212 +\0j\v\0d\ e\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\ f\0t
34213 +\0|
34214 +\0j\v\0d\13\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\10\0t
34215 +\0|
34216 +\0j\v\0d\16\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1x[\0d\ 6\0d\1f\0g\ 2\0D]M\0}\11\0xD\0|
34217 +\0j\12\0|\11\0\83\ 1\0D]3\0}\r\0x*\0|
34218 +\0j\13\0|\r\0\83\ 1\0D]\19\0}\ e\0|\0\0j\ f\0|\ e\0d\ 6\0k\0\0\83\ 1\0\ 1q\86\ 5Wqp\ 5WqZ\ 5Wt\a\0\83\0\0}
34219 +\0|
34220 +\0j\b\0d\ 6\0|\ 1\0\83\ 2\0\ 1|
34221 +\0j\b\0d\1f\0|\ 3\0\83\ 2\0\ 1|
34222 +\0j     \0d\ 6\0|\ 4\0|\ 5\0g\ 2\0\83\ 2\0\ 1|
34223 +\0j     \0d\1f\0|\ 6\0|\a\0g\ 2\0\83\ 2\0\ 1|
34224 +\0j     \0d\b\0|\b\0|        \0g\ 2\0\83\ 2\0\ 1t
34225 +\0|
34226 +\0j\v\0d\v\0\83\ 1\0\83\ 1\0}\v\0t
34227 +\0|
34228 +\0j\v\0d\ e\0\83\ 1\0\83\ 1\0}\f\0t
34229 +\0|
34230 +\0j\v\0d\13\0\83\ 1\0\83\ 1\0}\ f\0t
34231 +\0|
34232 +\0j\v\0d\16\0\83\ 1\0\83\ 1\0}\10\0t
34233 +\0|
34234 +\0j\v\0d\e\0\83\ 1\0\83\ 1\0}\12\0t
34235 +\0|
34236 +\0j\v\0d\1e\0\83\ 1\0\83\ 1\0}\13\0|\0\0j\f\0|
34237 +\0j\r\0d\v\0\83\ 1\0d,\0\83\ 2\0\ 1|\0\0j\f\0|
34238 +\0j\r\0d\ e\0\83\ 1\0d-\0\83\ 2\0\ 1|\0\0j\f\0|
34239 +\0j\r\0d\13\0\83\ 1\0d.\0\83\ 2\0\ 1|\0\0j\f\0|
34240 +\0j\r\0d\16\0\83\ 1\0d/\0\83\ 2\0\ 1|\0\0j\f\0|
34241 +\0j\r\0d\e\0\83\ 1\0d0\0\83\ 2\0\ 1|\0\0j\f\0|
34242 +\0j\r\0d\1e\0\83\ 1\0d1\0\83\ 2\0\ 1|
34243 +\0j\ e\0\83\0\0\ 1|\0\0j\f\0|
34244 +\0j\r\0d\v\0\83\ 1\0d2\0\83\ 2\0\ 1|\0\0j\f\0|
34245 +\0j\r\0d\ e\0\83\ 1\0d3\0\83\ 2\0\ 1|\0\0j\f\0|
34246 +\0j\r\0d\13\0\83\ 1\0d4\0\83\ 2\0\ 1|\0\0j\f\0|
34247 +\0j\r\0d\16\0\83\ 1\0d5\0\83\ 2\0\ 1|\0\0j\f\0|
34248 +\0j\r\0d\e\0\83\ 1\0d6\0\83\ 2\0\ 1|\0\0j\f\0|
34249 +\0j\r\0d\1e\0\83\ 1\0d7\0\83\ 2\0\ 1|\0\0j\ f\0|
34250 +\0j\10\0d\ 6\0d\v\0\83\ 2\0j\11\0|\ 4\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34251 +\0j\10\0d\ 6\0d\ e\0\83\ 2\0j\11\0|\ 5\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34252 +\0j\10\0d\1f\0d\13\0\83\ 2\0j\11\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34253 +\0j\10\0d\1f\0d\16\0\83\ 2\0j\11\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34254 +\0j\10\0d\b\0d\e\0\83\ 2\0j\11\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0|
34255 +\0j\10\0d\b\0d\1e\0\83\ 2\0j\11\0|      \0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\v\0t
34256 +\0|
34257 +\0j\v\0d\v\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\f\0t
34258 +\0|
34259 +\0j\v\0d\ e\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\ f\0t
34260 +\0|
34261 +\0j\v\0d\13\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\10\0t
34262 +\0|
34263 +\0j\v\0d\16\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\12\0t
34264 +\0|
34265 +\0j\v\0d\e\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\0\0j\f\0|\13\0t
34266 +\0|
34267 +\0j\v\0d\1e\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1x[\0d\ 6\0d\1f\0g\ 2\0D]M\0}\11\0xD\0|
34268 +\0j\12\0|\11\0\83\ 1\0D]3\0}\r\0x*\0|
34269 +\0j\13\0|\r\0\83\ 1\0D]\19\0}\ e\0|\0\0j\ f\0|\ e\0d\ 6\0k\0\0\83\ 1\0\ 1q\89 Wqs     Wq]     WxD\0|
34270 +\0j\12\0d\b\0\83\ 1\0D]3\0}\r\0x*\0|
34271 +\0j\13\0|\r\0\83\ 1\0D]\19\0}\ e\0|\0\0j\ f\0|\ e\0d\ 6\0k\ 4\0\83\ 1\0\ 1qÔ Wq¾     Wd\0\0S(8\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@i\0\0\0\0\ 2\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0\ 1\0\0i\ 5\0\0\0i\ 6\0\0\0\ 1\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0t\ 6\0\0\0g1Facei\19\0\0\0i\1a\0\0\0t\ 6\0\0\0g2Facei
34272 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0t\ 6\0\0\0g1Nodei\ f\0\0\0i\10\0\0\0t\ 6\0\0\0g2Nodeiÿÿÿÿ(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0i\ 1\0\0\0(\ 1\0\0\0i\ 1\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0i\0\0\0\0(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0iÿÿÿÿ(\ 1\0\0\0i\ 1\0\0\0(\ 1\0\0\0i\ 1\0\0\0(\14\0\0\0\0\0\0RY\0\0\0Rc\0\0\0\ 1\0\0R\9b\ 1\0\0RB\0\0\0Rk\0\0\0R>\0\0\0Rj\0\0\0Rl\0\0\0R\ 1\ 2\0\0R\9a\0\0\0R+\0\0\0R\9d\0\0\0t\16\0\0\0normalizeFamIdsMEDFileR0\0\0\0RG\0\0\0R1\0\0\0\0\0\0t\15\0\0\0getFamiliesIdsOnGroup(\14\0\0\0R      \0\0\0R\83\0\0\0\ 1\0\0R\85\0\0\0\ 1\0\0\ 1\0\0R\ 6\ 3\0\0R\a\ 3\0\0R\b\ 3\0\0R    \ 3\0\0R\86\0\0\0t\ 2\0\0\0s1t\ 2\0\0\0s2R¶\ 1\0\0R\b\0\0\0t\ 2\0\0\0s3t\ 2\0\0\0s4R¥\0\0\0t\ 2\0\0\0s5t\ 2\0\0\0s6(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt$\0\0\0testNonRegBugNormalizeFamIdsMEDFile1§   \0\0\0\0\0\0\ 1       \ 1\e\ 1\13\ 1\f\ 1\10\ 1\r\ 1\18\0\r\ 1\18\0\r\ 1\18\0\r\ 1\18\0\r\ 1\18\0\r\ 1\18\0\r\ 1     \ 1\10\ 1\16\ 1\15\0\15\ 1\19\ 1\19\ 1
34273 +\ 1\19\ 1\19\ 1"\ 1"\ 1\1f\ 1\1f\ 1\16\ 1\16\ 1\13\ 1\ 4\ 1\ 4\ 2        \ 1\10\ 1\10\ 1\16\ 1\16\ 1\15\0\15\ 1\15\0\15\ 1\19\ 1\19\ 1\19\ 1\19\ 1
34274 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1"\ 1"\ 1"\ 1"\ 1\1f\ 1\1f\ 1\1f\ 1\1f\ 1\13\ 1\16\ 1\16\ 1\13\ 1\ 4\ 1\ 4\ 1\ 4\ 2        \ 1\10\ 1\10\ 1\16\ 1\16\ 1\16\ 1\15\0\15\ 1\15\0\15\ 1\15\0\15\ 1\19\ 1\19\ 1\19\ 1\19\ 1\19\ 1\19\ 1
34275 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1\19\ 1\19\ 1"\ 1"\ 1"\ 1"\ 1"\ 1"\ 1\1f\ 1\1f\ 1\1f\ 1\1f\ 1\1f\ 1\1f\ 1\13\ 1\16\ 1\16\ 1\13\ 1\ 4\ 1\ 4\ 1\ 4\ 1\16\ 1\16\ 1\13\ 1\ 4\ 1\ 4\ 1c\ 1\0\0\0\1c\0\0\0\ e\0\0\0C\0\0\0si\ 2\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0\\ e\0}\ 2\0}\ 3\0}\ 4\0}\ 5\0}\ 6\0}\a\0}\b\0}    \0}
34276 +\0}\v\0}\f\0}\r\0}\ e\0}\ f\0t\ 2\0j\ 3\0\83\0\0}\10\0|\10\0j\ 4\0|\ 2\0j\ 5\0\83\0\0\83\ 1\0\ 1|\10\0j\ 6\0d\ 2\0|\ 2\0\83\ 2\0\ 1|\10\0j\ 6\0d\ 3\0|\ 3\0\83\ 2\0\ 1|\10\0j\ 6\0d\ 4\0|\ 4\0\83\ 2\0\ 1|\10\0j\a\0d\ 2\0|\ 5\0\83\ 2\0\ 1|\10\0j\a\0d\ 3\0|\ 6\0\83\ 2\0\ 1|\10\0j\a\0d\ 4\0|\a\0\83\ 2\0\ 1|\10\0j\a\0d\ 5\0|\b\0\83\ 2\0\ 1t\b\0|\f\0\83\ 1\0}\11\0x,\0t        \0|\11\0\83\ 1\0D]\1e\0}\12\0|\10\0j
34277 +\0|\f\0|\12\0\19|\r\0|\12\0\19\83\ 2\0\ 1\0Wt\b\0|\ e\0\83\ 1\0}\13\0x,\0t        \0|\13\0\83\ 1\0D]\1e\0}\12\0|\10\0j\v\0|\ e\0|\12\0\19|\ f\0|\12\0\19\83\ 2\0\ 1q\1f\ 1W|\10\0j\f\0|\ 2\0j\r\0\83\0\0\83\ 1\0\ 1|\10\0j\ e\0|\ 2\0j\ f\0\83\0\0\83\ 1\0\ 1|\10\0j\10\0|\ 1\0d\ 6\0\83\ 2\0\ 1t\11\0j\ 3\0|\ 1\0\83\ 1\0}\14\0t\11\0j\ 3\0|\ 1\0\83\ 1\0}\15\0t\12\0|\ 1\0d\a\0\83\ 2\0}\16\0x"\0|\16\0D]\1a\0}\17\0|\15\0j\13\0|\17\0|\17\0d\b\0\17\83\ 2\0\ 1\ 1W|\15\0j\10\0|\ 1\0d\ 6\0\83\ 2\0\ 1~\15\0t\11\0j\ 3\0|\ 1\0\83\ 1\0}\18\0xw\0|\16\0D]o\0}\17\0xf\0|\14\0j\14\0|\17\0\83\ 1\0D]U\0}\19\0|\14\0j\15\0|\19\0|\17\0\83\ 2\0}\1a\0|\18\0j\15\0|\19\0|\17\0d\b\0\17\83\ 2\0}\e\0|\1a\0j\f\0|\17\0d\b\0\17\83\ 1\0\ 1|\0\0j\16\0|\1a\0j\17\0|\e\0\83\ 1\0\83\ 1\0\ 1q\b\ 2Wqò\ 1Wd\0\0S(     \0\0\0Ns\f\0\0\0Pyfile62.medi\0\0\0\0iÿÿÿÿiþÿÿÿi\ 1\0\0\0i\ 2\0\0\0t\ 2\0\0\0maRÔ\ 2\0\0(\18\0\0\0R\ 4\0\0\0\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0\0\0\0Ry\0\0\0Rn\0\0\0\0\0\0\0\0\0RB\0\0\0RC\0\0\0Ri\0\0\0R~\0\0\0R\v\0\0\0R'\0\0\0t\12\0\0\0GetMeshGroupsNamest\ f\0\0\0changeGroupNameR\9d\0\0\0RG\0\0\0R0\0\0\0R1\0\0\0(\1c\0\0\0R  \0\0\0R!\0\0\0R\85\0\0\0R\84\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\83\0\0\0\0\0\0\0\0\0\0\0\0R\8e\0\0\0R:\ 1\0\0t\r\0\0\0groupNamesIniRh\ 1\0\0\0\0\0\0\0\0t\ 4\0\0\0arr0R\ 2\ 3\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt)\0\0\0testNonRegressionMantis22212ChangeGrpName\17
34278 +\0\0sP\0\0\0\0\ 1\ 6\ 16\ 1\f\ 1\13\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\f\ 1\13\ 1\18\ 1\ 4\ 1\f\ 1\13\ 1\18\ 1\ 4\ 1\13\ 1\13\ 1\10\ 2\ f\ 1\ f\ 1\ f\ 1\r\ 1\14\ 1\ 4\ 1\10\ 1\ 3\ 2\ f\ 1\r\ 1\16\ 1\12\ 1\16\ 1\11\ 1\16\ 1\ 4\ 1\ 4\ 1c\ 1\0\0\0\e\0\0\0       \0\0\0C\0\0\0
34279 +\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0\83\0\0}\ 2\0|\ 2\0j\ 3\0\83\0\0}\ 3\0t\ 4\0j\ 5\0\83\0\0}\ 4\0|\ 4\0j\ 6\0|\ 3\0j\a\0\83\0\0\83\ 1\0\ 1|\ 4\0j\b\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j        \0|\ 3\0j
34280 +\0\83\0\0\83\ 1\0\ 1|\ 4\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\f\0\83\0\0}\ 5\0|\ 5\0j\r\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\ e\0d\ 2\0t\ f\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\10\0|\ 6\0j\11\0\83\0\0j\12\0\83\0\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|\ 5\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 5\0j\15\0\83\0\0\\ 2\0}\ 6\0}\a\0|\0\0j\10\0|\ 6\0j\16\0\83\0\0|\ 5\0j\17\0\83\0\0j\16\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0|\a\0d'\0d(\0f\ 2\0d)\0d*\0f\ 2\0d+\0d,\0f\ 2\0d-\0d.\0f\ 2\0g\ 4\0\83\ 2\0\ 1t\18\0j\ 5\0|\ 1\0\83\ 1\0}\b\0|\0\0j\10\0|\b\0j
34281 +\0\83\0\0d\f\0\83\ 2\0\ 1|\0\0j\10\0|\b\0j\19\0\83\0\0d\ 2\0d\r\0d\ e\0g\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\1a\0|\b\0t\f\0\83\ 2\0\83\ 1\0\ 1|\ 5\0j\ e\0t\ f\0d\ 2\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\10\0|\ 6\0j\11\0\83\0\0j\12\0\83\0\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|\b\0j\e\0d\r\0d\ 3\0d\ f\0\83\ 3\0\ 1|\b\0j\17\0\83\0\0}    \0|      \0d\ 3\09}  \0|\b\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\1c\0j\ 5\0|\ 1\0d\f\0\83\ 2\0}
34282 +\0|\0\0j\10\0|
34283 +\0j\1d\0\83\0\0d/\0d0\0g\ 2\0\83\ 2\0\ 1|\0\0j\10\0t\1e\0|
34284 +\0\83\ 1\0d\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\1a\0|
34285 +\0t\1f\0\83\ 2\0\83\ 1\0\ 1|
34286 +\0d\ e\0\19j\ e\0t\ f\0d\ 2\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|
34287 +\0j\ e\0t\ f\0d\ 2\0d\r\0d\ 2\0|\ 4\0\83\ 5\0}\ 6\0|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|
34288 +\0\0\83\0\0}\v\0|\v\0j!\0\83\0\0\ 1|\v\0j!\0\83\0\0}\f\0|\f\0j\ e\0d\ 2\0t\ f\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\13\0|\ 6\0j\11\0\83\0\0j\14\0d\ 3\0|\ 2\0j\11\0\83\0\0\14\83\ 1\0\83\ 1\0\ 1|\ 2\0j\e\0d\ f\0d\r\0d\ 3\0\83\ 3\0\ 1|\ 2\0j\11\0\83\0\0\ 4\1ed\ 3\09\ 2(|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|\ 2\0j\11\0\83\0\0\ 4\1ed\ 3\0:\ 2(t"\0d
34289 +\0d\b\0\83\ 2\0}\r\0d\ 2\0|\r\0(|\r\0j#\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 1\0\ 1x3\0|
34290 +\0D]+\0}\v\0|\v\0j\ e\0t\ f\0d\ 2\0|\ 4\0\83\ 3\0}\ 6\0|\r\0|\ 6\0j\11\0\83\0\07}\r\0\ 3W|\0\0j\13\0|\r\0j\14\0d\b\0|\ 2\0j\11\0\83\0\0\14\83\ 1\0\83\ 1\0\ 1t$\0t%\0\83\ 1\0}\ e\0|\ e\0j\e\0d\10\0d\11\0d\12\0\83\ 3\0\ 1|\ e\0j&\0|\ 2\0j\ 3\0\83\0\0\83\ 1\0\ 1t"\0d\13\0d\ 3\0\83\ 2\0}\ f\0|\ f\0j#\0d\14\0d\15\0g\ 2\0\83\ 1\0\ 1t'\0t(\0d\13\0\83\ 1\0\83\ 1\0|\ f\0d\0\0d\0\0\85\ 2\0d\ 2\0f\ 2\0<d\ 3\0|\ f\0d\0\0d\0\0\85\ 2\0d\ 2\0f\ 2\0\19\14|\ f\0d\0\0d\0\0\85\ 2\0d\r\0f\ 2\0<|\ e\0j  \0d\16\0\83\ 1\0\ 1|\ e\0j)\0|\ f\0\83\ 1\0\ 1t\f\0j\ 5\0\83\0\0}\10\0|\10\0j\r\0|\ e\0\83\ 1\0\ 1|\0\0j\10\0|\10\0j*\0\83\0\0d1\0\83\ 2\0\ 1|\0\0j\10\0|\10\0j\19\0\83\0\0d\11\0d\12\0d\10\0g\ 3\0\83\ 2\0\ 1|\10\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t$\0t%\0\83\ 1\0}\11\0|\11\0j\e\0d\17\0d\18\0d\19\0\83\ 3\0\ 1|\11\0j&\0|\ 2\0j\ 3\0\83\0\0\83\ 1\0\ 1t"\0d\1a\0d\ 3\0\83\ 2\0}\12\0|\ f\0j#\0d\e\0d\1c\0g\ 2\0\83\ 1\0\ 1t'\0t(\0d\1a\0\83\ 1\0\83\ 1\0|\12\0d\0\0d\0\0\85\ 2\0d\ 2\0f\ 2\0<|\12\0d\0\0d\0\0\85\ 2\0d\ 2\0f\ 2\0c\ 2\0\19d\11\07\ 3<d\b\0|\12\0d\0\0d\0\0\85\ 2\0d\ 2\0f\ 2\0\19\14|\12\0d\0\0d\0\0\85\ 2\0d\r\0f\ 2\0<|\11\0j     \0d\1d\0\83\ 1\0\ 1|\12\0j    \0|\11\0j
34291 +\0\83\0\0\83\ 1\0\ 1|\11\0j)\0|\12\0\83\ 1\0\ 1t\f\0j\ 5\0\83\0\0}\13\0t"\0d\r\0d\ 3\0d    \0d\v\0d
34292 +\0d\1e\0d\11\0d\1f\0g\b\0\83\ 1\0}\14\0|\14\0j        \0\0\83\ 1\0\ 1|\13\0j+\0|\11\0|\ 4\0d\ 2\0|\14\0\83\ 4\0\ 1|\13\0j,\0t%\0d\ 2\0|\ 4\0\83\ 3\0\ 1|\13\0j,\0t%\0d\ 2\0|\ 4\0\83\ 3\0\\ 2\0}\ 6\0}\a\0|\a\0j        \0|\14\0j
34293 +\0\83\0\0\83\ 1\0\ 1|\0\0j\13\0|\a\0j\14\0|\14\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\12\0\83\ 1\0\83\ 1\0\ 1|\13\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\f\0|\ 1\0d\1d\0\83\ 2\0}\15\0|\15\0j,\0t%\0d\ 2\0|\ 4\0\83\ 3\0\\ 2\0}\ 6\0}\a\0|\a\0j     \0|\14\0j
34294 +\0\83\0\0\83\ 1\0\ 1|\0\0j\13\0|\a\0j\14\0|\14\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\12\0\83\ 1\0\83\ 1\0\ 1t-\0t%\0\83\ 1\0}\16\0|\16\0j   \0d!\0\83\ 1\0\ 1|\16\0j\e\0d"\0d#\0d$\0\83\ 3\0\ 1|\16\0j&\0|\ 2\0j\ 3\0\83\0\0\83\ 1\0\ 1|\16\0j)\0|\ 2\0j\ 3\0\83\0\0j\a\0\83\0\0\83\ 1\0\ 1t.\0j\ 5\0\83\0\0}\17\0|\17\0j\r\0|\16\0\83\ 1\0\ 1|\17\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t/\0|\ 1\0\83\ 1\0}\18\0|\0\0j\10\0t\1e\0|\18\0\83\ 1\0d    \0\83\ 2\0\ 1g\0\0|\18\0D]\f\0}\v\0|\v\0^\ 2\0q#\b}\19\0|\0\0j\13\0t\1a\0|\19\0d\ 2\0\19t\1f\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0t\1a\0|\19\0d\r\0\19t\1f\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0t\1a\0|\19\0d\ 3\0\19t0\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0t\1a\0|\19\0d\b\0\19t\1f\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\f\0\19d\ 2\0\19j\17\0\83\0\0j1\0|\ 2\0j\11\0\83\0\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\f\0\19d2\0\19j\17\0\83\0\0j1\0d\ 3\0|\ 2\0j\11\0\83\0\0\14\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\1d\0\19d\ 2\0\19j\17\0\83\0\0j1\0|\12\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\16\0\19d\10\0\19j\17\0\83\0\0j1\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d!\0\19d"\0\19j\17\0\83\0\0j1\0|\ 2\0j\ 3\0\83\0\0j\a\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1t0\0|\ 1\0d!\0\83\ 2\0}\1a\0|\0\0j\13\0|\1a\0d"\0\19j\17\0\83\0\0j1\0|\ 2\0j\ 3\0\83\0\0j\a\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1|\0\0j2\0t3\0t\1f\0j\ 5\0|\ 1\0d!\0\83\ 4\0\ 1|\0\0j2\0t3\0t0\0j\ 5\0|\ 1\0d\16\0\83\ 4\0\ 1t.\0j\ 5\0|\ 1\0d!\0d#\0d$\0\83\ 4\0\ 1|\0\0j2\0t3\0t\f\0j\ 5\0|\ 1\0d!\0d#\0d$\0\83\ 6\0\ 1t\f\0j\ 5\0|\ 1\0d\16\0d\11\0d\12\0\83\ 4\0\ 1|\0\0j2\0t3\0t.\0j\ 5\0|\ 1\0d\16\0d\11\0d\12\0\83\ 6\0\ 1|\0\0j\10\0|\18\0j4\0\83\0\0d3\0\83\ 2\0\ 1|\0\0j\13\0|\18\0j5\0d4\0g\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\10\0|\18\0j4\0\83\0\0d5\0\83\ 2\0\ 1|\0\0j\13\0|\18\0j5\0d6\0g\ 1\0\83\ 1\0\f\83\ 1\0\ 1d\0\0S(7\0\0\0Ns\f\0\0\0Pyfile63.medi\0\0\0\0i\ 2\0\0\0s\ e\0\0\0power [MW/m^3]s\10\0\0\0density [g/cm^3]s\ f\0\0\0temperature [K]g\11ê-\81\99\97q=i\ 3\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\ 5\0\0\0\ 1\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0"@i
34295 +\0\0\0iÿÿÿÿi\f\0\0\0s\a\0\0\0aa [u1]s\v\0\0\0bbbvv [ppp]R\18\ 1\0\0g\0\0\0\0\0\03@i\14\0\0\0iõÿÿÿi\b\0\0\0s
34296 +\0\0\0aapfl [u1]s\ e\0\0\0bbbvvpfl [ppp]t\15\0\0\0VectorFieldOnNodesPfli\a\0\0\0i\v\0\0\0t\ 4\0\0\0npflt\18\0\0\0VectorFieldOnNodesDoubleg\0\0\0\0\0\0=@i\1e\0\0\0iëÿÿÿR\19\ 1\0\0t
34297 +\0\0\03DSurfMesh(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 6\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 5\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0(\ 3\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0@(\ 3\0\0\0i\ 1\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0\b@(\ 2\0\0\0s\a\0\0\0aa [u1]s\v\0\0\0bbbvv [ppp](\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 4\0\0\0s\f\0\0\03DSurfMesh_1s\f\0\0\03DSurfMesh_1s\f\0\0\03DSurfMesh_1s\f\0\0\03DSurfMesh_1(\ 2\0\0\0s\f\0\0\03DSurfMesh_1R\1c\ 3\0\0(\ 4\0\0\0R\1c\ 3\0\0R\1c\ 3\0\0R\1c\ 3\0\0R\1c\ 3\0\0(\ 2\0\0\0s\f\0\0\03DSurfMesh_1R\1c\ 3\0\0(6\0\0\0R\ 4\0\0\0R$\ 1\0\0t\11\0\0\0convertToIntFieldR¹\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0R\v\0\0\0t\12\0\0\0MEDFileIntField1TSR%\ 1\0\0R\97\ 1\0\0R\13\ 1\0\0R+\0\0\0R)\ 1\0\0t\13\0\0\0getInfoOnComponentsR0\0\0\0R1\0\0\0R(\ 1\0\0t\13\0\0\0getHiddenCppPointerR+\ 1\0\0t\16\0\0\0MEDFileAnyTypeField1TSRº\0\0\0Rt\0\0\0\0\0\0t\1a\0\0\0MEDFileAnyTypeFieldMultiTSR÷\0\0\0Ry\0\0\0t\16\0\0\0MEDFileIntFieldMultiTSt\b\0\0\0__iter__t\ 4\0\0\0nextRk\0\0\0\ 1\0\0t\13\0\0\0MEDCouplingFieldIntR\1c\ 1\0\0\0\0\0Rm\0\0\0Rn\0\0\0R{\ 1\0\0t\a\0\0\0getInfoR|\ 1\0\0R~\ 1\0\0Rw\ 1\0\0\0\0\0R[\ 1\0\0\0\0\0R\7f\ 1\0\0R)\0\0\0R*\0\0\0RU\ 1\0\0t\ f\0\0\0changeMeshNames(\e\0\0\0R     \0\0\0R9\ 1\0\0\0\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\ 2\0\0\ 2\0\0RC\ 1\0\0R\80\0\0\0t\ 4\0\0\0ffs1Rv\ 2\0\0t\ 6\0\0\0ff2bist\ 2\0\0\0bct\ 3\0\0\0nf1t\ 4\0\0\0narrt\ 4\0\0\0nff1t\ 3\0\0\0nf2t\ 5\0\0\0narr2t\ 4\0\0\0nff2R\1a\ 3\0\0t\a\0\0\0nff2bist\ 3\0\0\0nf3t\ 4\0\0\0nff3Rl\ 1\0\0\ 1\0\0t\b\0\0\0nf3_read(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1c\0\0\0testInt32InMEDFileFieldStar1C
34298 +\0\0\0\0\0\0\ 1\ 6\ 1\f\ 1\f\ 1\f\ 1\f\ 1\13\ 1\10\ 1\13\ 1\10\ 1    \ 1\r\ 1\15\ 1%\ 1\1c\ 1\10\ 1\12\ 1"\ 14\ 1\ f\ 1\16\ 1\1f\ 1\16\ 1\15\ 1%\ 1\1c\ 1\13\ 1\f\0
34299 +\ 1\10\ 1\12\ 1\1c\ 1\16\ 1\16\ 1\19\ 1\1c\ 1\e\ 1\1c\ 1\f\0
34300 +\0\f\ 1\15\ 1&\ 1\13\0\11\ 1\1c\0\11\ 1\ f\0\a\0\16\ 1\r\ 1\15\ 1\10\ 1\ 4\ 1 \ 1\f\ 1\13\ 1\13\ 1\ f\0\13\0"\0*\ 1\r\0\r\ 1\f\ 1\r\ 1\16\ 1\1f\ 1\10\ 2\f\ 1\13\ 1\13\ 1\ f\0\13\0"\0\1c\0*\ 1\r\0\13\0\r\ 1\f\ 1$\0\r\ 1\16\ 1\13\ 1\e\0\13\ 1\16\ 1\16\ 1\10\ 1\ f\ 1\e\0\13\ 1\16\ 1\16\ 2\f\ 1\r\ 1\13\ 1\13\ 1\19\ 1\f\ 1\r\ 1\10\ 1\f\ 1\16\ 1\19\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 2*\ 1.\ 1$\ 1$\ 13\ 2\ f\ 1/\ 1\19\ 1\19\ 1\16\ 1\1f\ 1\16\ 1\1f\ 2\16\ 1\19\ 1\16\ 1\1a\ 1c\ 1\0\0\0   \0\0\0\a\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0t\0\0t\ 1\0\83\ 1\0}\ 2\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0d\ 4\0\83\ 3\0\ 1|\ 2\0j\ 3\0d\ 5\0\83\ 1\0\ 1t\ 4\0d\ 6\0\83\ 1\0}\ 3\0|\ 3\0j\ 5\0\83\0\0\ 1t\ 6\0\83\0\0}\ 4\0|\ 4\0j\a\0d\ 3\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\b\0d\a\0\83\ 1\0\ 1\0\83\0\0}\ 5\0|\ 5\0j
34301 +\0|\ 4\0\83\ 1\0\ 1|\ 5\0j\v\0|\ 1\0d\b\0\83\ 2\0\ 1|\ 2\0j
34302 +\0|\ 4\0\83\ 1\0\ 1t\ 4\0d\ 6\0d\b\0\83\ 2\0}\ 6\0|\ 6\0j\f\0\0d
34303 +\0g\ 2\0\83\ 1\0\ 1t\r\0t\ e\0d\ 6\0\83\ 1\0\83\ 1\0|\ 6\0d\0\0d\0\0\85\ 2\0d\ 3\0f\ 2\0<d\b\0|\ 6\0d\0\0d\0\0\85\ 2\0d\ 3\0f\ 2\0\19\14|\ 6\0d\0\0d\0\0\85\ 2\0d\v\0f\ 2\0<|\ 2\0j\ f\0|\ 6\0\83\ 1\0\ 1|\ 2\0j\b\0d\f\0\83\ 1\0\ 1t\10\0j\11\0\83\0\0}\a\0|\a\0j\12\0|\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\a\0j\14\0\83\0\0d\ 5\0\83\ 2\0\ 1|\a\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1|\ 2\0j\ 2\0d\r\0d\v\0d\ 4\0\83\ 3\0\ 1t\10\0j\11\0\83\0\0}\a\0|\a\0j\12\0|\ 2\0\83\ 1\0\ 1|\a\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1|\ 2\0j\ 2\0d\ e\0d\b\0d\ 4\0\83\ 3\0\ 1t\10\0j\11\0\83\0\0}\a\0|\a\0j\12\0|\ 2\0\83\ 1\0\ 1|\a\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 1\0\83\ 1\0j\16\0\83\0\0d\12\0d\13\0d\14\0g\ 3\0t\17\0f\ 2\0\83\ 2\0\ 1t\18\0|\ 1\0d\f\0\83\ 2\0}\b\0|\b\0j\b\0d\ f\0\83\ 1\0\ 1|\b\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 1\0\83\ 1\0j\16\0\83\0\0d\15\0d\16\0d\17\0g\ 3\0t\17\0f\ 2\0\83\ 2\0\ 1|\ 2\0j\ 2\0d\10\0d\11\0d\ 4\0\83\ 3\0\ 1t\10\0j\11\0\83\0\0}\a\0|\a\0j\12\0|\ 2\0\83\ 1\0\ 1|\a\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 1\0\83\ 1\0j\16\0\83\0\0d\18\0d\19\0d\1a\0g\ 3\0t\19\0f\ 2\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 1\0\83\ 1\0j\1a\0d\e\0g\ 1\0\83\ 1\0j\16\0\83\0\0d\1c\0g\ 1\0t\17\0f\ 2\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 1\0\83\ 1\0j\e\0d\1d\0g\ 1\0\83\ 1\0j\16\0\83\0\0d\1e\0d\1f\0g\ 2\0t\19\0f\ 2\0\83\ 2\0\ 1|\ 2\0j\b\0d\ f\0\83\ 1\0\ 1|\ 2\0j\ 2\0d\10\0d\11\0d\ 4\0\83\ 3\0\ 1t\10\0j\11\0\83\0\0}\a\0|\a\0j\12\0|\ 2\0\83\ 1\0\ 1|\a\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 1\0\83\ 1\0j\16\0\83\0\0\0d!\0d"\0d#\0g\ 4\0t\17\0f\ 2\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 1\0\83\ 1\0d\v\0\19j\14\0\83\0\0d\ 5\0\83\ 2\0\ 1d\0\0S($\0\0\0Ns\f\0\0\0Pyfile64.medgü©ñÒMbP?i\0\0\0\0iÿÿÿÿR®\ 2\0\0i\f\0\0\0\ 2\0\0i\ 2\0\0\0s\a\0\0\0aa [u1]s\v\0\0\0bbbvv [ppp]i\ 1\0\0\0\ 1\0\0gj¼t\93\18\ 4ð?g5^ºI\f\ 2\0@RÀ\ 1\0\0g5^ºI\f\ 2\b@i\ 3\0\0\0(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 2\0\0\0iÿÿÿÿ(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 2\0\0\0iÿÿÿÿ(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 2\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 2\0\0\0iÿÿÿÿ(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 2\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 3\0\0\0iÿÿÿÿ(\1c\0\0\0Rw\ 1\0\0R\1c\ 1\0\0\0\0\0\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0\0\0\0RB\0\0\0\0\0\0\0\0\0R\v\0\0\0\ 1\0\0Rm\0\0\0Rn\0\0\0R{\ 1\0\0\0\0\0R(\0\0\0R%\ 1\0\0R+\0\0\0t        \0\0\0getDtUnitR[\ 1\0\0t\13\0\0\0getCommonIterationsRN\0\0\0\0\0\0R.\0\0\0t#\0\0\0partOfThisLyingOnSpecifiedTimeStepst&\0\0\0partOfThisNotLyingOnSpecifiedTimeSteps(    \0\0\0R    \0\0\0R9\ 1\0\0\0\0\0R\80\0\0\0R\83\0\0\0R\86\0\0\0\ 1\0\0R;\ 1\0\0t\ 4\0\0\0ff1s(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\12\0\0\0testMEDFileFields1µ
34304 +\0\0sf\0\0\0\0\ 1\ 6\ 1\f\ 1\13\0\r\ 1\f\0
34305 +\0      \0\10\0\r\ 1   \0\r\0\10\ 1\r\ 1\ f\0\13\0"\0*\ 1\r\ 1\r\ 1\f\ 1\r\ 1\16\ 1\10\ 1\13\0\f\0\r\0\10\ 1\13\0\f\0\r\0\10\ 2+\ 1\ f\ 1\r\ 1\10\ 1+\ 1\13\0\f\0\r\0\10\ 1+\ 11\ 14\ 1\r\0\13\0\f\0\r\0\10\ 1.\ 1 \ 1c\ 1\0\0\0\1a\0\0\0
34306 +\0\0\0C\0\0\0sN\a\0\0d\ 1\0}\ 1\0t\0\0\83\0\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0j\ 1\0\83\0\0\ 1t\ 3\0d\ 2\0d\ 3\0\83\ 2\0}\ 2\0|\ 2\0j\ 4\0\83\0\0\ 1|\ 2\0j\ 5\0t\ 6\0d\ 4\0d\ 5\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 2\0j\a\0t\b\0d(\0d)\0d*\0g\ 3\0\83\ 1\0\83\ 1\0\ 1g\0\0\0d\b\0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j
34307 +\0\83\0\0^\ 2\0q{\0}\ 4\0x-\0t\v\0|\ 4\0\83\ 1\0D]\1f\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j\f\0|\ 3\0d\ 4\0g\ 2\0\83\ 1\0\ 1\0Wt\ 3\0j\r\0|\ 4\0\83\ 1\0}\ 4\0t\ 3\0d       \0d\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 4\0\83\0\0\ 1|\ 6\0j\ 5\0t\ e\0d\ 4\0d\ 5\0d\ 3\0d
34308 +\0g\ 4\0\83\ 2\0\ 1|\ 6\0j\a\0t\b\0d+\0d,\0d-\0d.\0g\ 4\0\83\ 1\0\83\ 1\0\ 1g\0\0t    \0d\v\0\83\ 1\0D]\12\0}\ 3\0|\ 6\0j
34309 +\0\83\0\0^\ 2\0q3\ 1}\a\0x1\0t\v\0|\a\0\83\ 1\0D]#\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j\f\0d\v\0|\ 3\0\17d\ 4\0g\ 2\0\83\ 1\0\ 1qX\ 1Wt\ 3\0j\r\0|\a\0\83\ 1\0}\a\0t\ 3\0j\r\0|\ 4\0|\a\0\83\ 2\0}\b\0|\b\0j\ f\0d\f\0\83\ 1\0\ 1|\b\0j\10\0\83\0\0j\11\0d\r\0d\ e\0g\ 2\0\83\ 1\0\ 1t\ 2\0\83\0\0}        \0t\ 2\0\83\0\0}
34310 +\0\ 1t  \0d\ f\0\83\ 1\0D]\98\ 1}\ 3\0d\10\0d\11\0g\ 2\0}\v\0d\12\0}\f\0t\b\0d\13\0\83\ 1\0}\r\0|\r\0j\12\0|\ 3\0d\ f\0\14\83\ 1\0\ 1|\r\0j\13\0d\ 3\0\83\ 1\0\ 1|\r\0j\11\0|\v\0\83\ 1\0\ 1t\14\0t\15\0\83\ 1\0}\ e\0|\ e\0j\ f\0|\f\0\83\ 1\0\ 1|\ e\0j\16\0|\r\0\83\ 1\0\ 1|\ e\0j\17\0|\b\0\83\ 1\0\ 1|\ e\0j\18\0t\19\0|\ 3\0d\ 5\0\17\83\ 1\0d\14\0\17|\ 3\0d\ 5\0\17|\ 3\0\vd\ 5\0\18\83\ 3\0\ 1|   \0j\1a\0|\ e\0\83\ 1\0\ 1t\0\0\83\0\0}\ f\0|\ f\0j\e\0|\ e\0\83\ 1\0\ 1|
34311 +\0j\1c\0|\ f\0\83\ 1\0\ 1|\0\0j\1d\0|
34312 +\0j\1e\0\83\0\0|\f\0\83\ 2\0\ 1|\0\0j\1d\0|  \0j\1f\0\83\0\0d/\0\83\ 2\0\ 1|\0\0j\1d\0|
34313 +\0j\1f\0\83\0\0d0\0\83\ 2\0\ 1|\ 3\0d\ 5\0k\ 4\0\ 1|\r\0j\11\0d\10\0d\15\0g\ 2\0\83\ 1\0\ 1|\0\0\0t!\0|        \0j\1a\0|\ e\0\83\ 3\0\ 1|\0\0\0t!\0|\ f\0j"\0d\10\0g\ 1\0\83\ 3\0\ 1|\ f\0j"\0d\10\0d\15\0g\ 2\0\83\ 1\0\ 1|\0\0\0t!\0|
34314 +\0j\1c\0|\ f\0\83\ 3\0\ 1\ 1\ 1W|    \0j
34315 +\0\83\0\0}\10\0|       \0j
34316 +\0\83\0\0}\11\0|       \0j
34317 +\0\83\0\0}\12\0|       \0j#\0\83\0\0}\13\0|\0\0j$\0t%\0|    \0\83\ 1\0d\ f\0k\ 2\0\ 4t%\0|
34318 +\0\83\ 1\0d\ f\0k\ 2\0\ 4t%\0|\10\0\83\ 1\0d\ f\0k\ 2\0\ 4t%\0|\11\0\83\ 1\0d\ f\0k\ 2\0\ 4t%\0|\12\0\83\ 1\0d\ f\0k\ 2\0\ 4t%\0|\13\0\83\ 1\0d\ f\0k\ 2\0\83\ 1\0\ 1|\10\0d\0\0d\0\0d\ 3\0\85\ 3\0=|\0\0j$\0t%\0|\10\0\83\ 1\0d\v\0k\ 2\0oj\ 4|\10\0j&\0\83\0\0d1\0d2\0d3\0d4\0d5\0g\ 5\0k\ 2\0\83\ 1\0\ 1|\11\0d\1d\0d6\0d\1e\0g\ 3\0=|\0\0j$\0t%\0|\11\0\83\ 1\0d\1f\0k\ 2\0\ 4|\11\0j&\0\83\0\0d7\0d8\0d9\0d:\0d;\0d<\0d=\0g\a\0k\ 2\0\83\ 1\0\ 1|\12\0d\1d\0d>\0d\1a\0g\ 3\0\19}\14\0|\0\0j$\0t'\0|\14\0t\ 2\0\83\ 2\0\83\ 1\0\ 1|\0\0j$\0t%\0|\14\0\83\ 1\0d
34319 +\0k\ 2\0o\17\ 5|\14\0j&\0\83\0\0d?\0d@\0dA\0g\ 3\0k\ 2\0\83\ 1\0\ 1|\12\0d\0\0d\0\0\0\85\ 3\0\19}\15\0|\0\0j$\0t'\0|\15\0t\ 2\0\83\ 2\0\83\ 1\0\ 1|\0\0j$\0t%\0|\15\0\83\ 1\0d\b\0k\ 2\0ow\ 5|\15\0j&\0\83\0\0dB\0dC\0dD\0dE\0g\ 4\0k\ 2\0\83\ 1\0\ 1t(\0\83\0\0}\16\0|\16\0j)\0|    \0\83\ 1\0\ 1|\10\0j\ f\0d%\0\83\ 1\0\ 1|\16\0j)\0|\10\0\83\ 1\0\ 1|\11\0j\ f\0d&\0\83\ 1\0\ 1|\16\0j)\0|\11\0\83\ 1\0\ 1|\12\0j\ f\0d'\0\83\ 1\0\ 1|\16\0j)\0|\12\0\83\ 1\0\ 1|\0\0j$\0t%\0|\16\0\83\ 1\0d\b\0k\ 2\0o\ 6\ 6|\16\0j*\0\83\0\0dF\0k\ 2\0\83\ 1\0\ 1|\16\0j+\0|\ 1\0d\ 3\0\83\ 2\0\ 1t(\0|\ 1\0\83\ 1\0}\16\0|\0\0j\1d\0|\16\0j,\0\83\0\0dG\0dH\0dI\0g\ 3\0t-\0f\ 2\0\83\ 2\0\ 1|\16\0j.\0|\16\0j,\0\83\0\0d\ 4\0\19\83\ 1\0}\17\0|\0\0j$\0|\17\0j*\0\83\0\0dJ\0k\ 2\0o\9a\ 6|\17\0j,\0\83\0\0dK\0dL\0dM\0g\ 3\0t/\0f\ 2\0k\ 2\0\83\ 1\0\ 1|\17\0d%\0d
34320 +\0g\ 2\0=|\0\0j$\0|\17\0j*\0\83\0\0dN\0k\ 2\0\ 6|\17\0j,\0\83\0\0dO\0dP\0dQ\0g\ 3\0t/\0f\ 2\0k\ 2\0\83\ 1\0\ 1|\16\0d\ 4\0d'\0g\ 2\0\19}\18\0|\0\0j$\0t'\0|\18\0t(\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1d\0|\18\0j*\0\83\0\0dR\0\83\ 2\0\ 1t0\0\83\0\0}\19\0|\19\0j1\0d\ 4\0|\b\0\83\ 2\0\ 1|\19\0j+\0|\ 1\0d\ 4\0\83\ 2\0\ 1d\0\0S(S\0\0\0Ns\f\0\0\0Pyfile65.medt\ 3\0\0\0trii\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0t\ 4\0\0\0quadi\ 3\0\0\0i\ 5\0\0\0\ 2\0\0s\ 6\0\0\0XX [m]s\b\0\0\0YYY [km]i
34321 +\0\0\0s\a\0\0\0aa [bb]s       \0\0\0ccc [ddd]t\b\0\0\01stFieldi\12\0\0\0g\9a\99\99\99\99\99¹?s\b\0\0\0eee [dd]iþÿÿÿiüÿÿÿi\ 6\0\0\0iúÿÿÿi\b\0\0\0iøÿÿÿiöÿÿÿg\9a\99\99\99\99\99ñ?i       \0\0\0i\a\0\0\0iýÿÿÿiûÿÿÿiùÿÿÿi÷ÿÿÿiÿÿÿÿt\b\0\0\02ndFieldt\b\0\0\03rdFieldt\b\0\0\04thField(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0s\a\0\0\0aa [bb]s     \0\0\0ccc [ddd](\ 2\0\0\0s\a\0\0\0aa [bb]s  \0\0\0ccc [ddd](\ 2\0\0\0i\ 2\0\0\0iþÿÿÿ(\ 2\0\0\0i\ 4\0\0\0iüÿÿÿ(\ 2\0\0\0i\ 6\0\0\0iúÿÿÿ(\ 2\0\0\0i\b\0\0\0iøÿÿÿ(\ 2\0\0\0i
34322 +\0\0\0iöÿÿÿ(\ 2\0\0\0i\ 6\0\0\0iúÿÿÿ(\ 2\0\0\0i\ 2\0\0\0iþÿÿÿ(\ 2\0\0\0i\ 3\0\0\0iýÿÿÿ(\ 2\0\0\0i\ 4\0\0\0iüÿÿÿ(\ 2\0\0\0i\ 5\0\0\0iûÿÿÿ(\ 2\0\0\0i\a\0\0\0iùÿÿÿ(\ 2\0\0\0i\b\0\0\0iøÿÿÿ(\ 2\0\0\0i        \0\0\0i÷ÿÿÿ(\ 2\0\0\0i\ 6\0\0\0iúÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 2\0\0\0i\ 6\0\0\0iúÿÿÿ(\ 2\0\0\0i     \0\0\0i÷ÿÿÿ(\ 2\0\0\0i
34323 +\0\0\0iöÿÿÿ(\ 2\0\0\0i\a\0\0\0iùÿÿÿ(\ 2\0\0\0i\ 4\0\0\0iüÿÿÿ(\ 2\0\0\0i\ 1\0\0\0iÿÿÿÿ(\ 4\0\0\0R?\ 3\0\0R@\ 3\0\0RA\ 3\0\0RB\ 3\0\0(\ 2\0\0\0i\ 2\0\0\0iþÿÿÿ(\ 2\0\0\0i\ 4\0\0\0iüÿÿÿ(\ 2\0\0\0i\b\0\0\0iøÿÿÿ(\ 4\0\0\0R?\ 3\0\0R@\ 3\0\0RA\ 3\0\0RB\ 3\0\0(\ 2\0\0\0i\ 2\0\0\0iþÿÿÿ(\ 2\0\0\0i\ 4\0\0\0iüÿÿÿ(\ 2\0\0\0i\b\0\0\0iøÿÿÿ(\ 2\0\0\0R?\ 3\0\0RA\ 3\0\0(\ 2\0\0\0i\ 2\0\0\0iþÿÿÿ(\ 2\0\0\0i\ 4\0\0\0iüÿÿÿ(\ 2\0\0\0i\b\0\0\0iøÿÿÿ(\ 2\0\0\0R?\ 3\0\0RB\ 3\0\0(2\0\0\0\0\0\0t\a\0\0\0__str__Rô\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0R[\ 2\0\0R`\0\0\0RB\0\0\0\0\0\0\ 1\0\0Ry\ 1\0\0Rz\ 1\0\0Rw\ 1\0\0R\13\ 1\0\0R{\ 1\0\0\0\0\0\0\0\0t\ 5\0\0\0floatRY\ 1\0\0R%\ 1\0\0t\10\0\0\0pushBackTimeStepR+\0\0\0RC\0\0\0R'\ 3\0\0R)\0\0\0R*\0\0\0t\a\0\0\0setInfot
34324 +\0\0\0shallowCpyR0\0\0\0Ry\0\0\0R\e\ 1\0\0Rt\0\0\0R[\ 1\0\0R\\ 1\0\0Rb\ 1\0\0R\v\0\0\0R8\ 3\0\0R.\0\0\0R9\ 3\0\0RN\0\0\0R>\0\0\0Rj\0\0\0(\1a\0\0\0R      \0\0\0R9\ 1\0\0R=\ 3\0\0\0\0\0t\ 4\0\0\0trisRü\0\0\0R>\ 3\0\0t\ 5\0\0\0quadsR\83\0\0\0t\a\0\0\0fmts0_0t\a\0\0\0fmts0_1t\ 6\0\0\0infos1t\ 5\0\0\0name1Re\ 1\0\0R\b\0\0\0\0\0\0t\a\0\0\0fmts0_2t\a\0\0\0fmts0_3t\a\0\0\0fmts0_4t\a\0\0\0fmts0_5t\a\0\0\0fmts0_6t\a\0\0\0fmts0_7t\ 3\0\0\0fs0t\ 3\0\0\0fs1t\ 3\0\0\0fs2R\86\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\12\0\0\0testMEDFileFields2Õ
34325 +\0\0\0\0\0\0\ 1\ 6\ 2\r\ 1\r\ 2\ f\ 1
34326 +\0\19\ 1\1c\ 1%\ 1\19\0\17\ 1\ f\ 1\ f\ 1
34327 +\0\1c\ 1\1f\ 1%\ 1\19\0\e\ 1\ f\ 1\12\ 1\r\0\19\ 2    \ 1       \ 2\13\ 1\f\0\ 6\ 1\f\0\11\0\r\0\r\ 1\f\0\r\0\r\0\r\ 1*\ 1\r\ 1     \0\r\0\r\ 1\16\ 1\16\ 1\16\ 1\f\ 2\13\ 1\16\ 1\19\ 1\13\ 1\16\ 1\ 3\ 2\ 4\ 1\f\ 1\f\ 1\f\ 1\f\ 1s\ 1\10\ 1:\ 1\10\ 1@\ 1\13\ 1\16\ 14\ 1\13\ 1\16\ 17\ 2       \ 1\r\ 1\r\0\r\ 1\r\0\r\ 1\r\0\r\ 1+\ 1\10\ 1\f\ 1%\ 1\19\ 1:\ 1\r\ 1:\ 1\10\ 1\16\ 1\16\ 2   \0\10\0\10\ 1c\ 1\0\0\0\18\0\0\0  \0\0\0C\0\0\0\ 5\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0\83\ 2\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1|\ 2\0j\ 2\0t\ 3\0d\ 4\0d\ 5\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 5\0d!\0d"\0d#\0g\ 3\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\b\0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\a\0\83\0\0^\ 2\0qa\0}\ 4\0x-\0t\b\0|\ 4\0\83\ 1\0D]\1f\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0|\ 3\0d\ 4\0g\ 2\0\83\ 1\0\ 1q\86\0Wt\0\0j
34328 +\0|\ 4\0\83\ 1\0}\ 4\0t\0\0\0d\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 1\0\83\0\0\ 1|\ 6\0j\ 2\0t\v\0d\ 4\0d\ 5\0d\ 3\0d
34329 +\0g\ 4\0\83\ 2\0\ 1|\ 6\0j\ 4\0t\ 5\0d$\0d%\0d&\0d'\0g\ 4\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\v\0\83\ 1\0D]\12\0}\ 3\0|\ 6\0j\a\0\83\0\0^\ 2\0q\19\ 1}\a\0x1\0t\b\0|\a\0\83\ 1\0D]#\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0d\v\0|\ 3\0\17d\ 4\0g\ 2\0\83\ 1\0\ 1q>\ 1Wt\0\0j
34330 +\0|\a\0\83\ 1\0}\a\0t\0\0j
34331 +\0|\ 4\0|\a\0\83\ 2\0}\b\0|\b\0j\f\0d\f\0\83\ 1\0\ 1|\b\0j\r\0\83\0\0j\ e\0d\r\0d\ e\0g\ 2\0\83\ 1\0\ 1t\ f\0\83\0\0}     \0|      \0j\10\0d\ 4\0|\b\0\83\ 2\0\ 1\0j\11\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\12\0d\ 4\0d\ 5\0d\ 3\0d
34332 +\0d\b\0d\v\0d\ f\0g\a\0\83\ 1\0}
34333 +\0|
34334 +\0j\f\0d\10\0\83\ 1\0\ 1t\12\0d\ 4\0d\ 5\0d\ 3\0d
34335 +\0d\b\0d\v\0d\ f\0d\11\0g\b\0\83\ 1\0}\v\0|\v\0j\f\0d\12\0\83\ 1\0\ 1t\13\0\83\0\0}\f\0t\13\0\83\0\0}\r\0x(\ 1t\ 6\0d\13\0\83\ 1\0D]\1a\ 1}\ 3\0d\14\0d\15\0g\ 2\0}\ e\0d\16\0}\ f\0t\ 5\0d\17\0\83\ 1\0}\10\0|\10\0j\14\0|\ 3\0d\13\0\14\83\ 1\0\ 1|\10\0j\15\0d\ 3\0\83\ 1\0\ 1|\10\0j\ e\0|\ e\0\83\ 1\0\ 1t\16\0t\17\0\83\ 1\0}\11\0|\11\0j\f\0|\ f\0\83\ 1\0\ 1|\11\0j\18\0|\10\0\83\ 1\0\ 1|\11\0j\19\0|\b\0\83\ 1\0\ 1|\11\0j\1a\0t\e\0|\ 3\0d\ 5\0\17\83\ 1\0d\18\0\17|\ 3\0d\ 5\0\17|\ 3\0\vd\ 5\0\18\83\ 3\0\ 1|\f\0j\1c\0|\11\0|       \0d\ 4\0|
34336 +\0\83\ 4\0\ 1t\1d\0\83\0\0}\12\0|\12\0j\1e\0|\11\0|       \0d\ 4\0|
34337 +\0\83\ 4\0\ 1|\r\0j\1f\0|\12\0\83\ 1\0\ 1|\0\0\0|\f\0j!\0\83\0\0d(\0\83\ 2\0\ 1|\0\0\0|\r\0j!\0\83\0\0d)\0\83\ 2\0\ 1qS\ 2W|\0\0\0|\f\0j"\0\83\0\0d\13\0d*\0\14\83\ 2\0\ 1|\0\0\0|\r\0j"\0\83\0\0d+\0\83\ 2\0\ 1|\f\0j#\0\83\0\0\ 1|\0\0\0|\f\0j"\0\83\0\0d,\0\83\ 2\0\ 1|\0\0j$\0|\r\0j%\0d\19\0\83\ 1\0j&\0|\f\0j%\0d\19\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\f\0j\a\0\83\0\0}\13\0|\f\0j\a\0\83\0\0}\14\0|\f\0j\a\0\83\0\0}\15\0t'\0\83\0\0}\16\0|\16\0j(\0|\f\0\83\ 1\0\ 1|\13\0j\f\0d\1a\0\83\ 1\0\ 1|\16\0j(\0|\13\0\83\ 1\0\ 1|\14\0j\f\0d\e\0\83\ 1\0\ 1|\16\0j(\0|\14\0\83\ 1\0\ 1|\15\0j\f\0d\1c\0\83\ 1\0\ 1|\16\0j(\0|\15\0\83\ 1\0\ 1|\0\0\0|\16\0j"\0\83\0\0d-\0\83\ 2\0\ 1t\13\0\83\0\0}\17\0\0t\ 6\0d\1d\0\83\ 1\0D]Ø\0}\ 3\0d\14\0d\15\0g\ 2\0}\ e\0d\16\0}\ f\0t\ 5\0d\1e\0\83\ 1\0}\10\0|\10\0j\14\0|\ 3\0d\13\0\14\83\ 1\0\ 1|\10\0j\15\0d\ 3\0\83\ 1\0\ 1|\10\0j\ e\0|\ e\0\83\ 1\0\ 1t\16\0t\17\0\83\ 1\0}\11\0|\11\0j\f\0|\ f\0\83\ 1\0\ 1|\11\0j\18\0|\10\0\83\ 1\0\ 1|\11\0j\19\0|\b\0\83\ 1\0\ 1|\11\0j\1a\0t\e\0|\ 3\0d\ 5\0\17\83\ 1\0d\18\0\17|\ 3\0d\ 5\0\17|\ 3\0\vd\ 5\0\18\83\ 3\0\ 1t\1d\0\83\0\0}\12\0|\12\0j\1e\0|\11\0|  \0d\ 4\0|\v\0\83\ 4\0\ 1|\17\0j\1f\0|\12\0\83\ 1\0\ 1q\9d\ 4W|\17\0j\f\0d\1f\0\83\ 1\0\ 1|\16\0j(\0|\17\0\83\ 1\0\ 1|\0\0\0|\16\0j"\0\83\0\0d.\0\83\ 2\0\ 1|\16\0j)\0\83\0\0\ 1|\16\0j\11\0|\ 1\0d\ 4\0\83\ 2\0\ 1d\0\0S(/\0\0\0Ns\f\0\0\0Pyfile66.medR=\ 3\0\0i\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0R>\ 3\0\0i\ 3\0\0\0i\ 5\0\0\0\ 2\0\0s\ 6\0\0\0XX [m]s\b\0\0\0YYY [km]i\ 6\0\0\0R\83\ 1\0\0i\b\0\0\0RE\ 2\0\0i
34338 +\0\0\0s\a\0\0\0aa [bb]s       \0\0\0ccc [ddd]R?\ 3\0\0i\ e\0\0\0g\9a\99\99\99\99\99¹?t\ e\0\0\0pfl_NORM_QUAD4R@\ 3\0\0RA\ 3\0\0RB\ 3\0\0i\a\0\0\0i\10\0\0\0t\b\0\0\05thFieldt\ f\0\0\0pfl2_NORM_QUAD4(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0s\a\0\0\0aa [bb]s \0\0\0ccc [ddd](\ 2\0\0\0s\a\0\0\0aa [bb]s  \0\0\0ccc [ddd](\ 1\0\0\0RX\ 3\0\0(\ 1\0\0\0RX\ 3\0\0(\ 1\0\0\0RX\ 3\0\0(\ 1\0\0\0RX\ 3\0\0(\ 2\0\0\0RX\ 3\0\0RZ\ 3\0\0(*\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0R[\ 2\0\0R`\0\0\0RB\0\0\0\0\0\0\ 1\0\0R>\0\0\0Rj\0\0\0R\v\0\0\0Rk\0\0\0\0\0\0Ry\ 1\0\0Rz\ 1\0\0Rw\ 1\0\0R\13\ 1\0\0R{\ 1\0\0\0\0\0\0\0\0RD\ 3\0\0R\89\ 1\0\0\0\0\0R|\ 1\0\0RE\ 3\0\0R+\0\0\0R'\ 3\0\0R]\ 2\0\0t\f\0\0\0zipPflsNamesR0\0\0\0R=\ 2\0\0R1\0\0\0R[\ 1\0\0R\\ 1\0\0t\13\0\0\0checkGlobsCoherency(\18\0\0\0\0\0\0R9\ 1\0\0R=\ 3\0\0\0\0\0RH\ 3\0\0\0\0\0R>\ 3\0\0RI\ 3\0\0R\83\0\0\0R\86\0\0\0R\83\ 1\0\0RE\ 2\0\0RJ\ 3\0\0RK\ 3\0\0RL\ 3\0\0RM\ 3\0\0Re\ 1\0\0R\b\0\0\0\0\0\0RN\ 3\0\0RO\ 3\0\0RP\ 3\0\0RT\ 3\0\0RQ\ 3\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\12\0\0\0testMEDFileFields3&\v\0\0\0\0\0\0\ 1\ 6\ 2\ f\ 1
34339 +\0\19\ 1\1c\ 1%\ 1\19\0\17\ 1\ f\ 1\ f\ 1
34340 +\0\1c\ 1\1f\ 1%\ 1\19\0\e\ 1\ f\ 1\12\ 1\r\0\19\ 2    \0\10\0\10\ 2!\0\r\ 1$\0\r\ 1   \ 1       \ 2\13\ 1\f\0\ 6\ 1\f\0\11\0\r\0\r\ 1\f\0\r\0\r\0\r\ 1*\ 1\16\ 1     \0\16\0\r\ 1\16\ 1\16\ 1\ 4\ 2\1a\ 1\16\ 1
34341 +\ 1\16\ 1(\ 1\f\ 1\f\ 1\f\ 1    \ 1\r\ 1\r\0\r\ 1\r\0\r\ 1\r\0\r\ 1\16\ 2       \ 1\13\ 1\f\0\ 6\ 1\f\0\11\0\r\0\r\ 1\f\0\r\0\r\0\r\ 1*\ 1       \0\16\0\r\ 1\ 4\ 1\r\0\r\ 1\16\ 1
34342 +\ 1\10\ 1c\ 1\0\0\0\17\0\0\0   \0\0\0C\0\0\0sI\ 6\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0\83\ 2\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1|\ 2\0j\ 2\0t\ 3\0d\ 4\0d\ 5\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 5\0\0d!\0d"\0g\ 3\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\b\0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\a\0\83\0\0^\ 2\0qa\0}\ 4\0x-\0t\b\0|\ 4\0\83\ 1\0D]\1f\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0|\ 3\0d\ 4\0g\ 2\0\83\ 1\0\ 1q\86\0Wt\0\0j
34343 +\0|\ 4\0\83\ 1\0}\ 4\0t\0\0\0d\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 1\0\83\0\0\ 1|\ 6\0j\ 2\0t\v\0d\ 4\0d\ 5\0d\ 3\0d
34344 +\0g\ 4\0\83\ 2\0\ 1|\ 6\0j\ 4\0t\ 5\0d#\0d$\0d%\0d&\0g\ 4\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\v\0\83\ 1\0D]\12\0}\ 3\0|\ 6\0j\a\0\83\0\0^\ 2\0q\19\ 1}\a\0x1\0t\b\0|\a\0\83\ 1\0D]#\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0d\v\0|\ 3\0\17d\ 4\0g\ 2\0\83\ 1\0\ 1q>\ 1Wt\0\0j
34345 +\0|\a\0\83\ 1\0}\a\0t\0\0j
34346 +\0|\ 4\0|\a\0\83\ 2\0}\b\0|\b\0j\f\0d\f\0\83\ 1\0\ 1|\b\0j\r\0\83\0\0j\ e\0d\r\0d\ e\0g\ 2\0\83\ 1\0\ 1t\ f\0\83\0\0}     \0|      \0j\10\0d\ 4\0|\b\0\83\ 2\0\ 1\0j\11\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\12\0d\ 4\0d\ 5\0d\ 3\0d
34347 +\0d\b\0d\v\0d\ f\0g\a\0\83\ 1\0}
34348 +\0|
34349 +\0j\f\0d\10\0\83\ 1\0\ 1t\12\0d\ 4\0d\ 5\0d\ 3\0d
34350 +\0d\b\0d\v\0d\ f\0d\11\0g\b\0\83\ 1\0}\v\0|\v\0j\f\0d\12\0\83\ 1\0\ 1t\13\0\83\0\0}\f\0t\14\0\83\0\0}\r\0d\13\0d\14\0d\15\0g\ 3\0}\ e\0\0t\ 6\0d\16\0\83\ 1\0D]è\0}\ 3\0d\17\0}\ f\0t\ 5\0d\18\0\83\ 1\0}\10\0|\10\0j\15\0|\ 3\0d\16\0\14\83\ 1\0\ 1|\10\0j\16\0d
34351 +\0\83\ 1\0\ 1|\10\0j\ e\0|\ e\0\83\ 1\0\ 1t\17\0t\18\0\83\ 1\0}\11\0|\11\0j\f\0|\ f\0\83\ 1\0\ 1|\11\0j\19\0|\10\0\83\ 1\0\ 1|\11\0j\1a\0|\b\0\83\ 1\0\ 1|\11\0j\e\0t\1c\0|\ 3\0d\ 5\0\17\83\ 1\0d\19\0\17|\ 3\0d\ 5\0\17|\ 3\0\vd\ 5\0\18\83\ 3\0\ 1t\1d\0\83\0\0}\12\0|\12\0j\1e\0|\11\0|     \0d\ 4\0|
34352 +\0\83\ 4\0\ 1|\r\0j\1f\0|\12\0\83\ 1\0\ 1|\0\0\0|\r\0j!\0\83\0\0t"\0|\ e\0\83\ 1\0\83\ 2\0\ 1qb\ 2W|\f\0j#\0|\r\0\83\ 1\0\ 1|\0\0\0d\ 5\0t$\0|\f\0\83\ 1\0\83\ 2\0\ 1|\r\0j%\0\83\0\0}\13\0|\0\0\0d
34353 +\0t$\0|\13\0\83\ 1\0\83\ 2\0\ 1x$\0|\13\0D]\1c\0}\ 5\0|\0\0\0d\16\0t$\0|\ 5\0\83\ 1\0\83\ 2\0\ 1q\9a\ 3Wx$\0|\13\0D]\1c\0}\ 5\0|\0\0j&\0t'\0|\ 5\0t\14\0\83\ 2\0\83\ 1\0\ 1\ 3Wx>\0|\13\0D]6\0}\ 5\0|\ 5\0j\f\0d\1a\0|\ 5\0j(\0\83\0\0t)\0j*\0|\ 5\0j!\0\83\0\0d\ 4\0\19\83\ 1\0f\ 2\0\16\83\ 1\0\ 1\ 3W|\f\0j+\0|\13\0\83\ 1\0\ 1|\0\0\0d\b\0t$\0|\f\0\83\ 1\0\83\ 2\0\ 1x$\0|\f\0D]\1c\0}\ 5\0|\0\0\0d\16\0t$\0|\ 5\0\83\ 1\0\83\ 2\0\ 1qL\ 4W|\0\0\0|\f\0j,\0\83\0\0d'\0\83\ 2\0\ 1|\0\0\0|\f\0j-\0\83\0\0d(\0\83\ 2\0\ 1|\f\0j\11\0|\ 1\0d\ 4\0\83\ 2\0\ 1~\f\0t\13\0|\ 1\0\83\ 1\0}\14\0|\0\0\0|\14\0j,\0\83\0\0d)\0\83\ 2\0\ 1|\0\0\0|\14\0j-\0\83\0\0d*\0\83\ 2\0\ 1|\0\0\0d\b\0t$\0|\14\0\83\ 1\0\83\ 2\0\ 1xI\ 1t\ 6\0d\16\0\83\ 1\0D];\ 1}\ 3\0\0t\b\0d\1c\0d\1d\0d\1e\0g\ 3\0\83\ 1\0D]¢\0\\ 2\0}\15\0}\16\0|\14\0|\16\0\19|\ 3\0\19}\12\0|\12\0j.\0t\18\0d\ 4\0|   \0\83\ 3\0}\11\0t\ 5\0d\18\0\83\ 1\0}\10\0|\10\0j\15\0|\ 3\0d\16\0\14\83\ 1\0\ 1|\10\0j\16\0d
34354 +\0\83\ 1\0\ 1|\10\0d\0\0d\0\0\85\ 2\0|\15\0f\ 2\0\19}\10\0|\10\0j/\0d\ 4\0|\ e\0|\15\0\19\83\ 2\0\ 1|\0\0j&\0|\10\0j0\0|\11\0j1\0\83\0\0d\1f\0\83\ 2\0\83\ 1\0\ 1q"\ 5W|\14\0d\17\0\19|\ 3\0\19}\12\0|\12\0j.\0t\18\0d\ 4\0|  \0\83\ 3\0}\11\0t\ 5\0d\18\0\83\ 1\0}\10\0|\10\0j\15\0|\ 3\0d\16\0\14\83\ 1\0\ 1|\10\0j\16\0d
34355 +\0\83\ 1\0\ 1|\10\0j\ e\0|\ e\0\83\ 1\0\ 1|\0\0j&\0|\10\0j0\0|\11\0j1\0\83\0\0d\1f\0\83\ 2\0\83\ 1\0\ 1q\ 6\ 5Wd\0\0S(+\0\0\0Ns\f\0\0\0Pyfile67.medR=\ 3\0\0i\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0R>\ 3\0\0i\ 3\0\0\0i\ 5\0\0\0\ 2\0\0s\ 6\0\0\0XX [m]s\b\0\0\0YYY [km]i\ 6\0\0\0R\83\ 1\0\0i\b\0\0\0RE\ 2\0\0s\a\0\0\0aa [bb]s       \0\0\0ccc [ddd]s\v\0\0\0ZZZZ [MW*s]i
34356 +\0\0\0R?\ 3\0\0i\15\0\0\0g\9a\99\99\99\99\99¹?s\ 5\0\0\0%s_%sRX\ 3\0\0t\v\0\0\01stField_aat\f\0\0\01stField_ccct\r\0\0\01stField_ZZZZg\82vIhÂ%<=(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 1\0\0\0s\ e\0\0\0pfl_NORM_QUAD4(\ 1\0\0\0s\ e\0\0\0pfl_NORM_QUAD4(\ 1\0\0\0s\ e\0\0\0pfl_NORM_QUAD4(\ 1\0\0\0s\ e\0\0\0pfl_NORM_QUAD4(2\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0R[\ 2\0\0R`\0\0\0RB\0\0\0\0\0\0\ 1\0\0R>\0\0\0Rj\0\0\0R\v\0\0\0Rk\0\0\0R[\ 1\0\0\0\0\0Ry\ 1\0\0Rz\ 1\0\0Rw\ 1\0\0R\13\ 1\0\0R{\ 1\0\0\0\0\0\0\0\0RD\ 3\0\0\0\0\0R|\ 1\0\0RE\ 3\0\0R+\0\0\0R'\ 3\0\0t\ 5\0\0\0tupleR\\ 1\0\0Ry\0\0\0t\ f\0\0\0splitComponentsR0\0\0\0Rt\0\0\0RC\0\0\0t      \0\0\0DataArrayt\12\0\0\0GetVarNameFromInfot
34357 +\0\0\0pushFieldsR]\ 2\0\0R<\ 2\0\0R\97\ 1\0\0R\97\0\0\0R1\0\0\0R)\ 1\0\0(\17\0\0\0R      \0\0\0R9\ 1\0\0R=\ 3\0\0\0\0\0RH\ 3\0\0\0\0\0R>\ 3\0\0RI\ 3\0\0R\83\0\0\0R\86\0\0\0R\83\ 1\0\0RE\ 2\0\0Rl\ 1\0\0RK\ 3\0\0RL\ 3\0\0RM\ 3\0\0Re\ 1\0\0R\b\0\0\0\0\0\0\0\0\0RU\ 3\0\0t\ 1\0\0\0jt  \0\0\0fieldName(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\14\0\0\0testSplitComponents1g\v\0\0\0\0\0\0\ 1\ 6\ 2\ f\ 1
34358 +\0\19\ 1\1c\ 1%\ 1\19\0\17\ 1\ f\ 1\ f\ 1
34359 +\0\1c\ 1\1f\ 1%\ 1\19\0\e\ 1\ f\ 1\12\ 1\r\0\19\ 2    \0\10\0\10\ 2!\0\r\ 1$\0\r\ 1   \ 1       \ 2\ f\ 1\13\ 1\ 6\ 1\f\0\11\0\r\0\r\ 1\f\0\r\0\r\0\r\ 1*\ 1       \0\16\0\r\ 1\1c\ 1\ 4\ 1\r\ 1\16\ 1\f\ 1\16\ 1\r\0\1a\ 1\r\0\1a\ 1\r\ 10\ 1\ 4\ 1\r\ 1\16\ 1\r\0\1a\ 1\16\ 1\16\ 2\10\0\ 3\ 2\f\ 1\16\ 1\16\ 1\16\ 1\13\ 1"\ 1\ e\ 1\15\ 1\f\0\11\0\r\0\16\0\14\ 1\1f\ 1\ 4\ 1\ e\ 1\15\ 1\f\0\11\0\r\0\r\ 1\1f\ 1\ 4\ 1c\ 1\0\0\0\15\0\0\0\a\0\0\0C\0\0\0sÄ        \0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0\83\ 2\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1|\ 2\0j\ 2\0t\ 3\0d\ 4\0d\ 5\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 5\0d%\0d&\0d'\0g\ 3\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\b\0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\a\0\83\0\0^\ 2\0qa\0}\ 4\0x-\0t\b\0|\ 4\0\83\ 1\0D]\1f\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j        \0|\ 3\0d\ 4\0g\ 2\0\83\ 1\0\ 1q\86\0Wt\0\0j
34360 +\0|\ 4\0\83\ 1\0}\ 4\0t\0\0\0d\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 1\0\83\0\0\ 1|\ 6\0j\ 2\0t\v\0d\ 4\0d\ 5\0d\ 3\0d
34361 +\0g\ 4\0\83\ 2\0\ 1|\ 6\0j\ 4\0t\ 5\0d(\0d)\0d*\0d+\0g\ 4\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\v\0\83\ 1\0D]\12\0}\ 3\0|\ 6\0j\a\0\83\0\0^\ 2\0q\19\ 1}\a\0x1\0t\b\0|\a\0\83\ 1\0D]#\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0d\v\0|\ 3\0\17d\ 4\0g\ 2\0\83\ 1\0\ 1q>\ 1Wt\0\0j
34362 +\0|\a\0\83\ 1\0}\a\0t\0\0j
34363 +\0|\ 4\0|\a\0\83\ 2\0}\b\0|\b\0j\f\0d\f\0\83\ 1\0\ 1|\b\0j\r\0\83\0\0j\ e\0d\r\0d\ e\0g\ 2\0\83\ 1\0\ 1t\ f\0\83\0\0}     \0|      \0j\10\0d\ 4\0|\b\0\83\ 2\0\ 1t\11\0\83\0\0}
34364 +\0t\12\0t\13\0t\14\0\83\ 2\0}\v\0|\v\0j\15\0|\b\0\83\ 1\0\ 1t\ 5\0|\b\0j\16\0\83\0\0d\ 3\0\14\83\ 1\0}\f\0|\f\0j\17\0\83\0\0\ 1|\f\0j\18\0d\ 3\0\83\ 1\0\ 1|\f\0j\ e\0d\ f\0d\10\0g\ 2\0\83\ 1\0\ 1|\v\0j\19\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\11\0\83\ 1\0\ 1|\v\0j\1a\0\83\0\0\ 1|
34365 +\0j\e\0|\v\0\83\ 1\0\ 1d
34366 +\0d\ 4\0d,\0d\12\0d\12\0f\ 4\0g\ 1\0f\ 2\0d\b\0d\ 4\0d-\0d\12\0d\12\0f\ 4\0g\ 1\0f\ 2\0g\ 2\0}\r\0|\0\0j\1c\0|
34367 +\0j\1d\0\83\0\0|\r\0\83\ 2\0\ 1|
34368 +\0j\1e\0\83\0\0}\ e\0|\0\0j\1c\0|\ e\0j\1d\0\83\0\0|\r\0\83\ 2\0\ 1|\0\0j\1f\0|\f\0\0\83\0\0j!\0|\ e\0j"\0\83\0\0\83\ 1\0\83\ 1\0\ 1|\ e\0j#\0\83\0\0}\ f\0|\0\0j\1f\0|\ f\0j"\0\83\0\0j!\0|
34369 +\0j"\0\83\0\0d\14\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|\ f\0j\1d\0\83\0\0|\r\0\83\ 2\0\ 1~\f\0~\v\0~
34370 +\0~\ f\0~\ e\0~\r\0t\11\0\83\0\0}
34371 +\0t\12\0t\13\0t\14\0\83\ 2\0}\v\0|\v\0j\15\0|\b\0d\15\0 \83\ 1\0\ 1t\ 5\0d.\0\83\ 1\0}\f\0|\f\0j\17\0\83\0\0\ 1|\f\0j\18\0d\ 3\0\83\ 1\0\ 1|\f\0j\ e\0d\16\0d\17\0g\ 2\0\83\ 1\0\ 1|\v\0j\19\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\18\0\83\ 1\0\ 1|\v\0j\1a\0\83\0\0\ 1t$\0j%\0d\ 4\0d\15\0d\ 5\0\83\ 3\0}\10\0|\10\0j\f\0d\19\0\83\ 1\0\ 1|
34372 +\0j&\0|\v\0|       \0d\ 4\0|\10\0\83\ 4\0\ 1d
34373 +\0d\ 4\0d/\0d\12\0d\12\0f\ 4\0g\ 1\0f\ 2\0d\b\0d\ 4\0d0\0d\1a\0d\12\0f\ 4\0g\ 1\0f\ 2\0g\ 2\0}\r\0|\0\0j\1c\0|
34374 +\0j\1d\0\83\0\0|\r\0\83\ 2\0\ 1|
34375 +\0j\1e\0\83\0\0}\ e\0|\0\0j\1f\0t'\0|\ e\0t(\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|\ e\0j\1d\0\83\0\0|\r\0\83\ 2\0\ 1|\0\0j\1f\0|\f\0\0\83\0\0j!\0|\ e\0j"\0\83\0\0\83\ 1\0\83\ 1\0\ 1|\ e\0j#\0\83\0\0}\ f\0|\0\0j\1f\0t'\0|\ f\0t\11\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1f\0|\ f\0j"\0\83\0\0j!\0|
34376 +\0j"\0\83\0\0d\14\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|\ f\0j\1d\0\83\0\0|\r\0\83\ 2\0\ 1t)\0\83\0\0}
34377 +\0t\12\0t\13\0t\14\0\83\ 2\0}\v\0|\v\0j\15\0|\b\0d\15\0 \83\ 1\0\ 1t\ 5\0d1\0\83\ 1\0}\f\0|\f\0j\17\0\83\0\0\ 1|\f\0j\18\0d\ 3\0\83\ 1\0\ 1|\f\0j\ e\0d\ f\0d\10\0g\ 2\0\83\ 1\0\ 1|\v\0j\19\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\e\0\83\ 1\0\ 1|\v\0j*\0d\1c\0d\ 4\0d\1d\0\83\ 3\0\ 1|\v\0j\1a\0\83\0\0\ 1|
34378 +\0j+\0|\v\0|       \0d\ 4\0|\10\0\83\ 4\0\ 1t\12\0t\13\0t\14\0\83\ 2\0}\v\0|\v\0j\15\0|\b\0d\15\0 \83\ 1\0\ 1t\ 5\0d2\0\83\ 1\0}\f\0|\f\0j\17\0d\1e\0\83\ 1\0\ 1|\f\0j\18\0d\ 3\0\83\ 1\0\ 1|\f\0j\ e\0d\ f\0d\10\0g\ 2\0\83\ 1\0\ 1|\v\0j\19\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\e\0\83\ 1\0\ 1|\v\0j*\0d\1f\0d\ 5\0\0\83\ 3\0\ 1|\v\0j\1a\0\83\0\0\ 1|
34379 +\0j+\0|\v\0|       \0d\ 4\0|\10\0\83\ 4\0\ 1t\12\0t\13\0t\14\0\83\ 2\0}\v\0|\v\0j\15\0|\b\0d\15\0 \83\ 1\0\ 1t\ 5\0d3\0\83\ 1\0}\f\0|\f\0j\17\0d!\0\83\ 1\0\ 1|\f\0j\18\0d\ 3\0\83\ 1\0\ 1|\f\0j\ e\0d\ f\0d\10\0g\ 2\0\83\ 1\0\ 1|\v\0j\19\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\e\0\83\ 1\0\ 1|\v\0j*\0d"\0d\ 3\0d#\0\83\ 3\0\ 1|\v\0j\1a\0\83\0\0\ 1|
34380 +\0j+\0|\v\0|       \0d\ 4\0|\10\0\83\ 4\0\ 1|
34381 +\0j\1e\0\83\0\0}\ f\0|\0\0j\1f\0t'\0|\ f\0t,\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|\ f\0j-\0\83\0\0d4\0d5\0d6\0g\ 3\0\83\ 2\0\ 1x\83\0t.\0d\ 4\0d\1e\0d!\0g\ 3\0|\ f\0j-\0\83\0\0\83\ 2\0D]c\0\\ 2\0}\11\0\\ 3\0}\12\0}\13\0}\14\0|\0\0j\1c\0|\ f\0j\1d\0|\12\0|\13\0\83\ 2\0|\r\0\83\ 2\0\ 1|\ f\0j"\0|\12\0|\13\0\83\ 2\0}\f\0|\f\0j/\0t$\0j%\0|\11\0|\11\0d\15\0\17d\ 5\0\83\ 3\0\83\ 1\0\ 1qZ\aW|\0\0j\1c\0|\ f\0j0\0\83\0\0d7\0\83\ 2\0\ 1|   \0j1\0|\ 1\0d\ 3\0\83\ 2\0\ 1|\ f\0j1\0|\ 1\0d\ 4\0\83\ 2\0\ 1|\ f\0j#\0\83\0\0}\ f\0|\0\0j\1f\0t'\0|\ f\0t)\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|\ f\0j-\0\83\0\0d8\0d9\0d:\0g\ 3\0\83\ 2\0\ 1x\8c\0t.\0d\ 4\0d\1e\0d!\0g\ 3\0|\ f\0j-\0\83\0\0\83\ 2\0D]l\0\\ 2\0}\11\0\\ 3\0}\12\0}\13\0}\14\0|\0\0j\1c\0|\ f\0j\1d\0|\12\0|\13\0\83\ 2\0|\r\0\83\ 2\0\ 1|\ f\0j"\0|\12\0|\13\0\83\ 2\0}\f\0|\f\0j/\0t$\0j%\0|\11\0|\11\0d\15\0\17d\ 5\0\83\ 3\0j2\0\83\0\0d$\0\83\ 2\0\ 1qW\bW|\0\0j\1c\0|\ f\0j0\0\83\0\0d;\0\83\ 2\0\ 1t3\0j4\0|\ 1\0d\e\0\83\ 2\0}\ f\0|\0\0j\1f\0t'\0|\ f\0t,\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|\ f\0j-\0\83\0\0d<\0d=\0d>\0g\ 3\0\83\ 2\0\ 1x\83\0t.\0d\ 4\0d\1e\0d!\0g\ 3\0|\ f\0j-\0\83\0\0\83\ 2\0D]c\0\\ 2\0}\11\0\\ 3\0}\12\0}\13\0}\14\0|\0\0j\1f\0|\ f\0j\1d\0|\12\0|\13\0\83\ 2\0|\r\0\83\ 2\0\ 1|\ f\0j"\0|\12\0|\13\0\83\ 2\0}\f\0|\f\0j/\0t$\0j%\0|\11\0|\11\0d\15\0\17d\ 5\0\83\ 3\0\83\ 1\0\ 1qC W|\0\0j\1c\0|\ f\0j0\0\83\0\0d?\0\83\ 2\0\ 1d\0\0S(@\0\0\0Ns\f\0\0\0Pyfile68.medR=\ 3\0\0i\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0R>\ 3\0\0i\ 3\0\0\0i\ 5\0\0\0\ 2\0\0s\ 6\0\0\0XX [m]s\b\0\0\0YYY [km]s\ 6\0\0\0X [km]s\a\0\0\0YY [mm]t       \0\0\0FieldCellR&\0\0\0i      \0\0\0g\82vIhÂ%<=i\a\0\0\0s\a\0\0\0XX [pm]s\b\0\0\0YYY [hm]t\f\0\0\0FieldCellPflR\83\ 1\0\0RX\ 3\0\0t\ e\0\0\0FieldCellMTimeg\9a\99\99\99\99\99¹?i
34382 +\0\0\0id\0\0\0g\9a\99\99\99\99\99ñ?i\v\0\0\0\0\0\0gÍÌÌÌÌÌ\0@i\f\0\0\0g\9b\86\9b\84\ 6=(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 4\0\0\0i  \0\0\0i\ e\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\a\0\0\0i\ e\0\0\0i\ e\0\0\0i\ e\0\0\0(\ 3\0\0\0i\0\0\0\0i
34383 +\0\0\0g\9a\99\99\99\99\99¹?(\ 3\0\0\0i\ 1\0\0\0i\v\0\0\0g\9a\99\99\99\99\99ñ?(\ 3\0\0\0i\ 2\0\0\0i\f\0\0\0gÍÌÌÌÌÌ\0@(\ 3\0\0\0s\ e\0\0\0pfl_NORM_QUAD4s\ e\0\0\0pfl_NORM_QUAD4s\ e\0\0\0pfl_NORM_QUAD4(\ 3\0\0\0i\0\0\0\0i
34384 +\0\0\0g\9a\99\99\99\99\99¹?(\ 3\0\0\0i\ 1\0\0\0i\v\0\0\0g\9a\99\99\99\99\99ñ?(\ 3\0\0\0i\ 2\0\0\0i\f\0\0\0gÍÌÌÌÌÌ\0@(\ 3\0\0\0s\ e\0\0\0pfl_NORM_QUAD4s\ e\0\0\0pfl_NORM_QUAD4s\ e\0\0\0pfl_NORM_QUAD4(\ 3\0\0\0i\0\0\0\0i
34385 +\0\0\0g\9a\99\99\99\99\99¹?(\ 3\0\0\0i\ 1\0\0\0i\v\0\0\0g\9a\99\99\99\99\99ñ?(\ 3\0\0\0i\ 2\0\0\0i\f\0\0\0gÍÌÌÌÌÌ\0@(\ 1\0\0\0s\ e\0\0\0pfl_NORM_QUAD4(5\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0R[\ 2\0\0R`\0\0\0RB\0\0\0\0\0\0\ 1\0\0R>\0\0\0Rj\0\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0\0\0\0\0\0\0Ry\ 1\0\0Rz\ 1\0\0R{\ 1\0\0Rd\0\0\0R%\ 1\0\0R+\0\0\0\ 1\0\0t\f\0\0\0convertToIntR0\0\0\0t\ f\0\0\0convertToIntArrR1\0\0\0R+\ 1\0\0t\ f\0\0\0convertToDoubleRk\0\0\0R"\ 2\0\0R|\ 1\0\0Rt\0\0\0R\1e\ 3\0\0\0\0\0\0\0\0R\89\ 1\0\0R#\ 3\0\0\0\0\0RS\ 1\0\0R\7f\ 1\0\0R]\ 2\0\0R\v\0\0\0t\ f\0\0\0convertToDblArrR"\ 3\0\0R(\0\0\0(\15\0\0\0R      \0\0\0R9\ 1\0\0R=\ 3\0\0\0\0\0RH\ 3\0\0\0\0\0R>\ 3\0\0RI\ 3\0\0R\83\0\0\0R\86\0\0\0RB\ 2\0\0\0\0\0\ 1\0\0t\ 6\0\0\0fspExpt\ 4\0\0\0ff0iR;\ 1\0\0R\83\ 1\0\0t\ 4\0\0\0deltRu\ 2\0\0Rv\ 2\0\0R\8c\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileFieldConvertTo1¬\v\0\0s\ 2\ 1\0\0\0\ 1\ 6\ 2\ f\ 1
34386 +\0\19\ 1\1c\ 1%\ 1\19\0\17\ 1\ f\ 1\ f\ 1
34387 +\0\1c\ 1\1f\ 1%\ 1\19\0\e\ 1\ f\ 1\12\ 1\r\0\19\ 1    \0\10\ 2     \ 1\ f\0\r\0\16\0
34388 +\0\r\0\13\0\r\0\r\ 1
34389 +\ 1\r\ 26\ 1\16\ 2\f\ 1\16\ 1"\ 2\f\ 1%\ 1\16\ 2\12\ 1  \ 1\ f\0\11\0\f\0
34390 +\0\r\0\13\0\r\0\r\ 1
34391 +\ 1\15\0\r\ 1\16\ 16\ 1\16\ 2\f\ 1\16\ 1\16\ 1"\ 2\f\ 1\16\ 1%\ 1\16\ 2    \ 1\ f\0\11\0\f\0
34392 +\0\r\0\13\0\r\0\r\0\13\ 1
34393 +\ 1\16\ 1\ f\0\11\0\f\0\r\0\r\0\13\0\r\0\r\0\13\ 1
34394 +\ 1\16\ 1\ f\0\11\0\f\0\r\0\r\0\13\0\r\0\r\0\13\ 1
34395 +\ 1\16\ 1\f\ 1\16\ 1\1f\ 14\ 1\1c\ 1\12\ 1 \ 1\ 4\ 1\16\ 2\10\ 1\10\ 2\f\ 1\16\ 1\1f\ 14\ 1\1c\ 1\12\ 1)\ 1\ 4\ 1\16\ 2\12\ 1\16\ 1\1f\ 14\ 1\1c\ 1\12\ 1 \ 1\ 4\ 1\16\ 1c\ 1\0\0\0\17\0\0\0 \0\0\0C\0\0\0sõ       \0\0d\ 1\0}\ 1\0t\0\0\83\0\0}\ 2\0|\ 2\0j\ 1\0\83\0\0}\ 3\0|\ 2\0j\ 2\0d\ 2\0d\ 3\0\83\ 2\0\ 1|\ 2\0j\ 1\0\83\0\0|\ 3\0\18}\ 4\0~\ 2\0~\ 3\0t\ 3\0d\ 4\0d\ 5\0\83\ 2\0}\ 5\0|\ 5\0j\ 4\0\83\0\0\ 1|\ 5\0j\ 5\0t\ 6\0d\ 2\0d\ 3\0d\ 5\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\a\0t\b\0d5\0d6\0d7\0g\ 3\0\83\ 1\0\83\ 1\0\ 1g\0\0t   \0d\b\0\83\ 1\0D]\12\0}\ 6\0|\ 5\0j
34396 +\0\83\0\0^\ 2\0q\9c\0}\a\0x-\0t\v\0|\a\0\83\ 1\0D]\1f\0\\ 2\0}\ 6\0}\b\0|\b\0j\f\0|\ 6\0d\ 2\0g\ 2\0\83\ 1\0\ 1\0Wt\ 3\0j\r\0|\a\0\83\ 1\0}\a\0t\ 3\0d       \0d\ 5\0\83\ 2\0}        \0|      \0j\ 4\0\83\0\0\ 1|       \0j\ 5\0t\ e\0d\ 2\0d\ 3\0d\ 5\0d
34397 +\0g\ 4\0\83\ 2\0\ 1|      \0j\a\0t\b\0d8\0d9\0d:\0d;\0g\ 4\0\83\ 1\0\83\ 1\0\ 1g\0\0t       \0d\v\0\83\ 1\0D]\12\0}\ 6\0\0j
34398 +\0\83\0\0^\ 2\0qT\ 1}
34399 +\0x1\0t\v\0|
34400 +\0\83\ 1\0D]#\0\\ 2\0}\ 6\0}\b\0|\b\0j\f\0d\v\0|\ 6\0\17d\ 2\0g\ 2\0\83\ 1\0\ 1qy\ 1Wt\ 3\0j\r\0|
34401 +\0\83\ 1\0}
34402 +\0t\ 3\0j\r\0|\a\0|
34403 +\0\83\ 2\0}\v\0|\v\0j\ f\0d\f\0\83\ 1\0\ 1|\v\0j\10\0\83\0\0j\11\0d\r\0d\ e\0g\ 2\0\83\ 1\0\ 1t\12\0\83\0\0}\f\0|\f\0j\13\0d\ 2\0|\v\0\83\ 2\0\ 1|\f\0j\14\0|\ 1\0d\ 5\0\83\ 2\0\ 1t\15\0\83\0\0}\r\0t\16\0t\17\0t\18\0\83\ 2\0}\ e\0|\ e\0j\19\0|\v\0\83\ 1\0\ 1t\b\0|\v\0j\1a\0\83\0\0d\ 5\0\14\83\ 1\0}\ f\0|\ f\0j\e\0\83\0\0\ 1|\ f\0j\1c\0d\ 5\0\83\ 1\0\ 1|\ f\0j\11\0d\ f\0d\10\0g\ 2\0\83\ 1\0\ 1|\ e\0j\1d\0|\ f\0\83\ 1\0\ 1|\ e\0j\ f\0d\11\0\83\ 1\0\ 1|\ e\0j\1e\0\83\0\0\ 1|\r\0j\1f\0|\ e\0\83\ 1\0\ 1|\r\0j\14\0|\ 1\0d\ 2\0\83\ 2\0\ 1d
34404 +\0d\ 2\0d<\0d\12\0d\12\0f\ 4\0g\ 1\0f\ 2\0d\13\0d\ 2\0d=\0d\12\0d\12\0f\ 4\0g\ 1\0f\ 2\0g\ 2\0}\10\0|\0\0\0|\r\0j!\0\83\0\0|\10\0\83\ 2\0\ 1t\15\0\83\0\0}\r\0t\16\0t\17\0t\18\0\83\ 2\0}\ e\0|\ e\0j\19\0|\v\0d\15\0 \83\ 1\0\ 1t\b\0d>\0\83\ 1\0}\ f\0|\ f\0j\e\0\83\0\0\ 1|\ f\0j\1c\0d\ 5\0\83\ 1\0\ 1|\ f\0j\11\0d\16\0d\17\0g\ 2\0\83\ 1\0\ 1|\ e\0j\1d\0|\ f\0\83\ 1\0\ 1|\ e\0j\ f\0d\18\0\83\ 1\0\ 1|\ e\0j\1e\0\83\0\0\ 1t\0\0j"\0d\ 2\0d\15\0d\ 3\0\83\ 3\0}\11\0|\11\0j\ f\0d\19\0\83\ 1\0\ 1|\r\0j#\0|\ e\0|\f\0d\ 2\0|\11\0\83\ 4\0\ 1d
34405 +\0d\ 2\0d?\0d\12\0d\12\0f\ 4\0g\ 1\0f\ 2\0d\13\0d\ 2\0d@\0d\1a\0d\12\0f\ 4\0g\ 1\0f\ 2\0g\ 2\0}\10\0|\0\0\0|\r\0j!\0\83\0\0|\10\0\83\ 2\0\ 1|\r\0j\14\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\15\0|\ 1\0t$\0\83\ 2\0}\r\0|\0\0\0|\r\0j%\0\83\0\0d\11\0\83\ 2\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j(\0\83\0\0\f\83\ 1\0\ 1|\0\0\0|\r\0j'\0\83\0\0j)\0\83\0\0d\ f\0d\10\0g\ 2\0\83\ 2\0\ 1|\r\0j\ 1\0\83\0\0}\12\0|\0\0j*\0|\12\0t+\0t   \0d\e\0d\1c\0d\ 5\0|\ 4\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\r\0j,\0\83\0\0\ 1t\b\0d\1d\0\83\ 1\0}\ f\0|\ f\0j\e\0\83\0\0\ 1|\ f\0j\1c\0d\ 5\0\83\ 1\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0\0|\r\0j\ 1\0\83\0\0|\12\0\18dB\0\83\ 2\0\ 1t\15\0|\ 1\0d\18\0t$\0\83\ 3\0}\r\0|\0\0\0|\r\0j'\0\83\0\0j)\0\83\0\0d\16\0d\17\0g\ 2\0\83\ 2\0\ 1|\r\0j\ 1\0\83\0\0}\12\0|\0\0j*\0|\12\0t+\0t    \0\0d!\0d"\0|\ 4\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\r\0j,\0\83\0\0\ 1t\b\0d#\0\83\ 1\0}\ f\0|\ f\0j\e\0\83\0\0\ 1|\ f\0j\1c\0d\ 5\0\83\ 1\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0\0|\r\0j\ 1\0\83\0\0|\12\0\18dD\0\83\ 2\0\ 1|\r\0j,\0\83\0\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0\0|\r\0j\ 1\0\83\0\0|\12\0\18dF\0\83\ 2\0\ 1|\r\0j'\0\83\0\0j.\0d\b\0d\ 3\0d$\0\83\ 3\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\f\83\ 1\0\ 1|\r\0j,\0\83\0\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\r\0j'\0\83\0\0j.\0d\b\0d\ 3\0d$\0\83\ 3\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\f\83\ 1\0\ 1|\r\0j/\0\83\0\0\ 1|\0\0\0|\r\0j'\0\83\0\0j0\0d\b\0d\ 3\0\83\ 2\0d$\0\83\ 2\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\f\83\ 1\0\ 1|\r\0j\ 1\0\83\0\0}\12\0|\0\0j*\0|\12\0t+\0t      \0d%\0d&\0d\ 5\0|\ 4\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\r\0j1\0\83\0\0\ 1|\r\0j\ 1\0\83\0\0|\12\0\18}\13\0|\0\0\0|\13\0d'\0\83\ 2\0\ 1|\r\0j,\0\83\0\0\ 1|\0\0\0|\r\0j\ 1\0\83\0\0|\12\0\18d\ 2\0\83\ 2\0\ 1t\15\0|\ 1\0d\18\0d(\0d(\0t$\0\83\ 5\0}\r\0|\r\0j\ 1\0\83\0\0}\12\0|\0\0j*\0|\12\0t+\0t        \0d)\0d*\0d"\0|\ 4\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\r\0j,\0\83\0\0\ 1|\0\0j&\0|\r\0j'\0\83\0\0j-\0|\ f\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0\0|\r\0j\ 1\0\83\0\0|\12\0\18dH\0\83\ 2\0\ 1d+\0}\14\0t2\0\83\0\0}\r\0\0\0d,\0\83\ 1\0D]Á\0}\15\0t\16\0t\17\0t\18\0\83\ 2\0}\ e\0|\ e\0j\19\0|\v\0\83\ 1\0\ 1t\b\0|\v\0j\1a\0\83\0\0d\ 5\0\14\83\ 1\0}\ f\0|\ f\0j\e\0t3\0|\15\0d-\0\17\83\ 1\0\83\ 1\0\ 1|\ f\0j\1c\0d\ 5\0\83\ 1\0\ 1|\ f\0j\11\0d\ f\0d\10\0g\ 2\0\83\ 1\0\ 1|\ e\0j\1d\0|\ f\0\83\ 1\0\ 1|\ e\0j\ f\0|\14\0\83\ 1\0\ 1|\ e\0j4\0t3\0|\15\0\83\ 1\0d.\0\17|\15\0d#\0|\15\0\17\83\ 3\0\ 1|\ e\0j\1e\0\83\0\0\ 1|\r\0j5\0|\ e\0\83\ 1\0\ 1q5\bW|\r\0j\14\0|\ 1\0d\ 2\0\83\ 2\0\ 1t6\0j7\0|\ 1\0|\14\0t$\0\83\ 3\0}\r\0|\r\0j\ 1\0\83\0\0}\12\0|\0\0j*\0|\12\0t+\0t     \0d/\0d0\0dJ\0|\ 4\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\r\0j,\0\83\0\0\ 1|\0\0\0|\r\0j\ 1\0\83\0\0|\12\0\18dM\0\83\ 2\0\ 1~\r\0t8\0|\ 1\0t$\0\83\ 2\0}\16\0|\16\0j\ 1\0\83\0\0}\12\0|\0\0j*\0|\12\0t+\0t        \0d3\0d4\0dN\0t9\0|\16\0\83\ 1\0\17|\ 4\0\14\17\83\ 2\0\83\ 1\0\83\ 2\0\ 1|\16\0j,\0\83\0\0\ 1|\0\0\0|\16\0j\ 1\0\83\0\0|\12\0\18dQ\0dS\0\17dU\0\17\83\ 2\0\ 1d\0\0S(V\0\0\0Ns\f\0\0\0Pyfile69.medi\0\0\0\0i\ 1\0\0\0R=\ 3\0\0i\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\1e\0\0\0R>\ 3\0\0i\ 3\0\0\0i(\0\0\0\ 2\0\0s\ 6\0\0\0XX [m]s\b\0\0\0YYY [km]s\ 6\0\0\0X [km]s\a\0\0\0YY [mm]Ri\ 3\0\0R&\0\0\0i\ 4\0\0\0iF\0\0\0i2\0\0\0s\a\0\0\0XX [pm]s\b\0\0\0YYY [hm]Rj\ 3\0\0R\83\ 1\0\0RX\ 3\0\0\0\0\0i\1c\ 2\0\0i\8c\0\0\0g\9b\86\9b\84\ 6=i\b\0\0\0i^\ 1\0\0iX\ 2\0\0i\ 6\0\0\0id\0\0\0g\0\0\0\0\0\0\16@iL\ 4\0\0ix\ 5\0\0iàüÿÿiÿÿÿÿi+\ 1\0\0il\ 2\0\0t\10\0\0\0FieldCellMultiTSi\14\0\0\0\ 3\0\0g\9a\99\99\99\99\99¹?i \15\0\0iü#\0\0iP\0\0\0i\1a\0\0\0\14\0\0i/'\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\1e\0\0\0(\ 2\0\0\0i\1e\0\0\0iF\0\0\0id\0\0\0(\ 2\0\0\0i\0\0\0\0i\1e\0\0\0(\ 2\0\0\0i\1e\0\0\0i2\0\0\0i0\ 2\0\0i`\ 4\0\0i\90\ 1\0\0\ 3\0\0i\90\ 1\0\0\ 3\0\0i\90\ 1\0\0\ 3\0\0ij\0\0\0ik\0\0\0ix\ 5\0\0iÀ+\0\0i\80W\0\0i\82\0\0\0ix\ 5\0\0iÀ+\0\0i\80W\0\0i0\ 2\0\0i`\ 4\0\0i\90\ 1\0\0\ 3\0\0(:\0\0\0Rk\0\0\0\ 2\0\0Rx\ 1\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0R[\ 2\0\0R`\0\0\0RB\0\0\0\0\0\0\ 1\0\0R>\0\0\0Rj\0\0\0R\v\0\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0\0\0\0\0\0\0Ry\ 1\0\0Rz\ 1\0\0R{\ 1\0\0Rd\0\0\0R%\ 1\0\0R+\0\0\0\ 1\0\0R"\ 2\0\0R|\ 1\0\0RN\0\0\0RC\0\0\0R0\0\0\0R+\ 1\0\0t\v\0\0\0isAllocatedR\1f\ 3\0\0\ 2\0\0Rm\0\0\0t
34406 +\0\0\0loadArraysR\7f\ 1\0\0R\9f\0\0\0t\15\0\0\0loadArraysIfNecessaryRÓ\ 1\0\0t\f\0\0\0unloadArraysRô\0\0\0RD\ 3\0\0\0\0\0RY\ 1\0\0R"\ 3\0\0R(\0\0\0R[\ 1\0\0Ry\0\0\0(\17\0\0\0R  \0\0\0R9\ 1\0\0\ 2\0\0\ 2\0\0\ 2\0\0R=\ 3\0\0\0\0\0RH\ 3\0\0\0\0\0R>\ 3\0\0RI\ 3\0\0R\83\0\0\0R\86\0\0\0RB\ 2\0\0\0\0\0\ 1\0\0Rp\ 3\0\0R\83\ 1\0\0t\ f\0\0\0heap_memory_reft\ 3\0\0\0hmdRg\ 3\0\0R\8c\0\0\0\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1e\0\0\0testMEDFileFieldPartialLoading\ e\f\0\0s\f\ 1\0\0\0\ 1\ 6\ 2   \0\f\ 1\10\ 1\10\0\ 3\0\ 3\ 2\ f\ 1
34407 +\0\19\ 1\1c\ 1%\ 1\19\0\17\ 1\ f\ 1\ f\ 1
34408 +\0\1c\ 1\1f\ 1%\ 1\19\0\e\ 1\ f\ 1\12\ 1\r\0\19\ 1    \0\10\0\10\ 2   \ 1\ f\0\r\0\16\0
34409 +\0\r\0\13\0\r\0\r\ 1
34410 +\ 1\r\ 1\10\ 26\ 1\16\ 2      \ 1\ f\0\11\0\f\0
34411 +\0\r\0\13\0\r\0\r\ 1
34412 +\ 1\15\0\r\ 1\16\ 16\ 1\16\ 1\10\ 2\ f\ 1\16\ 1\1a\ 1"\ 1\f\ 1'\ 1
34413 +\ 1\f\0
34414 +\0\r\ 1\1f\ 1\1a\ 2\12\ 1"\ 1\f\ 1'\ 1
34415 +\ 1\f\0
34416 +\0\r\ 1\1f\ 1\1a\ 1
34417 +\ 1\1f\ 1\1a\ 1\19\ 1 \ 1
34418 +\ 1\1f\ 1\19\ 1 \ 1
34419 +\ 1"\ 1 \ 1\f\ 1'\ 1
34420 +\ 1\10\ 1\10\ 1
34421 +\ 1\1a\ 2\18\ 1\f\ 1'\ 1
34422 +\ 1\1f\ 1\1a\ 2\ 6\ 1        \ 1\13\ 1\ f\0\r\0\16\0\17\0\r\0\13\0\r\0\r\ 1!\ 1
34423 +\ 1\r\ 1\ 4\ 1\10\ 2\15\ 1\f\ 1'\ 1
34424 +\ 1\1a\ 1\ 3\ 2\ f\ 1\f\ 11\ 1
34425 +\ 1"\ 1c\ 1\0\0\0\ 2\0\0\0\ 3\0\0\0C\0\0\0\19\0\0t\0\0\83\0\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0oT\0|\ 1\0j\ 3\0\83\0\0oT\0|\ 1\0j\ 4\0\83\0\0oT\0|\ 1\0j\ 5\0\83\0\0oT\0|\ 1\0j\ 6\0\83\0\0oT\0|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1|\ 1\0j\b\0\83\0\0\ 1|\ 1\0j        \0\83\0\0\ 1t\0\0d\ 1\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\0|\ 1\0j\ 3\0\83\0\0\f\0|\ 1\0j\ 4\0\83\0\0\f\0|\ 1\0j\ 5\0\83\0\0\f\0|\ 1\0j\ 6\0\83\0\0\f\0|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\ 2\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o)\ 1|\ 1\0j\ 3\0\83\0\0\fo)\ 1|\ 1\0j\ 4\0\83\0\0\fo)\ 1|\ 1\0j\ 5\0\83\0\0\fo)\ 1|\ 1\0j\ 6\0\83\0\0\fo)\ 1|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\ 3\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\89\ 1|\ 1\0j\ 3\0\83\0\0o\89\ 1|\ 1\0j\ 4\0\83\0\0\fo\89\ 1|\ 1\0j\ 5\0\83\0\0\fo\89\ 1|\ 1\0j\ 6\0\83\0\0\fo\89\ 1|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\ 4\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\ 1|\ 1\0j\ 3\0\83\0\0\ 1|\ 1\0j\ 4\0\83\0\0\f\ 1|\ 1\0j\ 5\0\83\0\0\f\ 1|\ 1\0j\ 6\0\83\0\0\f\ 1|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\ 5\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\foH\ 2|\ 1\0j\ 3\0\83\0\0\foH\ 2|\ 1\0j\ 4\0\83\0\0oH\ 2|\ 1\0j\ 5\0\83\0\0\foH\ 2|\ 1\0j\ 6\0\83\0\0\foH\ 2|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\ 6\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\ 2|\ 1\0j\ 3\0\83\0\0\f\ 2|\ 1\0j\ 4\0\83\0\0\ 2|\ 1\0j\ 5\0\83\0\0\f\ 2|\ 1\0j\ 6\0\83\0\0\f\ 2|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\a\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\ 6\ 3|\ 1\0j\ 3\0\83\0\0o\ 6\ 3|\ 1\0j\ 4\0\83\0\0o\ 6\ 3|\ 1\0j\ 5\0\83\0\0\fo\ 6\ 3|\ 1\0j\ 6\0\83\0\0\fo\ 6\ 3|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\b\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0od\ 3|\ 1\0j\ 3\0\83\0\0od\ 3|\ 1\0j\ 4\0\83\0\0od\ 3|\ 1\0j\ 5\0\83\0\0\fod\ 3|\ 1\0j\ 6\0\83\0\0\fod\ 3|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d   \0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\ 3|\ 1\0j\ 3\0\83\0\0\f\ 3|\ 1\0j\ 4\0\83\0\0\f\ 3|\ 1\0j\ 5\0\83\0\0\ 3|\ 1\0j\ 6\0\83\0\0\f\ 3|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d
34426 +\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o#\ 4|\ 1\0j\ 3\0\83\0\0\fo#\ 4|\ 1\0j\ 4\0\83\0\0\fo#\ 4|\ 1\0j\ 5\0\83\0\0o#\ 4|\ 1\0j\ 6\0\83\0\0\fo#\ 4|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\v\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\82\ 4|\ 1\0j\ 3\0\83\0\0o\82\ 4|\ 1\0j\ 4\0\83\0\0\fo\82\ 4|\ 1\0j\ 5\0\83\0\0o\82\ 4|\ 1\0j\ 6\0\83\0\0\fo\82\ 4|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\f\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\ 4|\ 1\0j\ 3\0\83\0\0\ 4|\ 1\0j\ 4\0\83\0\0\f\ 4|\ 1\0j\ 5\0\83\0\0\ 4|\ 1\0j\ 6\0\83\0\0\f\ 4|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\r\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo?\ 5|\ 1\0j\ 3\0\83\0\0\fo?\ 5|\ 1\0j\ 4\0\83\0\0o?\ 5|\ 1\0j\ 5\0\83\0\0o?\ 5|\ 1\0j\ 6\0\83\0\0\fo?\ 5|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\ e\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o\9d\ 5|\ 1\0j\ 3\0\83\0\0\fo\9d\ 5|\ 1\0j\ 4\0\83\0\0o\9d\ 5|\ 1\0j\ 5\0\83\0\0o\9d\ 5|\ 1\0j\ 6\0\83\0\0\fo\9d\ 5|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\ f\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\ 5|\ 1\0j\ 3\0\83\0\0\ 5|\ 1\0j\ 4\0\83\0\0\ 5|\ 1\0j\ 5\0\83\0\0\ 5|\ 1\0j\ 6\0\83\0\0\f\ 5|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\10\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0oX\ 6|\ 1\0j\ 3\0\83\0\0oX\ 6|\ 1\0j\ 4\0\83\0\0oX\ 6|\ 1\0j\ 5\0\83\0\0oX\ 6|\ 1\0j\ 6\0\83\0\0\foX\ 6|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\11\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\ 6|\ 1\0j\ 3\0\83\0\0\f\ 6|\ 1\0j\ 4\0\83\0\0\f\ 6|\ 1\0j\ 5\0\83\0\0\f\ 6|\ 1\0j\ 6\0\83\0\0\ 6|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\12\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o\17\a|\ 1\0j\ 3\0\83\0\0\fo\17\a|\ 1\0j\ 4\0\83\0\0\fo\17\a|\ 1\0j\ 5\0\83\0\0\fo\17\a|\ 1\0j\ 6\0\83\0\0o\17\a|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\13\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fov\a|\ 1\0j\ 3\0\83\0\0ov\a|\ 1\0j\ 4\0\83\0\0\fov\a|\ 1\0j\ 5\0\83\0\0\fov\a|\ 1\0j\ 6\0\83\0\0ov\a|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\14\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\a|\ 1\0j\ 3\0\83\0\0\a|\ 1\0j\ 4\0\83\0\0\f\a|\ 1\0j\ 5\0\83\0\0\f\a|\ 1\0j\ 6\0\83\0\0\a|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\15\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo3\b|\ 1\0j\ 3\0\83\0\0\fo3\b|\ 1\0j\ 4\0\83\0\0o3\b|\ 1\0j\ 5\0\83\0\0\fo3\b|\ 1\0j\ 6\0\83\0\0o3\b|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\16\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o\91\b|\ 1\0j\ 3\0\83\0\0\fo\91\b|\ 1\0j\ 4\0\83\0\0o\91\b|\ 1\0j\ 5\0\83\0\0\fo\91\b|\ 1\0j\ 6\0\83\0\0o\91\b|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\17\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\b|\ 1\0j\ 3\0\83\0\0\b|\ 1\0j\ 4\0\83\0\0\b|\ 1\0j\ 5\0\83\0\0\f\b|\ 1\0j\ 6\0\83\0\0\b|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\18\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0oL    |\ 1\0j\ 3\0\83\0\0oL     |\ 1\0j\ 4\0\83\0\0oL     |\ 1\0j\ 5\0\83\0\0\foL    |\ 1\0j\ 6\0\83\0\0oL     |\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\19\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo«    |\ 1\0j\ 3\0\83\0\0\fo«    |\ 1\0j\ 4\0\83\0\0\fo«    |\ 1\0j\ 5\0\83\0\0o«     |\ 1\0j\ 6\0\83\0\0o«     |\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\1a\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o      
34427 +|\ 1\0j\ 3\0\83\0\0\fo    
34428 +|\ 1\0j\ 4\0\83\0\0\fo    
34429 +|\ 1\0j\ 5\0\83\0\0o     
34430 +|\ 1\0j\ 6\0\83\0\0o     
34431 +|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\e\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fog
34432 +|\ 1\0j\ 3\0\83\0\0og
34433 +|\ 1\0j\ 4\0\83\0\0\fog
34434 +|\ 1\0j\ 5\0\83\0\0og
34435 +|\ 1\0j\ 6\0\83\0\0og
34436 +|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\1c\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0
34437 +|\ 1\0j\ 3\0\83\0\0
34438 +|\ 1\0j\ 4\0\83\0\0\f
34439 +|\ 1\0j\ 5\0\83\0\0
34440 +|\ 1\0j\ 6\0\83\0\0
34441 +|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\1d\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo"\v|\ 1\0j\ 3\0\83\0\0\fo"\v|\ 1\0j\ 4\0\83\0\0o"\v|\ 1\0j\ 5\0\83\0\0o"\v|\ 1\0j\ 6\0\83\0\0o"\v|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\1e\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o\7f\v|\ 1\0j\ 3\0\83\0\0\fo\7f\v|\ 1\0j\ 4\0\83\0\0o\7f\v|\ 1\0j\ 5\0\83\0\0o\7f\v|\ 1\0j\ 6\0\83\0\0o\7f\v|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d\1f\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\v|\ 1\0j\ 3\0\83\0\0\v|\ 1\0j\ 4\0\83\0\0\v|\ 1\0j\ 5\0\83\0\0\v|\ 1\0j\ 6\0\83\0\0\v|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o8\f|\ 1\0j\ 3\0\83\0\0o8\f|\ 1\0j\ 4\0\83\0\0o8\f|\ 1\0j\ 5\0\83\0\0o8\f|\ 1\0j\ 6\0\83\0\0o8\f|\ 1\0j\a\0\83\0\0\f\83\ 1\0\ 1t\0\0d!\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\98\f|\ 1\0j\ 3\0\83\0\0\fo\98\f|\ 1\0j\ 4\0\83\0\0\fo\98\f|\ 1\0j\ 5\0\83\0\0\fo\98\f|\ 1\0j\ 6\0\83\0\0\fo\98\f|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d"\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f|\ 1\0j\ 3\0\83\0\0\f\f|\ 1\0j\ 4\0\83\0\0\f\f|\ 1\0j\ 5\0\83\0\0\f\f|\ 1\0j\ 6\0\83\0\0\f\f|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d#\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\foV\r|\ 1\0j\ 3\0\83\0\0oV\r|\ 1\0j\ 4\0\83\0\0\foV\r|\ 1\0j\ 5\0\83\0\0\foV\r|\ 1\0j\ 6\0\83\0\0\foV\r|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d$\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\r|\ 1\0j\ 3\0\83\0\0\r|\ 1\0j\ 4\0\83\0\0\f\r|\ 1\0j\ 5\0\83\0\0\f\r|\ 1\0j\ 6\0\83\0\0\f\r|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d%\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\13\ e|\ 1\0j\ 3\0\83\0\0\fo\13\ e|\ 1\0j\ 4\0\83\0\0o\13\ e|\ 1\0j\ 5\0\83\0\0\fo\13\ e|\ 1\0j\ 6\0\83\0\0\fo\13\ e|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d&\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0oq\ e|\ 1\0j\ 3\0\83\0\0\foq\ e|\ 1\0j\ 4\0\83\0\0oq\ e|\ 1\0j\ 5\0\83\0\0\foq\ e|\ 1\0j\ 6\0\83\0\0\foq\ e|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d'\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\ e|\ 1\0j\ 3\0\83\0\0\ e|\ 1\0j\ 4\0\83\0\0\ e|\ 1\0j\ 5\0\83\0\0\f\ e|\ 1\0j\ 6\0\83\0\0\f\ e|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d(\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o,\ f|\ 1\0j\ 3\0\83\0\0o,\ f|\ 1\0j\ 4\0\83\0\0o,\ f|\ 1\0j\ 5\0\83\0\0\fo,\ f|\ 1\0j\ 6\0\83\0\0\fo,\ f|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d)\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\8b\ f|\ 1\0j\ 3\0\83\0\0\fo\8b\ f|\ 1\0j\ 4\0\83\0\0\fo\8b\ f|\ 1\0j\ 5\0\83\0\0o\8b\ f|\ 1\0j\ 6\0\83\0\0\fo\8b\ f|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d*\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\ f|\ 1\0j\ 3\0\83\0\0\f\ f|\ 1\0j\ 4\0\83\0\0\f\ f|\ 1\0j\ 5\0\83\0\0\ f|\ 1\0j\ 6\0\83\0\0\f\ f|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d+\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\foG\10|\ 1\0j\ 3\0\83\0\0oG\10|\ 1\0j\ 4\0\83\0\0\foG\10|\ 1\0j\ 5\0\83\0\0oG\10|\ 1\0j\ 6\0\83\0\0\foG\10|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d,\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\10|\ 1\0j\ 3\0\83\0\0\10|\ 1\0j\ 4\0\83\0\0\f\10|\ 1\0j\ 5\0\83\0\0\10|\ 1\0j\ 6\0\83\0\0\f\10|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d-\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\ 2\11|\ 1\0j\ 3\0\83\0\0\fo\ 2\11|\ 1\0j\ 4\0\83\0\0o\ 2\11|\ 1\0j\ 5\0\83\0\0o\ 2\11|\ 1\0j\ 6\0\83\0\0\fo\ 2\11|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d.\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o_\11|\ 1\0j\ 3\0\83\0\0\fo_\11|\ 1\0j\ 4\0\83\0\0o_\11|\ 1\0j\ 5\0\83\0\0o_\11|\ 1\0j\ 6\0\83\0\0\fo_\11|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d/\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\11|\ 1\0j\ 3\0\83\0\0\11|\ 1\0j\ 4\0\83\0\0\11|\ 1\0j\ 5\0\83\0\0\11|\ 1\0j\ 6\0\83\0\0\f\11|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d0\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o\18\12|\ 1\0j\ 3\0\83\0\0o\18\12|\ 1\0j\ 4\0\83\0\0o\18\12|\ 1\0j\ 5\0\83\0\0o\18\12|\ 1\0j\ 6\0\83\0\0\fo\18\12|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d1\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fow\12|\ 1\0j\ 3\0\83\0\0\fow\12|\ 1\0j\ 4\0\83\0\0\fow\12|\ 1\0j\ 5\0\83\0\0\fow\12|\ 1\0j\ 6\0\83\0\0ow\12|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d2\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\12|\ 1\0j\ 3\0\83\0\0\f\12|\ 1\0j\ 4\0\83\0\0\f\12|\ 1\0j\ 5\0\83\0\0\f\12|\ 1\0j\ 6\0\83\0\0\12|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d3\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo3\13|\ 1\0j\ 3\0\83\0\0o3\13|\ 1\0j\ 4\0\83\0\0\fo3\13|\ 1\0j\ 5\0\83\0\0\fo3\13|\ 1\0j\ 6\0\83\0\0o3\13|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d4\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o\90\13|\ 1\0j\ 3\0\83\0\0o\90\13|\ 1\0j\ 4\0\83\0\0\fo\90\13|\ 1\0j\ 5\0\83\0\0\fo\90\13|\ 1\0j\ 6\0\83\0\0o\90\13|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d5\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\13|\ 1\0j\ 3\0\83\0\0\f\13|\ 1\0j\ 4\0\83\0\0\13|\ 1\0j\ 5\0\83\0\0\f\13|\ 1\0j\ 6\0\83\0\0\13|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d6\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0oK\14|\ 1\0j\ 3\0\83\0\0\foK\14|\ 1\0j\ 4\0\83\0\0oK\14|\ 1\0j\ 5\0\83\0\0\foK\14|\ 1\0j\ 6\0\83\0\0oK\14|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d7\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\14|\ 1\0j\ 3\0\83\0\0\14|\ 1\0j\ 4\0\83\0\0\14|\ 1\0j\ 5\0\83\0\0\f\14|\ 1\0j\ 6\0\83\0\0\14|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d8\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o\ 4\15|\ 1\0j\ 3\0\83\0\0o\ 4\15|\ 1\0j\ 4\0\83\0\0o\ 4\15|\ 1\0j\ 5\0\83\0\0\fo\ 4\15|\ 1\0j\ 6\0\83\0\0o\ 4\15|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d9\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fob\15|\ 1\0j\ 3\0\83\0\0\fob\15|\ 1\0j\ 4\0\83\0\0\fob\15|\ 1\0j\ 5\0\83\0\0ob\15|\ 1\0j\ 6\0\83\0\0ob\15|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d:\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o¿\15|\ 1\0j\ 3\0\83\0\0\fo¿\15|\ 1\0j\ 4\0\83\0\0\fo¿\15|\ 1\0j\ 5\0\83\0\0o¿\15|\ 1\0j\ 6\0\83\0\0o¿\15|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d;\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\1c\16|\ 1\0j\ 3\0\83\0\0o\1c\16|\ 1\0j\ 4\0\83\0\0\fo\1c\16|\ 1\0j\ 5\0\83\0\0o\1c\16|\ 1\0j\ 6\0\83\0\0o\1c\16|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d<\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0ox\16|\ 1\0j\ 3\0\83\0\0ox\16|\ 1\0j\ 4\0\83\0\0\fox\16|\ 1\0j\ 5\0\83\0\0ox\16|\ 1\0j\ 6\0\83\0\0ox\16|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d=\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\f\16|\ 1\0j\ 3\0\83\0\0\f\16|\ 1\0j\ 4\0\83\0\0\16|\ 1\0j\ 5\0\83\0\0\16|\ 1\0j\ 6\0\83\0\0\16|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d>\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0o1\17|\ 1\0j\ 3\0\83\0\0\fo1\17|\ 1\0j\ 4\0\83\0\0o1\17|\ 1\0j\ 5\0\83\0\0o1\17|\ 1\0j\ 6\0\83\0\0o1\17|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d?\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\fo\8d\17|\ 1\0j\ 3\0\83\0\0o\8d\17|\ 1\0j\ 4\0\83\0\0o\8d\17|\ 1\0j\ 5\0\83\0\0o\8d\17|\ 1\0j\ 6\0\83\0\0o\8d\17|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d@\0\83\ 1\0}\ 1\0|\0\0j\ 1\0|\ 1\0j\ 2\0\83\0\0\17|\ 1\0j\ 3\0\83\0\0\17|\ 1\0j\ 4\0\83\0\0\17|\ 1\0j\ 5\0\83\0\0\17|\ 1\0j\ 6\0\83\0\0\17|\ 1\0j\a\0\83\0\0\83\ 1\0\ 1t\0\0d@\0\83\ 1\0}\ 1\0|\ 1\0j
34442 +\0t\v\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d?\0\83\ 2\0\ 1|\ 1\0j
34443 +\0t\ e\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d@\0\83\ 2\0\ 1|\ 1\0j\ f\0t\v\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d>\0\83\ 2\0\ 1|\ 1\0j\ f\0t\ e\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d@\0\83\ 2\0\ 1|\ 1\0j\10\0t\v\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d<\0\83\ 2\0\ 1|\ 1\0j\10\0t\ e\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d@\0\83\ 2\0\ 1|\ 1\0j\11\0t\v\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d8\0\83\ 2\0\ 1|\ 1\0j\11\0t\ e\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d@\0\83\ 2\0\ 1|\ 1\0j\12\0t\v\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d0\0\83\ 2\0\ 1|\ 1\0j\12\0t\ e\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d@\0\83\ 2\0\ 1|\ 1\0j\13\0t\v\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0\0\83\ 2\0\ 1|\ 1\0j\13\0t\ e\0\83\ 1\0\ 1|\0\0j\f\0|\ 1\0j\r\0\83\0\0d@\0\83\ 2\0\ 1d\0\0S(A\0\0\0Ni\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i   \0\0\0i
34444 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0i\e\0\0\0i\1c\0\0\0i\1d\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i&\0\0\0i'\0\0\0i(\0\0\0i)\0\0\0i*\0\0\0i+\0\0\0i,\0\0\0i-\0\0\0i.\0\0\0i/\0\0\0i0\0\0\0i1\0\0\0i2\0\0\0i3\0\0\0i4\0\0\0i5\0\0\0i6\0\0\0i7\0\0\0i8\0\0\0i9\0\0\0i:\0\0\0i;\0\0\0i<\0\0\0i=\0\0\0i>\0\0\0i?\0\0\0(\14\0\0\0t\17\0\0\0MEDFileMeshReadSelectorR0\0\0\0t\18\0\0\0isCellFamilyFieldReadingt\18\0\0\0isNodeFamilyFieldReadingt\16\0\0\0isCellNameFieldReadingt\16\0\0\0isNodeNameFieldReadingt\15\0\0\0isCellNumFieldReadingt\15\0\0\0isNodeNumFieldReadingRC\ 3\0\0t\b\0\0\0__repr__t\19\0\0\0setCellFamilyFieldReadingRN\0\0\0R+\0\0\0t\a\0\0\0getCodeR.\0\0\0t\19\0\0\0setNodeFamilyFieldReadingt\17\0\0\0setCellNameFieldReadingt\17\0\0\0setNodeNameFieldReadingt\16\0\0\0setCellNumFieldReadingt\16\0\0\0setNodeNumFieldReading(\ 2\0\0\0R    \0\0\0t\ 3\0\0\0mrs(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1c\0\0\0testMEDFileMeshReadSelector1}\f\0\0s<\ 1\0\0\0\ 1       \ 1O\ 1
34445 +\0
34446 +\ 2\f\ 1U\ 1\f\ 1T\ 1\f\ 1T\ 1\f\ 1S\ 1\f\ 1T\ 1\f\ 1S\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1T\ 1\f\ 1S\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1T\ 1\f\ 1S\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1Q\ 1\f\ 1P\ 1\f\ 1T\ 1\f\ 1S\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1Q\ 1\f\ 1P\ 1\f\ 1S\ 1\f\ 1R\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1Q\ 1\f\ 1P\ 1\f\ 1R\ 1\f\ 1Q\ 1\f\ 1Q\ 1\f\ 1P\ 1\f\ 1Q\ 1\f\ 1P\ 1\f\ 1P\ 1\f\ 1O\ 2\f\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1\r\ 1\16\ 1c\ 1\0\0\0\18\0\0\0\a\0\0\0C\0\0\0s\95
34447 +\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0\83\ 2\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1|\ 2\0j\ 2\0t\ 3\0d\ 4\0d\ 5\0d\ 3\0g\ 3\0\83\ 2\0\ 1|\ 2\0j\ 4\0t\ 5\0d!\0d"\0d#\0g\ 3\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\b\0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\a\0\83\0\0^\ 2\0qa\0}\ 4\0x-\0t\b\0|\ 4\0\83\ 1\0D]\1f\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j       \0|\ 3\0d\ 4\0g\ 2\0\83\ 1\0\ 1q\86\0Wt\0\0j
34448 +\0|\ 4\0\83\ 1\0}\ 4\0t\0\0\0d\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 1\0\83\0\0\ 1|\ 6\0j\ 2\0t\v\0d\ 4\0d\ 5\0d\ 3\0d
34449 +\0g\ 4\0\83\ 2\0\ 1|\ 6\0j\ 4\0t\ 5\0d$\0d%\0d&\0d'\0g\ 4\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\v\0\83\ 1\0D]\12\0}\ 3\0|\ 6\0j\a\0\83\0\0^\ 2\0q\19\ 1}\a\0x1\0t\b\0|\a\0\83\ 1\0D]#\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0d\v\0|\ 3\0\17d\ 4\0g\ 2\0\83\ 1\0\ 1q>\ 1Wt\0\0j
34450 +\0|\a\0\83\ 1\0}\a\0t\0\0j
34451 +\0|\ 4\0|\a\0\83\ 2\0}\b\0|\b\0j\f\0d\f\0\83\ 1\0\ 1|\b\0j\r\0\83\0\0j\ e\0d\r\0d\ e\0g\ 2\0\83\ 1\0\ 1|\b\0j\ f\0\83\0\0d\ 4\0\19}      \0t\10\0\83\0\0}
34452 +\0|
34453 +\0j\11\0|\b\0|       \0g\ 2\0\83\ 1\0\ 1t\12\0d\ 5\0d\ 3\0d
34454 +\0d\v\0d\ f\0g\ 5\0\83\ 1\0}\v\0|\v\0j\f\0d\10\0\83\ 1\0\ 1t\12\0d\ 5\0d\ 3\0d
34455 +\0d\v\0d\11\0d\12\0g\ 6\0\83\ 1\0}\f\0|\f\0j\f\0d\13\0\83\ 1\0\ 1|
34456 +\0j\13\0d\ 4\0|\v\0|\f\0g\ 2\0\83\ 2\0\ 1t\12\0j\14\0d\ 4\0d\14\0d\ 3\0\83\ 3\0}\r\0|\r\0j\f\0d\15\0\83\ 1\0\ 1t\12\0j\14\0d\ 5\0d\14\0d\11\0\83\ 3\0}\ e\0|\ e\0j\f\0d\16\0\83\ 1\0\ 1|
34457 +\0j\13\0d\17\0|\r\0|\ e\0g\ 2\0\83\ 2\0\ 1t\12\0j\14\0d\ 4\0d\14\0d\ 3\0\83\ 3\0}\ f\0|\ f\0j\f\0d\18\0\83\ 1\0\ 1t\12\0j\14\0d\ 5\0d\14\0d\11\0\83\ 3\0}\10\0|\10\0j\f\0d\19\0\83\ 1\0\ 1|
34458 +\0j\13\0d\ 5\0|\ f\0|\10\0g\ 2\0\83\ 2\0\ 1|
34459 +\0j\15\0d\ 4\0t\12\0j\14\0d\ 3\0d\1a\0d\ 5\0\83\ 3\0\83\ 2\0\ 1|
34460 +\0j\15\0d\17\0t\12\0j\14\0d
34461 +\0d\e\0d\ 5\0\83\ 3\0\83\ 2\0\ 1|
34462 +\0j\15\0d\ 5\0t\12\0j\14\0d\b\0d\1c\0d\ 5\0\83\ 3\0\83\ 2\0\ 1|
34463 +\0j\16\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\17\0j\18\0|\ 1\0d\f\0d\17\0d\17\0t\19\0\83\0\0\83\ 5\0}
34464 +\0|
34465 +\0j\1a\0\83\0\0}\11\0|
34466 +\0j\e\0d\ 4\0\83\ 1\0\ 1|
34467 +\0j\e\0d\17\0\83\ 1\0\ 1|
34468 +\0j\1a\0\83\0\0}\12\0|\0\0j\1c\0|\12\0|\11\0\18d+\0k\ 5\0\83\ 1\0\ 1t\17\0j\18\0|\ 1\0t\19\0d\ 4\0\83\ 1\0\83\ 2\0}
34469 +\0|\0\0j\1d\0t\1e\0|
34470 +\0j\1f\0\83\0\0\83\ 1\0d\ 4\0\83\ 2\0\ 1|\0\0j\1c\0|
34471 +\0j\e\0d\ 4\0\83\ 1\0\0|\b\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34472 +\0j\e\0d\17\0\83\ 1\0\0\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34473 +\0j!\0d\ 4\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34474 +\0j!\0d\17\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34475 +\0j!\0d\ 5\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34476 +\0j#\0d\ 4\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34477 +\0j#\0d\17\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34478 +\0j#\0d\ 5\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\12\0|
34479 +\0j\1a\0\83\0\0\18}\13\0|\0\0j\1c\0|\13\0d\b\0d,\0\14d
34480 +\0\14d.\0\17k\ 5\0\83\ 1\0\ 1t\17\0j\18\0|\ 1\0t\19\0d\ 5\0\83\ 1\0\83\ 2\0}
34481 +\0|\0\0j\1d\0t\1e\0|
34482 +\0j\1f\0\83\0\0\83\ 1\0d\ f\0\83\ 2\0\ 1|\0\0j\1c\0|
34483 +\0j\e\0d\ 4\0\83\ 1\0\0|\b\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34484 +\0j\e\0d\17\0\83\ 1\0\0\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34485 +\0j!\0d\ 4\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34486 +\0j!\0d\17\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34487 +\0j!\0d\ 5\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34488 +\0j#\0d\ 4\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34489 +\0j#\0d\17\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34490 +\0j#\0d\ 5\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\12\0|
34491 +\0j\1a\0\83\0\0\18}\14\0|\0\0j\1c\0|\14\0|\13\0k\0\0\83\ 1\0\ 1|\0\0j\1c\0|\14\0d\b\0d/\0\14d\ 5\0\14d1\0\17k\ 5\0\83\ 1\0\ 1t\10\0|\ 1\0t\19\0d
34492 +\0\83\ 1\0\83\ 2\0}
34493 +\0|\0\0j\1d\0t\1e\0|
34494 +\0j\1f\0\83\0\0\83\ 1\0d\ f\0\83\ 2\0\ 1|\0\0j\1c\0|
34495 +\0j\e\0d\ 4\0\83\ 1\0\0|\b\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34496 +\0j\e\0d\17\0\83\ 1\0\0\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34497 +\0j!\0d\ 4\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34498 +\0j!\0d\17\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34499 +\0j!\0d\ 5\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34500 +\0j#\0d\ 4\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34501 +\0j#\0d\17\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1c\0|
34502 +\0j#\0d\ 5\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\12\0|
34503 +\0j\1a\0\83\0\0\18}\15\0|\0\0j\1c\0|\15\0|\14\0k\0\0\83\ 1\0\ 1|\0\0j\1c\0|\15\0d\b\0d2\0\14d\ 5\0\14d4\0\17k\ 5\0\83\ 1\0\ 1t\10\0|\ 1\0d\f\0d\17\0d\17\0t\19\0d\1f\0\83\ 1\0\83\ 5\0}
34504 +\0|\0\0j\1d\0t\1e\0|
34505 +\0j\1f\0\83\0\0\83\ 1\0d\ f\0\83\ 2\0\ 1|\0\0j\1c\0|
34506 +\0j\e\0d\ 4\0\83\ 1\0\0|\b\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34507 +\0j\e\0d\17\0\83\ 1\0\0\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34508 +\0j!\0d\ 4\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34509 +\0j!\0d\17\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34510 +\0j!\0d\ 5\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34511 +\0j#\0d\ 4\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34512 +\0j#\0d\17\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34513 +\0j#\0d\ 5\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\12\0|
34514 +\0j\1a\0\83\0\0\18}\16\0|\0\0j\1c\0|\16\0|\15\0k\0\0\83\ 1\0\ 1|\0\0j\1c\0|\16\0d6\0k\ 5\0\83\ 1\0\ 1t\10\0j\18\0|\ 1\0d\f\0d\17\0d\17\0t\19\0\0\83\ 1\0\83\ 5\0}
34515 +\0|\0\0j\1d\0t\1e\0|
34516 +\0j\1f\0\83\0\0\83\ 1\0d\ f\0\83\ 2\0\ 1|\0\0j\1c\0|
34517 +\0j\e\0d\ 4\0\83\ 1\0\0|\b\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34518 +\0j\e\0d\17\0\83\ 1\0\0\0d\1e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1c\0|
34519 +\0j!\0d\ 4\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34520 +\0j!\0d\17\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34521 +\0j!\0d\ 5\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34522 +\0j#\0d\ 4\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34523 +\0j#\0d\17\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\1c\0|
34524 +\0j#\0d\ 5\0\83\ 1\0d\0\0k\ 3\0\83\ 1\0\ 1|\12\0|
34525 +\0j\1a\0\83\0\0\18}\17\0|\0\0j\1c\0|\17\0|\16\0k\0\0\83\ 1\0\ 1|\0\0j\1d\0|\17\0d\ 4\0\83\ 2\0\ 1d\0\0S(7\0\0\0Ns\f\0\0\0Pyfile70.medR=\ 3\0\0i\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0R>\ 3\0\0i\ 3\0\0\0i\ 5\0\0\0\ 2\0\0s\ 6\0\0\0XX [m]s\b\0\0\0YYY [km]i\ 6\0\0\0R\93\ 2\0\0i\a\0\0\0i\b\0\0\0R\95\ 2\0\0\0\0\0\ 1\0\0t\ 4\0\0\0grp3iÿÿÿÿt\ 4\0\0\0grp4t\ 4\0\0\0grp5i\v\0\0\0i#\0\0\0i$\0\0\0i    \0\0\0g\82vIhÂ%<=i\13\0\0\0i3\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0i)\0\0\0\0\0\0iH\ 1\0\0i(\ 1\0\0i)\0\0\0i\80\0\0\0i\80\ 1\0\0i)\0\0\0i\80\0\0\0i\80\ 1\0\0i)\0\0\0i\80\0\0\0i\80\0\0\0i\80\0\0\0i\0\ 1\0\0($\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0R[\ 2\0\0R`\0\0\0RB\0\0\0\0\0\0\ 1\0\0R\9b\ 1\0\0R>\0\0\0RR\ 1\0\0Rk\0\0\0Rl\0\0\0R"\ 2\0\0R\98\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R|\ 3\0\0\ 2\0\0R}\0\0\0R0\0\0\0R+\0\0\0Ry\0\0\0\ 1\0\0R1\0\0\0R\9e\0\0\0R/\ 2\0\0R\8c\ 2\0\0(\18\0\0\0R       \0\0\0R9\ 1\0\0R=\ 3\0\0\0\0\0RH\ 3\0\0\0\0\0R>\ 3\0\0RI\ 3\0\0R\83\0\0\0R\84\0\0\0R\86\0\0\0R\93\ 2\0\0R\95\ 2\0\0\ 1\0\0R\8d\ 3\0\0R\8e\ 3\0\0R\8f\ 3\0\0t\ f\0\0\0b4_ref_heap_memt\f\0\0\0ref_heap_memt\ 6\0\0\0delta1t\ 6\0\0\0delta2t\ 6\0\0\0delta3t\ 6\0\0\0delta4t\ 6\0\0\0delta5(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\17\0\0\0testPartialReadOfMeshes\1e\r\0\0\0\0\0\0\ 1\ 6\ 2\ f\ 1
34526 +\0\19\ 1\1c\ 1%\ 1\19\0\17\ 1\ f\ 1\ f\ 1
34527 +\0\1c\ 1\1f\ 1%\ 1\19\0\e\ 1\ f\ 1\12\ 1\r\0\19\ 1\10\ 1  \0\13\ 2\e\0\r\ 1\1e\0\r\ 1\16\ 1\15\0\r\ 1\15\0\r\ 1\16\ 1\15\0\r\ 1\15\0\r\ 1\16\ 1\1f\ 1\1f\ 1\1f\ 2\10\ 2\1e\ 1\f\ 1\r\ 1\r\ 1\f\ 2\17\ 2\18\ 1\1c\ 1"\ 1"\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\10\ 1\1f\ 2\18\ 1\1c\ 1"\ 1"\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\10\ 1\13\ 1\1f\ 2\15\ 1\1c\ 1"\ 1"\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\10\ 1\13\ 1\1f\ 2\1e\ 1\1c\ 1"\ 1"\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\10\ 1\13\ 1\13\ 2!\ 1\1c\ 1"\ 1"\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\10\ 1\13\ 1\10\ 1c\ 1\0\0\0\ f\0\0\0\r\0\0\0C\0\0\0sE\a\0\0t\0\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 1\0\83\0\0\ 1|\ 1\0j\ 2\0t\ 3\0d\ 3\0d\ 4\0d\ 2\0g\ 3\0\83\ 2\0\ 1|\ 1\0j\ 4\0t\ 5\0d#\0d$\0d%\0g\ 3\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d\a\0\83\ 1\0D]\12\0}\ 2\0|\ 1\0j\a\0\83\0\0^\ 2\0q[\0}\ 3\0x-\0t\b\0|\ 3\0\83\ 1\0D]\1f\0\\ 2\0}\ 2\0}\ 4\0|\ 4\0j     \0|\ 2\0d\ 3\0g\ 2\0\83\ 1\0\ 1q\80\0Wt\0\0j
34528 +\0|\ 3\0\83\ 1\0}\ 3\0t\0\0d\b\0d\ 2\0\83\ 2\0}\ 5\0|\ 5\0j\ 1\0\83\0\0\ 1|\ 5\0j\ 2\0t\v\0d\ 3\0d\ 4\0d\ 2\0\0g\ 4\0\83\ 2\0\ 1|\ 5\0j\ 4\0t\ 5\0d&\0d'\0d(\0d)\0g\ 4\0\83\ 1\0\83\ 1\0\ 1g\0\0t\ 6\0d
34529 +\0\83\ 1\0D]\12\0}\ 2\0|\ 5\0j\a\0\83\0\0^\ 2\0q\13\ 1}\ 6\0x1\0t\b\0|\ 6\0\83\ 1\0D]#\0\\ 2\0}\ 2\0}\ 4\0|\ 4\0j     \0d
34530 +\0|\ 2\0\17d\ 3\0g\ 2\0\83\ 1\0\ 1q8\ 1Wt\0\0j
34531 +\0|\ 6\0\83\ 1\0}\ 6\0t\0\0j
34532 +\0|\ 3\0|\ 6\0\83\ 2\0}\a\0|\a\0j\f\0d\v\0\83\ 1\0\ 1|\a\0j\r\0\83\0\0j\ e\0d\f\0d\r\0g\ 2\0\83\ 1\0\ 1|\a\0j\ f\0\83\0\0d\ 3\0\19}\b\0t\10\0\83\0\0}     \0|      \0j\11\0|\a\0|\b\0g\ 2\0\83\ 1\0\ 1t\12\0\83\0\0}
34533 +\0t\13\0t\14\0\83\ 1\0}\v\0t\ 5\0d\ e\0\83\ 1\0}\f\0|\f\0j\15\0d\ f\0\83\ 1\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\10\0\83\ 1\0\ 1t\17\0d\ 3\0d\ 4\0d\ 2\0d  \0d\a\0d
34534 +\0d\11\0g\a\0\83\ 1\0}\r\0|\r\0j\f\0d\12\0\83\ 1\0\ 1|
34535 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 4\0\ 1t\12\0\83\0\0}
34536 +\0t\13\0t\14\0\83\ 1\0}\v\0t\ 5\0d\13\0\83\ 1\0}\f\0|\f\0j\15\0d\ f\0\83\ 1\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\10\0\83\ 1\0\ 1t\17\0d\ 3\0d\ 4\0d\ 2\0d  \0d\a\0d
34537 +\0d\11\0g\a\0\83\ 1\0}\r\0|\r\0j\f\0d\12\0\83\ 1\0\ 1|\0\0j\19\0t\1a\0|
34538 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 6\0\ 1t\12\0\83\0\0}
34539 +\0t\13\0t\e\0\83\ 1\0}\v\0t\ 5\0d\ e\0\83\ 1\0}\f\0|\f\0j\15\0d\ f\0\83\ 1\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\10\0\83\ 1\0\ 1t\17\0d\ 4\0d\ 2\0d     \0d
34540 +\0d\11\0d\ e\0d\13\0g\a\0\83\ 1\0}\r\0|\r\0j\f\0d\12\0\83\ 1\0\ 1|
34541 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 4\0\ 1|\0\0j\1c\0|
34542 +\0j\1d\0\83\0\0j\1e\0|\f\0d\14\0\83\ 2\0\83\ 1\0\ 1t\12\0\83\0\0}
34543 +\0t\13\0t\1f\0\83\ 1\0}\v\0t\ 5\0d\15\0\83\ 1\0}\f\0|\f\0j\15\0d\ f\0\83\ 1\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\10\0\83\ 1\0\ 1t\17\0d\ 4\0d\ 2\0d     \0d
34544 +\0d\11\0d\ e\0d\13\0g\a\0\83\ 1\0}\r\0|\r\0j\f\0d\12\0\83\ 1\0\ 1|\v\0\0|\a\0|\r\0\19\83\ 1\0\ 1|\v\0j!\0d\ 3\0d\ 4\0g\ 2\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0g\ 6\0d\16\0d\16\0d\17\0d\17\0d\18\0d\18\0g\ 6\0d\16\0d\19\0d\18\0g\ 3\0\83\ 4\0\ 1|\v\0j!\0d\ 2\0g\ 1\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0g\ 6\0d\16\0d\16\0g\ 2\0d\ 6\0g\ 1\0\83\ 4\0\ 1|\v\0j!\0d  \0d\a\0d
34545 +\0d\11\0g\ 4\0d\ 5\0d\ 5\0d\ 6\0d\ 5\0d\ 6\0d\ 6\0d\ 5\0d\ 6\0g\b\0d\18\0d\18\0d\1a\0d\1a\0d\16\0d\16\0d\e\0d\e\0d\1c\0d\1c\0g
34546 +\0d\1a\0d\16\0d\e\0d\1d\0d\1e\0g\ 5\0\83\ 4\0\ 1|\v\0\0d\0\0\83\ 1\0\ 1|
34547 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 4\0\ 1|\0\0j\1c\0|
34548 +\0j\1d\0\83\0\0j\1e\0|\f\0d\14\0\83\ 2\0\83\ 1\0\ 1t\ 5\0d\1f\0\83\ 1\0}\f\0|\f\0j\15\0\0\83\ 1\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|\0\0j\19\0t\1a\0|
34549 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 6\0\ 1t\ 5\0d\15\0\83\ 1\0}\f\0|\f\0j\15\0d\ f\0\83\ 1\0\ 1|\0\0j\1c\0|
34550 +\0j\1d\0\83\0\0j\1e\0|\f\0d\14\0\83\ 2\0\83\ 1\0\ 1t\12\0\83\0\0}
34551 +\0t\13\0t#\0\83\ 1\0}\v\0t\ 5\0d!\0\83\ 1\0}\f\0|\f\0j\15\0d\ f\0\83\ 1\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|\v\0j\f\0d\10\0\83\ 1\0\ 1t\17\0d\ 4\0d\ 2\0d     \0d
34552 +\0d\11\0d\ e\0d\13\0g\a\0\83\ 1\0}\r\0|\r\0j\f\0d\12\0\83\ 1\0\ 1|
34553 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 4\0\ 1|\0\0j\1c\0|
34554 +\0j\1d\0\83\0\0j\1e\0|\f\0d\14\0\83\ 2\0\83\ 1\0\ 1t\ 5\0d\1f\0\83\ 1\0}\ e\0|\ e\0j\15\0d"\0\83\ 1\0\ 1|\v\0j\16\0|\ e\0\83\ 1\0\ 1|\0\0j\19\0t\1a\0|
34555 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 6\0\ 1|\0\0j\1c\0|
34556 +\0j\1d\0\83\0\0j\1e\0|\f\0d\14\0\83\ 2\0\83\ 1\0\ 1t\12\0\83\0\0}
34557 +\0|\0\0j\19\0t\1a\0|
34558 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 6\0\ 1|\0\0j\19\0t\1a\0|
34559 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 6\0\ 1|\v\0j\16\0|\f\0\83\ 1\0\ 1|
34560 +\0j\18\0|\v\0|       \0d\ 3\0|\r\0\83\ 4\0\ 1d\0\0S(*\0\0\0NR=\ 3\0\0i\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0R>\ 3\0\0i\ 3\0\0\0i\ 5\0\0\0\ 2\0\0s\ 6\0\0\0XX [m]s\b\0\0\0YYY [km]i\a\0\0\0\ 3\0\0\0\0\0anonymousi\ 6\0\0\0R\83\ 1\0\0i\b\0\0\0g»½×Ùß|Û=i\e\0\0\0g333333Ó?gffffffæ?g\9a\99\99\99\99\99¹?g333333ã?g\9a\99\99\99\99\99É?g\9a\99\99\99\99\99Ù?g\0\0\0\0\0\0à?gìQ¸\1e\85ë±?g¸\1e\85ëQ¸\9e?i\1a\0\0\0i\10\ 4\0\0i\19\0\0\0i\1a\ 4\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 2\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0($\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0R[\ 2\0\0R`\0\0\0RB\0\0\0\0\0\0\ 1\0\0R\9b\ 1\0\0R>\0\0\0RR\ 1\0\0\0\0\0Rw\ 1\0\0R\1c\ 1\0\0Ry\ 1\0\0R{\ 1\0\0Rk\0\0\0R|\ 1\0\0R)\0\0\0R*\0\0\0R\13\ 1\0\0R0\0\0\0R+\ 1\0\0R1\0\0\0R\a\ 1\0\0\0\0\0R\\ 2\0\0R/\ 2\0\0R\ f\ 1\0\0(\ f\0\0\0R  \0\0\0R=\ 3\0\0\0\0\0RH\ 3\0\0\0\0\0R>\ 3\0\0RI\ 3\0\0R\83\0\0\0R\84\0\0\0R\86\0\0\0\0\0\0R\b\0\0\0R\82\ 1\0\0R\83\ 1\0\0t\ 5\0\0\0vals2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testCheckCompatibilityPfl1\92\r\0\0\0\0\0\0\ 2\ f\ 1
34561 +\0\19\ 1\1c\ 1%\ 1\19\0\17\ 1\ f\ 1\ f\ 1
34562 +\0\1c\ 1\1f\ 1%\ 1\19\0\e\ 1\ f\ 1\12\ 1\r\0\19\ 1\10\ 1  \0\13\ 2     \ 1\f\ 1\f\0\r\ 1\r\ 1\r\ 1!\0\r\ 1\16\ 2       \ 1\f\ 1\f\0\r\ 1\r\ 1\r\ 1!\0\r\ 1\1f\ 2       \ 1\f\ 1\f\0\r\ 1\r\ 1\r\ 1!\0\r\ 1\16\ 1\1f\ 2     \ 1\f\ 1\f\0\r\ 1\r\ 1\r\ 1!\0\r\ 1\11\ 1I\ 14\ 1g\ 1\r\ 1\16\ 1\1f\ 1\f\0\r\0\r\ 1\1f\ 1\f\0\r\ 1\1f\ 2     \ 1\f\ 1\f\0\r\ 1\r\ 1\r\ 1!\0\r\ 1\16\ 1\1f\ 1\f\0\r\ 1\r\ 1\1f\ 1\1f\ 2   \ 1\1f\ 1\1f\ 1\r\ 1\16\ 1c\ 1\0\0\0\a\0\0\0\14\0\0\0C\0\0\0s\1a\ 2\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 3\0|\ 3\0j\ 3\0|\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j\ 4\0\83\0\0}\ 4\0t\ 5\0d\ 3\0d\ 4\0\83\ 2\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0j\ 6\0\83\0\0\83\ 1\0\ 1|\ 5\0j\a\0d\ 5\0\83\ 1\0\ 1t\b\0\83\0\0}\ 6\0|\ 6\0j    \0d\ 5\0|\ 5\0\83\ 2\0\ 1|\ 6\0j
34563 +\0d\ 4\0t\v\0t\f\0t\r\0d\ 6\0d\a\0\83\ 2\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\ 6\0j\ e\0d\ 4\0t\v\0d\b\0d\b\0d\b\0d\b\0d\b\0d   \0d      \0d      \0d      \0d      \0d      \0d\ 5\0d\b\0d
34564 +\0d
34565 +\0d
34566 +\0g\10\0\83\ 1\0\83\ 2\0\ 1|\ 6\0j\ f\0|\ 1\0d\v\0\83\ 2\0\ 1~\ 6\0~\ 2\0~\ 3\0~\ 4\0~\ 5\0t\10\0j\11\0|\ 1\0\83\ 1\0}\ 6\0|\0\0j\12\0d\ e\0|\ 6\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\14\0|\ 6\0j\ 6\0\83\0\0j\15\0t\0\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0g\10\0\83\ 1\0d\r\0\83\ 2\0\83\ 1\0\ 1|\0\0j\14\0|\ 6\0j\16\0d\ 4\0\83\ 1\0j\15\0t\v\0t\f\0t\r\0d\ 6\0d\a\0\83\ 2\0\83\ 1\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\14\0|\ 6\0j\17\0d\ 4\0\83\ 1\0j\15\0t\v\0d\b\0d\b\0d\b\0d\b\0d\b\0d       \0d      \0d      \0d      \0d      \0d      \0d\ 5\0d\b\0d
34567 +\0d
34568 +\0d
34569 +\0g\10\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1d\0\0S(\1f\0\0\0Ns\f\0\0\0Pyfile71.medi\ 4\0\0\0\ 2\0\0i\ 1\0\0\0i\0\0\0\0i
34570 +\0\0\0i\1a\0\0\0iÿÿÿÿiþÿÿÿiýÿÿÿi\ 2\0\0\0i\ 3\0\0\0g\11ê-\81\99\97q=(\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 3\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 3\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 3\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 3\0\0\0(\18\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0R[\0\0\0\0\0\0R]\0\0\0R>\0\0\0Rj\0\0\0R\98\0\0\0Rk\0\0\0Rm\0\0\0Rn\0\0\0\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R+\0\0\0R,\0\0\0R0\0\0\0R1\0\0\0R\8c\ 2\0\0R\9e\0\0\0(\a\0\0\0R     \0\0\0R9\ 1\0\0\ 2\0\0R\80\0\0\0\0\0\0R{\ 2\0\0R\83\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\15\0\0\0testWRMeshWithNoCellsä\r\0\0s*\0\0\0\0\ 1\ 6\ 1\f\0
34571 +\ 1      \0\10\0\f\ 1\ f\0\13\0\r\ 1     \ 1\10\ 1%\ 1F\ 1\10\ 1\ f\ 2\ f\ 1\16\ 1U\ 14\ 1U\ 1c\ 1\0\0\0\14\0\0\0
34572 +\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0t\ 1\0\83\ 2\0}\ 2\0|\ 2\0j\ 2\0\83\0\0\ 1|\ 2\0j\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0\ 1|\ 2\0j\ 4\0t\ 5\0d\a\0d\a\0d\b\0d\b\0d\b\0d\a\0d\a\0d\b\0g\b\0d      \0d\ 4\0\83\ 3\0\83\ 1\0\ 1g\0\0t\ 6\0d      \0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\a\0\83\0\0^\ 2\0qv\0}\ 4\0x7\0t\b\0|\ 4\0\83\ 1\0D])\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0t
34573 +\0|\ 3\0\83\ 1\0d
34574 +\0\14d\a\0g\ 2\0\83\ 1\0\ 1q\9b\0Wt\0\0j\v\0|\ 4\0\83\ 1\0j\f\0\83\0\0}\ 6\0|\ 6\0j\r\0\83\0\0\ 1g\0\0t\ 6\0d\v\0\83\ 1\0D]\12\0}\ 3\0|\ 2\0j\a\0\83\0\0^\ 2\0\0}\ 4\0x7\0t\b\0|\ 4\0\83\ 1\0D])\0\\ 2\0}\ 3\0}\ 5\0|\ 5\0j      \0t
34575 +\0|\ 3\0\83\ 1\0d
34576 +\0\14d
34577 +\0g\ 2\0\83\ 1\0\ 1q\19\ 1Wt\0\0j\v\0|\ 4\0\83\ 1\0j\f\0\83\0\0}\a\0|\a\0j\r\0\83\0\0\ 1|\a\0j\ e\0\83\0\0\ 1t\ f\0j\10\0|\ 6\0|\a\0\83\ 2\0}\ 2\0t\11\0\83\0\0}\b\0|\b\0j\12\0d\ 3\0|\ 2\0\83\ 2\0\ 1t\13\0d\ 3\0d\ 4\0d\ 6\0g\ 3\0\83\ 1\0}    \0|      \0j\14\0d\f\0\83\ 1\0\ 1t\13\0\0d\r\0d\ e\0g\ 3\0\83\ 1\0}
34578 +\0|
34579 +\0j\14\0d\ f\0\83\ 1\0\ 1t\13\0d\ 3\0d\ 5\0d\ 4\0d       \0d\v\0d\r\0g\ 6\0\83\ 1\0}\v\0|\v\0j\14\0d\10\0\83\ 1\0\ 1|\b\0j\15\0d\ 3\0\0|
34580 +\0|\v\0g\ 3\0\83\ 2\0\ 1|\b\0j\16\0|\ 1\0d\ 4\0\83\ 2\0\ 1~\b\0t\11\0|\ 1\0\83\ 1\0}\f\0|\0\0j\17\0|\f\0j\18\0d\ 3\0d\f\0\83\ 2\0j\19\0|    \0\83\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\f\0j\18\0d\ 3\0d\ f\0\83\ 2\0j\19\0|
34581 +\0\83\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\f\0j\18\0d\ 3\0d\10\0\83\ 2\0j\19\0|\v\0\83\ 1\0\83\ 1\0\ 1|\0\0j\17\0|\f\0j\1a\0d\ 3\0\83\ 1\0j\19\0|\ 2\0d\11\0\83\ 2\0\83\ 1\0\ 1t\e\0t\1c\0\83\ 1\0}\r\0|\r\0j\14\0d\12\0\83\ 1\0\ 1|\r\0j\1d\0|\ 2\0\83\ 1\0\ 1t\ 5\0d\13\0\83\ 1\0}\ e\0|\ e\0j\1e\0\83\0\0\ 1t\ 5\0d\13\0\83\ 1\0}\ f\0|\ f\0j\1e\0d\14\0\83\ 1\0\ 1t\ 5\0j\1f\0|\ e\0|\ f\0\83\ 2\0}\10\0|\10\0\0d\15\0d\16\0g\ 2\0\83\ 1\0\ 1|\r\0j!\0|\10\0\83\ 1\0\ 1|\r\0j"\0\83\0\0\ 1|\r\0j#\0d\17\0d\ 5\0d\ 4\0\83\ 3\0\ 1t$\0\83\0\0}\11\0|\11\0j%\0|\r\0\83\ 1\0\ 1|\11\0j\16\0|\ 1\0d\ 3\0\83\ 2\0\ 1t$\0|\ 1\0\83\ 1\0}\12\0|\12\0j&\0t\1c\0d\ 3\0|\f\0\83\ 3\0}\13\0|\0\0j\17\0|\13\0j\19\0|\r\0d\11\0d\11\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\18\0\0\0Ns\f\0\0\0Pyfile72.medR \ 2\0\0i\0\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0g\0\0\0\0\0\0ø?i\ 5\0\0\0R\93\ 2\0\0i\ 6\0\0\0i\a\0\0\0R\95\ 2\0\0\ 1\0\0g\11ê-\81\99\97q=t\f\0\0\0MyFirstFieldi       \0\0\0id\0\0\0s\a\0\0\0mm [kg]s\a\0\0\0sds [m]gffffff\16@('\0\0\0Rz\0\0\0R`\0\0\0R]\0\0\0R^\0\0\0Rc\0\0\0RY\0\0\0Rn\0\0\0Rq\0\0\0\0\0\0\ 1\0\0RD\ 3\0\0t\10\0\0\0Merge1SGTUMeshesRâ\ 1\0\0t\10\0\0\0convertAllToPolyt\1d\0\0\0convertLinearCellsToQuadraticR[\0\0\0R[\ 2\0\0R>\0\0\0Rj\0\0\0Rk\0\0\0RB\0\0\0Rl\0\0\0R\v\0\0\0R0\0\0\0RG\0\0\0R1\0\0\0R}\0\0\0Rw\ 1\0\0R\13\ 1\0\0\0\0\0Ry\ 1\0\0t\ 4\0\0\0MeldRÃ\ 1\0\0R{\ 1\0\0Rd\0\0\0\0\0\0\0\0\0R%\ 1\0\0R\97\ 1\0\0(\14\0\0\0R        \0\0\0R9\ 1\0\0R\83\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\84\0\0\0R\86\0\0\0R\93\ 2\0\0R\95\ 2\0\0\ 1\0\0t\a\0\0\0mm_readR\b\0\0\0R\17\ 3\0\0Rz\ 2\0\0\ 1\0\0\0\0\0t\a\0\0\0ff_readt\ 6\0\0\0f_read(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testWRQPolyg1÷\r\0\0sl\0\0\0\0\ 1\ 6\ 1\ f\0
34582 +\ 1\19\ 11\ 2%\ 1\19\ 1\1d\ 1\ 4\ 1\15\ 1
34583 +\ 2%\ 1\19\ 1\1d\ 1\ 4\ 1\15\ 1
34584 +\ 1
34585 +\ 2\12\ 2    \ 1\10\ 1\15\0\r\ 1\15\0\r\ 1\1e\0\r\ 1\19\ 2\10\ 1\ 3\ 2\f\ 1"\ 1"\ 1"\ 1"\ 2\f\0\r\ 1\r\ 1\f\0
34586 +\ 1\f\0\r\ 1\12\0\13\ 1\r\0
34587 +\ 1\13\ 1    \ 1\r\ 1\10\ 2\f\ 1\15\ 1\1c\ 1c\ 1\0\0\0\f\0\0\0    \0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0t\0\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0g\ 6\0\83\ 1\0}\ 2\0t\ 1\0d\ 5\0d\ 3\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\ 3\0\83\0\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 2\0d\ 6\0d\a\0d\ 3\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 5\0d\b\0d\ 3\0d\a\0d\ 4\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 6\0\83\0\0\ 1t\a\0\83\0\0}\ 4\0|\ 4\0j\b\0d\ 2\0|\ 3\0\83\ 2\0\ 1t      \0\83\0\0}\ 5\0|\ 5\0j
34588 +\0|\ 4\0\83\ 1\0\ 1t\v\0\83\0\0}\ 6\0d\b\0d\12\0g\ 1\0\14}\a\0t\r\0\83\0\0}\b\0|\ 6\0j\ e\0|\b\0\83\ 1\0\ 1t\ f\0t\10\0\83\ 1\0\0|      \0j\11\0|\ 3\0\83\ 1\0\ 1|    \0j\12\0d   \0\83\ 1\0\ 1|  \0j\13\0d
34589 +\0d\ 4\0d\ 4\0\83\ 3\0\ 1|   \0j\14\0d\v\0\83\ 1\0\ 1t\0\0d\f\0d\ 6\0d\a\0d\ 4\0d\ 6\0d\a\0d\ 4\0d\f\0g\b\0\83\ 1\0|\a\0d\ 2\0<|\a\0d\ 2\0\19j\15\0d\ 2\0d\r\0\83\ 2\0\ 1|        \0j\16\0|\a\0d\ 2\0\19\83\ 1\0\ 1|\b\0j\17\0|  \0\83\ 1\0\ 1|  \0j\13\0d\ e\0d\ 3\0d\ 4\0\83\ 3\0\ 1t\0\0d\ 4\0d\f\0d\ 6\0d\a\0d\f\0d\ 6\0d\a\0d\ 4\0g\b\0\83\ 1\0|\a\0d\ 4\0<|\a\0d\ 4\0\19j\15\0d\ 2\0d\r\0\83\ 2\0\ 1|  \0j\16\0|\a\0d\ 4\0\19\83\ 1\0\ 1|\b\0j\17\0|  \0\83\ 1\0\ 1|  \0j\13\0d\ f\0d\a\0d\ 4\0\83\ 3\0\ 1t\0\0d\a\0d\ 4\0d\f\0d\ 6\0d\ 4\0d\f\0d\ 6\0d\a\0g\b\0\83\ 1\0|\a\0d\ 3\0<|\a\0d\ 3\0\19j\15\0d\ 2\0d\r\0\83\ 2\0\ 1|  \0j\16\0|\a\0d\ 3\0\19\83\ 1\0\ 1|\b\0j\17\0|  \0\83\ 1\0\ 1|  \0j\13\0d\10\0d\b\0d\ 4\0\83\ 3\0\ 1t\0\0d\ 6\0d\a\0d\ 4\0d\f\0d\a\0d\ 4\0d\f\0d\ 6\0g\b\0\83\ 1\0|\a\0d\a\0<|\a\0d\a\0\19j\15\0d\ 2\0d\r\0\83\ 2\0\ 1|  \0j\16\0|\a\0d\a\0\19\83\ 1\0\ 1|\b\0j\17\0|  \0\83\ 1\0\ 1xz\0t\18\0|\a\0\83\ 1\0D]l\0\\ 2\0}
34590 +\0}\v\0|\0\0j\19\0|\ 6\0d\ 2\0\19|
34591 +\0\19j\1a\0\83\0\0j\e\0|\v\0d\11\0\83\ 2\0\83\ 1\0\ 1|\ 6\0d\ 2\0\19|
34592 +\0\19j\1c\0\83\0\0\ 1|\0\0j\19\0|\ 6\0d\ 2\0\19|
34593 +\0\19j\1a\0\83\0\0j\e\0|\v\0d\11\0\83\ 2\0\83\ 1\0\ 1\ 2W|\ 6\0j\1c\0\83\0\0\ 1xA\0t\18\0|\a\0\83\ 1\0D]3\0\\ 2\0}
34594 +\0}\v\0|\0\0j\19\0|\ 6\0d\ 2\0\19|
34595 +\0\19j\1a\0\83\0\0j\e\0|\v\0d\11\0\83\ 2\0\83\ 1\0\ 1qb\ 3W|\ 6\0d\ 2\0\19j\1c\0\83\0\0\ 1xA\0t\18\0|\a\0\83\ 1\0D]3\0\\ 2\0}
34596 +\0}\v\0|\0\0j\19\0|\ 6\0d\ 2\0\19|
34597 +\0\19j\1a\0\83\0\0j\e\0|\v\0d\11\0\83\ 2\0\83\ 1\0\ 1\ 3Wd\12\0S(\19\0\0\0s\99\0\0\0
34598 +        This test checks that a call to loadArraysIfNecessary works (does nothing) on field data structure whatever its level 1TS, MTS, Fields.
34599 +        s\f\0\0\0Pyfile77.medi\0\0\0\0i\ 2\0\0\0i\ 1\0\0\0\ 2\0\0i\ 5\0\0\0i\ 3\0\0\0i\ 4\0\0\0\0\0\0g\9a\99\99\99\99\99ñ?t\v\0\0\0myELNOFieldi\a\0\0\0t\ 5\0\0\0Comp0g\9a\99\99\99\99\99\ 1@gffffff
34600 +@g\9a\99\99\99\99\99\11@g\11ê-\81\99\97q=N(\ 3\0\0\0i\0\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0i\ 1\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 2\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\0\0\0\0i\ 1\0\0\0i\0\0\0\0(\1d\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0R`\0\0\0Rb\0\0\0R>\0\0\0Rj\0\0\0RP\ 1\0\0R7\ 2\0\0R[\ 1\0\0R/\ 2\0\0\0\0\0R\\ 1\0\0Rw\ 1\0\0R\ f\ 1\0\0\0\0\0\0\0\0\0\0\0RB\0\0\0R\97\0\0\0R{\ 1\0\0RY\ 1\0\0\0\0\0R0\0\0\0R+\ 1\0\0R1\0\0\0Rw\ 3\0\0(\f\0\0\0R       \0\0\0R9\ 1\0\0R\81\0\0\0R\83\0\0\0R\86\0\0\0\0\0\0Rl\ 1\0\0t\ 4\0\0\0arrsRB\ 2\0\0\0\0\0\0\0\0\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt'\0\0\0testLoadIfNecessaryOnFromScratchFields0.\ e\0\0sl\0\0\0\0\ 4\ 6\ 1\1e\ 1\ f\0\r\ 1
34601 +\ 1\1c\ 1\1c\ 1
34602 +\ 2      \0\10\ 1     \0\r\ 1     \ 1\r\ 2     \0\r\ 1\f\0\r\0\r\ 1\13\ 1\r\ 1(\0\14\ 1\11\ 1\r\ 2\13\ 1(\0\14\ 1\11\ 1\r\ 2\13\ 1(\0\14\ 1\11\ 1\r\ 2\13\ 1(\0\14\ 1\11\ 1\r\ 2\19\ 1'\ 1\12\ 1'\ 1\ 4\ 1
34603 +\ 1\19\ 1'\ 1\ 4\ 1\ e\ 1\19\ 1'\ 1\ 4\ 1c\ 1\0\0\0\11\0\0\0\1c\0\0\0C\0\0\0sQ\ 6\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 2\0d\ 3\0d\ 4\0d\ 2\0d\ 3\0d\ 5\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 3\0d\ 5\0d\ 4\0d\ 3\0d\ 2\0d\ 5\0d\ 3\0d\ 4\0d\ 5\0d\ 3\0d\ 5\0d\ 5\0d\ 3\0g\e\0d\ 6\0d\a\0\83\ 3\0}\ 2\0d\b\0d\a\0d  \0d
34604 +\0d
34605 +\0d     \0d\v\0d   \0d\f\0d\v\0d\r\0d\ e\0d  \0d\a\0d\ e\0d\ f\0d\f\0d  \0g\12\0}\ 3\0t\ 1\0d\10\0d\a\0\83\ 2\0}\ 4\0|\ 4\0j\ 2\0|\ 2\0\83\ 1\0\ 1|\ 4\0j\ 3\0\83\0\0\ 1xx\0d\b\0d
34606 +\0d\v\0d\a\0g\ 4\0d
34607 +\0d\v\0d\a\0d       \0g\ 4\0d\v\0d\a\0d     \0d\f\0g\ 4\0d\a\0d     \0d\f\0d\r\0g\ 4\0d     \0d\f\0d\r\0d\ e\0g\ 4\0d\f\0d\r\0d\ e\0d\ f\0g\ 4\0g\ 6\0D]\16\0}\ 5\0|\ 4\0j\ 4\0t\ 5\0|\ 5\0\83\ 2\0\ 1q,\ 1Wxx\0d\b\0d
34608 +\0d\v\0d\a\0d       \0g\ 5\0d
34609 +\0d\v\0d\a\0d       \0d\f\0g\ 5\0d\v\0d\a\0d  \0d\f\0d\r\0g\ 5\0d\a\0d  \0d\f\0d\r\0d\ e\0g\ 5\0d  \0d\f\0d\r\0d\ e\0d\ f\0g\ 5\0g\ 5\0D]\16\0}\ 5\0|\ 4\0j\ 4\0t\ 6\0|\ 5\0\83\ 2\0\ 1\ 1Wxr\0d\b\0d
34610 +\0d\v\0d\a\0d       \0d\f\0g\ 6\0d
34611 +\0d\v\0d\a\0d       \0d\f\0d\r\0g\ 6\0d\v\0d\a\0d       \0d\f\0d\r\0d\ e\0g\ 6\0d\a\0d       \0d\f\0d\r\0d\ e\0d\ f\0g\ 6\0g\ 4\0D]\16\0}\ 5\0|\ 4\0j\ 4\0t\a\0|\ 5\0\83\ 2\0\ 1q\1c\ 2W|\ 4\0j\b\0\83\0\0\ 1t\ 1\0\83\0\0}\ 6\0|\ 6\0j   \0d\10\0\83\ 1\0\ 1|\ 6\0j
34612 +\0d\v\0\83\ 1\0\ 1|\ 6\0j\ 3\0d\f\0\83\ 1\0\ 1|\ 6\0j\ 4\0t\v\0d\a\0|\ 3\0d  \0d\ e\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\v\0d\a\0|\ 3\0d\ e\0d\11\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\f\0d   \0|\ 3\0d\b\0d        \0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\f\0d        \0|\ 3\0d\11\0d\12\0!\83\ 3\0\ 1|\ 6\0j\ 4\0t\f\0d       \0|\ 3\0d\12\0d\13\0!\83\ 3\0\ 1|\ 6\0j\ 2\0|\ 2\0\83\ 1\0\ 1t\ 1\0d\10\0d\b\0\83\ 2\0}\a\0|\a\0j\ 2\0|\ 2\0\83\ 1\0\ 1|\a\0j\ 3\0\83\0\0\ 1|\a\0j\ 4\0t\r\0d\v\0g\ 1\0\83\ 2\0\ 1|\a\0j\ 4\0t\r\0d\a\0g\ 1\0\83\ 2\0\ 1|\a\0j\ 4\0t\r\0d      \0g\ 1\0\83\ 2\0\ 1|\a\0j\ 4\0t\r\0d\f\0g\ 1\0\83\ 2\0\ 1t\ e\0\83\0\0}\b\0|\b\0j\ f\0d\b\0|\ 4\0\83\ 2\0\ 1|\b\0j\ f\0d\14\0|\ 6\0\83\ 2\0\ 1|\b\0j\ f\0d\15\0|\a\0\83\ 2\0\ 1|\b\0j\10\0|\ 1\0d\v\0\83\ 2\0\ 1t\11\0j\12\0|\ 1\0\83\ 1\0}\b\0t\13\0\83\0\0}      \0t\14\0\83\0\0}
34613 +\0t\15\0\83\0\0}\v\0x\99\0|\b\0j\16\0\83\0\0D]\8b\0}\f\0x\82\0|\b\0j\17\0|\f\0\83\ 1\0D]q\0}\r\0|\b\0j\18\0|\r\0\83\ 1\0}\ e\0t\19\0t\1a\0\83\ 1\0}\ f\0|\ f\0j\e\0|\ e\0\83\ 1\0\ 1t\0\0|\ f\0j\1c\0\83\0\0\83\ 1\0}\10\0|\10\0j\1d\0\83\0\0\ 1|\ f\0j\1e\0|\10\0\83\ 1\0\ 1|\ f\0j       \0d\16\0\83\ 1\0\ 1|\v\0j\1f\0|\ f\0\83\ 1\0\ 1q\a\ 4Wqñ\ 3W|\0\0\0|\b\0j\16\0\83\0\0d\1e\0\83\ 2\0\ 1x$\0d\b\0d\14\0d\15\0g\ 3\0D]\13\0}\f\0|\b\0j!\0|\f\0\83\ 1\0\ 1\ 4W|
34614 +\0j"\0|\v\0\83\ 1\0\ 1|   \0j#\0|
34615 +\0\83\ 1\0\ 1\0j\10\0|\ 1\0d\b\0\83\ 2\0\ 1\0~
34616 +\0~\v\0t\13\0|\ 1\0\83\ 1\0\0|\0\0\0t$\0|     \0\83\ 1\0d
34617 +\0\83\ 2\0\ 1|\0\0\0t$\0|        \0d\b\0\19\83\ 1\0d
34618 +\0\83\ 2\0\ 1\0d\b\0\19d\b\0\19}\v\0|\0\0\0|\v\0j%\0\83\0\0d\b\0d\b\0d\1f\0d\17\0d\17\0f\ 4\0g\ 1\0f\ 2\0d\a\0d\b\0\0d\17\0d\17\0f\ 4\0g\ 1\0f\ 2\0d    \0d\b\0d!\0d\17\0d\17\0f\ 4\0g\ 1\0f\ 2\0d\12\0d\b\0d"\0d\17\0d\17\0f\ 4\0g\ 1\0f\ 2\0d\18\0d\b\0d#\0d\17\0d\17\0f\ 4\0g\ 1\0f\ 2\0d\1a\0d\b\0d$\0d\17\0d\17\0f\ 4\0g\ 1\0f\ 2\0g\ 6\0\83\ 2\0\ 1|\0\0j&\0|\v\0j'\0\83\0\0j(\0t\0\0d\b\0d
34619 +\0d\v\0d\a\0d\b\0d
34620 +\0d\b\0d
34621 +\0d\v\0d\b\0d
34622 +\0d\v\0d\a\0d       \0d\f\0d\b\0d
34623 +\0d\v\0d\a\0d       \0d\b\0d
34624 +\0d\v\0d\a\0g\18\0\83\ 1\0d\1c\0\83\ 2\0\83\ 1\0\ 1d\1d\0S(%\0\0\0\0\0\0 This test is very important, because the same mechanism is used by the MEDReader to generate a field on all the mesh without any processing and memory.
34625 +        s\f\0\0\0Pyfile78.medg333333Ó¿g\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99É?gffffffæ?i \0\0\0i\ 3\0\0\0i\0\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0\ 2\0\0i
34626 +\0\0\0i\ e\0\0\0i\12\0\0\0iÿÿÿÿiýÿÿÿRä\0\0\0R&\0\0\0i\ f\0\0\0i\14\0\0\0i\10\0\0\0i\18\0\0\0g\11ê-\81\99\97q=N(\ 3\0\0\0i\0\0\0\0iÿÿÿÿiýÿÿÿ(\ 2\0\0\0i\0\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 6\0\0\0(\ 2\0\0\0i\ 6\0\0\0i   \0\0\0(\ 2\0\0\0i       \0\0\0i\ f\0\0\0(\ 2\0\0\0i\ f\0\0\0i\14\0\0\0(\ 2\0\0\0i\14\0\0\0i\18\0\0\0()\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0t\v\0\0\0NORM_TETRA4t
34627 +\0\0\0NORM_PYRA5t\v\0\0\0NORM_PENTA6R\0\ 2\0\0RB\0\0\0R\\0\0\0R_\0\0\0R`\0\0\0Rg\0\0\0R>\0\0\0Rj\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R[\ 1\0\0\0\0\0\0\0\0R,\0\0\0Rr\0\0\0Rs\0\0\0Rw\ 1\0\0R\13\ 1\0\0\0\0\0t\19\0\0\0getNumberOfTuplesExpectedRy\ 1\0\0R{\ 1\0\0R%\ 1\0\0R+\0\0\0Rx\0\0\0RE\ 3\0\0R\\ 1\0\0Ry\0\0\0\ 1\0\0R0\0\0\0R+\ 1\0\0R1\0\0\0(\11\0\0\0R      \0\0\0R9\ 1\0\0R\81\0\0\0R\82\0\0\0\0\0\0\0\0\0R\84\0\0\0R\16\ 2\0\0R\86\0\0\0Rl\ 1\0\0Rm\ 1\0\0\0\0\0\0\0\0t\ 2\0\0\0gtt\ 2\0\0\0p0R\b\0\0\0\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt+\0\0\0testField1TSSetFieldNoProfileSBTPerGeoTypese\ e\0\0s\8a\0\0\0\0\ 3\ 6\ 1c\ 1<\ 1\ f\0\r\ 1
34628 +\ 1g\ 1\10\ 1\ 4\ 1g\ 1\10\ 1\ 4\ 1a\ 1\10\ 1\ 4\ 1
34629 +\ 1      \0\r\ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\r\ 1\ f\0\r\ 1
34630 +\ 1\13\ 1\13\ 1\13\ 1\13\ 2      \ 1\10\ 1\10\ 1\10\ 1\10\ 2\ f\ 1     \ 1       \ 1       \ 1\13\ 1\16\ 1\ f\ 1\f\0\r\ 1\12\0
34631 +\ 1\r\0\r\ 1\r\ 1\ 4\ 1\ 4\ 1\16\ 1\16\ 1\r\ 1\ 4\ 1\r\ 1\r\ 1\10\ 1      \ 2\f\ 1\16\ 1\1a\ 1\ e\ 1¦\ 1m\ 1c\ 1\0\0\0\a\0\0\0\1c\0\0\0C\0\0\0\ 2\0\0d\ 1\0}\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 5\0d\ 4\0d\ 6\0d\ 4\0d\a\0d\ 6\0d\b\0d     \0d\ 4\0d\ 3\0d        \0d
34632 +\0d\a\0d\ 4\0g\12\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 2\0d\ 6\0\83\ 1\0\ 1t\ 3\0d\v\0d\v\0d\f\0d\r\0d\v\0d\f\0d\ e\0d\v\0d\f\0d\v\0d\r\0d\f\0d\r\0d\r\0d\f\0d\ e\0d\r\0d\f\0d\v\0d\ e\0d\f\0d\r\0d\ e\0d\f\0d\ e\0d\ e\0d\f\0g\e\0d\ f\0d\ 3\0\83\ 3\0}\ 5\0|\ 4\0j\ 4\0d\a\0\83\ 1\0\ 1|\ 4\0j\ 5\0t\ 6\0d\ 3\0|\ 2\0d\ 4\0d        \0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\ 6\0d\ 3\0|\ 2\0d  \0d\10\0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\a\0d\ 4\0|\ 2\0d\ 2\0d\ 4\0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\a\0d\ 4\0|\ 2\0d\10\0d\11\0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\a\0d\ 4\0|\ 2\0d\11\0d\12\0!\83\ 3\0\ 1|\ 4\0j\b\0|\ 5\0\83\ 1\0\ 1|\ 3\0j        \0d\ 2\0|\ 4\0\83\ 2\0\ 1t\ 1\0\83\0\0}\ 6\0|\ 6\0j\ 2\0d\ 2\0\83\ 1\0\ 1|\ 6\0j\b\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\ 4\0\83\0\0\ 1|\ 6\0j\ 5\0t
34633 +\0d\ 6\0g\ 1\0\83\ 2\0\ 1|\ 6\0j\ 5\0t
34634 +\0d\ 3\0g\ 1\0\83\ 2\0\ 1|\ 6\0j\ 5\0t
34635 +\0d\ 4\0g\ 1\0\83\ 2\0\ 1|\ 6\0j\ 5\0t
34636 +\0d\a\0g\ 1\0\83\ 2\0\ 1|\ 3\0j        \0d\13\0|\ 6\0\83\ 2\0\ 1|\0\0j\v\0|\ 3\0j\f\0\83\0\0d\14\0\83\ 2\0\ 1|\0\0j\v\0|\ 3\0j\r\0d\ 2\0\83\ 1\0j\f\0\83\0\0d\14\0\83\ 2\0\ 1|\ 3\0j\ e\0\83\0\0\ 1|\0\0j\v\0|\ 3\0j\ f\0t\ 6\0\83\ 1\0j\f\0\83\0\0d\14\0\83\ 2\0\ 1|\ 3\0j\10\0d\15\0\83\ 1\0\ 1|\0\0j\v\0|\ 3\0j\f\0\83\0\0d\15\0\83\ 2\0\ 1|\0\0j\v\0|\ 3\0j\ f\0t\ 6\0\83\ 1\0j\f\0\83\0\0d\15\0\83\ 2\0\ 1|\0\0j\v\0|\ 3\0j\ f\0t\a\0\83\ 1\0j\f\0\83\0\0d\15\0\83\ 2\0\ 1|\0\0j\v\0|\ 3\0j\ f\0t
34637 +\0\83\ 1\0j\f\0\83\0\0d\15\0\83\ 2\0\ 1|\0\0j\v\0|\ 3\0j\r\0d\ 2\0\83\ 1\0j\f\0\83\0\0d\15\0\83\ 2\0\ 1d\16\0S(\17\0\0\0s\13\ 1\0\0 This test is a small but important one for MEDReader in sauv mode. When .sauv file is loaded the conversion is performed in memory and a preparation is done then.
34638 +        This preparation makes access to internal MEDCouplingMesh pointers whose name must be updated.
34639 +        s\f\0\0\0Pyfile79.medi\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0g333333Ó¿g\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99É?gffffffæ?i    \0\0\0i
34640 +\0\0\0i\ e\0\0\0i\12\0\0\0iþÿÿÿR&\0\0\0t\ 3\0\0\0abcN(\11\0\0\0R>\0\0\0R[\0\0\0R\\0\0\0RY\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Rc\0\0\0Rj\0\0\0Rg\0\0\0R+\0\0\0RC\0\0\0R}\0\0\0t\17\0\0\0forceComputationOfPartsRs\0\0\0RB\0\0\0(\a\0\0\0R        \0\0\0R9\ 1\0\0R\82\0\0\0R\86\0\0\0\0\0\0R\81\0\0\0R\85\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\17\0\0\0testMEDFileUMeshSetName«\ e\0\0sD\0\0\0\0\ 4\ 6\ 1<\ 1  \ 1       \0\r\ 1c\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\r\ 1\10\ 1   \0\r\0\r\ 1
34641 +\ 1\13\ 1\13\ 1\13\ 1\13\ 1\10\ 1\16\ 1\1f\ 1
34642 +\ 1\1f\ 1\r\ 1\16\ 1\1f\ 1\1f\ 1\1f\ 1\1f\ 1c\ 1\0\0\0\ e\0\0\0\1c\0\0\0C\0\0\0\a\0\0d\ 1\0}\ 1\0t\0\0\83\0\0}\ 2\0|\ 2\0j\ 1\0d\ 2\0\83\ 1\0\ 1t\ 2\0d\ 3\0\83\ 1\0}\ 3\0|\ 3\0j\ 3\0\83\0\0\ 1|\ 2\0j\ 4\0|\ 3\0|\ 3\0\83\ 2\0\ 1|\ 2\0j\ 5\0\83\0\0}\ 4\0|\0\0j\ 6\0d\ 4\0|\ 4\0\83\ 2\0\ 1t\a\0t\b\0\83\ 1\0}\ 5\0|\ 5\0j\ 1\0d\ 5\0\83\ 1\0\ 1|\ 5\0j       \0|\ 2\0\83\ 1\0\ 1t\ 2\0|\ 4\0\83\ 1\0}\ 3\0|\ 3\0j\ 3\0\83\0\0\ 1t
34643 +\0\83\0\0}\ 6\0|\ 6\0j    \0|\ 2\0\83\ 1\0\ 1t\v\0\83\0\0}\a\0\0t\f\0|\ 4\0\83\ 1\0D]\9e\0}\b\0t\r\0|\b\0\83\ 1\0d\ 6\0\17|\b\0d\a\0\17|\b\0\vd\b\0\18f\ 3\0}    \0|\ 5\0j\ e\0|        \0\8c\0\0\ 1t\ 2\0|\ 4\0\83\ 1\0}
34644 +\0t\ f\0|\ 4\0\83\ 1\0}\v\0|\v\0j\ 3\0|\b\0\83\ 1\0\ 1|\v\0|\ 4\0;}\v\0|\ 3\0|
34645 +\0|\v\0<|\ 5\0j\10\0|
34646 +\0\83\ 1\0\ 1t\11\0\83\0\0}\f\0|\f\0j\12\0|\ 5\0\83\ 1\0\ 1|\a\0j\13\0|\f\0\83\ 1\0\ 1\0W|\a\0j\14\0\83\0\0\ 1|\0\0j\15\0|\a\0d       \0\19j\16\0\83\0\0j\17\0t\ 2\0d
34647 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1t\18\0\83\0\0}\r\0|\r\0j\19\0|\a\0\83\ 1\0\ 1|\0\0j\15\0|\r\0d      \0\19d     \0\19j\16\0\83\0\0j\17\0t\ 2\0d
34648 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1|\r\0j\14\0\83\0\0\ 1|\0\0j\15\0|\r\0d  \0\19d     \0\19j\16\0\83\0\0j\17\0t\ 2\0d
34649 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1|\r\0d  \0\19d     \0\19}\f\0|\0\0j\15\0|\f\0j\16\0\83\0\0j\17\0t\ 2\0d
34650 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1|\f\0j\14\0\83\0\0\ 1|\0\0j\15\0|\f\0j\16\0\83\0\0j\17\0t\ 2\0d
34651 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1|\ 6\0j\1a\0|\ 1\0d\b\0\83\ 2\0\ 1|\r\0j\1a\0|\ 1\0d    \0\83\ 2\0\ 1~\ 2\0~\a\0~\ 6\0~\ 5\0~\f\0t\e\0j\1c\0|\ 1\0\83\ 1\0}\ 6\0t\v\0|\ 1\0\83\ 1\0}\a\0|\0\0j\15\0|\a\0d       \0\19j\16\0\83\0\0j\17\0t\ 2\0d
34652 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1|\a\0j\14\0\83\0\0\ 1|\0\0j\15\0|\a\0d  \0\19j\16\0\83\0\0j\1d\0\83\0\0\f\83\ 1\0\ 1|\a\0j\1e\0\83\0\0\ 1|\0\0j\15\0|\a\0\0\19j\16\0\83\0\0j\17\0t\ 2\0d
34653 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1~\ 6\0~\a\0t\18\0|\ 1\0\83\ 1\0}\r\0|\0\0j\15\0|\r\0d  \0\19d     \0\19j\16\0\83\0\0j\17\0t\ 2\0d
34654 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1|\r\0j\14\0\83\0\0\ 1|\0\0j\15\0|\r\0d  \0\19d     \0\19j\16\0\83\0\0j\1d\0\83\0\0\f\83\ 1\0\ 1|\r\0j\1e\0\83\0\0\ 1|\0\0j\15\0|\r\0\0\19d     \0\19j\16\0\83\0\0j\17\0t\ 2\0d
34655 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1~\r\0t\11\0|\ 1\0\83\ 1\0}\f\0|\0\0j\15\0|\f\0j\16\0\83\0\0j\17\0t\ 2\0d
34656 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1|\f\0j\14\0\83\0\0\ 1|\0\0j\15\0|\f\0j\16\0\83\0\0j\1d\0\83\0\0\f\83\ 1\0\ 1|\f\0j\1e\0\83\0\0\ 1|\0\0j\15\0|\f\0j\16\0\83\0\0j\17\0t\ 2\0d
34657 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\19\0\83\ 1\0d#\0\83\ 2\0\83\ 1\0\ 1d\0\0S($\0\0\0Ns\f\0\0\0Pyfile80.medRÕ\ 2\0\0i\ 6\0\0\0i\19\0\0\0t\v\0\0\0FieldOnCellg\9a\99\99\99\99\99¹?i\ 1\0\0\0i\ 2\0\0\0i\0\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\18@g\0\0\0\0\0\0\1c@g\0\0\0\0\0\0 @g\0\0\0\0\0\0"@g\0\0\0\0\0\0$@g\0\0\0\0\0\0&@g\0\0\0\0\0\0(@g\0\0\0\0\0\0*@g\0\0\0\0\0\0,@g\0\0\0\0\0\0.@g\0\0\0\0\0\00@g\0\0\0\0\0\01@g\0\0\0\0\0\02@g\0\0\0\0\0\03@g\0\0\0\0\0\04@g\0\0\0\0\0\05@g\0\0\0\0\0\06@g\0\0\0\0\0\07@g\0\0\0\0\0\08@g\11ê-\81\99\97q=(\1f\0\0\0\0\0\0RB\0\0\0RY\0\0\0Ry\ 1\0\0Rc\0\0\0\0\0\0R+\0\0\0Rw\ 1\0\0R\13\ 1\0\0\0\0\0\0\0\0\0\0\0Rn\0\0\0RD\ 3\0\0\0\0\0Rk\0\0\0R{\ 1\0\0\0\0\0R%\ 1\0\0RE\ 3\0\0t\e\0\0\0unloadArraysWithoutDataLossR0\0\0\0R+\ 1\0\0R1\0\0\0R[\ 1\0\0R\\ 1\0\0R\v\0\0\0R'\0\0\0R(\0\0\0Ru\ 3\0\0Rw\ 3\0\0(\ e\0\0\0\0\0\0R!\0\0\0R\83\0\0\0\ 1\0\0t\a\0\0\0nbCellsR\b\0\0\0R\86\0\0\0Rm\ 1\0\0\0\0\0R\8c\0\0\0R\ 2\ 3\0\0t\ 4\0\0\0permRú\0\0\0Rl\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt-\0\0\0testMEDFileFieldsUnloadArraysWithoutDataLoss1Ï\ e\0\0s\82\0\0\0\0\ 1\ 6\ 1        \0\r\ 1\f\0
34658 +\ 1\10\ 1\f\ 1\10\ 1\f\ 1\r\0\r\ 1\f\0
34659 +\ 1      \ 1\r\ 2     \ 2\13\ 1"\ 1\r\ 1\f\ 1\f\0\r\0
34660 +\ 1
34661 +\ 1\r\ 1    \ 1\r\ 1\r\ 1\ 4\ 1
34662 +\ 1t\ 1    \0\r\ 1x\ 1
34663 +\ 1x\ 1\ e\ 1p\ 1
34664 +\ 1p\ 1\10\ 1\10\ 1\ f\ 2\ f\ 1\f\ 1t\ 1
34665 +\ 1\1e\ 1
34666 +\ 1t\ 1\ 6\ 1\f\ 1x\ 1
34667 +\ 1"\ 1
34668 +\ 1x\ 1\ 3\ 1\f\ 1p\ 1
34669 +\ 1\1a\ 1
34670 +\ 1p\ 1c\ 1\0\0\0\14\0\0\0;\0\0\0C\0\0\0sp\r\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 3\0|\ 3\0j\ 3\0|\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j\ 4\0\83\0\0}\ 3\0|\ 3\0j\ 5\0d\ 3\0\83\ 1\0\ 1|\ 3\0j\ 6\0d\ 4\0d\ 5\0\83\ 2\0\ 1d\ 6\0d\a\0d\b\0g\ 3\0}\ 4\0|\ 3\0j\a\0\83\0\0j\b\0|\ 4\0\83\ 1\0\ 1|\ 3\0j  \0\83\0\0\ 1t
34671 +\0\83\0\0}\ 5\0|\ 5\0j\v\0\0|\ 3\0\83\ 2\0\ 1t\ 2\0\83\0\0}\ 6\0|\ 6\0j\ 3\0|\ 2\0\83\ 1\0\ 1|\ 6\0j\ 5\0d\ 3\0\83\ 1\0\ 1|\ 6\0j\ 4\0\83\0\0}\ 6\0|\ 6\0j\ 3\0|\ 3\0j\a\0\83\0\0\83\ 1\0\ 1|\ 5\0j\v\0d
34672 +\0|\ 6\0\83\ 2\0\ 1t\f\0d\ 4\0d\ 2\0d\v\0d\f\0d\r\0d    \0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0g\19\0\83\ 1\0}\a\0t\f\0d!\0d"\0d#\0d$\0d%\0d  \0d&\0d
34673 +\0d'\0d(\0d)\0d*\0d+\0d,\0d-\0d.\0d/\0d0\0d1\0d2\0d3\0d4\0d5\0d6\0d7\0g\19\0\83\ 1\0}\b\0t\r\0d8\0d\1f\0\83\ 2\0}     \0g\0\0t\ e\0d8\0\83\ 1\0D]\10\0}
34674 +\0d9\0|
34675 +\0\16^\ 2\0q¿\ 1|      \0(t\f\0d\ 4\0d\13\0d    \0d\ e\0d\ f\0g\ 5\0\83\ 1\0}\v\0t\f\0d!\0d*\0d      \0d&\0d
34676 +\0g\ 5\0\83\ 1\0}\f\0|\ 5\0j\ f\0d      \0|\a\0\83\ 2\0\ 1|\ 5\0j\10\0\0|\b\0\83\ 2\0\ 1|\ 5\0j\11\0\0|      \0\83\ 2\0\ 1|\ 5\0j\ f\0d
34677 +\0|\v\0\83\ 2\0\ 1|\ 5\0j\10\0d
34678 +\0|\f\0\83\ 2\0\ 1t\f\0d\15\0d\1f\0d\1e\0d\e\0d\1a\0d\f\0d\14\0d\r\0d\1c\0d\1d\0\0d\16\0d\19\0d\18\0d\17\0d:\0d;\0d<\0d=\0d>\0d?\0d@\0dA\0dB\0d8\0dC\0dD\0dE\0dF\0dG\0dH\0dI\0dJ\0dK\0dL\0dM\0g$\0\83\ 1\0}\r\0t\f\0d,\0d6\0d5\0d2\0d1\0d$\0d+\0d%\0d3\0d4\0d7\0d-\0d0\0d/\0d.\0dN\0dO\0dP\0dQ\0dR\0dS\0dT\0dU\0dV\0dW\0dX\0dY\0dZ\0d[\0d\\0d]\0d^\0d_\0d`\0da\0db\0g$\0\83\ 1\0}\ e\0t\r\0dL\0d\1f\0\83\ 2\0}\ f\0g\0\0t\ e\0dL\0\83\ 1\0D]\10\0}
34679 +\0dc\0|
34680 +\0\16^\ 2\0qh\ 3|\ f\0(|\ 5\0j\ f\0d\ f\0|\r\0\83\ 2\0\ 1|\ 5\0j\10\0d\ f\0|\ e\0\83\ 2\0\ 1|\ 5\0j\11\0d\ f\0|\ f\0\83\ 2\0\ 1|\ 5\0j\12\0dd\0de\0\83\ 2\0\ 1|\ 5\0j\12\0df\0dg\0\83\ 2\0\ 1|\ 5\0j\13\0dd\0dh\0di\0g\ 2\0\83\ 2\0\ 1|\ 5\0j\13\0df\0di\0dj\0g\ 2\0\83\ 2\0\ 1|\ 5\0j\14\0|\ 1\0d\ e\0\83\ 2\0\ 1t
34681 +\0j\15\0|\ 1\0d\ 3\0t\16\0g\ 1\0d      \0d\f\0d\ f\0g\ 3\0\83\ 4\0}\10\0|\0\0j\17\0|\10\0j\18\0\83\0\0t\16\0g\ 1\0\83\ 2\0\ 1|\0\0j\19\0|\10\0j\1a\0t\16\0\83\ 1\0j\e\0\83\0\0j\1c\0t\f\0d\ f\0d     \0d\ 2\0d\v\0d\ e\0d\ f\0d\v\0d\11\0d\ 4\0d\ e\0d\11\0d\10\0d\13\0d\ 4\0d\10\0d\f\0d\12\0d\13\0d\f\0d\r\0d\v\0d\ 2\0d\14\0d\15\0d\11\0d\v\0d\15\0d\16\0d\10\0d\11\0d\16\0\0d\f\0d\10\0\0d\1f\0d\r\0d\f\0d\1f\0d\1e\0g(\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1t\0\0d    \0d      \0d      \0f\ 3\0d\ f\0d        \0d      \0f\ 3\0d\ e\0d        \0d      \0f\ 3\0d\ 4\0d        \0d      \0f\ 3\0d\13\0d        \0d      \0f\ 3\0d\12\0d        \0d      \0f\ 3\0d   \0d\ f\0d   \0f\ 3\0d\ f\0d\ f\0d     \0f\ 3\0d\ e\0d\ f\0d     \0f\ 3\0d\ 4\0d\ f\0d     \0f\ 3\0d\13\0d\ f\0d     \0f\ 3\0d\12\0d\ f\0d     \0f\ 3\0d   \0d\ e\0d   \0f\ 3\0d\ f\0d\ e\0d     \0f\ 3\0d\ e\0d\ e\0d     \0f\ 3\0d\ 4\0d\ e\0d     \0f\ 3\0d\13\0d\ e\0d     \0f\ 3\0d\12\0d\ e\0d     \0f\ 3\0g\12\0\83\ 1\0}\11\0|\11\0j\b\0|\ 4\0\83\ 1\0\ 1|\0\0j\19\0|\10\0j\a\0\83\0\0j\1c\0|\11\0dk\0\83\ 2\0\83\ 1\0\ 1|\0\0j\19\0|\10\0j\1d\0d  \0\83\ 1\0j\1c\0|\b\0d\f\0 \83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\10\0j\1e\0d      \0\83\ 1\0j\1c\0|\a\0d\f\0 \83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\10\0j\1f\0d      \0\83\ 1\0j\1c\0|        \0d\f\0 \83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\10\0j\1d\0d\ f\0\83\ 1\0j\1c\0|\ e\0d\1d\0 \83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\10\0j\1e\0d\ f\0\83\ 1\0j\1c\0|\r\0d\1d\0 \83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\10\0j\1f\0d\ f\0\83\ 1\0j\1c\0|\ f\0d\1d\0 \83\ 1\0\83\ 1\0\ 1t
34682 +\0j\15\0|\ 1\0d\ 3\0t\16\0g\ 1\0d\r\0d8\0d\ f\0g\ 3\0\83\ 4\0}\12\0|\0\0j\17\0|\12\0j\18\0\83\0\0t\16\0g\ 1\0\83\ 2\0\ 1|\0\0j\19\0|\12\0j\1a\0t\16\0\83\ 1\0j\e\0\83\0\0j\1c\0t\f\0d\ f\0d  \0d\ 2\0d\v\0d\ e\0d\ f\0d\v\0d\11\0d\ 4\0d\ e\0d\11\0d\10\0d\13\0d\ 4\0d\10\0d\f\0d\ 2\0d\12\0d\r\0d\14\0d\v\0d\ 2\0d\14\0d\15\0d\11\0d\v\0d\15\0d\16\0d\10\0d\11\0d\16\0\0d\f\0d\10\0\0d\1f\0d\14\0d\r\0d\1e\0d\1d\0d\15\0d\14\0d\1d\0d\1c\0d\16\0d\15\0d\1c\0d\e\0\0d\16\0d\e\0d\1a\0d\1f\0\0d\1a\0d\19\0g8\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1t\0\0d\ f\0d\ e\0d      \0f\ 3\0d\ e\0d\ e\0d     \0f\ 3\0d\ 4\0d\ e\0d     \0f\ 3\0d\13\0d\ e\0d     \0f\ 3\0d\12\0d\ e\0d     \0f\ 3\0d   \0d\ 4\0d   \0f\ 3\0d\ f\0d\ 4\0d     \0f\ 3\0d\ e\0d\ 4\0d     \0f\ 3\0d\ 4\0d\ 4\0d     \0f\ 3\0d\13\0d\ 4\0d     \0f\ 3\0d\12\0d\ 4\0d     \0f\ 3\0d   \0d\13\0d   \0f\ 3\0d\ f\0d\13\0d     \0f\ 3\0d\ e\0d\13\0d     \0f\ 3\0d\ 4\0d\13\0d     \0f\ 3\0d\13\0d\13\0d     \0f\ 3\0d\12\0d\13\0d     \0f\ 3\0d   \0d\12\0d   \0f\ 3\0d\ f\0d\12\0d     \0f\ 3\0d\ e\0d\12\0d     \0f\ 3\0d\ 4\0d\12\0d     \0f\ 3\0d\13\0d\12\0d     \0f\ 3\0d\12\0d\12\0d     \0f\ 3\0g\17\0\83\ 1\0}\11\0|\11\0j\b\0|\ 4\0\83\ 1\0\ 1|\0\0j\19\0|\12\0j\a\0\83\0\0j\1c\0|\11\0dk\0\83\ 2\0\83\ 1\0\ 1|\0\0j\19\0|\12\0j\1d\0d  \0\83\ 1\0j\1c\0|\b\0d\r\0\1f\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\12\0j\1e\0d      \0\83\ 1\0j\1c\0|\a\0d\r\0\1f\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\12\0j\1f\0d      \0\83\ 1\0j\1c\0|        \0d\r\0\1f\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\12\0j\1d\0d\ f\0\83\ 1\0j\1c\0|\ e\0d\15\0\1f\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\12\0j\1e\0d\ f\0\83\ 1\0j\1c\0|\r\0d\15\0\1f\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\12\0j\1f\0d\ f\0\83\ 1\0j\1c\0|\ f\0d\15\0\1f\83\ 1\0\83\ 1\0\ 1t
34683 +\0j\15\0|\ 1\0d\ 3\0\0t\16\0g\ 2\0d   \0d\12\0d\ f\0d\ f\0d\f\0d\ f\0g\ 6\0\83\ 4\0}\13\0|\0\0j\17\0|\13\0j\18\0\83\0\0t\16\0\0g\ 2\0\83\ 2\0\ 1|\0\0j\19\0|\13\0j\1d\0d      \0\83\ 1\0j\1c\0|\b\0d\ f\0d\f\0!\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1e\0d   \0\83\ 1\0j\1c\0|\a\0d\ f\0d\f\0!\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1f\0d   \0\83\ 1\0j\1c\0|        \0d\ f\0d\f\0!\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1d\0d
34684 +\0\83\ 1\0j\1c\0|\f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1e\0d
34685 +\0\83\ 1\0j\1c\0|\v\0\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1f\0d
34686 +\0\83\ 1\0t!\0k\b\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1a\0t\16\0\83\ 1\0j\e\0\83\0\0j\1c\0t\f\0d\ e\0d\ f\0d\v\0d\11\0d\ 4\0d\ e\0d\11\0d\10\0d\13\0d\ 4\0d\10\0d\f\0d\12\0d\13\0d\f\0d\r\0d\v\0d\ 2\0d\14\0d\15\0d\11\0d\v\0d\15\0d\16\0d\10\0d\11\0d\16\0\0d\f\0d\10\0\0d\1f\0d\r\0d\f\0d\1f\0d\1e\0g$\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1a\0\0\83\ 1\0j\e\0\83\0\0j\1c\0t\f\0d   \0d\ f\0d\ f\0d\ e\0d\ e\0d\ 4\0d\ 4\0d\13\0d\13\0d\12\0g
34687 +\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1t\0\0d        \0d      \0d      \0f\ 3\0d\ f\0d        \0d      \0f\ 3\0d\ e\0d        \0d      \0f\ 3\0d\ 4\0d        \0d      \0f\ 3\0d\13\0d        \0d      \0f\ 3\0d\12\0d        \0d      \0f\ 3\0d   \0d\ f\0d   \0f\ 3\0d\ f\0d\ f\0d     \0f\ 3\0d\ e\0d\ f\0d     \0f\ 3\0d\ 4\0d\ f\0d     \0f\ 3\0d\13\0d\ f\0d     \0f\ 3\0d\12\0d\ f\0d     \0f\ 3\0d   \0d\ e\0d   \0f\ 3\0d\ f\0d\ e\0d     \0f\ 3\0d\ e\0d\ e\0d     \0f\ 3\0d\ 4\0d\ e\0d     \0f\ 3\0d\13\0d\ e\0d     \0f\ 3\0d\12\0d\ e\0d     \0f\ 3\0g\12\0\83\ 1\0}\11\0|\11\0j\b\0|\ 4\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\a\0\83\0\0j\1c\0|\11\0dk\0\83\ 2\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1d\0d\ f\0\83\ 1\0j\1c\0|\ e\0d\1d\0 \83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1e\0d\ f\0\83\ 1\0j\1c\0|\r\0d\1d\0 \83\ 1\0\83\ 1\0\ 1|\0\0j\19\0|\13\0j\1f\0d\ f\0\83\ 1\0j\1c\0|\ f\0d\1d\0 \83\ 1\0\83\ 1\0\ 1dl\0S(m\0\0\0s\ e\ 1\0\0 This method tests MEDFileUMesh.LoadPart that loads only a part of a specified mesh in a MED file. The part is specfied using a slice of cell ids. Only nodes on which cells lies are loaded to reduce at most the amount of
34688 +        memory of the returned instance.
34689 +        s\f\0\0\0Pyfile81.medi\ 6\0\0\0Rn\ 2\0\0i\ 3\0\0\0g\0\0\0\0\0\0\0\0s\ 6\0\0\0aa [b]s\a\0\0\0cc [de]s\b\0\0\0gg [klm]i\0\0\0\0iÿÿÿÿi\a\0\0\0i
34690 +\0\0\0i\v\0\0\0i\ 2\0\0\0i\ 1\0\0\0i    \0\0\0i\b\0\0\0i\ 5\0\0\0i\ 4\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\18\0\0\0i\17\0\0\0i\16\0\0\0i\15\0\0\0i\14\0\0\0i\13\0\0\0i\12\0\0\0i\11\0\0\0i\10\0\0\0i\ f\0\0\0iýÿÿÿiúÿÿÿiùÿÿÿiöÿÿÿiõÿÿÿiþÿÿÿi÷ÿÿÿiøÿÿÿiûÿÿÿiüÿÿÿiôÿÿÿióÿÿÿiòÿÿÿièÿÿÿiéÿÿÿiêÿÿÿiëÿÿÿiìÿÿÿiíÿÿÿiîÿÿÿiïÿÿÿiðÿÿÿiñÿÿÿi\19\0\0\0s\11\0\0\0Cell#%.3d        i"\0\0\0i!\0\0\0\0\0\0i\1f\0\0\0i\1e\0\0\0i\1d\0\0\0i\1c\0\0\0i\e\0\0\0i\1a\0\0\0i-\0\0\0i,\0\0\0i+\0\0\0i*\0\0\0i)\0\0\0i(\0\0\0i'\0\0\0i&\0\0\0i%\0\0\0i$\0\0\0i#\0\0\0iÞÿÿÿißÿÿÿiàÿÿÿiáÿÿÿiâÿÿÿiãÿÿÿiäÿÿÿiåÿÿÿiæÿÿÿiçÿÿÿiÓÿÿÿiÔÿÿÿiÕÿÿÿiÖÿÿÿi×ÿÿÿiØÿÿÿiÙÿÿÿiÚÿÿÿiÛÿÿÿiÜÿÿÿiÝÿÿÿs\11\0\0\0Node#%.3d        t\ 4\0\0\0Fam7iM\0\0\0t\ 4\0\0\0Fam8iX\0\0\0t\ 4\0\0\0Grp0t\ 4\0\0\0Grp1Rß\ 1\0\0g\11ê-\81\99\97q=N("\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0RB\0\0\0t\14\0\0\0changeSpaceDimensionRØ\0\0\0\ 1\0\0R\0\ 2\0\0R>\0\0\0Rj\0\0\0Rk\0\0\0\ 2\0\0Rn\0\0\0R\98\0\0\0\0\0\0\ 2\0\0\0\0\0t\11\0\0\0setGroupsOnFamilyR\v\0\0\0t
34691 +\0\0\0LoadPartOfR`\0\0\0R+\0\0\0t\ e\0\0\0getAllGeoTypesR0\0\0\0Rs\0\0\0Rv\0\0\0R1\0\0\0R\9e\0\0\0R\8c\ 2\0\0\ 2\0\0Re\0\0\0R/\ 2\0\0(\14\0\0\0R  \0\0\0R!\0\0\0\ 1\0\0R\83\0\0\0R?\ 1\0\0R\86\0\0\0R\84\0\0\0t\ 6\0\0\0renum0t   \0\0\0famField0RÜ\ 2\0\0\0\0\0t\a\0\0\0renumM1t
34692 +\0\0\0famFieldM1t\ 6\0\0\0renum1t      \0\0\0famField1RÞ\ 2\0\0R\8e\0\0\0R\ 3\ 2\0\0R:\ 1\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\19\0\0\0testMEDFileUMeshLoadPart1\ e\ f\0\0\0\0\0\0\ 4\ 6\ 1\f\0
34693 +\ 1      \0\10\ 1\f\ 1\r\ 1\10\ 1\ f\ 1\13\ 1
34694 +\ 1      \ 1\10\ 1     \0\r\0\r\ 1\f\0\13\ 1\10\ 1W\ 1W\ 1\ f\ 1$\ 1\e\ 1\e\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1x\ 1x\ 1\ f\ 1$\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\16\ 1\16\ 1\10\ 2$\ 1\19\ 1£\ 1ä\0\r\ 1\1f\ 1#\ 1#\ 1#\ 1#\ 1#\ 1#\ 2$\ 1\19\ 1Ó\ 1ÿ\0!\0\r\ 1\1f\ 1#\ 1#\ 1#\ 1#\ 1#\ 1#\ 20\ 1\1c\ 1&\ 1&\ 1&\ 1\1f\ 1\1f\ 1\1c\ 1\97\ 1I\ 1ä\0\r\ 1\1f\ 1#\ 1#\ 1#\ 1c\ 1\0\0\0\v\0\0\0\a\0\0\0C\0\0\0s\1a\ 4\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0d\ 4\0g\ 2\0}\ 3\0t\0\0d\ 5\0\83\ 1\0}\ 4\0|\ 4\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\ 5\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\ 6\0d\ 6\0d\a\0\83\ 2\0\ 1d\b\0d   \0d
34695 +\0g\ 3\0}\ 6\0|\ 5\0j\a\0\83\0\0j\b\0|\ 6\0\83\ 1\0\ 1|\ 5\0\0\83\0\0\ 1t
34696 +\0t\v\0t\f\0\83\ 2\0}\a\0|\a\0j\r\0|\ 5\0\83\ 1\0\ 1|\a\0j\ 5\0d\v\0\83\ 1\0\ 1t\0\0d\f\0d\r\0\83\ 2\0}\ 4\0|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1t\ e\0t\ f\0d\f\0\83\ 1\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\ f\0f\ 2\0<t\ e\0t\ f\0d\10\0d\11\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\12\0f\ 2\0<|\a\0j\10\0|\ 4\0\83\ 1\0\ 1t\11\0|\ 1\0|\a\0t\12\0\83\ 3\0\ 1t
34697 +\0t\13\0t\f\0\83\ 2\0}\a\0|\a\0j\r\0|\ 5\0\83\ 1\0\ 1|\a\0j\ 5\0d\13\0\83\ 1\0\ 1t\0\0d\14\0d\r\0\83\ 2\0}\ 4\0|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1t\ e\0t\ f\0d\15\0d\16\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\ f\0f\ 2\0<t\ e\0t\ f\0d\17\0d\18\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\12\0f\ 2\0<|\a\0j\10\0|\ 4\0\83\ 1\0\ 1|\a\0j\14\0\83\0\0\ 1t\15\0|\ 1\0|\a\0\83\ 2\0\ 1t\16\0\83\0\0}\b\0t\17\0j\18\0|\ 1\0|\ 2\0t\19\0g\ 1\0d\ f\0d\ 5\0d\12\0g\ 3\0\83\ 4\0}   \0|\b\0j\1a\0|        \0\83\ 1\0\ 1t\e\0j\18\0|\ 1\0t\1c\0|\b\0\83\ 3\0}
34698 +\0|\0\0j\1d\0|
34699 +\0d\12\0\19d\ f\0\19j\1e\0\83\0\0d\19\0d\12\0d&\0d\e\0d\e\0f\ 4\0g\ 1\0f\ 2\0g\ 1\0\83\ 2\0\ 1t\16\0\83\0\0}\b\0t\17\0j\18\0|\ 1\0|\ 2\0t\19\0g\ 1\0d\ 6\0d\1c\0d\12\0g\ 3\0\83\ 4\0}      \0|\b\0j\1a\0|        \0\83\ 1\0\ 1t\e\0j\18\0|\ 1\0t\1c\0|\b\0\83\ 3\0}
34700 +\0|
34701 +\0j\1f\0\83\0\0}
34702 +\0|
34703 +\0d\ f\0\19d\ f\0\19\0\83\0\0\ 1t\0\0d\1d\0d\r\0\83\ 2\0}\ 4\0t\ e\0t\ f\0d\ 6\0d\1c\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\ f\0f\ 2\0<t\ e\0t\ f\0d\1e\0d\1f\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\12\0f\ 2\0<|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1|\0\0j!\0|
34704 +\0d\ f\0\19d\ f\0\19j"\0\83\0\0j#\0|\ 4\0\0\83\ 2\0\83\ 1\0\ 1|
34705 +\0d\12\0\19d\ f\0\19\0\83\0\0\ 1t\0\0d!\0d\r\0\83\ 2\0}\ 4\0t\ e\0t\ f\0d"\0d#\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\ f\0f\ 2\0<t\ e\0t\ f\0d$\0d%\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\12\0f\ 2\0<|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1|\0\0j!\0|
34706 +\0d\12\0\19d\ f\0\19j"\0\83\0\0j#\0|\ 4\0\0\83\ 2\0\83\ 1\0\ 1d\ e\0S('\0\0\0s\7f\0\0\0This method tests partial loading on fields on CELL. It is the same principle than those in testMEDFileUMeshLoadPart1.
34707 +        s\f\0\0\0Pyfile82.medRn\ 2\0\0s\a\0\0\0aa [kg]s    \0\0\0bbb [m/s]i\ 6\0\0\0i\ 3\0\0\0g\0\0\0\0\0\0\0\0s\ 6\0\0\0aa [b]s\a\0\0\0cc [de]s\b\0\0\0gg [klm]t\ 5\0\0\0Fieldi\19\0\0\0i\ 2\0\0\0Ni\0\0\0\0id\0\0\0i}\0\0\0i\ 1\0\0\0t   \0\0\0FieldNodei$\0\0\0\0\0\0\0\0\0i,\ 1\0\0iP\ 1\0\0i(\0\0\0i\ e\0\0\0R&\0\0\0i\ f\0\0\0i\f\0\0\0ig\0\0\0is\0\0\0g\11ê-\81\99\97q=i\15\0\0\0\0\0\0\0\0\0i/\ 1\0\0iD\ 1\0\0(\ 2\0\0\0i\0\0\0\0i\ e\0\0\0($\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0RB\0\0\0\ 3\0\0\0\0\0\ 1\0\0R\0\ 2\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0\0\0\0Rm\0\0\0Rn\0\0\0R{\ 1\0\0R_\ 2\0\0R.\0\0\0R\1c\ 1\0\0Rd\0\0\0t!\0\0\0WriteFieldUsingAlreadyWrittenMeshRP\ 1\0\0R>\0\0\0\ 3\0\0R`\0\0\0R7\ 2\0\0R[\ 1\0\0RN\0\0\0R+\0\0\0\ 1\0\0Rq\0\0\0Rv\ 3\0\0R0\0\0\0R+\ 1\0\0R1\0\0\0(\v\0\0\0R       \0\0\0R!\0\0\0t\b\0\0\0meshNamet\ 6\0\0\0composRÔ\ 1\0\0R\83\0\0\0R?\ 1\0\0R\b\0\0\0\0\0\0R\86\0\0\0Rl\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileFieldsLoadPart1a\ f\0\0sn\0\0\0\0\ 3\ 6\ 1\ 6\ 1\f\ 1\f\0
34708 +\ 1      \0\10\ 1\f\ 1\r\ 1\10\ 1\ f\ 1\13\ 1
34709 +\ 1\ f\0\r\ 1\r\ 1\ f\0\r\ 1"\ 1%\ 1\r\ 1\10\ 1\ f\0\r\ 1\r\ 1\ f\0\r\ 1%\ 1%\ 1\r\ 1
34710 +\ 1\r\ 2    \ 1$\ 1\r\ 1\15\ 16\ 2       \ 1$\ 1\r\ 1\15\ 1\f\ 1\12\ 1\ f\0%\0%\ 1\r\ 1'\ 1\12\ 1\ f\0%\0%\ 1\r\ 1'\ 1c\ 1\0\0\0\ 4\0\0\0\ 6\0\0\0C\0\0\0\0\0\0d\ 1\0}\ 1\0t\0\0d
34711 +\0d\v\0d\f\0g\ 3\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0d\ 5\0d\ 6\0d\a\0g\ 3\0\83\ 1\0\ 1t\ 2\0\83\0\0}\ 3\0|\ 3\0j\ 3\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 5\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\ 6\0j\a\0|\ 1\0\83\ 1\0}\ 3\0|\0\0j\b\0|\ 3\0j     \0\83\0\0d\b\0\83\ 2\0\ 1|\0\0j
34712 +\0|\ 3\0j\v\0\83\0\0j\f\0|\ 2\0d      \0\83\ 2\0\83\ 1\0\ 1d\0\0S(\r\0\0\0Ns\f\0\0\0Pyfile83.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0s\ 6\0\0\0aa [m]s\a\0\0\0bbb [s]s
34713 +\0\0\0cccc [m/s]R \ 2\0\0g\11ê-\81\99\97q=(\ 3\0\0\0i\0\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 2\0\0\0i\0\0\0\0i\0\0\0\0(\r\0\0\0RY\0\0\0\ 1\0\0R>\0\0\0Rc\0\0\0RB\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R+\0\0\0RC\0\0\0R0\0\0\0\0\0\0R1\0\0\0(\ 4\0\0\0R    \0\0\0R!\0\0\0R\ 3\ 2\0\0R\86\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\18\0\0\0testMEDFileWithoutCells1\94\ f\0\0s\16\0\0\0\0\ 1\ 6\ 1\15\ 1\16\ 1      \ 1\r\ 1\r\ 1\10\ 2\ f\ 1\16\ 1\1f\ 1c\ 1\0\0\0\f\0\0\0\v\0\0\0C\0\0\0s[\ 4\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0d\ 4\0g\ 2\0}\ 3\0t\0\0d\ 5\0\83\ 1\0}\ 4\0|\ 4\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\ 4\0\83\0\0}\ 5\0|\ 5\0j\ 5\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\ 6\0d\ 6\0d\a\0\83\ 2\0\ 1d\b\0\0d
34714 +\0g\ 3\0}\ 6\0|\ 5\0j\a\0\83\0\0j\b\0|\ 6\0\83\ 1\0\ 1|\ 5\0\0\83\0\0\ 1t
34715 +\0t\v\0t\f\0\83\ 2\0}\a\0|\a\0j\r\0|\ 5\0\83\ 1\0\ 1|\a\0j\ 5\0d\v\0\83\ 1\0\ 1t\0\0d\f\0d\r\0\83\ 2\0}\ 4\0|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1t\ e\0t\ f\0d\f\0\83\ 1\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\ f\0f\ 2\0<t\ e\0t\ f\0d\10\0d\11\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\12\0f\ 2\0<|\a\0j\10\0|\ 4\0\83\ 1\0\ 1t\11\0|\ 1\0|\a\0t\12\0\83\ 3\0\ 1t
34716 +\0t\13\0t\f\0\83\ 2\0}\a\0|\a\0j\r\0|\ 5\0\83\ 1\0\ 1|\a\0j\ 5\0d\13\0\83\ 1\0\ 1t\0\0d\14\0d\r\0\83\ 2\0}\ 4\0|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1t\ e\0t\ f\0d\15\0d\16\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\ f\0f\ 2\0<t\ e\0t\ f\0d\17\0d\18\0\83\ 2\0\83\ 1\0|\ 4\0d\ e\0d\ e\0\85\ 2\0d\12\0f\ 2\0<|\a\0j\10\0|\ 4\0\83\ 1\0\ 1|\a\0j\14\0\83\0\0\ 1t\15\0|\ 1\0|\a\0\83\ 2\0\ 1t\16\0\83\0\0}\b\0t\17\0j\18\0|\ 1\0|\ 2\0t\19\0g\ 1\0d\19\0d\ 5\0d\12\0g\ 3\0\83\ 4\0}   \0|\b\0j\1a\0|        \0\83\ 1\0\ 1|  \0j\e\0d\ f\0t\19\0\83\ 2\0}
34717 +\0|\0\0j\1c\0|
34718 +\0j\1d\0\83\0\0t\1e\0d\19\0d\ 5\0d\12\0\83\ 3\0\83\ 2\0\ 1|    \0j\e\0d\12\0\83\ 1\0}
34719 +\0|\0\0j\1c\0|
34720 +\0j\1d\0\83\0\0t\1e\0d\19\0d\1a\0d\12\0\83\ 3\0\83\ 2\0\ 1|\0\0j\1f\0|
34721 +\0\0\83\0\0d\e\0k\ 2\0\ 2|
34722 +\0\0\83\0\0|       \0j!\0\83\0\0k\ 2\0\83\ 1\0\ 1\0j"\0\83\0\0\ 1|       \0j\e\0d\ f\0t\19\0\83\ 2\0}
34723 +\0|\0\0j\1c\0|
34724 +\0j\1d\0\83\0\0t\1e\0d\19\0d\ 5\0d\12\0\83\ 3\0\83\ 2\0\ 1|    \0j\e\0d\12\0\83\ 1\0}
34725 +\0|\0\0j\1f\0|
34726 +\0\0\83\0\0d\1c\0k\ 2\0oB\ 3|
34727 +\0\0\83\0\0|       \0j!\0\83\0\0k\ 2\0\83\ 1\0\ 1|\0\0j\1f\0|
34728 +\0j#\0\83\0\0j$\0t%\0d\19\0d\1d\0d\ 5\0d\1e\0d\e\0d\1f\0\0d!\0g\b\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1t&\0j\18\0|\ 1\0t'\0|\b\0\83\ 3\0}\v\0|\v\0d\ f\0\19d\ f\0\19j(\0\83\0\0\ 1t\0\0d5\0d6\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1|\0\0j\1f\0|\v\0d\ f\0\19d\ f\0\19j)\0\83\0\0j$\0|\ 4\0d$\0\83\ 2\0\83\ 1\0\ 1|\v\0d\12\0\19d\ f\0\19j(\0\83\0\0\ 1t\0\0d7\0d8\0d9\0d:\0d;\0d<\0d=\0d>\0g\b\0\83\ 1\0}\ 4\0|\ 4\0j\b\0|\ 3\0\83\ 1\0\ 1|\0\0j\1f\0|\v\0d\12\0\19d\ f\0\19j)\0\83\0\0j$\0|\ 4\0d$\0\83\ 2\0\83\ 1\0\ 1d\ e\0S(?\0\0\0s\8b\0\0\0 Test close to Pyfile82.med except that here zipCoords on MEDFileUMesh is invoked here to see if the PartDef is correctly updated.
34729 +        s\f\0\0\0Pyfile84.medRn\ 2\0\0s\a\0\0\0aa [kg]s    \0\0\0bbb [m/s]i\ 6\0\0\0i\ 3\0\0\0g\0\0\0\0\0\0\0\0s\ 6\0\0\0aa [b]s\a\0\0\0cc [de]s\b\0\0\0gg [klm]RÇ\ 3\0\0i\19\0\0\0i\ 2\0\0\0Ni\0\0\0\0id\0\0\0i}\0\0\0i\ 1\0\0\0\ 3\0\0i$\0\0\0\0\0\0\0\0\0i,\ 1\0\0iP\ 1\0\0i\ 4\0\0\0i\ e\0\0\0i
34730 +\0\0\0i\b\0\0\0i\ 5\0\0\0i\a\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0ih\0\0\0ii\0\0\0g\11ê-\81\99\97q=iÌ\0\0\0i0\ 1\0\0\0\0\0i1\ 1\0\0\0\0\0i2\ 1\0\0\0\0\0i3\ 1\0\0\0\0\0i6\ 1\0\0\0\0\0i7\ 1\0\0\0\0\0i8\ 1\0\0\0\0\0i9\ 1\0\0(\ 2\0\0\0i\ 4\0\0\0ih\0\0\0(\ 2\0\0\0i\ 5\0\0\0ii\0\0\0(\ 2\0\0\0\0\0\0i0\ 1\0\0(\ 2\0\0\0\0\0\0i1\ 1\0\0(\ 2\0\0\0\0\0\0i2\ 1\0\0(\ 2\0\0\0\0\0\0i3\ 1\0\0(\ 2\0\0\0\0\0\0i6\ 1\0\0(\ 2\0\0\0\0\0\0i7\ 1\0\0(\ 2\0\0\0\0\0\0i8\ 1\0\0(\ 2\0\0\0\0\0\0i9\ 1\0\0(*\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0RB\0\0\0\ 3\0\0\0\0\0\ 1\0\0R\0\ 2\0\0Rw\ 1\0\0R\13\ 1\0\0RX\ 1\0\0\0\0\0Rm\0\0\0Rn\0\0\0R{\ 1\0\0R_\ 2\0\0R.\0\0\0R\1c\ 1\0\0Rd\0\0\0\ 3\0\0RP\ 1\0\0R>\0\0\0\ 3\0\0R`\0\0\0R7\ 2\0\0t\11\0\0\0getPartDefAtLevelR+\0\0\0t\b\0\0\0getSlicet\ 5\0\0\0sliceR0\0\0\0t\10\0\0\0getNumberOfElemsRÐ\ 1\0\0Rs\ 2\0\0t\ 5\0\0\0toDAIR1\0\0\0Rk\0\0\0R[\ 1\0\0RN\0\0\0Rv\ 3\0\0R+\ 1\0\0(\f\0\0\0R     \0\0\0R!\0\0\0\ 3\0\0\ 3\0\0\ 1\0\0R\83\0\0\0R?\ 1\0\0R\b\0\0\0\0\0\0R\86\0\0\0t\ 3\0\0\0spdRl\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testZipCoordsWithLoadPart1¢\ f\0\0sp\0\0\0\0\ 3\ 6\ 1\ 6\ 1\f\ 1\f\0
34731 +\ 1      \0\10\ 1\f\ 1\r\ 1\10\ 1\ f\ 1\13\ 1
34732 +\ 1\ f\0\r\ 1\r\ 1\ f\0\r\ 1"\ 1%\ 1\r\ 1\10\ 1\ f\0\r\ 1\r\ 1\ f\0\r\ 1%\ 1%\ 1\r\ 1
34733 +\ 1\r\ 2    \ 1$\ 1\r\ 1\12\ 1"\ 1\ f\ 1"\ 11\ 1
34734 +\ 1\12\ 1"\ 1\ f\ 11\ 1:\ 1\15\ 1\12\ 1\12\ 1\r\ 1'\ 1\12\ 1$\ 1\r\ 1'\ 1c\ 1\0\0\0\ 4\0\0\0\13\0\0\0C\0\0\0\0\0\0t\0\0\83\0\0}\ 1\0|\ 1\0j\ 1\0t\ 2\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 5\0\83\ 1\0t\ 2\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 5\0\83\ 1\0\83\ 2\0\ 1|\ 1\0j\ 3\0d\ 6\0\83\ 1\0\ 1t\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0|\ 1\0\83\ 1\0\ 1t\ 6\0d\ 2\0d\ 4\0d\ 5\0d\a\0d\b\0g\ 5\0\83\ 1\0}\ 3\0|\ 3\0j\ 3\0d    \0\83\ 1\0\ 1|\ 2\0j\a\0d\ 1\0|\ 3\0g\ 1\0\83\ 2\0\ 1|\0\0j\b\0|\ 2\0j      \0d\ 1\0\83\ 1\0j
34735 +\0t\ 6\0d
34736 +\0d\v\0d
34737 +\0d\v\0d\v\0d\v\0d
34738 +\0d\v\0d
34739 +\0d
34740 +\0d
34741 +\0d
34742 +\0d
34743 +\0d
34744 +\0d
34745 +\0d
34746 +\0g\10\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1d\f\0S(\r\0\0\0s\\0\0\0 Non regression test to check that setGroupsAtLevel is available with MEDFileCMesh.
34747 +        i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0Rn\ 2\0\0i\ 5\0\0\0i\a\0\0\0t
34748 +\0\0\0MyAssemblyiÿÿÿÿiþÿÿÿN(\v\0\0\0\0\0\0Rc\0\0\0RY\0\0\0RB\0\0\0\0\0\0\0\0\0Rk\0\0\0Rl\0\0\0R0\0\0\0R\9e\0\0\0R1\0\0\0(\ 4\0\0\0R     \0\0\0R\83\0\0\0R\86\0\0\0\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt \0\0\0testMEDFileCMeshSetGroupsAtLevelÙ\ f\0\0s\14\0\0\0\0\ 3    \0:\ 1\r\ 1   \0\r\ 1\e\0\r\ 1\13\ 1U\ 1c\ 1\0\0\0\19\0\0\0\9b\ 3\0\0C\0\0\0s¤$\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0t\0\0d\ 5\0d\ 6\0d\a\0d\b\0g\ 4\0\83\ 1\0}\ 5\0t\0\0d\ 5\0d        \0d
34749 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\a\0g\f\0\83\ 1\0}\ 6\0t\ 1\0d\13\0\83\ 1\0}\a\0|\a\0j\ 2\0\83\0\0\ 1t\ 3\0\83\0\0}\b\0|\b\0j\ 4\0|\a\0|\a\0\83\ 2\0\ 1|\b\0j\ 5\0\83\0\0}\b\0|\ 5\0j\ 6\0|\b\0j\a\0\83\0\0\83\ 1\0}    \0|\b\0|   \0\19}\b\0|\b\0j\b\0\83\0\0\ 1|\b\0|\ 6\0\19}
34750 +\0|\b\0|\ 6\0j\ 6\0|\b\0j\a\0\83\0\0\83\ 1\0\19}\v\0|
34751 +\0j     \0d\ 5\0\83\ 1\0\ 1t
34752 +\0j\v\0|
34753 +\0|\v\0g\ 2\0\83\ 1\0}\b\0|\b\0j\f\0|\ 2\0\83\ 1\0\ 1|\b\0j\r\0\83\0\0\\ 5\0}\f\0}\a\0}\r\0}\ e\0}\ f\0|\ f\0j\ e\0\83\0\0j\ f\0d     \0\83\ 1\0}\10\0t\10\0\83\0\0}\11\0|\11\0j\11\0d\ 5\0|\b\0\83\ 2\0\ 1|\11\0j\11\0d\14\0|\f\0\83\ 2\0\ 1t\0\0d\ 5\0\0d
34754 +\0d\v\0d\ 6\0d\15\0d\b\0d\16\0d\17\0g   \0\83\ 1\0}\12\0|\12\0j\f\0d\18\0\83\ 1\0\ 1|\11\0j\12\0d\ 5\0|\12\0g\ 1\0\83\ 2\0\ 1|\10\0}\13\0|\13\0j\f\0d\19\0\83\ 1\0\ 1|\11\0j\12\0d\14\0|\13\0g\ 1\0\83\ 2\0\ 1|\11\0j\13\0|\ 1\0d
34755 +\0\83\ 2\0\ 1t\ 1\0d\v\0\83\ 1\0}\a\0|\a\0j\ 2\0\83\0\0\ 1t\ 3\0\83\0\0}\14\0|\14\0j\ 4\0|\a\0\83\ 1\0\ 1|\14\0j\ 5\0\83\0\0}\14\0|\14\0j\f\0|\ 3\0\83\ 1\0\ 1|\14\0j\14\0d\v\0\83\ 1\0\ 1|\14\0j\ 4\0|\14\0j\15\0\83\0\0d\1a\0d\1a\0\85\ 2\0d       \0d
34756 +\0d\ 5\0g\ 3\0f\ 2\0\19\83\ 1\0\ 1t\10\0\83\0\0}\15\0|\15\0j\11\0d\ 5\0|\14\0\83\ 2\0\ 1|\15\0j\13\0|\ 1\0d\ 5\0\83\ 2\0\ 1t\16\0j\17\0|\ 1\0|\ 2\0\83\ 2\0}\16\0t\16\0j\17\0|\ 1\0|\ 3\0\83\ 2\0}\15\0|\15\0j\18\0d\ 5\0\83\ 1\0}\17\0|\16\0j\19\0|\17\0d\ 5\0\83\ 2\0}\18\0|\0\0j\1a\0|\18\0j\e\0\83\0\0|\16\0j\e\0\83\0\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1c\0d\ 5\0\83\ 1\0d\e\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1c\0d\14\0\83\ 1\0d\1c\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1d\0\83\0\0d\18\0d\1d\0d\1e\0d\19\0d\1f\0\0f\ 6\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1e\0d\18\0\83\ 1\0d\14\0f\ 1\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1e\0d\1e\0\83\ 1\0d\14\0f\ 1\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1e\0d\1d\0\83\ 1\0d\ 5\0f\ 1\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1e\0d\19\0\83\ 1\0d!\0f\ 1\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1e\0\0\83\ 1\0d!\0f\ 1\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j\1e\0d\1f\0\83\ 1\0d\14\0f\ 1\0\83\ 2\0\ 1t\ 1\0d"\0d#\0d#\0f\ 3\0d$\0d#\0d#\0f\ 3\0d%\0d#\0d#\0f\ 3\0d&\0d#\0d#\0f\ 3\0d#\0d"\0d#\0f\ 3\0d"\0d"\0d#\0f\ 3\0d$\0d"\0d#\0f\ 3\0d%\0d"\0d#\0f\ 3\0d&\0d"\0d#\0f\ 3\0d'\0d"\0d#\0f\ 3\0d#\0d$\0d#\0f\ 3\0d"\0d$\0d#\0f\ 3\0d$\0d$\0d#\0f\ 3\0d%\0d$\0d#\0f\ 3\0d&\0d$\0d#\0f\ 3\0d'\0d$\0d#\0f\ 3\0d#\0d%\0d#\0f\ 3\0d"\0d%\0d#\0f\ 3\0d$\0d%\0d#\0f\ 3\0d%\0d%\0d#\0f\ 3\0d&\0d%\0d#\0f\ 3\0d'\0d%\0d#\0f\ 3\0d#\0d&\0d#\0f\ 3\0d"\0d&\0d#\0f\ 3\0d$\0d&\0d#\0f\ 3\0d%\0d&\0d#\0f\ 3\0d&\0d&\0d#\0f\ 3\0d'\0d&\0d#\0f\ 3\0d"\0d'\0d#\0f\ 3\0d$\0d'\0d#\0f\ 3\0d%\0d'\0d#\0f\ 3\0d&\0d'\0d#\0f\ 3\0d"\0d#\0d"\0f\ 3\0d$\0d#\0d"\0f\ 3\0d%\0d#\0d"\0f\ 3\0d&\0d#\0d"\0f\ 3\0d#\0d"\0d"\0f\ 3\0d"\0d"\0d"\0f\ 3\0d$\0d"\0d"\0f\ 3\0d%\0d"\0d"\0f\ 3\0d&\0d"\0d"\0f\ 3\0d'\0d"\0d"\0f\ 3\0d#\0d$\0d"\0f\ 3\0d"\0d$\0d"\0f\ 3\0d$\0d$\0d"\0f\ 3\0d%\0d$\0d"\0f\ 3\0d&\0d$\0d"\0f\ 3\0d'\0d$\0d"\0f\ 3\0d#\0d%\0d"\0f\ 3\0d"\0d%\0d"\0f\ 3\0d$\0d%\0d"\0f\ 3\0d%\0d%\0d"\0f\ 3\0d&\0d%\0d"\0f\ 3\0d'\0d%\0d"\0f\ 3\0d#\0d&\0d"\0f\ 3\0d"\0d&\0d"\0f\ 3\0d$\0d&\0d"\0f\ 3\0d%\0d&\0d"\0f\ 3\0d&\0d&\0d"\0f\ 3\0d'\0d&\0d"\0f\ 3\0d"\0d'\0d"\0f\ 3\0d$\0d'\0d"\0f\ 3\0d%\0d'\0d"\0f\ 3\0d&\0d'\0d"\0f\ 3\0d"\0d#\0d$\0f\ 3\0d$\0d#\0d$\0f\ 3\0d%\0d#\0d$\0f\ 3\0d&\0d#\0d$\0f\ 3\0d#\0d"\0d$\0f\ 3\0d"\0d"\0d$\0f\ 3\0d$\0d"\0d$\0f\ 3\0d%\0d"\0d$\0f\ 3\0d&\0d"\0d$\0f\ 3\0d'\0d"\0d$\0f\ 3\0d#\0d$\0d$\0f\ 3\0d"\0d$\0d$\0f\ 3\0d$\0d$\0d$\0f\ 3\0d%\0d$\0d$\0f\ 3\0d&\0d$\0d$\0f\ 3\0d'\0d$\0d$\0f\ 3\0d#\0d%\0d$\0f\ 3\0d"\0d%\0d$\0f\ 3\0d$\0d%\0d$\0f\ 3\0d%\0d%\0d$\0f\ 3\0d&\0d%\0d$\0f\ 3\0d'\0d%\0d$\0f\ 3\0d#\0d&\0d$\0f\ 3\0d"\0d&\0d$\0f\ 3\0d$\0d&\0d$\0f\ 3\0d%\0d&\0d$\0f\ 3\0d&\0d&\0d$\0f\ 3\0d'\0d&\0d$\0f\ 3\0d"\0d'\0d$\0f\ 3\0d$\0d'\0d$\0f\ 3\0d%\0d'\0d$\0f\ 3\0d&\0d'\0d$\0f\ 3\0g`\0\83\ 1\0}\ f\0|\0\0j\1f\0|\18\0j\15\0\83\0\0\0|\ f\0d(\0\83\ 2\0\83\ 1\0\ 1t\0\0d)\0d  \0d\ 5\0d\15\0d*\0d+\0d,\0d)\0d    \0d\15\0d\13\0d*\0d,\0d-\0d)\0d
34757 +\0d     \0d\13\0d.\0d*\0d-\0d)\0d
34758 +\0d\13\0d\f\0d.\0d-\0d/\0d)\0d\v\0d
34759 +\0d\f\0d0\0d.\0d/\0d)\0d\v\0d\f\0d\r\0d0\0d/\0d1\0d)\0d\15\0d\ 6\0d2\0d,\0d3\0d4\0d)\0d\15\0d2\0d5\0d,\0d4\0d6\0d)\0d7\0d\r\0d8\0d9\0d1\0d:\0d)\0d7\0d8\0d;\0d9\0d:\0d<\0d)\0d5\0d2\0d)\0d6\0d4\0d=\0d)\0d5\0d)\0d\10\0d6\0d=\0d>\0d)\0d;\0d8\0d\a\0d<\0d:\0d?\0d)\0d;\0d\a\0d@\0d<\0d?\0dA\0d)\0d\10\0d)\0dB\0d>\0d=\0dC\0d)\0d\10\0dB\0dD\0d>\0dC\0dE\0d)\0d@\0d\a\0d\17\0dA\0d?\0dF\0d)\0d@\0d\17\0dG\0dA\0dF\0dH\0d)\0d\b\0dD\0dI\0dJ\0dE\0dK\0d)\0d\b\0dI\0dL\0dJ\0dK\0dM\0d)\0d\16\0d\b\0dL\0dN\0dJ\0dM\0d)\0d\16\0dL\0dO\0dN\0dM\0dP\0d)\0d\17\0d\16\0dO\0dF\0dN\0dP\0d)\0d\17\0dO\0dQ\0dF\0dP\0dR\0d)\0d*\0d+\0d,\0dS\0dT\0dU\0d)\0d*\0d,\0d-\0dS\0dU\0dV\0d)\0d.\0d*\0d-\0d\e\0dS\0dV\0d)\0d.\0d-\0d/\0d\e\0dV\0dW\0d)\0d0\0d.\0d/\0dX\0d\e\0dW\0d)\0d0\0d/\0d1\0dX\0dW\0dY\0d)\0d,\0d3\0d4\0dU\0dZ\0d[\0d)\0d,\0d4\0d6\0dU\0d[\0d\\0d)\0d9\0d1\0d:\0d]\0dY\0d^\0d)\0d9\0d:\0d<\0d]\0d^\0d_\0d)\0d6\0d4\0d=\0d\\0d[\0d`\0d)\0d6\0d=\0d>\0d\\0d`\0da\0d)\0d<\0d:\0d?\0d_\0d^\0db\0d)\0d<\0d?\0dA\0d_\0db\0dc\0d)\0d>\0d=\0dC\0da\0d`\0dd\0d)\0d>\0dC\0dE\0da\0dd\0de\0d)\0dA\0d?\0dF\0dc\0db\0df\0d)\0dA\0dF\0dH\0dc\0df\0dg\0d)\0dJ\0dE\0dK\0dh\0de\0di\0d)\0dJ\0dK\0dM\0dh\0di\0dj\0d)\0dN\0dJ\0dM\0dk\0dh\0dj\0d)\0dN\0dM\0dP\0dk\0dj\0dl\0d)\0dF\0dN\0dP\0df\0dk\0dl\0d)\0dF\0dP\0dR\0df\0dl\0dm\0d\11\0d\13\0d\15\0d5\0d\ e\0d-\0d,\0d6\0dn\0d\11\0d\f\0d\13\0d\ e\0d\ f\0d/\0d-\0dn\0do\0d\11\0d\r\0d\f\0d\ f\0d8\0d1\0d/\0do\0d:\0d\11\0d\ e\0d5\0d\10\0d\11\0dn\0d6\0d>\0dp\0d\11\0d\ f\0d\ e\0d\11\0d\12\0do\0dn\0dp\0dq\0d\11\0d8\0d\ f\0d\12\0d\a\0d:\0do\0dq\0d?\0d\11\0d\11\0d\10\0dD\0d\b\0dp\0d>\0dE\0dJ\0d\11\0d\12\0d\11\0d\b\0d\16\0dq\0dp\0dJ\0dN\0d\11\0d\a\0d\12\0d\16\0d\17\0d?\0dq\0dN\0dF\0d\11\0d-\0d,\0d6\0dn\0dV\0dU\0d\\0dr\0d\11\0d/\0d-\0dn\0do\0dW\0dV\0dr\0ds\0d\11\0d1\0d/\0do\0d:\0dY\0dW\0ds\0d^\0d\11\0dn\0d6\0d>\0dp\0dr\0d\\0da\0dt\0d\11\0do\0dn\0dp\0dq\0ds\0dr\0dt\0du\0d\11\0d:\0do\0dq\0d?\0d^\0ds\0du\0db\0d\11\0dp\0d>\0dE\0dJ\0dt\0da\0de\0dh\0d\11\0dq\0dp\0dJ\0dN\0du\0dt\0dh\0dk\0d\11\0d?\0dq\0dN\0dF\0db\0du\0dk\0df\0\ 1\83\ 1\0}\ f\0|\0\0j\1f\0|\18\0d\ 5\0\19j!\0\83\0\0\0|\ f\0\83\ 1\0\83\ 1\0\ 1t\0\0d\ 5\0d\f\0d8\0d@\0dI\0d0\0d4\0d>\0dJ\0dR\0dV\0ds\0db\0dg\0dv\0dw\0dx\0dy\0dz\0d{\0d|\0d}\0d~\0d\7f\0d\80\0d\81\0d\82\0d\83\0d\84\0d\85\0d\86\0d\87\0d\88\0d\89\0d\8a\0d\8b\0d\8c\0d\8d\0d\8e\0d\8f\0d\90\0d\91\0d\92\0d\93\0d\94\0d\95\0d\96\0d\97\0d\98\0d\99\0d\9a\0d\9b\0d\9c\0d\9d\0d\9e\0d\9f\0\0\0\0\0\0\0\0\0\0\0\0gC\0\83\ 1\0}\ f\0|\0\0j\1f\0|\18\0d\ 5\0\19j"\0\83\0\0\0|\ f\0\83\ 1\0\83\ 1\0\ 1t\0\0d\v\0d        \0d\ 5\0d\15\0d\v\0d     \0d\15\0d\13\0d\v\0d
34760 +\0d     \0d\13\0d\v\0d
34761 +\0d\13\0d\f\0d\v\0d\v\0d
34762 +\0d\f\0d\v\0d\v\0d\f\0d\r\0d\v\0d\15\0d\ 6\0d2\0d\v\0d\15\0d2\0d5\0d\v\0d7\0d\r\0d8\0d\v\0d7\0d8\0d;\0d\v\0d5\0d2\0d)\0d\v\0d5\0d)\0d\10\0d\v\0d;\0d8\0d\a\0d\v\0d;\0d\a\0d@\0d\v\0d\10\0d)\0dB\0d\v\0d\10\0dB\0dD\0d\v\0d@\0d\a\0d\17\0d\v\0d@\0d\17\0dG\0d\v\0d\b\0dD\0dI\0d\v\0d\b\0dI\0dL\0d\v\0d\16\0d\b\0dL\0d\v\0d\16\0dL\0dO\0d\v\0d\17\0d\16\0dO\0d\v\0d\17\0dO\0dQ\0d\v\0dS\0dT\0dU\0d\v\0dS\0dU\0dV\0d\v\0d\e\0dS\0dV\0d\v\0d\e\0dV\0dW\0d\v\0dX\0d\e\0dW\0d\v\0dX\0dW\0dY\0d\v\0dU\0dZ\0d[\0d\v\0dU\0d[\0d\\0d\v\0d]\0dY\0d^\0d\v\0d]\0d^\0d_\0d\v\0d\\0d[\0d`\0d\v\0d\\0d`\0da\0d\v\0d_\0d^\0db\0d\v\0d_\0db\0dc\0d\v\0da\0d`\0dd\0d\v\0da\0dd\0de\0d\v\0dc\0db\0df\0d\v\0dc\0df\0dg\0d\v\0dh\0de\0di\0d\v\0dh\0di\0dj\0d\v\0dk\0dh\0dj\0d\v\0dk\0dj\0dl\0d\v\0df\0dk\0dl\0d\v\0df\0dl\0dm\0d\ 6\0d   \0d\ 5\0d+\0d*\0d\ 6\0d\ 5\0d\15\0d,\0d+\0d\ 6\0d\15\0d        \0d*\0d,\0d\ 6\0d\15\0d\13\0d-\0d,\0d\ 6\0d\13\0d   \0d*\0d-\0d\ 6\0d
34763 +\0d     \0d*\0d.\0d\ 6\0d\13\0d
34764 +\0d.\0d-\0d\ 6\0d\13\0d\f\0d/\0d-\0d\ 6\0d\f\0d
34765 +\0d.\0d/\0d\ 6\0d\v\0d
34766 +\0d.\0d0\0d\ 6\0d\f\0d\v\0d0\0d/\0d\ 6\0d\f\0d\r\0d1\0d/\0d\ 6\0d\r\0d\v\0d0\0d1\0d\ 6\0d\15\0d\ 6\0d3\0d,\0d\ 6\0d\ 6\0d2\0d4\0d3\0d\ 6\0d2\0d\15\0d,\0d4\0d\ 6\0d2\0d5\0d6\0d4\0d\ 6\0d5\0d\15\0d,\0d6\0d\ 6\0d7\0d\r\0d1\0d9\0d\ 6\0d\r\0d8\0d:\0d1\0d\ 6\0d8\0d7\0d9\0d:\0d\ 6\0d8\0d;\0d<\0d:\0d\ 6\0d;\0d7\0d9\0d<\0d\ 6\0d2\0d)\0d=\0d4\0d\ 6\0d)\0d5\0d6\0d=\0d\ 6\0d)\0d\10\0d>\0d=\0d\ 6\0d\10\0d5\0d6\0d>\0d\ 6\0d8\0d\a\0d?\0d:\0d\ 6\0d\a\0d;\0d<\0d?\0d\ 6\0d\a\0d@\0dA\0d?\0d\ 6\0d@\0d;\0d<\0dA\0d\ 6\0d)\0dB\0dC\0d=\0d\ 6\0dB\0d\10\0d>\0dC\0d\ 6\0dB\0dD\0dE\0dC\0d\ 6\0dD\0d\10\0d>\0dE\0d\ 6\0d\a\0d\17\0dF\0d?\0d\ 6\0d\17\0d@\0dA\0dF\0d\ 6\0d\17\0dG\0dH\0dF\0d\ 6\0dG\0d@\0dA\0dH\0d\ 6\0d\b\0dD\0dE\0dJ\0d\ 6\0dD\0dI\0dK\0dE\0d\ 6\0dI\0d\b\0dJ\0dK\0d\ 6\0dI\0dL\0dM\0dK\0d\ 6\0dL\0d\b\0dJ\0dM\0d\ 6\0d\16\0d\b\0dJ\0dN\0d\ 6\0dL\0d\16\0dN\0dM\0d\ 6\0dL\0dO\0dP\0dM\0d\ 6\0dO\0d\16\0dN\0dP\0d\ 6\0d\17\0d\16\0dN\0dF\0d\ 6\0dO\0d\17\0dF\0dP\0d\ 6\0dO\0dQ\0dR\0dP\0d\ 6\0dQ\0d\17\0dF\0dR\0d\ 6\0d5\0d\ e\0dn\0d6\0d\ 6\0d\ e\0d\13\0d-\0dn\0d\ 6\0d\ e\0d\ f\0do\0dn\0d\ 6\0d\ f\0d\f\0d/\0do\0d\ 6\0d\ f\0d8\0d:\0do\0d\ 6\0d\10\0d\11\0dp\0d>\0d\ 6\0d\11\0d\ e\0dn\0dp\0d\ 6\0d\11\0d\12\0dq\0dp\0d\ 6\0d\12\0d\ f\0do\0dq\0d\ 6\0d\12\0d\a\0d?\0dq\0d\ 6\0d\b\0d\11\0dp\0dJ\0d\ 6\0d\16\0d\12\0dq\0dN\0d\ 6\0d*\0d+\0dT\0dS\0d\ 6\0d+\0d,\0dU\0dT\0d\ 6\0d,\0d*\0dS\0dU\0d\ 6\0d,\0d-\0dV\0dU\0d\ 6\0d-\0d*\0dS\0dV\0d\ 6\0d.\0d*\0dS\0d\e\0d\ 6\0d-\0d.\0d\e\0dV\0d\ 6\0d-\0d/\0dW\0dV\0d\ 6\0d/\0d.\0d\e\0dW\0d\ 6\0d0\0d.\0d\e\0dX\0d\ 6\0d/\0d0\0dX\0dW\0d\ 6\0d/\0d1\0dY\0dW\0d\ 6\0d1\0d0\0dX\0dY\0d\ 6\0d,\0d3\0dZ\0dU\0d\ 6\0d3\0d4\0d[\0dZ\0d\ 6\0d4\0d,\0dU\0d[\0d\ 6\0d4\0d6\0d\\0d[\0d\ 6\0d6\0d,\0dU\0d\\0d\ 6\0d9\0d1\0dY\0d]\0d\ 6\0d1\0d:\0d^\0dY\0d\ 6\0d:\0d9\0d]\0d^\0d\ 6\0d:\0d<\0d_\0d^\0d\ 6\0d<\0d9\0d]\0d_\0d\ 6\0d4\0d=\0d`\0d[\0d\ 6\0d=\0d6\0d\\0d`\0d\ 6\0d=\0d>\0da\0d`\0d\ 6\0d>\0d6\0d\\0da\0d\ 6\0d:\0d?\0db\0d^\0d\ 6\0d?\0d<\0d_\0db\0d\ 6\0d?\0dA\0dc\0db\0d\ 6\0dA\0d<\0d_\0dc\0d\ 6\0d=\0dC\0dd\0d`\0d\ 6\0dC\0d>\0da\0dd\0d\ 6\0dC\0dE\0de\0dd\0d\ 6\0dE\0d>\0da\0de\0d\ 6\0d?\0dF\0df\0db\0d\ 6\0dF\0dA\0dc\0df\0d\ 6\0dF\0dH\0dg\0df\0d\ 6\0dH\0dA\0dc\0dg\0d\ 6\0dJ\0dE\0de\0dh\0d\ 6\0dE\0dK\0di\0de\0d\ 6\0dK\0dJ\0dh\0di\0d\ 6\0dK\0dM\0dj\0di\0d\ 6\0dM\0dJ\0dh\0dj\0d\ 6\0dN\0dJ\0dh\0dk\0d\ 6\0dM\0dN\0dk\0dj\0d\ 6\0dM\0dP\0dl\0dj\0d\ 6\0dP\0dN\0dk\0dl\0d\ 6\0dF\0dN\0dk\0df\0d\ 6\0dP\0dF\0df\0dl\0d\ 6\0dP\0dR\0dm\0dl\0d\ 6\0dR\0dF\0df\0dm\0d\ 6\0d6\0dn\0dr\0d\\0d\ 6\0dn\0d-\0dV\0dr\0d\ 6\0dn\0do\0ds\0dr\0d\ 6\0do\0d/\0dW\0ds\0d\ 6\0do\0d:\0d^\0ds\0d\ 6\0d>\0dp\0dt\0da\0d\ 6\0dp\0dn\0dr\0dt\0d\ 6\0dp\0dq\0du\0dt\0d\ 6\0dq\0do\0ds\0du\0d\ 6\0dq\0d?\0db\0du\0d\ 6\0dJ\0dp\0dt\0dh\0d\ 6\0dN\0dq\0du\0dk\0d\ 6\0d\13\0d\15\0d5\0d\ e\0d\ 6\0d\f\0d\13\0d\ e\0d\ f\0d\ 6\0d\r\0d\f\0d\ f\0d8\0d\ 6\0d\ e\0d5\0d\10\0d\11\0d\ 6\0d\ f\0d\ e\0d\11\0d\12\0d\ 6\0d8\0d\ f\0d\12\0d\a\0d\ 6\0d\11\0d\10\0dD\0d\b\0d\ 6\0d\12\0d\11\0d\b\0d\16\0d\ 6\0d\a\0d\12\0d\16\0d\17\0d\ 6\0dV\0dU\0d\\0dr\0d\ 6\0dW\0dV\0dr\0ds\0d\ 6\0dY\0dW\0ds\0d^\0d\ 6\0dr\0d\\0da\0dt\0d\ 6\0ds\0dr\0dt\0du\0d\ 6\0d^\0ds\0du\0db\0d\ 6\0dt\0da\0de\0dh\0d\ 6\0du\0dt\0dh\0dk\0d\ 6\0db\0du\0dk\0df\0g\9a\ 3\83\ 1\0}\ f\0|\0\0j\1f\0|\18\0d\14\0\19j!\0\83\0\0\0|\ f\0\83\ 1\0\83\ 1\0\ 1t\0\0d\ 5\0d\ 6\0d\r\0d\ e\0d)\0d\a\0d\b\0dI\0d+\0d3\0d1\0dn\0d=\0d?\0dJ\0dK\0dT\0dZ\0dY\0dr\0d`\0db\0dh\0di\0\0\0\0\0dx\0\0\0\0\0\0\0d|\0\0\0\0\0\0\0d\80\0\0\0\0\0d¿\0\0\0\0\0\0d\87\0\0\0\0\0\0\0d\8c\0\0\0\0\0\0\0d\91\0\0\0\0\0\0\0d\96\0\0\0\0\0\0\0\0\0\0d\9c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dÿ\0d\0\ 1d\ 1\ 1d\ 2\ 1d\ 3\ 1d\ 4\ 1d\ 5\ 1d\ 6\ 1d\a\ 1d\b\ 1d   \ 1d
34767 +\ 1d\v\ 1d\f\ 1d\r\ 1d\ e\ 1d\ f\ 1d\10\ 1d\11\ 1d\12\ 1d\13\ 1d\14\ 1d\15\ 1d\16\ 1d\17\ 1d\18\ 1d\19\ 1d\1a\ 1d\e\ 1d\1c\ 1d\1d\ 1d\1e\ 1d\1f\ 1\ 1d!\ 1d"\ 1d#\ 1d$\ 1d%\ 1d&\ 1d'\ 1d(\ 1d)\ 1d*\ 1d+\ 1d,\ 1d-\ 1d.\ 1d/\ 1d0\ 1d1\ 1d2\ 1d3\ 1d4\ 1d5\ 1d6\ 1d7\ 1d8\ 1d9\ 1d:\ 1d;\ 1d<\ 1d=\ 1d>\ 1d?\ 1d@\ 1dA\ 1dB\ 1dC\ 1dD\ 1dE\ 1dF\ 1dG\ 1dH\ 1dI\ 1dJ\ 1dK\ 1\0\83\ 1\0}\ f\0|\0\0j\1f\0|\18\0d\14\0\19j"\0\83\0\0\0|\ f\0\83\ 1\0\83\ 1\0\ 1t\0\0d      \0d      \0d\ 5\0d   \0d\ 5\0d\15\0d        \0d\15\0d   \0d      \0d\15\0d\13\0d        \0d\13\0d   \0d      \0d
34768 +\0d     \0d      \0d\13\0d
34769 +\0d     \0d\13\0d\f\0d        \0d\f\0d
34770 +\0d     \0d\v\0d
34771 +\0d     \0d\f\0d\v\0d        \0d\f\0d\r\0d        \0d\r\0d\v\0d        \0d\15\0d\ 6\0d        \0d\ 6\0d2\0d        \0d2\0d\15\0d        \0d2\0d5\0d        \0d5\0d\15\0d        \0d7\0d\r\0d        \0d\r\0d8\0d        \0d8\0d7\0d        \0d8\0d;\0d        \0d;\0d7\0d        \0d2\0d)\0d        \0d)\0d5\0d        \0d)\0d\10\0d        \0d\10\0d5\0d        \0d8\0d\a\0d        \0d\a\0d;\0d        \0d\a\0d@\0d        \0d@\0d;\0d        \0d)\0dB\0d        \0dB\0d\10\0d        \0dB\0dD\0d        \0dD\0d\10\0d        \0d\a\0d\17\0d        \0d\17\0d@\0d        \0d\17\0dG\0d        \0dG\0d@\0d        \0d\b\0dD\0d        \0dD\0dI\0d        \0dI\0d\b\0d        \0dI\0dL\0d        \0dL\0d\b\0d        \0d\16\0d\b\0d        \0dL\0d\16\0d        \0dL\0dO\0d        \0dO\0d\16\0d        \0d\17\0d\16\0d        \0dO\0d\17\0d        \0dO\0dQ\0d        \0dQ\0d\17\0d        \0d5\0d\ e\0d        \0d\ e\0d\13\0d        \0d\ e\0d\ f\0d        \0d\ f\0d\f\0d        \0d\ f\0d8\0d        \0d\10\0d\11\0d        \0d\11\0d\ e\0d        \0d\11\0d\12\0d        \0d\12\0d\ f\0d        \0d\12\0d\a\0d        \0d\b\0d\11\0d        \0d\16\0d\12\0d        \0dS\0dT\0d        \0dT\0dU\0d        \0dU\0dS\0d        \0dU\0dV\0d        \0dV\0dS\0d        \0d\e\0dS\0d        \0dV\0d\e\0d        \0dV\0dW\0d        \0dW\0d\e\0d        \0dX\0d\e\0d        \0dW\0dX\0d        \0dW\0dY\0d        \0dY\0dX\0d        \0dU\0dZ\0d        \0dZ\0d[\0d        \0d[\0dU\0d        \0d[\0d\\0d        \0d\\0dU\0d        \0d]\0dY\0d        \0dY\0d^\0d        \0d^\0d]\0d        \0d^\0d_\0d        \0d_\0d]\0d        \0d[\0d`\0d        \0d`\0d\\0d        \0d`\0da\0d        \0da\0d\\0d        \0d^\0db\0d        \0db\0d_\0d        \0db\0dc\0d        \0dc\0d_\0d        \0d`\0dd\0d        \0dd\0da\0d        \0dd\0de\0d        \0de\0da\0d        \0db\0df\0d        \0df\0dc\0d        \0df\0dg\0d        \0dg\0dc\0d        \0dh\0de\0d        \0de\0di\0d        \0di\0dh\0d        \0di\0dj\0d        \0dj\0dh\0d        \0dk\0dh\0d        \0dj\0dk\0d        \0dj\0dl\0d        \0dl\0dk\0d        \0df\0dk\0d        \0dl\0df\0d        \0dl\0dm\0d        \0dm\0df\0d        \0d\\0dr\0d        \0dr\0dV\0d        \0dr\0ds\0d        \0ds\0dW\0d        \0ds\0d^\0d        \0da\0dt\0d        \0dt\0dr\0d        \0dt\0du\0d        \0du\0ds\0d        \0du\0db\0d        \0dh\0dt\0d        \0dk\0du\0g\80\ 1\83\ 1\0}\ f\0|\0\0j\1f\0|\18\0d!\0\19j!\0\83\0\0\0|\ f\0\83\ 1\0\83\ 1\0\ 1t\0\0dL\ 1\83\ 1\0}\ f\0|\ f\0j\ 2\0\83\0\0\ 1|\ f\0d\v\09}\ f\0|\0\0j\1f\0|\18\0d!\0\19j"\0\83\0\0\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1a\0|\18\0j#\0d\14\0d\18\0\83\ 2\0j\e\0\83\0\0d\18\0\83\ 2\0\ 1|\0\0j\1a\0|\18\0j#\0d!\0d\19\0\83\ 2\0j\e\0\83\0\0d\19\0\83\ 2\0\ 1|\0\0j\1f\0|\18\0j#\0d\14\0d\18\0\83\ 2\0j$\0t\0\0d\ 5\0d     \0d
34772 +\0d\v\0d\ 6\0d\15\0\0dM\ 1dN\ 1g   \0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1f\0|\18\0j#\0d\14\0d\1e\0\83\ 2\0j$\0t\0\0d\b\0d\16\0d\17\0dG\0dI\0dL\0dO\ 1dP\ 1dQ\ 1g      \0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1f\0|\18\0j#\0d!\0d\19\0\83\ 2\0j$\0t\0\0d\ 5\0d      \0d\15\0d7\0d\ e\0d\ f\0d8\0d\11\0dB\0dD\0dO\0dQ\0d*\0d,\0d-\0d1\0d4\0d:\0dp\0dq\0g\14\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1f\0|\18\0j#\0d!\0\0\83\ 2\0j$\0t\0\0dT\0dS\0dU\0d]\0dr\0ds\0d^\0dt\0dd\0de\0dl\0dm\0dR\ 1dS\ 1dT\ 1\0dU\ 1dV\ 1dW\ 1dX\ 1g\14\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1f\0|\18\0j#\0d\ 5\0d\1d\0\83\ 2\0j$\0t\0\0d\ 5\0\0d
34773 +\0d\v\0d\ 6\0d\15\0d\b\0d\16\0d\17\0dG\0dI\0dL\0d=\0d>\0dp\0dN\0dF\0dH\0g\12\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1f\0|\18\0j#\0d\14\0d\1f\0\83\ 2\0j$\0t\0\0d=\0d>\0dA\0dN\0dK\0dM\0dP\0d\e\0dV\0dW\0d^\0d_\0da\0dc\0dd\0dh\0df\0dl\0dv\0dY\ 1dx\0dZ\ 1d[\ 1d\\ 1\0d]\ 1dz\0d^\ 1d_\ 1d`\ 1da\ 1db\ 1dc\ 1dd\ 1de\ 1\0d~\0df\ 1dg\ 1dh\ 1g(\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\18\0j\f\0di\ 1\83\ 1\0\ 1|\18\0j\13\0|\ 1\0d\ 5\0\83\ 2\0\ 1d\1a\0S(j\ 1\0\0s5\0\0\0 New functionality of MEDFileUMesh.buildExtrudedMesh.s\f\0\0\0Pyfile85.medRn\ 2\0\0t\ 6\0\0\0Mesh1Dt\ 6\0\0\0Mesh3Di\0\0\0\0i\ 4\0\0\0i\14\0\0\0i\18\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\a\0\0\0i\b\0\0\0i\f\0\0\0i\r\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\ 6\0\0\0iÿÿÿÿi\ 5\0\0\0i\19\0\0\0i\1a\0\0\0R\93\ 2\0\0R\95\ 2\0\0NiB\0\0\0\0\0\0t\r\0\0\0grp0_extrudedt\b\0\0\0grp0_topt\r\0\0\0grp1_extrudedt\b\0\0\0grp1_topiþÿÿÿg\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0\10@g\0\0\0\0\0\0\14@g\11ê-\81\99\97q=i\10\0\0\0i!\0\0\0\0\0\0i%\0\0\0i&\0\0\0i"\0\0\0i'\0\0\0i#\0\0\0i(\0\0\0i
34774 +\0\0\0i$\0\0\0i*\0\0\0i\v\0\0\0i+\0\0\0i       \0\0\0i\ e\0\0\0i)\0\0\0i.\0\0\0i\ f\0\0\0i/\0\0\0i0\0\0\0i1\0\0\0i4\0\0\0i\15\0\0\0i5\0\0\0i\16\0\0\0i6\0\0\0i\17\0\0\0i7\0\0\0i:\0\0\0i\e\0\0\0i;\0\0\0i\1c\0\0\0i8\0\0\0i<\0\0\0i\1d\0\0\0i=\0\0\0i9\0\0\0i\1e\0\0\0i>\0\0\0i\1f\0\0\0i?\0\0\0iA\0\0\0i@\0\0\0iE\0\0\0iF\0\0\0iG\0\0\0iC\0\0\0iH\0\0\0iD\0\0\0iJ\0\0\0iK\0\0\0iI\0\0\0iN\0\0\0iO\0\0\0iP\0\0\0iQ\0\0\0iT\0\0\0iU\0\0\0iV\0\0\0iW\0\0\0iZ\0\0\0i[\0\0\0iX\0\0\0i\\0\0\0i]\0\0\0iY\0\0\0i^\0\0\0i_\0\0\0i,\0\0\0i-\0\0\0i2\0\0\0i3\0\0\0iL\0\0\0iM\0\0\0iR\0\0\0iS\0\0\0ib\0\0\0ii\0\0\0ip\0\0\0iw\0\0\0i~\0\0\0i\85\0\0\0i\8c\0\0\0i\93\0\0\0i\9a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\ 3\ 1\0\0i
34775 +\ 1\0\0i\11\ 1\0\0i\18\ 1\0\0i\1f\ 1\0\0i&\ 1\0\0i-\ 1\0\0i4\ 1\0\0i;\ 1\0\0iB\ 1\0\0iI\ 1\0\0iP\ 1\0\0iY\ 1\0\0ib\ 1\0\0ik\ 1\0\0it\ 1\0\0i}\ 1\0\0i\86\ 1\0\0i\8f\ 1\0\0i\98\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0i`\0\0\0id\0\0\0ih\0\0\0il\0\0\0it\0\0\0ix\0\0\0i|\0\0\0i\80\0\0\0i\84\0\0\0i\88\0\0\0i\90\0\0\0i\94\0\0\0i\98\0\0\0i\9c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\ 1\ 1\0\0i\ 6\ 1\0\0i\v\ 1\0\0i\10\ 1\0\0i\15\ 1\0\0i\1a\ 1\0\0i$\ 1\0\0i)\ 1\0\0i.\ 1\0\0i3\ 1\0\0i8\ 1\0\0i=\ 1\0\0iG\ 1\0\0iL\ 1\0\0iQ\ 1\0\0iV\ 1\0\0i[\ 1\0\0i`\ 1\0\0ie\ 1\0\0ij\ 1\0\0io\ 1\0\0iy\ 1\0\0i~\ 1\0\0i\83\ 1\0\0i\88\ 1\0\0i\8d\ 1\0\0i\92\ 1\0\0i\97\ 1\0\0i\9c\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0i¿\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0i\0\ 2\0\0i\ 5\ 2\0\0i
34776 +\ 2\0\0i\ f\ 2\0\0i\14\ 2\0\0i\19\ 2\0\0i\1e\ 2\0\0i#\ 2\0\0i(\ 2\0\0i-\ 2\0\0i2\ 2\0\0i7\ 2\0\0i<\ 2\0\0iA\ 2\0\0iF\ 2\0\0iK\ 2\0\0iP\ 2\0\0iU\ 2\0\0iZ\ 2\0\0i_\ 2\0\0id\ 2\0\0ii\ 2\0\0in\ 2\0\0is\ 2\0\0ix\ 2\0\0i}\ 2\0\0i\82\ 2\0\0i\87\ 2\0\0i\8c\ 2\0\0i\91\ 2\0\0i\96\ 2\0\0i\9b\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0iÿ\ 2\0\0i\ 4\ 3\0\0\ 3\0\0i\ e\ 3\0\0i\13\ 3\0\0i\18\ 3\0\0i\1d\ 3\0\0i"\ 3\0\0i'\ 3\0\0i,\ 3\0\0i1\ 3\0\0i6\ 3\0\0i;\ 3\0\0i@\ 3\0\0iE\ 3\0\0iJ\ 3\0\0iO\ 3\0\0iT\ 3\0\0iY\ 3\0\0i^\ 3\0\0ic\ 3\0\0ih\ 3\0\0im\ 3\0\0ir\ 3\0\0iw\ 3\0\0i|\ 3\0\0i\81\ 3\0\0i\86\ 3\0\0i\8b\ 3\0\0i\90\ 3\0\0i\95\ 3\0\0i\9a\ 3\0\0i\81\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ia\0\0\0ie\0\0\0if\0\0\0ij\0\0\0in\0\0\0ir\0\0\0is\0\0\0ic\0\0\0iq\0\0\0iu\0\0\0iy\0\0\0i}\0\0\0i\82\0\0\0i\86\0\0\0i\87\0\0\0i\8e\0\0\0i\8f\0\0\0i\91\0\0\0i\95\0\0\0i\96\0\0\0i\9e\0\0\0\0\0\0\0\0\0t\f\0\0\0MeshExtruded(%\0\0\0Rk\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0t\ f\0\0\0buildComplementR§\0\0\0Rs\ 2\0\0t
34777 +\0\0\0simplexizeR[\0\0\0t\18\0\0\0MergeUMeshesOnSameCoordsRB\0\0\0R\9b\ 1\0\0\ 2\0\0\ 2\0\0R>\0\0\0Rj\0\0\0Rl\0\0\0R\v\0\0\0\ 3\0\0\0\0\0R'\0\0\0R(\0\0\0R}\0\0\0t\11\0\0\0buildExtrudedMeshR+\0\0\0RC\0\0\0t\17\0\0\0getNumberOfCellsAtLevelR²\ 1\0\0\0\0\0R0\0\0\0R1\0\0\0Rv\0\0\0Rw\0\0\0RG\0\0\0R\7f\ 1\0\0(\19\0\0\0R     \0\0\0R!\0\0\0t
34778 +\0\0\0meshName2Dt
34779 +\0\0\0meshName1Dt\r\0\0\0meshName3DOutRú\ 2\0\0Ro\ 1\0\0\ 2\0\0R\83\0\0\0t\ 3\0\0\0d1cRá\0\0\0R\84\0\0\0t\a\0\0\0mMinus1Rï\ 2\0\0R\80\0\0\0Re\ 1\0\0R\ 2\0\0\0R\86\0\0\0R\93\ 2\0\0R\95\ 2\0\0R\93\ 1\0\0t\ 4\0\0\0mm1Dt\ 4\0\0\0mm2Dt\ 3\0\0\0m1Dt\ 4\0\0\0mm3D(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt"\0\0\0testMEDFileUMeshBuildExtrudedMesh1ä\ f\0\0\0\0\0\0\ 2\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 2\18\ 10\ 2\f\0
34780 +\ 1      \0\10\ 1\f\ 1\15\ 1
34781 +\0
34782 +\ 1
34783 +\0\19\ 1\r\ 1\15\ 1\r\ 1\e\ 1\15\ 2  \ 1\10\0\10\ 1'\0\r\ 1\13\ 1\ 6\0\r\ 1\13\ 1\10\ 2\f\0
34784 +\ 1      \0\r\0\f\ 1\r\ 1\r\ 1,\ 1     \ 1\10\ 1\10\ 2\12\ 1\12\ 1\ f\ 1\12\ 2\1c\ 1\19\ 1\19\ 1(\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1ÿ\0ÿ\0ÿ\0ÿ\0\90\ 1\1f\ 1ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ç\ 1 \ 1Õ\ 1 \ 1ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ä\ 1 \ 1ÿ\0ÿ\0W\ 1 \ 1ÿ\0ÿ\0ÿ\0ÿ\0\90\ 1 \ 1\f\0
34785 +\0
34786 +\ 1 \ 2"\ 1"\ 1C\ 1C\ 1d\ 1d\ 1^\ 1 \ 1\r\ 1\10\ 1s\ e\0\0\0requires numpyc\ 1\0\0\0\11\0\0\0\13\0\0\0C\0\0\0\ 6\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0g\12\0d\ 5\0d\ 6\0\83\ 3\0}\ 2\0|\ 2\0j\ 1\0d\a\0d\b\0g\ 2\0\83\ 1\0\ 1d     \0d
34787 +\0d\v\0d\f\0d\f\0d\v\0d\ 6\0d\v\0d\r\0d\ 6\0d\ e\0d\ f\0d\v\0d
34788 +\0d\ f\0d\10\0d\r\0d\v\0g\12\0}\ 3\0t\ 2\0\83\0\0}\ 4\0|\ 4\0j\ 3\0d\ 6\0\83\ 1\0\ 1|\ 4\0j\ 4\0d\r\0\83\ 1\0\ 1|\ 4\0j\ 5\0t\ 6\0d
34789 +\0|\ 3\0d\v\0d\ f\0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\ 6\0d
34790 +\0|\ 3\0d\ f\0d\11\0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\a\0d\v\0|\ 3\0d        \0d\v\0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\b\0d\v\0|\ 3\0d\11\0d\12\0!\83\ 3\0\ 1|\ 4\0j\ 5\0t\b\0d\v\0|\ 3\0d\12\0d\13\0!\83\ 3\0\ 1|\ 4\0j       \0\83\0\0\ 1|\ 4\0j
34791 +\0|\ 2\0\83\ 1\0\ 1|\ 4\0j\v\0\83\0\0\ 1t\ 2\0j\f\0\83\0\0}\ 5\0|\ 5\0j\ 3\0d\f\0\83\ 1\0\ 1|\ 5\0j\ 4\0d
34792 +\0\83\ 1\0\ 1|\ 5\0j\ 5\0t\r\0d\ 6\0d\f\0d\v\0g\ 2\0\83\ 3\0\ 1|\ 5\0j\ 5\0t\r\0d\ 6\0d
34793 +\0d\ e\0g\ 2\0\83\ 3\0\ 1|\ 5\0j\ 5\0t\ e\0d
34794 +\0d\ 6\0d\10\0d\r\0g\ 3\0\83\ 3\0\ 1|\ 5\0j  \0\83\0\0\ 1|\ 5\0j
34795 +\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\v\0\83\0\0\ 1t\ 2\0j\f\0\83\0\0}\ 6\0|\ 6\0j\ 3\0d  \0\83\ 1\0\ 1|\ 6\0j\ 4\0d\v\0\83\ 1\0\ 1|\ 6\0j\ 5\0t\ f\0d\f\0d\f\0g\ 1\0\83\ 3\0\ 1|\ 6\0j\ 5\0t\ f\0d\f\0d
34796 +\0g\ 1\0\83\ 3\0\ 1|\ 6\0j\ 5\0t\ f\0d\f\0d\ 6\0g\ 1\0\83\ 3\0\ 1|\ 6\0j\ 5\0t\ f\0d\f\0d\ e\0g\ 1\0\83\ 3\0\ 1|\ 6\0j       \0\83\0\0\ 1|\ 6\0j
34797 +\0|\ 2\0\83\ 1\0\ 1|\ 6\0j\v\0\83\0\0\ 1t\10\0j\f\0\83\0\0}\a\0|\0\0j\11\0|\a\0j\12\0\83\0\0\83\ 1\0\ 1|\a\0j\13\0d\14\0\83\ 1\0\ 1|\a\0j\14\0d\15\0\83\ 1\0\ 1|\a\0j
34798 +\0|\ 2\0\83\ 1\0\ 1|\ 5\0|\a\0d\16\0<|\ 4\0|\a\0d      \0<|\a\0j\15\0d       \0t\16\0d\17\0d\18\0d\19\0d\1a\0d\ f\0g\ 5\0\83\ 1\0\83\ 2\0\ 1|\ 6\0|\a\0d\e\0<|\a\0j\15\0d\e\0t\16\0d\1c\0d\1d\0d\1e\0d\1f\0g\ 4\0\83\ 1\0\83\ 2\0\ 1t\16\0j\f\0\83\0\0}\b\0|\b\0j\17\0d\f\0d
34799 +\0g\ 2\0d\ 6\0d\f\0\83\ 3\0\ 1|\b\0j\13\0\0\83\ 1\0\ 1t\16\0j\f\0\83\0\0}  \0|      \0j\17\0d\f\0d\ 6\0d
34800 +\0g\ 3\0d
34801 +\0d\f\0\83\ 3\0\ 1|      \0j\13\0d!\0\83\ 1\0\ 1|\a\0j\18\0d      \0|\b\0|   \0g\ 2\0t\19\0\83\ 3\0\ 1t\16\0j\f\0\83\0\0}
34802 +\0|
34803 +\0j\17\0d  \0d\f\0d\ 6\0g\ 3\0d
34804 +\0d\f\0\83\ 3\0\ 1|
34805 +\0j\13\0\0\83\ 1\0\ 1t\16\0j\f\0\83\0\0}\v\0|\v\0j\17\0\0d\ 6\0g\ 2\0d\ 6\0d\f\0\83\ 3\0\ 1|\v\0j\13\0d!\0\83\ 1\0\ 1|\a\0j\18\0d\16\0|
34806 +\0|\v\0g\ 2\0t\19\0\83\ 3\0\ 1t\16\0j\f\0\83\0\0}\f\0|\f\0j\17\0t\1a\0t\e\0d\10\0\83\ 1\0\83\ 1\0d\10\0d\f\0\83\ 3\0\ 1|\f\0j\13\0\0\83\ 1\0\ 1t\16\0j\f\0\83\0\0}\r\0|\r\0j\17\0t\1a\0t\e\0d\ 5\0\83\ 1\0\83\ 1\0d\ 5\0d\f\0\83\ 3\0\ 1|\r\0j\13\0d!\0\83\ 1\0\ 1|\a\0j\18\0d\f\0|\f\0|\r\0g\ 2\0t\19\0\83\ 3\0\ 1|\a\0j\1c\0\0d"\0\83\ 2\0\ 1|\a\0j\1d\0\0\0t\19\0\83\ 3\0}\ e\0|\0\0j\11\0|\b\0j\1e\0|\ e\0\83\ 1\0\83\ 1\0\ 1|\a\0j\1d\0d      \0d!\0t\19\0\83\ 3\0}\ e\0|\0\0j\11\0|    \0j\1e\0|\ e\0\83\ 1\0\83\ 1\0\ 1|\a\0j\1d\0d\16\0\0t\19\0\83\ 3\0}\ e\0|\0\0j\11\0|
34807 +\0j\1e\0|\ e\0\83\ 1\0\83\ 1\0\ 1|\a\0j\1d\0d\16\0d!\0t\19\0\83\ 3\0}\ e\0|\0\0j\11\0|\v\0j\1e\0|\ e\0\83\ 1\0\83\ 1\0\ 1|\a\0j\1d\0d\f\0\0t\19\0\83\ 3\0}\ e\0|\0\0j\11\0|\f\0j\1e\0|\ e\0\83\ 1\0\83\ 1\0\ 1|\a\0j\1d\0d\f\0d!\0t\19\0\83\ 3\0}\ e\0|\0\0j\11\0|\r\0j\1e\0|\ e\0\83\ 1\0\83\ 1\0\ 1|\0\0j\11\0|\a\0j\1f\0d"\0\83\ 1\0\83\ 1\0\ 1|\a\0j\1d\0d   \0d"\0\83\ 2\0}\ e\0\0j!\0|\a\0\0j"\0\83\ 2\0}\ f\0\0j#\0|\ f\0\83\ 1\0}\10\0|\0\0j\11\0|\a\0j\1e\0|\10\0d#\0\83\ 2\0d    \0\19\83\ 1\0\ 1|\0\0j$\0|\a\0j%\0\83\0\0t&\0\83\ 2\0\ 1|\a\0j'\0t(\0\83\ 1\0\ 1\0j!\0|\a\0\0j"\0\83\ 2\0}\ f\0\0j#\0|\ f\0\83\ 1\0}\10\0|\0\0j\11\0|\a\0j\1e\0|\10\0d#\0\83\ 2\0d     \0\19\83\ 1\0\ 1|\0\0j$\0|\10\0j%\0\83\0\0t(\0\83\ 2\0\ 1d\0\0S($\0\0\0Ns\f\0\0\0Pyfile86.medg333333Ó¿g\9a\99\99\99\99\99É?gffffffæ?i     \0\0\0i\ 2\0\0\0\ 2\0\0t\ 3\0\0\0bbbi\0\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 1\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i
34808 +\0\0\0i\ e\0\0\0i\12\0\0\0RT\0\0\0RU\0\0\0iÿÿÿÿi \0\0\0i)\0\0\0i2\0\0\0i8\0\0\0iþÿÿÿif\0\0\0i4\0\0\0i-\0\0\0i?\0\0\0RV\0\0\0RW\0\0\0RX\0\0\0g\11ê-\81\99\97q=()\0\0\0RY\0\0\0\ 1\0\0R[\0\0\0R\\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Ra\0\0\0Rb\0\0\0Rc\0\0\0Rd\0\0\0R(\0\0\0Re\0\0\0Rf\0\0\0Rg\0\0\0R>\0\0\0R0\0\0\0Rh\0\0\0RB\0\0\0Ri\0\0\0R\98\0\0\0Rk\0\0\0RZ\0\0\0Rl\0\0\0RN\0\0\0Rm\0\0\0Rn\0\0\0Ro\0\0\0RG\0\0\0R1\0\0\0Rp\0\0\0t\ 6\0\0\0picklet\ 5\0\0\0dumpst\10\0\0\0HIGHEST_PROTOCOLt\ 5\0\0\0loadsR+\0\0\0t\v\0\0\0getAxisTypet\a\0\0\0AX_CARTt\v\0\0\0setAxisTypet\ 6\0\0\0AX_CYL(\11\0\0\0R   \0\0\0RO\0\0\0R\80\0\0\0R\82\0\0\0R\83\0\0\0R\84\0\0\0R\85\0\0\0R\86\0\0\0R\87\0\0\0R\88\0\0\0RQ\0\0\0R\89\0\0\0R\8a\0\0\0R\8b\0\0\0R\8c\0\0\0R\r\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileUMeshPickeling15\10\0\0\0\0\0\0\ 2\ 6\ 1H\ 1\13\ 1<\ 1 \ 1\r\ 1\r\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 1
34809 +\ 1\r\ 1
34810 +\ 1\f\ 1\r\ 1\r\ 1\19\ 1\19\ 1\1c\ 1
34811 +\ 1\r\ 1
34812 +\ 1\f\ 1\r\ 1\r\ 1\16\ 1\16\ 1\16\ 1\16\ 1
34813 +\ 1\r\ 1
34814 +\ 2\f\ 1\13\ 1\r\ 1\r\ 1\r\ 1
34815 +\ 1
34816 +\ 1%\ 1
34817 +\ 1"\ 2\f\ 1\19\ 1\r\ 1\f\ 1\1c\ 1\r\ 1\19\ 1\f\ 1\1c\ 1\r\ 1\f\ 1\19\ 1\r\ 1\19\ 1\f\ 1\1f\ 1\r\ 1\f\ 1\1f\ 1\r\ 1\19\ 1\10\ 2\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\15\ 1\16\ 1\16\ 1\12\ 2\15\ 1\ f\ 1\1d\ 1\16\ 2\r\ 1\15\ 1\ f\ 1\1d\ 1\16\ 1c\ 1\0\0\0\13\0\0\0\ 6\0\0\0C\0\0\0\ 4\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0}\ 5\0t\0\0\83\0\0}\ 6\0t\ 1\0|\ 1\0\83\ 1\0}\a\0|\a\0j\ 2\0\83\0\0\ 1|\ 6\0j\ 3\0|\a\0\83\ 1\0\ 1|\ 6\0j\ 4\0\83\0\0}\ 6\0|\ 6\0j\ 5\0|\ 5\0\83\ 1\0\ 1t\ 6\0\83\0\0}\b\0x\8d\0t\a\0|\ 4\0\83\ 1\0D]\7f\0}       \0t\b\0t   \0\83\ 1\0}
34818 +\0|
34819 +\0j
34820 +\0|\ 6\0\83\ 1\0\ 1t\ 1\0|\ 1\0\83\ 1\0}\a\0|\a\0j\ 2\0\83\0\0\ 1|\a\0|     \09}\a\0|
34821 +\0j\v\0|\a\0\83\ 1\0\ 1|
34822 +\0j\ 5\0|\ 2\0\83\ 1\0\ 1|
34823 +\0j\f\0t\r\0|       \0\83\ 1\0|   \0d\ 6\0\83\ 3\0\ 1|\b\0j\ e\0|
34824 +\0\83\ 1\0\ 1qy\0Wt\ f\0\83\0\0}\v\0|\ 6\0|\v\0d\ 6\0<|\b\0j\10\0|\ 3\0d\a\0\83\ 2\0\ 1|\v\0j\10\0|\ 3\0d\ 6\0\83\ 2\0\ 1t\11\0|\ 3\0t\12\0\83\ 2\0}\f\0t\11\0j\13\0|\ 3\0t  \0t\14\0f\ 2\0g\ 1\0t\12\0\83\ 3\0}\r\0|\f\0j\15\0\83\0\0\ 1|\r\0j\15\0\83\0\0\ 1xI\0t\a\0|\ 4\0\83\ 1\0D];\0}        \0|\0\0j\16\0|\f\0|\ 2\0\19\0\19j\17\0\83\0\0j\18\0|\r\0|\ 2\0\19|     \0\19j\17\0\83\0\0d\b\0\83\ 2\0\83\ 1\0\ 1q}\ 1Wt\0\0\83\0\0}\ e\0|\ e\0j\ 3\0t\ 1\0d\ 6\0d    \0d\a\0d
34825 +\0g\ 4\0\83\ 1\0t\ 1\0d\ 6\0\0g\ 2\0\83\ 1\0\83\ 2\0\ 1|\ e\0j\ 4\0\83\0\0}\ e\0|\ e\0j\19\0d\ 6\0\83\ 1\0\ 1t\0\0\83\0\0}\ f\0|\ f\0j\ 3\0t\ 1\0d
34826 +\0d\v\0d\f\0g\ 3\0\83\ 1\0t\ 1\0d\ 6\0d   \0g\ 2\0\83\ 1\0\83\ 2\0\ 1|\ f\0j\ 4\0\83\0\0}\ f\0t\1a\0j\e\0|\ e\0|\ f\0\83\ 2\0}\10\0|\10\0j\ 5\0|\ 5\0\83\ 1\0\ 1t\ 6\0\83\0\0}\b\0x\8d\0t\a\0|\ 4\0\83\ 1\0D]\7f\0}        \0t\b\0t\1c\0\83\ 1\0}
34827 +\0|
34828 +\0j
34829 +\0|\10\0\83\ 1\0\ 1t\ 1\0d\r\0\83\ 1\0}\a\0|\a\0j\ 2\0\83\0\0\ 1|\a\0|     \09}\a\0|
34830 +\0j\v\0|\a\0\83\ 1\0\ 1|
34831 +\0j\ 5\0|\ 2\0\83\ 1\0\ 1|
34832 +\0j\f\0t\r\0|       \0\83\ 1\0|   \0d\ 6\0\83\ 3\0\ 1|\b\0j\ e\0|
34833 +\0\83\ 1\0\ 1q\81\ 2Wt\ f\0\83\0\0}\v\0|\10\0|\v\0d\ 6\0<|\v\0d\ 6\0=|\0\0j\1d\0|\v\0j\1e\0\83\0\0d\ f\0\83\ 2\0\ 1|\10\0|\v\0d\ 6\0<|\0\0j\1d\0|\v\0j\1e\0\83\0\0d\10\0\83\ 2\0\ 1|\b\0j\10\0|\ 3\0d\a\0\83\ 2\0\ 1t\11\0|\ 3\0t\12\0\83\ 2\0}\f\0t\11\0j\13\0|\ 3\0t\1c\0t\1f\0f\ 2\0g\ 1\0t\12\0\83\ 3\0}\r\0t\ 6\0j\13\0|\ 3\0|\ 2\0t\1c\0\0f\ 2\0g\ 1\0t\12\0\83\ 4\0}\11\0t\11\0j\13\0|\ 3\0t\1c\0t\1f\0f\ 2\0t\1c\0\0f\ 2\0g\ 2\0t\12\0\83\ 3\0}\12\0|\f\0j\15\0\83\0\0\ 1|\r\0j\15\0\83\0\0\ 1|\11\0j\15\0\83\0\0\ 1|\12\0j\15\0\83\0\0\ 1\0t\a\0|\ 4\0\83\ 1\0D]¬\0}        \0|\0\0j\16\0|\f\0|\ 2\0\19\0\19j\17\0\83\0\0d\ e\0 j\18\0|\r\0|\ 2\0\19\0\19j\17\0\83\0\0d\b\0\83\ 2\0\83\ 1\0\ 1|\0\0j\16\0|\f\0|\ 2\0\19|        \0\19j\17\0\83\0\0d\ e\0d\r\0!j\18\0|\11\0|  \0\19j\17\0\83\0\0d\b\0\83\ 2\0\83\ 1\0\ 1|\0\0j\16\0|\f\0|\ 2\0\19|        \0\19j\17\0\83\0\0j\18\0|\12\0|\ 2\0\19|     \0\19j\17\0\83\0\0d\b\0\83\ 2\0\83\ 1\0\ 1q\ e\ 4Wd\0\0S(\11\0\0\0Ni\v\0\0\0t\a\0\0\0myFields\f\0\0\0Pyfile87.medi
34834 +\0\0\0Rn\ 2\0\0i\0\0\0\0i\ 2\0\0\0g\11ê-\81\99\97q=i\ 1\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\b\0\0\0i\ 6\0\0\0(\0\0\0\0(\ 1\0\0\0i\0\0\0\0(!\0\0\0\0\0\0RY\0\0\0Ry\ 1\0\0Rc\0\0\0\ 1\0\0RB\0\0\0\0\0\0Rn\0\0\0Rw\ 1\0\0R\1c\ 1\0\0\0\0\0R{\ 1\0\0\0\0\0RD\ 3\0\0RY\ 1\0\0R>\0\0\0R\v\0\0\0R[\ 1\0\0RN\0\0\0t\14\0\0\0LoadSpecificEntitiest
34835 +\0\0\0NORM_ERRORRw\ 3\0\0R0\0\0\0R+\ 1\0\0R1\0\0\0\ 3\0\0R[\0\0\0R[\ 2\0\0R\13\ 1\0\0R+\0\0\0R,\0\0\0R_\0\0\0R`\0\0\0(\13\0\0\0R        \0\0\0t\a\0\0\0nbNodesRg\ 3\0\0R!\0\0\0t\ 5\0\0\0nbPdtRÊ\ 3\0\0R\83\0\0\0\ 1\0\0Rm\ 1\0\0\0\0\0R\b\0\0\0R\86\0\0\0Rl\ 1\0\0RV\ 3\0\0R\84\0\0\0R\85\0\0\0R\16\ 2\0\0t\ 3\0\0\0fs3t\ 3\0\0\0fs4(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt&\0\0\0testMEDFileFieldsLoadSpecificEntities1\97\10\0\0s\98\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 2       \ 1\f\0
34836 +\ 1\r\ 1\f\ 1\r\ 2        \ 1\13\ 1\f\ 1\r\ 1\f\0
34837 +\0
34838 +\ 1\r\ 1\r\ 1\19\ 1\r\ 1\ 4\ 2    \0
34839 +\ 1\10\ 1\10\ 2\ f\ 1\1e\ 1
34840 +\ 1
34841 +\ 1\13\ 15\ 1\ 4\ 1        \0.\0\f\0\r\ 1 \0+\0\f\ 1\12\0\r\ 1       \ 1\13\ 1\f\ 1\r\ 1\f\0
34842 +\0
34843 +\ 1\r\ 1\r\ 1\19\ 1\r\ 1\ 4\ 1    \0
34844 +\ 1\a\ 1\16\ 1
34845 +\ 1\16\ 1\10\ 1\ f\ 1\1e\ 1!\ 1'\ 1
34846 +\ 1
34847 +\ 1
34848 +\ 1
34849 +\ 1\13\ 19\ 18\ 15\ 1\ 4\ 1c\ 1\0\0\0\1f\0\0\0\b\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0}\ 5\0d\ 6\0}\ 6\0t\0\0\83\0\0}\a\0t\ 1\0|\ 1\0\83\ 1\0}\b\0|\b\0j\ 2\0\83\0\0\ 1|\a\0j\ 3\0|\b\0\83\ 1\0\ 1|\a\0j\ 4\0\83\0\0}\a\0|\a\0j\ 5\0|\ 5\0\83\ 1\0\ 1|\ 4\0|\ 6\0\1a}     \0t\ 6\0\83\0\0}
34850 +\0\0t\a\0|       \0\83\ 1\0D]æ\0}\v\0t\b\0\83\0\0}\f\0t   \0j
34851 +\0t\v\0d\a\0|\ 4\0d\b\0\83\ 3\0|\v\0|   \0\83\ 3\0}\r\0\0t\a\0|\r\0j\f\0|\r\0j\r\0|\r\0j\ e\0\83\ 3\0D]\89\0}\ e\0t\ f\0t\10\0\83\ 1\0}\ f\0|\ f\0j\11\0|\a\0\83\ 1\0\ 1t\ 1\0|\ 1\0\83\ 1\0}\b\0|\b\0j\ 2\0\83\0\0\ 1|\b\0|\ e\09}\b\0|\ f\0j\12\0|\b\0\83\ 1\0\ 1|\ f\0j\ 5\0d  \0|\ 2\0|\v\0f\ 2\0\16\83\ 1\0\ 1|\ f\0j\13\0t\14\0|\ e\0\83\ 1\0|\ e\0d\a\0\83\ 3\0\ 1|\f\0j\15\0|\ f\0\83\ 1\0\ 1\0W|
34852 +\0j\16\0|\f\0\83\ 1\0\ 1q\89\0Wt\17\0\83\0\0}\10\0|\a\0|\10\0d\a\0<|
34853 +\0j\18\0|\ 3\0d
34854 +\0\83\ 2\0\ 1|\10\0j\18\0|\ 3\0d\a\0\83\ 2\0\ 1d\v\0\84\0\0}\11\0d\f\0d\0\0l\19\0}\12\0t\1a\0|\ 3\0\83\ 1\0}\13\0i\0\0}\14\0|\12\0j\e\0d\r\0\83\ 1\0}\15\0x\85\0|\13\0D]}\0}\16\0|\16\0d\0\0d\0\0d\f\0\85\ 3\0\19}\17\0|\15\0j\1c\0|\17\0\83\ 1\0}\a\0|\a\0rP\ 2|\11\0|\14\0|\a\0j\1d\0d
34855 +\0\83\ 1\0d\0\0d\0\0d\f\0\85\ 3\0\19|\a\0j\1d\0d\b\0\83\ 1\0d\0\0d\0\0d\f\0\85\ 3\0\19\83\ 3\0\ 1\ 1|\11\0|\14\0|\16\0d\ e\0\83\ 3\0\ 1\ 1Wt\ 6\0\83\0\0}\18\0\0|\14\0D]ã\0}\19\0|\14\0|\19\0\19d\ e\0g\ 1\0k\ 3\0\ 2t\1e\0|\14\0|\19\0\19d\ f\0d\10\0\84\0\0\83\ 1\ 1|\14\0|\19\0<n\0\0g\0\0}\1a\0x;\0|\14\0|\19\0\19D]/\0}\e\0|\1a\0j\1f\0t\b\0\0|\ 3\0|\19\0|\e\0\17t\10\0t!\0f\ 2\0g\ 1\0\83\ 3\0\83\ 1\0\ 1\ 2W|\1a\0j"\0\83\0\0\ 1|\1a\0j#\0\83\0\0}\1c\0t$\0|\1a\0\83\ 1\0}\1d\0x'\0t\a\0|\1d\0\83\ 1\0D]\19\0}\1e\0|\1c\0j%\0|\1a\0j#\0\83\0\0\83\ 1\0\ 1\ 3W|\1c\0j\ 5\0|\19\0\83\ 1\0\ 1|\18\0j\16\0|\1c\0\83\ 1\0\ 1qt\ 2W|\0\0j&\0|\18\0d\a\0\19j'\0\83\0\0g\0\0t\a\0|\ 4\0\83\ 1\0D]\e\0}\ e\0|\ e\0d\a\0t\14\0|\ e\0\83\ 1\0f\ 3\0^\ 2\0q{\ 3\83\ 2\0\ 1d\0\0S(\11\0\0\0Ni\v\0\0\0\ 3\0\0s\f\0\0\0Pyfile88.medi,\ 1\0\0Rn\ 2\0\0id\0\0\0i\0\0\0\0i\ 1\0\0\0s\ 5\0\0\0%s_%di\ 2\0\0\0c\ 3\0\0\0\ 3\0\0\0\ 3\0\0\0S\0\0\0s1\0\0\0|\ 1\0|\0\0k\ 6\0\0|\0\0|\ 1\0\19j\0\0|\ 2\0\83\ 1\0\ 1n\r\0|\ 2\0g\ 1\0|\0\0|\ 1\0<d\0\0S(\ 1\0\0\0N(\ 1\0\0\0t\ 6\0\0\0append(\ 3\0\0\0Re\ 1\0\0t\ 3\0\0\0keyt\ 3\0\0\0val(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\f\0\0\0appendInDictÿ\10\0\0s\b\0\0\0\0\ 1\f\ 1\14\ 2\r\ 1iÿÿÿÿs\11\0\0\0([\d]+)([\s\S]+)$R&\0\0\0R\0\ 4\0\0c\ 1\0\0\0\ 1\0\0\0\ 2\0\0\0S\0\0\0s
34856 +\0\0\0t\0\0|\0\0\83\ 1\0S(\ 1\0\0\0N(\ 1\0\0\0t\ 3\0\0\0int(\ 1\0\0\0t\ 1\0\0\0x(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\b\0\0\0<lambda>\16\11\0\0s\0\0\0\0((\0\0\0\0\0\0RY\0\0\0Ry\ 1\0\0Rc\0\0\0\ 1\0\0RB\0\0\0R[\ 1\0\0Rn\0\0\0\0\0\0Rc\ 3\0\0t\b\0\0\0GetSliceRÐ\ 3\0\0t\ 5\0\0\0startt\ 4\0\0\0stopt\ 4\0\0\0stepRw\ 1\0\0R\1c\ 1\0\0\0\0\0R{\ 1\0\0\0\0\0RD\ 3\0\0RY\ 1\0\0R\\ 1\0\0R>\0\0\0R\v\0\0\0t\ 2\0\0\0ret\10\0\0\0GetAllFieldNamest\a\0\0\0compilet\ 5\0\0\0matchRü\ 1\0\0t\ 6\0\0\0sortedRÿ\ 3\0\0\ 3\0\0\ 3\0\0t\a\0\0\0reverset\ 3\0\0\0popRy\0\0\0t\11\0\0\0pushBackTimeStepsR+\0\0\0\0\0\0(\1f\0\0\0R     \0\0\0\ 3\0\0Rg\ 3\0\0R!\0\0\0\ 3\0\0\ 3\0\0t\ 6\0\0\0maxPdtR\83\0\0\0\ 1\0\0t      \0\0\0nbOfFieldRl\ 1\0\0Rf\ 3\0\0Rm\ 1\0\0t\ 1\0\0\0sRî\0\0\0R\b\0\0\0R\86\0\0\0R\ 2\ 4\0\0R
34857 +\ 4\0\0t   \0\0\0allFieldst\r\0\0\0allFieldsDictt\ 3\0\0\0patR\r\0\0\0t\ 5\0\0\0stRevRV\ 3\0\0t\ 1\0\0\0kt\ 5\0\0\0fmts2Rv\ 2\0\0t\ 6\0\0\0zeResut\ 6\0\0\0nbItert\ 2\0\0\0ii(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\16\0\0\0testMEDFileLotsOfTSRW1Ü\10\0\0s\86\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 2\ 6\ 1        \ 1\f\0
34858 +\ 1\r\ 1\f\ 1\r\ 2
34859 +\ 1      \ 1\13\ 1     \ 1!\ 1"\ 1\f\ 1\r\ 1\f\0
34860 +\0
34861 +\ 1\r\ 1\17\ 1\19\ 1\r\ 1\ 4\ 1\r\ 1\ 4\ 2        \0
34862 +\ 1\10\ 1\10\ 2  \ 6\f\ 1\f\ 1\ 6\ 1\ f\ 1\r\ 1\13\ 1\ f\ 1\ 6\ 1<\ 1\ 3\ 2\10\ 2\ 4\ 1       \ 1\r\ 1\13\ 1\1d\ 1\ 3\ 1\ 6\ 1\11\ 1)\ 1\ 4\ 1
34863 +\ 1\f\ 1\f\ 1\13\ 1\13\ 1\ 4\ 1\r\ 1\r\ 1\ 4\ 1B\ 1c\ 1\0\0\0\19\0\0\0\14\ 1\0\0C\0\0\0sX\ e\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0d\ 3\0d\ 3\0d\ 3\0f\ 3\0d\ 3\0d\ 3\0d\ 4\0f\ 3\0d\ 3\0d\ 4\0d\ 4\0f\ 3\0d\ 3\0d\ 4\0d\ 3\0f\ 3\0d\ 4\0d\ 3\0d\ 3\0f\ 3\0d\ 4\0d\ 3\0d\ 4\0f\ 3\0d\ 4\0d\ 4\0d\ 4\0f\ 3\0d\ 4\0d\ 4\0d\ 3\0f\ 3\0d\ 3\0d\ 3\0d\ 5\0f\ 3\0d\ 3\0d\ 5\0d\ 4\0f\ 3\0d\ 3\0d\ 4\0d\ 5\0f\ 3\0d\ 3\0d\ 5\0d\ 3\0f\ 3\0d\ 4\0d\ 3\0d\ 5\0f\ 3\0d\ 4\0d\ 5\0d\ 4\0f\ 3\0d\ 4\0d\ 4\0d\ 5\0f\ 3\0d\ 4\0d\ 5\0d\ 3\0f\ 3\0d\ 5\0d\ 3\0d\ 3\0f\ 3\0d\ 5\0d\ 3\0d\ 4\0f\ 3\0d\ 5\0d\ 4\0d\ 3\0f\ 3\0d\ 5\0d\ 4\0d\ 4\0f\ 3\0d\ 3\0d\ 6\0d\a\0f\ 3\0d\ 4\0d\ 6\0d\a\0f\ 3\0d\b\0d\ 3\0d\b\0f\ 3\0d\b\0d\ 4\0d\b\0f\ 3\0d\b\0d\b\0d\ 3\0f\ 3\0d\b\0d\b\0d\ 4\0f\ 3\0d     \0d
34864 +\0d\v\0f\ 3\0d\f\0d\r\0d\ e\0f\ 3\0g\1c\0\83\ 1\0}\ 4\0t\ 2\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\ f\0d\14\0d\11\0d\10\0d\13\0d\ f\0d\15\0d\11\0d\14\0d\16\0d\ f\0d\11\0d\17\0d\18\0d\13\0d\ f\0d\13\0d\19\0d\17\0d\1a\0d\ f\0d\17\0d\18\0d\1a\0d\e\0d\ f\0d\1c\0d\18\0d\11\0d\15\0d\ f\0d\16\0d\11\0d\e\0d\15\0d\ f\0d\11\0d\17\0d\16\0d\e\0d\ f\0d\13\0d\11\0d\16\0d\14\0d\ f\0d\18\0d\12\0d\1c\0d\11\0d\ f\0d\1d\0d\18\0d\1c\0d\1e\0d\ f\0d\1e\0d\1f\0d\15\0d\1c\0d\ f\0d\1d\0d\1e\0\0d\18\0d\ f\0d\15\0d\16\0d!\0d\e\0d\ f\0d\15\0d!\0d\ f\0d"\0d\ f\0d\11\0d\12\0d\1c\0d\14\0d\ f\0d#\0d\15\0d\1c\0d\14\0d\ f\0d\15\0d"\0d\e\0d!\0d\ f\0d\16\0d!\0d$\0d%\0d\ f\0d\15\0d\18\0d\e\0d"\0d\ f\0d\1e\0d\1c\0d\15\0d\18\0d\ f\0d#\0d\15\0d\1f\0d\1c\0d\ f\0d\1e\0d\15\0d\1f\0d\ f\0d\ f\0d$\0d\17\0d\16\0d%\0d\ f\0d\15\0d\14\0d#\0d\16\0d\ f\0d\16\0d\15\0d!\0d#\0d\ f\0d\e\0d\17\0d\16\0d$\0d\ f\0d\e\0d"\0d&\0d!\0d\ f\0d%\0d'\0d$\0d\17\0d\ f\0d\16\0d%\0d(\0d#\0d\ f\0d\13\0d\11\0d\17\0d\16\0d\ f\0d#\0d\15\0d!\0d\ f\0d\ f\0d\18\0d"\0\0d)\0d\ f\0d\ f\0d\15\0d"\0d\1e\0d\ f\0d\ f\0d\15\0d\1f\0d#\0d\ f\0d!\0d\16\0d#\0d%\0d\ f\0d\1c\0d\11\0d\14\0d\15\0d\ f\0d\1d\0d\12\0d\1c\0d\18\0d\ f\0d\11\0d\e\0d\18\0d\17\0d\ f\0d\16\0d\e\0d$\0d!\0d\ f\0d\12\0d\11\0d\10\0d\14\0d\ f\0d\1e\0d\15\0d"\0d\18\0d\ f\0d\18\0d\1a\0d"\0d)\0d\ f\0d\ f\0d"\0d!\0d&\0d\ f\0d\1d\0d*\0d\12\0\0d\ f\0d\1d\0d\1e\0d\1c\0d\1f\0d\ f\0d"\0d\1e\0d\18\0\0d\ f\0d\18\0d\11\0d\13\0d\12\0d\ f\0d\16\0d#\0d(\0d\14\0d\ f\0d\e\0d\1a\0d"\0d\18\0d\ f\0d!\0d$\0d&\0d\e\0d\ f\0d\1d\0d\18\0\0d\12\0d\ f\0d\18\0d\11\0d\15\0d\e\0d\ f\0d\17\0d\13\0d\1a\0d\18\0g\13\ 1\83\ 1\0}\ 5\0t\ 2\0d\19\0d(\0\0d$\0d\18\0d\1c\0d+\0d,\0d-\0d.\0d/\0d0\0d1\0d2\0d3\0d4\0d5\0d6\0d7\0d8\0d9\0d:\0d;\0d<\0d=\0d>\0d?\0d@\0dA\0dB\0dC\0dD\0dE\0dF\0dG\0dH\0dI\0dJ\0dK\0dL\0dM\0dN\0dO\0dP\0dQ\0dR\0dS\0dT\0dU\0dV\0dW\0dX\0dY\0dZ\0d[\0d\\0g8\0\83\ 1\0}\ 6\0t\ 3\0|\ 2\0d)\0\83\ 2\0}\a\0|\a\0j\ 4\0|\ 4\0\83\ 1\0\ 1|\a\0j\ 5\0|\ 5\0|\ 6\0\83\ 2\0\ 1|\a\0|\ 3\0d\19\0<t\ 2\0d)\0d\13\0d\18\0d\1a\0d)\0d\13\0d\12\0d\18\0d)\0d\12\0d*\0\0d)\0d\18\0d\12\0\0d)\0d\19\0d\13\0d\1a\0d)\0d\12\0d\13\0d\10\0d)\0d\18\0\0d)\0d)\0d\1a\0d\18\0d)\0d)\0d$\0d!\0d%\0d)\0d(\0d%\0d#\0d)\0d!\0d#\0d%\0d)\0d$\0d%\0d'\0d)\0d\ f\0d\1f\0d#\0d)\0d\ f\0d#\0d!\0d)\0d&\0d\ f\0d!\0d)\0d&\0d!\0d$\0d)\0d(\0d\16\0d%\0d)\0d'\0d%\0d\17\0d)\0d\14\0d\10\0d\13\0d)\0d\17\0d\13\0d\19\0d)\0d(\0d\14\0d\16\0d)\0d%\0d\16\0d\17\0d)\0d\16\0d\14\0d\13\0d)\0d\17\0d\16\0d\13\0d)\0\0d*\0d\1d\0d)\0d&\0d"\0d\ f\0d)\0d\ f\0d\1e\0d\1f\0d)\0d)\0\0d"\0d)\0d\1e\0d\1d\0d\1f\0d)\0d"\0d\1e\0d\ f\0d)\0\0d\1d\0d\1e\0d)\0\0d\1e\0d"\0d)\0d)\0d"\0d\1a\0d)\0d&\0d\e\0d"\0d)\0d$\0d'\0d\17\0d)\0d\1a\0d\17\0d\19\0d)\0d&\0d$\0d\e\0d)\0d"\0d\e\0d\1a\0d)\0d\e\0d$\0d\17\0d)\0d\1a\0d\e\0d\17\0d)\0d\12\0d\1d\0d*\0d)\0d\1d\0d\1c\0d\1f\0d)\0d\14\0d(\0d#\0d)\0d\10\0d\14\0d\12\0d)\0d\1c\0d#\0d\1f\0d)\0d\12\0d\1c\0d\1d\0d)\0d\14\0d#\0d\1c\0d)\0d\14\0d\1c\0d\12\0\0\83\ 1\0}\b\0t\ 2\0d\19\0d'\0d\13\0d%\0d\17\0d\18\0d\e\0d]\0d^\0d_\0d-\0d`\0da\0db\0dc\0d1\0dd\0de\0df\0dg\0d5\0dh\0di\0dj\0dk\0d9\0dl\0dm\0dn\0do\0d=\0dp\0dq\0dr\0ds\0dA\0dt\0du\0dv\0dw\0dE\0dx\0dy\0dz\0d{\0dI\0d|\0d}\0d~\0g1\0\83\ 1\0}   \0t\ 3\0|\ 2\0d*\0\83\ 2\0}
34865 +\0|
34866 +\0j\ 4\0|\ 4\0\83\ 1\0\ 1|
34867 +\0j\ 5\0|\b\0|       \0\83\ 2\0\ 1|
34868 +\0|\ 3\0d\7f\0<t\ 2\0d\19\0d\13\0d\13\0d\10\0d\10\0d\12\0d\12\0d*\0d)\0\0\0d*\0d\19\0d\1a\0d\1a\0d)\0d'\0d%\0d%\0d(\0d(\0d#\0d#\0d\1f\0d&\0d\ f\0d\ f\0d\1f\0d'\0d$\0d$\0d&\0d\19\0d\17\0d\17\0d'\0d\10\0d\14\0d\14\0d(\0d)\0d"\0d"\0d&\0d*\0d\1d\0d\1d\0d\1f\0g0\0\83\ 1\0}\v\0t\ 6\0|\ 2\0t\a\0\83\ 2\0}\f\0|\f\0j\b\0|\v\0\83\ 1\0\ 1|\f\0j\ 4\0|\ 4\0\83\ 1\0\ 1|\f\0j      \0\83\0\0|\ 3\0d\80\0<t\ 2\0d0\0\83\ 1\0}\r\0d\19\0|\r\0(|\ 3\0j
34869 +\0d\19\0|\r\0\83\ 2\0\ 1|\ 3\0j
34870 +\0d\10\0t\ 2\0d\19\0d\19\0d*\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0g\1c\0\83\ 1\0\83\ 2\0\ 1t\ 2\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\81\0d\81\0d\81\0d\81\0d\81\0d\81\0d\81\0d\81\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0g0\0\83\ 1\0}\ e\0|\ 3\0j
34871 +\0d\7f\0|\ e\0\83\ 2\0\ 1t\ 2\0d\19\0d\19\0d\82\0d\82\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0g\18\0\83\ 1\0}\ f\0|\ 3\0j
34872 +\0d\80\0|\ f\0\83\ 2\0\ 1xH\0d\83\0d\19\0f\ 2\0d\84\0d\81\0f\ 2\0d\85\0d\82\0f\ 2\0d\86\0d*\0f\ 2\0f\ 4\0D]\1c\0\\ 2\0}\10\0}\11\0|\ 3\0j\v\0|\10\0|\11\0\83\ 2\0\ 1q^\vWxH\0d\87\0d\84\0f\ 1\0f\ 2\0d\88\0d\85\0f\ 1\0f\ 2\0d\89\0d\86\0f\ 1\0f\ 2\0g\ 3\0D]\1c\0\\ 2\0}\12\0}\13\0|\ 3\0j\f\0|\12\0|\13\0\83\ 2\0\ 1\vW|\ 3\0j\r\0|\ 1\0d*\0\83\ 2\0\ 1t\ e\0j\ f\0|\ 1\0\83\ 1\0}\ 3\0|\ 3\0j\10\0d\7f\0d\87\0\83\ 2\0}\12\0|\12\0j\11\0\83\0\0}\14\0|\14\0j\12\0d\8a\0\83\ 1\0\ 1|\ 3\0j\13\0d\10\0|\14\0\83\ 2\0\ 1|\ 3\0j\14\0\83\0\0\ 1|\0\0j\15\0|\14\0j\16\0|\ 3\0j\17\0d\10\0d\8a\0\83\ 2\0\83\ 1\0\83\ 1\0\ 1|\0\0j\15\0|\ 3\0j\18\0d\19\0\83\ 1\0j\16\0|\r\0\83\ 1\0\83\ 1\0\ 1|\0\0j\15\0|\ 3\0j\18\0d\7f\0\83\ 1\0j\16\0|\ e\0\83\ 1\0\83\ 1\0\ 1|\0\0j\15\0|\ 3\0j\18\0d\80\0\83\ 1\0j\16\0|\ f\0\83\ 1\0\83\ 1\0\ 1|\0\0j\15\0|\ 3\0j\18\0d\10\0\83\ 1\0j\16\0t\ 2\0d\19\0d\19\0d*\0d\19\0d\12\0d\12\0d\12\0d\12\0d\19\0d\19\0d\19\0d\19\0d\12\0d\12\0d\12\0d\12\0d\19\0d\19\0d\19\0d\19\0d\19\0d\12\0d\19\0d\19\0d\19\0d\19\0d\19\0d\19\0g\1c\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1d\87\0d\84\0f\ 1\0f\ 2\0d\88\0d\85\0f\ 1\0f\ 2\0d\89\0d\86\0f\ 1\0f\ 2\0d\8a\0d\8b\0f\ 1\0f\ 2\0g\ 4\0}\15\0d\83\0d\19\0f\ 2\0d\84\0d\81\0f\ 2\0d\85\0d\82\0f\ 2\0d\86\0d*\0f\ 2\0d\8b\0d\12\0f\ 2\0g\ 5\0}\16\0|\0\0j\19\0t\1a\0|\ 3\0j\e\0\83\0\0\83\ 1\0g\0\0|\15\0D]\10\0}\17\0|\17\0d\19\0\19^\ 2\0\r\83\ 2\0\ 1x-\0|\15\0D]%\0\\ 2\0}\17\0}\13\0|\0\0j\19\0|\ 3\0j\1c\0|\17\0\83\ 1\0|\13\0\83\ 2\0\ 1\rW|\0\0j\19\0t\1a\0|\ 3\0j\1d\0\83\0\0\83\ 1\0g\0\0|\16\0D]\10\0}\17\0|\17\0d\19\0\19^\ 2\0q\r\ e\83\ 2\0\ 1x-\0|\16\0D]%\0\\ 2\0}\17\0}\18\0|\0\0j\19\0|\ 3\0j\1e\0|\17\0\83\ 1\0|\18\0\83\ 2\0\ 1q+\ eWd\8c\0S(\8d\0\0\0sZ\0\0\0 Test for bug EDF10720. The aim of this test is the call of MEDFileMesh.rearrangeFamilies.s\f\0\0\0Pyfile89.medt
34873 +\0\0\0Maillage_2g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0i@g\0\0\0\0\0\0Y@g¹-Qö'8]@gGÒ®  ØÇT@gº-Qö'8]@g¥J(ßL±O@g\vFÛ¯Ð\11L@gFhU´\9cî]@gE\99\ 5YG@a@gd\81åÙ\83\ 2]@gyU   ¶×ù]@i\ e\0\0\0i\ 1\0\0\0i\1a\0\0\0i   \0\0\0i\b\0\0\0i\11\0\0\0i\e\0\0\0i\16\0\0\0i\10\0\0\0i\14\0\0\0i\0\0\0\0i\v\0\0\0i\18\0\0\0i\19\0\0\0i\13\0\0\0i\17\0\0\0i\ 6\0\0\0i
34874 +\0\0\0i\15\0\0\0i\12\0\0\0i\r\0\0\0i\ f\0\0\0i\f\0\0\0i\a\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\1e\0\0\0i#\0\0\0i(\0\0\0i-\0\0\0i2\0\0\0i7\0\0\0i<\0\0\0iA\0\0\0iF\0\0\0iK\0\0\0iP\0\0\0iU\0\0\0iZ\0\0\0i_\0\0\0id\0\0\0ii\0\0\0in\0\0\0is\0\0\0ix\0\0\0i}\0\0\0i\82\0\0\0i\87\0\0\0i\8c\0\0\0i\91\0\0\0i\96\0\0\0i\9b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0iÿ\0\0\0i\ 4\ 1\0\0i      \ 1\0\0i\ e\ 1\0\0i\13\ 1\0\0i\1c\0\0\0\0\0\0i$\0\0\0i,\0\0\0i0\0\0\0i4\0\0\0i8\0\0\0i@\0\0\0iD\0\0\0iH\0\0\0iL\0\0\0iT\0\0\0iX\0\0\0i\\0\0\0i`\0\0\0ih\0\0\0il\0\0\0ip\0\0\0it\0\0\0i|\0\0\0i\80\0\0\0i\84\0\0\0i\88\0\0\0i\90\0\0\0i\94\0\0\0i\98\0\0\0i\9c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0iÿÿÿÿiþÿÿÿiúÿÿÿiùÿÿÿR\9a\ 2\0\0s\ f\0\0\0FAM_-6_Groupe_1s\ f\0\0\0FAM_-7_Groupe_2t\ e\0\0\0FAM_2_Groupe_3t\b\0\0\0Groupe_1t\b\0\0\0Groupe_2t\b\0\0\0Groupe_3t\ 4\0\0\0TOTOt\b\0\0\0Family_9N(\1f\0\0\0R>\0\0\0RY\0\0\0Rk\0\0\0R[\0\0\0Rc\0\0\0Rÿ\ 1\0\0Rz\0\0\0Re\0\0\0t\14\0\0\0setNodalConnectivityRâ\ 1\0\0\0\0\0\0\0\0R\9b\ 2\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R?\0\0\0t\15\0\0\0computeFetchedNodeIdsRB\0\0\0\ 2\0\0t\11\0\0\0rearrangeFamiliesR0\0\0\0R1\0\0\0RG\0\0\0R\9e\0\0\0R+\0\0\0Rm\0\0\0\ 1\0\0R\9a\0\0\0\ 1\0\0t\v\0\0\0getFamilyId(\19\0\0\0R    \0\0\0R!\0\0\0\ 3\0\0R\86\0\0\0R\81\0\0\0R\14\ 2\0\0t\ 3\0\0\0c0iRá\0\0\0t\ 2\0\0\0c1t\ 3\0\0\0c1iR\84\0\0\0\ 2\0\0R\85\0\0\0\ 1\0\0\ 1\0\0\ 1\0\0R\b\0\0\0t\ 3\0\0\0fidRç\ 1\0\0t\ 4\0\0\0famst\ 3\0\0\0dait\a\0\0\0allGrpst\a\0\0\0allFamsRü\0\0\0t\ 5\0\0\0eltId(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1f\0\0\0testMEDFileMeshRearrangeFamIds1(\11\0\0sx\0\0\0\0\ 2\ 6\ 1\ 6\ 1   \ 1ÿ\0]\ 2ÿ\0ÿ\0ÿ\0H\ 1´\ 1\ f\0\r\ 1\10\ 1
34875 +\ 2ÿ\0ÿ\0N\ 1\9f\ 1\ f\0\r\ 1\10\ 1
34876 +\ 2\9c\ 1\ f\ 1\r\0\r\ 1\10\ 2\f\0\a\ 1\10\ 1j\ 1\9c\ 1\10\ 1T\ 1\10\ 27\ 1\14\ 17\ 1\14\ 1\10\ 2\ f\ 1\12\ 1\f\ 1\r\ 1\10\ 1
34877 +\ 1"\ 1\1f\ 1\1f\ 1\1f\ 1y\ 16\ 13\ 13\ 1\13\ 1\1d\ 13\ 1\13\ 1\1d\ 1c\ 1\0\0\0       \0\0\0\ 6\0\0\0C\0\0\0sz\ 2\0\0t\0\0\83\0\0}\ 1\0d\ 1\0}\ 2\0t\ 1\0\83\0\0}\ 3\0t\ 2\0\83\0\0}\ 4\0t\ 3\0d\ 2\0\83\ 1\0}\ 5\0|\ 5\0j\ 4\0\83\0\0\ 1|\ 4\0j\ 5\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\ 6\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\a\0|\ 4\0\83\ 1\0\ 1t\b\0t      \0\83\ 1\0}\ 6\0|\ 6\0j\a\0|\ 4\0\83\ 1\0\ 1|\ 6\0j
34878 +\0t\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0\83\ 1\0\ 1|\ 6\0j\ 6\0d\a\0\83\ 1\0\ 1|\ 6\0j\v\0\83\0\0\ 1t\f\0d\b\0d       \0d
34879 +\0d\v\0g\ 4\0\83\ 1\0}\a\0|\a\0j\ 6\0d\f\0\83\ 1\0\ 1|\ 1\0j\r\0|\ 6\0|\ 3\0d\b\0|\a\0\83\ 4\0\ 1|\0\0j\ e\0|\ 1\0j\ f\0\83\0\0d\ f\0\83\ 2\0\ 1|\ 1\0j\10\0t  \0d\b\0|\ 3\0\83\ 3\0}\b\0|\0\0j\11\0|\ 6\0j\12\0|\b\0d\r\0d\r\0\83\ 3\0\83\ 1\0\ 1~\ 1\0~\ 3\0~\ 6\0~\b\0~\a\0t\0\0\83\0\0}\ 1\0d\ 1\0}\ 2\0t\13\0\83\0\0}\ 3\0t\ 2\0\83\0\0}\ 4\0t\ 3\0d\ 2\0\83\ 1\0}\ 5\0|\ 5\0j\ 4\0\83\0\0\ 1|\ 4\0j\ 5\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\ 6\0|\ 2\0\83\ 1\0\ 1|\ 4\0j\14\0\83\0\0}\ 4\0|\ 4\0|\ 3\0d\b\0<t\b\0t     \0\83\ 1\0}\ 6\0|\ 6\0j\a\0|\ 4\0\83\ 1\0\ 1|\ 6\0j
34880 +\0t\ 3\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0\83\ 1\0\ 1|\ 6\0j\ 6\0d\a\0\83\ 1\0\ 1|\ 6\0j\v\0\83\0\0\ 1t\f\0d\b\0d       \0d
34881 +\0d\v\0g\ 4\0\83\ 1\0}\a\0|\a\0j\ 6\0d\f\0\83\ 1\0\ 1|\ 1\0j\r\0|\ 6\0|\ 3\0d\b\0|\a\0\83\ 4\0\ 1|\0\0j\ e\0|\ 1\0j\ f\0\83\0\0d\10\0\83\ 2\0\ 1|\ 1\0j\10\0t  \0d\b\0|\ 3\0\83\ 3\0}\b\0|\0\0j\11\0|\ 6\0j\12\0|\b\0d\r\0d\r\0\83\ 3\0\83\ 1\0\ 1d\ e\0S(\11\0\0\0so\0\0\0 Non regression test. For structured mesh, push a false partial field in MEDFileField1TS using setFieldProfile.R \ 2\0\0i\ 5\0\0\0g333333ó?gffffff\ 2@g333333\v@g\0\0\0\0\0\0\12@RÇ\ 3\0\0i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0t\ 4\0\0\0TUTUg\11ê-\81\99\97q=N(\0\0\0\0(\0\0\0\0(\15\0\0\0\0\0\0\0\0\0\0\0\0RY\0\0\0Ry\ 1\0\0Rc\0\0\0RB\0\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0R{\ 1\0\0Rd\0\0\0Rk\0\0\0R|\ 1\0\0R+\0\0\0R]\ 2\0\0R\97\ 1\0\0R0\0\0\0R1\0\0\0R>\0\0\0\ 1\0\0(       \0\0\0R    \0\0\0\0\0\0\ 3\0\0R\86\0\0\0R\83\0\0\0\ 1\0\0t\ 5\0\0\0fieldR\83\ 1\0\0t\ 6\0\0\0field2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1c\0\0\0testNonRegrCMeshSetFieldPfl1c\11\0\0sV\0\0\0\0\ 2    \ 1\ 6\ 1     \ 1       \0\f\0
34882 +\ 1\r\ 1\r\ 1\r\ 1\f\ 1\r\ 1\1f\ 1\r\ 1
34883 +\ 1\18\0\r\ 1\16\ 1\16\ 1\15\ 1\1c\ 1\ f\ 2        \ 1\ 6\ 1     \ 1       \0\f\0
34884 +\ 1\r\ 1\r\ 1\f\ 1
34885 +\ 1\f\ 1\r\ 1\1f\ 1\r\ 1
34886 +\ 1\18\0\r\ 1\16\ 1\16\ 1\15\ 1\1c\ 1c\ 1\0\0\0\18\0\0\0\a\0\0\0C\0\0\0\ 3\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0t\0\0d\ 4\0\83\ 1\0}\ 4\0|\ 4\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\ 4\0\83\0\0}\ 5\0t\ 5\0d\ 5\0d\ 6\0d\a\0d\b\0g\ 4\0\83\ 1\0}\ 6\0|\ 5\0|\ 6\0\19}\a\0|\a\0j\ 6\0d      \0\83\ 1\0\ 1|\ 5\0|\ 6\0j\a\0|\ 5\0j\b\0\83\0\0\83\ 1\0\19}\b\0\0j
34887 +\0|\a\0|\b\0\83\ 2\0}\ 5\0|\ 5\0j\v\0d\ 5\0d
34888 +\0\83\ 2\0\ 1t\0\0d\ 5\0\83\ 1\0}\ 4\0|\ 4\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}     \0|      \0j\ 3\0|\ 4\0\83\ 1\0\ 1|    \0j\ 4\0\83\0\0}        \0|      \0j\v\0d\ 5\0d
34889 +\0\83\ 2\0\ 1\0j\ 3\0|   \0j\f\0\83\0\0d\0\0d\0\0\85\ 2\0d\v\0d\f\0\0g\ 3\0f\ 2\0\19\83\ 1\0\ 1|\ 5\0j\r\0\83\0\0|  \0j\r\0\83\0\0d\v\0\18\14}
34890 +\0|\ 5\0j\ e\0|       \0d      \0\83\ 2\0}\v\0|\v\0j\ f\0\83\0\0\ 1|\v\0j\10\0|\ 1\0\83\ 1\0\ 1|\ 5\0}\f\0|\f\0j\ 3\0|\v\0j\f\0\83\0\0\83\ 1\0\ 1|\f\0j\11\0|
34891 +\0\83\ 1\0\ 1|\f\0j\10\0|\ 1\0\83\ 1\0\ 1|\f\0j\12\0\83\0\0\ 1|\f\0j\13\0\83\0\0\0|      \0j\10\0|\ 1\0\83\ 1\0\ 1t    \0j\14\0|\v\0j\f\0\83\0\0\83\ 1\0}\r\0|\r\0j\10\0|\ 1\0\83\ 1\0\ 1|\r\0d\f\0d\r\0d\ e\0g\ 3\0\19}\r\0t\15\0\83\0\0}\ e\0|\v\0|\ e\0d     \0<|\f\0|\ e\0d\ f\0<|   \0|\ e\0d\10\0<|\r\0|\ e\0d\11\0<t\ 5\0d\v\0d\f\0d\ 5\0d\ 4\0g\ 4\0\83\ 1\0}\ f\0|\ f\0j\10\0d\12\0\83\ 1\0\ 1t\ 5\0d     \0d\v\0g\ 2\0\83\ 1\0}\10\0|\10\0j\10\0d\13\0\83\ 1\0\ 1t\ 5\0d  \0d\v\0d\14\0d\15\0d\ e\0g\ 5\0\83\ 1\0}\11\0|\11\0j\10\0d\16\0\83\ 1\0\ 1t\ 5\0d\17\0d\ 6\0d\18\0d\19\0d\1a\0g\ 5\0\83\ 1\0}\12\0|\12\0j\10\0d\e\0\83\ 1\0\ 1t\ 5\0\0d\v\0d\1c\0d\b\0d\18\0g\ 5\0\83\ 1\0}\13\0|\13\0j\10\0d\1d\0\83\ 1\0\ 1t\ 5\0d\1e\0d\1f\0\0d!\0g\ 4\0\83\ 1\0}\14\0|\14\0j\10\0d"\0\83\ 1\0\ 1t\ 5\0d\f\0d\ 5\0d\r\0d\ 4\0d\1f\0d!\0g\ 6\0\83\ 1\0}\15\0|\15\0j\10\0d#\0\83\ 1\0\ 1|\ e\0j\16\0d      \0|\14\0|\15\0g\ 2\0\83\ 2\0\ 1|\ e\0j\16\0d\ f\0|\11\0|\12\0|\13\0g\ 3\0\83\ 2\0\ 1|\ e\0j\16\0d\10\0|\ f\0|\10\0g\ 2\0\83\ 2\0\ 1|\ e\0j\17\0d    \0d
34892 +\0\83\ 2\0}\16\0|\16\0j\18\0|\ 3\0d\f\0\83\ 2\0\ 1|\16\0j\19\0d
34893 +\0\83\ 1\0}\17\0|\0\0j\1a\0|\ e\0j\e\0|\17\0d$\0\83\ 2\0d  \0\19\83\ 1\0\ 1d\0\0S(%\0\0\0NR \ 2\0\0s\f\0\0\0Pyfile90.meds\f\0\0\0Pyfile91.medi\ 5\0\0\0i\ 3\0\0\0i\a\0\0\0i\v\0\0\0i\ f\0\0\0i\0\0\0\0g\0\0\0\0\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 4\0\0\0i
34894 +\0\0\0iÿÿÿÿiþÿÿÿiýÿÿÿt\ 4\0\0\0Eastt\a\0\0\0Corner1i\b\0\0\0i  \0\0\0t    \0\0\0SouthFacei\ 6\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0t       \0\0\0NorthFacei\r\0\0\0t\b\0\0\0DiagFacei\14\0\0\0i\15\0\0\0i\17\0\0\0i\18\0\0\0t\ 4\0\0\0vol1t\ 4\0\0\0vol2g\11ê-\81\99\97q=(\1c\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0Rk\0\0\0\ 3\0\0\ 3\0\0\0\0\0R[\0\0\0\ 3\0\0\ 3\0\0\0\0\0\ 1\0\0\ 3\0\0R\9c\ 1\0\0RB\0\0\0t\16\0\0\0shiftNodeNumbersInConnR\0\ 2\0\0\ 2\0\0t\15\0\0\0Build0DMeshFromCoordsR>\0\0\0Rl\0\0\0t\11\0\0\0linearToQuadraticR\v\0\0\0t\11\0\0\0quadraticToLinearR0\0\0\0R1\0\0\0(\18\0\0\0R       \0\0\0\ 3\0\0R!\0\0\0t  \0\0\0fileName2RÔ\ 1\0\0R\83\0\0\0Re\ 1\0\0R\84\0\0\0R\85\0\0\0\ 3\0\0\ 1\0\0t\ 3\0\0\0m3Dt\ 3\0\0\0m2Dt\ 3\0\0\0m0DR\86\0\0\0t\b\0\0\0grpEdge0t\b\0\0\0grpEdge1t\f\0\0\0grpFaceSoutht\f\0\0\0grpFaceNortht\b\0\0\0diagFaceR=\ 4\0\0R>\ 4\0\0t\ 6\0\0\0mmOut1t\ 6\0\0\0mmOut2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt(\0\0\0testMEDFileUMeshLinearToQuadraticAndRev1\8c\11\0\0s|\0\0\0\0\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\0
34895 +\ 1      \0\10\ 1\f\ 1\18\ 1
34896 +\ 1\r\ 1\19\ 1\12\ 1\10\ 1\f\0
34897 +\ 1      \0\r\0\f\0\10\ 1,\ 1\1a\ 1\12\ 1
34898 +\ 1\r\ 1\ 6\0\13\0\r\0\r\0
34899 +\ 1\f\0\r\ 1\15\0\r\0\13\ 2    \ 1
34900 +\0
34901 +\0
34902 +\0
34903 +\ 1\18\0\r\ 1\12\0\r\ 1\e\0\r\ 1\e\0\r\ 1\e\0\r\ 1\18\0\r\ 1\1e\0\r\ 1\16\ 1\19\ 1\16\ 2\12\ 1\10\ 1\ f\ 1\1d\ 1c\ 1\0\0\0\r\0\0\0
34904 +\0\0\0C\0\0\0s\7f\ 3\0\0t\0\0\83\0\0}\ 1\0t\ 1\0d\ 1\0\83\ 1\0}\ 2\0|\ 2\0j\ 2\0\83\0\0\ 1t\ 1\0d\ 2\0\83\ 1\0}\ 3\0|\ 3\0j\ 2\0\83\0\0\ 1|\ 1\0j\ 3\0|\ 2\0|\ 3\0\83\ 2\0\ 1|\ 1\0j\ 4\0d\ 3\0\83\ 1\0\ 1t\ 5\0\83\0\0}\ 4\0|\ 4\0j\ 6\0|\ 1\0\83\ 1\0\ 1t\a\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0g\ 5\0\83\ 1\0}\ 5\0|\ 5\0j\ 4\0\0\83\ 1\0\ 1|\ 4\0j\b\0d
34905 +\0|\ 5\0\83\ 2\0\ 1t\a\0d\ 4\0d\ 2\0d\ 5\0d\v\0d\f\0d\r\0d\b\0g\a\0\83\ 1\0}\ 6\0|\ 6\0j\ 4\0d\ e\0\83\ 1\0\ 1|\ 4\0j\b\0d
34906 +\0|\ 6\0\83\ 2\0\ 1t\a\0d
34907 +\0d\ f\0d\10\0d\11\0d\12\0g\ 5\0\83\ 1\0}\a\0|\a\0j\ 4\0d\13\0\83\ 1\0\ 1|\ 4\0j\b\0d
34908 +\0|\a\0\83\ 2\0\ 1t\a\0d\14\0g\ 1\0\83\ 1\0}\b\0|\b\0j\ 4\0d\15\0\83\ 1\0\ 1|\ 4\0j\b\0d
34909 +\0|\b\0\83\ 2\0\ 1xB\0|\ 5\0|\ 6\0|\a\0|\b\0g\ 4\0D].\0}        \0|\0\0j   \0|\ 4\0j
34910 +\0d
34911 +\0|     \0j\v\0\83\0\0\83\ 2\0j\f\0|  \0\83\ 1\0\83\ 1\0\ 1qU\ 1W|\0\0j\r\0|\ 4\0j\ e\0\83\0\0d\1c\0\83\ 2\0\ 1d\16\0}
34912 +\0xW\0|\ 5\0|\ 6\0|\a\0|\b\0g\ 4\0D]C\0}       \0|      \0j\ f\0\83\0\0}\v\0|\v\0|
34913 +\07}\v\0|\v\0j\ 4\0d\17\0|        \0j\v\0\83\0\0\16\83\ 1\0\ 1|\ 4\0j\b\0d\ f\0|\v\0\83\ 2\0\ 1\ 1W|\0\0j\r\0|\ 4\0j\ e\0\83\0\0d\1d\0\83\ 2\0\ 1xB\0|\ 5\0|\ 6\0|\a\0|\b\0g\ 4\0D].\0}   \0|\0\0j   \0|\ 4\0j
34914 +\0d
34915 +\0|     \0j\v\0\83\0\0\83\ 2\0j\f\0|  \0\83\ 1\0\83\ 1\0\ 1q&\ 2Wxg\0|\ 5\0|\ 6\0|\a\0|\b\0g\ 4\0D]S\0}     \0|      \0|
34916 +\0\17}\f\0|\f\0j\ 4\0d\17\0|        \0j\v\0\83\0\0\16\83\ 1\0\ 1|\0\0j        \0|\ 4\0j
34917 +\0d\ f\0d\17\0|       \0j\v\0\83\0\0\16\83\ 2\0j\f\0|\f\0\83\ 1\0\83\ 1\0\ 1qk\ 2W|\ 4\0j\10\0\83\0\0\ 1xB\0|\ 5\0|\ 6\0|\a\0|\b\0g\ 4\0D].\0}   \0|\0\0j   \0|\ 4\0j
34918 +\0d
34919 +\0|     \0j\v\0\83\0\0\83\ 2\0j\f\0|  \0\83\ 1\0\83\ 1\0\ 1\ 2Wxg\0|\ 5\0|\ 6\0|\a\0|\b\0g\ 4\0D]S\0}     \0|      \0|
34920 +\0\17}\f\0|\f\0j\ 4\0d\17\0|        \0j\v\0\83\0\0\16\83\ 1\0\ 1|\0\0j        \0|\ 4\0j
34921 +\0d\ f\0d\17\0|       \0j\v\0\83\0\0\16\83\ 2\0j\f\0|\f\0\83\ 1\0\83\ 1\0\ 1q$\ 3Wd\0\0S(\1e\0\0\0Ni \0\0\0i\ 4\0\0\0\ 2\0\0i\ 3\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\15\0\0\0i\16\0\0\0R\93\ 2\0\0i\0\0\0\0i\b\0\0\0i\12\0\0\0i\13\0\0\0R\95\ 2\0\0i\ 1\0\0\0i\ 2\0\0\0i
34922 +\0\0\0i\v\0\0\0\ 1\0\0i\17\0\0\0R\8d\ 3\0\0i\f\0\0\0s\a\0\0\0%s_nodet      \0\0\0grp0_nodet   \0\0\0grp1_nodet   \0\0\0grp2_nodet   \0\0\0grp3_node(\ 4\0\0\0s\ 4\0\0\0grp0s\ 4\0\0\0grp1s\ 4\0\0\0grp2s\ 4\0\0\0grp3(\b\0\0\0s\ 4\0\0\0grp0RO\ 4\0\0s\ 4\0\0\0grp1RP\ 4\0\0s\ 4\0\0\0grp2RQ\ 4\0\0s\ 4\0\0\0grp3RR\ 4\0\0(\11\0\0\0\0\0\0RY\0\0\0Ry\ 1\0\0Rc\0\0\0RB\0\0\0\0\0\0\0\0\0Rk\0\0\0\ 2\0\0R0\0\0\0RG\0\0\0RC\0\0\0R1\0\0\0R+\0\0\0\ 1\0\0Rq\0\0\0R
34923 +\ 3\0\0(\r\0\0\0R      \0\0\0R\83\0\0\0t\ 4\0\0\0arrXt\ 4\0\0\0arrYR\86\0\0\0R\93\ 2\0\0R\95\ 2\0\0\ 1\0\0R\8d\ 3\0\0\ 1\0\0\ 1\0\0\ 1\0\0t\ 6\0\0\0grpExp(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\18\0\0\0testMEDFileMeshAddGroup1·\11\0\0sZ\0\0\0\0\ 1 \ 1\f\0
34924 +\ 1\f\0
34925 +\ 1\10\ 1\r\ 1  \ 1\r\ 1\e\0\r\ 1\10\ 1!\0\r\ 1\10\ 1\e\0\r\ 1\10\ 1\ f\0\r\ 1\10\ 1\19\ 1,\ 1\16\ 1\ 6\ 1\19\ 1\f\0
34926 +\0\17\ 1\14\ 1\16\ 1\19\ 1,\ 1\19\ 1
34927 +\0\17\ 10\ 1
34928 +\ 1\19\ 1,\ 1\19\ 1
34929 +\0\17\ 10\ 1c\ 1\0\0\0\v\0\0\0
34930 +\0\0\0C\0\0\0sZ\ 2\0\0d\ 1\0}\ 1\0t\0\0d\16\0d\17\0d\18\0g\ 3\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0d\ 5\0d\ 6\0d\a\0g\ 3\0\83\ 1\0\ 1t\ 2\0\83\0\0}\ 3\0|\ 3\0j\ 3\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 5\0d        \0\83\ 1\0\ 1|\ 3\0j\ 6\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\a\0t\b\0d\ 3\0d\ 4\0d
34931 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0g\b\0\83\ 1\0\83\ 1\0}\ 4\0t\a\0t\b\0d\10\0d\11\0d\12\0d\13\0g\ 4\0\83\ 1\0t  \0t      \0\83\ 3\0}\ 5\0t
34932 +\0\83\0\0}\ 6\0|\ 6\0j\v\0|\ 5\0\83\ 1\0\ 1|\ 6\0j\v\0|\ 4\0\83\ 1\0\ 1t\f\0\83\0\0}\a\0|\a\0j\r\0|\ 6\0\83\ 1\0\ 1|\a\0j\ e\0d\b\0\83\ 1\0\ 1|\a\0j\ f\0d\b\0\83\ 1\0\ 1|\a\0j\ 5\0d\14\0\83\ 1\0\ 1|\a\0j\10\0d\15\0\83\ 1\0\ 1|\a\0j\11\0d\ 3\0\83\ 1\0\ 1|\0\0j\12\0|\a\0j\13\0\83\0\0d\b\0\83\ 2\0\ 1|\0\0j\12\0|\a\0j\14\0\83\0\0d\b\0\83\ 2\0\ 1|\0\0j\12\0|\a\0j\15\0\83\0\0d\14\0\83\ 2\0\ 1|\0\0j\12\0|\a\0j\16\0\83\0\0d\15\0\83\ 2\0\ 1|\0\0j\12\0|\a\0j\17\0\83\0\0d\ 3\0\83\ 2\0\ 1t\18\0\83\0\0}\b\0|\b\0j\19\0|\a\0\83\ 1\0\ 1|\b\0j\ 6\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\18\0|\ 1\0|\ 3\0j\1a\0\83\0\0\83\ 2\0}        \0|\0\0j\12\0|        \0j\e\0\83\0\0d\ 3\0\83\ 2\0\ 1\0j\1c\0d\ 2\0\83\ 1\0}
34933 +\0|\0\0j\1d\0|
34934 +\0j\1e\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\1f\0\0|       \0j\1c\0d\ 3\0\83\ 3\0\ 1|\0\0j\1f\0\0|   \0j!\0d\ 3\0\83\ 3\0\ 1|    \0j!\0d\ 2\0\83\ 1\0\ 1d\0\0S(\19\0\0\0Ns\f\0\0\0Pyfile92.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0s\ 6\0\0\0x [cm]s\ 6\0\0\0y [cm]s\ 6\0\0\0z [cm]t\ 4\0\0\0maa1s\v\0\0\0un maillagei\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i  \0\0\0i
34935 +\0\0\0i\v\0\0\0i\f\0\0\0t\11\0\0\0joint_descriptiont\a\0\0\0joint_1(\ 3\0\0\0i\0\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 2\0\0\0i\0\0\0\0i\0\0\0\0("\0\0\0RY\0\0\0\ 1\0\0R>\0\0\0Rc\0\0\0RB\0\0\0Ri\0\0\0R\v\0\0\0t\1a\0\0\0MEDFileJointCorrespondenceRk\0\0\0R_\0\0\0t\13\0\0\0MEDFileJointOneStept\12\0\0\0pushCorrespondencet\f\0\0\0MEDFileJointt\b\0\0\0pushStept\10\0\0\0setLocalMeshNamet\11\0\0\0setRemoteMeshNamet\f\0\0\0setJointNamet\ f\0\0\0setDomainNumberR+\0\0\0t\10\0\0\0getLocalMeshNamet\11\0\0\0getRemoteMeshNameR~\0\0\0t\f\0\0\0getJointNamet\ f\0\0\0getDomainNumbert\r\0\0\0MEDFileJointst \0\0\0pushJointRC\0\0\0t\11\0\0\0getNumberOfJointst\r\0\0\0getJointAtPosR0\0\0\0R1\0\0\0R)\0\0\0R*\0\0\0t\11\0\0\0destroyJointAtPos(\v\0\0\0R       \0\0\0R!\0\0\0R\ 3\ 2\0\0R\86\0\0\0t\ f\0\0\0node_correspondt\ f\0\0\0cell_correspondt\ e\0\0\0one_step_jointt  \0\0\0one_jointt\ 6\0\0\0jointst\a\0\0\0jointsRt\ 2\0\0\0jR(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\11\0\0\0testMEDFileJoint1Ü\11\0\0sH\0\0\0\0\ 1\ 6\ 1\15\ 1\16\ 1     \ 1\r\ 1\r\ 1\r\ 1\10\ 1*\ 1$\ 1   \ 1\r\ 1\r\ 1   \ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1 \ 1\r\ 1\10\ 2\15\ 1\16\ 1\ f\ 1\16\ 1\16\ 1\16\ 1\r\ 1c\ 1\0\0\0\ e\0\0\0\ 6\0\0\0C\0\0\0s\91\ 2\0\0d\ 1\0}\ 1\0t\0\0d\14\0d\15\0d\16\0g\ 3\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0d\ 5\0d\ 6\0d\a\0g\ 3\0\83\ 1\0\ 1t\ 2\0\83\0\0}\ 3\0|\ 3\0j\ 3\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\ 4\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 5\0d    \0\83\ 1\0\ 1t\ 6\0t\a\0d
34936 +\0d\v\0d\f\0d\r\0g\ 4\0\83\ 1\0\83\ 1\0}\ 4\0t\ 6\0t\a\0d\ e\0d\ f\0g\ 2\0\83\ 1\0t\b\0t   \0\83\ 3\0}\ 5\0t
34937 +\0\83\0\0}\ 6\0t
34938 +\0\83\0\0}\a\0t\v\0\83\0\0}\b\0t\v\0\83\0\0}        \0|\ 6\0j\f\0|\ 4\0\83\ 1\0\ 1|\b\0j\r\0|\ 6\0\83\ 1\0\ 1|\a\0j\f\0|\ 5\0\83\ 1\0\ 1|\a\0j\f\0|\ 4\0\83\ 1\0\ 1|  \0j\r\0|\a\0\83\ 1\0\ 1|\b\0j\ e\0d\b\0\83\ 1\0\ 1|\b\0j\ f\0d\b\0\83\ 1\0\ 1|\b\0j\ 5\0d\10\0\83\ 1\0\ 1|\b\0j\10\0d\11\0\83\ 1\0\ 1|\b\0j\11\0d\ 3\0\83\ 1\0\ 1|   \0j\ e\0d\b\0\83\ 1\0\ 1|    \0j\ f\0d\b\0\83\ 1\0\ 1|    \0j\ 5\0d\12\0\83\ 1\0\ 1|    \0j\10\0d\13\0\83\ 1\0\ 1|    \0j\11\0d\ 4\0\83\ 1\0\ 1t\12\0\83\0\0}
34939 +\0|
34940 +\0j\13\0|\b\0\83\ 1\0\ 1|
34941 +\0j\13\0|  \0\83\ 1\0\ 1|\ 3\0j\14\0|
34942 +\0\83\ 1\0\ 1|\ 3\0j\15\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\16\0j\17\0|\ 1\0\83\ 1\0}\ 3\0|\0\0j\18\0|\ 3\0j\19\0\83\0\0d\ 4\0\83\ 2\0\ 1|\ 3\0j\1a\0\83\0\0}\v\0|\0\0j\18\0|\v\0j\e\0\83\0\0|\ 3\0j\1c\0\83\0\0\83\ 2\0\ 1|\0\0j\18\0t\1d\0|\v\0\83\ 1\0d\ 4\0\83\ 2\0\ 1|\v\0d\ 2\0\19}\f\0|\v\0d\ 3\0\19}\r\0|\0\0j\1e\0|\f\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\1e\0|\r\0d\0\0k\b\0\83\ 1\0\ 1|\0\0\0|\f\0j!\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0\0|\r\0j!\0|  \0\83\ 1\0\83\ 1\0\ 1d\0\0S(\17\0\0\0Ns\f\0\0\0Pyfile93.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0s\ 6\0\0\0x [cm]s\ 6\0\0\0y [cm]s\ 6\0\0\0z [cm]RW\ 4\0\0s\v\0\0\0un maillagei\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0t\13\0\0\0joint_description_1RY\ 4\0\0t\13\0\0\0joint_description_2t\a\0\0\0joint_2(\ 3\0\0\0i\0\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 1\0\0\0i\0\0\0\0i\0\0\0\0(\ 3\0\0\0i\ 2\0\0\0i\0\0\0\0i\0\0\0\0("\0\0\0RY\0\0\0\ 1\0\0R>\0\0\0Rc\0\0\0RB\0\0\0Ri\0\0\0RZ\ 4\0\0Rk\0\0\0\ 3\0\0\ 3\0\0R[\ 4\0\0R]\ 4\0\0R\\ 4\0\0R^\ 4\0\0R_\ 4\0\0R`\ 4\0\0Ra\ 4\0\0Rb\ 4\0\0Rg\ 4\0\0Rh\ 4\0\0t   \0\0\0setJointsR\v\0\0\0R'\0\0\0R(\0\0\0R+\0\0\0Ri\ 4\0\0t  \0\0\0getJointst\v\0\0\0getMeshNameRC\0\0\0Ry\0\0\0t\v\0\0\0assertFalseR/\ 2\0\0R0\0\0\0R1\0\0\0(\ e\0\0\0R     \0\0\0t
34943 +\0\0\0fileNameWrR\ 3\ 2\0\0R\86\0\0\0Rl\ 4\0\0Rm\ 4\0\0Rn\ 4\0\0t\ e\0\0\0two_step_jointRo\ 4\0\0t        \0\0\0two_jointRp\ 4\0\0Rq\ 4\0\0t\a\0\0\0jointR1t\a\0\0\0jointR2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\11\0\0\0testMEDFileJoint2\ 3\12\0\0sZ\0\0\0\0\ 1\ 6\ 1\15\ 1\16\ 1 \ 1\r\ 1\r\ 1\r\ 1\1e\ 1\1e\ 1     \ 1       \ 1       \ 1       \ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1 \ 1\r\ 1\r\ 1\r\ 1\10\ 2\ f\ 1\16\ 1\f\ 1\1c\ 1\16\ 1
34944 +\ 1
34945 +\ 1\13\ 1\13\ 1\16\ 1\16\ 1c\ 1\0\0\0\f\0\0\0
34946 +\0\0\0C\0\0\0su\ 2\0\0t\0\0t\ 1\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0g\b\0\83\ 1\0\83\ 1\0}\ 1\0t\0\0t\ 1\0d  \0d
34947 +\0d\v\0d\f\0g\ 4\0\83\ 1\0t\ 2\0t\ 2\0\83\ 3\0}\ 2\0t\0\0t\ 1\0d       \0d
34948 +\0d\v\0g\ 3\0\83\ 1\0t\ 2\0t\ 2\0\83\ 3\0}\ 3\0t\0\0t\ 1\0d  \0d
34949 +\0d\v\0d\f\0g\ 4\0\83\ 1\0t\ 2\0t\ 3\0\83\ 3\0}\ 4\0t\ 4\0\83\0\0}\ 5\0|\ 5\0j\ 5\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\ 5\0|\ 1\0\83\ 1\0\ 1t\ 4\0\83\0\0}\ 6\0|\ 6\0j\ 5\0|\ 2\0\83\ 1\0\ 1|\ 6\0j\ 5\0|\ 1\0\83\ 1\0\ 1t\ 4\0\83\0\0}\a\0|\a\0j\ 5\0|\ 1\0\83\ 1\0\ 1|\a\0j\ 5\0|\ 2\0\83\ 1\0\ 1t\ 4\0\83\0\0}\b\0|\b\0j\ 5\0|\ 2\0\83\ 1\0\ 1t\ 4\0\83\0\0}        \0|      \0j\ 5\0|\ 3\0\83\ 1\0\ 1t\ 4\0\83\0\0}
34950 +\0|
34951 +\0j\ 5\0|\ 4\0\83\ 1\0\ 1|\0\0j\ 6\0|\ 5\0j\a\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 6\0|\ 5\0j\a\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\b\0|\ 5\0j\a\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\b\0|\b\0j\a\0|     \0\83\ 1\0\83\ 1\0\ 1|\0\0j\b\0|\b\0j\a\0|
34952 +\0\83\ 1\0\83\ 1\0\ 1t      \0\83\0\0}\v\0|\v\0j
34953 +\0|\ 5\0\83\ 1\0\ 1|\v\0j\v\0d\r\0\83\ 1\0\ 1|\v\0j\f\0d\ e\0\83\ 1\0\ 1|\v\0j\r\0d\ f\0\83\ 1\0\ 1|\v\0j\ e\0d\10\0\83\ 1\0\ 1|\v\0j\ f\0d\ 1\0\83\ 1\0\ 1|\0\0j\10\0d\r\0|\v\0j\11\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ e\0|\v\0j\12\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ f\0|\v\0j\13\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\ 1\0|\v\0j\14\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0d\10\0|\v\0j\15\0\83\0\0\83\ 2\0\ 1d\0\0S(\11\0\0\0Ni\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0i     \0\0\0i
34954 +\0\0\0i\v\0\0\0i\f\0\0\0RW\ 4\0\0t\ 4\0\0\0maa2RX\ 4\0\0RY\ 4\0\0(\16\0\0\0RZ\ 4\0\0Rk\0\0\0R_\0\0\0R`\0\0\0R[\ 4\0\0R\\ 4\0\0R0\0\0\0R1\0\0\0Rz\ 4\0\0R]\ 4\0\0R^\ 4\0\0R_\ 4\0\0R`\ 4\0\0Ri\0\0\0Ra\ 4\0\0Rb\ 4\0\0R+\0\0\0Rc\ 4\0\0Rd\ 4\0\0R~\0\0\0Rf\ 4\0\0Re\ 4\0\0(\f\0\0\0\0\0\0Rl\ 4\0\0Rm\ 4\0\0t\ f\0\0\0cell_correspon2t\ f\0\0\0cell_correspon3t
34955 +\0\0\0joint1st_1t
34956 +\0\0\0joint1st_2t
34957 +\0\0\0joint1st_3t
34958 +\0\0\0joint1st_4t
34959 +\0\0\0joint1st_5t
34960 +\0\0\0joint1st_6Ro\ 4\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyRs\ 4\0\03\12\0\0sJ\0\0\0\0\ 1*\ 1$\ 1!\ 1$\ 1   \ 1\r\ 1\r\ 1   \ 1\r\ 1\r\ 1   \ 1\r\ 1\r\ 1   \ 1\r\ 1     \ 1\r\ 1     \ 1\r\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1   \ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\r\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1t\ 5\0\0\0linuxs*\0\0\0stderr redirection not ported on Windows ?c\ 1\0\0\0
34961 +\0\0\0\ 5\0\0\0C\0\0\0s`\ 1\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0d\ 4\0l\0\0}\ 3\0|\ 3\0j\ 1\0j\ 2\0|\ 1\0\83\ 1\0r:\0|\ 3\0j\ 3\0|\ 1\0\83\ 1\0\ 1n\0\0t\ 4\0\83\0\0}\ 4\0t\ 5\0d\ 5\0\83\ 1\0}\ 5\0|\ 5\0j\ 6\0\83\0\0\ 1|\ 4\0j\a\0|\ 5\0|\ 5\0\83\ 2\0\ 1t\b\0\83\0\0}\ 6\0|\ 6\0\0|\ 4\0\83\ 1\0\ 1|\ 6\0j
34962 +\0d\ 6\0\83\ 1\0\ 1|\ 6\0j\v\0|\ 1\0d\a\0\83\ 2\0\ 1|\ 3\0j\f\0|\ 1\0d\b\0\83\ 2\0\ 1t\r\0t\ e\0\83\ 1\0}\a\0|\a\0j
34963 +\0d     \0\83\ 1\0\ 1|\a\0j       \0|\ 4\0\83\ 1\0\ 1|\a\0j\ f\0t\ 5\0d
34964 +\0\83\ 1\0\83\ 1\0\ 1d\v\0|\a\0j\10\0\83\0\0(|\a\0j\11\0\83\0\0\ 1t\12\0\83\0\0}\b\0|\b\0j\13\0|\a\0\83\ 1\0\ 1t\14\0|\ 2\0\83\ 1\0}        \0|\0\0j\15\0t\16\0|\b\0j\v\0|\ 1\0d\f\0\83\ 4\0\ 1~     \0|\ 3\0j\ 1\0j\ 2\0|\ 2\0\83\ 1\0r\\ 1|\ 3\0j\ 3\0|\ 2\0\83\ 1\0\ 1n\0\0d\ 4\0S(\r\0\0\0su\0\0\0 EDF11242 : check status of MED file calls to detect problems immediately. Sorry this test generates awful messages !s\f\0\0\0Pyfile94.meds\f\0\0\0Pyfile94.erriÿÿÿÿNi\v\0\0\0\ 2\0\0i\ 2\0\0\0i$\ 1\0\0R5\ 4\0\0id\0\0\0g\0\0\0\0\0\0Y@i\0\0\0\0(\17\0\0\0R\11\0\0\0t\ 4\0\0\0patht\ 6\0\0\0existst\ 6\0\0\0removeR±\0\0\0RY\0\0\0Ry\ 1\0\0Rc\0\0\0\0\0\0\0\0\0RB\0\0\0R\v\0\0\0t\ 5\0\0\0chmodRw\ 1\0\0R\13\ 1\0\0R{\ 1\0\0R)\ 1\0\0Rd\0\0\0\0\0\0R%\ 1\0\0R\ 6\0\0\0R)\0\0\0R*\0\0\0(
34965 +\0\0\0R   \0\0\0R9\ 1\0\0t\b\0\0\0errfnameR\11\0\0\0R\83\0\0\0\ 1\0\0R\86\0\0\0R\b\0\0\0\0\0\0R\93\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\14\0\0\0testMEDFileSafeCall0Z\12\0\0s:\0\0\0\0\ 3\ 6\ 1\ 6\ 2\f\ 2\12\ 1\r\ 1\ 3\ 2      \ 1\f\0
34966 +\ 1\10\ 1    \ 1\r\ 1\r\ 1\10\ 2\10\ 2\f\ 1\r\ 1\r\ 1\13\ 1\r\ 1
34967 +\ 1      \ 1\r\ 2\f\ 1\19\ 1\ 3\ 2\12\ 1\10\ 2c\ 1\0\0\0\ 5\0\0\0\ 3\0\0\0C\0\0\0\0\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 3\0|\ 3\0j\ 3\0|\ 2\0|\ 2\0\83\ 2\0\ 1|\ 3\0j\ 4\0d\ 3\0\83\ 1\0\ 1t\ 5\0\83\0\0}\ 4\0|\ 4\0j\ 6\0|\ 3\0\83\ 1\0\ 1|\ 4\0j\a\0t\b\0\83\ 1\0\ 1|\ 4\0j    \0|\ 1\0d\ 4\0\83\ 2\0\ 1t\ 5\0|\ 1\0\83\ 1\0}\ 4\0|\0\0j
34968 +\0|\ 4\0j\v\0\83\0\0d\ 5\0\83\ 2\0\ 1|\ 4\0j\a\0t\f\0\83\ 1\0\ 1|\ 4\0j     \0|\ 1\0d\ 4\0\83\ 2\0\ 1t\ 5\0|\ 1\0\83\ 1\0}\ 4\0|\0\0j\r\0|\ 4\0j\v\0\83\0\0d\ 5\0k\ 3\0\83\ 1\0\ 1d\ 6\0S(\a\0\0\0sE\0\0\0 Non regression test to check the effectiveness of univ write status.s\f\0\0\0Pyfile95.medi
34969 +\0\0\0\ 2\0\0i\ 2\0\0\0R&\0\0\0N(\ e\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0RB\0\0\0\0\0\0\0\0\0t\13\0\0\0setUnivNameWrStatusRN\0\0\0R\v\0\0\0R+\0\0\0R{\0\0\0R.\0\0\0R0\0\0\0(\ 5\0\0\0R        \0\0\0R9\ 1\0\0\ 1\0\0R\83\0\0\0R\86\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ f\0\0\0testUnivStatus1\82\12\0\0s"\0\0\0\0\ 2\ 6\ 1\f\0
34970 +\ 1      \0\10\0\r\ 1   \0\r\ 1\r\ 1\10\ 1\f\ 1\16\ 1\r\ 1\10\ 1\f\ 1\19\ 1c\ 1\0\0\0\ 6\0\0\0\ 5\0\0\0C\0\0\0\0\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0\83\ 2\0}\ 2\0|\ 2\0j\ 1\0t\ 2\0g\0\0d\ 4\0d\ 3\0\83\ 3\0\83\ 1\0\ 1|\ 2\0j\ 3\0t\ 4\0g\0\0\83\ 1\0t\ 4\0d\ 4\0g\ 1\0\83\ 1\0\83\ 2\0\ 1t\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0d\ 4\0|\ 2\0\83\ 2\0\ 1|\ 3\0j\a\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\ 5\0|\ 1\0\83\ 1\0}\ 4\0|\0\0j\b\0d\ 2\0|\ 4\0j        \0\83\0\0\83\ 2\0\ 1|\ 4\0j
34971 +\0\83\0\0}\ 5\0|\0\0j\b\0d\ 6\0|\ 5\0\83\ 2\0\ 1d\ 5\0S(\a\0\0\0si\0\0\0 MEDLoader should be able to consistently write and read an empty mesh (coords array
34972 +      with 0 tuples s\f\0\0\0Pyfile96.medR\8b\ 2\0\0i\ 2\0\0\0i\0\0\0\0N(\0\0\0\0(\v\0\0\0R[\0\0\0Rc\0\0\0RY\0\0\0Rÿ\ 1\0\0Rk\0\0\0R>\0\0\0Rj\0\0\0R\v\0\0\0R+\0\0\0RC\0\0\0R,\0\0\0(\ 6\0\0\0R   \0\0\0R9\ 1\0\0R\83\0\0\0R  \ 2\0\0t\ 4\0\0\0mfu2t\ 3\0\0\0lvl(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testEmptyMesh\92\12\0\0s\16\0\0\0\0\ 3\ 6\ 1\ f\ 1\19\ 1\1f\ 1     \ 1\10\ 1\10\ 1\f\ 1\16\ 1\f\ 1c\ 1\0\0\0\11\0\0\0\ 4\0\0\0C\0\0\0s\85\ 1\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0d\ 5\0}\ 5\0t\0\0|\ 5\0\83\ 1\0}\ 6\0|\ 6\0j\ 1\0\83\0\0\ 1|\ 6\0|\ 5\0d\ 6\0\18:}\ 6\0|\ 6\0|\ 4\09}\ 6\0t\ 2\0\83\0\0}\a\0|\a\0j\ 3\0|\ 6\0|\ 6\0|\ 6\0\83\ 3\0\ 1|\a\0j\ 4\0\83\0\0}\a\0|\a\0j\ 5\0|\ 1\0\83\ 1\0\ 1t\ 6\0\83\0\0}\b\0|\a\0|\b\0d\a\0<|\a\0j\a\0\83\0\0\0|      \0|\b\0d\b\0<|       \0j\b\0\83\0\0d        \0d      \0\85\ 2\0d
34973 +\0f\ 2\0\19}
34974 +\0|
34975 +\0j     \0|\ 4\0d\v\0\18|\ 4\0d\v\0\17\83\ 2\0}\v\0|\v\0j\ 5\0|\ 2\0\83\ 1\0\ 1|
34976 +\0j     \0d\r\0d\ e\0\83\ 2\0}\f\0|\f\0j\ 5\0|\ 3\0\83\ 1\0\ 1|\b\0j
34977 +\0d\b\0|\v\0|\f\0g\ 2\0\83\ 2\0\ 1t\v\0j\f\0|\b\0d
34978 +\0\83\ 2\0}\r\0t\v\0j\r\0|\r\0\83\ 1\0}\ e\0t\v\0j\f\0|\ e\0d
34979 +\0\83\ 2\0}\ f\0t\v\0j\r\0|\ f\0\83\ 1\0}\10\0|\0\0j\ e\0|\b\0j\ f\0|\10\0d\v\0\83\ 2\0d\a\0\19\83\ 1\0\ 1d   \0S(\ f\0\0\0s[\0\0\0 Check that pickalization can be performed on a unpickalized instance. Non regression test.t\ 6\0\0\0Mesh_1t\ 4\0\0\0HAUTt\ 4\0\0\0BASEg\0\0\0\0\0\0ð?i\ 3\0\0\0i\ 1\0\0\0i\0\0\0\0iÿÿÿÿNi\ 2\0\0\0g\11ê-\81\99\97q=g\0\0\0\0\0\0\0\0g\11ê-\81\99\97q½g\11ê-\81\99\97q=(\10\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0RB\0\0\0R>\0\0\0\ 2\0\0t\17\0\0\0computeCellCenterOfMasst\ e\0\0\0findIdsInRangeRl\0\0\0\ 3\0\0\ 3\0\0\ 3\0\0R0\0\0\0R1\0\0\0(\11\0\0\0R     \0\0\0Rh\ 1\0\0t\b\0\0\0grpName1t\b\0\0\0grpName2t\a\0\0\0hauteurt\10\0\0\0nbOfNodesPerAxisRÔ\ 1\0\0R\83\0\0\0\ 2\0\0R\84\0\0\0t\ 5\0\0\0bary1R\95\ 2\0\0\ 1\0\0R\r\0\0\0R\86\0\0\0t\ 3\0\0\0st2R¢\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileUMeshPickeling2¡\12\0\0s:\0\0\0\0\ 3\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1\f\0
34980 +\0\ e\0
34981 +\ 1      \0\13\0\f\0\r\ 1 \0
34982 +\ 1\f\0
34983 +\ 2\1c\ 1\1a\0\r\ 1\12\0\r\ 1\16\ 2\12\ 1\ f\ 1\12\ 1\ f\ 1\1d\ 1c\ 1\0\0\0\11\0\0\0\81\0\0\0C\0\0\0s)     \0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0d\ 3\0d\ 3\0d\ 3\0f\ 3\0d\ 4\0d\ 3\0d\ 3\0f\ 3\0d\ 5\0d\ 3\0d\ 3\0f\ 3\0d\ 6\0d\ 3\0d\ 3\0f\ 3\0d\ 3\0d\a\0d\ 3\0f\ 3\0d\ 4\0d\a\0d\ 3\0f\ 3\0d\ 5\0d\a\0d\ 3\0f\ 3\0d\ 6\0d\a\0d\ 3\0f\ 3\0d\ 3\0d\b\0d\ 3\0f\ 3\0d\ 4\0d\b\0d\ 3\0f\ 3\0d\ 5\0d\b\0d\ 3\0f\ 3\0d\ 6\0d\b\0d\ 3\0f\ 3\0d\ 3\0d  \0d\ 3\0f\ 3\0d\ 4\0d     \0d\ 3\0f\ 3\0d\ 5\0d     \0d\ 3\0f\ 3\0d\ 6\0d     \0d\ 3\0f\ 3\0d\ 3\0d\ 3\0d\ 4\0f\ 3\0d\ 4\0d\ 3\0d\ 4\0f\ 3\0d\ 5\0d\ 3\0d\ 4\0f\ 3\0d\ 6\0d\ 3\0d\ 4\0f\ 3\0d\ 3\0d\a\0d\ 4\0f\ 3\0d\ 4\0d\a\0d\ 4\0f\ 3\0d\ 5\0d\a\0d\ 4\0f\ 3\0d\ 6\0d\a\0d\ 4\0f\ 3\0d\ 3\0d\b\0d\ 4\0f\ 3\0d\ 4\0d\b\0d\ 4\0f\ 3\0d\ 5\0d\b\0d\ 4\0f\ 3\0d\ 6\0d\b\0d\ 4\0f\ 3\0d\ 3\0d     \0d\ 4\0f\ 3\0d\ 4\0d     \0d\ 4\0f\ 3\0d\ 5\0d     \0d\ 4\0f\ 3\0d\ 6\0d     \0d\ 4\0f\ 3\0d\ 4\0d\ 3\0d
34984 +\0f\ 3\0d\ 4\0d\v\0d\ 3\0f\ 3\0d\f\0d\ 3\0d\ 3\0f\ 3\0d\ 5\0d\ 3\0d
34985 +\0f\ 3\0d\ 5\0d\v\0d\ 3\0f\ 3\0d\ 4\0d\a\0d
34986 +\0f\ 3\0d\f\0d\a\0d\ 3\0f\ 3\0d\ 5\0d\a\0d
34987 +\0f\ 3\0d\ 4\0d\v\0d\ 4\0f\ 3\0d\f\0d\ 3\0d\ 4\0f\ 3\0d\ 5\0d\v\0d\ 4\0f\ 3\0d\f\0d\a\0d\ 4\0f\ 3\0d\ 4\0d\v\0d
34988 +\0f\ 3\0d\f\0d\ 3\0d
34989 +\0f\ 3\0d\f\0d\v\0d\ 3\0f\ 3\0d\ 5\0d\v\0d
34990 +\0f\ 3\0d\f\0d\a\0d
34991 +\0f\ 3\0d\f\0d\v\0d\ 4\0f\ 3\0d\f\0d\v\0d
34992 +\0f\ 3\0g3\0\83\ 1\0}\ 4\0|\ 4\0j\ 2\0d\r\0d\ e\0d\ f\0g\ 3\0\83\ 1\0\ 1t\ 3\0d\10\0d\11\0d\12\0d\13\0d\v\0d\14\0d\15\0d\ 4\0d\12\0d\13\0d\ 4\0d\15\0d\10\0d\16\0d\17\0d\18\0d\11\0d\19\0d\17\0d\16\0d\12\0d\1a\0d\17\0d\19\0d\13\0d\18\0d\17\0d\1a\0d\v\0d\e\0d\1c\0d\ 6\0d\14\0d\1d\0d\1c\0d\e\0d\15\0d\1e\0d\1c\0d\1d\0d\ 4\0d\ 6\0d\1c\0d\1e\0d\12\0d\1a\0d\1f\0\0d\13\0d!\0d\1f\0d\1a\0d\ 4\0d\1e\0d\1f\0d!\0d\15\0\0d\1f\0d\1e\0g<\0\83\ 1\0}\ 5\0t\ 4\0|\ 2\0t\ 5\0\83\ 2\0}\ 6\0|\ 6\0j\ 6\0|\ 4\0\83\ 1\0\ 1|\ 6\0j\a\0|\ 5\0\83\ 1\0\ 1|\ 6\0|\ 3\0d"\0<t\ 3\0d#\0d$\0d\11\0d\12\0d\a\0d\ 3\0d\10\0d\13\0d\15\0d\14\0d\ 5\0d%\0d\ 4\0d\v\0d
34993 +\0d&\0d  \0d#\0d\12\0d'\0d(\0d\a\0d\13\0d)\0d'\0d\12\0d\15\0d*\0d)\0d\13\0d\ 4\0d+\0d*\0d\15\0d%\0d,\0d+\0d\ 4\0d&\0d-\0d.\0d      \0d'\0d/\0d0\0d(\0d)\0d\b\0d/\0d'\0d*\0d1\0d\b\0d)\0d+\0d2\0d1\0d*\0d,\0d3\0d2\0d+\0d-\0d4\0d\12\0d\19\0d5\0\0d\1a\0d\17\0d6\0d\1f\0d\19\0d\11\0d7\0d5\0d\17\0d\16\0d8\0d6\0d5\0d7\0d\14\0d\1d\0d6\0d8\0d\e\0d\1c\0\0d5\0d\1d\0d\15\0d\1f\0d6\0d\1c\0d\1e\0d\17\0d\16\0d8\0d6\0d\18\0d\10\0d9\0d:\0d\1a\0d\17\0d6\0d\1f\0d\13\0d\18\0d:\0d!\0d\1f\0d6\0d\1c\0d\1e\0d!\0d:\0d\ 6\0d\ 4\0d6\0d8\0d\e\0d\1c\0d:\0d9\0d\v\0d\ 6\0g\80\0\83\ 1\0}\a\0t\ 4\0|\ 2\0t\b\0\83\ 2\0}\b\0|\b\0j\ 6\0|\ 4\0\83\ 1\0\ 1|\b\0j\a\0|\a\0\83\ 1\0\ 1|\b\0|\ 3\0d\ 3\0<d;\0|\ 3\0j  \0d"\0\83\ 1\0(d\ 3\0|\ 3\0\0d\ 3\0\83\ 1\0(|\ 3\0j
34994 +\0d<\0d"\0\83\ 2\0\ 1|\ 3\0j
34995 +\0d=\0d;\0\83\ 2\0\ 1|\ 3\0j
34996 +\0d>\0d?\0\83\ 2\0\ 1|\ 3\0j\v\0d@\0d"\0d;\0d?\0g\ 3\0\83\ 2\0\ 1dA\0}       \0dB\0}
34997 +\0|\ 3\0j\f\0\83\0\0\ 1|\ 3\0j\r\0\83\0\0}\v\0|\v\0j\ e\0\0\83\ 1\0}\f\0|\f\0j\ f\0|
34998 +\0\83\ 1\0\ 1t\ 3\0d\ 3\0d
34999 +\0f\ 2\0d\ 3\0d\a\0f\ 2\0d\ 3\0d\13\0f\ 2\0d\ 3\0d\ 4\0f\ 2\0d\10\0d&\0f\ 2\0d\10\0d(\0f\ 2\0d\10\0d)\0f\ 2\0d\10\0d+\0f\ 2\0d\v\0d-\0f\ 2\0d\v\0d0\0f\ 2\0d\v\0d\b\0f\ 2\0d\v\0d2\0f\ 2\0g\f\0\83\ 1\0}\r\0|\f\0j\10\0d"\0|\r\0\83\ 2\0\ 1|\0\0j\11\0|\f\0j\12\0\83\0\0j\13\0\83\0\0d\10\0\83\ 2\0\ 1|\0\0j\14\0|\f\0j\12\0\83\0\0j\15\0t\ 5\0\83\ 1\0j\16\0|\r\0\83\ 1\0\83\ 1\0\ 1|\f\0j\12\0\83\0\0j\17\0\83\0\0\ 1|\0\0j\11\0|\f\0j\12\0\83\0\0j\13\0\83\0\0d\ 3\0\83\ 2\0\ 1|\f\0j\12\0\83\0\0j\18\0t\ 5\0|\r\0\83\ 2\0\ 1|\0\0j\11\0|\f\0j\12\0\83\0\0j\13\0\83\0\0d\10\0\83\ 2\0\ 1|\0\0j\14\0|\f\0j\12\0\83\0\0j\15\0t\ 5\0\83\ 1\0j\16\0|\r\0\83\ 1\0\83\ 1\0\ 1|\ 3\0j\19\0\83\0\0\ 1|\ 3\0j\f\0\83\0\0\ 1|\ 3\0j\r\0\83\0\0}\v\0|\v\0j\ e\0|    \0\83\ 1\0}\f\0|\f\0j\ f\0|
35000 +\0\83\ 1\0\ 1|\f\0j\1a\0\83\0\0}\ e\0|\ e\0j\18\0t\ 5\0|\r\0\83\ 2\0\ 1|\0\0j\11\0|\f\0j\12\0\83\0\0j\13\0\83\0\0d\10\0\83\ 2\0\ 1|\0\0j\14\0|\f\0j\12\0\83\0\0j\15\0t\ 5\0\83\ 1\0j\16\0|\r\0\83\ 1\0\83\ 1\0\ 1|\ 3\0j\e\0\83\0\0}\ f\0|\0\0j\14\0|\ 3\0j\16\0|\ f\0dC\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|\0\0j\11\0|\ f\0j\r\0\83\0\0j\13\0\83\0\0d\10\0\83\ 2\0\ 1|\0\0j\14\0|\ f\0j\r\0\83\0\0j\1c\0d\ 3\0\83\ 1\0j\12\0\83\0\0j\15\0t\ 5\0\83\ 1\0j\16\0|\r\0\83\ 1\0\83\ 1\0\ 1d\v\0|\ f\0j\r\0\83\0\0j\1c\0d\ 3\0\83\ 1\0j\12\0\83\0\0j\15\0t\ 5\0\83\ 1\0d\ 3\0d\ 3\0f\ 2\0<|\0\0j\14\0|\ 3\0j\16\0|\ f\0dC\0\83\ 2\0d\ 3\0\19\f\83\ 1\0\ 1d\ 3\0|\ f\0j\r\0\83\0\0j\1c\0d\ 3\0\83\ 1\0j\12\0\83\0\0j\15\0t\ 5\0\83\ 1\0d\ 3\0d\ 3\0f\ 2\0<|\0\0j\14\0|\ 3\0j\16\0|\ f\0dC\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1|\ 3\0j\1d\0|\ 1\0d\v\0\83\ 2\0\ 1t\1e\0j\1f\0|\ 1\0\83\ 1\0}\10\0|\0\0j\14\0|\ 3\0j\16\0|\10\0dC\0\83\ 2\0d\ 3\0\19\83\ 1\0\ 1dD\0S(E\0\0\0s9\0\0\0 First check of equivalence implementation in MEDFileMeshs\f\0\0\0Pyfile97.medt\ 4\0\0\0M_01i\0\0\0\0i\ 6\0\0\0i\13\0\0\0i$\0\0\0i\ 4\0\0\0i\r\0\0\0i\18\0\0\0i\ 3\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0)@s\ e\0\0\0X [Sans_unite]s\ e\0\0\0Y [Sans_unite]s\ e\0\0\0Z [Sans_unite]i\ 1\0\0\0i\11\0\0\0i\15\0\0\0i\ 5\0\0\0i\12\0\0\0i\16\0\0\0\0\0\0i,\0\0\0i!\0\0\0i(\0\0\0i%\0\0\0i#\0\0\0i/\0\0\0i*\0\0\0i'\0\0\0i0\0\0\0i+\0\0\0i&\0\0\0iÿÿÿÿi\14\0\0\0i\10\0\0\0i\17\0\0\0i\a\0\0\0i\19\0\0\0i\b\0\0\0i   \0\0\0i\1a\0\0\0i
35001 +\0\0\0i\e\0\0\0i\v\0\0\0i\1c\0\0\0i\1d\0\0\0i\f\0\0\0i\1e\0\0\0i\ e\0\0\0i\1f\0\0\0i\ f\0\0\0i1\0\0\0i2\0\0\0i)\0\0\0i-\0\0\0i"\0\0\0i.\0\0\0iþÿÿÿs\10\0\0\0HOMARD________-1s\10\0\0\0HOMARD________-2s\10\0\0\0HOMARD________-3iýÿÿÿt\ 6\0\0\0HOMARDt\1f\0\0\0MAILLES_A_RECOLLER_APRES_HOMARDs¾\0\0\0Cette equivalence decrit les mailles a recoller. Dans chaque correspondance, le premier numero est celui de la maille coupee ; le second numero est celui d'une des petites mailles en regard.g\11ê-\81\99\97q=N( \0\0\0R>\0\0\0RY\0\0\0\ 1\0\0Rk\0\0\0Rz\0\0\0R`\0\0\0Rc\0\0\0R&\ 4\0\0\0\0\0R\9e\0\0\0\0\0\0\0\0\0t\16\0\0\0initializeEquivalencest\ f\0\0\0getEquivalencest\1e\0\0\0appendEmptyEquivalenceWithNameRi\0\0\0R{\ 1\0\0R+\0\0\0t\a\0\0\0getCellt\ 4\0\0\0sizeR0\0\0\0R)\ 1\0\0R1\0\0\0t\ 5\0\0\0cleart\ f\0\0\0setArrayForTypet\10\0\0\0killEquivalencest\b\0\0\0initCellRq\0\0\0t\ e\0\0\0getEquivalenceR\v\0\0\0R'\0\0\0R(\0\0\0(\11\0\0\0\0\0\0R!\0\0\0\ 3\0\0R\86\0\0\0R\ 3\ 2\0\0t\ 6\0\0\0connQ4R\84\0\0\0t\ 6\0\0\0connH8Rá\0\0\0t\ 6\0\0\0eqNamet\ 6\0\0\0descEqt\ 3\0\0\0eqst\ 3\0\0\0eq0t\ 4\0\0\0corrR\80\0\0\0\0\0\0t\ 3\0\0\0mm3(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\17\0\0\0testMEDFileEquivalence1º\12\0\0sx\0\0\0\0\ 2\ 6\ 1\ 6\ 1   \ 1ÿ\0ÿ\0r\ 1\16\ 1À\ 1\ f\0\r\0\r\0
35002 +\ 1ÿ\0\8d\ 1\ f\0\r\0\r\0
35003 +\ 1\10\ 1\10\ 1\10\ 1\10\ 1\10\ 1\19\ 2\ 6\ 1\ 6\ 1
35004 +\ 1\f\ 1\ f\ 1\r\ 1x\ 1\10\ 1\1c\ 1%\ 1\10\ 1\1c\ 1\16\ 1\1c\ 1%\ 1
35005 +\ 1
35006 +\ 1\f\ 1\ f\ 1\r\ 1\f\ 1\10\ 1\1c\ 1%\ 1\f\ 1\1d\ 1\1c\ 14\ 1.\ 1\1e\ 1.\ 1\1d\ 1\10\ 2\ f\ 1\1d\ 1c\ 1\0\0\0     \0\0\0\ 6\0\0\0C\0\0\0sÿ\ 1\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0t\0\0j\ 1\0\83\0\0\16}\ 3\0t\ 2\0d\ 4\0\83\ 1\0}\ 4\0|\ 4\0j\ 3\0\83\0\0\ 1t\ 4\0\83\0\0}\ 5\0|\ 5\0j\ 5\0|\ 4\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\ 6\0\83\0\0}\ 5\0t\a\0\83\0\0}\ 6\0|\ 5\0|\ 6\0d\ 5\0<|\ 6\0j\b\0|\ 2\0\83\ 1\0\ 1|\ 6\0j     \0d\ 6\0d\ 5\0\83\ 2\0\ 1d\a\0|\ 6\0j
35007 +\0d\ 5\0\83\ 1\0d\b\0)|\ 6\0j        \0d      \0|\ 3\0d\ 5\0\16\16d\a\0\83\ 2\0\ 1|\ 6\0j\v\0\0|\ 3\0d\ 5\0\16\16d
35008 +\0g\ 1\0\83\ 2\0\ 1t\f\0d\v\0\83\ 1\0}\a\0d\ 5\0|\a\0(d\f\0|\a\0d\r\0d\ e\0d\ 4\0d\ f\0g\ 4\0<|\ 6\0j\r\0d\r\0|\a\0\83\ 2\0\ 1|\ 6\0j  \0d      \0|\ 3\0d\r\0\16\16d\f\0\83\ 2\0\ 1|\ 6\0j\v\0\0|\ 3\0d\r\0\16\16d
35009 +\0g\ 1\0\83\ 2\0\ 1|\0\0j\ e\0|\ 6\0j\ f\0\83\0\0d\15\0\83\ 2\0\ 1|\0\0j\ e\0|\ 6\0j\10\0\83\0\0d\16\0\83\ 2\0\ 1|\0\0j\ e\0|\ 6\0j\11\0d
35010 +\0\83\ 1\0d\17\0\83\ 2\0\ 1|\ 6\0j\12\0|\ 1\0d\ e\0\83\ 2\0\ 1t\0\0j\13\0|\ 1\0\83\ 1\0}\b\0|\0\0j\14\0|\ 6\0j\15\0|\b\0d\13\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ e\0|\b\0j\ f\0\83\0\0d\18\0\83\ 2\0\ 1|\0\0j\ e\0|\b\0j\10\0\83\0\0d\19\0\83\ 2\0\ 1|\0\0j\ e\0|\b\0j\11\0d
35011 +\0\83\ 1\0d\1a\0\83\ 2\0\ 1d\14\0S(\e\0\0\0s}\0\0\0Non regression bug EDF11911. For serial killers using same family name to store both cells and nodes ! Only sky is the limit.s\f\0\0\0Pyfile98.medR \ 2\0\0s\a\0\0\0%s%%04ii\ 4\0\0\0i\0\0\0\0R\9a\ 2\0\0iüÿÿÿiýÿÿÿs\ 6\0\0\0RIDF%st\ 3\0\0\0RIDi\10\0\0\0i\ 3\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 5\0\0\0s\ e\0\0\0RIDF!/__\!0000s\ e\0\0\0RIDF!/__\!0001t\ 4\0\0\0RIDFg¼\89Ø\97²Ò\9c<N(\ 3\0\0\0s\f\0\0\0FAMILLE_ZEROs\ e\0\0\0RIDF!/__\!0000s\ e\0\0\0RIDF!/__\!0001(\ 3\0\0\0s\f\0\0\0FAMILLE_ZEROR¹\ 4\0\0\ 4\0\0(\ 2\0\0\0iüÿÿÿi\ 3\0\0\0(\ 3\0\0\0s\f\0\0\0FAMILLE_ZEROs\ e\0\0\0RIDF!/__\!0000s\ e\0\0\0RIDF!/__\!0001(\ 3\0\0\0s\f\0\0\0FAMILLE_ZEROR¹\ 4\0\0\ 4\0\0(\ 2\0\0\0iüÿÿÿi\ 3\0\0\0(\16\0\0\0R'\0\0\0t\11\0\0\0GetMagicFamilyStrRY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0R>\0\0\0RB\0\0\0\0\0\0R\9e\0\0\0\ 3\0\0Rk\0\0\0\0\0\0R+\0\0\0\ 1\0\0t#\0\0\0getFamiliesNamesWithFilePointOfViewR\v\ 3\0\0R\v\0\0\0R(\0\0\0R0\0\0\0R1\0\0\0(   \0\0\0R    \0\0\0R!\0\0\0\ 3\0\0t\a\0\0\0magicStRÔ\ 1\0\0R\83\0\0\0R\86\0\0\0Re\ 1\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1d\0\0\0testMEDFileForFamiliesPlayer1ò\12\0\0s>\0\0\0\0\ 2\ 6\ 1\ 6\ 1\10\ 1\f\0
35012 +\ 1      \0\10\ 1\f\ 1   \ 1
35013 +\ 1\r\ 1\10\ 1\13\ 1\18\ 1\e\ 1\f\0\a\0\16\ 1\10\ 1\18\ 1\e\ 1\16\ 1\16\ 1\19\ 1\10\ 2\ f\ 1\19\ 1\16\ 1\16\ 1\19\ 1c\ 1\0\0\0\r\0\0\0\ 6\0\0\0C\0\0\0s)\f\0\0t\0\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 2\0|\ 2\0j\ 3\0|\ 1\0|\ 1\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 2\0t\ 5\0\83\0\0}\ 3\0|\ 2\0|\ 3\0d\ 2\0<|\ 3\0j\ 6\0\83\0\0\ 1t\a\0d\ 3\0\83\ 1\0}\ 4\0d\ 2\0|\ 4\0(t\a\0d\ 4\0\83\ 1\0}\ 5\0d\ 2\0|\ 5\0(|\ 3\0j\b\0d\ 2\0|\ 5\0\83\ 2\0\ 1|\ 3\0j\b\0d\ 5\0|\ 4\0\83\ 2\0\ 1|\ 3\0j      \0d\ 6\0\83\ 1\0\ 1|\ 3\0j
35014 +\0d\a\0\83\ 1\0\ 1|\ 3\0j\v\0d\b\0d\ 1\0d  \0\83\ 3\0\ 1|\ 3\0j\f\0d
35015 +\0d\v\0\83\ 2\0\ 1|\ 3\0j\r\0d\f\0d
35016 +\0g\ 1\0\83\ 2\0\ 1|\ 3\0j\ e\0d\r\0\83\ 1\0\ 1|\ 3\0j\ f\0\83\0\0j\10\0\83\0\0}\ 6\0|\ 3\0d\ 2\0\19j\11\0\83\0\0j\10\0\83\0\0}\a\0|\0\0j\12\0|\ 6\0|\ 3\0d\ 2\0\19j\ f\0\83\0\0j\10\0\83\0\0\83\ 2\0\ 1|\ 3\0d\ 2\0\19j\13\0\83\0\0j\10\0\83\0\0}\b\0|\ 3\0j\14\0t\15\0\83\ 1\0j\11\0\83\0\0j\10\0\83\0\0}   \0|\0\0j\12\0|\ 6\0|\ 3\0j\14\0t\15\0\83\ 1\0j\ f\0\83\0\0j\10\0\83\0\0\83\ 2\0\ 1|\ 3\0j\16\0t\17\0\83\ 1\0\ 1|\ 3\0j\18\0\83\0\0}
35017 +\0|\0\0j\12\0|
35018 +\0j\19\0\83\0\0t\1a\0\83\ 2\0\ 1|\ 3\0j\16\0t\1a\0\83\ 1\0\ 1|\0\0j\e\0t\1c\0|
35019 +\0t\ 5\0\83\ 2\0\83\ 1\0\ 1|\0\0j\e\0|\ 3\0j\10\0\83\0\0|
35020 +\0j\10\0\83\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\e\0|\ 6\0|\ 3\0j\ f\0\83\0\0j\10\0\83\0\0k\ 2\0\83\ 1\0\ 1|\0\0j\e\0|\ 6\0|
35021 +\0j\ f\0\83\0\0j\10\0\83\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\12\0|
35022 +\0j\ f\0\83\0\0j\10\0\83\0\0|
35023 +\0d\ 2\0\19j\ f\0\83\0\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35024 +\0j\ f\0\83\0\0j\10\0\83\0\0|
35025 +\0j\14\0t\15\0\83\ 1\0j\ f\0\83\0\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35026 +\0d\ 2\0\19j\11\0\83\0\0j\10\0\83\0\0|\a\0\83\ 2\0\ 1|\0\0j\12\0|
35027 +\0d\ 2\0\19j\13\0\83\0\0j\10\0\83\0\0|\b\0\83\ 2\0\ 1|\0\0j\12\0|
35028 +\0j\14\0t\15\0\83\ 1\0j\11\0\83\0\0j\10\0\83\0\0|        \0\83\ 2\0\ 1|\0\0j\12\0|
35029 +\0j\1d\0\83\0\0|\ 3\0j\1d\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35030 +\0j\1e\0\83\0\0|\ 3\0j\1e\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35031 +\0j\1f\0\83\0\0|\ 3\0j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35032 +\0j\1f\0\83\0\0|\ 3\0j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35033 +\0\0\83\0\0|\ 3\0\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35034 +\0j!\0\83\0\0|\ 3\0j!\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35035 +\0j"\0\83\0\0|\ 3\0j"\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0g\0\0|
35036 +\0j"\0\83\0\0D]\15\0}\v\0|
35037 +\0j#\0|\v\0\83\ 1\0^\ 2\0\ 3g\0\0|\ 3\0j"\0\83\0\0D]\15\0}\f\0|\ 3\0j#\0|\f\0\83\ 1\0^\ 2\0q\ 6\ 4\83\ 2\0\ 1|\0\0j\12\0|\ 3\0j$\0d\ 2\0\83\ 1\0j\10\0\83\0\0|\ 5\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35038 +\0j$\0d\ 2\0\83\ 1\0j\10\0\83\0\0|\ 5\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|\ 3\0j$\0d\ 5\0\83\ 1\0j\10\0\83\0\0|\ 4\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35039 +\0j$\0d\ 5\0\83\ 1\0j\10\0\83\0\0|\ 4\0j\10\0\83\0\0\83\ 2\0\ 1|\ 3\0j\16\0t\1a\0\83\ 1\0\ 1|\ 3\0j\18\0\83\0\0}
35040 +\0|\0\0j\12\0|
35041 +\0j\19\0\83\0\0t\1a\0\83\ 2\0\ 1|\0\0j\e\0t\1c\0|
35042 +\0t\ 5\0\83\ 2\0\83\ 1\0\ 1|\0\0j\e\0|\ 3\0j\10\0\83\0\0|
35043 +\0j\10\0\83\0\0k\ 2\0\83\ 1\0\ 1t\0\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 2\0|\ 2\0j\ 3\0|\ 1\0|\ 1\0\83\ 2\0\ 1|\ 2\0j%\0\83\0\0}\ 2\0t&\0\83\0\0}\ 3\0|\ 3\0j'\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\16\0t\17\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 2\0|\ 5\0\83\ 2\0\ 1|\ 3\0j\b\0d\ 5\0|\ 4\0\83\ 2\0\ 1|\ 3\0j       \0d\ 6\0\83\ 1\0\ 1|\ 3\0j
35044 +\0d\a\0\83\ 1\0\ 1|\ 3\0j\v\0d\b\0d\ 1\0d  \0\83\ 3\0\ 1|\ 3\0j\f\0d
35045 +\0d\v\0\83\ 2\0\ 1|\ 3\0j\r\0d\f\0d
35046 +\0g\ 1\0\83\ 2\0\ 1|\ 3\0j\ e\0d\r\0\83\ 1\0\ 1|\ 3\0j(\0\83\0\0j\ f\0\83\0\0j\10\0\83\0\0}\ 6\0|\ 3\0j\18\0\83\0\0}
35047 +\0|\0\0j\12\0|
35048 +\0j\19\0\83\0\0t\1a\0\83\ 2\0\ 1|\0\0j\e\0t\1c\0|
35049 +\0t&\0\83\ 2\0\83\ 1\0\ 1|\0\0j\e\0|\ 3\0j\10\0\83\0\0|
35050 +\0j\10\0\83\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\e\0|\ 6\0|\ 3\0j(\0\83\0\0j\ f\0\83\0\0j\10\0\83\0\0k\ 2\0\83\ 1\0\ 1|\0\0j\e\0|\ 6\0|
35051 +\0j(\0\83\0\0j\ f\0\83\0\0j\10\0\83\0\0k\ 3\0\83\ 1\0\ 1|\0\0j\12\0|
35052 +\0j(\0\83\0\0j)\0\83\0\0|\ 3\0j(\0\83\0\0j)\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35053 +\0j\1d\0\83\0\0|\ 3\0j\1d\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35054 +\0j\1e\0\83\0\0|\ 3\0j\1e\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35055 +\0j\1f\0\83\0\0|\ 3\0j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35056 +\0j\1f\0\83\0\0|\ 3\0j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35057 +\0\0\83\0\0|\ 3\0\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35058 +\0j!\0\83\0\0|\ 3\0j!\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35059 +\0j"\0\83\0\0|\ 3\0j"\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0g\0\0|
35060 +\0j"\0\83\0\0D]\15\0}\v\0|
35061 +\0j#\0|\v\0\83\ 1\0^\ 2\0\ag\0\0|\ 3\0j"\0\83\0\0D]\15\0}\f\0|\ 3\0j#\0|\f\0\83\ 1\0^\ 2\0\a\83\ 2\0\ 1|\0\0j\12\0|\ 3\0j$\0d\ 2\0\83\ 1\0j\10\0\83\0\0|\ 5\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35062 +\0j$\0d\ 2\0\83\ 1\0j\10\0\83\0\0|\ 5\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|\ 3\0j$\0d\ 5\0\83\ 1\0j\10\0\83\0\0|\ 4\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35063 +\0j$\0d\ 5\0\83\ 1\0j\10\0\83\0\0|\ 4\0j\10\0\83\0\0\83\ 2\0\ 1|\ 3\0j\16\0t\1a\0\83\ 1\0\ 1|\ 3\0j\18\0\83\0\0}
35064 +\0|\0\0j\12\0|
35065 +\0j\19\0\83\0\0t\1a\0\83\ 2\0\ 1|\0\0j\e\0t\1c\0|
35066 +\0t&\0\83\ 2\0\83\ 1\0\ 1|\0\0j\e\0|\ 3\0j\10\0\83\0\0|
35067 +\0j\10\0\83\0\0k\ 2\0\83\ 1\0\ 1t\0\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 2\0|\ 2\0j\ 3\0|\ 1\0|\ 1\0\83\ 2\0\ 1t*\0\83\0\0}\ 3\0|\ 3\0j'\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\16\0t\17\0\83\ 1\0\ 1|\ 3\0j\b\0d\ 2\0|\ 5\0\83\ 2\0\ 1|\ 3\0j\b\0d\ 5\0|\ 4\0\83\ 2\0\ 1|\ 3\0j   \0d\ 6\0\83\ 1\0\ 1|\ 3\0j
35068 +\0d\a\0\83\ 1\0\ 1|\ 3\0j\v\0d\b\0d\ 1\0d  \0\83\ 3\0\ 1|\ 3\0j\f\0d
35069 +\0d\v\0\83\ 2\0\ 1|\ 3\0j\r\0d\f\0d
35070 +\0g\ 1\0\83\ 2\0\ 1|\ 3\0j\ e\0d\r\0\83\ 1\0\ 1|\ 3\0j\18\0\83\0\0}
35071 +\0|\0\0j\12\0|
35072 +\0j\19\0\83\0\0t\1a\0\83\ 2\0\ 1|\0\0j\e\0t\1c\0|
35073 +\0t&\0\83\ 2\0\83\ 1\0\ 1|\0\0j\12\0|
35074 +\0j(\0\83\0\0j)\0\83\0\0|\ 3\0j(\0\83\0\0j)\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35075 +\0j\1d\0\83\0\0|\ 3\0j\1d\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35076 +\0j\1e\0\83\0\0|\ 3\0j\1e\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35077 +\0j\1f\0\83\0\0|\ 3\0j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35078 +\0j\1f\0\83\0\0|\ 3\0j\1f\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35079 +\0\0\83\0\0|\ 3\0\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35080 +\0j!\0\83\0\0|\ 3\0j!\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35081 +\0j"\0\83\0\0|\ 3\0j"\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0g\0\0|
35082 +\0j"\0\83\0\0D]\15\0}\v\0|
35083 +\0j#\0|\v\0\83\ 1\0^\ 2\0
35084 +g\0\0|\ 3\0j"\0\83\0\0D]\15\0}\f\0|\ 3\0j#\0|\f\0\83\ 1\0^\ 2\0q\11\v\83\ 2\0\ 1|\0\0j\12\0|\ 3\0j$\0d\ 2\0\83\ 1\0j\10\0\83\0\0|\ 5\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35085 +\0j$\0d\ 2\0\83\ 1\0j\10\0\83\0\0|\ 5\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|\ 3\0j$\0d\ 5\0\83\ 1\0j\10\0\83\0\0|\ 4\0j\10\0\83\0\0\83\ 2\0\ 1|\0\0j\12\0|
35086 +\0j$\0d\ 5\0\83\ 1\0j\10\0\83\0\0|\ 4\0j\10\0\83\0\0\83\ 2\0\ 1|\ 3\0j\16\0t\1a\0\83\ 1\0\ 1|\ 3\0j\18\0\83\0\0}
35087 +\0|\0\0j\12\0|
35088 +\0j\19\0\83\0\0t\1a\0\83\ 2\0\ 1|\0\0j\e\0t\1c\0|
35089 +\0t*\0\83\ 2\0\83\ 1\0\ 1|\0\0j\e\0|\ 3\0j\10\0\83\0\0|
35090 +\0j\10\0\83\0\0k\ 2\0\83\ 1\0\ 1d\ e\0S(\ f\0\0\0sl\0\0\0 This test is advanced to be sure that no unnecessary copies had been made during cartesianization process. i\ 4\0\0\0i\0\0\0\0i\10\0\0\0i       \0\0\0i\ 1\0\0\0\ 2\0\0\ 2\0\0i\ 3\0\0\0g\0\0\0\0\0\0\14@R\80\0\0\0iüÿÿÿRe\ 1\0\0\0\0\0N(+\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0R>\0\0\0\ 3\0\0Rk\0\0\0\0\0\0RB\0\0\0Ri\0\0\0\0\0\0\0\0\0R\9b\ 2\0\0\0\0\0\0\0\0\ 3\0\0Rv\0\0\0R+\0\0\0Rw\0\0\0Rs\0\0\0R`\0\0\0\ 3\0\0\ 3\0\0t\f\0\0\0cartesianizeRò\ 3\0\0\ 3\0\0R0\0\0\0Rt\0\0\0RC\0\0\0R~\0\0\0\0\0\0\0\0\0\ 1\0\0\ 1\0\0R)\ 4\0\0R\9e\0\0\0t\10\0\0\0buildCurveLinearR²\ 2\0\0\0\0\0\0\0\0t\14\0\0\0getNodeGridStructureR¯\0\0\0(\r\0\0\0\0\0\0\ 1\0\0R\83\0\0\0R\86\0\0\0t\ 2\0\0\0d0Rú\ 2\0\0\ 1\0\0\ 1\0\0\ 1\0\0t\ 4\0\0\0ref3R¢\0\0\0\0\0\0t\ 4\0\0\0elt2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\12\0\0\0testCartesianizer1\11\13\0\0s\f\ 1\0\0\0\ 3\f\0
35091 +\0      \0\10\0\f\ 1   \0
35092 +\0
35093 +\ 1\f\0\a\ 1\f\0\a\ 1\10\0\10\ 1\r\0\r\0\13\0\10\0\13\0\r\ 1\12\ 1\16\ 1 \ 1\16\ 1\e\ 1%\ 1\r\ 1\f\ 1\16\ 1\r\ 1\16\ 1\1f\ 1\1f\ 1\1f\ 1,\ 11\ 1 \ 1 \ 1%\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1T\ 1%\ 1%\ 1%\ 1%\ 2\r\ 1\f\ 1\16\ 1\16\ 1\1f\ 2\f\0
35094 +\0      \0\10\0\f\ 1   \0\r\0\r\ 1\10\0\10\ 1\r\0\r\0\13\0\10\0\13\0\r\ 1\18\ 1\f\ 1\16\ 1\16\ 1\1f\ 1%\ 1%\ 1(\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1T\ 1%\ 1%\ 1%\ 1%\ 2\r\ 1\f\ 1\16\ 1\16\ 1\1f\ 2\f\0
35095 +\0      \0\10\ 1     \0\r\0\r\ 1\10\0\10\ 1\r\0\r\0\13\0\10\0\13\0\r\ 1\f\ 1\16\ 1\16\ 1(\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1T\ 1%\ 1%\ 1%\ 1%\ 2\r\ 1\f\ 1\16\ 1\16\ 1\1f\ 1c\ 1\0\0\0\a\0\0\0
35096 +\0\0\0C\0\0\0s{\ 4\0\0t\0\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 1\0t\ 2\0d\ e\0g\ 1\0d\ 5\0\14d\ 5\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|\ 1\0j\ 3\0t\ 4\0t\ 5\0d\ 6\0d\a\0d\ 2\0t\ 5\0d\a\0d\ 2\0d\b\0g\b\0\83\ 1\0t\ 4\0d\ 6\0d\ 5\0d   \0g\ 3\0\83\ 1\0\83\ 2\0\ 1|\ 1\0j\ 6\0\83\0\0\\ 5\0}\ 2\0}\ 3\0}\ 3\0}\ 3\0}\ 3\0t\a\0\83\0\0}\ 4\0|\ 4\0j\b\0d\ 6\0|\ 1\0\83\ 2\0\ 1|\ 4\0j\b\0d
35097 +\0|\ 2\0\83\ 2\0\ 1|\ 4\0j   \0\83\0\0\ 1|\ 4\0j
35098 +\0\83\0\0}\ 5\0t\ 4\0d\ 2\0g\ 1\0d\ 5\0\14\83\ 1\0}\ 6\0|\ 4\0j\v\0d\a\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j   \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35099 +\0\83\0\0}\ 5\0t\ 4\0d\ 2\0g\ 1\0d\ 5\0\14\83\ 1\0}\ 6\0|\ 4\0j\ f\0d\a\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j   \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35100 +\0\83\0\0}\ 5\0|\ 4\0j\ f\0d\a\0t\ 4\0d\ 2\0g\ 1\0d\ 5\0\14\83\ 1\0\83\ 2\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j      \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35101 +\0\83\0\0}\ 5\0t\10\0d\f\0g\ 1\0d\ 5\0\14\83\ 1\0}\ 6\0|\ 4\0j\11\0d\a\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j   \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35102 +\0\83\0\0}\ 5\0t\ 4\0d\ 2\0g\ 1\0d\ 2\0\14\83\ 1\0}\ 6\0|\ 4\0j\v\0d\ 6\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j   \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35103 +\0\83\0\0}\ 5\0t\ 4\0d\ 2\0g\ 1\0d\ 2\0\14\83\ 1\0}\ 6\0|\ 4\0j\ f\0d\ 6\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j   \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35104 +\0\83\0\0}\ 5\0|\ 4\0j\ f\0d\ 6\0t\ 4\0d\ 2\0g\ 1\0d\ 2\0\14\83\ 1\0\83\ 2\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j      \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35105 +\0\83\0\0}\ 5\0t\10\0d\f\0g\ 1\0d\ 2\0\14\83\ 1\0}\ 6\0|\ 4\0j\11\0d\ 6\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j   \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35106 +\0\83\0\0}\ 5\0t\ 4\0d\ 2\0g\ 1\0d\r\0\14\83\ 1\0}\ 6\0|\ 4\0j\v\0d
35107 +\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j     \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35108 +\0\83\0\0}\ 5\0t\ 4\0d\ 2\0g\ 1\0d\r\0\14\83\ 1\0}\ 6\0|\ 4\0j\ f\0d
35109 +\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j     \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35110 +\0\83\0\0}\ 5\0|\ 4\0j\ f\0d
35111 +\0t\ 4\0d\ 2\0g\ 1\0d\r\0\14\83\ 1\0\83\ 2\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j     \0\83\ 2\0\ 1|\ 5\0}\ 4\0|\ 4\0j
35112 +\0\83\0\0}\ 5\0t\10\0d\f\0g\ 1\0d\r\0\14\83\ 1\0}\ 6\0|\ 4\0j\11\0d
35113 +\0|\ 6\0\83\ 2\0\ 1|\ 6\0j\f\0d\v\0\83\ 1\0\ 1|\0\0j\r\0t\ e\0|\ 4\0j     \0\83\ 2\0\ 1d\0\0S(\ f\0\0\0Nt\ 2\0\0\02di\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\b\0\0\0iÿÿÿÿi#\0\0\0s\10\0\0\0tutu           xi\ 5\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\12\0\0\0R[\0\0\0Rc\0\0\0RY\0\0\0Rÿ\ 1\0\0Rk\0\0\0R_\0\0\0R\9b\ 1\0\0R>\0\0\0Rj\0\0\0R\0\ 2\0\0Rq\0\0\0\0\0\0t\a\0\0\0reAllocR)\0\0\0R*\0\0\0R\98\0\0\0\ 2\0\0\ 2\0\0(\a\0\0\0R   \0\0\0R\85\0\0\0R\84\0\0\0R\ 6\ 2\0\0t\ 3\0\0\0mumt\ 4\0\0\0mum2RÔ\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\12\0\0\0testCheckCoherency{\13\0\0s\92\0\0\0\0\ 1\ f\ 1 \ 1=\ 1\e\ 1    \ 1\10\ 1\10\ 1
35114 +\ 1\f\ 3\13\ 1\10\0\r\ 1\13\ 1\ 6\0\f\ 1\13\ 1\10\0\r\ 1\13\ 1\ 6\0\f\ 1\1d\ 1\13\ 1\ 6\0\f\ 1\13\ 1\10\0\r\ 1\13\ 3\ 6\0\f\ 1\13\ 1\10\0\r\ 1\13\ 1\ 6\0\f\ 1\13\ 1\10\0\r\ 1\13\ 1\ 6\0\f\ 1\1d\ 1\13\ 1\ 6\0\f\ 1\13\ 1\10\0\r\ 1\13\ 3\ 6\0\f\ 1\13\ 1\10\0\r\ 1\13\ 1\ 6\0\f\ 1\13\ 1\10\0\r\ 1\13\ 1\ 6\0\f\ 1\1d\ 1\13\ 1\ 6\0\f\ 1\13\ 1\10\0\r\ 1c\ 1\0\0\0\a\0\0\0
35115 +\0\0\0C\0\0\0s]\ 1\0\0t\0\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 1\0t\ 2\0d\f\0g\ 1\0d\ 5\0\14d\ 5\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|\ 1\0j\ 3\0t\ 4\0t\ 5\0d\ 6\0d\a\0d\ 2\0t\ 5\0d\a\0d\ 2\0d\b\0g\b\0\83\ 1\0t\ 4\0d\ 6\0d\ 5\0d   \0g\ 3\0\83\ 1\0\83\ 2\0\ 1|\ 1\0j\ 6\0\83\0\0\\ 5\0}\ 2\0}\ 3\0}\ 3\0}\ 3\0}\ 3\0t\a\0\83\0\0}\ 4\0|\ 4\0j\b\0d\ 6\0|\ 1\0\83\ 2\0\ 1|\ 4\0j\b\0d
35116 +\0|\ 2\0\83\ 2\0\ 1|\ 4\0j   \0\83\0\0\ 1|\ 4\0j
35117 +\0\83\0\0\ 1t\ 4\0|\ 1\0j\v\0\83\0\0d\a\0\83\ 2\0}\ 5\0|\ 5\0j\f\0d\a\0\83\ 1\0\ 1t\ 4\0|\ 2\0j\v\0\83\0\0d\a\0\83\ 2\0}\ 6\0|\ 6\0j\f\0d\a\0\83\ 1\0\ 1|\ 4\0j\r\0d\ 6\0|\ 5\0\83\ 2\0\ 1|\ 4\0j\r\0d
35118 +\0|\ 6\0\83\ 2\0\ 1|\0\0j\ e\0t\ f\0|\ 4\0j
35119 +\0\83\ 2\0\ 1|\ 4\0j\r\0d
35120 +\0|\ 6\0d\v\0\17\83\ 2\0\ 1|\ 4\0j
35121 +\0\83\0\0\ 1d\0\0S(\r\0\0\0NRÅ\ 4\0\0i\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\b\0\0\0iÿÿÿÿid\0\0\0(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\10\0\0\0R[\0\0\0Rc\0\0\0RY\0\0\0Rÿ\ 1\0\0Rk\0\0\0R_\0\0\0R\9b\ 1\0\0R>\0\0\0Rj\0\0\0R\0\ 2\0\0t\15\0\0\0checkSMESHConsistencyR§\0\0\0Ry\ 1\0\0R\98\0\0\0R)\0\0\0R*\0\0\0(\a\0\0\0R  \0\0\0R\85\0\0\0R\84\0\0\0R\ 6\ 2\0\0\ 4\0\0\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\19\0\0\0testCheckSMESHConsistency¸\13\0\0s&\0\0\0\0\ 1\ f\ 1 \ 1=\ 1\e\ 1    \ 1\10\ 1\10\ 1
35122 +\ 1
35123 +\ 1\15\0\r\ 1\15\0\r\ 1\10\ 1\10\ 1\13\ 1\14\ 1
35124 +\ 1c\ 1\0\0\0\a\0\0\0
35125 +\0\0\0C\0\0\0s6\ 1\0\0t\0\0d\ 1\0d\ 2\0\83\ 2\0}\ 1\0|\ 1\0j\ 1\0t\ 2\0d\v\0g\ 1\0d\ 5\0\14d\ 5\0d\ 2\0\83\ 3\0\83\ 1\0\ 1|\ 1\0j\ 3\0t\ 4\0t\ 5\0d\ 6\0d\a\0d\ 2\0t\ 5\0d\a\0d\ 2\0d\b\0g\b\0\83\ 1\0t\ 4\0d\ 6\0d\ 5\0d   \0g\ 3\0\83\ 1\0\83\ 2\0\ 1|\ 1\0j\ 6\0\83\0\0\\ 5\0}\ 2\0}\ 3\0}\ 3\0}\ 3\0}\ 3\0t\a\0\83\0\0}\ 4\0|\ 4\0j\b\0d\ 6\0|\ 1\0\83\ 2\0\ 1|\ 4\0j\b\0d
35126 +\0|\ 2\0\83\ 2\0\ 1|\ 4\0j   \0\83\0\0\ 1t\ 4\0|\ 1\0j
35127 +\0\83\0\0d\a\0\83\ 2\0}\ 5\0|\ 5\0j\v\0d\a\0\83\ 1\0\ 1t\ 4\0|\ 2\0j
35128 +\0\83\0\0d\a\0\83\ 2\0}\ 6\0|\ 6\0j\v\0d\a\0\83\ 1\0\ 1|\ 4\0j\f\0d\ 6\0|\ 5\0\83\ 2\0\ 1|\ 4\0j\f\0d
35129 +\0|\ 6\0\83\ 2\0\ 1|\ 4\0j\r\0\83\0\0\ 1|\ 4\0j\ e\0\83\0\0\ 1d\0\0S(\f\0\0\0NRÅ\ 4\0\0i\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?i\ 4\0\0\0i\0\0\0\0i\ 1\0\0\0i\ 3\0\0\0i\b\0\0\0iÿÿÿÿ(\ 2\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ f\0\0\0R[\0\0\0Rc\0\0\0RY\0\0\0Rÿ\ 1\0\0Rk\0\0\0R_\0\0\0R\9b\ 1\0\0R>\0\0\0Rj\0\0\0R\0\ 2\0\0\0\0\0Ry\ 1\0\0R\98\0\0\0t\17\0\0\0clearNodeAndCellNumbersRÊ\ 4\0\0(\a\0\0\0R   \0\0\0R\85\0\0\0R\84\0\0\0R\ 6\ 2\0\0\ 4\0\0\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\e\0\0\0testClearNodeAndCellNumbersË\13\0\0s"\0\0\0\0\ 1\ f\ 1 \ 1=\ 1\e\ 1  \ 1\10\ 1\10\ 1
35130 +\ 1\15\0\r\ 1\15\0\r\ 1\10\ 1\10\ 1
35131 +\ 1
35132 +\ 1c\ 1\0\0\0\v\0\0\0\r\0\0\0C\0\0\0s1\ 2\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0}\ 3\0t\0\0d\ 3\0d\ 4\0d\ 5\0g\ 3\0\83\ 1\0}\ 4\0t\ 1\0\83\0\0}\ 5\0|\ 5\0j\ 2\0|\ 3\0|\ 4\0\83\ 2\0\ 1|\ 5\0j\ 3\0|\ 1\0\83\ 1\0\ 1t\ 4\0\83\0\0}\ 6\0|\ 6\0j\ 5\0|\ 5\0\83\ 1\0\ 1t\ 6\0d\ 3\0d\a\0d\a\0d\b\0d\a\0d\ 3\0g\ 6\0\83\ 1\0}\a\0t\ 6\0d\ 3\0d\ 3\0d\ 3\0d\ 6\0d     \0d\ 4\0d\ 5\0d
35133 +\0d\ 5\0d\ 4\0d\ 3\0d\ 3\0g\f\0\83\ 1\0}\b\0|\ 6\0j\a\0d\ 3\0|\a\0\83\ 2\0\ 1|\ 6\0j\a\0d\ 4\0|\b\0\83\ 2\0\ 1|\ 6\0j\b\0|\ 2\0d\ 5\0\83\ 2\0\ 1t        \0j
35134 +\0|\ 2\0\83\ 1\0}\ 6\0|\0\0j\v\0|\ 6\0j\f\0d\ 3\0\83\ 1\0d\0\0k       \0\83\ 1\0\ 1|\0\0j\v\0|\ 6\0j\f\0d\ 4\0\83\ 1\0d\0\0k     \0\83\ 1\0\ 1|\ 6\0j\a\0d\ 3\0d\0\0\83\ 2\0\ 1|\ 6\0j\a\0d\ 4\0d\0\0\83\ 2\0\ 1|\0\0j\v\0|\ 6\0j\f\0d\ 3\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\v\0|\ 6\0j\f\0d\ 4\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\ 6\0j\ e\0\83\0\0\0|\0\0j\v\0|        \0j\f\0d\ 3\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\v\0|     \0j\f\0d\ 4\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\ 6\0j\b\0|\ 2\0d\ 5\0\83\ 2\0\ 1t   \0j
35135 +\0|\ 2\0\83\ 1\0}
35136 +\0|\0\0j\v\0|
35137 +\0j\f\0d\ 3\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1|\0\0j\v\0|
35138 +\0j\f\0d\ 4\0\83\ 1\0d\0\0k\b\0\83\ 1\0\ 1d\0\0S(\v\0\0\0NR \ 2\0\0s\f\0\0\0Pyfile99.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0iþÿÿÿiÿÿÿÿi\ 4\0\0\0i\a\0\0\0(\ f\0\0\0RY\0\0\0\0\0\0Rc\0\0\0RB\0\0\0\0\0\0\0\0\0Rk\0\0\0\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R0\0\0\0R\9e\0\0\0R/\ 2\0\0Rq\0\0\0(\v\0\0\0R     \0\0\0\ 3\0\0R9\ 1\0\0RS\ 4\0\0RT\ 4\0\0R\83\0\0\0R\86\0\0\0t
35139 +\0\0\0famCellIdst
35140 +\0\0\0famNodeIdsR¶\ 4\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1e\0\0\0testCMeshSetFamilyFieldArrNullÜ\13\0\0s:\0\0\0\0\ 1\ 6\ 1\ 6\ 1\18\ 1\15\ 1        \0\10\0\r\ 1   \0\r\ 1\1e\ 10\ 1\10\ 1\10\ 1\10\ 1\ f\ 1\1c\ 1\1c\ 1\10\ 1\10\ 1\1c\ 1\1c\ 1\f\ 1\1c\ 1\1c\ 1\10\ 1\ f\ 1\1c\ 1\1c\ 1c\ 1\0\0\0\10\0\0\0\ 5\0\0\0C\0\0\0sq\ 2\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 4\0\83\ 1\0}\ 2\0t\0\0d\ 2\0d\ 3\0d\ 4\0g\ 3\0\83\ 1\0}\ 3\0t\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 2\0|\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\ 3\0d\ 6\0\83\ 1\0\ 1t\ 4\0\83\0\0}\ 5\0|\ 5\0j\ 5\0|\ 4\0\83\ 1\0\ 1t\ 6\0\83\0\0}\ 6\0d\a\0}\a\0t\a\0d\ 3\0d\ 5\0d\b\0g\ 3\0\83\ 1\0}\b\0|\b\0j\ 3\0|\a\0\83\ 1\0\ 1t\b\0t     \0\83\ 1\0}   \0|      \0j\ 5\0|\ 4\0\83\ 1\0\ 1d    \0}
35141 +\0|     \0j
35142 +\0d
35143 +\0d\ 3\0d\ 3\0\83\ 3\0\ 1|   \0j\ 3\0|
35144 +\0\83\ 1\0\ 1t\a\0d\v\0d\f\0d\r\0g\ 3\0\83\ 1\0}\v\0|    \0j\v\0|\v\0\83\ 1\0\ 1|\ 6\0j\f\0|      \0|\ 5\0d\ 2\0|\b\0\83\ 4\0\ 1|\ 5\0j\r\0|\ 1\0d\ 4\0\83\ 2\0\ 1|\ 6\0j\r\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\ e\0j\ f\0|\ 1\0\83\ 1\0}\ 5\0t\10\0j\ f\0|\ 1\0\83\ 1\0}\ 6\0|\0\0j\11\0t\12\0|\ 6\0t\ 6\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\ 6\0j\14\0\83\0\0|
35145 +\0\83\ 2\0\ 1|\0\0j\13\0t\15\0|\ 6\0\83\ 1\0d\ 3\0\83\ 2\0\ 1|\ 6\0d\ 2\0\19}\f\0|\f\0j\16\0t   \0d\ 2\0|\ 5\0\83\ 3\0\\ 2\0}\r\0}\ e\0|\0\0j\13\0|\ e\0j\14\0\83\0\0|\a\0\83\ 2\0\ 1|\0\0j\13\0|\r\0j\14\0\83\0\0|
35146 +\0\83\ 2\0\ 1|\0\0j\11\0|\r\0j\17\0|\v\0\83\ 1\0\83\ 1\0\ 1|\f\0j\18\0t     \0d\ 2\0|\ 5\0\83\ 3\0}\ f\0|\0\0j\11\0|\ f\0j\19\0\83\0\0j\17\0|\v\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ f\0j\1a\0\83\0\0|       \0j\1a\0\83\0\0\83\ 2\0\ 1|\0\0j\13\0|\ f\0j\e\0\83\0\0j\1c\0\83\0\0t\15\0|\v\0\83\ 1\0\83\ 2\0\ 1d\0\0S(\ e\0\0\0Ns\r\0\0\0Pyfile100.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0Rn\ 2\0\0t\ 3\0\0\0PFLi\ 5\0\0\0\ 3\0\0g333333ó?ie\0\0\0if\0\0\0ig\0\0\0(\1d\0\0\0RY\0\0\0\0\0\0Rc\0\0\0RB\0\0\0\0\0\0\0\0\0R#\ 3\0\0Rk\0\0\0R&\ 3\0\0R\13\ 1\0\0\0\0\0R{\ 1\0\0R\89\ 1\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R"\ 3\0\0R0\0\0\0Rt\0\0\0R+\0\0\0RC\0\0\0Ry\0\0\0R~\ 1\0\0R\7f\ 1\0\0R\97\ 1\0\0R)\ 1\0\0\0\0\0\0\0\0\0\0\0(\10\0\0\0R        \0\0\0R9\ 1\0\0RS\ 4\0\0RT\ 4\0\0\ 2\0\0R\86\0\0\0Rm\ 1\0\0t\a\0\0\0pflNameR\83\ 1\0\0R\b\0\0\0Rg\ 3\0\0\ 1\0\0\0\0\0t\ 5\0\0\0ftestR2\ 2\0\0t\ 6\0\0\0ftest2(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt \0\0\0testAppendFieldProfileOnIntFieldø\13\0\0sJ\0\0\0\0\ 1\ 6\ 1\18\ 1\15\ 1        \0\10\0\r\ 1   \ 1\r\ 2     \ 1\ 6\ 1\15\0\r\ 1\f\0\r\ 1\ 6\ 1\13\0\r\ 1\15\0\r\ 1\16\ 2\10\ 1\10\ 2\ f\ 1\ f\ 1\16\ 1\16\ 1\16\ 1
35147 +\ 1\e\ 1\16\ 1\16\ 1\16\ 1\15\ 1\1c\ 1\1c\ 1"\ 1c\ 1\0\0\0\15\0\0\0\19\0\0\0C\0\0\0\ 6\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0dE\0dF\0dG\0g\ 3\0\83\ 1\0}\ 4\0t\ 2\0d\f\0d\ 4\0\83\ 2\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 5\0j\ 4\0\83\0\0\ 1|\ 5\0j\ 5\0t\ 6\0d\r\0d\ 5\0d\ 4\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\ 3\0d\ e\0d       \0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\b\0d\a\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d
35148 +\0d\v\0d\ f\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\10\0d\11\0d\12\0d\13\0g\ 4\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\14\0d\15\0d\16\0d\17\0g\ 4\0\83\ 2\0\ 1|\ 5\0|\ 3\0d\r\0<|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\ 1\0d\v\0d\ f\0d\18\0d\19\0d\10\0d\11\0g\ 6\0\83\ 1\0}\ 6\0t        \0t
35149 +\0\83\ 1\0}\a\0|\a\0j\v\0|\ 6\0\83\ 1\0\ 1|\a\0j\f\0|\ 5\0\83\ 1\0\ 1|\a\0j\r\0|\ 2\0\83\ 1\0\ 1|\a\0j\ e\0d\1a\0d\b\0d\a\0\83\ 3\0\ 1|\a\0j\ f\0\83\0\0}\b\0t\10\0\83\0\0}   \0|      \0j\11\0|\a\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1|\ 6\0d\e\0\17}
35150 +\0|\a\0j\v\0|
35151 +\0\83\ 1\0\ 1|\a\0j\ e\0d\1c\0d\ 6\0d
35152 +\0\83\ 3\0\ 1t\12\0\83\0\0}   \0|      \0j\13\0|\a\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1|\a\0j\ f\0\83\0\0}\v\0t\14\0j\15\0|\ 1\0\83\ 1\0}\ 3\0t\12\0|\ 1\0|\ 2\0d\b\0d\a\0\83\ 4\0}\f\0|\f\0j\16\0|\ 3\0\83\ 1\0}\r\0|\0\0j\17\0|\b\0j\18\0|\r\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1t\12\0|\ 1\0|\ 2\0d\ 6\0d
35153 +\0\83\ 4\0}\f\0|\f\0j\16\0|\ 3\0\83\ 1\0}\ e\0|\0\0j\17\0|\v\0j\18\0|\ e\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1t\10\0|\ 1\0|\ 2\0\83\ 2\0}\ f\0|\0\0j\17\0|\v\0j\18\0|\ f\0j\16\0d\ 6\0d
35154 +\0|\ 3\0\83\ 3\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1t  \0t\19\0\83\ 1\0}\10\0t\ 1\0d\1e\0d\1f\0\0g\ 3\0\83\ 1\0}
35155 +\0|
35156 +\0j\1a\0d\r\0d!\0\83\ 2\0\ 1|\10\0j\v\0|
35157 +\0\83\ 1\0\ 1|\10\0j\f\0|\ 5\0\83\ 1\0\ 1|\10\0j\ e\0d"\0d#\0d$\0\83\ 3\0\ 1|\10\0j\r\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\12\0\83\0\0}      \0|      \0j\13\0|\10\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1t\14\0j\15\0|\ 1\0\83\ 1\0}\ 3\0t\12\0|\ 1\0|\ 2\0d#\0d$\0\83\ 4\0}\f\0|\0\0j\17\0|\10\0j\18\0|\f\0j\16\0|\ 3\0\83\ 1\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1t\10\0|\ 1\0|\ 2\0\83\ 2\0}\ f\0|\0\0j\17\0|\10\0j\18\0|\ f\0j\16\0d#\0d$\0|\ 3\0\83\ 3\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1t      \0t\e\0\83\ 1\0}\11\0|\11\0j\f\0|\ 5\0\83\ 1\0\ 1t\ 1\0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d      \0d\b\0d\a\0d\ 6\0d
35158 +\0d\v\0d\ f\0d\18\0d\19\0d%\0d&\0d'\0d(\0d)\0d*\0g\14\0\83\ 1\0}\12\0|\11\0j\v\0|\12\0\83\ 1\0\ 1|\11\0j\ e\0d+\0d\ 4\0d\ 3\0\83\ 3\0\ 1|\11\0j\r\0|\ 2\0\83\ 1\0\ 1|\11\0j\1c\0\83\0\0\ 1|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\12\0\83\0\0\0|      \0j\13\0|\11\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1t\14\0j\15\0|\ 1\0\83\ 1\0}\ 3\0t\12\0|\ 1\0|\ 2\0d\ 4\0d\ 3\0\83\ 4\0}\f\0|\0\0j\17\0|\11\0j\18\0|\f\0j\16\0|\ 3\0\83\ 1\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1t        \0t\1d\0\83\ 1\0}\13\0|\13\0j\f\0|\ 5\0\83\ 1\0\ 1|\13\0j\r\0|\ 2\0\83\ 1\0\ 1|\13\0j\1e\0t\ 6\0d,\0d,\0d-\0d,\0d-\0d-\0g\ 6\0d.\0d.\0d/\0d/\0d0\0d0\0d1\0d1\0d+\0d+\0g
35159 +\0d/\0d0\0d.\0d2\0d3\0g\ 5\0\83\ 4\0\ 1|\13\0j\1e\0t\a\0d,\0d,\0d-\0d,\0d-\0d-\0d,\0d-\0g\b\0d0\0d1\0d4\0d5\0g\ 4\0d5\0d0\0g\ 2\0\83\ 4\0\ 1|\13\0j\ e\0d6\0d\ e\0d   \0\83\ 3\0\ 1t\ 1\0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d\v\0d\ f\0d\18\0d\19\0d%\0d7\0d8\0d9\0d#\0d$\0d:\0d;\0d<\0d=\0d>\0d?\0d@\0dA\0dB\0g\18\0\83\ 1\0}\14\0|\14\0j\1a\0d\r\0dC\0\83\ 2\0\ 1|\13\0j\v\0|\14\0\83\ 1\0\ 1|\13\0j\1c\0\83\0\0\ 1|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\12\0\83\0\0\0|      \0j\13\0|\13\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1t\14\0j\15\0|\ 1\0\83\ 1\0}\ 3\0t\12\0|\ 1\0|\ 2\0d\ e\0d      \0\83\ 4\0}\f\0|\0\0j\17\0|\13\0j\18\0|\f\0j\16\0|\ 3\0\83\ 1\0d\1d\0d\1d\0\83\ 3\0\83\ 1\0\ 1dD\0S(H\0\0\0s\99\0\0\0Check for all spatial discretization of field (cells,nodes,elno,gauss) for double field that all is OK. Here no profile and only top level is considered.s\r\0\0\0Pyfile101.medt\ 6\0\0\0field1i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0i\ 5\0\0\0i    \0\0\0i
35160 +\0\0\0\ 2\0\0i\0\0\0\0i\ 4\0\0\0i\v\0\0\0id\0\0\0ie\0\0\0if\0\0\0ig\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0i\f\0\0\0i\r\0\0\0g\0\0\0\0\0\0\0@iè\ 3\0\0g\0\0\0\0\0\0\b@g\11ê-\81\99\97q=iÈ\0\0\0\0\0\0\0\0\0t\ 4\0\0\0tutug\0\0\0\0\0\06@i\17\0\0\0i\18\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\9a\99\99\99\99\99¹?g\9a\99\99\99\99\99É?g333333Ó?g\9a\99\99\99\99\99Ù?g\9a\99\99\99\99\99©?gffffffÖ?g333333ã?gffffffæ?g\0\0\0\0\0\0Ð?i\14\0\0\0i\15\0\0\0i\16\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i-\0\0\0i.\0\0\0i7\0\0\0i8\0\0\0\ 3\0\0N(\ 3\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 3\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0(\ 3\0\0\0i\ 5\0\0\0i    \0\0\0i
35161 +\0\0\0(\1f\0\0\0R>\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0R\v\0\0\0Rw\ 1\0\0R\13\ 1\0\0R{\ 1\0\0\0\0\0RB\0\0\0\0\0\0Rq\0\0\0\0\0\0RY\ 1\0\0\0\0\0R%\ 1\0\0R'\0\0\0R(\0\0\0R5\ 4\0\0R0\0\0\0R1\0\0\0R\1c\ 1\0\0R\97\0\0\0R\ f\ 1\0\0Rd\0\0\0R\a\ 1\0\0t\1a\0\0\0setGaussLocalizationOnType(\15\0\0\0R    \0\0\0R9\ 1\0\0Rg\ 3\0\0R\86\0\0\0R\ 3\ 2\0\0R\83\0\0\0R\17\ 3\0\0R\b\0\0\0\0\0\0\0\0\0R\ 2\ 3\0\0\0\0\0\0\0\0t\ 5\0\0\0ftst0t\ 5\0\0\0ftst1Rm\ 1\0\0\0\0\0R
35162 +\ 1\0\0t\ 4\0\0\0arr3R\f\ 1\0\0t\ 4\0\0\0arr4(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileFieldEasyField1\1c\14\0\0\0\0\0\0\ 3\ 6\ 1\ 6\ 1     \ 1\15\ 1\ f\0\r\ 1
35163 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1
35164 +\ 1\10\ 1\1e\ 1\f\0\r\0\r\ 1\r\0\13\ 1\f\ 1      \0\r\ 1\10\ 1
35165 +\0\r\ 1\13\0  \0\r\ 1\10\ 1\f\ 2\ f\ 1\15\ 1\ f\ 1\1c\ 1\15\ 1\ f\ 1\1c\ 1\ f\ 1+\ 2\f\0\15\0\10\0\r\0\r\0\13\ 1\r\ 1\10\ 1       \0\r\0\10\ 2\ f\ 1\15\ 1%\ 1\ f\ 1+\ 2\f\0\r\0H\0\r\0\13\ 1\r\0
35166 +\ 1\10\0    \0\r\0\10\ 2\ f\ 1\15\ 1%\ 2\f\0\r\0\r\ 1U\ 1@\0\13\ 1T\0\10\0\r\ 1
35167 +\ 1\10\0    \0\r\0\10\ 2\ f\ 1\15\ 1%\ 1c\ 1\0\0\0\15\0\0\0\19\0\0\0C\0\0\0\ 6\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0dE\0dF\0dG\0g\ 3\0\83\ 1\0}\ 4\0t\ 2\0d\f\0d\ 4\0\83\ 2\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 5\0j\ 4\0\83\0\0\ 1|\ 5\0j\ 5\0t\ 6\0d\r\0d\ 5\0d\ 4\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\ 3\0d\ e\0d      \0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\b\0d\a\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d
35168 +\0d\v\0d\ f\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\10\0d\11\0d\12\0d\13\0g\ 4\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\14\0d\15\0d\16\0d\17\0g\ 4\0\83\ 2\0\ 1|\ 5\0|\ 3\0d\r\0<|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t      \0d\v\0d\ f\0d\18\0d\19\0d\10\0d\11\0g\ 6\0\83\ 1\0}\ 6\0t
35169 +\0t\v\0\83\ 1\0}\a\0|\a\0j\f\0|\ 6\0\83\ 1\0\ 1|\a\0j\r\0|\ 5\0\83\ 1\0\ 1|\a\0j\ e\0|\ 2\0\83\ 1\0\ 1|\a\0j\ f\0d\1a\0d\b\0d\a\0\83\ 3\0\ 1|\a\0j\10\0\83\0\0}\b\0t\11\0\83\0\0}        \0|      \0j\12\0|\a\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1|\ 6\0d\e\0\17}
35170 +\0|\a\0j\f\0|
35171 +\0\83\ 1\0\ 1|\a\0j\ f\0d\1c\0d\ 6\0d
35172 +\0\83\ 3\0\ 1t\13\0\83\0\0}   \0|      \0j\14\0|\a\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1|\a\0j\10\0\83\0\0}\v\0t\15\0j\16\0|\ 1\0\83\ 1\0}\ 3\0t\13\0|\ 1\0|\ 2\0d\b\0d\a\0\83\ 4\0}\f\0|\f\0j\17\0|\ 3\0\83\ 1\0}\r\0|\0\0j\18\0|\b\0j\19\0|\r\0d\1d\0d\r\0\83\ 3\0\83\ 1\0\ 1t\13\0|\ 1\0|\ 2\0d\ 6\0d
35173 +\0\83\ 4\0}\f\0|\f\0j\17\0|\ 3\0\83\ 1\0}\ e\0|\0\0j\18\0|\v\0j\19\0|\ e\0d\1d\0d\r\0\83\ 3\0\83\ 1\0\ 1t\11\0|\ 1\0|\ 2\0\83\ 2\0}\ f\0|\0\0j\18\0|\v\0j\19\0|\ f\0j\17\0d\ 6\0d
35174 +\0|\ 3\0\83\ 3\0d\1d\0d\r\0\83\ 3\0\83\ 1\0\ 1t
35175 +\0t\1a\0\83\ 1\0}\10\0t    \0d\1e\0d\1f\0\0g\ 3\0\83\ 1\0}
35176 +\0|
35177 +\0j\e\0d\r\0d!\0\83\ 2\0\ 1|\10\0j\f\0|
35178 +\0\83\ 1\0\ 1|\10\0j\r\0|\ 5\0\83\ 1\0\ 1|\10\0j\ f\0d"\0d#\0d$\0\83\ 3\0\ 1|\10\0j\ e\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\13\0\83\0\0}      \0|      \0j\14\0|\10\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1t\15\0j\16\0|\ 1\0\83\ 1\0}\ 3\0t\13\0|\ 1\0|\ 2\0d#\0d$\0\83\ 4\0}\f\0|\0\0j\18\0|\10\0j\19\0|\f\0j\17\0|\ 3\0\83\ 1\0d\1d\0d\r\0\83\ 3\0\83\ 1\0\ 1t\11\0|\ 1\0|\ 2\0\83\ 2\0}\ f\0|\0\0j\18\0|\10\0j\19\0|\ f\0j\17\0d#\0d$\0|\ 3\0\83\ 3\0d\1d\0d\r\0\83\ 3\0\83\ 1\0\ 1t
35179 +\0t\1c\0\83\ 1\0}\11\0|\11\0j\r\0|\ 5\0\83\ 1\0\ 1t       \0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d       \0d\b\0d\a\0d\ 6\0d
35180 +\0d\v\0d\ f\0d\18\0d\19\0d%\0d&\0d'\0d(\0d)\0d*\0g\14\0\83\ 1\0}\12\0|\11\0j\f\0|\12\0\83\ 1\0\ 1|\11\0j\ f\0d+\0d\ 4\0d\ 3\0\83\ 3\0\ 1|\11\0j\ e\0|\ 2\0\83\ 1\0\ 1|\11\0j\1d\0\83\0\0\ 1|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\13\0\83\0\0\0|      \0j\14\0|\11\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1t\15\0j\16\0|\ 1\0\83\ 1\0}\ 3\0t\13\0|\ 1\0|\ 2\0d\ 4\0d\ 3\0\83\ 4\0}\f\0|\0\0j\18\0|\11\0j\19\0|\f\0j\17\0|\ 3\0\83\ 1\0d\1d\0d\r\0\83\ 3\0\83\ 1\0\ 1t
35181 +\0t\1e\0\83\ 1\0}\13\0|\13\0j\r\0|\ 5\0\83\ 1\0\ 1|\13\0j\ e\0|\ 2\0\83\ 1\0\ 1|\13\0j\1f\0t\ 6\0d,\0d,\0d-\0d,\0d-\0d-\0g\ 6\0d.\0d.\0d/\0d/\0d0\0d0\0d1\0d1\0d+\0d+\0g
35182 +\0d/\0d0\0d.\0d2\0d3\0g\ 5\0\83\ 4\0\ 1|\13\0j\1f\0t\a\0d,\0d,\0d-\0d,\0d-\0d-\0d,\0d-\0g\b\0d0\0d1\0d4\0d5\0g\ 4\0d5\0d0\0g\ 2\0\83\ 4\0\ 1|\13\0j\ f\0d6\0d\ e\0d   \0\83\ 3\0\ 1t  \0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d\v\0d\ f\0d\18\0d\19\0d%\0d7\0d8\0d9\0d#\0d$\0d:\0d;\0d<\0d=\0d>\0d?\0d@\0dA\0dB\0g\18\0\83\ 1\0}\14\0|\14\0j\e\0d\r\0dC\0\83\ 2\0\ 1|\13\0j\f\0|\14\0\83\ 1\0\ 1|\13\0j\1d\0\83\0\0\ 1|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\13\0\83\0\0}        \0|      \0j\14\0|\13\0\83\ 1\0\ 1|    \0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1t\15\0j\16\0|\ 1\0\83\ 1\0}\ 3\0t\13\0|\ 1\0|\ 2\0d\ e\0d      \0\83\ 4\0}\f\0|\0\0j\18\0|\13\0j\19\0|\f\0j\17\0|\ 3\0\83\ 1\0d\1d\0d\r\0\83\ 3\0\83\ 1\0\ 1dD\0S(H\0\0\0\0\0\0Same thantestMEDFileFieldEasyField1 except that here intfields are considered.
35183 +        Check for all spatial discretization of field (cells,nodes,elno,gauss) for int field that all is OK. Here no profile and only top level is considered.s\r\0\0\0Pyfile102.medRÖ\ 4\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0i\ 5\0\0\0i      \0\0\0i
35184 +\0\0\0\ 2\0\0i\0\0\0\0i\ 4\0\0\0i\v\0\0\0id\0\0\0ie\0\0\0if\0\0\0ig\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0i\f\0\0\0i\r\0\0\0g\0\0\0\0\0\0\0@iè\ 3\0\0g\0\0\0\0\0\0\b@g\11ê-\81\99\97q=iÈ\0\0\0\0\0\0\0\0\0\ 4\0\0g\0\0\0\0\0\06@i\17\0\0\0i\18\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\9a\99\99\99\99\99¹?g\9a\99\99\99\99\99É?g333333Ó?g\9a\99\99\99\99\99Ù?g\9a\99\99\99\99\99©?gffffffÖ?g333333ã?gffffffæ?g\0\0\0\0\0\0Ð?i\14\0\0\0i\15\0\0\0i\16\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i-\0\0\0i.\0\0\0i7\0\0\0i8\0\0\0\ 3\0\0N(\ 3\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 3\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0(\ 3\0\0\0i\ 5\0\0\0i        \0\0\0i
35185 +\0\0\0\0\0\0R>\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0R\v\0\0\0Rk\0\0\0R&\ 3\0\0R\13\ 1\0\0R{\ 1\0\0\0\0\0RB\0\0\0\0\0\0Rq\0\0\0R#\ 3\0\0RY\ 1\0\0R\1e\ 3\0\0R%\ 1\0\0R'\0\0\0R(\0\0\0R5\ 4\0\0R0\0\0\0R1\0\0\0R\1c\ 1\0\0R\97\0\0\0R\ f\ 1\0\0Rd\0\0\0R\a\ 1\0\0\ 4\0\0(\15\0\0\0\0\0\0R9\ 1\0\0Rg\ 3\0\0R\86\0\0\0R\ 3\ 2\0\0R\83\0\0\0R\17\ 3\0\0R\b\0\0\0\0\0\0\0\0\0R\ 2\ 3\0\0\0\0\0\0\0\0\ 4\0\0\ 4\0\0Rm\ 1\0\0\0\0\0R
35186 +\ 1\0\0\ 4\0\0R\f\ 1\0\0\ 4\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileFieldEasyField2a\14\0\0\0\0\0\0\ 4\ 6\ 1\ 6\ 1     \ 1\15\ 1\ f\0\r\ 1
35187 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1
35188 +\ 1\10\ 1\1e\ 1\f\0\r\0\r\ 1\r\0\13\ 1\f\ 1      \0\r\ 1\10\ 1
35189 +\0\r\ 1\13\0  \0\r\ 1\10\ 1\f\ 2\ f\ 1\15\ 1\ f\ 1\1c\ 1\15\ 1\ f\ 1\1c\ 1\ f\ 1+\ 2\f\0\15\0\10\0\r\0\r\0\13\ 1\r\ 1\10\ 1       \0\r\0\10\ 2\ f\ 1\15\ 1%\ 1\ f\ 1+\ 2\f\0\r\0H\0\r\0\13\ 1\r\0
35190 +\ 1\10\0    \0\r\0\10\ 2\ f\ 1\15\ 1%\ 2\f\0\r\0\r\ 1U\ 1@\0\13\ 1T\0\10\0\r\ 1
35191 +\ 1\10\0    \0\r\0\10\ 2\ f\ 1\15\ 1%\ 1c\ 1\0\0\0\ e\0\0\0\19\0\0\0C\0\0\0s   \ 6\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0d@\0dA\0dB\0g\ 3\0\83\ 1\0}\ 4\0t\ 2\0d\f\0d\ 4\0\83\ 2\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 5\0j\ 4\0\83\0\0\ 1|\ 5\0j\ 5\0t\ 6\0d\r\0d\ 5\0d\ 4\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\ 3\0d\ e\0d    \0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\b\0d\a\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d
35192 +\0d\v\0d\ f\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\10\0d\11\0d\12\0d\13\0g\ 4\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\14\0d\15\0d\16\0d\17\0g\ 4\0\83\ 2\0\ 1|\ 5\0|\ 3\0d\18\0<t\ 2\0d\f\0d\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 6\0j\ 4\0\83\0\0\ 1|\ 6\0j\ 5\0t\b\0d\ 3\0d\ 4\0\0d\r\0g\ 4\0\83\ 2\0\ 1|\ 6\0j\ 5\0t\b\0d\a\0d\b\0d\ 3\0d\ 4\0g\ 4\0\83\ 2\0\ 1|\ 6\0|\ 3\0d\r\0<|\ 3\0j   \0|\ 1\0d\ 4\0\83\ 2\0\ 1t
35193 +\0t\v\0\83\ 1\0}\a\0|\a\0j\f\0|\ 2\0\83\ 1\0\ 1|\a\0j\r\0t\ 1\0dC\0dD\0g\ 2\0\83\ 1\0\83\ 1\0\ 1|\a\0j\ e\0|\ 3\0d\r\0\19\83\ 1\0\ 1|\a\0j\ f\0d\19\0d\ 5\0d\ 4\0\83\ 3\0\ 1t\10\0\83\0\0}\b\0|\b\0j\11\0|\a\0\83\ 1\0\ 1|\b\0\0|\ 1\0d\r\0\83\ 2\0\ 1t\12\0j\13\0|\ 1\0\83\ 1\0}\ 3\0t\10\0|\ 1\0|\ 2\0d\ 5\0d\ 4\0\83\ 4\0}\b\0|\0\0j\14\0|\a\0j\15\0|\b\0j\16\0|\ 3\0\83\ 1\0d\1a\0d\1a\0\83\ 3\0\83\ 1\0\ 1t
35194 +\0t\v\0\83\ 1\0}\a\0|\a\0j\f\0|\ 2\0\83\ 1\0\ 1|\a\0j\r\0t\ 1\0dE\0dF\0dG\0dH\0dI\0dJ\0g\ 6\0\83\ 1\0\83\ 1\0\ 1|\a\0j\ e\0|\ 3\0d\18\0\19\83\ 1\0\ 1|\a\0j\ f\0d\e\0d\ 3\0d\ e\0\83\ 3\0\ 1|\a\0j\17\0\83\0\0\ 1|\ 3\0\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\10\0\83\0\0}\b\0|\b\0j\11\0|\a\0\83\ 1\0\ 1|\b\0j   \0|\ 1\0d\r\0\83\ 2\0\ 1t\12\0j\13\0|\ 1\0\83\ 1\0}\ 3\0t\10\0|\ 1\0|\ 2\0d\ 3\0d\ e\0\83\ 4\0}\b\0|\0\0j\14\0|\a\0j\15\0|\b\0j\16\0|\ 3\0\83\ 1\0d\1a\0d\1a\0\83\ 3\0\83\ 1\0\ 1t
35195 +\0t\18\0\83\ 1\0}       \0|      \0j\ e\0|\ 3\0d\18\0\19\83\ 1\0\ 1t\ 1\0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d      \0d\b\0d\a\0d\ 6\0d
35196 +\0d\v\0d\ f\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0g\14\0\83\ 1\0}
35197 +\0|     \0j\r\0|
35198 +\0\83\ 1\0\ 1\0j\ f\0d$\0d\ 4\0d\ 3\0\83\ 3\0\ 1|      \0j\f\0|\ 2\0\83\ 1\0\ 1|    \0j\17\0\83\0\0\ 1|\ 3\0j    \0|\ 1\0d\ 4\0\83\ 2\0\ 1t\10\0\83\0\0}\v\0|\v\0j\11\0|     \0\83\ 1\0\ 1|\v\0j       \0|\ 1\0d\r\0\83\ 2\0\ 1t\12\0j\13\0|\ 1\0\83\ 1\0}\ 3\0t\10\0|\ 1\0|\ 2\0d\ 4\0d\ 3\0\83\ 4\0}\b\0|\0\0j\14\0|  \0j\15\0|\b\0j\16\0|\ 3\0\83\ 1\0d\1a\0d\1a\0\83\ 3\0\83\ 1\0\ 1t
35199 +\0t\19\0\83\ 1\0}\f\0|\f\0j\ e\0|\ 3\0d\18\0\19\83\ 1\0\ 1|\f\0j\f\0|\ 2\0\83\ 1\0\ 1|\f\0j\1a\0t\ 6\0d%\0d%\0d&\0d%\0d&\0d&\0g\ 6\0d'\0d'\0d(\0d(\0d)\0d)\0d*\0d*\0d$\0d$\0g
35200 +\0d(\0d)\0d'\0d+\0d,\0g\ 5\0\83\ 4\0\ 1|\f\0j\1a\0t\a\0d%\0d%\0d&\0d%\0d&\0d&\0d%\0d&\0g\b\0d)\0d*\0d-\0d.\0g\ 4\0d.\0d)\0g\ 2\0\83\ 4\0\ 1|\f\0j\ f\0d/\0d\ e\0d   \0\83\ 3\0\ 1t\ 1\0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d\v\0d\ f\0d\1c\0d\1d\0d\1e\0d0\0d1\0d2\0d3\0d4\0d5\0d6\0d7\0d8\0d9\0d:\0d;\0d<\0d=\0g\18\0\83\ 1\0}\r\0|\r\0j\e\0d\r\0d>\0\83\ 2\0\ 1|\f\0j\r\0|\r\0\83\ 1\0\ 1|\f\0j\17\0\83\0\0\ 1|\ 3\0j    \0|\ 1\0d\ 4\0\83\ 2\0\ 1t\10\0\83\0\0}\v\0|\v\0j\11\0|\f\0\83\ 1\0\ 1|\v\0j   \0|\ 1\0d\r\0\83\ 2\0\ 1t\12\0j\13\0|\ 1\0\83\ 1\0}\ 3\0t\10\0|\ 1\0|\ 2\0d\ e\0\0\83\ 4\0}\b\0|\0\0j\14\0|\f\0j\15\0|\b\0j\16\0|\ 3\0\83\ 1\0d\1a\0d\1a\0\83\ 3\0\83\ 1\0\ 1d?\0S(K\0\0\0s\9f\0\0\0Here a multi level mesh. And field on cells lying on different level of this mesh. Show how "field" method deal with that. Here on field double are considered.s\r\0\0\0Pyfile103.medRÖ\ 4\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0i\ 5\0\0\0i    \0\0\0i
35201 +\0\0\0\ 2\0\0i\0\0\0\0i\ 4\0\0\0i\v\0\0\0id\0\0\0ie\0\0\0if\0\0\0ig\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0iÿÿÿÿg\0\0\0\0\0\0\10@g\11ê-\81\99\97q=g\0\0\0\0\0\00@i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\9a\99\99\99\99\99¹?g\9a\99\99\99\99\99É?g333333Ó?g\9a\99\99\99\99\99Ù?g\9a\99\99\99\99\99©?gffffffÖ?g333333ã?gffffffæ?g\0\0\0\0\0\0Ð?i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i-\0\0\0i.\0\0\0i7\0\0\0i8\0\0\0\ 3\0\0N(\ 3\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 3\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0(\ 3\0\0\0i\ 5\0\0\0i     \0\0\0i
35202 +\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\1c\0\0\0R>\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0\ 3\0\0R\v\0\0\0Rw\ 1\0\0R\13\ 1\0\0RB\0\0\0R{\ 1\0\0\0\0\0\0\0\0\0\0\0R%\ 1\0\0R'\0\0\0R(\0\0\0R0\0\0\0R1\0\0\0R5\ 4\0\0Rd\0\0\0R\ f\ 1\0\0R\a\ 1\0\0\ 4\0\0R\97\0\0\0(\ e\0\0\0R     \0\0\0R9\ 1\0\0Rg\ 3\0\0R\86\0\0\0R\ 3\ 2\0\0R\83\0\0\0\0\0\0\0\0\0\0\0\0R
35203 +\ 1\0\0\ 4\0\0\0\0\0R\f\ 1\0\0\ 4\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileFieldEasyField3§\14\0\0s\9a\0\0\0\0\ 2\ 6\ 1\ 6\ 1        \ 1\15\ 1\ f\0\r\ 1
35204 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1
35205 +\ 1\ f\0\r\ 1
35206 +\ 1\1c\ 1\1c\ 1
35207 +\ 1\10\ 2\f\0\r\0\19\0\11\0\13\ 1  \0\r\0\10\ 2\ f\0\15\ 1%\ 2\f\0\r\0%\ 1\11\ 1\13\ 1
35208 +\ 1\10\ 1    \0\r\0\10\ 2\ f\0\15\ 1%\ 2\f\ 1\11\ 1H\0\r\0\13\ 1\r\0
35209 +\ 1\10\0    \0\r\0\10\ 2\ f\0\15\ 1%\ 2\f\ 1\11\ 1\r\ 1U\ 1@\0\13\ 1T\0\10\0\r\ 1
35210 +\ 1\10\0    \0\r\0\10\ 1\ f\0\15\ 1%\ 1c\ 1\0\0\0\ e\0\0\0\19\0\0\0C\0\0\0s   \ 6\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0d@\0dA\0dB\0g\ 3\0\83\ 1\0}\ 4\0t\ 2\0d\f\0d\ 4\0\83\ 2\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 5\0j\ 4\0\83\0\0\ 1|\ 5\0j\ 5\0t\ 6\0d\r\0d\ 5\0d\ 4\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\ 3\0d\ e\0d    \0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\b\0d\a\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d
35211 +\0d\v\0d\ f\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\10\0d\11\0d\12\0d\13\0g\ 4\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\14\0d\15\0d\16\0d\17\0g\ 4\0\83\ 2\0\ 1|\ 5\0|\ 3\0d\18\0<t\ 2\0d\f\0d\ 3\0\83\ 2\0}\ 6\0|\ 6\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 6\0j\ 4\0\83\0\0\ 1|\ 6\0j\ 5\0t\b\0d\ 3\0d\ 4\0\0d\r\0g\ 4\0\83\ 2\0\ 1|\ 6\0j\ 5\0t\b\0d\a\0d\b\0d\ 3\0d\ 4\0g\ 4\0\83\ 2\0\ 1|\ 6\0|\ 3\0d\r\0<|\ 3\0j   \0|\ 1\0d\ 4\0\83\ 2\0\ 1t
35212 +\0t\v\0\83\ 1\0}\a\0|\a\0j\f\0|\ 2\0\83\ 1\0\ 1|\a\0j\r\0t\ e\0dC\0dD\0g\ 2\0\83\ 1\0\83\ 1\0\ 1|\a\0j\ f\0|\ 3\0d\r\0\19\83\ 1\0\ 1|\a\0j\10\0d\19\0d\ 5\0d\ 4\0\83\ 3\0\ 1t\11\0\83\0\0}\b\0|\b\0j\12\0|\a\0\83\ 1\0\ 1|\b\0\0|\ 1\0d\r\0\83\ 2\0\ 1t\13\0j\14\0|\ 1\0\83\ 1\0}\ 3\0t\11\0|\ 1\0|\ 2\0d\ 5\0d\ 4\0\83\ 4\0}\b\0|\0\0j\15\0|\a\0j\16\0|\b\0j\17\0|\ 3\0\83\ 1\0d\1a\0d\r\0\83\ 3\0\83\ 1\0\ 1t
35213 +\0t\v\0\83\ 1\0}\a\0|\a\0j\f\0|\ 2\0\83\ 1\0\ 1|\a\0j\r\0t\ e\0dE\0dF\0dG\0dH\0dI\0dJ\0g\ 6\0\83\ 1\0\83\ 1\0\ 1|\a\0j\ f\0|\ 3\0d\18\0\19\83\ 1\0\ 1|\a\0j\10\0d\e\0d\ 3\0d\ e\0\83\ 3\0\ 1|\a\0j\18\0\83\0\0\ 1|\ 3\0\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\11\0\83\0\0}\b\0|\b\0j\12\0|\a\0\83\ 1\0\ 1|\b\0j   \0|\ 1\0d\r\0\83\ 2\0\ 1t\13\0j\14\0|\ 1\0\83\ 1\0}\ 3\0t\11\0|\ 1\0|\ 2\0d\ 3\0d\ e\0\83\ 4\0}\b\0|\0\0j\15\0|\a\0j\16\0|\b\0j\17\0|\ 3\0\83\ 1\0d\1a\0d\r\0\83\ 3\0\83\ 1\0\ 1t
35214 +\0t\19\0\83\ 1\0}       \0|      \0j\ f\0|\ 3\0d\18\0\19\83\ 1\0\ 1t\ e\0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d      \0d\b\0d\a\0d\ 6\0d
35215 +\0d\v\0d\ f\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0g\14\0\83\ 1\0}
35216 +\0|     \0j\r\0|
35217 +\0\83\ 1\0\ 1\0j\10\0d$\0d\ 4\0d\ 3\0\83\ 3\0\ 1|      \0j\f\0|\ 2\0\83\ 1\0\ 1|    \0j\18\0\83\0\0\ 1|\ 3\0j    \0|\ 1\0d\ 4\0\83\ 2\0\ 1t\11\0\83\0\0}\v\0|\v\0j\12\0|     \0\83\ 1\0\ 1|\v\0j       \0|\ 1\0d\r\0\83\ 2\0\ 1t\13\0j\14\0|\ 1\0\83\ 1\0}\ 3\0t\11\0|\ 1\0|\ 2\0d\ 4\0d\ 3\0\83\ 4\0}\b\0|\0\0j\15\0|  \0j\16\0|\b\0j\17\0|\ 3\0\83\ 1\0d\1a\0d\r\0\83\ 3\0\83\ 1\0\ 1t
35218 +\0t\1a\0\83\ 1\0}\f\0|\f\0j\ f\0|\ 3\0d\18\0\19\83\ 1\0\ 1|\f\0j\f\0|\ 2\0\83\ 1\0\ 1|\f\0j\e\0t\ 6\0d%\0d%\0d&\0d%\0d&\0d&\0g\ 6\0d'\0d'\0d(\0d(\0d)\0d)\0d*\0d*\0d$\0d$\0g
35219 +\0d(\0d)\0d'\0d+\0d,\0g\ 5\0\83\ 4\0\ 1|\f\0j\e\0t\a\0d%\0d%\0d&\0d%\0d&\0d&\0d%\0d&\0g\b\0d)\0d*\0d-\0d.\0g\ 4\0d.\0d)\0g\ 2\0\83\ 4\0\ 1|\f\0j\10\0d/\0d\ e\0d   \0\83\ 3\0\ 1t\ e\0d\r\0d\ 5\0d\ 4\0d\ 3\0d\ e\0d\v\0d\ f\0d\1c\0d\1d\0d\1e\0d0\0d1\0d2\0d3\0d4\0d5\0d6\0d7\0d8\0d9\0d:\0d;\0d<\0d=\0g\18\0\83\ 1\0}\r\0|\r\0j\1c\0d\r\0d>\0\83\ 2\0\ 1|\f\0j\r\0|\r\0\83\ 1\0\ 1|\f\0j\18\0\83\0\0\ 1|\ 3\0j    \0|\ 1\0d\ 4\0\83\ 2\0\ 1t\11\0\83\0\0}\v\0|\v\0j\12\0|\f\0\83\ 1\0\ 1|\v\0j   \0|\ 1\0d\r\0\83\ 2\0\ 1t\13\0j\14\0|\ 1\0\83\ 1\0}\ 3\0t\11\0|\ 1\0|\ 2\0d\ e\0\0\83\ 4\0}\b\0|\0\0j\15\0|\f\0j\16\0|\b\0j\17\0|\ 3\0\83\ 1\0d\1a\0d\r\0\83\ 3\0\83\ 1\0\ 1d?\0S(K\0\0\0s7\0\0\0 Same than testMEDFileFieldEasyField3 but with integerss\r\0\0\0Pyfile104.medRÖ\ 4\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0i\ 5\0\0\0i    \0\0\0i
35220 +\0\0\0\ 2\0\0i\0\0\0\0i\ 4\0\0\0i\v\0\0\0id\0\0\0ie\0\0\0if\0\0\0ig\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0iÿÿÿÿg\0\0\0\0\0\0\10@g\11ê-\81\99\97q=g\0\0\0\0\0\00@i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\9a\99\99\99\99\99¹?g\9a\99\99\99\99\99É?g333333Ó?g\9a\99\99\99\99\99Ù?g\9a\99\99\99\99\99©?gffffffÖ?g333333ã?gffffffæ?g\0\0\0\0\0\0Ð?i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i-\0\0\0i.\0\0\0i7\0\0\0i8\0\0\0\ 3\0\0N(\ 3\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 3\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0(\ 3\0\0\0i\ 5\0\0\0i     \0\0\0i
35221 +\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\ 2\0\0\0i\0\0\0\0id\0\0\0(\ 2\0\0\0i\ 1\0\0\0ie\0\0\0(\1d\0\0\0R>\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0\ 3\0\0R\v\0\0\0R&\ 3\0\0R\13\ 1\0\0RB\0\0\0R{\ 1\0\0Rk\0\0\0\0\0\0\0\0\0R\1e\ 3\0\0R%\ 1\0\0R'\0\0\0R(\0\0\0R0\0\0\0R1\0\0\0R5\ 4\0\0Rd\0\0\0R\ f\ 1\0\0R\a\ 1\0\0\ 4\0\0R\97\0\0\0(\ e\0\0\0R        \0\0\0R9\ 1\0\0Rg\ 3\0\0R\86\0\0\0R\ 3\ 2\0\0R\83\0\0\0\0\0\0\0\0\0\0\0\0R
35222 +\ 1\0\0\ 4\0\0\0\0\0R\f\ 1\0\0\ 4\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileFieldEasyField4â\14\0\0s\9a\0\0\0\0\ 2\ 6\ 1\ 6\ 1        \ 1\15\ 1\ f\0\r\ 1
35223 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1
35224 +\ 1\ f\0\r\ 1
35225 +\ 1\1c\ 1\1c\ 1
35226 +\ 1\10\ 2\f\0\r\0\19\0\11\0\13\ 1  \0\r\0\10\ 2\ f\0\15\ 1%\ 2\f\0\r\0%\ 1\11\ 1\13\ 1
35227 +\ 1\10\ 1    \0\r\0\10\ 2\ f\0\15\ 1%\ 2\f\ 1\11\ 1H\0\r\0\13\ 1\r\0
35228 +\ 1\10\0    \0\r\0\10\ 2\ f\0\15\ 1%\ 2\f\ 1\11\ 1\r\ 1U\ 1@\0\13\ 1T\0\10\0\r\ 1
35229 +\ 1\10\0    \0\r\0\10\ 1\ f\0\15\ 1%\ 1c\ 1\0\0\0\ e\0\0\0\ 6\0\0\0C\0\0\0s\15\ 3\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0\83\0\0}\ 3\0t\ 1\0d\1f\0\0d!\0g\ 3\0\83\ 1\0}\ 4\0t\ 2\0d\f\0d\ 4\0\83\ 2\0}\ 5\0|\ 5\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\ 5\0j\ 4\0\83\0\0\ 1|\ 5\0j\ 5\0t\ 6\0d\r\0d\ 5\0d\ 4\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\ 3\0d\ e\0d      \0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d\b\0d\a\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\ 6\0d
35230 +\0d\v\0d\ f\0g\ 3\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\10\0d\11\0d\12\0d\13\0g\ 4\0\83\ 2\0\ 1|\ 5\0j\ 5\0t\a\0d\14\0d\15\0d\16\0d\17\0g\ 4\0\83\ 2\0\ 1|\ 5\0|\ 3\0d\r\0<|\ 3\0j\b\0|\ 1\0d\ 4\0\83\ 2\0\ 1t      \0d\r\0d\ 4\0d\ 3\0d     \0g\ 4\0\83\ 1\0}\ 6\0|\ 6\0j
35231 +\0d\18\0\83\ 1\0\ 1|\ 5\0j\v\0\83\0\0|\ 6\0\19}\a\0|\a\0j
35232 +\0|\ 5\0j\f\0\83\0\0\83\ 1\0\ 1t\ 1\0d\v\0d\ f\0d\19\0d\1a\0g\ 4\0\83\ 1\0}\b\0t\r\0t\ e\0\83\ 1\0}       \0|      \0j\ f\0|\b\0\83\ 1\0\ 1|    \0j\10\0|\a\0\83\ 1\0\ 1|    \0j
35233 +\0|\ 2\0\83\ 1\0\ 1|      \0j\11\0d\e\0d\b\0d\a\0\83\ 3\0\ 1|      \0j\12\0\83\0\0\ 1t\13\0\83\0\0}
35234 +\0|
35235 +\0j\14\0|  \0|\ 3\0d\r\0|\ 6\0\83\ 4\0\ 1|
35236 +\0j\b\0|\ 1\0d\r\0\83\ 2\0\ 1t\15\0j\16\0|\ 1\0\83\ 1\0}\ 3\0t\17\0|\ 1\0|\ 2\0d\b\0d\a\0\83\ 4\0}\v\0|\0\0j\18\0|      \0j\19\0|\v\0j\1a\0|\ 3\0\83\ 1\0d\1c\0d\1c\0\83\ 3\0\83\ 1\0\ 1t\ 2\0d\f\0d\ 3\0\83\ 2\0}\f\0|\f\0j\ 3\0|\ 4\0\83\ 1\0\ 1|\f\0j\ 4\0\83\0\0\ 1|\f\0j\ 5\0t\e\0d\ 3\0d\ 4\0d     \0d\r\0g\ 4\0\83\ 2\0\ 1|\f\0j\ 5\0t\e\0d\a\0d\b\0d\ 3\0d\ 4\0g\ 4\0\83\ 2\0\ 1t\0\0\83\0\0}\r\0|\f\0|\r\0d\r\0<|\ 5\0|\r\0d\1d\0<t\17\0\83\0\0}
35237 +\0|
35238 +\0j\1c\0|  \0|\r\0d\1d\0|\ 6\0\83\ 4\0\ 1t\15\0j\16\0|\ 1\0\83\ 1\0}\ 3\0t\17\0|\ 1\0|\ 2\0d\b\0d\a\0\83\ 4\0}\v\0|\0\0j\18\0|       \0j\19\0|\v\0j\1a\0|\ 3\0\83\ 1\0d\1c\0d\1c\0\83\ 3\0\83\ 1\0\ 1d\1e\0S("\0\0\0sO\0\0\0More and more difficult now look at how profiles are managed by "field" method.s\r\0\0\0Pyfile105.medRÖ\ 4\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0i\ 5\0\0\0i   \0\0\0i
35239 +\0\0\0\ 2\0\0i\0\0\0\0i\ 4\0\0\0i\v\0\0\0id\0\0\0ie\0\0\0if\0\0\0ig\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0R\83\ 1\0\0i\f\0\0\0i\r\0\0\0g\0\0\0\0\0\0\0@g\11ê-\81\99\97q=iÿÿÿÿN(\ 3\0\0\0i\ 3\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 3\0\0\0i\b\0\0\0i\a\0\0\0i\ 6\0\0\0(\ 3\0\0\0i\ 5\0\0\0i      \0\0\0i
35240 +\0\0\0(\1d\0\0\0R>\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0R\v\0\0\0Rk\0\0\0RB\0\0\0Rq\0\0\0RC\0\0\0Rw\ 1\0\0R\13\ 1\0\0R{\ 1\0\0\0\0\0\0\0\0Rd\0\0\0\0\0\0R\89\ 1\0\0R'\0\0\0R(\0\0\0\0\0\0R0\0\0\0R1\0\0\0R5\ 4\0\0\ 3\0\0R|\ 1\0\0(\ e\0\0\0R        \0\0\0R9\ 1\0\0Rg\ 3\0\0R\86\0\0\0R\ 3\ 2\0\0R\83\0\0\0R\83\ 1\0\0R\85\0\0\0R\17\ 3\0\0R\b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testMEDFileFieldEasyField5\1d\15\0\0s\\0\0\0\0\ 2\ 6\ 1\ 6\ 1    \ 1\15\ 1\ f\0\r\ 1
35241 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1
35242 +\ 1\10\ 1\18\0\r\ 1\10\0\13\ 2\18\ 1\f\0\r\0\r\ 1\r\0\13\0
35243 +\ 1      \0\16\ 1\10\ 2\ f\0\15\ 1%\ 2\ f\0\r\ 1
35244 +\ 1\1c\ 1\1c\ 1  \ 1
35245 +\0
35246 +\ 2      \0\16\ 2\ f\0\15\ 1%\ 1c\ 1\0\0\0$\0\0\0\11\0\0\0C\0\0\0sC\v\0\0t\0\0d?\0d@\0dA\0dB\0dC\0dD\0dE\0dF\0dG\0dH\0dI\0dJ\0dK\0dL\0dM\0g\ f\0\83\ 1\0}\ 1\0d\ 6\0}\ 2\0t\ 1\0|\ 2\0d\ 3\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0|\ 1\0\83\ 1\0\ 1|\ 3\0j\ 3\0\83\0\0\ 1|\ 3\0j\ 4\0t\ 5\0d\a\0d\ 5\0d\ 4\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 5\0d\a\0d\b\0d\ 5\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 5\0d        \0d
35247 +\0d\a\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 5\0d  \0d\v\0d
35248 +\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 1\0d\f\0d\ 2\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 1\0d\r\0d\f\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 6\0d\ 2\0d\f\0d     \0d\ 3\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 6\0d\ 3\0d        \0d\a\0d\ 4\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 6\0d\a\0d
35249 +\0d\ e\0d\b\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 6\0d\f\0d\ f\0d\v\0d      \0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 4\0t\ 6\0d\r\0d\10\0d\ f\0d\f\0g\ 4\0\83\ 2\0\ 1t\ 1\0|\ 2\0d\ 2\0\83\ 2\0}\ 4\0|\ 4\0j\ 2\0|\ 1\0\83\ 1\0\ 1|\ 4\0j\ 3\0\83\0\0\ 1|\ 4\0j\ 4\0t\a\0d\10\0d\r\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\r\0d\ 1\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\ 1\0d\ 2\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\ 2\0d\ 3\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\ 3\0d\ 4\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\ 4\0d\ 5\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\ 5\0d\b\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\b\0d\ e\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\ e\0d
35250 +\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d
35251 +\0d\v\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\v\0d\ f\0g\ 2\0\83\ 2\0\ 1|\ 4\0j\ 4\0t\a\0d\ f\0d\10\0g\ 2\0\83\ 2\0\ 1t\b\0\83\0\0}\ 5\0|\ 3\0|\ 5\0d\ 1\0<|\ 4\0|\ 5\0d\11\0<t  \0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\f\0d    \0d\a\0d\v\0d
35252 +\0g
35253 +\0\83\ 1\0}\ 6\0i\0\0}\a\0\0d\ 1\0d\ 3\0d\ 4\0d\ 5\0d\f\0d       \0g\ 6\0\83\ 1\0|\a\0d\ 1\0<t \0d\ 3\0d\ 4\0d\ 5\0d\r\0d\b\0g\ 5\0\83\ 1\0|\a\0d\11\0<t
35254 +\0\83\0\0}\b\0|\0\0j\v\0|\ 5\0j\f\0|\a\0\83\ 1\0j\r\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\ 6\0|\a\0d\ 2\0<d\12\0}   \0t\ e\0\83\0\0}
35255 +\0|\b\0j\ f\0|
35256 +\0\83\ 1\0\ 1dN\0}\v\0d\14\0g\ 1\0}\f\0t\0\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0g\v\0\83\ 1\0}\r\0|\r\0j\10\0|\f\0\83\ 1\0\ 1t\11\0t\12\0\83\ 1\0}\ e\0|\ e\0j\13\0|\v\0\8c\0\0\ 1|\ e\0j\14\0|\r\0\83\ 1\0\ 1|\ e\0j\15\0|\ 3\0\83\ 1\0\ 1|\ e\0j\16\0|       \0\83\ 1\0\ 1t\11\0t\12\0\83\ 1\0}\ f\0|\ f\0j\13\0|\v\0\8c\0\0\ 1|\ f\0j\14\0t\0\0\0d!\0d"\0d#\0d$\0d%\0d&\0d'\0d(\0d)\0d*\0d+\0g\f\0\83\ 1\0\83\ 1\0\ 1|\ f\0j\15\0|\ 4\0\83\ 1\0\ 1|\ f\0j\16\0|       \0\83\ 1\0\ 1|\ f\0j\17\0\83\0\0j\10\0|\f\0\83\ 1\0\ 1t\11\0t\18\0\83\ 1\0}\10\0|\10\0j\13\0|\v\0\8c\0\0\ 1|\10\0j\14\0t\0\0d,\0d-\0d.\0d/\0d0\0d1\0d2\0d3\0d4\0d5\0d6\0d7\0d8\0d9\0d:\0g\ f\0\83\ 1\0\83\ 1\0\ 1|\10\0j\15\0|\ 3\0\83\ 1\0\ 1|\10\0j\16\0|   \0\83\ 1\0\ 1|\10\0j\17\0\83\0\0j\10\0|\f\0\83\ 1\0\ 1t\19\0\83\0\0}\11\0|\11\0j\1a\0|\ e\0\83\ 1\0\ 1|\11\0j\1a\0|\ f\0\83\ 1\0\ 1|\11\0j\1a\0|\10\0\83\ 1\0\ 1|
35257 +\0j\e\0|\11\0\83\ 1\0\ 1|\ 5\0j\1c\0|\a\0\83\ 1\0}\12\0|\b\0j\1c\0|\a\0|\ 5\0\83\ 2\0}\13\0|\0\0j\1d\0t\1e\0|\13\0\83\ 1\0d\ 2\0\83\ 2\0\ 1|\13\0d\ 1\0\19}\14\0|\0\0j\1d\0t\1e\0|\14\0\83\ 1\0d\ 2\0\83\ 2\0\ 1|\14\0d\ 1\0\19}\11\0|\0\0j\1f\0\0|\11\0j!\0|\12\0\83\ 3\0\ 1|\0\0j\v\0|\12\0d\ 1\0\19j"\0\83\0\0j\r\0|\ 3\0|\a\0d\ 1\0\19\19j"\0\83\0\0d;\0\83\ 2\0\83\ 1\0\ 1|\0\0j\v\0|\12\0d\11\0\19j"\0\83\0\0j\r\0|\ 4\0|\a\0d\11\0\19\19j"\0\83\0\0d;\0\83\ 2\0\83\ 1\0\ 1|\ 3\0j#\0\83\0\0|\a\0d\ 1\0\19\19}\15\0|\15\0j$\0|\a\0d\ 2\0\19j%\0|\ 5\0j&\0\83\0\0\83\ 1\0t\1e\0|\a\0d\ 2\0\19\83\ 1\0\83\ 2\0\ 1|\15\0j\16\0|\ 3\0j'\0\83\0\0\83\ 1\0\ 1|\0\0j\v\0|\12\0d\ 1\0\19j\r\0|\15\0d;\0\83\ 2\0\83\ 1\0\ 1|\ 4\0j#\0\83\0\0|\a\0d\11\0\19\19}\16\0|\16\0j$\0|\a\0d\ 2\0\19j%\0|\ 5\0j&\0\83\0\0\83\ 1\0t\1e\0|\a\0d\ 2\0\19\83\ 1\0\83\ 2\0\ 1|\16\0j\16\0|\ 3\0j'\0\83\0\0\83\ 1\0\ 1|\0\0j\v\0|\12\0d\ 1\0\19j\r\0|\15\0d;\0\83\ 2\0\83\ 1\0\ 1|\0\0j\v\0|\12\0d\11\0\19j\r\0|\16\0d;\0\83\ 2\0\83\ 1\0\ 1|\11\0j(\0t\12\0d\ 1\0|\12\0\83\ 3\0}\17\0|\17\0j)\0\83\0\0\ 1|\0\0j\1d\0|\17\0j*\0\83\0\0t\12\0\83\ 2\0\ 1|\0\0j\v\0|\17\0j+\0\83\0\0j\r\0|\15\0d;\0\83\ 2\0\83\ 1\0\ 1t\0\0d\15\0d\17\0d\18\0d\19\0d\e\0d\1c\0g\ 6\0\83\ 1\0}\18\0|\18\0j\10\0|\f\0\83\ 1\0\ 1|\0\0j\v\0|\17\0j\17\0\83\0\0j\r\0|\18\0d;\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1d\0|\17\0j,\0\83\0\0t-\0|\v\0\83\ 1\0\83\ 2\0\ 1|\11\0j(\0t\12\0d\11\0|\12\0\83\ 3\0}\19\0|\19\0j)\0\83\0\0\ 1|\0\0j\1d\0|\19\0j*\0\83\0\0t\12\0\83\ 2\0\ 1|\0\0j\v\0|\19\0j+\0\83\0\0j\r\0|\16\0d;\0\83\ 2\0\83\ 1\0\ 1t\0\0d"\0d#\0d$\0d%\0d)\0g\ 5\0\83\ 1\0}\1a\0|\1a\0j\10\0|\f\0\83\ 1\0\ 1|\0\0j\v\0|\19\0j\17\0\83\0\0j\r\0|\1a\0d;\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1d\0|\19\0j,\0\83\0\0t-\0|\v\0\83\ 1\0\83\ 2\0\ 1|\11\0j(\0t\18\0d\ 1\0|\12\0\83\ 3\0}\e\0|\e\0j)\0\83\0\0\ 1t\0\0d,\0d-\0d.\0d/\0d0\0d2\0d3\0d4\0d8\0d9\0g
35258 +\0\83\ 1\0}\1c\0|\1c\0j\10\0|\f\0\83\ 1\0\ 1|\0\0j\v\0|\e\0j\17\0\83\0\0j\r\0|\1c\0d;\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1d\0|\e\0j,\0\83\0\0t-\0|\v\0\83\ 1\0\83\ 2\0\ 1t
35259 +\0\83\0\0}\b\0t\ e\0\83\0\0}
35260 +\0|\b\0j\ f\0|
35261 +\0\83\ 1\0\ 1dO\0dP\0dQ\0g\ 3\0}\1d\0x\9e\0t.\0|\1d\0\83\ 1\0D]\90\0\\ 2\0}\1e\0}\1f\0t\11\0t\12\0\83\ 1\0}\ e\0|\ e\0j\13\0|\1f\0\8c\0\0\ 1|\r\0|\1e\0d>\0\14\17\0|\ e\0j\14\0\0\83\ 1\0\ 1|\ e\0j\15\0|\ 3\0\83\ 1\0\ 1|\ e\0j\16\0|  \0\83\ 1\0\ 1|\ e\0j\17\0\83\0\0j\10\0|\f\0\83\ 1\0\ 1t\19\0\83\0\0}\11\0|\11\0j\1a\0|\ e\0\83\ 1\0\ 1|
35262 +\0j\e\0|\11\0\83\ 1\0\ 1qo  W|\b\0j\1c\0|\a\0|\ 5\0\83\ 2\0}!\0|\0\0j\1d\0t\1e\0|!\0\83\ 1\0d\ 2\0\83\ 2\0\ 1|!\0d\ 1\0\19}\14\0|\0\0j\1d\0t\1e\0|\14\0\83\ 1\0t\1e\0|\1d\0\83\ 1\0\83\ 2\0\ 1\0t.\0t/\0|\14\0|\1d\0\83\ 2\0\83\ 1\0D]Ô\0\\ 2\0}\1e\0\\ 2\0}"\0}\1f\0|"\0j!\0|\12\0\83\ 1\0}#\0|#\0j)\0\83\0\0\ 1|\0\0j\1d\0|#\0j*\0\83\0\0t\12\0\83\ 2\0\ 1t\0\0d\15\0d\17\0d\18\0d\19\0d\e\0d\1c\0g\ 6\0\83\ 1\0}\18\0|\18\0j\10\0|\f\0\83\ 1\0\ 1|\18\0|\1e\0d>\0\147}\18\0|\0\0j\v\0|#\0j+\0\83\0\0j\r\0|\15\0d;\0\83\ 2\0\83\ 1\0\ 1|\0\0j\v\0|#\0j\17\0\83\0\0j\r\0|\18\0d;\0\83\ 2\0\83\ 1\0\ 1|\0\0j\1d\0|#\0j,\0\83\0\0t-\0|\1f\0\83\ 1\0\83\ 2\0\ 1qg
35263 +Wd\0\0S(R\0\0\0Ni\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0\ 2\0\0i\b\0\0\0i        \0\0\0i\a\0\0\0i\r\0\0\0i\f\0\0\0i\ 6\0\0\0i\ 5\0\0\0i\ e\0\0\0i\v\0\0\0i
35264 +\0\0\0iÿÿÿÿt\ 6\0\0\0Field0g\0\0\0\0\0\800@s\b\0\0\0toto [m]id\0\0\0ie\0\0\0if\0\0\0ig\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0il\0\0\0im\0\0\0in\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i,\ 1\0\0i-\ 1\0\0i.\ 1\0\0i/\ 1\0\0i0\ 1\0\0i1\ 1\0\0i2\ 1\0\0i3\ 1\0\0i4\ 1\0\0i5\ 1\0\0i6\ 1\0\0i7\ 1\0\0i8\ 1\0\0i9\ 1\0\0i:\ 1\0\0g\11ê-\81\99\97q=g\0\0\0\0\0\801@g\0\0\0\0\0\802@g\0\0\0\0\0@\8f@(\ 2\0\0\0i\0\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 1\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 3\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 2\0\0\0(\ 3\0\0\0g\0\0\0\0\0\800@i\ 3\0\0\0i\ 4\0\0\0(\ 3\0\0\0g\0\0\0\0\0\800@i\ 3\0\0\0i\ 4\0\0\0(\ 3\0\0\0g\0\0\0\0\0\801@i\ 4\0\0\0i\ 5\0\0\0(\ 3\0\0\0g\0\0\0\0\0\802@i\ 5\0\0\0i\ 6\0\0\0(0\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Re\0\0\0R>\0\0\0Rk\0\0\0R[\ 1\0\0R0\0\0\0\0\0\0deduceNodeSubPartFromCellSubPartR1\0\0\0\0\0\0R\\ 1\0\0\ 1\0\0Rw\ 1\0\0R\13\ 1\0\0\0\0\0R{\ 1\0\0\0\0\0RB\0\0\0R)\ 1\0\0R\1c\ 1\0\0\0\0\0R%\ 1\0\0RE\ 3\0\0t\v\0\0\0extractPartR+\0\0\0Ry\0\0\0R)\0\0\0R*\0\0\0R5\ 4\0\0R\99\ 4\0\0Rq\0\0\0t\r\0\0\0renumberNodest\12\0\0\0invertArrayN2O2O2NRÐ\ 1\0\0RC\0\0\0R\97\ 1\0\0Rd\0\0\0\ 1\0\0\0\0\0\0\0\0Rm\0\0\0\0\0\0RS\ 1\0\0($\0\0\0R      \0\0\0R\ 3\ 2\0\0\ 3\0\0\0\0\0R\84\0\0\0R\86\0\0\0R\17\ 3\0\0t\ 3\0\0\0tabRl\ 1\0\0t\ 6\0\0\0fname0Rm\ 1\0\0t\ 2\0\0\0t0t\ 2\0\0\0ict\ 6\0\0\0arr0_0Rä\0\0\0\0\0\0\0\0\0\0\0\0t\ 5\0\0\0mmOutt\a\0\0\0fsPart0t\ 5\0\0\0fmtsPt\ 6\0\0\0m0Partt\ 6\0\0\0m1Partt\ 6\0\0\0f0Partt\a\0\0\0arr0Expt\ 6\0\0\0f1Partt\a\0\0\0arr1Expt\ 6\0\0\0f2Partt\a\0\0\0arr2Expt\ 3\0\0\0tssRî\0\0\0\0\0\0t\ 5\0\0\0myarrt\a\0\0\0fsPart1t\ 5\0\0\0f1tsPt\ 5\0\0\0fPart(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\10\0\0\0testExtractPart1F\15\0\0s\1c\ 1\0\0\0\ 19\ 1\ 6\ 1\ f\0\r\0
35265 +\ 1\19\ 1\19\ 1\19\ 1\19\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 2\ f\0\r\0
35266 +\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1\16\ 1      \ 1
35267 +\0
35268 +\ 1*\ 1\ 6\ 1"\ 1\1f\ 1      \ 1\1f\ 1
35269 +\ 2\ 6\ 1    \0\r\ 1\ 6\ 1   \ 1-\0\r\ 1\f\0\r\0\r\ 1\r\0\r\ 1\f\0\r\07\ 1\r\0\r\0\13\ 1\f\0\r\0@\ 1\r\0\r\0\13\ 1 \0\r\0\r\0\r\ 1\r\ 2\ f\ 2\12\ 1\16\ 1
35270 +\ 1\16\ 1
35271 +\ 1\16\ 21\ 11\ 2\14\0-\0\13\ 1\1d\ 1\14\0-\0\13\ 1\1d\ 1\1d\ 2\15\0
35272 +\ 1\16\ 1\1f\ 1\1e\0\r\ 1\1f\0\1c\ 1\15\0
35273 +\ 1\16\ 1\1f\ 1\e\0\r\ 1\1f\0\1c\ 2\15\0
35274 +\ 1*\0\r\ 1\1f\0\1c\ 2      \0       \0\r\ 1\ f\ 1\19\ 1\f\0\r\ 1\ e\ 1\r\ 1\r\0\r\0\13\ 1   \0\r\0\r\ 1\ 4\ 1\12\ 1\16\ 1
35275 +\ 1\1c\ 1(\ 1\ f\0
35276 +\ 1\16\ 1\1e\0\r\0\ e\ 1\1f\ 1\1f\ 1\1c\ 1\ 4\ 1c\ 1\0\0\0!\0\0\0\10\0\0\0\ 3\0\0\0\f\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0d\ 3\0}\ 3\0d\ 4\0}\ 4\0t\0\0\83\0\0}\ 5\0t\ 1\0d\ 5\0d\ 6\0d\a\0d\b\0d       \0d
35277 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0g\f\0d        \0d\b\0\83\ 3\0}\ 6\0|\ 6\0j\ 2\0d\11\0d\12\0d\13\0g\ 3\0\83\ 1\0\ 1|\ 5\0j\ 3\0|\ 6\0\83\ 1\0\ 1t\ 4\0|\ 4\0d\b\0\83\ 2\0}\a\0|\a\0j\ 5\0\83\0\0\ 1|\a\0j\ 3\0|\ 6\0\83\ 1\0\ 1|\a\0j\ 6\0t\a\0d\14\0d\ 5\0d\ 6\0d\b\0g\ 4\0\83\ 2\0\ 1|\a\0j\ 6\0t\a\0d       \0d\v\0d\f\0d\ e\0g\ 4\0\83\ 2\0\ 1|\a\0j\ 6\0t\b\0d\ f\0d\15\0d\a\0d
35278 +\0d\r\0d\10\0g\ 6\0\83\ 2\0\ 1|\a\0j\ 6\0t\b\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0g\ 6\0\83\ 2\0\ 1|\a\0j\ 6\0t\b\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0g\ 6\0\83\ 2\0\ 1|\a\0|\ 5\0d\14\0<|\ 5\0j       \0d\14\0t
35279 +\0d\ 5\0d\ 6\0d\b\0d    \0d\v\0g\ 5\0\83\ 1\0\83\ 2\0\ 1|\ 5\0j\v\0d\14\0t
35280 +\0d
35281 +\0d\r\0d\10\0d\16\0d\17\0g\ 5\0\83\ 1\0\83\ 2\0\ 1t\ 4\0|\ 4\0d\ 6\0\83\ 2\0}\b\0|\b\0j\ 5\0\83\0\0\ 1|\b\0j\ 3\0|\ 6\0\83\ 1\0\ 1|\b\0j\ 6\0t\f\0d\14\0d\ 5\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\b\0j\ 6\0t\f\0d\b\0d    \0d\v\0g\ 3\0\83\ 2\0\ 1|\b\0j\ 6\0t\r\0d\f\0d\ e\0d\ f\0d\15\0g\ 4\0\83\ 2\0\ 1|\b\0j\ 6\0t\r\0d\a\0d
35282 +\0d\r\0d\10\0g\ 4\0\83\ 2\0\ 1|\b\0j\ 6\0t\r\0d\16\0d\17\0d\18\0d\19\0g\ 4\0\83\ 2\0\ 1|\b\0j\ 6\0t\r\0d\1a\0d\e\0d\1c\0d\1d\0g\ 4\0\83\ 2\0\ 1|\b\0|\ 5\0d"\0<|\ 5\0j   \0d"\0t
35283 +\0d\f\0d\ e\0d\ f\0d\15\0d\a\0d
35284 +\0g\ 6\0\83\ 1\0\83\ 2\0\ 1|\ 5\0j\v\0d"\0t
35285 +\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0g\ 6\0\83\ 1\0\83\ 2\0\ 1x+\0t\ e\0d\ 5\0d\a\0\83\ 2\0D]\1a\0}      \0|\ 5\0j\ f\0d#\0|     \0\16|     \0\83\ 2\0\ 1\ 2W|\ 5\0j\ f\0d$\0d\14\0\83\ 2\0\ 1|\ 5\0j\ f\0d%\0d&\0\83\ 2\0\ 1|\ 5\0j\10\0d'\0d(\0d)\0g\ 2\0\83\ 2\0\ 1|\ 5\0j\10\0d*\0d(\0d)\0g\ 2\0\83\ 2\0\ 1|\ 5\0j       \0d\ 5\0t
35286 +\0d\r\0d\10\0d\16\0d\17\0g\ 4\0\83\ 1\0\83\ 2\0\ 1|\ 5\0j\v\0d\ 5\0t
35287 +\0d\1e\0d\1f\0\0d!\0g\ 4\0\83\ 1\0\83\ 2\0\ 1t\0\0\83\0\0}
35288 +\0t\ 1\0d\15\0d\a\0d+\0d
35289 +\0d\r\0d,\0d\10\0d\16\0d-\0d\17\0d\18\0d.\0d\19\0d\1a\0d/\0g\ f\0d\v\0d\b\0\83\ 3\0}\ 6\0|\ 6\0j\ 2\0d\11\0d\12\0d\13\0g\ 3\0\83\ 1\0\ 1|
35290 +\0j\ 3\0|\ 6\0\83\ 1\0\ 1t\ 4\0|\ 4\0d\b\0\83\ 2\0}\v\0|\v\0j\ 5\0\83\0\0\ 1|\v\0j\ 3\0|\ 6\0\83\ 1\0\ 1|\v\0j\ 6\0t\a\0d&\0d0\0d1\0d2\0g\ 4\0\83\ 2\0\ 1|\v\0j\ 6\0t\a\0d3\0d4\0d5\0d6\0g\ 4\0\83\ 2\0\ 1|\v\0j\ 6\0t\a\0d7\0d8\0d9\0d:\0g\ 4\0\83\ 2\0\ 1|\v\0j\ 6\0t\b\0d;\0d<\0d=\0d>\0d?\0d@\0g\ 6\0\83\ 2\0\ 1|\v\0|
35291 +\0d\14\0<|
35292 +\0j     \0d\14\0t
35293 +\0dA\0dB\0dC\0dD\0g\ 4\0\83\ 1\0\83\ 2\0\ 1|
35294 +\0j\v\0d\14\0t
35295 +\0dE\0dF\0dG\0dH\0g\ 4\0\83\ 1\0\83\ 2\0\ 1t\ 4\0|\ 4\0d\ 6\0\83\ 2\0}\f\0|\f\0j\ 5\0\83\0\0\ 1|\f\0j\ 3\0|\ 6\0\83\ 1\0\ 1|\f\0j\ 6\0t\f\0d&\0d0\0d1\0g\ 3\0\83\ 2\0\ 1|\f\0j\ 6\0t\f\0d2\0d3\0d4\0g\ 3\0\83\ 2\0\ 1|\f\0j\ 6\0t\f\0d5\0d6\0d7\0g\ 3\0\83\ 2\0\ 1|\f\0j\ 6\0t\r\0d8\0d9\0d:\0d;\0g\ 4\0\83\ 2\0\ 1|\f\0j\ 6\0t\r\0d<\0d=\0d>\0d?\0g\ 4\0\83\ 2\0\ 1|\f\0j\ 6\0t\r\0d@\0dI\0dJ\0dK\0g\ 4\0\83\ 2\0\ 1|\f\0j\ 6\0t\r\0dL\0dM\0dN\0dO\0g\ 4\0\83\ 2\0\ 1|\f\0j\ 6\0t\r\0dP\0dQ\0dR\0dS\0g\ 4\0\83\ 2\0\ 1|\f\0|
35296 +\0d"\0<|
35297 +\0j     \0d"\0t
35298 +\0dT\0dU\0dV\0dW\0dX\0dY\0dZ\0d[\0g\b\0\83\ 1\0\83\ 2\0\ 1|
35299 +\0j\v\0d"\0t
35300 +\0d\\0d]\0d^\0d_\0d`\0da\0db\0dc\0g\b\0\83\ 1\0\83\ 2\0\ 1x/\0t\ e\0d\ 5\0d\r\0\83\ 2\0D]\1e\0}        \0|
35301 +\0j\ f\0dd\0|       \0\16|     \0d+\0\17\83\ 2\0\ 1q:\ 6W|
35302 +\0j\ f\0d%\0d&\0\83\ 2\0\ 1|
35303 +\0j\ f\0d$\0d\14\0\83\ 2\0\ 1|
35304 +\0j\10\0d'\0de\0df\0g\ 2\0\83\ 2\0\ 1|
35305 +\0j\10\0dg\0dh\0di\0g\ 2\0\83\ 2\0\ 1|
35306 +\0j     \0d\ 5\0t
35307 +\0d;\0d<\0d=\0d>\0d?\0g\ 5\0\83\ 1\0\83\ 2\0\ 1|
35308 +\0j\v\0d\ 5\0t
35309 +\0dM\0dN\0dO\0dP\0dQ\0g\ 5\0\83\ 1\0\83\ 2\0\ 1t\0\0j\11\0|\ 5\0|
35310 +\0g\ 2\0\83\ 1\0}\r\0dj\0\84\0\0\89\0\0\88\0\0\88\a\0|\r\0\83\ 2\0\ 1dk\0}\ e\0d\91\0}\ f\0d\92\0\89\b\0dn\0do\0g\ 2\0}\10\0t\12\0\83\0\0}\11\0t\13\0\83\0\0}\12\0t\14\0t\15\0\83\ 1\0\89\ 1\0\88\ 1\0j\16\0|\ 5\0d\14\0\19\83\ 1\0\ 1\88\ 1\0j\17\0|\ e\0\83\ 1\0\ 1t\ 1\0d\93\0d\94\0d\95\0d\96\0d\97\0g\ 5\0\83\ 1\0}\13\0|\13\0j\ 2\0|\10\0\83\ 1\0\ 1\88\ 1\0j\18\0|\13\0\83\ 1\0\ 1\88\ 1\0j\19\0|\ f\0\8c\0\0\ 1\88\ 1\0j\1a\0dp\0\83\ 1\0\ 1\88\ 1\0j\e\0\83\0\0\ 1|\12\0j\1c\0\88\ 1\0\83\ 1\0\ 1t\14\0t\15\0\83\ 1\0\89\ 2\0\88\ 2\0j\16\0|\ 5\0d"\0\19\83\ 1\0\ 1\88\ 2\0j\17\0|\ e\0\83\ 1\0\ 1t\ 1\0d\98\0d\99\0d\9a\0d\9b\0d\9c\0d\9d\0g\ 6\0\83\ 1\0}\14\0|\14\0j\ 2\0|\10\0\83\ 1\0\ 1\88\ 2\0j\18\0|\14\0\83\ 1\0\ 1\88\ 2\0j\19\0|\ f\0\8c\0\0\ 1\88\ 2\0j\1a\0dp\0\83\ 1\0\ 1\88\ 2\0j\e\0\83\0\0\ 1|\12\0j\1c\0\88\ 2\0\83\ 1\0\ 1t\14\0t\1d\0\83\ 1\0\89\ 3\0\88\ 3\0j\16\0|\ 5\0d\14\0\19\83\ 1\0\ 1\88\ 3\0j\17\0|\ e\0\83\ 1\0\ 1t\ 1\0d\9e\0d\9f\0\0\0g\ 4\0\83\ 1\0}\15\0|\15\0j\ 2\0|\10\0\83\ 1\0\ 1\88\ 3\0j\18\0|\15\0\83\ 1\0\ 1\88\ 3\0j\19\0|\ f\0\8c\0\0\ 1\88\ 3\0j\1a\0dp\0\83\ 1\0\ 1\88\ 3\0j\e\0\83\0\0\ 1|\12\0j\1c\0\88\ 3\0\83\ 1\0\ 1|\11\0j\1e\0|\12\0\83\ 1\0\ 1|\12\0j\1f\0\83\0\0}\16\0|\16\0j\19\0\88\b\0d\ 5\0\19\88\b\0d\ 6\0\19\88\b\0d\14\0\19\83\ 3\0\ 1|\16\0\0\83\0\0\ 4\1edq\07\ 2(|\11\0j\1e\0|\16\0\83\ 1\0\ 1t\12\0\83\0\0}\17\0t\13\0\83\0\0}\18\0t\14\0t\15\0\83\ 1\0\89\ 4\0\88\ 4\0j\16\0|
35311 +\0d\14\0\19\83\ 1\0\ 1\88\ 4\0j\17\0|\ e\0\83\ 1\0\ 1t\ 1\0\0\0\0\0g\ 4\0\83\ 1\0}\19\0|\19\0j\ 2\0|\10\0\83\ 1\0\ 1\88\ 4\0j\18\0|\19\0\83\ 1\0\ 1\88\ 4\0j\19\0|\ f\0\8c\0\0\ 1\88\ 4\0j\1a\0dp\0\83\ 1\0\ 1\88\ 4\0j\e\0\83\0\0\ 1|\18\0j\1c\0\88\ 4\0\83\ 1\0\ 1t\14\0t\15\0\83\ 1\0\89\ 5\0\88\ 5\0j\16\0|
35312 +\0d"\0\19\83\ 1\0\ 1\88\ 5\0j\17\0|\ e\0\83\ 1\0\ 1t\ 1\0\0\0\0\0\0\0\0\0g\b\0\83\ 1\0}\1a\0|\1a\0j\ 2\0|\10\0\83\ 1\0\ 1\88\ 5\0j\18\0|\1a\0\83\ 1\0\ 1\88\ 5\0j\19\0|\ f\0\8c\0\0\ 1\88\ 5\0j\1a\0dp\0\83\ 1\0\ 1\88\ 5\0j\e\0\83\0\0\ 1|\18\0j\1c\0\88\ 5\0\83\ 1\0\ 1t\14\0t\1d\0\83\ 1\0\89\ 6\0\88\ 6\0j\16\0|
35313 +\0d\14\0\19\83\ 1\0\ 1\88\ 6\0j\17\0|\ e\0\83\ 1\0\ 1t\ 1\0\0\0\0\0\0g\ 5\0\83\ 1\0}\e\0|\e\0j\ 2\0|\10\0\83\ 1\0\ 1\88\ 6\0j\18\0|\e\0\83\ 1\0\ 1\88\ 6\0j\19\0|\ f\0\8c\0\0\ 1\88\ 6\0j\1a\0dp\0\83\ 1\0\ 1\88\ 6\0j\e\0\83\0\0\ 1|\18\0j\1c\0\88\ 6\0\83\ 1\0\ 1|\17\0j\1e\0|\18\0\83\ 1\0\ 1|\18\0j\1f\0\83\0\0}\1c\0|\1c\0j\19\0\88\b\0d\ 5\0\19\88\b\0d\ 6\0\19\88\b\0d\14\0\19\83\ 3\0\ 1|\1c\0\0\83\0\0\ 4\1edq\07\ 2(|\17\0j\1e\0|\1c\0\83\ 1\0\ 1t!\0\83\0\0}\1d\0|\1d\0j"\0t#\0\83\0\0\83\ 1\0\ 1|\1d\0j$\0\83\0\0j%\0|\ 5\0\83\ 1\0\ 1|\1d\0j&\0t'\0\83\0\0\83\ 1\0\ 1|\1d\0j(\0\83\0\0j)\0|\11\0\83\ 1\0\ 1t!\0\83\0\0}\1e\0|\1e\0j"\0t#\0\83\0\0\83\ 1\0\ 1|\1e\0j$\0\83\0\0j%\0|
35314 +\0\83\ 1\0\ 1|\1e\0j&\0t'\0\83\0\0\83\ 1\0\ 1|\1e\0j(\0\83\0\0j)\0|\17\0\83\ 1\0\ 1t!\0j\11\0|\1d\0|\1e\0g\ 2\0\83\ 1\0}\1f\0\87\0\0\87\ 1\0\87\ 2\0\87\ 3\0\87\ 4\0\87\ 5\0\87\ 6\0\87\a\0\87\b\0f      \0d\8f\0\86\0\0\0\0\88\a\0|\1f\0\83\ 2\0\ 1|\1d\0j*\0|\ 1\0d\ 6\0\83\ 2\0\ 1|\1e\0j*\0|\ 2\0d\ 6\0\83\ 2\0\ 1t!\0j\11\0t!\0|\ 1\0\83\ 1\0t!\0|\ 2\0\83\ 1\0g\ 2\0\83\ 1\0}\1f\0\0\88\a\0|\1f\0\83\ 2\0\ 1d\90\0S(³\0\0\0sj\0\0\0 Testing of MEDFileData::Aggregate and MEDFileUMesh::Aggregate and MEDFileUMesh::getAllDistributionOfType s\ f\0\0\0Pyfile106_1.meds\ f\0\0\0Pyfile106_2.meds\ f\0\0\0Pyfile106_3.medR \ 2\0\0i\ 1\0\0\0i\ 2\0\0\0i
35315 +\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\v\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\f\0\0\0i\a\0\0\0i\b\0\0\0i\r\0\0\0s\ 6\0\0\0aa [m]s\b\0\0\0bbb [kg]s      \0\0\0cccc [MW]i\0\0\0\0i      \0\0\0i\ e\0\0\0i\ f\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0iÿÿÿÿs\ 3\0\0\0F%dR\9a\ 2\0\0t\ 2\0\0\0H1id\0\0\0t\ 5\0\0\0myGRPR\85\ 1\0\0t\ 2\0\0\0F6t\ 6\0\0\0myGRP1i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0ie\0\0\0if\0\0\0ig\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0il\0\0\0im\0\0\0in\0\0\0io\0\0\0ip\0\0\0iq\0\0\0ir\0\0\0is\0\0\0it\0\0\0iu\0\0\0i(\0\0\0i)\0\0\0i*\0\0\0i+\0\0\0i2\0\0\0i3\0\0\0i4\0\0\0i5\0\0\0iv\0\0\0iw\0\0\0ix\0\0\0iy\0\0\0iz\0\0\0i{\0\0\0i|\0\0\0i}\0\0\0i~\0\0\0i\7f\0\0\0i\80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i,\ 1\0\0i-\ 1\0\0i.\ 1\0\0i/\ 1\0\0i0\ 1\0\0i1\ 1\0\0i2\ 1\0\0i3\ 1\0\0s\ 3\0\0\0G%dRW\0\0\0t\ 2\0\0\0G6t\ 6\0\0\0myGRP2t\ 2\0\0\0G4t\ 2\0\0\0G7c\ 2\0\0\0\ 5\0\0\0D\0\0\0S\0\0\0\ 4\0\0t\0\0d~\0d\7f\0d\80\0d\81\0d\82\0d\83\0d\84\0d\85\0d\86\0g   \0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0d\18\0d\19\0d\1a\0g\ 3\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0j\ 3\0\83\0\0j\ 4\0|\ 2\0d\e\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0d\1c\0\19j\ 5\0\83\0\0j\ 4\0t\ 6\0d\10\0d\1c\0d\ 1\0d\ 2\0d\ 4\0d\10\0d\ 5\0d\a\0d\b\0d
35316 +\0d\10\0d\1d\0d\1e\0d\1f\0\0d\10\0d!\0d"\0d#\0d$\0d\10\0d%\0d&\0d'\0d(\0d\13\0d\v\0d\r\0d\ 3\0d\ 6\0\0d\f\0d\13\0d\10\0d\12\0d\13\0d\15\0d\16\0d)\0d\13\0d*\0d+\0d,\0d-\0d.\0d/\0d\13\0d0\0d1\0d2\0d3\0d4\0d5\0g5\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0d\1c\0\19j\a\0\83\0\0j\ 4\0t\ 6\0d\1c\0d\a\0d\ 3\0d\12\0d*\0d/\0d\11\0d6\0d7\0d8\0g
35317 +\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0d9\0\19j\ 5\0\83\0\0j\ 4\0t\ 6\0d\ 4\0d\1c\0d\ 1\0d\ 2\0d\ 4\0d\ 4\0d\ 5\0d\a\0d\ 4\0d\1d\0d\1e\0d\1f\0d\ 4\0\0d!\0d"\0d\ 4\0d#\0d$\0d%\0d\ 5\0d\b\0d
35318 +\0d\v\0d\r\0d\ 5\0d\ 3\0d\ 6\0d      \0d\f\0d\ 5\0d\10\0d\12\0d\13\0d\15\0d\ 5\0d\16\0d)\0d*\0d+\0d\ 5\0d&\0d'\0d(\0d0\0d\ 5\0d1\0d2\0d3\0d4\0d\ 5\0d5\0d:\0d;\0d<\0d\ 5\0d=\0d>\0d?\0d@\0d\ 5\0dA\0dB\0dC\0dD\0gA\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0d9\0\19j\a\0\83\0\0j\ 4\0t\ 6\0d\1c\0d\ 5\0d\v\0d   \0d\13\0d*\0d/\0d\ e\0dE\0dF\0dG\0dH\0dI\0dJ\0dK\0g\ f\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0j\b\0d\1c\0\83\ 1\0j\ 4\0t\ 6\0d\ 1\0d\ 2\0dF\0dL\0dM\0d\ 4\0d\ 5\0d\a\0dN\0g     \0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0j   \0d\1c\0\83\ 1\0j\ 4\0t\ 6\0d\ 6\0d       \0dH\0dO\0dP\0d\f\0d\10\0d\12\0d8\0\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0j\b\0d9\0\83\ 1\0j\ 4\0t\ 6\0d\b\0d
35319 +\0dQ\0dR\0dS\0d\v\0d\r\0d\ 3\0d\ 6\0dT\0dU\0dV\0dW\0dX\0g\ e\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 2\0|\ 1\0j   \0d9\0\83\ 1\0j\ 4\0t\ 6\0d\13\0d\15\0dY\0dZ\0d[\0d\16\0d)\0d*\0d+\0d\\0d]\0d^\0d_\0d`\0g\ e\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1d\87\0d\88\0d\89\0d\8a\0d\8b\0d\8c\0d\8d\0d\8e\0d\8f\0d\90\0d\91\0d\92\0d\93\0d\94\0d\95\0d\96\0d\97\0d\98\0d\99\0d\9a\0d\9b\0d\9c\0g\16\0}\ 3\0|\0\0j
35320 +\0t\v\0|\ 1\0j\f\0\83\0\0\83\ 1\0t\v\0g\0\0|\ 3\0D]\10\0}\ 4\0|\ 4\0d\1c\0\19^\ 2\0q&\ 4\83\ 1\0\83\ 2\0\ 1|\0\0j
35321 +\0t\v\0g\0\0|\ 1\0j\f\0\83\0\0D]\15\0}\ 4\0|\ 1\0j\r\0|\ 4\0\83\ 1\0^\ 2\0qV\ 4\83\ 1\0t\v\0g\0\0|\ 3\0D]\10\0}\ 4\0|\ 4\0d\ 1\0\19^\ 2\0q{\ 4\83\ 1\0\83\ 2\0\ 1|\0\0j
35322 +\0|\ 1\0j\ e\0\83\0\0d\9d\0\83\ 2\0\ 1|\0\0j
35323 +\0|\ 1\0j\ f\0\83\0\0t\10\0d\a\0f\ 2\0t\11\0d\r\0f\ 2\0t\12\0d\a\0f\ 2\0t\13\0d\ 5\0f\ 2\0t\14\0d\r\0f\ 2\0g\ 5\0\83\ 2\0\ 1d\0\0S(\9e\0\0\0Ni\ 1\0\0\0i\ 2\0\0\0i
35324 +\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\v\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\f\0\0\0i\a\0\0\0i\b\0\0\0i\r\0\0\0i      \0\0\0i\1e\0\0\0i\1f\0\0\0i\ e\0\0\0\0\0\0i\ f\0\0\0i\10\0\0\0i!\0\0\0i\11\0\0\0i\12\0\0\0i"\0\0\0s\ 6\0\0\0aa [m]s\b\0\0\0bbb [kg]s  \0\0\0cccc [MW]g\11ê-\81\99\97q=i\0\0\0\0ih\0\0\0ii\0\0\0ij\0\0\0ik\0\0\0il\0\0\0im\0\0\0in\0\0\0io\0\0\0ip\0\0\0iq\0\0\0ir\0\0\0is\0\0\0i\13\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0it\0\0\0iu\0\0\0iv\0\0\0iw\0\0\0ix\0\0\0iy\0\0\0i'\0\0\0i.\0\0\0i5\0\0\0iÿÿÿÿiz\0\0\0i{\0\0\0i|\0\0\0i}\0\0\0i~\0\0\0i\7f\0\0\0i\80\0\0\0i\81\0\0\0i\82\0\0\0i\83\0\0\0i\84\0\0\0i#\0\0\0i(\0\0\0i-\0\0\0i2\0\0\0i7\0\0\0i<\0\0\0iA\0\0\0i)\0\0\0i*\0\0\0i+\0\0\0i3\0\0\0i4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i,\ 1\0\0i-\ 1\0\0i.\ 1\0\0i/\ 1\0\0i0\ 1\0\0i1\ 1\0\0i2\ 1\0\0i3\ 1\0\0R\9a\ 2\0\0Rr\ 1\0\0R\85\ 1\0\0t\ 2\0\0\0F3t\ 2\0\0\0F4t\ 2\0\0\0F5Rÿ\ 4\0\0t\ 2\0\0\0F7t\ 2\0\0\0F8t\ 2\0\0\0F9RV\0\0\0t\ 3\0\0\0G10t\ 3\0\0\0G11RW\0\0\0t\ 2\0\0\0G3R\ 3\ 5\0\0t\ 2\0\0\0G5R\ 1\ 5\0\0i$\0\0\0R\ 4\ 5\0\0i%\0\0\0t\ 2\0\0\0G8i&\0\0\0t\ 2\0\0\0G9Rý\ 4\0\0id\0\0\0\ 4\0\0R\0\ 5\0\0R\ 2\ 5\0\0(\ 3\0\0\0i\ 1\0\0\0i\ 2\0\0\0i
35325 +\0\0\0(\ 3\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\v\0\0\0(\ 3\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\f\0\0\0(\ 3\0\0\0i\a\0\0\0i\b\0\0\0i\r\0\0\0(\ 3\0\0\0i  \0\0\0i
35326 +\0\0\0i\1e\0\0\0(\ 3\0\0\0i\v\0\0\0i\f\0\0\0i\1f\0\0\0(\ 3\0\0\0i\r\0\0\0i\ e\0\0\0\0\0\0(\ 3\0\0\0i\ f\0\0\0i\10\0\0\0i!\0\0\0(\ 3\0\0\0i\11\0\0\0i\12\0\0\0i"\0\0\0(\ 2\0\0\0s\f\0\0\0FAMILLE_ZEROi\0\0\0\0(\ 2\0\0\0s\ 2\0\0\0F1i\ 1\0\0\0(\ 2\0\0\0s\ 2\0\0\0F2i\ 2\0\0\0(\ 2\0\0\0R\ 5\ 5\0\0i\ 3\0\0\0(\ 2\0\0\0R\ 6\ 5\0\0i\ 4\0\0\0(\ 2\0\0\0R\a\ 5\0\0i\ 5\0\0\0(\ 2\0\0\0Rÿ\ 4\0\0i\ 6\0\0\0(\ 2\0\0\0R\b\ 5\0\0i\a\0\0\0(\ 2\0\0\0\ 5\0\0i\b\0\0\0(\ 2\0\0\0R
35327 +\ 5\0\0i   \0\0\0(\ 2\0\0\0s\ 2\0\0\0G1i\1f\0\0\0(\ 2\0\0\0R\v\ 5\0\0i(\0\0\0(\ 2\0\0\0R\f\ 5\0\0i)\0\0\0(\ 2\0\0\0s\ 2\0\0\0G2i \0\0\0(\ 2\0\0\0R\r\ 5\0\0i!\0\0\0(\ 2\0\0\0R\ 3\ 5\0\0i"\0\0\0(\ 2\0\0\0R\ e\ 5\0\0i#\0\0\0(\ 2\0\0\0R\ 1\ 5\0\0i$\0\0\0(\ 2\0\0\0R\ 4\ 5\0\0i%\0\0\0(\ 2\0\0\0R\ f\ 5\0\0i&\0\0\0(\ 2\0\0\0R\10\ 5\0\0i'\0\0\0(\ 2\0\0\0\ 4\0\0id\0\0\0(\ 3\0\0\0\ 4\0\0R\0\ 5\0\0R\ 2\ 5\0\0(\15\0\0\0RY\0\0\0\ 1\0\0R0\0\0\0\0\0\0R1\0\0\0Rv\0\0\0Rk\0\0\0Rw\0\0\0R\9e\0\0\0R\8c\ 2\0\0R+\0\0\0R\ 1\ 2\0\0\ 1\0\0R)\ 4\0\0\ 1\0\0t\19\0\0\0getAllDistributionOfTypesR_\0\0\0R`\0\0\0\ 3\0\0\ 3\0\0\ 3\0\0(\ 5\0\0\0t\ 6\0\0\0testerR\86\0\0\0t\ 6\0\0\0cooExpt \0\0\0refFamIdsRü\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt    \0\0\0CheckMesh\0\16\0\0s"\0\0\0\0\ 1'\0\16\ 1\1f\ 1Å\ 1D\ 1é\ 1S\ 1@\ 1@\ 1O\ 1O\ 1H\ 19\ 1U\ 1\16\ 1C\ 1t\a\0\0\0zeFieldgffffff\ 2@gffffff\16@s\ 6\0\0\0dd [W]s\b\0\0\0eee [kA]R­\0\0\0\a\0\0i\96\0\0\0i\97\0\0\0i\98\0\0\0i\99\0\0\0i6\0\0\0i\9a\0\0\0i7\0\0\0i\9b\0\0\0i8\0\0\0i\9c\0\0\0i9\0\0\0i\9d\0\0\0i\9e\0\0\0i;\0\0\0i\9f\0\0\0i<\0\0\0\0\0\0i=\0\0\0\0\0\0i>\0\0\0\0\0\0i?\0\0\0\0\0\0i@\0\0\0\0\0\0iA\0\0\0\0\0\0iB\0\0\0\0\0\0c\ 2\0\0\0\f\0\0\0\ 5\0\0\0\13\0\0\0\ 3\0\0|\0\0j\0\0t\ 1\0|\ 1\0j\ 2\0\83\0\0\83\ 1\0d\ 1\0\83\ 2\0\ 1|\0\0j\0\0t\ 1\0|\ 1\0j\ 3\0\83\0\0\83\ 1\0d\ 1\0\83\ 2\0\ 1\88\0\0\88\a\0|\ 1\0j\ 2\0\83\0\0d\ 2\0\19\83\ 2\0\ 1|\0\0j\0\0t\ 1\0|\ 1\0j\ 3\0\83\0\0d\ 2\0\19\83\ 1\0d\ 3\0\83\ 2\0\ 1|\ 1\0j\ 3\0\83\0\0d\ 2\0\19d\ 2\0\19}\ 2\0|\ 2\0j\ 4\0t\ 5\0d\ 2\0|\ 1\0j\ 2\0\83\0\0d\ 2\0\19\83\ 3\0}\ 3\0t\ 6\0j\a\0\88\ 1\0\88\ 4\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\b\0\83\0\0\0\83\0\0j
35328 +\0\83\0\0}\ 5\0|\ 4\0j\v\0|\ 5\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0|\ 3\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1|\ 2\0j\ 4\0t\ 5\0d\ 5\0|\ 1\0j\ 2\0\83\0\0d\ 2\0\19\83\ 3\0}\ 6\0t\ 6\0j\a\0\88\ 2\0\88\ 5\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\b\0\83\0\0\0\83\0\0j
35329 +\0\83\0\0}\ 5\0|\ 4\0j\v\0|\ 5\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0|\ 6\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1|\ 2\0j\ 4\0t\ e\0d\ 2\0|\ 1\0j\ 2\0\83\0\0d\ 2\0\19\83\ 3\0}\a\0t\ 6\0j\a\0\88\ 3\0\88\ 6\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\b\0\83\0\0\0\83\0\0j
35330 +\0\83\0\0}\ 5\0|\ 4\0j\v\0|\ 5\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0|\a\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1|\ 1\0j\ 3\0\83\0\0d\ 2\0\19d\ 1\0\19}\b\0|\b\0j\ 4\0t\ 5\0d\ 2\0|\ 1\0j\ 2\0\83\0\0d\ 2\0\19\83\ 3\0}      \0t\ 6\0j\a\0\88\ 1\0\88\ 4\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\b\0\83\0\0j        \0\83\0\0j
35331 +\0\83\0\0}\ 5\0|\ 4\0j\v\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\ f\0\88\b\0\8c\0\0\ 1|\ 4\0j\10\0\83\0\0\ 4\1ed\ 6\07\ 2(|\0\0j\f\0|\ 4\0j\r\0|        \0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1|\b\0j\ 4\0t\ 5\0d\ 5\0|\ 1\0j\ 2\0\83\0\0d\ 2\0\19\83\ 3\0}
35332 +\0t\ 6\0j\a\0\88\ 2\0\88\ 5\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\b\0\83\0\0j       \0\83\0\0j
35333 +\0\83\0\0}\ 5\0|\ 4\0j\v\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\ f\0\88\b\0\8c\0\0\ 1|\ 4\0j\10\0\83\0\0\ 4\1ed\ 6\07\ 2(|\0\0j\f\0|\ 4\0j\r\0|
35334 +\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1|\b\0j\ 4\0t\ e\0d\ 2\0|\ 1\0j\ 2\0\83\0\0d\ 2\0\19\83\ 3\0}\v\0t\ 6\0j\a\0\88\ 3\0\88\ 6\0g\ 2\0\83\ 1\0}\ 4\0|\ 4\0j\b\0\83\0\0j   \0\83\0\0j
35335 +\0\83\0\0}\ 5\0|\ 4\0j\v\0|\ 5\0\83\ 1\0\ 1|\ 4\0j\ f\0\88\b\0\8c\0\0\ 1|\ 4\0j\10\0\83\0\0\ 4\1ed\ 6\07\ 2(|\0\0j\f\0|\ 4\0j\r\0|\v\0d\ 4\0d\ 4\0\83\ 3\0\83\ 1\0\ 1d\0\0S(\a\0\0\0Ni\ 1\0\0\0i\0\0\0\0i\ 2\0\0\0g\11ê-\81\99\97q=iÿÿÿÿiÐ\a\0\0(\11\0\0\0R+\0\0\0Ry\0\0\0RT\ 1\0\0Ra\ 1\0\0R\97\ 1\0\0R\13\ 1\0\0Rw\ 1\0\0t\v\0\0\0MergeFieldsR¹\0\0\0Rq\0\0\0R\9c\ 1\0\0R\88\ 1\0\0R0\0\0\0R1\0\0\0R\1c\ 1\0\0\0\0\0R)\ 1\0\0(\f\0\0\0R\12\ 5\0\0R>\ 2\0\0t\ 4\0\0\0zeF1t\ 6\0\0\0zeF1_1R0\ 2\0\0R\8f\ 2\0\0t\ 6\0\0\0zeF1_2t\ 6\0\0\0zeF1_3t\ 4\0\0\0zeF2t\ 6\0\0\0zeF2_1t\ 6\0\0\0zeF2_2t\ 6\0\0\0zeF2_3(  \0\0\0R\15\ 5\0\0t\ 4\0\0\0f1_1t\ 4\0\0\0f1_2t\ 4\0\0\0f1_3t\ 4\0\0\0f2_1t\ 4\0\0\0f2_2t\ 4\0\0\0f2_3R \0\0\0t\ 2\0\0\0t2(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\b\0\0\0CheckMFD\\16\0\0sT\0\0\0\0\ 1\1c\ 1\1c\ 1\17\ 1 \ 1\14\ 1\1f\ 1\15\ 1\18\ 1\r\ 1\1c\ 1\1f\ 1\15\ 1\18\ 1\r\ 1\1c\ 1\1f\ 1\15\ 1\18\ 1\r\ 1\1c\ 2\14\ 1\1f\ 1\15\ 1\18\ 1\r\ 1\r\0\11\ 1\1c\ 1\1f\ 1\15\ 1\18\ 1\r\ 1\r\0\11\ 1\1c\ 1\1f\ 1\15\ 1\18\ 1\r\ 1\r\0\11\ 1N(\ 3\0\0\0gffffff\ 2@i\ 3\0\0\0i\ 5\0\0\0(\ 3\0\0\0gffffff\16@i\a\0\0\0i\f\0\0\0(\ 2\0\0\0i
35336 +\0\0\0in\0\0\0(\ 2\0\0\0i\v\0\0\0io\0\0\0(\ 2\0\0\0i\f\0\0\0ip\0\0\0(\ 2\0\0\0i\r\0\0\0iq\0\0\0(\ 2\0\0\0i\ e\0\0\0ir\0\0\0(\ 2\0\0\0i\ f\0\0\0is\0\0\0(\ 2\0\0\0i\10\0\0\0it\0\0\0(\ 2\0\0\0i\11\0\0\0iu\0\0\0(\ 2\0\0\0i\12\0\0\0iv\0\0\0(\ 2\0\0\0i\13\0\0\0iw\0\0\0(\ 2\0\0\0i\14\0\0\0ix\0\0\0(\ 2\0\0\0i\15\0\0\0iy\0\0\0(\ 2\0\0\0i\16\0\0\0iz\0\0\0(\ 2\0\0\0i\17\0\0\0i{\0\0\0(\ 2\0\0\0i\18\0\0\0i|\0\0\0(\ 2\0\0\0i2\0\0\0i\96\0\0\0(\ 2\0\0\0i3\0\0\0i\97\0\0\0(\ 2\0\0\0i4\0\0\0i\98\0\0\0(\ 2\0\0\0i5\0\0\0i\99\0\0\0(\ 2\0\0\0i6\0\0\0i\9a\0\0\0(\ 2\0\0\0i7\0\0\0i\9b\0\0\0(\ 2\0\0\0i8\0\0\0i\9c\0\0\0(\ 2\0\0\0i9\0\0\0i\9d\0\0\0(\ 2\0\0\0i\9e\0\0\0i\9e\0\0\0(\ 2\0\0\0i;\0\0\0i\9f\0\0\0(\ 2\0\0\0i<\0\0\0\0\0\0(\ 2\0\0\0i=\0\0\0\0\0\0(\ 2\0\0\0i>\0\0\0\0\0\0(\ 2\0\0\0i?\0\0\0\0\0\0(\ 2\0\0\0i@\0\0\0\0\0\0(\ 2\0\0\0iA\0\0\0\0\0\0(\ 2\0\0\0iB\0\0\0\0\0\0(+\0\0\0R>\0\0\0RY\0\0\0\ 1\0\0Rc\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0\ 3\0\0\ 3\0\0\0\0\0Rk\0\0\0R\98\0\0\0R_\0\0\0R`\0\0\0Rn\0\0\0\0\0\0R\9b\ 2\0\0\ 2\0\0\0\0\0\0\0\0Rw\ 1\0\0R\13\ 1\0\0\0\0\0RB\0\0\0R{\ 1\0\0\0\0\0\0\0\0Rd\0\0\0R%\ 1\0\0R\1c\ 1\0\0RE\ 3\0\0Rq\0\0\0R+\ 1\0\0RK\ 1\0\0RR\ 1\0\0RP\ 1\0\0RT\ 1\0\0R7\ 2\0\0R]\ 1\0\0R[\ 1\0\0Ra\ 1\0\0R\\ 1\0\0R\v\0\0\0(!\0\0\0R    \0\0\0t\ 6\0\0\0fname1Rn\ 1\0\0t\ 6\0\0\0fname3RÊ\ 3\0\0R:\ 1\0\0\0\0\0t\ 5\0\0\0mm1_0t\ 5\0\0\0mm1_1Rî\0\0\0\0\0\0t\ 5\0\0\0mm2_0t\ 5\0\0\0mm2_1R\86\0\0\0Rg\ 3\0\0t\ 2\0\0\0t1t\ 5\0\0\0infoct\ 5\0\0\0fmts1t\ 5\0\0\0f1ts1Rz\ 2\0\0R\ 2\ 3\0\0\ 4\0\0t\ 5\0\0\0f1ts2R\1a\ 4\0\0t\ 5\0\0\0f1ts3RÜ\ 4\0\0t\ 4\0\0\0arr5t\ 4\0\0\0arr6t\ 5\0\0\0f1ts4t\ 4\0\0\0mfd1t\ 4\0\0\0mfd2R>\ 2\0\0R'\ 5\0\0(\0\0\0\0(       \0\0\0R\15\ 5\0\0\ 5\0\0R!\ 5\0\0R"\ 5\0\0R#\ 5\0\0R$\ 5\0\0R%\ 5\0\0\0\0\0R&\ 5\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1f\0\0\0testSymmetryPlusAggregationMFD1³\15\0\0s\\ 1\0\0\0\ 2\ 6\ 1\ 6\ 1\ 6\ 1\ 6\ 1 \ 16\0\16\ 1\r\ 1\ f\0
35337 +\ 1\r\ 1\1c\ 1\1c\ 1"\ 1"\ 1"\ 1
35338 +\ 1%\ 1%\ 2\ f\0
35339 +\ 1\r\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1
35340 +\ 1(\ 1(\ 1\16\ 1\18\ 1\10\ 1\10\ 1\16\ 1\16\ 1"\ 1"\ 2  \ 1?\0\16\ 1\r\ 1\ f\0
35341 +\ 1\r\ 1\1c\ 1\1c\ 1\1c\ 1"\ 1
35342 +\ 1"\ 1"\ 2\ f\0
35343 +\ 1\r\ 1\19\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1\1c\ 1
35344 +\ 1.\ 1.\ 1\16\ 1\1c\ 1\10\ 1\10\ 1\16\ 1\16\ 1%\ 1%\ 2\15\ 2        \11\r\ 2\ 6\ 1\ 6\ 1\ 6\ 1\f\ 2     \ 1       \ 1\f\0\11\0\r\ 1\e\ 1\r\ 1\r\0\r\0\r\ 1
35345 +\ 1\r\ 2\f\0\11\0\r\ 1\1e\ 1\r\ 1\r\0\r\0\r\ 1
35346 +\ 1\r\ 1\f\0\11\0\r\ 1\18\ 1\r\ 1\r\0\r\0\r\ 1
35347 +\ 1\r\ 1\r\ 2\f\ 1\1f\ 1\11\ 1\r\ 2  \ 1       \ 1\f\0\11\0\r\ 1\18\ 1\r\ 1\r\0\r\0\r\ 1
35348 +\ 1\r\ 1\f\0\11\0\r\ 1$\ 1\r\ 1\r\0\r\0\r\ 1
35349 +\ 1\r\ 1\f\0\11\0\r\ 1\e\ 1\r\ 1\r\0\r\0\r\ 1
35350 +\ 1\r\ 1\r\ 2\f\ 1\1f\ 1\11\ 1\r\ 2  \ 1\10\ 1\13\ 1\10\ 1\13\ 2       \ 1\10\ 1\13\ 1\10\ 1\13\ 2\15\ 1')\r\ 1\10\0\10\ 1!\ 1\r\ 1c\ 1\0\0\0\v\0\0\0\a\0\0\0C\0\0\0s\ 5\ 1\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0g\ 4\0\83\ 1\0}\ 2\0t\0\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 5\0\83\ 1\0}\ 3\0t\0\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0g\ 6\0\83\ 1\0}\ 4\0t\ 1\0\83\0\0}\ 5\0|\ 5\0j\ 2\0|\ 2\0|\ 3\0|\ 4\0\83\ 3\0\ 1|\ 5\0j\ 3\0d\b\0\83\ 1\0\ 1t\ 4\0|\ 5\0\83\ 1\0}\ 6\0t\ 5\0|\ 6\0\83\ 1\0}\a\0|\a\0j\ 6\0|\ 1\0d\ 4\0\83\ 2\0\ 1|\a\0j\a\0\83\0\0}\b\0t\b\0j   \0|\ 1\0\83\ 1\0}        \0|      \0j\a\0\83\0\0}
35351 +\0|\0\0j
35352 +\0|\ 6\0j\v\0|\b\0d    \0\83\ 2\0\83\ 1\0\ 1|\0\0j
35353 +\0|\ 6\0j\v\0|
35354 +\0d     \0\83\ 2\0\83\ 1\0\ 1d\0\0S(
35355 +\0\0\0Ns\r\0\0\0Pyfile107.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0\ 2\0\0g\11ê-\81\99\97q=(\f\0\0\0RY\0\0\0\0\0\0Rc\0\0\0RB\0\0\0t\1d\0\0\0MEDCouplingMappedExtrudedMeshR>\0\0\0R\v\0\0\0t\15\0\0\0convertToExtrudedMeshR'\0\0\0R(\0\0\0R0\0\0\0R1\0\0\0(\v\0\0\0R    \0\0\0R9\ 1\0\0RS\ 4\0\0RT\ 4\0\0t\ 4\0\0\0arrZt\ 6\0\0\0mesh3Dt\ 2\0\0\0exR\86\0\0\0t\ 3\0\0\0ex2R¢\0\0\0t\ 3\0\0\0ex3(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\11\0\0\0testExtrudedMesh1\8b\16\0\0\0\0\0\0\ 1\ 6\ 1\18\0\e\0\1e\ 1      \0\13\0\r\ 1\f\ 1\f\ 1\10\ 1\f\ 1\ f\ 1\f\ 1\19\ 1\19\ 1s\ 5\0\0\03.2.1s1\0\0\0This test requires at least MEDFile version 3.2.1s\ 5\0\0\04.0.0s@\0\0\0This test is not compatible with MEDFile version 4.0.0 and abovec\ 1\0\0\0\ 6\0\0\0\ 6\0\0\0C\0\0\0s)\ 1\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0d\ 3\0d\ 4\0\83\ 2\0}\ 3\0|\ 3\0j\ 1\0t\ 2\0d\ 5\0d\ 5\0d\ 4\0d\ 4\0g\ 4\0d\ 6\0d\ 6\0\83\ 3\0\83\ 1\0\ 1|\ 3\0j\ 3\0\83\0\0\ 1|\ 3\0j\ 4\0t\ 5\0d\ 4\0d\ 5\0g\ 2\0\83\ 2\0\ 1t\ 6\0\83\0\0}\ 4\0|\ 3\0|\ 4\0d\ 5\0<|\ 4\0j\a\0d\a\0d\ 5\0\83\ 2\0\ 1|\ 4\0j\b\0|\ 1\0d\ 6\0\83\ 2\0\ 1t  \0t
35356 +\0|\ 1\0\83\ 1\0\83\ 1\0j\v\0d\ 6\0 d\b\0d\ 5\0g\ 2\0k\ 2\0\0t\f\0\82\ 1\0t\ 6\0|\ 1\0\83\ 1\0}\ 5\0|\0\0j\r\0|\ 4\0j\ e\0|\ 5\0d     \0\83\ 2\0\83\ 1\0\ 1|\ 4\0j\ f\0|\ 2\0d\ 6\0\83\ 2\0\ 1t       \0t
35357 +\0|\ 2\0\83\ 1\0\83\ 1\0j\v\0d\ 6\0 t\10\0t\11\0\83\0\0d\ 6\0 \83\ 1\0k\ 2\0s%\ 1t\f\0\82\ 1\0d\0\0S(
35358 +\0\0\0Ns\r\0\0\0Pyfile108.meds\r\0\0\0Pyfile109.medR \ 2\0\0i\ 1\0\0\0i\0\0\0\0i\ 2\0\0\0R\9a\ 2\0\0i\ 3\0\0\0g\11ê-\81\99\97q=(\12\0\0\0R[\0\0\0Rc\0\0\0RY\0\0\0R]\0\0\0R^\0\0\0Re\0\0\0R>\0\0\0\0\0\0t\a\0\0\0write30R\ 5\0\0\0t\17\0\0\0MEDFileVersionOfFileStrt\a\0\0\0versiont\ e\0\0\0AssertionErrorR0\0\0\0R1\0\0\0R\v\0\0\0Rm\0\0\0t\ e\0\0\0MEDFileVersion(\ 6\0\0\0R  \0\0\0R9\ 1\0\0Rn\ 1\0\0R\83\0\0\0R\86\0\0\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\ f\0\0\0testWriteInto30\99\16\0\0\0\0\0\0\ 4\ 6\ 1\ 6\ 1\ f\0%\0
35359 +\0\16\ 1    \0
35360 +\ 1\10\ 2\10\ 1+\ 1\f\ 1\19\ 2\10\ 12\ 1c\ 1\0\0\0#\0\0\0\13\0\0\0C\0\0\0s1\a\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 2\0d\ 3\0d\ 2\0d\ 4\0d\ 2\0d\ 2\0d\ 3\0d\ 3\0d\ 3\0d\ 4\0d\ 3\0d\ 2\0d\ 4\0d\ 3\0d\ 4\0d\ 4\0d\ 4\0g\12\0d\ 5\0d\ 6\0\83\ 3\0}\ 2\0t\ 1\0d\a\0d\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0d\b\0\83\ 1\0\ 1|\ 3\0j\ 3\0t\ 4\0d      \0d
35361 +\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 4\0d
35362 +\0d\b\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d\v\0d\f\0d
35363 +\0d     \0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d\f\0d\r\0d\ e\0d
35364 +\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 3\0t\ 5\0d
35365 +\0d\ e\0d\ f\0d\b\0g\ 4\0\83\ 2\0\ 1|\ 3\0j\ 6\0\83\0\0\ 1|\ 3\0j\a\0|\ 2\0\83\ 1\0\ 1t\ 1\0|\ 3\0j\b\0\83\0\0d  \0\83\ 2\0}\ 4\0|\ 4\0j\ 2\0d\ 5\0\83\ 1\0\ 1d\v\0d        \0d\v\0d\f\0d\f\0d
35366 +\0d
35367 +\0d     \0d\b\0d
35368 +\0d\ 6\0d
35369 +\0d     \0d\ 6\0d\f\0d\r\0d\b\0d\ f\0g\12\0}\ 5\0x7\0t      \0d\ 5\0\83\ 1\0D])\0}\ 6\0|\ 4\0j\ 3\0t
35370 +\0|\ 5\0d\ 6\0|\ 6\0\14d\ 6\0|\ 6\0\14d\ 6\0\17!\83\ 2\0\ 1qr\ 1W|\ 4\0j\ 6\0\83\0\0\ 1|\ 4\0j\a\0|\ 2\0\83\ 1\0\ 1t\v\0\83\0\0}\a\0|\a\0j\f\0d\v\0|\ 3\0\83\ 2\0\ 1|\a\0j\f\0d\10\0|\ 4\0\83\ 2\0\ 1d\f\0}\b\0d\ 6\0}      \0d\11\0}
35371 +\0t\r\0t\ e\0t\ f\0\83\ 2\0}\v\0|\v\0j\10\0d\12\0\83\ 1\0\ 1|\v\0j\11\0|
35372 +\0|\b\0|  \0\83\ 3\0\ 1t\12\0d\v\0d    \0d\ 6\0d\f\0d
35373 +\0g\ 5\0\83\ 1\0}\f\0|\f\0j\10\0d\13\0\83\ 1\0\ 1t\0\0d\14\0d\15\0d\16\0d\17\0d\18\0g\ 5\0\83\ 1\0}\r\0|\v\0j\13\0|\r\0\83\ 1\0\ 1t\14\0\83\0\0}\ e\0|\ e\0j\15\0|\v\0|\a\0d\v\0|\f\0\83\ 4\0\ 1t\r\0t\ e\0t\ f\0\83\ 2\0}\ f\0|\ f\0j\10\0d\19\0\83\ 1\0\ 1|\ f\0j\11\0|
35374 +\0|\b\0|  \0\83\ 3\0\ 1t\12\0d\v\0d    \0d\ 6\0d\f\0d
35375 +\0d\b\0d\r\0g\a\0\83\ 1\0}\10\0|\10\0j\10\0d\1a\0\83\ 1\0\ 1t\0\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0g\a\0\83\ 1\0}\11\0|\ f\0j\13\0|\11\0\83\ 1\0\ 1t\14\0\83\0\0}\12\0|\12\0j\15\0|\ f\0|\a\0d\10\0|\10\0\83\ 4\0\ 1t\16\0\83\0\0}\13\0|\13\0j\17\0t\18\0\83\0\0\83\ 1\0\ 1|\13\0j\19\0t\1a\0\83\0\0\83\ 1\0\ 1|\13\0j\e\0\83\0\0j\1c\0|\a\0\83\ 1\0\ 1t\1d\0\83\0\0}\14\0|\14\0j\1e\0|\ e\0\83\ 1\0\ 1|\13\0j\1f\0\83\0\0\0|\14\0\83\ 1\0\ 1|\13\0j!\0\83\0\0}\15\0t\16\0|\15\0\83\ 1\0}\16\0|\0\0j"\0t#\0|\16\0j\e\0\83\0\0\83\ 1\0d  \0\83\ 2\0\ 1|\0\0j"\0t#\0|\16\0j\1f\0\83\0\0\83\ 1\0d     \0\83\ 2\0\ 1|\0\0j"\0t#\0|\16\0j\1f\0\83\0\0d\v\0\19\83\ 1\0\0\83\ 2\0\ 1|\0\0j$\0|\16\0j\e\0\83\0\0d\v\0\19j%\0|\13\0j\e\0\83\0\0d\v\0\19d"\0\83\ 2\0\83\ 1\0\ 1|\16\0j\1f\0\83\0\0d\v\0\19d\v\0\19j&\0|\16\0j\e\0\83\0\0d\v\0\19\83\ 1\0}\17\0|\13\0j\1f\0\83\0\0d\v\0\19d\v\0\19j&\0|\13\0j\e\0\83\0\0d\v\0\19\83\ 1\0}\18\0|\0\0j$\0|\17\0j%\0|\18\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t'\0j(\0|\13\0t'\0j)\0\83\ 2\0}\19\0t'\0j*\0|\19\0\83\ 1\0}\1a\0|\0\0j"\0t#\0|\1a\0j\e\0\83\0\0\83\ 1\0d  \0\83\ 2\0\ 1|\0\0j"\0t#\0|\1a\0j\1f\0\83\0\0\83\ 1\0d     \0\83\ 2\0\ 1|\0\0j"\0t#\0|\1a\0j\1f\0\83\0\0d\v\0\19\83\ 1\0\0\83\ 2\0\ 1|\0\0j$\0|\1a\0j\e\0\83\0\0d\v\0\19j%\0|\13\0j\e\0\83\0\0d\v\0\19d"\0\83\ 2\0\83\ 1\0\ 1|\1a\0j\1f\0\83\0\0d\v\0\19d\v\0\19j&\0|\1a\0j\e\0\83\0\0d\v\0\19\83\ 1\0}\e\0|\0\0j$\0|\e\0j%\0|\18\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t'\0j(\0|\13\0j\1f\0\83\0\0t'\0j)\0\83\ 2\0}\19\0t'\0j*\0|\19\0\83\ 1\0}\1c\0|\1c\0d\v\0\19d\v\0\19j&\0|\1a\0j\e\0\83\0\0d\v\0\19\83\ 1\0}\1d\0|\0\0j$\0|\1d\0j%\0|\18\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t'\0j(\0|\13\0j\1f\0\83\0\0d\v\0\19t'\0j)\0\83\ 2\0}\19\0t'\0j*\0|\19\0\83\ 1\0}\1e\0|\1e\0d\v\0\19j&\0|\1a\0j\e\0\83\0\0d\v\0\19\83\ 1\0}\1f\0|\0\0j$\0|\1f\0j%\0|\18\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t'\0j(\0|\13\0j\1f\0\83\0\0d\v\0\19d\v\0\19t'\0j)\0\83\ 2\0}\19\0t'\0j*\0|\19\0\83\ 1\0\0\0j&\0|\1a\0j\e\0\83\0\0d\v\0\19\83\ 1\0}!\0|\0\0j$\0|!\0j%\0|\18\0d"\0d"\0\83\ 3\0\83\ 1\0\ 1t'\0j(\0|\13\0j\e\0\83\0\0t'\0j)\0\83\ 2\0}\19\0t'\0j*\0|\19\0\83\ 1\0}"\0|\0\0j"\0t#\0|"\0\83\ 1\0d    \0\83\ 2\0\ 1|\0\0j$\0|"\0d\v\0\19j%\0|\13\0j\e\0\83\0\0d\v\0\19d"\0\83\ 2\0\83\ 1\0\ 1d\0\0S(#\0\0\0Ns\r\0\0\0Pyfile110.medg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?i    \0\0\0i\ 2\0\0\0Rn\ 2\0\0i\ 5\0\0\0i\ 1\0\0\0i\ 4\0\0\0i\0\0\0\0i\ 3\0\0\0i\ 6\0\0\0i\a\0\0\0i\b\0\0\0iÿÿÿÿg\0\0\0\0\0\0\12@Ro\ 2\0\0Rp\ 2\0\0i
35376 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0Rq\ 2\0\0Rr\ 2\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0g\11ê-\81\99\97q=(+\0\0\0RY\0\0\0R[\0\0\0R]\0\0\0R^\0\0\0R_\0\0\0R`\0\0\0Rb\0\0\0Rc\0\0\0RC\0\0\0Rn\0\0\0Re\0\0\0R>\0\0\0Rj\0\0\0Rw\ 1\0\0R\1c\ 1\0\0RX\ 1\0\0RB\0\0\0\0\0\0Rk\0\0\0R{\ 1\0\0\0\0\0R|\ 1\0\0RK\ 1\0\0RR\ 1\0\0RP\ 1\0\0R]\ 1\0\0R[\ 1\0\0RT\ 1\0\0R7\ 2\0\0\0\0\0RE\ 3\0\0Ra\ 1\0\0R\\ 1\0\0t       \0\0\0serializeR+\0\0\0Ry\0\0\0R0\0\0\0R1\0\0\0R5\ 4\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0(#\0\0\0\0\0\0R9\ 1\0\0R\ 3\ 2\0\0\0\0\0R\84\0\0\0Rt\ 2\0\0\0\0\0R\83\0\0\0Ru\ 2\0\0Rv\ 2\0\0Rw\ 2\0\0Ro\ 2\0\0Rx\ 2\0\0\ 1\0\0\0\0\0Rq\ 2\0\0Ry\ 2\0\0Rz\ 2\0\0\0\0\0R>\ 2\0\0Rm\ 1\0\0Re\ 1\0\0R8\ 5\0\0RC\ 1\0\0\0\0\0R\r\0\0\0t\ 4\0\0\0mfd3R      \ 1\0\0\ 3\0\0R\v\ 1\0\0t\ 5\0\0\0fmts5t\ 3\0\0\0ff5t\ 5\0\0\0f1ts6t\ 3\0\0\0ff6t\ 3\0\0\0ms7(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt"\0\0\0testPickelizationOfMEDFileObjects1¬\16\0\0\0\0\0\0\ 2\ 6\ 1H\ 1\ f\ 1\r\ 1\19\ 1\19\ 1\1c\ 1\1c\ 1\1c\ 1
35377 +\ 1\r\ 1\15\ 1\r\ 1<\ 1\13\ 1#\ 1\ 4\ 1
35378 +\ 1\r\ 2    \ 1\10\ 1\10\ 2\ 6\0\ 6\0\ 6\ 1\ f\ 1\r\ 1\13\ 1\e\0\r\ 1\e\ 1\r\ 1       \ 1\16\ 1\ f\ 1\r\ 1\13\ 1!\0\r\ 1!\ 1\r\ 1       \ 1\16\ 1     \ 1\10\0\10\ 1\13\ 1 \0\r\ 1\13\ 2\f\ 1\f\ 1\1c\ 1\1c\ 1 \ 1-\ 1'\ 1'\ 1\1c\ 2\15\ 1\ f\ 2\1c\ 1\1c\ 1 \ 1-\ 1'\ 1\1c\ 2\e\ 1\ f\ 1!\ 1\1c\ 2\1f\ 1\ f\ 1\1d\ 1\1c\ 2#\ 1\ f\ 1\19\ 1\1c\ 2\e\ 1\ f\ 1\16\ 1'\ 1c\ 1\0\0\0\f\0\0\0\ 5\0\0\0C\0\0\0s\14\ 3\0\0|\0\0j\0\0\83\0\0\ 1t\ 1\0j\ 2\0d\ 1\0\83\ 1\0}\ 1\0|\0\0j\ 3\0t\ 4\0|\ 1\0t\ 5\0\83\ 2\0\83\ 1\0\ 1t\ 6\0j\a\0|\ 1\0t\ 6\0j\b\0\83\ 2\0}\ 2\0t\ 6\0j   \0|\ 2\0\83\ 1\0}\ 3\0|\0\0j\ 3\0t\ 4\0|\ 3\0t\ 5\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ 3\0|\ 1\0j
35379 +\0\83\0\0j\v\0|\ 3\0j
35380 +\0\83\0\0d\ 2\0\83\ 2\0\83\ 1\0\ 1|\0\0j\f\0\83\0\0\ 1t\ 1\0j\ 2\0d\ 3\0\83\ 1\0}\ 1\0|\0\0j\ 3\0t\ 4\0|\ 1\0t\r\0\83\ 2\0\83\ 1\0\ 1t\ 6\0j\a\0|\ 1\0t\ 6\0j\b\0\83\ 2\0}\ 2\0t\ 6\0\0|\ 2\0\83\ 1\0}\ 4\0|\0\0j\ 3\0t\ 4\0|\ 4\0t\r\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ 3\0|\ 1\0j
35381 +\0\83\0\0j\v\0|\ 4\0j
35382 +\0\83\0\0d\ 2\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ e\0\83\0\0\ 1t\ f\0d\ 4\0\83\ 1\0}\ 5\0t\10\0d\ 4\0\83\ 1\0}\ 6\0|\0\0j\ 3\0t\ 4\0|\ 5\0d\ 5\0\19t\11\0\83\ 2\0\83\ 1\0\ 1t\ 6\0j\a\0|\ 5\0d\ 5\0\19t\ 6\0j\b\0\83\ 2\0}\ 2\0t\ 6\0j        \0|\ 2\0\83\ 1\0}\a\0|\0\0j\12\0t\13\0|\ 5\0d\ 5\0\19\83\ 1\0t\13\0|\a\0\83\ 1\0\83\ 2\0\ 1|\0\0j\ 3\0t\ 4\0|\a\0t\11\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ 3\0|\a\0d\ 5\0\19j\14\0|\ 6\0d\ 5\0\19\83\ 1\0j\v\0|\ 5\0d\ 5\0\19d\ 5\0\19j\14\0|\ 6\0d\ 5\0\19\83\ 1\0d\ 2\0d\ 5\0\83\ 3\0\83\ 1\0\ 1t\ 6\0j\a\0|\ 5\0d\ 5\0\19d\ 5\0\19t\ 6\0j\b\0\83\ 2\0}\ 2\0t\ 6\0j     \0|\ 2\0\83\ 1\0}\b\0|\0\0j\ 3\0t\ 4\0|\b\0t\15\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ 3\0|\b\0j\14\0|\ 6\0d\ 5\0\19\83\ 1\0j\v\0|\ 5\0d\ 5\0\19d\ 5\0\19j\14\0|\ 6\0d\ 5\0\19\83\ 1\0d\ 2\0d\ 5\0\83\ 3\0\83\ 1\0\ 1|\0\0j\16\0\83\0\0\ 1t\17\0d\ 6\0\83\ 1\0}      \0t\ 6\0j\a\0|        \0t\ 6\0j\b\0\83\ 2\0}\ 2\0t\ 6\0j       \0|\ 2\0\83\ 1\0}
35383 +\0|\0\0j\12\0t\13\0|    \0\83\ 1\0t\13\0|
35384 +\0\83\ 1\0\83\ 2\0\ 1x?\0t\18\0t\13\0|     \0\83\ 1\0\83\ 1\0D]+\0}\v\0|\0\0j\ 3\0|   \0|\v\0\19j\v\0|
35385 +\0|\v\0\19d\ 2\0\83\ 2\0d\ 5\0\19\83\ 1\0\ 1\ 2Wd\0\0S(\a\0\0\0Ns\10\0\0\0MEDFileMesh5.medg\11ê-\81\99\97q=s\f\0\0\0Pyfile55.meds\f\0\0\0Pyfile63.medi\0\0\0\0s\f\0\0\0Pyfile56.med(\19\0\0\0R¿\0\0\0R'\0\0\0R(\0\0\0R0\0\0\0Rt\0\0\0\0\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\0\0\0R1\0\0\0\ 2\0\0\ 2\0\0R6\ 3\0\0R[\ 1\0\0RP\ 1\0\0R#\ 3\0\0R+\0\0\0Ry\0\0\0R5\ 4\0\0R\1e\ 3\0\0\ 2\0\0\ 2\0\0Rn\0\0\0(\f\0\0\0R        \0\0\0R\86\0\0\0R\r\0\0\0\0\0\0\ 4\0\0\ 3\0\0t\ 3\0\0\0ms4RJ\ 5\0\0RL\ 5\0\0t\ 6\0\0\0paramst\a\0\0\0params7Rî\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt"\0\0\0testPickelizationOfMEDFileObjects2\ 6\17\0\0sH\0\0\0\0\ 3
35386 +\ 1\ f\ 1\16\ 1\15\ 1\ f\ 1\16\ 1%\ 2
35387 +\ 1\ f\ 1\16\ 1\15\ 1\ f\ 1\16\ 1%\ 1
35388 +\ 2\f\ 1\f\ 1\1a\ 1\19\ 1\ f\ 1 \ 1\16\ 1B\ 2\1d\ 1\ f\ 1\16\ 1>\ 2
35389 +\ 1\f\ 1\15\ 1\ f\ 1\1c\ 1\19\ 1%\ 1\ 4\ 1c\ 1\0\0\0\b\0\0\0\b\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1t\ 2\0j\ 3\0|\ 2\0\83\ 1\0}\ 3\0|\ 3\0j\ 4\0d\ 3\0\83\ 1\0\ 1t\ 5\0\83\0\0}\ 4\0|\ 3\0|\ 4\0d\ 4\0<|\0\0j\ 6\0|\ 4\0j\a\0d\ 5\0\83\ 1\0\f\83\ 1\0\ 1t\b\0d\ 6\0d\a\0d\b\0d   \0d\ 4\0g\ 5\0\83\ 1\0}\ 5\0|\ 5\0j       \0\83\0\0}\ 6\0|\ 4\0j
35390 +\0d\ 5\0|\ 5\0\83\ 2\0\ 1|\ 4\0j\v\0\83\0\0\ 1|\0\0j\f\0t\r\0|\ 4\0j
35391 +\0d\ 5\0|\ 5\0d
35392 +\0d
35393 +\0d     \0\85\ 3\0\19\83\ 4\0\ 1|\ 4\0j\v\0\83\0\0\ 1|\0\0j\ e\0|\ 5\0j\ f\0\83\0\0|\ 4\0j\a\0d\ 5\0\83\ 1\0j\ f\0\83\0\0\83\ 2\0\ 1|\0\0j\ 6\0|\ 4\0j\a\0d\ 5\0\83\ 1\0j\10\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\ 4\0j\11\0|\ 1\0d       \0\83\ 2\0\ 1t\12\0j\13\0|\ 1\0\83\ 1\0}\a\0|\0\0j\ 6\0|\ 4\0j\10\0|\a\0d\v\0\83\ 2\0d\ 4\0\19\83\ 1\0\ 1|\0\0j\ 6\0|\a\0j\a\0d\ 5\0\83\ 1\0j\10\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\a\0j\a\0d\ 5\0\83\ 1\0j\14\0d\ 4\0d\ 4\0d\f\0\83\ 3\0\ 1|\0\0j\ 6\0|\ 4\0j\10\0|\a\0d\v\0\83\ 2\0d\ 4\0\19\f\83\ 1\0\ 1|\a\0j\a\0d\ 5\0\83\ 1\0j\14\0d\ 4\0d\ 4\0d\ 6\0\83\ 3\0\ 1|\0\0j\ 6\0|\ 4\0j\10\0|\a\0d\v\0\83\ 2\0d\ 4\0\19\83\ 1\0\ 1d
35394 +\0S(\r\0\0\0s8\0\0\0Test global number on nodes here. Used by partitionners.s\r\0\0\0Pyfile112.medi\ 5\0\0\0\ 2\0\0i\0\0\0\0i\ 1\0\0\0i\a\0\0\0i\b\0\0\0i  \0\0\0i\ 2\0\0\0Ng\11ê-\81\99\97q=i
35395 +\0\0\0(\15\0\0\0RY\0\0\0Ry\ 1\0\0R[\0\0\0t\15\0\0\0Build1DMeshFromCoordsRB\0\0\0R>\0\0\0R0\0\0\0t\18\0\0\0getGlobalNumFieldAtLevelRk\0\0\0Rq\0\0\0t\18\0\0\0setGlobalNumFieldAtLevelR\0\ 2\0\0R)\0\0\0R*\0\0\0R+\0\0\0\ 3\0\0R1\0\0\0R\v\0\0\0R'\0\0\0R(\0\0\0R\9f\0\0\0(\b\0\0\0R   \0\0\0R9\ 1\0\0\ 1\0\0R\83\0\0\0R\86\0\0\0Re\ 1\0\0t\ 4\0\0\0dRefR¢\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\15\0\0\0testGlobalNumOnNodes12\17\0\0s2\0\0\0\0\ 2\ 6\ 1\f\0
35396 +\ 1\ f\ 1\r\ 1  \ 1
35397 +\ 1\17\ 1\e\ 1\f\ 1\10\ 1
35398 +\ 1&\ 1
35399 +\ 1%\ 1\1f\ 1\10\ 1\ f\ 1\1d\ 1\1f\ 1\1c\ 1\1e\ 1\1c\ 1\1d\ 1c\ 1\0\0\0\11\0\0\0\a\0\0\0C\0\0\0\ 2\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0\83\ 1\0}\ 2\0|\ 2\0j\ 1\0\83\0\0\ 1t\ 2\0j\ 3\0|\ 2\0\83\ 1\0}\ 3\0|\ 3\0j\ 4\0d\ 3\0\83\ 1\0\ 1t\ 5\0\83\0\0}\ 4\0|\ 3\0|\ 4\0d\ 4\0<d\ 5\0}\ 5\0d\18\0}\ 6\0t\ 6\0t\a\0\83\ 1\0}\a\0|\a\0j\b\0|\ 3\0\83\ 1\0\ 1|\a\0j\ 4\0|\ 5\0\83\ 1\0\ 1|\a\0j   \0t\0\0d   \0d
35400 +\0d\v\0d\f\0d\r\0g\ 5\0\83\ 1\0\83\ 1\0\ 1|\a\0j
35401 +\0|\ 6\0\8c\0\0\ 1t\ 6\0t\v\0\83\ 1\0}\b\0|\b\0j\b\0|\ 3\0\83\ 1\0\ 1|\b\0j\ 4\0|\ 5\0\83\ 1\0\ 1|\b\0j     \0t\0\0d\ e\0d\ f\0d\10\0d\11\0g\ 4\0\83\ 1\0\83\ 1\0\ 1|\b\0j
35402 +\0|\ 6\0\8c\0\0\ 1t\f\0\83\0\0}        \0|      \0j\r\0|\a\0\83\ 1\0\ 1|    \0j\r\0|\b\0\83\ 1\0\ 1|\0\0j\ e\0t\ f\0|   \0j\10\0\83\0\0\83\ 1\0t\ f\0t\a\0t\v\0g\ 2\0\83\ 1\0\83\ 2\0\ 1|  \0j\11\0\83\0\0}
35403 +\0|
35404 +\0j\12\0\83\0\0\ 4\1ed\b\07\ 2(|
35405 +\0j
35406 +\0d\12\0d\13\0d\14\0\83\ 3\0\ 1t\13\0\83\0\0}\v\0|\v\0j\14\0\0\83\ 1\0\ 1|\v\0j\14\0|
35407 +\0\83\ 1\0\ 1|\ 4\0j\15\0|\ 1\0d\b\0\83\ 2\0\ 1|\v\0j\15\0|\ 1\0d\ 4\0\83\ 2\0\ 1t\16\0j\17\0t\a\0t\18\0f\ 2\0g\ 1\0\83\ 1\0}\f\0t\19\0j\1a\0|\ 1\0\83\ 1\0}\ 4\0t\e\0|\ 1\0t\1c\0|\f\0\83\ 3\0}\r\0|\r\0j\1d\0\83\0\0\ 1|\0\0j\ e\0t\1e\0|\r\0\83\ 1\0d\a\0\83\ 2\0\ 1|\r\0d\ 4\0\19}\v\0|\0\0j\ e\0t\1e\0|\v\0\83\ 1\0d\b\0\83\ 2\0\ 1|\v\0d\ 4\0\19}\ e\0|\v\0d\a\0\19}\ f\0|\0\0j\ e\0|\ e\0j\10\0\83\0\0t\a\0g\ 1\0\83\ 2\0\ 1|\0\0j\1f\0|\ e\0\0|\ 4\0\83\ 1\0j!\0|\a\0d\15\0d\15\0\83\ 3\0\83\ 1\0\ 1|\a\0j\11\0\83\0\0}\10\0|\10\0d\16\07}\10\0|\10\0j
35408 +\0d\14\0d\12\0d\13\0\83\ 3\0\ 1|\0\0j\1f\0|\ f\0\0|\ 4\0\83\ 1\0j!\0|\10\0d\15\0d\15\0\83\ 3\0\83\ 1\0\ 1d\17\0S(\19\0\0\0ss\0\0\0Test for advanced API on read to speed up read phase for users with "huge" number of time steps (more than 10 000).s\r\0\0\0Pyfile113.medi\ 5\0\0\0\ 2\0\0i\0\0\0\0\ 3\0\0g\0\0\0\0\0\0\14@i\ 1\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0\0\0g\9a\99\99\99\99\99¹?g\9a\99\99\99\99\99É?g333333Ó?g\9a\99\99\99\99\99Ù?g\0\0\0\0\0\0ð?g\9a\99\99\99\99\99ñ?g333333ó?gÍÌÌÌÌÌô?i\ 3\0\0\0i\ 4\0\0\0g\0\0\0\0\0\0\18@g\11ê-\81\99\97q=g\0\0\0\0\0\0\0@N(\ 3\0\0\0g\0\0\0\0\0\0\14@i\ 1\0\0\0i\ 2\0\0\0("\0\0\0RY\0\0\0Ry\ 1\0\0R[\0\0\0RT\ 5\0\0RB\0\0\0R>\0\0\0Rw\ 1\0\0R\1c\ 1\0\0\0\0\0R{\ 1\0\0\0\0\0R\13\ 1\0\0\0\0\0R%\ 1\0\0R+\0\0\0R\ 1\ 2\0\0R\81\ 1\0\0Rq\0\0\0R+\ 1\0\0\0\0\0RE\ 3\0\0R\v\0\0\0t\ f\0\0\0MEDFileEntitiest   \0\0\0BuildFromRù\ 3\0\0R'\0\0\0R(\0\0\0R[\ 1\0\0RN\0\0\0Rv\ 3\0\0Ry\0\0\0R0\0\0\0R5\ 4\0\0R1\0\0\0(\11\0\0\0R    \0\0\0R9\ 1\0\0\ 1\0\0R\83\0\0\0R\86\0\0\0Rg\ 3\0\0t\ 3\0\0\0ts1Rã\0\0\0\0\0\0\0\0\0t\ 6\0\0\0f1ts_2Rm\ 1\0\0t\ 3\0\0\0entRl\ 1\0\0RB\ 2\0\0R;\ 1\0\0R
35409 +\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testPartialReadOfEntities1M\17\0\0s^\0\0\0\0\ 2\ 6\ 1\f\0
35410 +\ 1\ f\ 1\r\ 1  \ 1
35411 +\ 2\ 6\ 1\ 6\ 1\f\0\r\0\r\ 1"\ 1\r\ 1\f\0\r\0\r\ 1\1f\ 1\r\ 1      \ 1\r\ 1\r\ 1(\ 1\f\ 1\11\ 1\13\ 1   \ 1\r\ 1\r\ 2\10\ 1\10\ 2\18\ 1\ f\ 1\12\ 1
35412 +\ 1\16\ 1
35413 +\ 1\16\ 1
35414 +\0
35415 +\ 1\19\ 1%\ 1\f\0
35416 +\0\13\ 1%\ 1c\ 1\0\0\0\e\0\0\0 \0\0\0C\0\0\0
35417 +\0\0d\ 1\0}\ 1\0t\0\0j\ 1\0\83\0\0}\ 2\0|\ 2\0j\ 2\0\83\0\0}\ 2\0|\ 2\0j\ 3\0\83\0\0}\ 3\0t\ 4\0j\ 5\0\83\0\0}\ 4\0|\ 4\0j\ 6\0|\ 3\0j\a\0\83\0\0\83\ 1\0\ 1|\ 4\0j\b\0d\ 2\0|\ 3\0\83\ 2\0\ 1|\ 4\0j        \0|\ 3\0j
35418 +\0\83\0\0\83\ 1\0\ 1|\ 4\0j\v\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\f\0\83\0\0}\ 5\0|\ 5\0j\r\0|\ 2\0\83\ 1\0\ 1|\ 5\0j\ e\0d\ 2\0t\ f\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\10\0|\ 6\0j\11\0\83\0\0j\12\0\83\0\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ 5\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\ 5\0j\15\0\83\0\0\\ 2\0}\ 6\0}\a\0|\0\0j\10\0|\ 6\0j\16\0\83\0\0|\ 5\0j\17\0\83\0\0j\16\0\83\0\0\83\ 2\0\ 1|\0\0j\10\0|\a\0d)\0d*\0f\ 2\0d+\0d,\0f\ 2\0d-\0d.\0f\ 2\0d/\0d0\0f\ 2\0g\ 4\0\83\ 2\0\ 1t\18\0j\ 5\0|\ 1\0\83\ 1\0}\b\0|\0\0j\10\0|\b\0j
35419 +\0\83\0\0d\f\0\83\ 2\0\ 1|\0\0j\10\0|\b\0j\19\0\83\0\0d\ 2\0d\r\0d\ e\0g\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\1a\0|\b\0t\f\0\83\ 2\0\83\ 1\0\ 1|\ 5\0j\ e\0t\ f\0d\ 2\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\10\0|\ 6\0j\11\0\83\0\0j\12\0\83\0\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 2\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\b\0j\e\0d\r\0d\ 3\0d\ f\0\83\ 3\0\ 1|\b\0j\17\0\83\0\0}    \0|      \0d\ 3\09}  \0|\b\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\1c\0j\ 5\0|\ 1\0d\f\0\83\ 2\0}
35420 +\0|\0\0j\10\0|
35421 +\0j\1d\0\83\0\0d1\0d2\0g\ 2\0\83\ 2\0\ 1|\0\0j\10\0t\1e\0|
35422 +\0\83\ 1\0d\ 3\0\83\ 2\0\ 1|\0\0j\13\0t\1a\0|
35423 +\0t\1f\0\83\ 2\0\83\ 1\0\ 1|
35424 +\0d\ e\0\19j\ e\0t\ f\0d\ 2\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|
35425 +\0j\ e\0t\ f\0d\ 2\0d\r\0d\ 2\0|\ 4\0\83\ 5\0}\ 6\0|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|
35426 +\0\0\83\0\0}\v\0|\v\0j!\0\83\0\0\ 1|\v\0j!\0\83\0\0}\f\0|\f\0j\ e\0d\ 2\0t\ f\0|\ 4\0\83\ 3\0}\ 6\0|\0\0j\13\0|\ 6\0j\11\0\83\0\0j\14\0d\ 3\0|\ 2\0j\11\0\83\0\0\14d\10\0\83\ 2\0\83\ 1\0\ 1|\ 2\0j\e\0d\ f\0d\r\0d\ 3\0\83\ 3\0\ 1|\ 2\0j\11\0\83\0\0\ 4\1ed\ 3\09\ 2(|\0\0j\13\0|\ 6\0j\14\0|\ 2\0d\a\0d\a\0\83\ 3\0\83\ 1\0\ 1|\ 2\0j\11\0\83\0\0\ 4\1ed\ 3\0:\ 2(t"\0d
35427 +\0d\b\0\83\ 2\0}\r\0d\ 2\0|\r\0(|\r\0j#\0d\ 4\0d\ 5\0d\ 6\0g\ 3\0\83\ 1\0\ 1x3\0|
35428 +\0D]+\0}\v\0|\v\0j\ e\0t\ f\0d\ 2\0|\ 4\0\83\ 3\0}\ 6\0|\r\0|\ 6\0j\11\0\83\0\07}\r\0\ 3W|\0\0j\13\0|\r\0j\14\0d\b\0|\ 2\0j\11\0\83\0\0\14d\10\0\83\ 2\0\83\ 1\0\ 1t$\0t%\0\83\ 1\0}\ e\0|\ e\0j\e\0d\11\0d\12\0d\13\0\83\ 3\0\ 1|\ e\0j&\0|\ 2\0j\ 3\0\83\0\0\83\ 1\0\ 1t"\0d\14\0d\ 3\0\83\ 2\0}\ f\0|\ f\0j#\0d\15\0d\16\0g\ 2\0\83\ 1\0\ 1t'\0t(\0d\14\0\83\ 1\0\83\ 1\0|\ f\0d\17\0d\17\0\85\ 2\0d\ 2\0f\ 2\0<d\ 3\0|\ f\0d\17\0d\17\0\85\ 2\0d\ 2\0f\ 2\0\19\14|\ f\0d\17\0d\17\0\85\ 2\0d\r\0f\ 2\0<|\ e\0j       \0d\18\0\83\ 1\0\ 1|\ e\0j)\0|\ f\0\83\ 1\0\ 1t\f\0j\ 5\0\83\0\0}\10\0|\10\0j\r\0|\ e\0\83\ 1\0\ 1|\0\0j\10\0|\10\0j*\0\83\0\0d3\0\83\ 2\0\ 1|\0\0j\10\0|\10\0j\19\0\83\0\0d\12\0d\13\0d\11\0g\ 3\0\83\ 2\0\ 1|\10\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t$\0t%\0\83\ 1\0}\11\0|\11\0j\e\0d\19\0d\1a\0d\e\0\83\ 3\0\ 1|\11\0j&\0|\ 2\0j\ 3\0\83\0\0\83\ 1\0\ 1t"\0d\1c\0d\ 3\0\83\ 2\0}\12\0|\ f\0j#\0d\1d\0d\1e\0g\ 2\0\83\ 1\0\ 1t'\0t(\0d\1c\0\83\ 1\0\83\ 1\0|\12\0d\17\0d\17\0\85\ 2\0d\ 2\0f\ 2\0<|\12\0d\17\0d\17\0\85\ 2\0d\ 2\0f\ 2\0c\ 2\0\19d\12\07\ 3<d\b\0|\12\0d\17\0d\17\0\85\ 2\0d\ 2\0f\ 2\0\19\14|\12\0d\17\0d\17\0\85\ 2\0d\r\0f\ 2\0<|\11\0j     \0d\1f\0\83\ 1\0\ 1|\12\0j    \0|\11\0j
35429 +\0\83\0\0\83\ 1\0\ 1|\11\0j)\0|\12\0\83\ 1\0\ 1t\f\0j\ 5\0\83\0\0}\13\0t+\0d\r\0d\ 3\0d    \0d\v\0d
35430 +\0\0d\12\0d!\0g\b\0\83\ 1\0}\14\0|\14\0j        \0d"\0\83\ 1\0\ 1|\13\0j,\0|\11\0|\ 4\0d\ 2\0|\14\0\83\ 4\0\ 1|\13\0j-\0t%\0d\ 2\0|\ 4\0\83\ 3\0\ 1|\13\0j-\0t%\0d\ 2\0|\ 4\0\83\ 3\0\\ 2\0}\ 6\0}\a\0|\a\0j        \0|\14\0j
35431 +\0\83\0\0\83\ 1\0\ 1|\0\0j\13\0|\a\0j\14\0|\14\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\12\0d\10\0\83\ 2\0\83\ 1\0\ 1|\13\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\f\0|\ 1\0d\1f\0\83\ 2\0}\15\0|\15\0j-\0t%\0d\ 2\0|\ 4\0\83\ 3\0\\ 2\0}\ 6\0}\a\0|\a\0j  \0|\14\0j
35432 +\0\83\0\0\83\ 1\0\ 1|\0\0j\13\0|\a\0j\14\0|\14\0\83\ 1\0\83\ 1\0\ 1|\0\0j\13\0|\ 6\0j\14\0|\12\0d\10\0\83\ 2\0\83\ 1\0\ 1t.\0t%\0\83\ 1\0}\16\0|\16\0j        \0d#\0\83\ 1\0\ 1|\16\0j\e\0d$\0d%\0d&\0\83\ 3\0\ 1|\16\0j&\0|\ 2\0j\ 3\0\83\0\0\83\ 1\0\ 1|\16\0j)\0|\ 2\0j\ 3\0\83\0\0j\a\0\83\0\0\83\ 1\0\ 1t/\0j\ 5\0\83\0\0}\17\0|\17\0j\r\0|\16\0\83\ 1\0\ 1|\17\0j\v\0|\ 1\0d\ 2\0\83\ 2\0\ 1t0\0|\ 1\0\83\ 1\0}\18\0|\0\0j\10\0t\1e\0|\18\0\83\ 1\0d    \0\83\ 2\0\ 1g\0\0|\18\0D]\f\0}\v\0|\v\0^\ 2\0q/\b}\19\0|\0\0j\13\0t\1a\0|\19\0d\ 2\0\19t\1f\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0t\1a\0|\19\0d\r\0\19t\1f\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0t\1a\0|\19\0d\ 3\0\19t1\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0t\1a\0|\19\0d\b\0\19t\1f\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\f\0\19d\ 2\0\19j\17\0\83\0\0j2\0|\ 2\0j\11\0\83\0\0d\10\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\f\0\19d4\0\19j\17\0\83\0\0j2\0d\ 3\0|\ 2\0j\11\0\83\0\0\14d\10\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\1f\0\19d\ 2\0\19j\17\0\83\0\0j2\0|\12\0d\10\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d\18\0\19d\11\0\19j\17\0\83\0\0j2\0|\ f\0d\10\0\83\ 2\0\83\ 1\0\ 1|\0\0j\13\0|\18\0d#\0\19d$\0\19j\17\0\83\0\0j2\0|\ 2\0j\ 3\0\83\0\0j\a\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1t1\0|\ 1\0d#\0\83\ 2\0}\1a\0|\0\0j\13\0|\1a\0d$\0\19j\17\0\83\0\0j2\0|\ 2\0j\ 3\0\83\0\0j\a\0\83\0\0d\a\0\83\ 2\0\83\ 1\0\ 1|\0\0j3\0t4\0t\1f\0j\ 5\0|\ 1\0d#\0\83\ 4\0\ 1|\0\0j3\0t4\0t1\0j\ 5\0|\ 1\0d\18\0\83\ 4\0\ 1t/\0j\ 5\0|\ 1\0d#\0d%\0d&\0\83\ 4\0\ 1|\0\0j3\0t4\0t\f\0j\ 5\0|\ 1\0d#\0d%\0d&\0\83\ 6\0\ 1t\f\0j\ 5\0|\ 1\0d\18\0d\12\0d\13\0\83\ 4\0\ 1|\0\0j3\0t4\0t/\0j\ 5\0|\ 1\0d\18\0d\12\0d\13\0\83\ 6\0\ 1|\0\0j\10\0|\18\0j5\0\83\0\0d5\0\83\ 2\0\ 1|\0\0j\13\0|\18\0j6\0d6\0g\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\10\0|\18\0j5\0\83\0\0d7\0\83\ 2\0\ 1|\0\0j\13\0|\18\0j6\0d8\0g\ 1\0\83\ 1\0\f\83\ 1\0\ 1d\17\0S(9\0\0\0s5\0\0\0Like testInt32InMEDFileFieldStar1 but with float32 :)s\r\0\0\0Pyfile114.medi\0\0\0\0i\ 2\0\0\0s\ e\0\0\0power [MW/m^3]s\10\0\0\0density [g/cm^3]s\ f\0\0\0temperature [K]g\11ê-\81\99\97q=i\ 3\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\ 5\0\0\0\ 1\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@gH¯¼\9aò×z>g\0\0\0\0\0\0"@i
35433 +\0\0\0iÿÿÿÿi\f\0\0\0s\a\0\0\0aa [u1]s\v\0\0\0bbbvv [ppp]NR\18\ 1\0\0g\0\0\0\0\0\03@i\14\0\0\0iõÿÿÿi\b\0\0\0s
35434 +\0\0\0aapfl [u1]s\ e\0\0\0bbbvvpfl [ppp]R\19\ 3\0\0i\a\0\0\0i\v\0\0\0R\1a\ 3\0\0R\e\ 3\0\0g\0\0\0\0\0\0=@i\1e\0\0\0iëÿÿÿR\19\ 1\0\0R\1c\ 3\0\0(\ 2\0\0\0i\ 3\0\0\0i\0\0\0\0(\ 2\0\0\0i\0\0\0\0i\ 2\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 2\0\0\0i\ 4\0\0\0(\ 2\0\0\0i\ 6\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 4\0\0\0i\ 5\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\0\0\0\0(\ 2\0\0\0i\ 5\0\0\0i\ 6\0\0\0(\ 3\0\0\0i\0\0\0\0i\ 1\0\0\0g\0\0\0\0\0\0\0@(\ 3\0\0\0i\ 1\0\0\0i\ 2\0\0\0g\0\0\0\0\0\0\b@(\ 2\0\0\0s\a\0\0\0aa [u1]s\v\0\0\0bbbvv [ppp](\ 2\0\0\0i\ 1\0\0\0i\ 2\0\0\0(\ 4\0\0\0s\f\0\0\03DSurfMesh_1s\f\0\0\03DSurfMesh_1s\f\0\0\03DSurfMesh_1s\f\0\0\03DSurfMesh_1(\ 2\0\0\0s\f\0\0\03DSurfMesh_1s
35435 +\0\0\03DSurfMesh(\ 4\0\0\0s
35436 +\0\0\03DSurfMeshs
35437 +\0\0\03DSurfMeshs
35438 +\0\0\03DSurfMeshs
35439 +\0\0\03DSurfMesh(\ 2\0\0\0s\f\0\0\03DSurfMesh_1s
35440 +\0\0\03DSurfMesh(7\0\0\0R\ 4\0\0\0R$\ 1\0\0t\13\0\0\0convertToFloatFieldR¹\0\0\0R>\0\0\0R(\0\0\0Rc\0\0\0\0\0\0Rj\0\0\0RB\0\0\0RC\0\0\0R\v\0\0\0t\14\0\0\0MEDFileFloatField1TSR%\ 1\0\0R\97\ 1\0\0R\13\ 1\0\0R+\0\0\0R)\ 1\0\0R\1f\ 3\0\0R0\0\0\0R1\0\0\0R(\ 1\0\0\ 3\0\0R+\ 1\0\0R!\ 3\0\0\0\0\0Rt\0\0\0\0\0\0R"\ 3\0\0\0\0\0Ry\0\0\0t\18\0\0\0MEDFileFloatFieldMultiTSR$\ 3\0\0R%\ 3\0\0t\ e\0\0\0DataArrayFloatRÃ\ 1\0\0t\15\0\0\0MEDCouplingFieldFloatR\1c\ 1\0\0\0\0\0Rm\0\0\0Rn\0\0\0R{\ 1\0\0R'\ 3\0\0Rk\0\0\0R|\ 1\0\0R~\ 1\0\0Rw\ 1\0\0\0\0\0R[\ 1\0\0\0\0\0R\7f\ 1\0\0R)\0\0\0R*\0\0\0RU\ 1\0\0R(\ 3\0\0(\e\0\0\0R  \0\0\0R9\ 1\0\0\0\0\0R\84\0\0\0R:\ 1\0\0R;\ 1\0\0\ 2\0\0\ 2\0\0RC\ 1\0\0R\80\0\0\0R)\ 3\0\0Rv\ 2\0\0R*\ 3\0\0R+\ 3\0\0R,\ 3\0\0R-\ 3\0\0R.\ 3\0\0R/\ 3\0\0R0\ 3\0\0R1\ 3\0\0R\1a\ 3\0\0R2\ 3\0\0R3\ 3\0\0R4\ 3\0\0Rl\ 1\0\0\ 1\0\0R5\ 3\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1e\0\0\0testFloat32InMEDFileFieldStar1z\17\0\0\0\0\0\0\ 2\ 6\ 1\f\ 1\f\ 1\f\ 1\f\ 1\13\ 1\10\ 1\13\ 1\10\ 1 \ 1\r\ 1\15\ 1%\ 1\1c\ 1\10\ 1\12\ 1"\ 14\ 1\ f\ 1\16\ 1\1f\ 1\16\ 1\15\ 1%\ 1\1c\ 1\13\ 1\f\0
35441 +\ 1\10\ 1\12\ 1\1c\ 1\16\ 1\16\ 1\19\ 1\1c\ 1\e\ 1\1c\ 1\f\0
35442 +\0\f\ 1\15\ 1)\ 1\13\0\11\ 1\1c\0\11\ 1\ f\0\a\0\16\ 1\r\ 1\15\ 1\10\ 1\ 4\ 1#\ 1\f\ 1\13\ 1\13\ 1\ f\0\13\0"\0*\ 1\r\0\r\ 1\f\ 1\r\ 1\16\ 1\1f\ 1\10\ 2\f\ 1\13\ 1\13\ 1\ f\0\13\0"\0\1c\0*\ 1\r\0\13\0\r\ 1\f\ 1$\0\r\ 1\16\ 1\13\ 1\e\0\13\ 1\16\ 1\19\ 1\10\ 1\ f\ 1\e\0\13\ 1\16\ 1\19\ 2\f\ 1\r\ 1\13\ 1\13\ 1\19\ 1\f\ 1\r\ 1\10\ 1\f\ 1\16\ 1\19\ 1\1a\ 1\1a\ 1\1a\ 1\1a\ 2-\ 11\ 1'\ 1'\ 13\ 2\ f\ 1/\ 1\19\ 1\19\ 1\16\ 1\1f\ 1\16\ 1\1f\ 2\16\ 1\19\ 1\16\ 1\1a\ 1c\ 1\0\0\0\f\0\0\0\15\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0t\0\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0g\12\0\83\ 1\0}\ 2\0t\ 1\0d\ 5\0d\ 6\0\83\ 2\0}\ 3\0|\ 3\0j\ 2\0|\ 2\0\83\ 1\0\ 1|\ 3\0j\ 3\0d\a\0\83\ 1\0\ 1|\ 3\0j\ 4\0t\ 5\0t\ 6\0t\a\0d\b\0\83\ 1\0\83\ 1\0\83\ 2\0\ 1|\ 3\0j\b\0\83\0\0\ 1t  \0t
35443 +\0\83\ 1\0}\ 4\0|\ 4\0j\v\0|\ 3\0\83\ 1\0\ 1|\ 4\0j\f\0d    \0\83\ 1\0\ 1|\ 4\0j\r\0t\0\0t\ 6\0t\a\0d\b\0\83\ 1\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\ 4\0j\b\0\83\0\0\ 1|\ 3\0j\ e\0\83\0\0\\ 5\0}\ 5\0}\ 6\0}\a\0}\b\0\0t      \0t
35444 +\0\83\ 1\0}
35445 +\0|
35446 +\0j\v\0|\ 3\0\83\ 1\0\ 1|
35447 +\0j\f\0d
35448 +\0\83\ 1\0\ 1|
35449 +\0j\r\0t\0\0t\ 6\0t\a\0d\b\0\83\ 1\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|
35450 +\0j\b\0\83\0\0\ 1t\ f\0|\ 1\0|
35451 +\0t\10\0\83\ 3\0\ 1t\11\0|\ 1\0\83\ 1\0}\v\0|\0\0j\12\0|
35452 +\0j\13\0|\v\0d\v\0d\v\0\83\ 3\0\83\ 1\0\ 1|\0\0j\14\0|\v\0j\15\0\83\0\0j\16\0\83\0\0d\a\0\83\ 2\0\ 1|\0\0j\14\0|\v\0j\15\0\83\0\0j\17\0d\f\0\83\ 1\0t\ 5\0\83\ 2\0\ 1d\r\0S( \0\0\0s'\0\0\0EDF8478 : Test of read/write of penta18s\r\0\0\0Pyfile115.medg\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0à?R \ 2\0\0i\ 3\0\0\0i\ 1\0\0\0i\12\0\0\0t\ e\0\0\0FieldOnPenta18t\11\0\0\0FieldOnPenta18Subg\11ê-\81\99\97q=i\0\0\0\0N(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0ð?(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 3\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 3\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?(\ 3\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?(\ 3\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0à?g\0\0\0\0\0\0ð?(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0(\ 3\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0(\ 3\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0à?(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?(\ 3\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?(\ 3\0\0\0g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0à?(\ 3\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\0\0g\0\0\0\0\0\0à?(\ 3\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0à?g\0\0\0\0\0\0à?(\18\0\0\0RY\0\0\0R[\0\0\0Rc\0\0\0R]\0\0\0R^\0\0\0t\f\0\0\0NORM_PENTA18Rm\0\0\0Rn\0\0\0Rd\0\0\0Rw\ 1\0\0R\1c\ 1\0\0\0\0\0RB\0\0\0R{\ 1\0\0R\9b\ 1\0\0R_\ 2\0\0R.\0\0\0t   \0\0\0ReadFieldR0\0\0\0R1\0\0\0R+\0\0\0\0\0\0\0\0\0t\r\0\0\0getTypeOfCell(\f\0\0\0R   \0\0\0R9\ 1\0\0\ 1\0\0R\83\0\0\0R\b\0\0\0R\85\0\0\0Re\ 1\0\0t\ 2\0\0\0dit\ 2\0\0\0rdt\ 3\0\0\0rdiRâ\0\0\0R
35453 +\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\r\0\0\0testPenta18_1í\17\0\0s<\0\0\0\0\ 2\ 6\ 1\ 3\ 1 \ 1       \ 1       \ 1       \ 1       \ 1\12\ 1\ f\ 1\r\ 1\r\ 1\1c\ 1
35454 +\ 2\f\ 1\r\ 1\r\ 1\1f\ 1
35455 +\ 2\e\ 2\f\ 1\r\ 1\r\ 1\1f\ 1
35456 +\ 1\10\ 1\f\ 1\1c\ 1\1c\ 1\1f\ 1c\ 1\0\0\0\f\0\0\0\ 5\0\0\0C\0\0\0\ 1\0\0d\ 1\0}\ 1\0d\ 2\0}\ 2\0t\0\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0g\ 4\0\83\ 1\0}\ 3\0t\ 1\0\83\0\0}\ 4\0|\ 4\0j\ 2\0|\ 3\0|\ 3\0\83\ 2\0\ 1|\ 4\0j\ 3\0\83\0\0}\ 4\0|\ 4\0j\ 4\0d\a\0\83\ 1\0\ 1t\ 5\0\83\0\0}\ 5\0|\ 4\0|\ 5\0d\ 3\0<t\ 6\0t\a\0\83\ 1\0}\ 6\0|\ 6\0j\b\0|\ 4\0\83\ 1\0\ 1t   \0|\ 4\0j
35457 +\0\83\0\0\83\ 1\0}\a\0|\a\0j\v\0\83\0\0\ 1|\ 6\0j\f\0|\a\0\83\ 1\0\ 1|\ 6\0j\ 4\0d\b\0\83\ 1\0\ 1t\r\0\83\0\0}\b\0|\b\0j\ e\0|\ 6\0\83\ 1\0\ 1|\ 5\0j\ f\0|\ 1\0d\ 5\0\83\ 2\0\ 1|\b\0j\ f\0|\ 1\0d\ 3\0\83\ 2\0\ 1t\10\0t\a\0\83\ 1\0}\ 6\0|\ 6\0j\b\0|\ 4\0\83\ 1\0\ 1t\11\0|\ 4\0j
35458 +\0\83\0\0\83\ 1\0}\a\0|\a\0j\v\0\83\0\0\ 1|\ 6\0j\f\0|\a\0\83\ 1\0\ 1|\ 6\0j\ 4\0d       \0\83\ 1\0\ 1t\12\0\83\0\0}\b\0|\b\0j\ e\0|\ 6\0\83\ 1\0\ 1d
35459 +\0d\0\0l\13\0}       \0d
35460 +\0d\0\0l\14\0}
35461 +\0t\15\0|\ 2\0\83\ 1\0}\v\0|\0\0j\16\0t\17\0|\b\0j\ f\0|\ 1\0d\ 3\0\83\ 4\0\ 1~\v\0|
35462 +\0j\18\0d\ 3\0\83\ 1\0\ 1|   \0j\19\0j\1a\0|\ 2\0\83\ 1\0\ 1|       \0j\e\0|\ 2\0\83\ 1\0\ 1n\0\0d\0\0S(\v\0\0\0Ns\r\0\0\0Pyfile116.meds\r\0\0\0Pyfile116.erri\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0\ 2\0\0R5\ 4\0\0R6\ 4\0\0iÿÿÿÿ(\1c\0\0\0RY\0\0\0\0\0\0Rc\0\0\0\ 1\0\0RB\0\0\0R>\0\0\0R&\ 3\0\0R\13\ 1\0\0\0\0\0Rk\0\0\0\0\0\0Ry\ 1\0\0R{\ 1\0\0R\1e\ 3\0\0R%\ 1\0\0RB\ 5\0\0Rc\ 5\0\0Rb\ 5\0\0R`\ 5\0\0R\11\0\0\0t\ 2\0\0\0gcR\ 6\0\0\0R)\0\0\0R*\0\0\0t\a\0\0\0collectR\8b\ 4\0\0R\8c\ 4\0\0R\8d\ 4\0\0(\f\0\0\0R    \0\0\0R9\ 1\0\0R\8f\ 4\0\0R\80\0\0\0R\83\0\0\0R\86\0\0\0R\b\0\0\0R\ 2\ 3\0\0\0\0\0R\11\0\0\0Rn\ 5\0\0R\93\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt9\0\0\0testMedFileCapabilityToCryOnNewFeatureWritingIntoOldFiles\11\18\0\0sF\0\0\0\0\ 4\ 6\ 1\ 6\ 1\18\ 1     \ 1\10\ 1\f\ 1\r\ 1 \ 1
35463 +\ 1\f\ 1\r\0\12\0
35464 +\ 1\r\ 1\r\ 1  \ 1\r\ 1\10\ 1\10\ 2\f\ 1\r\0\12\0
35465 +\ 1\r\ 1\r\ 1  \ 1\r\ 2\18\ 1\f\ 1\19\ 1\ 3\ 1\r\ 1\12\ 1\10\ 1c\ 1\0\0\0\11\0\0\0\ 4\0\0\0C\0\0\0sd\ 2\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0g\ 2\0\83\ 1\0}\ 2\0t\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0|\ 2\0|\ 2\0|\ 2\0\83\ 3\0\ 1|\ 3\0j\ 3\0\83\0\0}\ 3\0|\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0d\ 4\0d\ 2\0d\ 2\0g\ 3\0\83\ 1\0\ 1t\ 6\0j\a\0|\ 3\0|\ 4\0g\ 2\0\83\ 1\0}\ 5\0|\ 5\0j\b\0d\ 5\0\83\ 1\0\ 1t    \0\83\0\0}\ 6\0|\ 5\0|\ 6\0d\ 2\0<|\ 6\0j
35466 +\0d\ 2\0\83\ 1\0}\a\0t\v\0\83\0\0}\b\0|\b\0j\f\0|\ 6\0\83\ 1\0\ 1t\v\0\83\0\0}        \0|      \0j\f\0|\a\0\83\ 1\0\ 1t\r\0t\ e\0\83\ 1\0}
35467 +\0|
35468 +\0j\b\0d\ 6\0\83\ 1\0\ 1|
35469 +\0j\ f\0|\ 5\0\83\ 1\0\ 1|
35470 +\0j\10\0d\a\0d\ 3\0d\ 4\0\83\ 3\0\ 1t\0\0|\ 5\0j\11\0\83\0\0\83\ 1\0}\ 2\0|\ 2\0j\12\0\83\0\0\ 1|
35471 +\0j\13\0|\ 2\0\83\ 1\0\ 1t\14\0\83\0\0}\v\0|\v\0j\15\0|
35472 +\0\83\ 1\0\ 1t\16\0\83\0\0}\f\0|\f\0j\17\0|\v\0\83\ 1\0\ 1|\v\0j\ 4\0\83\0\0}\r\0|\r\0j\10\0d\b\0d      \0d
35473 +\0\83\ 3\0\ 1|\r\0j\18\0\83\0\0\ 4\1ed\v\09\ 2(|\f\0j\17\0|\r\0\83\ 1\0\ 1t\19\0\83\0\0}\ e\0|\ e\0j\1a\0|\f\0\83\ 1\0\ 1|\ e\0j
35474 +\0|\b\0|  \0\83\ 2\0}\ f\0|\0\0j\e\0|\ f\0|       \0d\ 2\0\19\83\ 2\0\ 1|\b\0j\1c\0|\ 1\0d\ 4\0\83\ 2\0\ 1|\ e\0j\1c\0|\ 1\0d\ 2\0\83\ 2\0\ 1t\v\0|\ 1\0\83\ 1\0}\b\0t\19\0|\ 1\0\83\ 1\0}\ e\0|\b\0d\ 2\0\19j
35475 +\0d\ 2\0\83\ 1\0}\a\0t\v\0\83\0\0}\10\0|\10\0j\f\0|\a\0\83\ 1\0\ 1|\ e\0j
35476 +\0|\b\0|\10\0\83\ 2\0}\ f\0|\0\0j\e\0|\ f\0|\10\0d\ 2\0\19\83\ 2\0\ 1d\0\0S(\f\0\0\0Ns\r\0\0\0Pyfile117.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0\ 2\0\0R5\ 4\0\0g\0\0\0\0\0\0\b@i\ 3\0\0\0i\ 4\0\0\0g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\0@(\1d\0\0\0RY\0\0\0\0\0\0Rc\0\0\0\ 1\0\0Rq\0\0\0\ 1\0\0R[\0\0\0R[\ 2\0\0RB\0\0\0R>\0\0\0RA\ 4\0\0RP\ 1\0\0R7\ 2\0\0Rw\ 1\0\0R\1c\ 1\0\0\0\0\0\0\0\0\ 1\0\0Ry\ 1\0\0R{\ 1\0\0\0\0\0R%\ 1\0\0\0\0\0RE\ 3\0\0R+\ 1\0\0R[\ 1\0\0R\\ 1\0\0t       \0\0\0myTester1R\v\0\0\0(\11\0\0\0\0\0\0R9\ 1\0\0\ 1\0\0R\83\0\0\0R\85\0\0\0R\16\ 2\0\0R\86\0\0\0t\ 3\0\0\0mmqt\ 3\0\0\0mmst\ 4\0\0\0mmsqR\b\0\0\0\0\0\0Rm\ 1\0\0R\\ 5\0\0Rl\ 1\0\0RV\ 3\0\0t\ 4\0\0\0mmqs(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\e\0\0\0testFieldsLinearToQuadratic7\18\0\0sZ\0\0\0\0\ 1\ 6\ 1\12\ 1      \ 1\13\ 1\f\ 1\f\ 1\16\ 1\15\ 1\r\ 1   \ 1
35477 +\ 1\ f\ 1    \0\r\ 1     \0\r\ 2\f\ 1\r\ 1\r\ 1\13\ 1\12\ 1
35478 +\ 1\r\ 1    \ 1\r\ 1     \ 1\r\ 1\f\ 1\13\ 1\11\ 1\r\ 1     \ 1\r\ 1\12\ 1\14\ 2\10\0\10\ 1\f\0\f\ 1\13\0       \0\r\ 1\12\ 1\14\ 1c\ 3\0\0\0\b\0\0\0y\0\0\0C\0\0\0\ 3\0\0t\0\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 1\0d\ 1\0d\ 2\0d\ 2\0d\ 1\0d\ 2\0d\ 1\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 2\0d\ 3\0d\ 1\0d\ 1\0d\ 4\0d\ 1\0d\ 1\0d\ 3\0d\ 2\0d\ 1\0d\ 4\0d\ 2\0d\ 1\0d\ 3\0d\ 1\0d\ 2\0d\ 4\0d\ 1\0d\ 2\0d\ 3\0d\ 2\0d\ 2\0d\ 4\0d\ 2\0d\ 2\0d\ 5\0d\ 1\0d\ 1\0d\ 1\0d\ 5\0d\ 1\0d\ 5\0d\ 2\0d\ 1\0d\ 2\0d\ 5\0d\ 1\0d\ 5\0d\ 1\0d\ 2\0d\ 1\0d\ 5\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 1\0d\ 5\0d\ 1\0d\ 1\0d\ 5\0d\ 1\0d\ 2\0d\ 5\0d\ 2\0d\ 2\0d\ 5\0d\ 6\0d\ 1\0d\ 1\0d\ 3\0d\ 5\0d\ 1\0d\ 6\0d\ 2\0d\ 1\0d\ 4\0d\ 5\0d\ 1\0d\ 6\0d\ 1\0d\ 2\0d\ 3\0d\ 5\0d\ 2\0d\ 6\0d\ 2\0d\ 2\0d\ 4\0d\ 5\0d\ 2\0d\ 4\0d\ 1\0d\ 5\0d\ 3\0d\ 1\0d\ 5\0d\ 3\0d\ 2\0d\ 5\0d\ 4\0d\ 2\0d\ 5\0gx\0d\a\0d\b\0\83\ 3\0}\ 3\0t\ 1\0d     \0d
35479 +\0d\v\0d\b\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0d\15\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0d#\0d$\0d%\0d&\0d'\0d(\0d)\0d*\0d+\0d,\0d-\0d.\0d/\0g(\0\83\ 1\0}\ 4\0t\0\0d
35480 +\0d     \0d\v\0d\b\0d\r\0d\f\0d\ e\0d\ f\0d\1d\0d\1c\0d\1e\0d\1f\0d!\0\0d"\0d#\0d\ 5\0\0d\ 6\0d\v\0d0\0d\f\0d1\0d\ e\0d\b\0d\v\0d\r\0d\f\0d2\0d\1c\0d3\0d\1e\0d4\0\0d5\0d"\0d\1f\0d\1e\0d!\0\0g(\0\83\ 1\0}\ 5\0|\ 1\0d
35481 +\0\19d
35482 +\0\19j\ 2\0|\ 2\0\83\ 1\0}\ 6\0|\0\0j\ 3\0|\ 6\0j\ 4\0\83\0\0d\ 4\0d      \0d\v\0g\ 3\0\83\ 2\0\ 1t\ 5\0|\ 6\0j\ 6\0\83\0\0\83\ 1\0}\a\0|\0\0j\a\0|\a\0j\b\0\83\0\0j   \0|\ 4\0\83\ 1\0\83\ 1\0\ 1|\0\0j\a\0|\a\0j
35483 +\0\83\0\0j  \0|\ 3\0d6\0\83\ 2\0\83\ 1\0\ 1|\0\0j\a\0|\ 6\0j\v\0\83\0\0j  \0|\ 5\0d6\0\83\ 2\0\83\ 1\0\ 1|\ 1\0d
35484 +\0\19d    \0\19j\ 2\0|\ 2\0\83\ 1\0}\ 6\0|\0\0j\ 3\0|\ 6\0j\ 4\0\83\0\0d7\0d\b\0d\r\0g\ 3\0\83\ 2\0\ 1t\ 5\0|\ 6\0j\ 6\0\83\0\0\83\ 1\0}\a\0|\0\0j\a\0|\a\0j\b\0\83\0\0\0|\ 4\0\83\ 1\0\83\ 1\0\ 1|\0\0j\a\0|\a\0j
35485 +\0\83\0\0j  \0|\ 3\0d6\0\83\ 2\0\83\ 1\0\ 1|\0\0j\a\0|\ 6\0j\v\0\83\0\0j  \0d\v\0|\ 5\0\14d6\0\83\ 2\0\83\ 1\0\ 1d\0\0S(8\0\0\0Ng\0\0\0\0\0\0\0\0g\0\0\0\0\0\0ð?g\0\0\0\0\0\0\0@g\0\0\0\0\0\0\b@g\0\0\0\0\0\0à?g\0\0\0\0\0\0\ 4@i(\0\0\0i\ 3\0\0\0i\ 1\0\0\0i\0\0\0\0i\ 2\0\0\0i\ 5\0\0\0i\ 4\0\0\0i\ 6\0\0\0i\a\0\0\0i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0i\14\0\0\0i\15\0\0\0i\16\0\0\0i\17\0\0\0i\18\0\0\0i\19\0\0\0i\1a\0\0\0i\e\0\0\0i    \0\0\0i\b\0\0\0i
35486 +\0\0\0i\v\0\0\0i\r\0\0\0i\f\0\0\0i\ e\0\0\0i\ f\0\0\0i\1c\0\0\0i\1d\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i&\0\0\0i'\0\0\0g\0\0\0\0\0\0\12@g\0\0\0\0\0\0\1a@g\0\0\0\0\0\0!@g\0\0\0\0\0\0%@g\0\0\0\0\0\0)@g\0\0\0\0\0\0-@g\11ê-\81\99\97q=g\0\0\0\0\0\0\14@(\f\0\0\0RY\0\0\0Rk\0\0\0R5\ 4\0\0R+\0\0\0\0\0\0Rz\0\0\0\0\0\0R0\0\0\0Rv\0\0\0R1\0\0\0\0\0\0R)\ 1\0\0(\b\0\0\0R        \0\0\0RV\ 3\0\0Rr\ 5\0\0t\a\0\0\0dataExpt\b\0\0\0dataExp1t\b\0\0\0dataExp2t\a\0\0\0fToTestt\ 5\0\0\0mTest(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyRq\ 5\0\0b\18\0\0s"\0\0\0\0\ 1ÿ\0{\ 1\84\ 1\84\ 1\17\ 1\1f\ 1\12\ 1\1c\ 1\1f\ 1\1f\ 2\17\ 1\1f\ 1\12\ 1\1c\ 1\1f\ 1#\ 1c\ 1\0\0\0\15\0\0\0\16\0\0\0C\0\0\0s0\ 5\0\0d\ 1\0}\ 1\0t\0\0d\ 2\0d\ 3\0g\ 2\0\83\ 1\0}\ 2\0t\ 1\0\83\0\0}\ 3\0|\ 3\0j\ 2\0|\ 2\0|\ 2\0|\ 2\0\83\ 3\0\ 1|\ 3\0j\ 3\0\83\0\0}\ 3\0|\ 3\0j\ 4\0\83\0\0}\ 4\0|\ 4\0j\ 5\0d\ 4\0d\ 2\0d\ 2\0g\ 3\0\83\ 1\0\ 1t\ 6\0j\a\0|\ 3\0|\ 4\0g\ 2\0\83\ 1\0}\ 5\0|\ 5\0j\b\0d\ 5\0\83\ 1\0\ 1|\ 5\0j\ 2\0t\0\0\0|\ 5\0j
35487 +\0\83\0\0t\0\0d\ 6\0d\ 6\0d\ 6\0g\ 3\0d\ 3\0d\a\0\83\ 3\0\83\ 2\0\83\ 1\0\ 1t\v\0\83\0\0}\ 6\0|\ 5\0|\ 6\0d\ 2\0<|\ 6\0j\f\0d\ 2\0\83\ 1\0}\a\0t\r\0\83\0\0}\b\0|\b\0j\ e\0|\ 6\0\83\ 1\0\ 1t\r\0\83\0\0}     \0|      \0j\ e\0|\a\0\83\ 1\0\ 1t\ f\0t\10\0\83\ 1\0}
35488 +\0|
35489 +\0j\b\0d\b\0\83\ 1\0\ 1|
35490 +\0j\11\0|\ 5\0\83\ 1\0\ 1|
35491 +\0j\12\0d  \0d\ 3\0d\ 4\0\83\ 3\0\ 1t\0\0d
35492 +\0\83\ 1\0}\ 2\0|\ 2\0j\13\0\83\0\0\ 1|\ 2\0j\13\0\83\0\0\ 1|
35493 +\0j\14\0|\ 2\0\83\ 1\0\ 1t\15\0\83\0\0}\v\0t\16\0d
35494 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0g\b\0\83\ 1\0}\f\0|\f\0j\b\0d\12\0\83\ 1\0\ 1|\v\0j\17\0|
35495 +\0|\ 6\0d\ 2\0|\f\0\83\ 4\0\ 1|\v\0j\ 4\0\83\0\0}\r\0|\r\0j\12\0d\a\0d\13\0d\14\0\83\ 3\0\ 1|\r\0j\18\0\83\0\0\ 4\1ed\15\09\ 2(t\19\0\83\0\0}\ e\0|\ e\0j\1a\0|\v\0\83\ 1\0\ 1|\ e\0j\1a\0|\r\0\83\ 1\0\ 1t\e\0\83\0\0}\ f\0|\ f\0j\1c\0|\ e\0\83\ 1\0\ 1|\ f\0j\f\0|\b\0|      \0\83\ 2\0}\10\0|\b\0j\1d\0|\ 1\0d\ 4\0\83\ 2\0\ 1|\ f\0j\1d\0|\ 1\0d\ 2\0\83\ 2\0\ 1|\0\0j\1e\0|\10\0|\a\0\83\ 2\0\ 1t\r\0|\ 1\0\83\ 1\0}\b\0t\e\0|\ 1\0\83\ 1\0}\ f\0|\b\0d\ 2\0\19j\f\0d\ 2\0\83\ 1\0}\a\0t\r\0\83\0\0}\11\0|\11\0j\ e\0|\a\0\83\ 1\0\ 1|\ f\0j\f\0|\b\0|\11\0\83\ 2\0}\10\0|\0\0j\1e\0|\10\0|\a\0\83\ 2\0\ 1t\v\0\83\0\0}\ 6\0|\ 5\0|\ 6\0d\ 2\0<|\ 6\0j\f\0d\ 2\0\83\ 1\0}\a\0t\r\0\83\0\0}\b\0|\b\0j\ e\0|\ 6\0\83\ 1\0\ 1t\r\0\83\0\0}       \0|      \0j\ e\0|\a\0\83\ 1\0\ 1t\ f\0t\10\0\83\ 1\0}
35496 +\0|
35497 +\0j\b\0d\b\0\83\ 1\0\ 1|
35498 +\0j\11\0|\ 5\0\83\ 1\0\ 1|
35499 +\0j\12\0d  \0d\ 3\0d\ 4\0\83\ 3\0\ 1t\0\0d\v\0\83\ 1\0}\ 2\0|\ 2\0j\13\0\83\0\0\ 1|\ 2\0j\13\0\83\0\0\ 1|
35500 +\0j\14\0|\ 2\0\83\ 1\0\ 1t\15\0\83\0\0}\v\0t\16\0d
35501 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\16\0g     \0\83\ 1\0}\f\0|\f\0j\b\0d\12\0\83\ 1\0\ 1|\v\0j\17\0|
35502 +\0|\ 6\0d\ 2\0|\f\0\83\ 4\0\ 1t\19\0\83\0\0}\ e\0|\ e\0j\1a\0|\v\0\83\ 1\0\ 1t\e\0\83\0\0}\ f\0|\ f\0j\1c\0|\ e\0\83\ 1\0\ 1|\ f\0j\f\0|\b\0|   \0\83\ 2\0}\10\0t\16\0d
35503 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\1f\0\0d!\0d"\0g\15\0\83\ 1\0}\12\0|\12\0j\b\0d#\0\83\ 1\0\ 1|\10\0d\ 2\0\19d\ 2\0\19}\13\0t\0\0d\ 2\0d\ 3\0d\ 4\0d\a\0d\13\0d$\0d%\0d&\0d
35504 +\0d'\0d\ 3\0d(\0d\ 4\0d)\0d$\0d*\0d%\0d\a\0d\ 4\0d\13\0d$\0g\15\0\83\ 1\0}\14\0|\13\0j\1f\0d#\0\83\ 1\0\0|\12\0\83\ 1\0\ 4t!\0\82\ 1\0|\13\0j\18\0\83\0\0\0|\14\0d+\0\83\ 2\0\ 4t!\0\82\ 1\0|\13\0j"\0\83\0\0d"\0d\ 3\0d/\0d#\0d-\0f\ 4\0g\ 1\0f\ 2\0g\ 1\0k\ 2\0s,\ 5t!\0\82\ 1\0d.\0S(0\0\0\0s?\0\0\0Same than testFieldsLinearToQuadratic but with profile on NODESs\r\0\0\0Pyfile118.medi\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0\ 2\0\0g\0\0\0\0\0\0ø?i\ 3\0\0\0R5\ 4\0\0g\0\0\0\0\0\0\b@i\b\0\0\0i        \0\0\0i
35505 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0R\83\ 1\0\0i\ 4\0\0\0g\0\0\0\0\0\0\14@g\0\0\0\0\0\0\10@i\10\0\0\0i\1d\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i&\0\0\0i'\0\0\0i(\0\0\0t\b\0\0\0pfl_NODEi\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\ 4@g\0\0\0\0\0\0\12@g\0\0\0\0\0\0\1a@g\11ê-\81\99\97q=i\15\0\0\0R&\0\0\0N(\ 2\0\0\0i\0\0\0\0i\15\0\0\0(#\0\0\0RY\0\0\0\0\0\0Rc\0\0\0\ 1\0\0Rq\0\0\0\ 1\0\0R[\0\0\0R[\ 2\0\0RB\0\0\0\ 2\0\0\0\0\0R>\0\0\0RA\ 4\0\0RP\ 1\0\0R7\ 2\0\0Rw\ 1\0\0R\1c\ 1\0\0\0\0\0\0\0\0Ry\ 1\0\0R{\ 1\0\0\0\0\0Rk\0\0\0R|\ 1\0\0R+\ 1\0\0\0\0\0RE\ 3\0\0R[\ 1\0\0R\\ 1\0\0R\v\0\0\0t       \0\0\0myTester2R=\ 2\0\0R1\0\0\0RE\ 5\0\0\ 1\0\0(\15\0\0\0R  \0\0\0R9\ 1\0\0\ 1\0\0R\83\0\0\0R\85\0\0\0R\16\ 2\0\0R\86\0\0\0Rr\ 5\0\0Rs\ 5\0\0Rt\ 5\0\0R\b\0\0\0\0\0\0R\83\ 1\0\0R\\ 5\0\0Rm\ 1\0\0Rl\ 1\0\0RV\ 3\0\0Ru\ 5\0\0t\v\0\0\0pflExpectedt
35506 +\0\0\0f1tsToTestt\ 4\0\0\0exp1(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1c\0\0\0testFieldsLinearToQuadratic2u\18\0\0\0\0\0\0\ 2\ 6\ 1\12\ 1       \ 1\13\ 1\f\ 1\f\ 1\16\ 1\15\ 1\r\ 24\ 2 \ 1
35507 +\ 1\ f\ 1    \0\r\ 1     \0\r\ 2\f\ 1\r\ 1\r\ 1\13\ 1\f\0
35508 +\ 1
35509 +\ 1\r\ 1    \ 1$\0\r\ 1\16\ 1\f\ 1\13\ 1\11\ 1   \ 1\r\ 1\r\ 1   \ 1\r\ 1\12\ 1\10\0\10\ 2\10\ 2\f\0\f\ 1\13\0       \0\r\ 1\12\ 1\10\ 2 \ 1
35510 +\ 1\ f\ 1    \0\r\ 1     \0\r\ 2\f\ 1\r\ 1\r\ 1\13\ 1\f\0
35511 +\ 1
35512 +\ 1\r\ 1    \ 1'\0\r\ 1\16\ 1 \ 1\r\ 1     \ 1\r\ 1\12\ 2K\0\r\ 1\ e\ 1K\ 1\1e\ 1\1e\ 10\ 1c\ 3\0\0\0\b\0\0\0\19\0\0\0C\0\0\0si\ 5\0\0t\0\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d   \0d
35513 +\0d\v\0d\f\0d\r\0d\ e\0d\ f\0d\10\0d\11\0d\12\0d\13\0d\14\0g\14\0\83\ 1\0}\ 3\0|\ 3\0j\ 1\0d\15\0\83\ 1\0\ 1|\ 1\0d\16\0\19d\16\0\19}\ 4\0t\ 2\0d\16\0d\17\0d\18\0d\19\0d\1a\0d\e\0d\1c\0d\1d\0d\1e\0d\17\0d\1f\0d\18\0\0d\e\0d!\0d\1c\0d\19\0d\18\0d\1a\0d\e\0g\14\0\83\ 1\0}\ 5\0|\0\0j\ 3\0|\ 4\0j\ 4\0d\15\0\83\ 1\0j\ 5\0|\ 3\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 3\0|\ 4\0j\ 6\0\83\0\0j\ 5\0|\ 5\0d"\0\83\ 2\0\83\ 1\0\ 1|\0\0j\a\0|\ 4\0j\b\0\83\0\0t      \0d\17\0d\16\0d#\0f\ 2\0d\15\0d$\0f\ 4\0g\ 1\0f\ 2\0g\ 1\0\83\ 2\0\ 1|\ 1\0d\16\0\19d\16\0\19j
35514 +\0|\ 2\0\83\ 1\0}\ 6\0|\0\0j\a\0|\ 6\0j\v\0\83\0\0d%\0d\17\0d\18\0g\ 3\0\83\ 2\0\ 1t\f\0|\ 6\0j\r\0\83\0\0\83\ 1\0}\a\0|\0\0j\ 3\0|\a\0j\ e\0\83\0\0j\ 5\0t\0\0d\17\0d\16\0d\18\0d\19\0d\e\0d\1a\0d\1c\0d\1d\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d&\0d'\0d(\0d)\0g\14\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 3\0|\a\0j\ f\0\83\0\0j\ 5\0t\ 2\0d\18\0d\16\0d\16\0f\ 3\0d\19\0d\16\0d\16\0f\ 3\0d\18\0d\17\0d\16\0f\ 3\0d\19\0d\17\0d\16\0f\ 3\0d\18\0d\16\0d\17\0f\ 3\0d\19\0d\16\0d\17\0f\ 3\0d\18\0d\17\0d\17\0f\ 3\0d\19\0d\17\0d\17\0f\ 3\0d\1f\0d\16\0d\16\0f\ 3\0d\18\0d\1e\0d\16\0f\ 3\0d\1f\0d\17\0d\16\0f\ 3\0d\19\0d\1e\0d\16\0f\ 3\0d\1f\0d\16\0d\17\0f\ 3\0d\18\0d\1e\0d\17\0f\ 3\0d\1f\0d\17\0d\17\0f\ 3\0d\19\0d\1e\0d\17\0f\ 3\0d\19\0d\16\0d\1e\0f\ 3\0d\18\0d\16\0d\1e\0f\ 3\0d\18\0d\17\0d\1e\0f\ 3\0d\19\0d\17\0d\1e\0f\ 3\0g\14\0d#\0d\19\0\83\ 3\0d"\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ 3\0|\ 6\0j\10\0\83\0\0j\ 5\0|\ 5\0d"\0\83\ 2\0\83\ 1\0\ 1|\ 1\0d\16\0\19d\17\0\19}\ 4\0|\0\0j\ 3\0|\ 4\0j\ 4\0d\15\0\83\ 1\0j\ 5\0|\ 3\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 3\0|\ 4\0j\ 6\0\83\0\0j\ 5\0d\1a\0|\ 5\0\14d"\0\83\ 2\0\83\ 1\0\ 1|\0\0j\a\0|\ 4\0j\b\0\83\0\0t    \0d\17\0d\16\0d#\0f\ 2\0d\15\0d$\0f\ 4\0g\ 1\0f\ 2\0g\ 1\0\83\ 2\0\ 1|\ 1\0d\16\0\19d\17\0\19j
35515 +\0|\ 2\0\83\ 1\0}\ 6\0|\0\0j\a\0|\ 6\0j\v\0\83\0\0d*\0d\19\0d\1a\0g\ 3\0\83\ 2\0\ 1t\f\0|\ 6\0j\r\0\83\0\0\83\ 1\0}\a\0|\0\0j\ 3\0|\a\0j\ e\0\83\0\0j\ 5\0t\0\0d\17\0d\16\0d\18\0d\19\0d\e\0d\1a\0d\1c\0d\1d\0d\ 1\0d\ 2\0d\ 3\0d\ 4\0d\ 5\0d\ 6\0d\a\0d\b\0d&\0d'\0d(\0d)\0g\14\0\83\ 1\0\83\ 1\0\83\ 1\0\ 1|\0\0j\ 3\0|\a\0j\ f\0\83\0\0j\ 5\0t\ 2\0d\18\0d\16\0d\16\0f\ 3\0d\19\0d\16\0d\16\0f\ 3\0d\18\0d\17\0d\16\0f\ 3\0d\19\0d\17\0d\16\0f\ 3\0d\18\0d\16\0d\17\0f\ 3\0d\19\0d\16\0d\17\0f\ 3\0d\18\0d\17\0d\17\0f\ 3\0d\19\0d\17\0d\17\0f\ 3\0d\1f\0d\16\0d\16\0f\ 3\0d\18\0d\1e\0d\16\0f\ 3\0d\1f\0d\17\0d\16\0f\ 3\0d\19\0d\1e\0d\16\0f\ 3\0d\1f\0d\16\0d\17\0f\ 3\0d\18\0d\1e\0d\17\0f\ 3\0d\1f\0d\17\0d\17\0f\ 3\0d\19\0d\1e\0d\17\0f\ 3\0d\19\0d\16\0d\1e\0f\ 3\0d\18\0d\16\0d\1e\0f\ 3\0d\18\0d\17\0d\1e\0f\ 3\0d\19\0d\17\0d\1e\0f\ 3\0g\14\0d#\0d\19\0\83\ 3\0d"\0\83\ 2\0\83\ 1\0\ 1|\0\0j\ 3\0|\ 6\0j\10\0\83\0\0j\ 5\0d\1a\0|\ 5\0\14d"\0\83\ 2\0\83\ 1\0\ 1d\0\0S(+\0\0\0Ni\b\0\0\0i        \0\0\0i
35516 +\0\0\0i\v\0\0\0i\f\0\0\0i\r\0\0\0i\ e\0\0\0i\ f\0\0\0i\1d\0\0\0i\1e\0\0\0i\1f\0\0\0\0\0\0i!\0\0\0i"\0\0\0i#\0\0\0i$\0\0\0i%\0\0\0i&\0\0\0i'\0\0\0i(\0\0\0R|\ 5\0\0i\0\0\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 3\0\0\0i\ 4\0\0\0i\ 5\0\0\0i\ 6\0\0\0i\a\0\0\0g\0\0\0\0\0\0à?g\0\0\0\0\0\0\ 4@g\0\0\0\0\0\0\12@g\0\0\0\0\0\0\1a@g\11ê-\81\99\97q=i\14\0\0\0R&\0\0\0g\0\0\0\0\0\0\b@i\10\0\0\0i\11\0\0\0i\12\0\0\0i\13\0\0\0g\0\0\0\0\0\0\14@(\11\0\0\0Rk\0\0\0RB\0\0\0RY\0\0\0R0\0\0\0R=\ 2\0\0R1\0\0\0R+\ 1\0\0R+\0\0\0\ 1\0\0\ 3\0\0R5\ 4\0\0\0\0\0Rz\0\0\0\0\0\0Rv\0\0\0\0\0\0R)\ 1\0\0(\b\0\0\0R     \0\0\0RV\ 3\0\0Rr\ 5\0\0R~\ 5\0\0R\7f\ 5\0\0R\80\ 5\0\0Rz\ 5\0\0R{\ 5\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR}\ 5\0\0Ã\18\0\0s4\0\0\0\0\ 1H\0\r\ 1\ e\ 1H\ 1\1f\ 1\1f\ 14\ 1\17\ 1\1f\ 1\12\ 1^\ 1ÿ\0\1c\ 1\1f\ 2\ e\ 1\1f\ 1#\ 14\ 1\17\ 1\1f\ 1\12\ 1^\ 1ÿ\0\1c\ 1#\ 2c\ 1\0\0\0
35517 +\0\0\0\ 6\0\0\0C\0\0\0\ 2\0\0t\0\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 2\0|\ 2\0j\ 3\0|\ 1\0|\ 1\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0\83\0\0}\ 3\0|\ 3\0j\ 6\0d\ 2\0\83\ 1\0\ 1t\a\0j\b\0|\ 3\0|\ 2\0\83\ 2\0}\ 2\0|\ 2\0j     \0d\ 3\0\83\ 1\0\ 1t
35518 +\0\83\0\0}\ 4\0|\ 2\0|\ 4\0d\ 2\0<t\v\0t\f\0\83\ 1\0}\ 5\0|\ 5\0j\r\0|\ 2\0\83\ 1\0\ 1t\0\0|\ 2\0j\ e\0\83\0\0\83\ 1\0}\ 1\0|\ 1\0j\ 1\0\83\0\0\ 1|\ 5\0j\ f\0|\ 1\0\83\ 1\0\ 1|\ 5\0j        \0d\ 4\0\83\ 1\0\ 1t\10\0|\ 2\0j\ e\0\83\0\0\83\ 1\0}\ 6\0|\ 6\0j\ 1\0\83\0\0\ 1|\ 6\0j        \0d\ 5\0\83\ 1\0\ 1d\ 6\0d\ 2\0d\12\0d\b\0d\b\0f\ 4\0g\ 1\0f\ 2\0d       \0d\ 2\0d\13\0d\b\0d\b\0f\ 4\0g\ 1\0f\ 2\0g\ 2\0}\a\0d\ 6\0d\ 2\0d\14\0d\v\0d\b\0f\ 4\0g\ 1\0f\ 2\0d   \0d\ 2\0d\15\0d\f\0d\b\0f\ 4\0g\ 1\0f\ 2\0g\ 2\0}\b\0t\11\0\83\0\0}     \0|      \0j\12\0|\ 5\0|\ 4\0d\ 2\0|\ 6\0\83\ 4\0\ 1|\0\0j\13\0|     \0j\14\0\83\0\0d\16\0\83\ 2\0\ 1|\0\0j\13\0|   \0j\15\0\83\0\0|\a\0\83\ 2\0\ 1|\0\0j\16\0|   \0j\17\0|\ 4\0\83\ 1\0j\18\0|\ 5\0d\r\0d\r\0\83\ 3\0\83\ 1\0\ 1t\11\0\83\0\0}    \0|      \0j\19\0|\ 5\0|\ 4\0d\ 2\0|\ 6\0\83\ 4\0\ 1|\0\0j\13\0|     \0j\14\0\83\0\0d\ e\0|\ 6\0j\1a\0\83\0\0\16d\ f\0|\ 6\0j\1a\0\83\0\0\16f\ 2\0\83\ 2\0\ 1|\0\0j\13\0\0j\15\0\83\0\0|\b\0\83\ 2\0\ 1|\0\0j\16\0|   \0j\17\0|\ 4\0\83\ 1\0j\18\0|\ 5\0d\r\0d\r\0\83\ 3\0\83\ 1\0\ 1|\0\0j\16\0|    \0j\e\0d\v\0\83\ 1\0j\1c\0d\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\16\0|  \0j\e\0d\f\0\83\ 1\0j\1c\0d\10\0\83\ 1\0\83\ 1\0\ 1d\11\0S(\17\0\0\0\0\0\0 Sometimes for downstream code fan of profiles, profile are requested unconditionally. setFieldProfile try to reduce at most profile usage. So setFieldProfileFlatly has been added to always create
35519 +        a profile.i
35520 +\0\0\0i\0\0\0\0\ 2\0\0R5\ 4\0\0R\83\ 1\0\0i\ 3\0\0\0\0\0\0R&\0\0\0i\ 4\0\0\0\0\0\0t\r\0\0\0pfl_NORM_TRI3RX\ 3\0\0g\11ê-\81\99\97q=s\f\0\0\0%s_NORM_TRI3s\r\0\0\0%s_NORM_QUAD4iQ\0\0\0N(\ 2\0\0\0i\0\0\0\0\0\0\0(\ 2\0\0\0\0\0\0\0\0\0(\ 2\0\0\0i\0\0\0\0\0\0\0(\ 2\0\0\0\0\0\0\0\0\0(\0\0\0\0(\1d\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0Rq\0\0\0\ 3\0\0R[\0\0\0R[\ 2\0\0RB\0\0\0R>\0\0\0Rw\ 1\0\0R\13\ 1\0\0\0\0\0\0\0\0R{\ 1\0\0Rk\0\0\0\0\0\0R|\ 1\0\0R+\0\0\0R]\ 2\0\0\ 1\0\0R0\0\0\0R5\ 4\0\0R1\0\0\0t\15\0\0\0setFieldProfileFlatlyRC\0\0\0R=\ 2\0\0R\98\ 1\0\0(
35521 +\0\0\0R   \0\0\0\ 1\0\0R\83\0\0\0R\85\0\0\0R\86\0\0\0R\b\0\0\0R\83\ 1\0\0t\ 5\0\0\0refSpt\ 6\0\0\0refSp1Rú\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\1a\0\0\0testSetFieldProfileFlatly1Þ\18\0\0sF\0\0\0\0\ 3\f\0
35522 +\ 1      \0\10\ 1\f\ 1\f\ 1\r\ 1\12\ 1\r\ 1   \ 1
35523 +\ 1\f\ 1\r\ 1\12\ 1
35524 +\ 1\r\ 1\r\ 1\12\0
35525 +\0\r\ 26\ 16\ 2        \ 1\16\ 1\16\ 1\16\ 1%\ 2       \ 1\16\ 10\ 1\16\ 1%\ 1\1f\ 1\1f\ 1c\ 1\0\0\0
35526 +\0\0\0\ 6\0\0\0C\0\0\0s*\ 4\0\0t\0\0d\ 1\0\83\ 1\0}\ 1\0|\ 1\0j\ 1\0\83\0\0\ 1t\ 2\0\83\0\0}\ 2\0|\ 2\0j\ 3\0|\ 1\0|\ 1\0\83\ 2\0\ 1|\ 2\0j\ 4\0\83\0\0}\ 2\0|\ 2\0j\ 5\0d\ 2\0\83\ 1\0\ 1|\ 2\0j\ 6\0\83\0\0d\ 3\0\19}\ 3\0t\a\0\83\0\0}\ 4\0|\ 2\0|\ 4\0d\ 3\0<|\ 3\0|\ 4\0d\ 4\0<d\ 5\0}\ 5\0t\b\0d\ 3\0d\ 6\0d\a\0d\b\0g\ 4\0\83\ 1\0}\ 6\0|\ 6\0j\ 5\0|\ 5\0\83\ 1\0\ 1t\b\0d\ 3\0d\ 6\0d\a\0d  \0g\ 4\0\83\ 1\0}\a\0|\a\0j\ 5\0|\ 5\0\83\ 1\0\ 1t\b\0d\ 6\0d\a\0d
35527 +\0d\v\0d\b\0g\ 5\0\83\ 1\0}\b\0|\b\0j\ 5\0d\f\0\83\ 1\0\ 1t\b\0d\a\0d
35528 +\0d\v\0d\r\0g\ 4\0\83\ 1\0\0|      \0j\ 5\0d\ e\0\83\ 1\0\ 1|\ 4\0\0d\ 3\0|\b\0\83\ 2\0\ 1|\ 4\0\0d\ 4\0|   \0\83\ 2\0\ 1|\ 4\0j       \0d\ 3\0|\ 6\0\83\ 2\0\ 1|\ 4\0\0d\ 4\0|\a\0\83\ 2\0\ 1|\0\0j
35529 +\0|\ 4\0j\v\0|\ 5\0\83\ 1\0d\11\0\83\ 2\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 3\0|\ 5\0\83\ 2\0j\ e\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0|\ 5\0\83\ 2\0j\ e\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 3\0d\f\0\83\ 2\0j\ e\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0d\ e\0\83\ 2\0j\ e\0|    \0\83\ 1\0\83\ 1\0\ 1|\0\0j\ f\0t\10\0|\ 4\0j   \0d\ 4\0|\a\0\83\ 4\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 3\0|\ 5\0\83\ 2\0j\ e\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0|\ 5\0\83\ 2\0j\ e\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 3\0d\f\0\83\ 2\0j\ e\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0d\ e\0\83\ 2\0j\ e\0|      \0\83\ 1\0\83\ 1\0\ 1|\ 4\0j\11\0d\ 3\0|\ 5\0\83\ 2\0\ 1|\0\0j
35530 +\0|\ 4\0j\v\0|\ 5\0\83\ 1\0d\12\0\83\ 2\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0|\ 5\0\83\ 2\0j\ e\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 3\0d\f\0\83\ 2\0j\ e\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0d\ e\0\83\ 2\0j\ e\0|      \0\83\ 1\0\83\ 1\0\ 1|\ 4\0j\11\0d\ 4\0|\ 5\0\83\ 2\0\ 1|\0\0j
35531 +\0|\ 4\0j\v\0|\ 5\0\83\ 1\0d\13\0\83\ 2\0\ 1|\0\0j\ f\0t\10\0|\ 4\0j\11\0d\ f\0|\ 5\0\83\ 4\0\ 1|\ 4\0j      \0d\ 4\0|\a\0\83\ 2\0\ 1|\ 4\0\0d\ 3\0|\ 6\0\83\ 2\0\ 1|\0\0j
35532 +\0|\ 4\0j\v\0|\ 5\0\83\ 1\0d\14\0\83\ 2\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 3\0|\ 5\0\83\ 2\0j\ e\0|\ 6\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0|\ 5\0\83\ 2\0j\ e\0|\a\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 3\0d\f\0\83\ 2\0j\ e\0|\b\0\83\ 1\0\83\ 1\0\ 1|\0\0j\f\0|\ 4\0j\r\0d\ 4\0d\ e\0\83\ 2\0j\ e\0|    \0\83\ 1\0\83\ 1\0\ 1d\10\0S(\15\0\0\0s$\0\0\0 Here multi level groups are createdi\v\0\0\0\ 2\0\0i\0\0\0\0iÿÿÿÿR\93\ 2\0\0i\ 1\0\0\0i\ 2\0\0\0i\ 6\0\0\0i\a\0\0\0i\ 3\0\0\0i\ 5\0\0\0R\95\ 2\0\0i\b\0\0\0\ 1\0\0iþÿÿÿN(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\ 1\0\0\0iÿÿÿÿ(\0\0\0\0(\ 2\0\0\0i\0\0\0\0iÿÿÿÿ(\12\0\0\0RY\0\0\0Ry\ 1\0\0\0\0\0Rc\0\0\0\ 1\0\0RB\0\0\0R\9b\ 1\0\0R>\0\0\0Rk\0\0\0\ 2\0\0R+\0\0\0\0\0\0R0\0\0\0RG\0\0\0R1\0\0\0R)\0\0\0R*\0\0\0t\12\0\0\0removeGroupAtLevel(
35533 +\0\0\0R   \0\0\0\ 1\0\0R\83\0\0\0R\84\0\0\0R\86\0\0\0\ 2\0\0t\ 6\0\0\0grp0_0t\ 6\0\0\0grp0_1R\95\ 2\0\0\ 1\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt+\0\0\0testRmGroupAtSpeLevelAndMultiLevGrpCreation\ 4\19\0\0sb\0\0\0\0\ 2\f\0
35534 +\ 1      \0\10\ 1\f\ 1\r\ 1\10\ 1       \ 1
35535 +\0
35536 +\ 2\ 6\ 1\18\0\r\ 1\18\0\r\ 1\e\0\r\ 1\18\0\r\ 2\10\ 1\10\ 1\10\ 1\10\ 1\19\ 1"\ 1"\ 1"\ 1"\ 1\19\ 1"\ 1"\ 1"\ 1"\ 1\10\ 1\19\ 1"\ 1"\ 1"\ 1\10\ 1\19\ 1\19\ 1\10\ 1\10\ 1\19\ 1"\ 1"\ 1"\ 1"\ 1(\83\0\0\0R\12\0\0\0R\13\0\0\0R9\0\0\0RS\0\0\0R\91\0\0\0\0\0\0\0\0\0R¿\0\0\0\0\0\0\0\0\0\0\0\0R\ 3\ 1\0\0R\r\ 1\0\0R\11\ 1\0\0R\17\ 1\0\0R\1f\ 1\0\0R"\ 1\0\0RF\ 1\0\0Rq\ 1\0\0R\84\ 1\0\0R\8b\ 1\0\0R\8e\ 1\0\0R\8f\ 1\0\0R\94\ 1\0\0R\96\ 1\0\0R\9a\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0\ 1\0\0R\11\ 2\0\0R\19\ 2\0\0R\1f\ 2\0\0R%\ 2\0\0R1\ 2\0\0RI\ 2\0\0Rm\ 2\0\0R\87\ 2\0\0R\8a\ 2\0\0R\90\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0\ 2\0\0R\ 5\ 3\0\0R\12\ 3\0\0R\18\ 3\0\0R6\ 3\0\0R<\ 3\0\0RW\ 3\0\0R]\ 3\0\0Rh\ 3\0\0Rs\ 3\0\0R{\ 3\0\0R\8c\ 3\0\0R\97\ 3\0\0R\9a\ 3\0\0R\9b\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0\ 3\0\0t\b\0\0\0unittestt
35537 +\0\0\0skipUnlesst\e\0\0\0MEDCouplingHasNumPyBindingsRö\ 3\0\0\ 3\0\0R\1e\ 4\0\0R3\ 4\0\0R7\ 4\0\0RN\ 4\0\0RV\ 4\0\0Rs\ 4\0\0R\80\ 4\0\0t\b\0\0\0platformt\ 6\0\0\0systemt\ 5\0\0\0lowerR\90\ 4\0\0R\92\ 4\0\0R\95\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0\ 4\0\0R9\ 5\0\0RA\ 5\0\0R\ 5\0\0\0t\11\0\0\0MEDFileVersionStrRG\ 5\0\0RO\ 5\0\0RS\ 5\0\0RX\ 5\0\0R^\ 5\0\0Rd\ 5\0\0Rm\ 5\0\0Rp\ 5\0\0Rv\ 5\0\0Rq\ 5\0\0R\81\ 5\0\0R}\ 5\0\0R\86\ 5\0\0R\8a\ 5\0\0(\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyR$\0\0\0A\0\0\0\0\0\0\ 6\ 1       \ e       +       s       k       \v       1       (       \ 5       \18                       \12       \f       \15       \11                       d       9       '       $       \1a       !       \e       &       \17       /       \1c       \19       \ 6       +               F       U       2       2       *       5       <       %       \1d       \14       A       \9c       Z       Y       \1a       F       G       %       (       6       A       '       \a       .       p       ,       r               Q       A       E       b       o       ¡       t       R       \13       7       7       F       $       ?       S       3       \ e       7       \v       Q\1eb     E       L       ;       )       +       %       '       0       '-(     \10       \ f\1e\19     8       \1f       j       =       \13       \11       \1c       $       E       F       ;       ;       )       m       Ø       \ e$\ 1\1e\ 1\15\11\1eZ\1e,     \e       -       s       $!\ 1\1e\ 1\15$ +       \13       N       \e       &       /t\b\0\0\0__main__(\15\0\0\0t    \0\0\0MEDLoaderR\8b\ 5\0\0R\8e\ 5\0\0t\ 4\0\0\0mathR\ 1\0\0\0R\ 2\0\0\0R\ 3\0\0\0R\ 4\0\0\0t\11\0\0\0distutils.versionR\ 5\0\0\0R\15\0\0\0t\f\0\0\0version_infot\ 5\0\0\0majort\a\0\0\0cPickleRî\ 3\0\0R\1f\0\0\0R\ 6\0\0\0t\b\0\0\0TestCaseR$\0\0\0R\12\0\0\0t\ 4\0\0\0main(\0\0\0\0(\0\0\0\0(\0\0\0\0ss\0\0\0/volatile/home/salome/Test_Archives/SALOME-S-8.5.0-CO7-SRC/SOURCES/MEDCOUPLING/src/MEDLoader/Swig/MEDLoaderTest3.pyt\b\0\0\0<module>\16\0\0\0sL\0\0\0
35538 +\ 1\f\ 1\f\ 1\1c\ 1\10\ 1\10\ 2\f\ 1\12\ 1\ f\ 2\f\ 2\16\1e\19ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0ÿ\0\r\f\ 1
35539 \ Pas de fin de ligne à la fin du fichier
35540 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest4.py MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest4.py
35541 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTest4.py        2018-04-19 17:04:36.768223341 +0200
35542 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTest4.py        2018-04-19 17:25:17.766797930 +0200
35543 @@ -17,7 +17,7 @@
35544  #
35545  # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
35546  #
35547 -# Author : Anthony Geay (CEA/DEN)
35548 +# Author : Anthony Geay (EDF R&D)
35549  
35550  from MEDLoader import *
35551  import unittest
35552 @@ -4119,7 +4119,7 @@
35553          pass
35554  
35555      def test28(self):
35556 -        """ This test defines 2 fields f0,f1,f2,f3 lying on an unstructured mesh whith cells including NORM_POINT1.
35557 +        """ This test defines 2 fields f0,f1,f2,f3 lying on an unstructured mesh with cells including NORM_POINT1.
35558          Both f0 and f1 are on NODES and f2 and f3 are on cells. f1 and f2 share the same support.
35559          f0 is on a nodal support that is not matchable with any cells (including NORM_POINT1)
35560          This test is a more aggressive version of test26.
35561 @@ -4792,7 +4792,7 @@
35562          mml2=mml.prepare()
35563          self.assertTrue(isinstance(mml2,MEDUMeshMultiLev))
35564          ncc,a0,a1,a2,a3,a4,a5=mml2.buildVTUArrays()
35565 -        self.assertTrue(not ncc)# false beacause 2D in MED file
35566 +        self.assertTrue(not ncc)# false because 2D in MED file
35567          self.assertTrue(a0.isEqual(DataArrayDouble([(5.5,0.5,0),(5.5,-0.5,0),(6.5,0.5,0),(6.5,-0.5,0),(6.5,1.5,0),(7.5,0.5,0),(7.5,-0.5,0),(7.5,1.5,0),(7.5,2.5,0),(8.5,0.5,0),(8.5,-0.5,0),(8.5,1.5,0),(8.5,2.5,0),(8.5,3.5,0),(8.55,0.5,0),(8.55,-0.5,0),(8.55,1.5,0),(8.55,2.5,0),(8.55,3.5,0)]),1e-12))
35568          self.assertTrue(a1.isEqual(DataArrayByte([9,9,9,9,9,9,7,7,7,7])))
35569          self.assertTrue(a2.isEqual(DataArrayInt([0,5,10,15,20,25,30,35,40,45])))# the bug was here.
35570 @@ -4959,7 +4959,7 @@
35571          pass
35572  
35573      def test35(self):
35574 -        """ Emulate MEDReader in // mode context. Here a Simple mesh having more nodes than really needed. This test focuses on that point particulary."""
35575 +        """ Emulate MEDReader in // mode context. Here a Simple mesh having more nodes than really needed. This test focuses on that point particularly."""
35576          fname="ForMEDReader35.med"
35577          arrX=DataArrayDouble(7) ; arrX.iota()
35578          arrY=DataArrayDouble([0.,1.])
35579 @@ -5515,6 +5515,74 @@
35580          assert(v1.isEqual(DataArrayDouble([101,102,103,104,106,107,108,109,111,112,113,114,116,117,118,119,121,122,123,124]),1e-12))
35581          pass
35582  
35583 +    def test42(self):
35584 +        """ EDF14869 - SEG4 """
35585 +        fname="ForMEDReader42.med"
35586 +        meshName="mesh"
35587 +        #
35588 +        a0exp=DataArrayDouble([0.,1.,0.3,0.7])
35589 +        m=MEDCouplingUMesh("mesh",1)
35590 +        m.setCoords(a0exp)
35591 +        m.allocateCells()
35592 +        m.insertNextCell(NORM_SEG4,[0,1,2,3])
35593 +        mm=MEDFileUMesh() ; mm[0]=m
35594 +        #
35595 +        f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setName("Field")
35596 +        arr=DataArrayDouble(m.getNumberOfCells()) ; arr.iota() ; arr*=0.1 ; f.setArray(arr) ; f.checkConsistencyLight()
35597 +        ff=MEDFileField1TS() ; ff.setFieldNoProfileSBT(f)
35598 +        fmts=MEDFileFieldMultiTS() ; fmts.pushBackTimeStep(ff)
35599 +        #
35600 +        ms=MEDFileMeshes() ; ms.pushMesh(mm)
35601 +        fields=MEDFileFields() ; fields.pushField(fmts)
35602 +        ms.write(fname,2) ; fields.write(fname,0)
35603 +        #
35604 +        ms=MEDFileMeshes(fname) 
35605 +        fields=MEDFileFields(fname,False)
35606 +        fields.removeFieldsWithoutAnyTimeStep()
35607 +        fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
35608 +        allFMTSLeavesToDisplay=[]
35609 +        for fields in fields_per_mesh:
35610 +            allFMTSLeavesToDisplay2=[]
35611 +            for fmts in fields:
35612 +                tmp=fmts.splitDiscretizations()
35613 +                for itmp in tmp:
35614 +                    self.assertTrue(not itmp.presenceOfMultiDiscPerGeoType())
35615 +                    pass
35616 +                allFMTSLeavesToDisplay2+=tmp
35617 +                pass
35618 +            allFMTSLeavesToDisplay.append(allFMTSLeavesToDisplay2)
35619 +            pass
35620 +        #
35621 +        self.assertEqual(len(allFMTSLeavesToDisplay),1)
35622 +        self.assertEqual(len(allFMTSLeavesToDisplay[0]),1)
35623 +        allFMTSLeavesPerTimeSeries=MEDFileAnyTypeFieldMultiTS.SplitIntoCommonTimeSeries(sum(allFMTSLeavesToDisplay,[]))
35624 +        self.assertEqual(len(allFMTSLeavesPerTimeSeries),1)
35625 +        allFMTSLeavesPerCommonSupport1=MEDFileAnyTypeFieldMultiTS.SplitPerCommonSupport(allFMTSLeavesToDisplay[0],ms[ms.getMeshesNames()[0]])
35626 +        self.assertEqual(len(allFMTSLeavesPerCommonSupport1),1)
35627 +        #
35628 +        mst=MEDFileMeshStruct.New(ms[0])
35629 +        fcscp=allFMTSLeavesPerCommonSupport1[0][1]
35630 +        mml=fcscp.buildFromScratchDataSetSupport(0,fields)
35631 +        mml2=mml.prepare()
35632 +        self.assertTrue(isinstance(mml2,MEDUMeshMultiLev))
35633 +        ncc,a0,a1,a2,a3,a4,a5=mml2.buildVTUArrays()
35634 +        self.assertTrue(not ncc)
35635 +        self.assertTrue(a0.isEqual(a0exp.changeNbOfComponents(3,0.),1e-12))
35636 +        self.assertTrue(a1.isEqual(DataArrayByte([35])))# VTK_CUBIC_LINE
35637 +        self.assertTrue(a2.isEqual(DataArrayInt([0])))
35638 +        self.assertTrue(a3.isEqual(DataArrayInt([4,0,1,2,3])))
35639 +        self.assertTrue(a4 is None)
35640 +        self.assertTrue(a5 is None)
35641 +        self.assertTrue(mml2.retrieveGlobalNodeIdsIfAny() is None)
35642 +        for i in range(1):
35643 +            ffCell=allFMTSLeavesPerCommonSupport1[0][0][0][i]
35644 +            fsst=MEDFileField1TSStructItem.BuildItemFrom(ffCell,mst)
35645 +            ffCell.loadArraysIfNecessary()
35646 +            v=mml2.buildDataArray(fsst,fields,ffCell.getUndergroundDataArray())
35647 +            self.assertEqual(v.getHiddenCppPointer(),ffCell.getUndergroundDataArray().getHiddenCppPointer())
35648 +            self.assertTrue(v.isEqual(DataArrayDouble([0.0]),1e-14))
35649 +        pass
35650 +    
35651      pass
35652  
35653  if __name__ == "__main__":
35654 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTypemaps.i MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTypemaps.i
35655 --- MEDCOUPLING_old/src/MEDLoader/Swig/MEDLoaderTypemaps.i      2018-04-19 17:04:36.768223341 +0200
35656 +++ MEDCOUPLING_new/src/MEDLoader/Swig/MEDLoaderTypemaps.i      2018-04-19 17:25:17.786798325 +0200
35657 @@ -16,7 +16,7 @@
35658  //
35659  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
35660  //
35661 -// Author : Anthony Geay (CEA/DEN)
35662 +// Author : Anthony Geay (EDF R&D)
35663  
35664  #include <vector>
35665  
35666 @@ -402,3 +402,41 @@
35667      }
35668  }
35669  
35670 +template<class T>
35671 +PyObject *MEDFileField1TS_getFieldWithProfile(const typename MLFieldTraits<T>::F1TSType *self, TypeOfField type, int meshDimRelToMax, const MEDFileMesh *mesh) 
35672 +{
35673 +  DataArrayInt *ret1(NULL);
35674 +  typename MEDCoupling::Traits<T>::ArrayType *ret0(self->getFieldWithProfile(type,meshDimRelToMax,mesh,ret1));
35675 +  PyObject *ret(PyTuple_New(2));
35676 +  PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTITraits<T>::TI, SWIG_POINTER_OWN | 0 ));
35677 +  PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
35678 +  return ret;
35679 +}
35680 +
35681 +template<class T>
35682 +PyObject *MEDFileField1TS_getUndergroundDataArrayExt(const typename MLFieldTraits<T>::F1TSType *self)
35683 +{
35684 +  std::vector< std::pair<std::pair<INTERP_KERNEL::NormalizedCellType,int>,std::pair<int,int> > > elt1Cpp;
35685 +  typename MEDCoupling::Traits<T>::ArrayType *elt0=self->getUndergroundDataArrayExt(elt1Cpp);
35686 +  if(elt0)
35687 +    elt0->incrRef();
35688 +  PyObject *ret=PyTuple_New(2);
35689 +  PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(elt0),SWIGTITraits<T>::TI, SWIG_POINTER_OWN | 0 ));
35690 +  std::size_t sz=elt1Cpp.size();
35691 +  PyObject *elt=PyList_New(sz);
35692 +  for(std::size_t i=0;i<sz;i++)
35693 +    {
35694 +      PyObject *elt1=PyTuple_New(2);
35695 +      PyObject *elt2=PyTuple_New(2);
35696 +      PyTuple_SetItem(elt2,0,SWIG_From_int((int)elt1Cpp[i].first.first));
35697 +      PyTuple_SetItem(elt2,1,SWIG_From_int(elt1Cpp[i].first.second));
35698 +      PyObject *elt3=PyTuple_New(2);
35699 +      PyTuple_SetItem(elt3,0,SWIG_From_int(elt1Cpp[i].second.first));
35700 +      PyTuple_SetItem(elt3,1,SWIG_From_int(elt1Cpp[i].second.second));
35701 +      PyTuple_SetItem(elt1,0,elt2);
35702 +      PyTuple_SetItem(elt1,1,elt3);
35703 +      PyList_SetItem(elt,i,elt1);
35704 +    }
35705 +  PyTuple_SetItem(ret,1,elt);
35706 +  return ret;
35707 +}
35708 diff -Naur MEDCOUPLING_old/src/MEDLoader/Swig/SauvLoaderTest.py MEDCOUPLING_new/src/MEDLoader/Swig/SauvLoaderTest.py
35709 --- MEDCOUPLING_old/src/MEDLoader/Swig/SauvLoaderTest.py        2018-04-19 17:04:36.768223341 +0200
35710 +++ MEDCOUPLING_new/src/MEDLoader/Swig/SauvLoaderTest.py        2018-04-19 17:25:17.769797989 +0200
35711 @@ -248,6 +248,58 @@
35712          os.remove(sauvFile)
35713          pass
35714  
35715 +    def testSauvReaderOnBigMesh(self):
35716 +        # create a box with 1 million cells
35717 +        mesh_dim = 3
35718 +        nb_segs = [100, 100, 100]
35719 +        box_sizes = [1., 1., 1.]
35720 +        compo_names = ["x", "y", "z"]
35721 +        box_steps = [box_sizes[i]/nb_segs[i] for i in range(mesh_dim)]
35722 +        mesh = MEDCouplingCMesh.New("Mesh_box")
35723 +
35724 +        # axes coords
35725 +        axes_arrays = []
35726 +        for i in range(mesh_dim):
35727 +          axe_coords = [j*box_steps[i] for j in range(nb_segs[i]+1)]
35728 +
35729 +          axe_arr = DataArrayDouble.New(axe_coords)
35730 +          axe_arr.setInfoOnComponent(0,compo_names[i])
35731 +
35732 +          axes_arrays.append(axe_arr)
35733 +
35734 +        mesh.setCoords(*axes_arrays)
35735 +        umesh = mesh.buildUnstructured()
35736 +
35737 +        m=MEDFileUMesh.New()
35738 +        m.setMeshAtLevel(0,umesh)
35739 +
35740 +        # MED file data
35741 +        ms=MEDFileMeshes.New()
35742 +        ms.setMeshAtPos(0,m)
35743 +        meddata=MEDFileData.New()
35744 +        meddata.setMeshes(ms)
35745 +
35746 +        # write to SAUV
35747 +        sauvFile = "box.sauv"
35748 +        sw=SauvWriter();
35749 +        sw.setMEDFileDS(meddata);
35750 +        sw.write(sauvFile);
35751 +
35752 +        # read SAUV
35753 +        sr=SauvReader(sauvFile);
35754 +        d2=sr.loadInMEDFileDS();
35755 +        mm = d2.getMeshes()
35756 +        m = mm.getMeshAtPos(0)
35757 +
35758 +        # check
35759 +        coords = m.getCoords()
35760 +        nb_coords_values = coords.getNbOfElems()
35761 +        nb_coords_values_expected = mesh_dim*((nb_segs[0]+1)*(nb_segs[1]+1)*(nb_segs[2]+1))
35762 +        self.assertEqual(nb_coords_values, nb_coords_values_expected)
35763 +
35764 +        os.remove( sauvFile )
35765 +        pass
35766 +
35767      @unittest.skipUnless(HasXDR(),"requires XDR")
35768      def testMissingGroups(self):
35769          """test for issue 0021749: [CEA 601] Some missing groups in mesh after reading a SAUV file with SauvReader."""
35770 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/CMakeLists.txt MEDCOUPLING_new/src/MEDPartitioner/CMakeLists.txt
35771 --- MEDCOUPLING_old/src/MEDPartitioner/CMakeLists.txt   2018-04-19 17:04:36.769223361 +0200
35772 +++ MEDCOUPLING_new/src/MEDPartitioner/CMakeLists.txt   2018-04-19 17:25:17.685796329 +0200
35773 @@ -46,6 +46,11 @@
35774  # VERY IMPORTANT PUT METIS BEFORE SCOTCH because
35775  # metis.h is also in SCOTCH install dir !!!
35776  ########
35777 +IF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
35778 +  ADD_DEFINITIONS(${PTSCOTCH_DEFINITIONS})
35779 +  INCLUDE_DIRECTORIES(${PTSCOTCH_INCLUDE_DIRS})
35780 +ENDIF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
35781 +
35782  IF(MEDCOUPLING_PARTITIONER_SCOTCH)
35783    ADD_DEFINITIONS(${SCOTCH_DEFINITIONS})
35784    INCLUDE_DIRECTORIES(${SCOTCH_INCLUDE_DIRS})
35785 @@ -103,8 +108,9 @@
35786    ${STDLIB}
35787    ${LIBXML2_LIBRARIES}
35788    interpkernel
35789 -  medcoupling
35790 +  medcouplingcpp
35791    medloader
35792 +  -lpthread
35793  )
35794  IF(MEDCOUPLING_PARTITIONER_PARMETIS)
35795    SET(medpartitionercpp_HEADERS_HXX ${medpartitionercpp_HEADERS_HXX} MEDPARTITIONER_ParMetisGraph.hxx)
35796 @@ -124,6 +130,12 @@
35797    SET(medpartitionercpp_DEFINITIONS "${medpartitionercpp_DEFINITIONS} ${SCOTCH_DEFINITIONS}")
35798    SET(medpartitionercpp_LDFLAGS ${medpartitionercpp_LDFLAGS} ${SCOTCH_LIBRARIES})
35799  ENDIF(MEDCOUPLING_PARTITIONER_SCOTCH)
35800 +IF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
35801 +  SET(medpartitionercpp_HEADERS_HXX ${medpartitionercpp_HEADERS_HXX} MEDPARTITIONER_PTScotchGraph.hxx)
35802 +  SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES} MEDPARTITIONER_PTScotchGraph.cxx)
35803 +  SET(medpartitionercpp_DEFINITIONS "${medpartitionercpp_DEFINITIONS} ${PTSCOTCH_DEFINITIONS}")
35804 +  SET(medpartitionercpp_LDFLAGS ${medpartitionercpp_LDFLAGS} ${PTSCOTCH_LIBRARIES})
35805 +ENDIF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
35806  
35807  IF(${MEDCOUPLING_USE_MPI})
35808    SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES} MEDPARTITIONER_UtilsPara.cxx MEDPARTITIONER_JointFinder.cxx)
35809 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/medpartitioner.cxx MEDCOUPLING_new/src/MEDPartitioner/medpartitioner.cxx
35810 --- MEDCOUPLING_old/src/MEDPartitioner/medpartitioner.cxx       2018-04-19 17:04:36.772223421 +0200
35811 +++ MEDCOUPLING_new/src/MEDPartitioner/medpartitioner.cxx       2018-04-19 17:25:17.722797060 +0200
35812 @@ -72,7 +72,7 @@
35813    //sequential : no MPI
35814    MyGlobals::_World_Size=1;
35815    MyGlobals::_Rank=0;
35816 -  MyGlobals::_Creates_Boundary_Faces=0;
35817 +  MyGlobals::_Create_Boundary_Faces=0;
35818    MyGlobals::_Create_Joints=0;
35819  
35820    // Primitive parsing of command-line options
35821 @@ -86,8 +86,8 @@
35822    //user can choose!
35823                 "\t--split-method=<string>  : name of the splitting library (metis/scotch), default is metis\n"
35824  #endif
35825 -               "\t--creates-boundary-faces : creates boundary faces mesh in the output files\n"
35826 -               "\t--creates-joints         : creates joints in the output files\n"
35827 +               "\t--create-boundary-faces  : creates boundary faces mesh in the output files\n"
35828 +               "\t--create-joints          : creates joints in the output files\n"
35829                 "\t--dump-cpu-memory        : dumps passed CPU time and maximal increase of used memory\n"
35830                 );
35831  
35832 @@ -112,7 +112,7 @@
35833        else if (TestArg(argv[i],"--output-file",value)) output=value;
35834        else if (TestArg(argv[i],"--split-method",value)) library=value;
35835        else if (TestArg(argv[i],"--ndomains",value)) ndomains=atoi(value.c_str());
35836 -      else if (TestArg(argv[i],"--creates-boundary-faces",value)) MyGlobals::_Creates_Boundary_Faces=1;
35837 +      else if (TestArg(argv[i],"--create-boundary-faces",value)) MyGlobals::_Create_Boundary_Faces=1;
35838        else if (TestArg(argv[i],"--create-joints",value)) MyGlobals::_Create_Joints=1;
35839        else if (TestArg(argv[i],"--dump-cpu-memory",value)) mesure_memory=true;
35840        else 
35841 @@ -153,7 +153,7 @@
35842        cout << "  output-file = " << output << endl;
35843        cout << "  split-method = " << library << endl;
35844        cout << "  ndomains = " << ndomains << endl;
35845 -      cout << "  creates_boundary_faces = " << MyGlobals::_Creates_Boundary_Faces << endl;
35846 +      cout << "  create_boundary_faces = " << MyGlobals::_Create_Boundary_Faces << endl;
35847        cout << "  create-joints = " << MyGlobals::_Create_Joints<< endl;
35848        cout << "  dump-cpu-memory = " << mesure_memory<< endl;
35849        cout << "  verbose = " << MyGlobals::_Verbose << endl;
35850 @@ -267,7 +267,7 @@
35851        if (MyGlobals::_Is0verbose) 
35852          cout << "generalInformations : \n"<<ReprVectorOfString(finalInformations);
35853      
35854 -      //new_collection.setSubdomainBoundaryCreates(creates_boundary_faces);
35855 +      //new_collection.setSubdomainBoundaryCreates(create_boundary_faces);
35856        if (MyGlobals::_Is0verbose) cout << "Writing "<<ndomains<<" output files "<<output<<"xx.med"<<" and "<<output<<".xml"<<endl;
35857        new_collection.write(output);
35858    
35859 @@ -302,7 +302,7 @@
35860      }
35861    catch(...)
35862      {
35863 -      cerr<<"an unknown type exception error was occured"<<endl;
35864 +      cerr<<"an unknown type exception error has occurred"<<endl;
35865        fflush(stderr);
35866        return 1;
35867      }
35868 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_Graph.hxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_Graph.hxx
35869 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_Graph.hxx 2018-04-19 17:04:36.770223381 +0200
35870 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_Graph.hxx 2018-04-19 17:25:17.719797001 +0200
35871 @@ -38,7 +38,7 @@
35872    class MEDPARTITIONER_EXPORT Graph
35873    {
35874    public:
35875 -    typedef enum {METIS,SCOTCH} splitter_type;
35876 +    typedef enum {METIS,SCOTCH,PTSCOTCH} splitter_type;
35877  
35878      Graph();
35879      //creates a graph from a SKYLINEARRAY- WARNING!! Graph takes ownership of the array.
35880 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.cxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.cxx
35881 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.cxx        2018-04-19 17:04:36.770223381 +0200
35882 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.cxx        2018-04-19 17:25:17.723797080 +0200
35883 @@ -30,6 +30,9 @@
35884  #ifdef MED_ENABLE_SCOTCH
35885  #  include "MEDPARTITIONER_ScotchGraph.hxx"
35886  #endif
35887 +#ifdef MED_ENABLE_PTSCOTCH
35888 +#  include "MEDPARTITIONER_PTScotchGraph.hxx"
35889 +#endif
35890  #include "MEDPARTITIONER_MeshCollectionDriver.hxx"
35891  
35892  #include "MEDCouplingUMesh.hxx"
35893 @@ -38,12 +41,16 @@
35894  #include <iostream>
35895  #include <vector>
35896  
35897 -MEDPARTITIONER::MEDPartitioner::MEDPartitioner(const std::string& filename, int ndomains, const std::string& library,bool creates_boundary_faces, bool create_joints, bool mesure_memory):
35898 +const char MEDPARTITIONER::MEDPartitioner::METIS_PART_ALG[]="Metis";
35899 +const char MEDPARTITIONER::MEDPartitioner::SCOTCH_PART_ALG[]="Scotch";
35900 +const char MEDPARTITIONER::MEDPartitioner::PTSCOTCH_PART_ALG[]="PTScotch";
35901 +
35902 +MEDPARTITIONER::MEDPartitioner::MEDPartitioner(const std::string& filename, int ndomains, const std::string& library,bool create_boundary_faces, bool create_joints, bool mesure_memory):
35903    _input_collection( 0 ), _output_collection( 0 ), _new_topology( 0 )
35904  {
35905    MyGlobals::_World_Size = 1;
35906    MyGlobals::_Rank = 0;
35907 -  MyGlobals::_Creates_Boundary_Faces = creates_boundary_faces;
35908 +  MyGlobals::_Create_Boundary_Faces = create_boundary_faces;
35909    MyGlobals::_Create_Joints = create_joints;
35910  
35911    ParaDomainSelector parallelizer(mesure_memory);
35912 @@ -54,17 +61,17 @@
35913      (MEDPARTITIONER::ParallelTopology*) _input_collection->getTopology();
35914    aPT->setGlobalNumerotationDefault( _input_collection->getParaDomainSelector() );
35915    _input_collection->prepareFieldDescriptions();
35916 -  createPartitionCollection(ndomains, library, creates_boundary_faces, create_joints, mesure_memory);
35917 +  createPartitionCollection(ndomains, library, create_boundary_faces, create_joints, mesure_memory);
35918  
35919    parallelizer.evaluateMemory();
35920  }
35921  
35922 -MEDPARTITIONER::MEDPartitioner::MEDPartitioner(const MEDCoupling::MEDFileData* filedata, int ndomains, const std::string& library,bool creates_boundary_faces, bool create_joints, bool mesure_memory):
35923 +MEDPARTITIONER::MEDPartitioner::MEDPartitioner(const MEDCoupling::MEDFileData* filedata, int ndomains, const std::string& library,bool create_boundary_faces, bool create_joints, bool mesure_memory):
35924    _input_collection( 0 ), _output_collection( 0 ), _new_topology( 0 )
35925  {
35926    MyGlobals::_World_Size = 1;
35927    MyGlobals::_Rank = 0;
35928 -  MyGlobals::_Creates_Boundary_Faces = creates_boundary_faces;
35929 +  MyGlobals::_Create_Boundary_Faces = create_boundary_faces;
35930    MyGlobals::_Create_Joints = create_joints;
35931  
35932    ParaDomainSelector parallelizer(mesure_memory);
35933 @@ -76,17 +83,17 @@
35934      (MEDPARTITIONER::ParallelTopology*) _input_collection->getTopology();
35935    aPT->setGlobalNumerotationDefault( _input_collection->getParaDomainSelector() );
35936    _input_collection->prepareFieldDescriptions();
35937 -  createPartitionCollection(ndomains, library, creates_boundary_faces, create_joints, mesure_memory);
35938 +  createPartitionCollection(ndomains, library, create_boundary_faces, create_joints, mesure_memory);
35939  
35940    parallelizer.evaluateMemory();
35941  }
35942  
35943 -MEDPARTITIONER::MEDPartitioner::MEDPartitioner(const MEDCoupling::MEDFileData* filedata, MEDPARTITIONER ::Graph* graph, bool creates_boundary_faces, bool create_joints, bool mesure_memory):
35944 +MEDPARTITIONER::MEDPartitioner::MEDPartitioner(const MEDCoupling::MEDFileData* filedata, MEDPARTITIONER ::Graph* graph, bool create_boundary_faces, bool create_joints, bool mesure_memory):
35945    _input_collection( 0 ), _output_collection( 0 ), _new_topology( 0 )
35946  {
35947    MyGlobals::_World_Size = 1;
35948    MyGlobals::_Rank = 0;
35949 -  MyGlobals::_Creates_Boundary_Faces = creates_boundary_faces;
35950 +  MyGlobals::_Create_Boundary_Faces = create_boundary_faces;
35951    MyGlobals::_Create_Joints = create_joints;
35952  
35953    ParaDomainSelector parallelizer(mesure_memory);
35954 @@ -113,7 +120,7 @@
35955    delete _new_topology; _new_topology = 0;
35956  }
35957  
35958 -void MEDPARTITIONER::MEDPartitioner::createPartitionCollection(int ndomains, const std::string& library,bool creates_boundary_faces, bool create_joints, bool mesure_memory)
35959 +void MEDPARTITIONER::MEDPartitioner::createPartitionCollection(int ndomains, const std::string& library,bool create_boundary_faces, bool create_joints, bool mesure_memory)
35960  {
35961    //ParallelTopology* aPT = (ParallelTopology*) _input_collection->getTopology();
35962    if (library == "metis")
35963 @@ -137,18 +144,18 @@
35964    return _output_collection->retrieveDriver()->getMEDFileData();
35965  }
35966  
35967 -MEDPARTITIONER::Graph* MEDPARTITIONER::MEDPartitioner::Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split, int* edgeweight)
35968 +MEDPARTITIONER::Graph* MEDPARTITIONER::MEDPartitioner::Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split, int* edgeweight, DataArrayInt *vlbloctab)
35969  {
35970    MEDPARTITIONER::Graph* cellGraph=0;
35971    // will be destroyed by XXXGraph class:
35972 -  MEDCoupling::MEDCouplingSkyLineArray* arr = MEDCoupling::MEDCouplingSkyLineArray::New(graph->getIndexArray(), graph->getValuesArray());
35973 +  MEDCoupling::MCAuto<MEDCoupling::MEDCouplingSkyLineArray> arr(MEDCoupling::MEDCouplingSkyLineArray::New(graph->getIndexArray(), graph->getValuesArray()));
35974    switch (split)
35975      {
35976      case Graph::METIS:
35977        if ( !cellGraph )
35978          {
35979  #ifdef MED_ENABLE_METIS
35980 -          cellGraph=new METISGraph(arr,edgeweight);
35981 +          cellGraph=new METISGraph(arr.retn(),edgeweight);
35982  #endif
35983          }
35984        if ( !cellGraph )
35985 @@ -156,11 +163,73 @@
35986        break;
35987      case Graph::SCOTCH:
35988  #ifdef MED_ENABLE_SCOTCH
35989 -      cellGraph=new SCOTCHGraph(arr,edgeweight);
35990 +      cellGraph=new SCOTCHGraph(arr.retn(),edgeweight);
35991  #else
35992        throw INTERP_KERNEL::Exception("MEDPartitioner::Graph : SCOTCH is not available. Check your products, please.");
35993  #endif
35994        break;
35995 +    case Graph::PTSCOTCH:
35996 +      {
35997 +#ifdef MED_ENABLE_PTSCOTCH
35998 +        cellGraph=new PTSCOTCHGraph(arr.retn(),edgeweight,vlbloctab);
35999 +#else
36000 +        throw INTERP_KERNEL::Exception("MEDPartitioner::Graph : PTSCOTCH is not available. Check your products, please.");
36001 +#endif
36002 +        break;
36003 +      }
36004 +    default:
36005 +      throw INTERP_KERNEL::Exception("MEDPartitioner::Graph : Not managed split type engine !");
36006      }
36007    return cellGraph;
36008  }
36009 +
36010 +std::vector<std::string> MEDPARTITIONER::MEDPartitioner::AvailableAlgorithms()
36011 +{
36012 +  std::vector<std::string> ret;
36013 +#ifdef MED_ENABLE_METIS
36014 +  ret.push_back(std::string(METIS_PART_ALG));
36015 +#endif
36016 +#ifdef MED_ENABLE_SCOTCH
36017 +  ret.push_back(std::string(SCOTCH_PART_ALG));
36018 +#endif
36019 +#ifdef MED_ENABLE_PTSCOTCH
36020 +  ret.push_back(std::string(PTSCOTCH_PART_ALG));
36021 +#endif
36022 +  return ret;
36023 +}
36024 +
36025 +bool MEDPARTITIONER::MEDPartitioner::HasMetisAlg()
36026 +{
36027 +#ifdef MED_ENABLE_METIS
36028 +  return true;
36029 +#else
36030 +  return false;
36031 +#endif
36032 +}
36033 +
36034 +bool MEDPARTITIONER::MEDPartitioner::HasScotchAlg()
36035 +{
36036 +#ifdef MED_ENABLE_SCOTCH
36037 +  return true;
36038 +#else
36039 +  return false;
36040 +#endif
36041 +}
36042 +
36043 +bool MEDPARTITIONER::MEDPartitioner::HasPTScotchAlg()
36044 +{
36045 +#ifdef MED_ENABLE_PTSCOTCH
36046 +  return true;
36047 +#else
36048 +  return false;
36049 +#endif
36050 +}
36051 +
36052 +std::vector<std::string> MEDPARTITIONER::MEDPartitioner::AllAlgorithms()
36053 +{
36054 +  std::vector<std::string> ret;
36055 +  ret.push_back(std::string(METIS_PART_ALG));
36056 +  ret.push_back(std::string(SCOTCH_PART_ALG));
36057 +  ret.push_back(std::string(PTSCOTCH_PART_ALG));
36058 +  return ret;
36059 +}
36060 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.hxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.hxx
36061 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.hxx        2018-04-19 17:04:36.770223381 +0200
36062 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MEDPartitioner.hxx        2018-04-19 17:25:17.679796210 +0200
36063 @@ -22,6 +22,7 @@
36064  
36065  #include "MEDPARTITIONER.hxx"
36066  #include "MEDPARTITIONER_Graph.hxx"
36067 +#include "MCType.hxx"
36068  
36069  #include <map>
36070  #include <vector>
36071 @@ -29,6 +30,7 @@
36072  namespace MEDCoupling
36073  {
36074    class MEDFileData;
36075 +  class DataArrayInt;
36076  }
36077  
36078  namespace MEDPARTITIONER
36079 @@ -39,21 +41,30 @@
36080    class MEDPARTITIONER_EXPORT MEDPartitioner
36081    {
36082    public:
36083 -    MEDPartitioner(const std::string& filename, int ndomains=1, const std::string& library="metis",bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
36084 -    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, int ndomains=1, const std::string& library="metis",bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
36085 -    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, Graph* graph, bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
36086 -    static MEDPARTITIONER::Graph* Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split=Graph::METIS, int* edgeweight=0);
36087 +    MEDPartitioner(const std::string& filename, int ndomains=1, const std::string& library="metis",bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
36088 +    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, int ndomains=1, const std::string& library="metis",bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
36089 +    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, Graph* graph, bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
36090 +    static MEDPARTITIONER::Graph* Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split=Graph::METIS, int* edgeweight=0, DataArrayInt* vlbloctab=0);
36091 +    static std::vector<std::string> AvailableAlgorithms();
36092 +    static std::vector<std::string> AllAlgorithms();
36093 +    static bool HasMetisAlg();
36094 +    static bool HasScotchAlg();
36095 +    static bool HasPTScotchAlg();
36096      void write(const std::string& filename);
36097      MEDCoupling::MEDFileData* getMEDFileData();
36098      ~MEDPartitioner();
36099  
36100      MEDCoupling::MEDFileData *convertToMEDFileData(MeshCollection* meshcollection);
36101 -    void createPartitionCollection(int ndomains, const std::string& library,bool creates_boundary_faces, bool create_joints, bool mesure_memory);
36102 +    void createPartitionCollection(int ndomains, const std::string& library,bool create_boundary_faces, bool create_joints, bool mesure_memory);
36103  
36104    private:
36105      MeshCollection* _input_collection;
36106      MeshCollection* _output_collection;
36107      Topology*       _new_topology;
36108 +  public:
36109 +    static const char METIS_PART_ALG[];
36110 +    static const char SCOTCH_PART_ALG[];
36111 +    static const char PTSCOTCH_PART_ALG[];
36112    };
36113  }
36114  #endif
36115 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.cxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.cxx
36116 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.cxx        2018-04-19 17:04:36.770223381 +0200
36117 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.cxx        2018-04-19 17:25:17.714796902 +0200
36118 @@ -71,7 +71,7 @@
36119      _domain_selector( 0 ),
36120      _i_non_empty_mesh(-1),
36121      _driver_type(MEDPARTITIONER::MedXml),
36122 -    _subdomain_boundary_creates( MyGlobals::_Creates_Boundary_Faces ),
36123 +    _subdomain_boundary_creates( MyGlobals::_Create_Boundary_Faces ),
36124      _family_splitting(false),
36125      _create_empty_groups(false),
36126      _joint_finder(0)
36127 @@ -100,7 +100,7 @@
36128      _i_non_empty_mesh(-1),
36129      _name(initialCollection._name),
36130      _driver_type(MEDPARTITIONER::MedXml),
36131 -    _subdomain_boundary_creates(MyGlobals::_Creates_Boundary_Faces),
36132 +    _subdomain_boundary_creates(MyGlobals::_Create_Boundary_Faces),
36133      _family_splitting(family_splitting),
36134      _create_empty_groups(create_empty_groups),
36135      _joint_finder(0)
36136 @@ -1508,7 +1508,7 @@
36137      _domain_selector( 0 ),
36138      _i_non_empty_mesh(-1),
36139      _driver_type(MEDPARTITIONER::Undefined),
36140 -    _subdomain_boundary_creates(MyGlobals::_Creates_Boundary_Faces),
36141 +    _subdomain_boundary_creates(MyGlobals::_Create_Boundary_Faces),
36142      _family_splitting(false),
36143      _create_empty_groups(false),
36144      _joint_finder(0)
36145 @@ -1552,7 +1552,7 @@
36146      _domain_selector( &domainSelector ),
36147      _i_non_empty_mesh(-1),
36148      _driver_type(MEDPARTITIONER::Undefined),
36149 -    _subdomain_boundary_creates(MyGlobals::_Creates_Boundary_Faces),
36150 +    _subdomain_boundary_creates(MyGlobals::_Create_Boundary_Faces),
36151      _family_splitting(false),
36152      _create_empty_groups(false),
36153      _joint_finder(0)
36154 @@ -1712,7 +1712,7 @@
36155      _i_non_empty_mesh(-1),
36156      _name(meshname),
36157      _driver_type(MEDPARTITIONER::MedXml),
36158 -    _subdomain_boundary_creates(MyGlobals::_Creates_Boundary_Faces),
36159 +    _subdomain_boundary_creates(MyGlobals::_Create_Boundary_Faces),
36160      _family_splitting(false),
36161      _create_empty_groups(false),
36162      _joint_finder(0)
36163 @@ -1768,7 +1768,7 @@
36164   * 
36165   * The method creates as many MED-files as there are domains in the 
36166   * collection. It also creates a master file that lists all the MED files.
36167 - * The MED files created in ths manner contain joints that describe the 
36168 + * The MED files created in this manner contain joints that describe the 
36169   * connectivity between subdomains.
36170   * 
36171   * \param filename name of the master file that will contain the list of the MED files
36172 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.cxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.cxx
36173 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.cxx  2018-04-19 17:04:36.770223381 +0200
36174 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.cxx  2018-04-19 17:25:17.693796487 +0200
36175 @@ -234,7 +234,7 @@
36176      }
36177  
36178    // MEDCoupling::MEDCouplingUMesh* boundaryMesh=0;
36179 -  // if (MyGlobals::_Creates_Boundary_Faces>0)
36180 +  // if (MyGlobals::_Create_Boundary_Faces>0)
36181    //   {
36182    //     //try to write Boundary meshes
36183    //     bool keepCoords=false; //TODO or true
36184 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.hxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.hxx
36185 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.hxx        2018-04-19 17:04:36.770223381 +0200
36186 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_MeshCollection.hxx        2018-04-19 17:25:17.682796269 +0200
36187 @@ -222,7 +222,7 @@
36188      std::map<std::string, int> _family_info;
36189      std::map<std::string, std::vector<std::string> > _group_info;
36190    
36191 -    //list of groups that are not to be splitted
36192 +    //list of groups that are not to be split
36193      std::vector<std::string> _indivisible_regions;
36194  
36195      //name of global mesh
36196 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/medpartitioner_para.cxx MEDCOUPLING_new/src/MEDPartitioner/medpartitioner_para.cxx
36197 --- MEDCOUPLING_old/src/MEDPartitioner/medpartitioner_para.cxx  2018-04-19 17:04:36.772223421 +0200
36198 +++ MEDCOUPLING_new/src/MEDPartitioner/medpartitioner_para.cxx  2018-04-19 17:25:17.689796408 +0200
36199 @@ -102,7 +102,7 @@
36200  //user can choose! (not yet)
36201                 "\t--split-method=<string>  : name of the splitting library (metis/scotch), default is metis\n"
36202  #endif
36203 -               "\t--creates-boundary-faces : creates boundary faces mesh in the output files\n"
36204 +               "\t--create-boundary-faces : creates boundary faces mesh in the output files\n"
36205                 "\t--dump-cpu-memory        : dumps passed CPU time and maximal increase of used memory\n"
36206                 //"\t--randomize=<number>     : random seed for other partitionning (only on one proc)\n"
36207                 //"\t--atomize                : do the opposite of a good partitionner (only on one proc)\n"
36208 @@ -131,7 +131,7 @@
36209        else if (TestArg(argv[i],"--ndomains",value)) ndomains=atoi(value.c_str());
36210        else if (TestArg(argv[i],"--randomize",value)) MyGlobals::_Randomize=atoi(value.c_str());
36211        else if (TestArg(argv[i],"--atomize",value)) MyGlobals::_Atomize=atoi(value.c_str());
36212 -      else if (TestArg(argv[i],"--creates-boundary-faces",value)) MyGlobals::_Creates_Boundary_Faces=1;
36213 +      else if (TestArg(argv[i],"--create-boundary-faces",value)) MyGlobals::_Create_Boundary_Faces=1;
36214        else if (TestArg(argv[i],"--dump-cpu-memory",value)) mesure_memory=true;
36215        else 
36216          {
36217 @@ -196,7 +196,7 @@
36218        cout << "  output-file = " << output << endl;
36219        cout << "  split-method = " << library << endl;
36220        cout << "  ndomains = " << ndomains << endl;
36221 -      cout << "  creates_boundary_faces = " << MyGlobals::_Creates_Boundary_Faces << endl;
36222 +      cout << "  create_boundary_faces = " << MyGlobals::_Create_Boundary_Faces << endl;
36223        cout << "  dump-cpu-memory = " << mesure_memory<< endl;
36224        cout << "  verbose = " << MyGlobals::_Verbose << endl;
36225      }
36226 @@ -303,7 +303,7 @@
36227        if (MyGlobals::_Is0verbose) 
36228          cout << "generalInformations : \n"<<ReprVectorOfString(finalInformations);
36229      
36230 -      //new_collection.setSubdomainBoundaryCreates(creates_boundary_faces);
36231 +      //new_collection.setSubdomainBoundaryCreates(create_boundary_faces);
36232        if (MyGlobals::_Is0verbose) cout << "Writing "<<ndomains<<" output files "<<output<<"xx.med"<<" and "<<output<<".xml"<<endl;
36233        new_collection.write(output);
36234    
36235 @@ -343,7 +343,7 @@
36236      }
36237    catch(...)
36238      {
36239 -      cerr<<"proc "<<MyGlobals::_Rank<<" : an unknown type exception error was occured"<<endl;
36240 +      cerr<<"proc "<<MyGlobals::_Rank<<" : an unknown type exception error has occurred"<<endl;
36241        fflush(stderr);
36242        MPI_Finalize();
36243        return 1;
36244 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx
36245 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx    2018-04-19 17:04:36.771223401 +0200
36246 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx    2018-04-19 17:25:17.676796151 +0200
36247 @@ -56,7 +56,7 @@
36248    _world_size=1;
36249    _rank=0;
36250    if (MyGlobals::_Verbose>10)
36251 -    std::cout << "WARNING : ParaDomainSelector contructor without parallel_mode World_Size=1 by default" << std::endl;
36252 +    std::cout << "WARNING : ParaDomainSelector constructor without parallel_mode World_Size=1 by default" << std::endl;
36253  #endif
36254    MyGlobals::_World_Size=_world_size;
36255    MyGlobals::_Rank=_rank;
36256 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx
36257 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx      2018-04-19 17:04:36.771223401 +0200
36258 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx      2018-04-19 17:25:17.716796941 +0200
36259 @@ -63,7 +63,7 @@
36260      parallel_mode = (!meshes[idomain]);
36261  
36262    if (MyGlobals::_Is0verbose>20 && !parallel_mode)
36263 -    std::cout << "WARNING : ParallelTopology contructor without parallel_mode" << std::endl;
36264 +    std::cout << "WARNING : ParallelTopology constructor without parallel_mode" << std::endl;
36265    for (int idomain=0; idomain<_nb_domain; idomain++)
36266      {
36267        if ( !meshes[idomain] ) continue;
36268 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.cxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.cxx
36269 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.cxx 1970-01-01 01:00:00.000000000 +0100
36270 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.cxx 2018-04-19 17:25:17.711796843 +0200
36271 @@ -0,0 +1,123 @@
36272 +// Copyright (C) 2017  CEA/DEN, EDF R&D
36273 +//
36274 +// This library is free software; you can redistribute it and/or
36275 +// modify it under the terms of the GNU Lesser General Public
36276 +// License as published by the Free Software Foundation; either
36277 +// version 2.1 of the License, or (at your option) any later version.
36278 +//
36279 +// This library is distributed in the hope that it will be useful,
36280 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
36281 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
36282 +// Lesser General Public License for more details.
36283 +//
36284 +// You should have received a copy of the GNU Lesser General Public
36285 +// License along with this library; if not, write to the Free Software
36286 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
36287 +//
36288 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
36289 +//
36290 +
36291 +#include "MEDPARTITIONER_PTScotchGraph.hxx"
36292 +#include "MEDPARTITIONER_Utils.hxx"
36293 +
36294 +#include "MEDCouplingSkyLineArray.hxx"
36295 +#include "MEDCouplingMemArray.hxx"
36296 +#include "MCType.hxx"
36297 +
36298 +#include <cstdio>
36299 +#include <mpi.h>
36300 +
36301 +#ifdef MED_ENABLE_PTSCOTCH
36302 +extern "C"
36303 +{
36304 +#define restrict
36305 +#include "ptscotch.h"
36306 +}
36307 +#endif
36308 +
36309 +using namespace MEDPARTITIONER;
36310 +
36311 +
36312 +PTSCOTCHGraph::PTSCOTCHGraph(MEDCoupling::MEDCouplingSkyLineArray *graph, int *edgeweight, DataArrayInt *vlbloctab):Graph(graph,edgeweight),_vlbloctab(vlbloctab)
36313 +{
36314 +}
36315 +
36316 +PTSCOTCHGraph::~PTSCOTCHGraph()
36317 +{
36318 +}
36319 +
36320 +void PTSCOTCHGraph::partGraph(int ndomain, const std::string& options_string, ParaDomainSelector* sel)
36321 +{
36322 +  if (MyGlobals::_Verbose>10)
36323 +    std::cout << "proc " << MyGlobals::_Rank << " : PTSCOTCHGraph::partGraph" << std::endl;
36324 +  
36325 +  //number of graph vertices
36326 +  int n = _graph->getNumberOf();
36327 +  //graph
36328 +  int * xadj=const_cast<int*>(_graph->getIndex());
36329 +  int * adjncy=const_cast<int*>(_graph->getValues());
36330 +  //ndomain
36331 +  int nparts=ndomain;
36332 +
36333 +#if !defined(MED_ENABLE_PTSCOTCH)
36334 +  throw INTERP_KERNEL::Exception("PTSCOTCHGraph::partGraph : PTSCOTCH is not available. Check your products, please.");
36335 +#else
36336 +  //output parameters
36337 +  int* partition = new int[n+1];
36338 +  
36339 +  int* vlbloctab = _vlbloctab?const_cast<int*>(_vlbloctab->begin()):0;
36340 +  
36341 +  SCOTCH_Dgraph scotch_graph;
36342 +  SCOTCH_dgraphInit(&scotch_graph, MPI_COMM_WORLD);
36343 +  SCOTCH_dgraphBuild(&scotch_graph,
36344 +                     0,             // baseval               , base first indice 0
36345 +                     n,             // vertlocnbr            , nb of local graph nodes
36346 +                     n,             // vertlocmax            , should be set to vertlocnbr for graphs without holes
36347 +                     xadj,          // vertloctab[vertnbr+1] , index vertex table
36348 +                     0,             // vendloctab            , index end vertex table if disjoint, set to zero
36349 +                     _cell_weight,  // veloloctab            , graph vertices loads, set to zero
36350 +                     vlbloctab,     // vlblocltab            , vertex label array : global vertex index
36351 +                     xadj[n],       // edgelocnbr            , number of edges
36352 +                     xadj[n],       // edgelocsiz            , same as edgelocnbr if edgeloctab is compact
36353 +                     adjncy,        // edgeloctab[edgelocnbr], global indexes of edges
36354 +                     0,             // edgegsttab            , optional, should be computed internally, set to zero
36355 +                     _edge_weight); // edloloctab            , graph edges loads, set to zero
36356 +  
36357 +  SCOTCH_Strat scotch_strategy;
36358 +  SCOTCH_stratInit(&scotch_strategy);
36359 +  
36360 +  //!user-defined options for the strategy
36361 +  if (options_string!="")
36362 +    SCOTCH_stratGraphMap(&scotch_strategy,options_string.c_str());
36363 +
36364 +  if (nparts>1)
36365 +    {
36366 +      if (MyGlobals::_Verbose>10) std::cout << "SCOTCHGraph::graphPart SCOTCH_graphPart" << std::endl;
36367 +      SCOTCH_dgraphPart(&scotch_graph,nparts,&scotch_strategy,partition);
36368 +    }
36369 +  else  //partition for 1 subdomain
36370 +    {
36371 +    for (int i=0; i<n+1; i++)
36372 +      partition[i]=0;
36373 +    }
36374 +  
36375 +  SCOTCH_stratExit(&scotch_strategy);
36376 +  SCOTCH_dgraphExit(&scotch_graph);
36377 +
36378 +  std::vector<int> index(n+1);
36379 +  std::vector<int> value(n);
36380 +  index[0]=0;
36381 +  for (int i=0; i<n; i++)
36382 +    {
36383 +      index[i+1]=index[i]+1;
36384 +      value[i]=partition[i];
36385 +    }
36386 +  delete [] partition;
36387 +  
36388 +  //creating a skylinearray with no copy of the index and partition array
36389 +  //the fifth argument true specifies that only the pointers are passed 
36390 +  //to the object
36391 +  _partition = MEDCoupling::MEDCouplingSkyLineArray::New(index,value);
36392 +#endif
36393 +}
36394 +
36395 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.hxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.hxx
36396 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.hxx 1970-01-01 01:00:00.000000000 +0100
36397 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_PTScotchGraph.hxx 2018-04-19 17:25:17.681796250 +0200
36398 @@ -0,0 +1,47 @@
36399 +// Copyright (C) 2017  CEA/DEN, EDF R&D
36400 +//
36401 +// This library is free software; you can redistribute it and/or
36402 +// modify it under the terms of the GNU Lesser General Public
36403 +// License as published by the Free Software Foundation; either
36404 +// version 2.1 of the License, or (at your option) any later version.
36405 +//
36406 +// This library is distributed in the hope that it will be useful,
36407 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
36408 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
36409 +// Lesser General Public License for more details.
36410 +//
36411 +// You should have received a copy of the GNU Lesser General Public
36412 +// License along with this library; if not, write to the Free Software
36413 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
36414 +//
36415 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
36416 +//
36417 +
36418 +#ifndef __MEDPARTITIONER_PTSCOTCHGRAPH_HXX__
36419 +#define __MEDPARTITIONER_PTSCOTCHGRAPH_HXX__
36420 +
36421 +#include "MEDPARTITIONER.hxx"
36422 +#include "MEDPARTITIONER_Graph.hxx"
36423 +#include "MCType.hxx"
36424 +#include <string>
36425 +
36426 +namespace MEDCoupling
36427 +{
36428 +  class DataArrayInt;
36429 +}
36430 +
36431 +namespace MEDPARTITIONER
36432 +{
36433 +  class MEDPARTITIONER_EXPORT PTSCOTCHGraph : public Graph
36434 +  {
36435 +  public:
36436 +    PTSCOTCHGraph() { }
36437 +    PTSCOTCHGraph(MEDCoupling::MEDCouplingSkyLineArray* , int *edgeweight=0, DataArrayInt *vlbloctab=0);
36438 +    virtual ~PTSCOTCHGraph();
36439 +    void partGraph(int ndomain, const std::string& options_string="", ParaDomainSelector* sel=0);
36440 +  protected:
36441 +    MEDCoupling::DataArrayInt *_vlbloctab;
36442 +  };
36443 +}
36444 +
36445 +#endif
36446 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx
36447 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx 2018-04-19 17:04:36.771223401 +0200
36448 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx 2018-04-19 17:25:17.710796823 +0200
36449 @@ -44,7 +44,7 @@
36450  int MEDPARTITIONER::MyGlobals::_World_Size=-1;
36451  int MEDPARTITIONER::MyGlobals::_Randomize=0;
36452  int MEDPARTITIONER::MyGlobals::_Atomize=0;
36453 -int MEDPARTITIONER::MyGlobals::_Creates_Boundary_Faces=0;
36454 +int MEDPARTITIONER::MyGlobals::_Create_Boundary_Faces=0;
36455  int MEDPARTITIONER::MyGlobals::_Create_Joints=0;
36456  std::vector<std::string> MEDPARTITIONER::MyGlobals::_File_Names;
36457  std::vector<std::string> MEDPARTITIONER::MyGlobals::_Mesh_Names;
36458 @@ -364,7 +364,7 @@
36459        iss >> sizeVector;
36460        std::string keymap=enTete.substr(foundKey+7,foundSizeVector-foundKey-7);
36461        for (int ii=1; ii<=sizeVector; ii++)
36462 -        res[keymap].push_back(vs[ii]); //add unconditionnaly,so merge duplicates in second vector
36463 +        res[keymap].push_back(vs[ii]); //add unconditionally,so merge duplicates in second vector
36464      }
36465    return res;
36466  }
36467 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx
36468 --- MEDCOUPLING_old/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx 2018-04-19 17:04:36.771223401 +0200
36469 +++ MEDCOUPLING_new/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx 2018-04-19 17:25:17.686796348 +0200
36470 @@ -89,7 +89,7 @@
36471    std::vector<std::string> GetInfosOfField(const char *fileName, const char *meshName, const int idomain );
36472  
36473  #ifdef HAVE_MPI
36474 -  //not adviced, interblocking, use sendAndReceive
36475 +  //not advised, interblocking, use sendAndReceive
36476    //void SendVectorOfString(const std::vector<std::string>& vec, const int target);
36477    //std::vector<std::string> RecvVectorOfString(const int source);
36478    //TODO void sendRecvVectorOfString(const std::vector<std::string>& vec, const int source, const int target);
36479 @@ -126,7 +126,7 @@
36480      static int _World_Size;
36481      static int _Randomize;
36482      static int _Atomize;
36483 -    static int _Creates_Boundary_Faces;
36484 +    static int _Create_Boundary_Faces;
36485      static int _Create_Joints;
36486      static int _Is0verbose; //trace cout if rank 0 and verbose
36487      static std::vector<std::string> _File_Names;    //on [iold]
36488 diff -Naur MEDCOUPLING_old/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx MEDCOUPLING_new/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx
36489 --- MEDCOUPLING_old/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx      2018-04-19 17:04:36.772223421 +0200
36490 +++ MEDCOUPLING_new/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx      2018-04-19 17:25:17.703796685 +0200
36491 @@ -1421,7 +1421,7 @@
36492  
36493    const char xmlName[] = "tmp_testCreateBoundaryFaces2D";
36494    {
36495 -    MyGlobals::_Creates_Boundary_Faces = true;
36496 +    MyGlobals::_Create_Boundary_Faces = true;
36497      MeshCollection new_collection(collection,new_topo.get());
36498  
36499      CPPUNIT_ASSERT_EQUAL(ndomains,new_collection.getNbOfLocalMeshes());
36500 diff -Naur MEDCOUPLING_old/src/MEDPartitioner_Swig/CMakeLists.txt MEDCOUPLING_new/src/MEDPartitioner_Swig/CMakeLists.txt
36501 --- MEDCOUPLING_old/src/MEDPartitioner_Swig/CMakeLists.txt      2018-04-19 17:04:36.772223421 +0200
36502 +++ MEDCOUPLING_new/src/MEDPartitioner_Swig/CMakeLists.txt      2018-04-19 17:25:17.233787394 +0200
36503 @@ -34,7 +34,7 @@
36504  
36505  INCLUDE_DIRECTORIES(
36506    ${PYTHON_INCLUDE_DIRS}
36507 -  ${PTHREAD_INCLUDE_DIR} # pthread dependancy due to python2.7 library
36508 +  ${PTHREAD_INCLUDE_DIR} # pthread dependency due to python2.7 library
36509    ${NUMPY_INCLUDE_DIR}
36510    ${CMAKE_CURRENT_SOURCE_DIR}
36511    ${CMAKE_CURRENT_BINARY_DIR}
36512 diff -Naur MEDCOUPLING_old/src/MEDPartitioner_Swig/MEDPartitionerCommon.i MEDCOUPLING_new/src/MEDPartitioner_Swig/MEDPartitionerCommon.i
36513 --- MEDCOUPLING_old/src/MEDPartitioner_Swig/MEDPartitionerCommon.i      2018-04-19 17:04:36.772223421 +0200
36514 +++ MEDCOUPLING_new/src/MEDPartitioner_Swig/MEDPartitionerCommon.i      2018-04-19 17:25:17.235787434 +0200
36515 @@ -17,42 +17,28 @@
36516  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
36517  //
36518  
36519 -%module MEDPartitioner
36520 -
36521 -%include std_string.i
36522 -
36523  %{
36524 -#include "MEDFileData.hxx"
36525 -
36526  #include "MEDPARTITIONER_MEDPartitioner.hxx"
36527  #include "MEDPARTITIONER.hxx"
36528  #include "MEDPARTITIONER_Graph.hxx"
36529  
36530 -using namespace MEDCoupling;
36531 -using namespace INTERP_KERNEL;
36532  using namespace MEDPARTITIONER;
36533  %}
36534  
36535 -%feature("autodoc", "1");
36536 -%feature("docstring");
36537 +
36538  
36539  %newobject MEDPARTITIONER::MEDPartitioner::New;
36540  %newobject MEDPARTITIONER::MEDPartitioner::Graph;
36541  %newobject MEDPARTITIONER::MEDPartitioner::Graph::getGraph;
36542  %newobject MEDPARTITIONER::MEDPartitioner::Graph::getPartition;
36543  %newobject MEDPARTITIONER::MEDPartitioner::getMEDFileData;
36544 -%feature("unref") MEDCoupling::MEDFileData "$this->decrRef();"
36545 -
36546 -%nodefaultctor;
36547 -
36548 -%rename (InterpKernelException) INTERP_KERNEL::Exception;
36549  
36550  namespace MEDPARTITIONER
36551  {
36552    class Graph
36553    {
36554    public:
36555 -    typedef enum {METIS,SCOTCH} splitter_type;
36556 +    typedef enum {METIS,SCOTCH,PTSCOTCH} splitter_type;
36557    public:
36558      virtual void partGraph(int ndomain, const std::string& options_string="", ParaDomainSelector *sel=0) throw(INTERP_KERNEL::Exception);
36559      MEDCoupling::MEDCouplingSkyLineArray *getGraph() const
36560 @@ -75,10 +61,12 @@
36561    class MEDPartitioner
36562    {
36563    public:
36564 -    MEDPartitioner(const std::string& filename, int ndomains=1, const std::string& library="metis",bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
36565 -    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, int ndomains=1, const std::string& library="metis",bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
36566 -    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, Graph* graph, bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
36567 -    static MEDPARTITIONER::Graph* Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split=Graph::METIS, int* edgeweight=0) throw(INTERP_KERNEL::Exception);
36568 +    MEDPartitioner(const std::string& filename, int ndomains=1, const std::string& library="metis",bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
36569 +    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, int ndomains=1, const std::string& library="metis",bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
36570 +    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, Graph* graph, bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
36571 +    static MEDPARTITIONER::Graph* Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split=Graph::METIS, int* edgeweight=0, MEDCoupling::DataArrayInt* vlbloctab=0) throw(INTERP_KERNEL::Exception);
36572 +    static std::vector<std::string> AvailableAlgorithms();
36573 +    static std::vector<std::string> AllAlgorithms();
36574      MEDCoupling::MEDFileData* getMEDFileData() throw(INTERP_KERNEL::Exception);
36575      void write(const std::string& filename) throw(INTERP_KERNEL::Exception);
36576    };
36577 diff -Naur MEDCOUPLING_old/src/MEDPartitioner_Swig/MEDPartitioner.i MEDCOUPLING_new/src/MEDPartitioner_Swig/MEDPartitioner.i
36578 --- MEDCOUPLING_old/src/MEDPartitioner_Swig/MEDPartitioner.i    2018-04-19 17:04:36.772223421 +0200
36579 +++ MEDCOUPLING_new/src/MEDPartitioner_Swig/MEDPartitioner.i    2018-04-19 17:25:17.237787473 +0200
36580 @@ -17,5 +17,25 @@
36581  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
36582  //
36583  
36584 +%module MEDPartitioner
36585 +
36586 +%{
36587 +#include "MEDFileData.hxx"
36588 +
36589 +using namespace MEDCoupling;
36590 +using namespace INTERP_KERNEL;
36591 +%}
36592 +
36593 +%include std_string.i
36594 +
36595 +%feature("autodoc", "1");
36596 +%feature("docstring");
36597 +
36598 +%feature("unref") MEDCoupling::MEDFileData "$this->decrRef();"
36599 +
36600 +%nodefaultctor;
36601 +
36602 +%rename (InterpKernelException) INTERP_KERNEL::Exception;
36603 +
36604  %include "MEDPartitionerCommon.i"
36605  
36606 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/CMakeLists.txt MEDCOUPLING_new/src/ParaMEDMEM/CMakeLists.txt
36607 --- MEDCOUPLING_old/src/ParaMEDMEM/CMakeLists.txt       2018-04-19 17:04:36.773223441 +0200
36608 +++ MEDCOUPLING_new/src/ParaMEDMEM/CMakeLists.txt       2018-04-19 17:25:17.312788956 +0200
36609 @@ -61,7 +61,7 @@
36610    )
36611  
36612  ADD_LIBRARY(paramedmem ${paramedmem_SOURCES})
36613 -TARGET_LINK_LIBRARIES(paramedmem medcoupling ${MPI_LIBRARIES})
36614 +TARGET_LINK_LIBRARIES(paramedmem medcouplingcpp ${MPI_LIBRARIES})
36615  INSTALL(TARGETS paramedmem EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${MEDCOUPLING_INSTALL_LIBS})
36616  
36617  FILE(GLOB paramedmem_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
36618 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/CommInterface.cxx MEDCOUPLING_new/src/ParaMEDMEM/CommInterface.cxx
36619 --- MEDCOUPLING_old/src/ParaMEDMEM/CommInterface.cxx    2018-04-19 17:04:36.773223441 +0200
36620 +++ MEDCOUPLING_new/src/ParaMEDMEM/CommInterface.cxx    2018-04-19 17:25:17.318789074 +0200
36621 @@ -29,7 +29,7 @@
36622      (but this is not strictly respected overall in practice ...). It is used in all
36623      the \ref parallel "DEC related classes".
36624  
36625 -    It is typically instanciated after the MPI_Init() call in a program and is afterwards passed as a
36626 +    It is typically instantiated after the MPI_Init() call in a program and is afterwards passed as a
36627      parameter to the constructors of various \ref parallel "parallel objects" so that they access the
36628      MPI library via this common interface.
36629  
36630 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/DisjointDEC.cxx MEDCOUPLING_new/src/ParaMEDMEM/DisjointDEC.cxx
36631 --- MEDCOUPLING_old/src/ParaMEDMEM/DisjointDEC.cxx      2018-04-19 17:04:36.773223441 +0200
36632 +++ MEDCOUPLING_new/src/ParaMEDMEM/DisjointDEC.cxx      2018-04-19 17:25:17.333789371 +0200
36633 @@ -53,7 +53,7 @@
36634     * \c ICoCo::Field, or directly a \c MEDCoupling::MEDCouplingFieldDouble instance.
36635     * See the various signatures of the method DisjointDEC::attachLocalField()
36636     *
36637 -   * The derivations of this class should be considered for practical instanciation:
36638 +   * The derivations of this class should be considered for practical instantiation:
36639     * - \ref InterpKernelDEC-det "InterpKernelDEC"
36640     * - \ref ExplicitCoincidentDEC-det "ExplicitCoincidentDEC"
36641     * - \ref StructuredCoincidentDEC-det "StructuredCoincidentDEC"
36642 @@ -221,7 +221,7 @@
36643  
36644    /**
36645     * Check that the sources and targets procs form a partition of the world communicator referenced in the groups.
36646 -   * This world communicator is not necessarily MPI_WORLD_COMM, but it has to be covered completly for the DECs to work.
36647 +   * This world communicator is not necessarily MPI_WORLD_COMM, but it has to be covered completely for the DECs to work.
36648     */
36649    void DisjointDEC::checkPartitionGroup() const
36650    {
36651 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/ElementLocator.hxx MEDCOUPLING_new/src/ParaMEDMEM/ElementLocator.hxx
36652 --- MEDCOUPLING_old/src/ParaMEDMEM/ElementLocator.hxx   2018-04-19 17:04:36.774223460 +0200
36653 +++ MEDCOUPLING_new/src/ParaMEDMEM/ElementLocator.hxx   2018-04-19 17:25:17.302788758 +0200
36654 @@ -22,6 +22,7 @@
36655  
36656  #include "InterpolationOptions.hxx"
36657  #include "MEDCouplingNatureOfField.hxx"
36658 +#include "MCType.hxx"
36659  
36660  #include <mpi.h>
36661  #include <vector>
36662 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/InterpKernelDEC.cxx MEDCOUPLING_new/src/ParaMEDMEM/InterpKernelDEC.cxx
36663 --- MEDCOUPLING_old/src/ParaMEDMEM/InterpKernelDEC.cxx  2018-04-19 17:04:36.774223460 +0200
36664 +++ MEDCOUPLING_new/src/ParaMEDMEM/InterpKernelDEC.cxx  2018-04-19 17:25:17.306788837 +0200
36665 @@ -201,7 +201,7 @@
36666        {
36667          //locate the distant meshes
36668          ElementLocator locator(*_local_field, *_target_group, *_source_group);
36669 -        //transfering option from InterpKernelDEC to ElementLocator   
36670 +        //transferring option from InterpKernelDEC to ElementLocator   
36671          locator.copyOptions(*this);
36672          MEDCouplingPointSet* distant_mesh=0; 
36673          int* distant_ids=0;
36674 @@ -232,7 +232,7 @@
36675      if (_target_group->containsMyRank())
36676        {
36677          ElementLocator locator(*_local_field, *_source_group, *_target_group);
36678 -        //transfering option from InterpKernelDEC to ElementLocator
36679 +        //transferring option from InterpKernelDEC to ElementLocator
36680          locator.copyOptions(*this);
36681          MEDCouplingPointSet* distant_mesh=0;
36682          int* distant_ids=0;
36683 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/InterpolationMatrix.cxx MEDCOUPLING_new/src/ParaMEDMEM/InterpolationMatrix.cxx
36684 --- MEDCOUPLING_old/src/ParaMEDMEM/InterpolationMatrix.cxx      2018-04-19 17:04:36.774223460 +0200
36685 +++ MEDCOUPLING_new/src/ParaMEDMEM/InterpolationMatrix.cxx      2018-04-19 17:25:17.352789747 +0200
36686 @@ -81,7 +81,7 @@
36687       \brief Adds the contribution of a distant subdomain to the*
36688       interpolation matrix.
36689       The method adds contribution to the interpolation matrix.
36690 -     For each row of the matrix, elements are addded as
36691 +     For each row of the matrix, elements are added as
36692       a (column, coeff) pair in the _coeffs array. This column number refers
36693       to an element on the target side via the _col_offsets array.
36694       It is made of a series of (iproc, ielem) pairs.
36695 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/MPIAccess.cxx MEDCOUPLING_new/src/ParaMEDMEM/MPIAccess.cxx
36696 --- MEDCOUPLING_old/src/ParaMEDMEM/MPIAccess.cxx        2018-04-19 17:04:36.775223480 +0200
36697 +++ MEDCOUPLING_new/src/ParaMEDMEM/MPIAccess.cxx        2018-04-19 17:25:17.348789668 +0200
36698 @@ -170,7 +170,7 @@
36699      "_MapOfRequestStruct".
36700      That structure RequestStruct give the possibility to manage
36701      the structures MPI_Request and MPI_Status * of MPI. It give
36702 -    also the possibility to get informations about that request :
36703 +    also the possibility to get information about that request :
36704      target, send/recv, tag, [a]synchronous, type, outcount.
36705  
36706      . That identifier is used to control an asynchronous request
36707 @@ -391,7 +391,7 @@
36708    // Receive (read) in synchronous mode count values of type datatype in buffer from source
36709    // (returns RequestId identifier even if the corresponding structure is deleted :
36710    // it is only in order to have the same signature as the asynchronous mode)
36711 -  // The output argument OutCount is optionnal : *OutCount <= count
36712 +  // The output argument OutCount is optional : *OutCount <= count
36713    int MPIAccess::recv(void* buffer, int count, MPI_Datatype datatype, int source, int &RequestId, int *OutCount)
36714    {
36715      int sts = MPI_SUCCESS ;
36716 @@ -1003,7 +1003,7 @@
36717      return _comm_interface.requestFree( request ) ;
36718    }
36719    
36720 -  // Print all informations of all known requests for debugging purpose
36721 +  // Print all information of all known requests for debugging purpose
36722    void MPIAccess::check() const
36723    {
36724      int i = 0 ;
36725 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/MPIAccessDEC.cxx MEDCOUPLING_new/src/ParaMEDMEM/MPIAccessDEC.cxx
36726 --- MEDCOUPLING_old/src/ParaMEDMEM/MPIAccessDEC.cxx     2018-04-19 17:04:36.775223480 +0200
36727 +++ MEDCOUPLING_new/src/ParaMEDMEM/MPIAccessDEC.cxx     2018-04-19 17:25:17.326789233 +0200
36728 @@ -441,12 +441,12 @@
36729      . We assume that buffers are allocated with a new double[]. so a
36730      delete [] is done.
36731  
36732 -    . The structure SendBuffStruct permit to keep the adress of the buffer
36733 +    . The structure SendBuffStruct permit to keep the address of the buffer
36734      and to manage a reference counter of that buffer. It contains
36735      also MPI_Datatype for the delete [] (double *) ... when the counter
36736      is null.
36737  
36738 -    . The map _MapOfSendBuffers etablish the correspondance between each
36739 +    . The map _MapOfSendBuffers establish the correspondence between each
36740      RequestId given by a MPI_Access->ISend(...) and a SendBuffStruct
36741      for each "target" of a part of the buffer.
36742  
36743 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/NonCoincidentDEC.cxx MEDCOUPLING_new/src/ParaMEDMEM/NonCoincidentDEC.cxx
36744 --- MEDCOUPLING_old/src/ParaMEDMEM/NonCoincidentDEC.cxx 2018-04-19 17:04:36.775223480 +0200
36745 +++ MEDCOUPLING_new/src/ParaMEDMEM/NonCoincidentDEC.cxx 2018-04-19 17:25:17.341789529 +0200
36746 @@ -217,7 +217,7 @@
36747            {
36748              elem_numbers = const_cast<fvm_lnum_t*> (support->getNumber(types[itype]));
36749             
36750 -            //creating work arrays to store list of elems for partial suports
36751 +            //creating work arrays to store list of elems for partial supports
36752              if (itype>0)
36753                {
36754                  fvm_lnum_t* temp = new int[nbelems];
36755 @@ -372,7 +372,7 @@
36756      int nbcomp = _local_field->getField()->getNumberOfComponents();
36757      double* distant_values = new double [_nb_distant_points*nbcomp];
36758  
36759 -    //cheap interpolation :  the value of the cell is transfered to the point
36760 +    //cheap interpolation :  the value of the cell is transferred to the point
36761      for (int i=0; i<_nb_distant_points; i++)
36762        for (int j=0; j <nbcomp; j++)
36763          distant_values[i*nbcomp+j]=values[(_distant_locations[i]-1)*nbcomp+j];
36764 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/OverlapDEC.cxx MEDCOUPLING_new/src/ParaMEDMEM/OverlapDEC.cxx
36765 --- MEDCOUPLING_old/src/ParaMEDMEM/OverlapDEC.cxx       2018-04-19 17:04:36.775223480 +0200
36766 +++ MEDCOUPLING_new/src/ParaMEDMEM/OverlapDEC.cxx       2018-04-19 17:25:17.331789332 +0200
36767 @@ -79,11 +79,11 @@
36768      Starting from the global interaction previously computed in \ref ParaMEDMEMOverlapDECAlgoStep1
36769      "Step 1", each proc computes the TODO list per proc.
36770      The following rules is chosen : a pair (x,y) can be treated by either proc \#x or proc \#y,
36771 -    in order to reduce the amount of data transfert among
36772 +    in order to reduce the amount of data transfers among
36773      processors. The algorithm chosen for load balancing is the following : Each processor has
36774      an empty \b local TODO list at the beginning. Then for each pair (k,m) in
36775      \b global TODO list, if proc\#k has less temporary local list than proc\#m pair, (k,m) is added
36776 -    to temparary local TODO list of proc\#k.
36777 +    to temporary local TODO list of proc\#k.
36778      If proc\#m has less temporary local TODO list than proc\#k pair, (k,m) is added to temporary
36779      local TODO list of proc\#m.
36780      If proc\#k and proc\#m have the same amount of temporary local TODO list pair, (k,m) is added to
36781 @@ -135,7 +135,7 @@
36782      seen in \ref ParaMEDMEMOverlapDECAlgoStep2 "here in Step2".
36783  
36784      As will be dealt in Step 6, for final matrix-vector computations, the resulting matrix of the
36785 -    couple (k,m) whereever it is computed (proc \#k or proc \#m)
36786 +    couple (k,m) wherever it is computed (proc \#k or proc \#m)
36787      will be stored in \b proc\#m.
36788  
36789      - If proc \#k is in charge (performs the matrix computation) for this couple (k,m), target ids
36790 @@ -154,7 +154,7 @@
36791       in charge of the matrix, proc \#m receives the source ids
36792      from remote proc \#k, and thus the matrix is directly correct, no need for renumbering as
36793       in \ref ParaMEDMEMOverlapDECAlgoStep5 "Step 5". However proc \#k must
36794 -    keep track of the ids sent to proc \#m for te matrix-vector computation.
36795 +    keep track of the ids sent to proc \#m for the matrix-vector computation.
36796      This is incarnated by OverlapMapping::keepTracksOfSourceIds in proc k.
36797  
36798      This step is performed in MEDCoupling::OverlapElementLocator::exchangeMeshes method.
36799 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/OverlapElementLocator.cxx MEDCOUPLING_new/src/ParaMEDMEM/OverlapElementLocator.cxx
36800 --- MEDCOUPLING_old/src/ParaMEDMEM/OverlapElementLocator.cxx    2018-04-19 17:04:36.776223501 +0200
36801 +++ MEDCOUPLING_new/src/ParaMEDMEM/OverlapElementLocator.cxx    2018-04-19 17:25:17.344789588 +0200
36802 @@ -481,8 +481,8 @@
36803    }
36804  
36805    /*!
36806 -   * This method recieves source remote mesh on proc 'procId' if sourceOrTarget==True
36807 -   * This method recieves target remote mesh on proc 'procId' if sourceOrTarget==False
36808 +   * This method receives source remote mesh on proc 'procId' if sourceOrTarget==True
36809 +   * This method receives target remote mesh on proc 'procId' if sourceOrTarget==False
36810     */
36811    void OverlapElementLocator::receiveRemoteMeshFrom(int procId, bool sourceOrTarget)
36812    {
36813 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/OverlapMapping.cxx MEDCOUPLING_new/src/ParaMEDMEM/OverlapMapping.cxx
36814 --- MEDCOUPLING_old/src/ParaMEDMEM/OverlapMapping.cxx   2018-04-19 17:04:36.776223501 +0200
36815 +++ MEDCOUPLING_new/src/ParaMEDMEM/OverlapMapping.cxx   2018-04-19 17:25:17.359789885 +0200
36816 @@ -415,7 +415,7 @@
36817   * This is the last step after all2Alls for matrix exchange.
36818   * _the_matrix_st is the final matrix : 
36819   *      - The first entry is srcId in current proc.
36820 - *      - The second is the pseudo id of source proc (correspondance with true id is in attribute _the_matrix_st_source_proc_id and _the_matrix_st_source_ids)
36821 + *      - The second is the pseudo id of source proc (correspondence with true id is in attribute _the_matrix_st_source_proc_id and _the_matrix_st_source_ids)
36822   *      - the third is the srcId in the pseudo source proc
36823   */
36824  void OverlapMapping::unserializationST(int nbOfTrgElems,
36825 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM/ParaFIELD.cxx MEDCOUPLING_new/src/ParaMEDMEM/ParaFIELD.cxx
36826 --- MEDCOUPLING_old/src/ParaMEDMEM/ParaFIELD.cxx        2018-04-19 17:04:36.776223501 +0200
36827 +++ MEDCOUPLING_new/src/ParaMEDMEM/ParaFIELD.cxx        2018-04-19 17:25:17.308788877 +0200
36828 @@ -172,7 +172,7 @@
36829     * This method returns, if it exists, an array with only one component and as many as tuples as _field has.
36830     * This array gives for every element on which this->_field lies, its global number, if this->_field is nodal.
36831     * For example if _field is a nodal field : returned array will be the nodal global numbers.
36832 -   * The content of this method is used to inform Working side to accumulate data recieved by lazy side.
36833 +   * The content of this method is used to inform Working side to accumulate data received by lazy side.
36834     */
36835    DataArrayInt* ParaFIELD::returnCumulativeGlobalNumbering() const
36836    {
36837 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM_Swig/CMakeLists.txt MEDCOUPLING_new/src/ParaMEDMEM_Swig/CMakeLists.txt
36838 --- MEDCOUPLING_old/src/ParaMEDMEM_Swig/CMakeLists.txt  2018-04-19 17:04:36.800223979 +0200
36839 +++ MEDCOUPLING_new/src/ParaMEDMEM_Swig/CMakeLists.txt  2018-04-19 17:25:17.361789924 +0200
36840 @@ -30,39 +30,33 @@
36841  ENDIF()
36842  SET(SWIG_MODULE_ParaMEDMEM_EXTRA_FLAGS "${NUMPY_DEFINITIONS};${SCIPY_DEFINITIONS}")
36843  
36844 -SET (ParaMEDMEM_SWIG_DPYS_FILES
36845 -    ParaMEDMEM.typemap)
36846 -
36847  INCLUDE_DIRECTORIES(
36848    ${PYTHON_INCLUDE_DIRS}
36849    ${NUMPY_INCLUDE_DIR}
36850 -  ${MEDFILE_INCLUDE_DIRS}
36851 -  ${HDF5_INCLUDE_DIRS}
36852    ${MPI_INCLUDE_DIRS}
36853    ${CMAKE_CURRENT_SOURCE_DIR}
36854    ${CMAKE_CURRENT_SOURCE_DIR}/../ParaMEDMEM
36855    ${CMAKE_CURRENT_SOURCE_DIR}/../ICoCo
36856    ${CMAKE_CURRENT_SOURCE_DIR}/../MEDCoupling_Swig
36857 -  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDLoader/Swig
36858 -  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDLoader
36859    ${CMAKE_CURRENT_SOURCE_DIR}/../MEDCoupling
36860    ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL
36861    ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/Bases
36862    )
36863  
36864 -SET (SWIG_MODULE_ParaMEDMEM_EXTRA_DEPS ${ParaMEDMEM_SWIG_DPYS_FILES}
36865 +SET (SWIG_MODULE_ParaMEDMEM_EXTRA_DEPS
36866      ${paramedmem_HEADERS_HXX}
36867      ${medloader_HEADERS_HXX}
36868      ${medcoupling_HEADERS_HXX} ${medcoupling_HEADERS_TXX}
36869      ${interpkernel_HEADERS_HXX} ${interpkernel_HEADERS_TXX})
36870  
36871  SWIG_ADD_MODULE(ParaMEDMEM python ParaMEDMEM.i)
36872 -SWIG_LINK_LIBRARIES(ParaMEDMEM ${PYTHON_LIBRARIES} paramedmem medloader)
36873 +SWIG_LINK_LIBRARIES(ParaMEDMEM ${PYTHON_LIBRARIES} paramedmem)
36874  SWIG_CHECK_GENERATION(ParaMEDMEM)
36875  
36876  INSTALL(TARGETS _ParaMEDMEM DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
36877 -INSTALL(FILES ParaMEDMEM.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
36878 -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ParaMEDMEM.py test_InterpKernelDEC.py test_NonCoincidentDEC.py test_StructuredCoincidentDEC.py DESTINATION ${MEDCOUPLING_INSTALL_SCRIPT_PYTHON})
36879 +INSTALL(FILES ParaMEDMEM.i ParaMEDMEMCommon.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
36880 +INSTALL(FILES test_InterpKernelDEC.py test_NonCoincidentDEC.py test_StructuredCoincidentDEC.py DESTINATION ${MEDCOUPLING_INSTALL_SCRIPT_PYTHON})
36881 +SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/ParaMEDMEM.py ${MEDCOUPLING_INSTALL_PYTHON})
36882  
36883  SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/ParaMEDMEM.py ${MEDCOUPLING_INSTALL_SCRIPT_PYTHON})
36884  INSTALL(FILES test_InterpKernelDEC.py test_NonCoincidentDEC.py test_StructuredCoincidentDEC.py DESTINATION ${MEDCOUPLING_INSTALL_SCRIPT_PYTHON})
36885 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM_Swig/ParaMEDMEMCommon.i MEDCOUPLING_new/src/ParaMEDMEM_Swig/ParaMEDMEMCommon.i
36886 --- MEDCOUPLING_old/src/ParaMEDMEM_Swig/ParaMEDMEMCommon.i      1970-01-01 01:00:00.000000000 +0100
36887 +++ MEDCOUPLING_new/src/ParaMEDMEM_Swig/ParaMEDMEMCommon.i      2018-04-19 17:25:17.364789984 +0200
36888 @@ -0,0 +1,102 @@
36889 +// Copyright (C) 2017  CEA/DEN, EDF R&D
36890 +//
36891 +// This library is free software; you can redistribute it and/or
36892 +// modify it under the terms of the GNU Lesser General Public
36893 +// License as published by the Free Software Foundation; either
36894 +// version 2.1 of the License, or (at your option) any later version.
36895 +//
36896 +// This library is distributed in the hope that it will be useful,
36897 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
36898 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
36899 +// Lesser General Public License for more details.
36900 +//
36901 +// You should have received a copy of the GNU Lesser General Public
36902 +// License along with this library; if not, write to the Free Software
36903 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
36904 +//
36905 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
36906 +//
36907 +
36908 +%include std_set.i
36909 +
36910 +%template() std::set<int>;
36911 +
36912 +%{
36913 +#include "CommInterface.hxx"
36914 +#include "ProcessorGroup.hxx"
36915 +#include "Topology.hxx"
36916 +#include "MPIProcessorGroup.hxx"
36917 +#include "DEC.hxx"
36918 +#include "InterpKernelDEC.hxx"
36919 +#include "NonCoincidentDEC.hxx"
36920 +#include "StructuredCoincidentDEC.hxx"
36921 +#include "ParaMESH.hxx"
36922 +#include "ParaFIELD.hxx"
36923 +#include "ICoCoMEDField.hxx"
36924 +#include "ComponentTopology.hxx"
36925 +
36926 +using namespace INTERP_KERNEL;
36927 +using namespace MEDCoupling;
36928 +using namespace ICoCo;
36929 +%}
36930 +
36931 +%include "InterpolationOptions.hxx"
36932 +%include "CommInterface.hxx"
36933 +%include "ProcessorGroup.hxx"
36934 +%include "DECOptions.hxx"
36935 +%include "ParaMESH.hxx"
36936 +%include "ParaFIELD.hxx"
36937 +%include "MPIProcessorGroup.hxx"
36938 +%include "ComponentTopology.hxx"
36939 +%include "DEC.hxx"
36940 +%include "DisjointDEC.hxx"
36941 +%include "InterpKernelDEC.hxx"
36942 +%include "StructuredCoincidentDEC.hxx"
36943 +
36944 +%include "ICoCoField.hxx"
36945 +%rename(ICoCoMEDField) ICoCo::MEDField;
36946 +%include "ICoCoMEDField.hxx"
36947 +
36948 +%nodefaultctor;
36949 +
36950 +/* This object can be used only if MED_ENABLE_FVM is defined*/
36951 +#ifdef MED_ENABLE_FVM
36952 +class NonCoincidentDEC : public DEC
36953 +{
36954 +public:
36955 +  NonCoincidentDEC(ProcessorGroup& source, ProcessorGroup& target);
36956 +};
36957 +#endif
36958 +
36959 +%extend MEDCoupling::ParaMESH
36960 +{
36961 +  PyObject *getGlobalNumberingCell2() const
36962 +  {
36963 +    const int *tmp=self->getGlobalNumberingCell();
36964 +    int size=self->getCellMesh()->getNumberOfCells();
36965 +    PyObject *ret=PyList_New(size);
36966 +    for(int i=0;i<size;i++)
36967 +      PyList_SetItem(ret,i,PyInt_FromLong(tmp[i])); 
36968 +    return ret;
36969 +  }
36970 +
36971 +  PyObject *getGlobalNumberingFace2() const
36972 +  {
36973 +    const int *tmp=self->getGlobalNumberingFace();
36974 +    int size=self->getFaceMesh()->getNumberOfCells();
36975 +    PyObject *ret=PyList_New(size);
36976 +    for(int i=0;i<size;i++)
36977 +      PyList_SetItem(ret,i,PyInt_FromLong(tmp[i])); 
36978 +    return ret;
36979 +  }
36980 +
36981 +  PyObject *getGlobalNumberingNode2() const
36982 +  {
36983 +    const int *tmp=self->getGlobalNumberingNode();
36984 +    int size=self->getCellMesh()->getNumberOfNodes();
36985 +    PyObject *ret=PyList_New(size);
36986 +    for(int i=0;i<size;i++)
36987 +      PyList_SetItem(ret,i,PyInt_FromLong(tmp[i])); 
36988 +    return ret;
36989 +  }
36990 +}
36991 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM_Swig/ParaMEDMEM.i MEDCOUPLING_new/src/ParaMEDMEM_Swig/ParaMEDMEM.i
36992 --- MEDCOUPLING_old/src/ParaMEDMEM_Swig/ParaMEDMEM.i    2018-04-19 17:04:36.800223979 +0200
36993 +++ MEDCOUPLING_new/src/ParaMEDMEM_Swig/ParaMEDMEM.i    2018-04-19 17:25:17.366790023 +0200
36994 @@ -17,281 +17,33 @@
36995  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
36996  //
36997  
36998 -%module ParaMEDMEM
36999 -
37000 -%include "ParaMEDMEM.typemap"
37001 -%include "MEDLoaderCommon.i"
37002 -
37003 -%{
37004 -#include "CommInterface.hxx"
37005 -#include "ProcessorGroup.hxx"
37006 -#include "Topology.hxx"
37007 -#include "MPIProcessorGroup.hxx"
37008 -#include "DEC.hxx"
37009 -#include "InterpKernelDEC.hxx"
37010 -#include "NonCoincidentDEC.hxx"
37011 -#include "StructuredCoincidentDEC.hxx"
37012 -#include "ParaMESH.hxx"
37013 -#include "ParaFIELD.hxx"
37014 -#include "ICoCoMEDField.hxx"
37015 -#include "ComponentTopology.hxx"
37016 -
37017 -#include <mpi.h>
37018 -
37019 -using namespace MEDCoupling;
37020 -using namespace ICoCo;
37021 -      
37022 -enum mpi_constants { mpi_comm_world, mpi_comm_self, mpi_double, mpi_int };
37023 -%}
37024 -
37025 -%include "CommInterface.hxx"
37026 -%include "ProcessorGroup.hxx"
37027 -%include "DECOptions.hxx"
37028 -%include "ParaMESH.hxx"
37029 -%include "ParaFIELD.hxx"
37030 -%include "MPIProcessorGroup.hxx"
37031 -%include "ComponentTopology.hxx"
37032 -%include "DEC.hxx"
37033 -%include "InterpKernelDEC.hxx"
37034 -%include "StructuredCoincidentDEC.hxx"
37035 -
37036 -%rename(ICoCoMEDField) ICoCo::MEDField;
37037 -%include "ICoCoMEDField.hxx"
37038 -
37039 -%nodefaultctor;
37040 -
37041 -/* This object can be used only if MED_ENABLE_FVM is defined*/
37042 -#ifdef MED_ENABLE_FVM
37043 -class NonCoincidentDEC : public DEC
37044 -{
37045 -public:
37046 -  NonCoincidentDEC(ProcessorGroup& source, ProcessorGroup& target);
37047 -};
37048 -#endif
37049 -
37050 -%extend MEDCoupling::ParaMESH
37051 -{
37052 -  PyObject *getGlobalNumberingCell2() const
37053 -  {
37054 -    const int *tmp=self->getGlobalNumberingCell();
37055 -    int size=self->getCellMesh()->getNumberOfCells();
37056 -    PyObject *ret=PyList_New(size);
37057 -    for(int i=0;i<size;i++)
37058 -      PyList_SetItem(ret,i,PyInt_FromLong(tmp[i])); 
37059 -    return ret;
37060 -  }
37061 -
37062 -  PyObject *getGlobalNumberingFace2() const
37063 -  {
37064 -    const int *tmp=self->getGlobalNumberingFace();
37065 -    int size=self->getFaceMesh()->getNumberOfCells();
37066 -    PyObject *ret=PyList_New(size);
37067 -    for(int i=0;i<size;i++)
37068 -      PyList_SetItem(ret,i,PyInt_FromLong(tmp[i])); 
37069 -    return ret;
37070 -  }
37071 +// Author : Anthony Geay (EDF R&D)
37072  
37073 -  PyObject *getGlobalNumberingNode2() const
37074 -  {
37075 -    const int *tmp=self->getGlobalNumberingNode();
37076 -    int size=self->getCellMesh()->getNumberOfNodes();
37077 -    PyObject *ret=PyList_New(size);
37078 -    for(int i=0;i<size;i++)
37079 -      PyList_SetItem(ret,i,PyInt_FromLong(tmp[i])); 
37080 -    return ret;
37081 -  }
37082 -}
37083 -
37084 -//=============================================================================================
37085 -// Interface for MPI-realization-specific constants like MPI_COMM_WORLD.
37086 -//
37087 -// Type and values of constants like MPI_COMM_WORLD depends on MPI realization
37088 -// and usually such constants actually are macros. To have such symbols in python
37089 -// and translate them into correct values we use the following technique.
37090 -// We define some constants (enum mpi_constants) and map them into real MPI values
37091 -// using typemaps, and we create needed python symbols equal to 'mpi_constants'
37092 -// via %pythoncode directive.
37093 -
37094 -// Constants corresponding to similar MPI definitions
37095 -enum mpi_constants { mpi_comm_world, mpi_comm_self, mpi_double, mpi_int };
37096 -
37097 -// Map mpi_comm_world and mpi_comm_self -> MPI_COMM_WORLD and MPI_COMM_SELF
37098 -%typemap(in) MPI_Comm
37099 -{ 
37100 -  switch (PyInt_AsLong($input))
37101 -    {
37102 -    case mpi_comm_world: $1 = MPI_COMM_WORLD; break;
37103 -    case mpi_comm_self:  $1 = MPI_COMM_SELF;  break;
37104 -    default:
37105 -      PyErr_SetString(PyExc_TypeError,"unexpected value of MPI_Comm");
37106 -      return NULL;
37107 -    }
37108 -}
37109 -// Map mpi_double and mpi_int -> MPI_DOUBLE and MPI_INT
37110 -%typemap(in) MPI_Datatype
37111 -{ 
37112 -  switch (PyInt_AsLong($input))
37113 -    {
37114 -    case mpi_double:     $1 = MPI_DOUBLE;     break;
37115 -    case mpi_int:        $1 = MPI_INT;        break;
37116 -    default:
37117 -      PyErr_SetString(PyExc_TypeError,"unexpected value of MPI_Datatype");
37118 -      return NULL;
37119 -    }
37120 -}
37121 -// The following code gets inserted into the result python file:
37122 -// create needed python symbols
37123 -%pythoncode %{
37124 -MPI_COMM_WORLD = mpi_comm_world
37125 -MPI_COMM_SELF  = mpi_comm_self
37126 -MPI_DOUBLE     = mpi_double
37127 -MPI_INT        = mpi_int
37128 -%}
37129 -//=============================================================================================
37130 -
37131 -// ==============
37132 -// MPI_Comm_size
37133 -// ==============
37134 -%inline %{ PyObject* MPI_Comm_size(MPI_Comm comm)
37135 -  {
37136 -    int res = 0;
37137 -    int err = MPI_Comm_size(comm, &res);
37138 -    if ( err != MPI_SUCCESS )
37139 -      {
37140 -        PyErr_SetString(PyExc_RuntimeError,"Erorr in MPI_Comm_size()");
37141 -        return NULL;
37142 -      }
37143 -    return PyInt_FromLong( res );
37144 -  } %}
37145 -
37146 -// ==============
37147 -// MPI_Comm_rank
37148 -// ==============
37149 -%inline %{ PyObject* MPI_Comm_rank(MPI_Comm comm)
37150 -  {
37151 -    int res = 0;
37152 -    int err = MPI_Comm_rank(comm, &res);
37153 -    if ( err != MPI_SUCCESS )
37154 -      {
37155 -        PyErr_SetString(PyExc_RuntimeError,"Erorr in MPI_Comm_rank()");
37156 -        return NULL;
37157 -      }
37158 -    return PyInt_FromLong( res );
37159 -  } 
37160 -  %}
37161 -
37162 -int MPI_Init(int *argc, char ***argv );
37163 -int MPI_Barrier(MPI_Comm comm);
37164 -int MPI_Finalize();
37165 +%module ParaMEDMEM
37166  
37167 -// ==========
37168 -// MPI_Bcast
37169 -// ==========
37170 +#define MEDCOUPLING_EXPORT
37171 +#define INTERPKERNEL_EXPORT
37172  
37173 -%inline %{ PyObject* MPI_Bcast(PyObject* buffer, int nb, MPI_Datatype type, int root, MPI_Comm c)
37174 -  {
37175 -    // buffer must be a list
37176 -    if (!PyList_Check(buffer))
37177 -      {
37178 -        PyErr_SetString(PyExc_TypeError, "buffer is expected to be a list");
37179 -        return NULL;
37180 -      }
37181 -    // check list size
37182 -    int aSize = PyList_Size(buffer);
37183 -    if ( aSize != nb )
37184 -      {
37185 -        std::ostringstream stream; stream << "buffer is expected to be of size " << nb;
37186 -        PyErr_SetString(PyExc_ValueError, stream.str().c_str());
37187 -        return NULL;
37188 -      }
37189 -    // allocate and fill a buffer
37190 -    void* aBuf = 0;
37191 -    int* intBuf = 0;
37192 -    double* dblBuf = 0;
37193 -    if ( type == MPI_DOUBLE )
37194 -      {
37195 -        aBuf = (void*) ( dblBuf = new double[ nb ] );
37196 -        for ( int i = 0; i < aSize; ++i )
37197 -          dblBuf[i] = PyFloat_AS_DOUBLE( PyList_GetItem( buffer, i ));
37198 -      }
37199 -    else if ( type == MPI_INT )
37200 -      {
37201 -        aBuf = (void*) ( intBuf = new int[ nb ] );
37202 -        for ( int i = 0; i < aSize; ++i )
37203 -          intBuf[i] = int( PyInt_AS_LONG( PyList_GetItem( buffer, i )));
37204 -      }
37205 -    else
37206 -      {
37207 -        PyErr_SetString(PyExc_TypeError, "Only MPI_DOUBLE and MPI_INT supported");
37208 -        return NULL;
37209 -      }
37210 -    // call MPI_Bcast
37211 -    int err = MPI_Bcast(aBuf, nb, type, root, c);
37212 -    // treat error
37213 -    if ( err != MPI_SUCCESS )
37214 -      {
37215 -        PyErr_SetString(PyExc_RuntimeError,"Erorr in MPI_Bcast()");
37216 -        delete [] intBuf; delete [] dblBuf;
37217 -        return NULL;
37218 -      }
37219 -    // put recieved data into the list
37220 -    int pyerr = 0;
37221 -    if ( type == MPI_DOUBLE )
37222 -      {
37223 -        for ( int i = 0; i < aSize && !pyerr; ++i )
37224 -          pyerr = PyList_SetItem(buffer, i, PyFloat_FromDouble( dblBuf[i] ));
37225 -        delete [] dblBuf;
37226 -      }
37227 -    else
37228 -      {
37229 -        for ( int i = 0; i < aSize && !pyerr; ++i )
37230 -          pyerr = PyList_SetItem(buffer, i, PyInt_FromLong( intBuf[i] ));
37231 -        delete [] intBuf;
37232 -      }
37233 -    if ( pyerr )
37234 -      {
37235 -        PyErr_SetString(PyExc_RuntimeError, "Error of PyList_SetItem()");
37236 -        return NULL;
37237 -      }
37238 -    return PyInt_FromLong( err );
37239 +%include "MEDCouplingCommon.i"
37240  
37241 -  }
37242 -  %}
37243 +%include "ParaMEDMEMCommon.i"
37244  
37245  %pythoncode %{
37246 -def ParaMEDMEMDataArrayDoublenew(cls,*args):
37247 -    import _ParaMEDMEM
37248 -    return _ParaMEDMEM.DataArrayDouble____new___(cls,args)
37249 -def ParaMEDMEMDataArrayDoubleIadd(self,*args):
37250 +def MEDCouplingDataArrayDoubleIadd(self,*args):
37251      import _ParaMEDMEM
37252      return _ParaMEDMEM.DataArrayDouble____iadd___(self, self, *args)
37253 -def ParaMEDMEMDataArrayDoubleIsub(self,*args):
37254 +def MEDCouplingDataArrayDoubleIsub(self,*args):
37255      import _ParaMEDMEM
37256      return _ParaMEDMEM.DataArrayDouble____isub___(self, self, *args)
37257 -def ParaMEDMEMDataArrayDoubleImul(self,*args):
37258 +def MEDCouplingDataArrayDoubleImul(self,*args):
37259      import _ParaMEDMEM
37260      return _ParaMEDMEM.DataArrayDouble____imul___(self, self, *args)
37261 -def ParaMEDMEMDataArrayDoubleIdiv(self,*args):
37262 +def MEDCouplingDataArrayDoubleIdiv(self,*args):
37263      import _ParaMEDMEM
37264      return _ParaMEDMEM.DataArrayDouble____idiv___(self, self, *args)
37265 -def ParaMEDMEMDataArrayDoubleIpow(self,*args):
37266 +def MEDCouplingDataArrayDoubleIpow(self,*args):
37267      import _ParaMEDMEM
37268      return _ParaMEDMEM.DataArrayDouble____ipow___(self, self, *args)
37269 -def ParaMEDMEMDataArrayDoubleTupleIadd(self,*args):
37270 -    import _ParaMEDMEM
37271 -    return _ParaMEDMEM.DataArrayDoubleTuple____iadd___(self, self, *args)
37272 -def ParaMEDMEMDataArrayDoubleTupleIsub(self,*args):
37273 -    import _ParaMEDMEM
37274 -    return _ParaMEDMEM.DataArrayDoubleTuple____isub___(self, self, *args)
37275 -def ParaMEDMEMDataArrayDoubleTupleImul(self,*args):
37276 -    import _ParaMEDMEM
37277 -    return _ParaMEDMEM.DataArrayDoubleTuple____imul___(self, self, *args)
37278 -def ParaMEDMEMDataArrayDoubleTupleIdiv(self,*args):
37279 -    import _ParaMEDMEM
37280 -    return _ParaMEDMEM.DataArrayDoubleTuple____idiv___(self, self, *args)
37281 -def MEDCouplingFieldDoublenew(cls,*args):
37282 -    import _ParaMEDMEM
37283 -    return _ParaMEDMEM.MEDCouplingFieldDouble____new___(cls,args)
37284  def MEDCouplingFieldDoubleIadd(self,*args):
37285      import _ParaMEDMEM
37286      return _ParaMEDMEM.MEDCouplingFieldDouble____iadd___(self, self, *args)
37287 @@ -307,42 +59,69 @@
37288  def MEDCouplingFieldDoubleIpow(self,*args):
37289      import _ParaMEDMEM
37290      return _ParaMEDMEM.MEDCouplingFieldDouble____ipow___(self, self, *args)
37291 -def ParaMEDMEMDataArrayIntnew(cls,*args):
37292 -    import _ParaMEDMEM
37293 -    return _ParaMEDMEM.DataArrayInt____new___(cls,args)
37294 -def ParaMEDMEMDataArrayIntIadd(self,*args):
37295 +def MEDCouplingDataArrayIntIadd(self,*args):
37296      import _ParaMEDMEM
37297      return _ParaMEDMEM.DataArrayInt____iadd___(self, self, *args)
37298 -def ParaMEDMEMDataArrayIntIsub(self,*args):
37299 +def MEDCouplingDataArrayIntIsub(self,*args):
37300      import _ParaMEDMEM
37301      return _ParaMEDMEM.DataArrayInt____isub___(self, self, *args)
37302 -def ParaMEDMEMDataArrayIntImul(self,*args):
37303 +def MEDCouplingDataArrayIntImul(self,*args):
37304      import _ParaMEDMEM
37305      return _ParaMEDMEM.DataArrayInt____imul___(self, self, *args)
37306 -def ParaMEDMEMDataArrayIntIdiv(self,*args):
37307 +def MEDCouplingDataArrayIntIdiv(self,*args):
37308      import _ParaMEDMEM
37309      return _ParaMEDMEM.DataArrayInt____idiv___(self, self, *args)
37310 -def ParaMEDMEMDataArrayIntImod(self,*args):
37311 +def MEDCouplingDataArrayIntImod(self,*args):
37312      import _ParaMEDMEM
37313      return _ParaMEDMEM.DataArrayInt____imod___(self, self, *args)
37314 -def ParaMEDMEMDataArrayIntIpow(self,*args):
37315 +def MEDCouplingDataArrayIntIpow(self,*args):
37316      import _ParaMEDMEM
37317      return _ParaMEDMEM.DataArrayInt____ipow___(self, self, *args)
37318 -def ParaMEDMEMDataArrayIntTupleIadd(self,*args):
37319 +def MEDCouplingDataArrayFloatIadd(self,*args):
37320 +    import _ParaMEDMEM
37321 +    return _ParaMEDMEM.DataArrayFloat____iadd___(self, self, *args)
37322 +def MEDCouplingDataArrayFloatIsub(self,*args):
37323 +    import _ParaMEDMEM
37324 +    return _ParaMEDMEM.DataArrayFloat____isub___(self, self, *args)
37325 +def MEDCouplingDataArrayFloatImul(self,*args):
37326 +    import _ParaMEDMEM
37327 +    return _ParaMEDMEM.DataArrayFloat____imul___(self, self, *args)
37328 +def MEDCouplingDataArrayFloatIdiv(self,*args):
37329 +    import _ParaMEDMEM
37330 +    return _ParaMEDMEM.DataArrayFloat____idiv___(self, self, *args)
37331 +def MEDCouplingDataArrayDoubleTupleIadd(self,*args):
37332 +    import _ParaMEDMEM
37333 +    return _ParaMEDMEM.DataArrayDoubleTuple____iadd___(self, self, *args)
37334 +def MEDCouplingDataArrayDoubleTupleIsub(self,*args):
37335 +    import _ParaMEDMEM
37336 +    return _ParaMEDMEM.DataArrayDoubleTuple____isub___(self, self, *args)
37337 +def MEDCouplingDataArrayDoubleTupleImul(self,*args):
37338 +    import _ParaMEDMEM
37339 +    return _ParaMEDMEM.DataArrayDoubleTuple____imul___(self, self, *args)
37340 +def MEDCouplingDataArrayDoubleTupleIdiv(self,*args):
37341 +    import _ParaMEDMEM
37342 +    return _ParaMEDMEM.DataArrayDoubleTuple____idiv___(self, self, *args)
37343 +def MEDCouplingDataArrayIntTupleIadd(self,*args):
37344      import _ParaMEDMEM
37345      return _ParaMEDMEM.DataArrayIntTuple____iadd___(self, self, *args)
37346 -def ParaMEDMEMDataArrayIntTupleIsub(self,*args):
37347 +def MEDCouplingDataArrayIntTupleIsub(self,*args):
37348      import _ParaMEDMEM
37349      return _ParaMEDMEM.DataArrayIntTuple____isub___(self, self, *args)
37350 -def ParaMEDMEMDataArrayIntTupleImul(self,*args):
37351 +def MEDCouplingDataArrayIntTupleImul(self,*args):
37352      import _ParaMEDMEM
37353      return _ParaMEDMEM.DataArrayIntTuple____imul___(self, self, *args)
37354 -def ParaMEDMEMDataArrayIntTupleIdiv(self,*args):
37355 +def MEDCouplingDataArrayIntTupleIdiv(self,*args):
37356      import _ParaMEDMEM
37357      return _ParaMEDMEM.DataArrayIntTuple____idiv___(self, self, *args)
37358 -def ParaMEDMEMDataArrayIntTupleImod(self,*args):
37359 +def MEDCouplingDataArrayIntTupleImod(self,*args):
37360      import _ParaMEDMEM
37361      return _ParaMEDMEM.DataArrayIntTuple____imod___(self, self, *args)
37362 +def MEDCouplingDenseMatrixIadd(self,*args):
37363 +    import _ParaMEDMEM
37364 +    return _ParaMEDMEM.DenseMatrix____iadd___(self, self, *args)
37365 +def MEDCouplingDenseMatrixIsub(self,*args):
37366 +    import _ParaMEDMEM
37367 +    return _ParaMEDMEM.DenseMatrix____isub___(self, self, *args)
37368  %}
37369  
37370  %include "MEDCouplingFinalize.i"
37371 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap MEDCOUPLING_new/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap
37372 --- MEDCOUPLING_old/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap      2018-04-19 17:04:36.800223979 +0200
37373 +++ MEDCOUPLING_new/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap      1970-01-01 01:00:00.000000000 +0100
37374 @@ -1,89 +0,0 @@
37375 -// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
37376 -//
37377 -// This library is free software; you can redistribute it and/or
37378 -// modify it under the terms of the GNU Lesser General Public
37379 -// License as published by the Free Software Foundation; either
37380 -// version 2.1 of the License, or (at your option) any later version.
37381 -//
37382 -// This library is distributed in the hope that it will be useful,
37383 -// but WITHOUT ANY WARRANTY; without even the implied warranty of
37384 -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
37385 -// Lesser General Public License for more details.
37386 -//
37387 -// You should have received a copy of the GNU Lesser General Public
37388 -// License along with this library; if not, write to the Free Software
37389 -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
37390 -//
37391 -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
37392 -//
37393 -
37394 -%include std_set.i
37395 -%include std_string.i
37396 -
37397 -%template() std::set<int>;
37398 -
37399 -// Creates "int *argc, char ***argv" parameters from input list
37400 -%typemap(in) (int *argc, char ***argv) {
37401 -  int i;
37402 -  if (!PyList_Check($input)) {
37403 -    PyErr_SetString(PyExc_ValueError, "Expecting a list");
37404 -    return NULL;
37405 -  }
37406 -  int aSize = PyList_Size($input);
37407 -  $1 = &aSize;
37408 -  char** aStrs = (char **) malloc((aSize+1)*sizeof(char *));
37409 -  for (i = 0; i < aSize; i++) {
37410 -    PyObject *s = PyList_GetItem($input,i);
37411 -    if (PyString_Check(s))
37412 -      aStrs[i] = PyString_AsString(s);
37413 -%#if PY_VERSION_HEX >= 0x03000000
37414 -    else if (PyUnicode_Check(s))
37415 -      aStrs[i] = PyUnicode_AsUTF8(s);
37416 -%#endif
37417 -    else {
37418 -        free(aStrs);
37419 -        PyErr_SetString(PyExc_ValueError, "List items must be strings");
37420 -        return NULL;
37421 -    }
37422 -  }
37423 -  aStrs[i] = 0;
37424 -  $2 = &aStrs;
37425 -}
37426 -
37427 -%typemap(freearg) (int *argc, char ***argv) {
37428 -   if ($2) free(*($2));
37429 -}
37430 -
37431 -/*  MACRO: IN typemap for std::set<TYPE> C++ object */
37432 -%define TYPEMAP_INPUT_SET_BY_VALUE( TYPE )
37433 -{
37434 -  /* typemap in for set<TYPE> */
37435 -  /* Check if is a list */
37436 -  if (PyList_Check($input))
37437 -  {
37438 -    int size = PyList_Size($input);
37439 -    std::set< TYPE > tmpSet;
37440 -
37441 -    for (int i=0; i < size; i++)
37442 -    {
37443 -      PyObject * tmp = PyList_GetItem($input,i);
37444 -      TYPE elem = PyInt_AsLong(tmp);
37445 -      tmpSet.insert(elem);
37446 -    }
37447 -    $1 = tmpSet;
37448 -  }
37449 -  else
37450 -  {
37451 -    PyErr_SetString(PyExc_TypeError,"not a list");
37452 -    return NULL;
37453 -  }
37454 -}
37455 -%enddef
37456 -
37457 -%typemap(in) std::set<int>
37458 -{ 
37459 -  TYPEMAP_INPUT_SET_BY_VALUE( int ) 
37460 -}
37461 -%typecheck(SWIG_TYPECHECK_POINTER) std::set<int> {
37462 -  $1 = PyList_Check($input) ? 1 : 0;
37463 -}
37464 diff -Naur MEDCOUPLING_old/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py MEDCOUPLING_new/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py
37465 --- MEDCOUPLING_old/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py 2018-04-19 17:04:36.800223979 +0200
37466 +++ MEDCOUPLING_new/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py 2018-04-19 17:25:17.361789924 +0200
37467 @@ -20,15 +20,17 @@
37468  #
37469  
37470  from ParaMEDMEM import *
37471 +from MEDLoader import ReadUMeshFromFile
37472  import sys, os
37473  import unittest
37474  import math
37475 +from mpi4py import MPI
37476 +
37477  
37478  class ParaMEDMEMBasicsTest(unittest.TestCase):
37479      def testInterpKernelDEC_2D(self):
37480 -        MPI_Init(sys.argv)
37481 -        size = MPI_Comm_size(MPI_COMM_WORLD)
37482 -        rank = MPI_Comm_rank(MPI_COMM_WORLD)
37483 +        size = MPI.COMM_WORLD.size
37484 +        rank = MPI.COMM_WORLD.rank
37485          if size != 5:
37486              raise RuntimeError("Expect MPI_COMM_WORLD size == 5")
37487          print(rank)
37488 @@ -56,7 +58,7 @@
37489          filename_xml1 = os.path.join(data_dir, "share/resources/med/square1_split")
37490          filename_xml2 = os.path.join(data_dir, "share/resources/med/square2_split")
37491  
37492 -        MPI_Barrier(MPI_COMM_WORLD)
37493 +        MPI.COMM_WORLD.Barrier()
37494          if source_group.containsMyRank():
37495              filename = filename_xml1 + str(rank+1) + ".med"
37496              meshname = "Mesh_2_" + str(rank+1)
37497 @@ -68,8 +70,7 @@
37498              nb_local=mesh.getNumberOfCells()
37499              value = [1.0]*nb_local
37500              parafield.getField().setValues(value)
37501 -            icocofield = ICoCoMEDField(mesh,parafield.getField())
37502 -            dec.setMethod("P0")
37503 +            icocofield = ICoCoMEDField(parafield.getField())
37504              dec.attachLocalField(icocofield)
37505              pass
37506          else:
37507 @@ -83,8 +84,7 @@
37508              nb_local=mesh.getNumberOfCells()
37509              value = [0.0]*nb_local
37510              parafield.getField().setValues(value)
37511 -            icocofield = ICoCoMEDField(mesh,parafield.getField())
37512 -            dec.setMethod("P0")
37513 +            icocofield = ICoCoMEDField(parafield.getField())
37514              dec.attachLocalField(icocofield)
37515              pass
37516  
37517 @@ -113,8 +113,8 @@
37518          paramesh   =0
37519          parafield  =0
37520          icocofield =0
37521 -        MPI_Barrier(MPI_COMM_WORLD)
37522 -        MPI_Finalize()
37523 +        MPI.COMM_WORLD.Barrier()
37524 +        MPI.Finalize()
37525          pass
37526      pass
37527  
37528 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx
37529 --- MEDCOUPLING_old/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx     2018-04-19 17:04:36.797223919 +0200
37530 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx     2018-04-19 17:25:17.893800440 +0200
37531 @@ -46,7 +46,7 @@
37532  void afficheGauthier1(const ParaFIELD& field, const double *vals, int lgth)
37533  {
37534    const DataArrayDouble *valsOfField(field.getField()->getArray());
37535 -  CPPUNIT_ASSERT_EQUAL(lgth,valsOfField->getNumberOfTuples());
37536 +  CPPUNIT_ASSERT_EQUAL(lgth,(int)valsOfField->getNumberOfTuples());
37537    for (int ele=0;ele<valsOfField->getNumberOfTuples();ele++)
37538      CPPUNIT_ASSERT_DOUBLES_EQUAL(vals[ele],valsOfField->getIJ(ele,0),1e-12);
37539  }
37540 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx
37541 --- MEDCOUPLING_old/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx 2018-04-19 17:04:36.797223919 +0200
37542 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx 2018-04-19 17:25:17.899800559 +0200
37543 @@ -63,7 +63,7 @@
37544        return;
37545      }
37546  
37547 -  /* Connection to remote programm */
37548 +  /* Connection to remote program */
37549    MPI2Connector *mpio = new MPI2Connector;
37550    gcom = mpio->remoteMPI2Connect(service);
37551    MPI_Comm_size( gcom, &gsize );
37552 @@ -108,7 +108,7 @@
37553    dec.synchronize();
37554    dec.setForcedRenormalization(false);
37555    dec.sendData();
37556 -  /* Deconnection of remote programm */
37557 +  /* Deconnection of remote program */
37558    mpio->remoteMPI2Disconnect(service);
37559    /* clean-up */
37560    delete mpio;
37561 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx
37562 --- MEDCOUPLING_old/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx 2018-04-19 17:04:36.797223919 +0200
37563 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx 2018-04-19 17:25:17.914800855 +0200
37564 @@ -63,7 +63,7 @@
37565        return;
37566      }
37567  
37568 -  /* Connection to remote programm */
37569 +  /* Connection to remote program */
37570    MPI2Connector *mpio = new MPI2Connector;
37571    gcom = mpio->remoteMPI2Connect(service);
37572    
37573 @@ -113,7 +113,7 @@
37574    const double *expected=targetResults[grank-(gsize-lsize)];
37575    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[0],res[0],1e-13);
37576    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13);
37577 -  /* Deconnection of remote programm */
37578 +  /* Deconnection of remote program */
37579    mpio->remoteMPI2Disconnect(service);
37580    /* clean-up */
37581    delete mpio;
37582 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllDEC.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllDEC.cxx
37583 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllDEC.cxx     2018-04-19 17:04:36.799223959 +0200
37584 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllDEC.cxx     2018-04-19 17:25:17.894800460 +0200
37585 @@ -77,7 +77,7 @@
37586      strstream << "usage :" << endl
37587                << "mpirun -np <nbprocs> test_AllToAllDEC" << endl
37588                << " (nbprocs >=2)" << endl
37589 -              << "test must be runned with more than 1 proc and less than 12 procs"
37590 +              << "test must be run with more than 1 proc and less than 12 procs"
37591                << endl ;
37592      cerr << strstream.str() << endl ;
37593      CPPUNIT_FAIL( strstream.str() ) ;
37594 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx
37595 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx 2018-04-19 17:04:36.799223959 +0200
37596 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx 2018-04-19 17:25:17.895800480 +0200
37597 @@ -82,7 +82,7 @@
37598      strstream << "usage :" << endl
37599                << "mpirun -np <nbprocs> test_AllToAllTimeDEC" << endl
37600                << " (nbprocs >=2)" << endl
37601 -              << "test must be runned with more than 1 proc and less than 12 procs"
37602 +              << "test must be run with more than 1 proc and less than 12 procs"
37603                << endl ;
37604      cerr << strstream.str() << endl ;
37605      CPPUNIT_FAIL( strstream.str() ) ;
37606 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx
37607 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx    2018-04-19 17:04:36.799223959 +0200
37608 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx    2018-04-19 17:25:17.875800084 +0200
37609 @@ -81,7 +81,7 @@
37610      strstream << "usage :" << endl
37611                << "mpirun -np <nbprocs> test_AllToAllvDEC" << endl
37612                << " (nbprocs >=2)" << endl
37613 -              << "test must be runned with more than 1 proc and less than 12 procs"
37614 +              << "test must be run with more than 1 proc and less than 12 procs"
37615                << endl ;
37616      cerr << strstream.str() << endl ;
37617      CPPUNIT_FAIL( strstream.str() ) ;
37618 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx
37619 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx        2018-04-19 17:04:36.799223959 +0200
37620 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx        2018-04-19 17:25:17.909800757 +0200
37621 @@ -86,7 +86,7 @@
37622      strstream << "usage :" << endl
37623                << "mpirun -np <nbprocs> test_AllToAllTimeDEC" << endl
37624                << " (nbprocs >=2)" << endl
37625 -              << "test must be runned with more than 1 proc and less than 12 procs"
37626 +              << "test must be run with more than 1 proc and less than 12 procs"
37627                << endl ;
37628      cerr << strstream.str() << endl ;
37629      CPPUNIT_FAIL( strstream.str() ) ;
37630 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx
37631 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx  2018-04-19 17:04:36.799223959 +0200
37632 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx  2018-04-19 17:25:17.887800322 +0200
37633 @@ -84,7 +84,7 @@
37634      strstream << "usage :" << endl
37635                << "mpirun -np <nbprocs> test_AllToAllTimeDEC" << endl
37636                << " (nbprocs >=2)" << endl
37637 -              << "test must be runned with more than 1 proc and less than 12 procs"
37638 +              << "test must be run with more than 1 proc and less than 12 procs"
37639                << endl ;
37640      cerr << strstream.str() << endl ;
37641      CPPUNIT_FAIL( strstream.str() ) ;
37642 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx
37643 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx       2018-04-19 17:04:36.799223959 +0200
37644 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx       2018-04-19 17:25:17.880800183 +0200
37645 @@ -58,7 +58,7 @@
37646  
37647    if ( size < 2 ) {
37648      ostringstream strstream ;
37649 -    strstream << "test_MPI_Access_Cancel must be runned with 2 procs" << endl ;
37650 +    strstream << "test_MPI_Access_Cancel must be run with 2 procs" << endl ;
37651      cerr << strstream.str() << endl ;
37652      //CPPUNIT_FAIL( strstream.str() ) ;
37653      return;
37654 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx
37655 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx   2018-04-19 17:04:36.799223959 +0200
37656 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx   2018-04-19 17:25:17.878800144 +0200
37657 @@ -52,8 +52,8 @@
37658    MPI_Comm_rank(MPI_COMM_WORLD,&myrank) ;
37659  
37660    if ( size < 3 ) {
37661 -      cerr << "test_MPI_Access_Cyclic_ISend_IRecv must be runned with 3 procs" << endl ;
37662 -    //CPPUNIT_FAIL("test_MPI_Access_Cyclic_ISend_IRecv must be runned with 3 procs") ;
37663 +      cerr << "test_MPI_Access_Cyclic_ISend_IRecv must be run with 3 procs" << endl ;
37664 +    //CPPUNIT_FAIL("test_MPI_Access_Cyclic_ISend_IRecv must be run with 3 procs") ;
37665      return;
37666    }
37667  
37668 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx
37669 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx     2018-04-19 17:04:36.799223959 +0200
37670 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx     2018-04-19 17:25:17.870799986 +0200
37671 @@ -51,8 +51,8 @@
37672    MPI_Comm_rank(MPI_COMM_WORLD,&myrank) ;
37673  
37674    if ( size < 3 ) {
37675 -      cerr << "test_MPI_Access_Send_Recv must be runned with 3 procs" << endl ;
37676 -    //CPPUNIT_FAIL("test_MPI_Access_Send_Recv must be runned with 3 procs") ;
37677 +      cerr << "test_MPI_Access_Send_Recv must be run with 3 procs" << endl ;
37678 +    //CPPUNIT_FAIL("test_MPI_Access_Send_Recv must be run with 3 procs") ;
37679      return;
37680    }
37681  
37682 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx
37683 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx       2018-04-19 17:04:36.799223959 +0200
37684 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx       2018-04-19 17:25:17.909800757 +0200
37685 @@ -58,7 +58,7 @@
37686  
37687    if ( size < 2 ) {
37688      ostringstream strstream ;
37689 -    strstream << "test_MPI_Access_IProbe must be runned with 2 procs" << endl ;
37690 +    strstream << "test_MPI_Access_IProbe must be run with 2 procs" << endl ;
37691      cerr << strstream.str() << endl ;
37692      //CPPUNIT_FAIL( strstream.str() ) ;
37693      return;
37694 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx
37695 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx       2018-04-19 17:04:36.799223959 +0200
37696 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx       2018-04-19 17:25:17.916800895 +0200
37697 @@ -54,7 +54,7 @@
37698  
37699    if ( size < 2 ) {
37700      ostringstream strstream ;
37701 -    strstream << "test_MPI_Access_ISend_IRecv_BottleNeck must be runned with 2 procs"
37702 +    strstream << "test_MPI_Access_ISend_IRecv_BottleNeck must be run with 2 procs"
37703                << endl ;
37704      cerr << strstream.str() << endl ;
37705      //CPPUNIT_FAIL( strstream.str() ) ;
37706 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx
37707 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx  2018-04-19 17:04:36.799223959 +0200
37708 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx  2018-04-19 17:25:17.877800124 +0200
37709 @@ -52,8 +52,8 @@
37710    MPI_Comm_rank(MPI_COMM_WORLD,&myrank) ;
37711  
37712    if ( size < 2 ) {
37713 -      cerr << "test_MPI_Access_ISend_IRecv must be runned with 2 procs" << endl ;
37714 -    //CPPUNIT_FAIL("test_MPI_Access_ISend_IRecv must be runned with 2 procs") ;
37715 +      cerr << "test_MPI_Access_ISend_IRecv must be run with 2 procs" << endl ;
37716 +    //CPPUNIT_FAIL("test_MPI_Access_ISend_IRecv must be run with 2 procs") ;
37717      return;
37718    }
37719  
37720 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx
37721 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx 2018-04-19 17:04:36.799223959 +0200
37722 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx 2018-04-19 17:25:17.882800223 +0200
37723 @@ -51,7 +51,7 @@
37724  
37725    if ( size < 2 ) {
37726      ostringstream strstream ;
37727 -    strstream << "test_MPI_Access_ISend_IRecv_Length_1 must be runned with 2 procs" << endl ;
37728 +    strstream << "test_MPI_Access_ISend_IRecv_Length_1 must be run with 2 procs" << endl ;
37729      cerr << strstream.str() << endl ;
37730      //CPPUNIT_FAIL( strstream.str() ) ;
37731      return;
37732 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx
37733 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx   2018-04-19 17:04:36.799223959 +0200
37734 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx   2018-04-19 17:25:17.874800065 +0200
37735 @@ -53,7 +53,7 @@
37736  
37737    if ( size < 2 ) {
37738      ostringstream strstream ;
37739 -    strstream << "test_MPI_Access_ISend_IRecv_Length must be runned with 2 procs" << endl ;
37740 +    strstream << "test_MPI_Access_ISend_IRecv_Length must be run with 2 procs" << endl ;
37741      cerr << strstream.str() << endl ;
37742      //CPPUNIT_FAIL( strstream.str() ) ;
37743      return;
37744 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx
37745 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx    2018-04-19 17:04:36.799223959 +0200
37746 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx    2018-04-19 17:25:17.888800342 +0200
37747 @@ -52,8 +52,8 @@
37748    MPI_Comm_rank(MPI_COMM_WORLD,&myrank) ;
37749  
37750    if ( size < 2 ) {
37751 -      cerr << "test_MPI_Access_ISendRecv must be runned with 2 procs" << endl ;
37752 -    //CPPUNIT_FAIL("test_MPI_Access_ISendRecv must be runned with 2 procs") ;
37753 +      cerr << "test_MPI_Access_ISendRecv must be run with 2 procs" << endl ;
37754 +    //CPPUNIT_FAIL("test_MPI_Access_ISendRecv must be run with 2 procs") ;
37755      return;
37756    }
37757  
37758 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx
37759 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx        2018-04-19 17:04:36.799223959 +0200
37760 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx        2018-04-19 17:25:17.913800836 +0200
37761 @@ -52,8 +52,8 @@
37762    MPI_Comm_rank(MPI_COMM_WORLD,&myrank) ;
37763  
37764    if ( size < 2 ) {
37765 -      cerr << "test_MPI_Access_Probe must be runned with 2 procs" << endl ;
37766 -    //CPPUNIT_FAIL("test_MPI_Access_Probe must be runned with 2 procs") ;
37767 +      cerr << "test_MPI_Access_Probe must be run with 2 procs" << endl ;
37768 +    //CPPUNIT_FAIL("test_MPI_Access_Probe must be run with 2 procs") ;
37769      return;
37770    }
37771  
37772 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx
37773 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx    2018-04-19 17:04:36.799223959 +0200
37774 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx    2018-04-19 17:25:17.868799946 +0200
37775 @@ -50,8 +50,8 @@
37776    MPI_Comm_rank(MPI_COMM_WORLD,&myrank) ;
37777  
37778    if ( size < 2 ) {
37779 -    cerr << "test_MPI_Access_Send_Recv must be runned with 2 procs" << endl ;
37780 -    //CPPUNIT_FAIL("test_MPI_Access_Send_Recv must be runned with 2 procs") ;
37781 +    cerr << "test_MPI_Access_Send_Recv must be run with 2 procs" << endl ;
37782 +    //CPPUNIT_FAIL("test_MPI_Access_Send_Recv must be run with 2 procs") ;
37783      return;
37784    }
37785  
37786 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx
37787 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx     2018-04-19 17:04:36.799223959 +0200
37788 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx     2018-04-19 17:25:17.897800519 +0200
37789 @@ -52,8 +52,8 @@
37790    MPI_Comm_rank(MPI_COMM_WORLD,&myrank) ;
37791  
37792    if ( size < 2 ) {
37793 -      cerr << "MPIAccessTest::test_MPI_Access_SendRecv must be runned with 2 procs" << endl ;
37794 -    //CPPUNIT_FAIL("test_MPI_Access_SendRecv must be runned with 2 procs") ;
37795 +      cerr << "MPIAccessTest::test_MPI_Access_SendRecv must be run with 2 procs" << endl ;
37796 +    //CPPUNIT_FAIL("test_MPI_Access_SendRecv must be run with 2 procs") ;
37797      return;
37798    }
37799  
37800 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx
37801 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx     2018-04-19 17:04:36.799223959 +0200
37802 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx     2018-04-19 17:25:17.881800203 +0200
37803 @@ -53,7 +53,7 @@
37804  
37805    if ( size < 2 ) {
37806      ostringstream strstream ;
37807 -    strstream << "test_MPI_Access_Send_Recv_Length must be runned with 2 procs" << endl ;
37808 +    strstream << "test_MPI_Access_Send_Recv_Length must be run with 2 procs" << endl ;
37809      cerr << strstream.str() << endl ;
37810      //CPPUNIT_FAIL( strstream.str() ) ;
37811      return;
37812 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx
37813 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx       2018-04-19 17:04:36.800223979 +0200
37814 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx       2018-04-19 17:25:17.906800697 +0200
37815 @@ -74,7 +74,7 @@
37816      strstream << "usage :" << endl
37817                << "mpirun -np <nbprocs> test_MPI_Access_Time_0" <<endl
37818                << " nbprocs =2" << endl
37819 -              << "test must be runned with 2 procs" << endl ;
37820 +              << "test must be run with 2 procs" << endl ;
37821      cerr << strstream.str() << endl ;
37822      //CPPUNIT_FAIL( strstream.str() ) ;
37823      return;
37824 diff -Naur MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx
37825 --- MEDCOUPLING_old/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx 2018-04-19 17:04:36.799223959 +0200
37826 +++ MEDCOUPLING_new/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx 2018-04-19 17:25:17.903800638 +0200
37827 @@ -53,7 +53,7 @@
37828  
37829    if ( size < 2 ) {
37830      ostringstream strstream ;
37831 -    strstream << "test_MPI_Access_Time must be runned with 2 procs" << endl ;
37832 +    strstream << "test_MPI_Access_Time must be run with 2 procs" << endl ;
37833      cerr << strstream.str() << endl ;
37834      //CPPUNIT_FAIL( strstream.str() ) ;
37835      return;
37836 diff -Naur MEDCOUPLING_old/src/PyWrapping/CMakeLists.txt MEDCOUPLING_new/src/PyWrapping/CMakeLists.txt
37837 --- MEDCOUPLING_old/src/PyWrapping/CMakeLists.txt       1970-01-01 01:00:00.000000000 +0100
37838 +++ MEDCOUPLING_new/src/PyWrapping/CMakeLists.txt       2018-04-19 17:25:17.668795993 +0200
37839 @@ -0,0 +1,109 @@
37840 +# Copyright (C) 2017  CEA/DEN, EDF R&D
37841 +#
37842 +# This library is free software; you can redistribute it and/or
37843 +# modify it under the terms of the GNU Lesser General Public
37844 +# License as published by the Free Software Foundation; either
37845 +# version 2.1 of the License, or (at your option) any later version.
37846 +#
37847 +# This library is distributed in the hope that it will be useful,
37848 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
37849 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
37850 +# Lesser General Public License for more details.
37851 +#
37852 +# You should have received a copy of the GNU Lesser General Public
37853 +# License along with this library; if not, write to the Free Software
37854 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
37855 +#
37856 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
37857 +#
37858 +# Author : Anthony Geay (EDF R&D)
37859 +
37860 +FIND_PACKAGE(SWIG REQUIRED)
37861 +INCLUDE(${SWIG_USE_FILE})
37862 +
37863 +ADD_DEFINITIONS(${PYTHON_DEFINITIONS} ${NUMPY_DEFINITIONS} ${SCIPY_DEFINITIONS})
37864 +
37865 +SET_SOURCE_FILES_PROPERTIES(medcoupling.i PROPERTIES CPLUSPLUS ON)
37866 +IF ("${PYTHON_VERSION_MAJOR}" STREQUAL "3")
37867 +  SET_SOURCE_FILES_PROPERTIES(medcoupling.i PROPERTIES SWIG_FLAGS "-py3")
37868 +ELSE()
37869 +  SET_SOURCE_FILES_PROPERTIES(medcoupling.i PROPERTIES SWIG_DEFINITIONS "-shadow")
37870 +ENDIF()
37871 +SET(SWIG_MODULE_medcoupling_EXTRA_FLAGS "${NUMPY_DEFINITIONS};${SCIPY_DEFINITIONS}")
37872 +
37873 +SET(medcoupling_SWIG_DPYS_FILES medcoupling.i)
37874 +
37875 +INCLUDE_DIRECTORIES(
37876 +  ${PYTHON_INCLUDE_DIRS}
37877 +  ${NUMPY_INCLUDE_DIR}
37878 +  ${MEDFILE_INCLUDE_DIRS}
37879 +  ${HDF5_INCLUDE_DIRS}
37880 +  ${CMAKE_CURRENT_SOURCE_DIR}
37881 +  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDLoader
37882 +  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDLoader/Swig
37883 +  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDCoupling_Swig
37884 +  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDCoupling
37885 +  ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL
37886 +  ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/Bases
37887 +  ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/Geometric2D
37888 +  ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/ExprEval
37889 +  ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/GaussPoints
37890 +  ${CMAKE_CURRENT_SOURCE_DIR}/../RENUMBER
37891 +  ${CMAKE_CURRENT_SOURCE_DIR}/../RENUMBER_Swig
37892 +  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDPartitioner
37893 +  ${CMAKE_CURRENT_SOURCE_DIR}/../MEDPartitioner_Swig
37894 +  ${CMAKE_CURRENT_SOURCE_DIR}/../ICoCo
37895 +  ${CMAKE_CURRENT_SOURCE_DIR}/../ParaMEDMEM
37896 +  ${CMAKE_CURRENT_SOURCE_DIR}/../ParaMEDMEM_Swig
37897 +  ${PROJECT_BINARY_DIR}/doc
37898 +  )
37899 +
37900 +SET(medcoupling_LIB_dependancies ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} medcouplingremapper)
37901 +
37902 +IF(NOT MEDCOUPLING_MICROMED)
37903 +  LIST(APPEND SWIG_MODULE_medcoupling_EXTRA_FLAGS -DWITH_MED_FILE)
37904 +  LIST(APPEND medcoupling_LIB_dependancies medloader)
37905 +
37906 +  IF(MEDCOUPLING_ENABLE_RENUMBER)
37907 +    LIST(APPEND SWIG_MODULE_medcoupling_EXTRA_FLAGS -DWITH_RENUMBER)
37908 +    LIST(APPEND medcoupling_LIB_dependancies renumbercpp)
37909 +  ENDIF(MEDCOUPLING_ENABLE_RENUMBER)
37910 +  
37911 +  IF(MEDCOUPLING_ENABLE_PARTITIONER)
37912 +    LIST(APPEND SWIG_MODULE_medcoupling_EXTRA_FLAGS -DWITH_PARTITIONER)
37913 +    LIST(APPEND medcoupling_LIB_dependancies medpartitionercpp)
37914 +  ENDIF(MEDCOUPLING_ENABLE_PARTITIONER)
37915 +ENDIF(NOT MEDCOUPLING_MICROMED)
37916 +
37917 +IF(MEDCOUPLING_USE_MPI)
37918 +  INCLUDE_DIRECTORIES(${MPI_INCLUDE_DIRS})
37919 +  ADD_DEFINITIONS(${MPI_DEFINITIONS})
37920 +  LIST(APPEND SWIG_MODULE_medcoupling_EXTRA_FLAGS -DWITH_PARALLEL_INTERPOLATOR)
37921 +  LIST(APPEND medcoupling_LIB_dependancies paramedmem)
37922 +ENDIF(MEDCOUPLING_USE_MPI)
37923 +
37924 +SWIG_ADD_MODULE(medcoupling python medcoupling.i)
37925 +SWIG_LINK_LIBRARIES(medcoupling ${medcoupling_LIB_dependancies})
37926 +SWIG_CHECK_GENERATION(medcoupling)
37927 +IF(WIN32)
37928 +  SET_TARGET_PROPERTIES(_medcoupling PROPERTIES DEBUG_OUTPUT_NAME _medcoupling_d)
37929 +ENDIF(WIN32)
37930 +
37931 +INSTALL(TARGETS _medcoupling DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
37932 +INSTALL(FILES medcoupling.i medcoupling_pycode DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
37933 +SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/medcoupling.py ${MEDCOUPLING_INSTALL_PYTHON})
37934 +
37935 +INCLUDE(tests.set)
37936 +SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
37937 +
37938 +FOREACH(test ${BASE_TESTS})
37939 +  GET_FILENAME_COMPONENT(testname ${test} NAME_WE)
37940 +  ADD_TEST(NAME ${testname} COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${test})
37941 +  SET_TESTS_PROPERTIES(${testname} PROPERTIES ENVIRONMENT "${tests_env}")
37942 +ENDFOREACH()
37943 +
37944 +SET(TEST_INSTALL_DIRECTORY ${MEDCOUPLING_INSTALL_TESTS}/PyWrapping)
37945 +
37946 +INSTALL(FILES CTestTestfileInstall.cmake DESTINATION ${TEST_INSTALL_DIRECTORY} RENAME CTestTestfile.cmake)
37947 +INSTALL(FILES ${BASE_TESTS} DESTINATION ${TEST_INSTALL_DIRECTORY})
37948 +INSTALL(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY})
37949 diff -Naur MEDCOUPLING_old/src/PyWrapping/CTestTestfileInstall.cmake MEDCOUPLING_new/src/PyWrapping/CTestTestfileInstall.cmake
37950 --- MEDCOUPLING_old/src/PyWrapping/CTestTestfileInstall.cmake   1970-01-01 01:00:00.000000000 +0100
37951 +++ MEDCOUPLING_new/src/PyWrapping/CTestTestfileInstall.cmake   2018-04-19 17:25:17.672796072 +0200
37952 @@ -0,0 +1,27 @@
37953 +# Copyright (C) 2017  CEA/DEN, EDF R&D
37954 +#
37955 +# This library is free software; you can redistribute it and/or
37956 +# modify it under the terms of the GNU Lesser General Public
37957 +# License as published by the Free Software Foundation; either
37958 +# version 2.1 of the License, or (at your option) any later version.
37959 +#
37960 +# This library is distributed in the hope that it will be useful,
37961 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
37962 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
37963 +# Lesser General Public License for more details.
37964 +#
37965 +# You should have received a copy of the GNU Lesser General Public
37966 +# License along with this library; if not, write to the Free Software
37967 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
37968 +#
37969 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
37970 +#
37971 +
37972 +INCLUDE(tests.set)
37973 +
37974 +FOREACH(tfile ${BASE_TESTS})
37975 +  GET_FILENAME_COMPONENT(BASE_NAME ${tfile} NAME_WE)
37976 +  SET(TEST_NAME ${COMPONENT_NAME}_${BASE_NAME})
37977 +  ADD_TEST(${TEST_NAME} python ${tfile})
37978 +  SET_TESTS_PROPERTIES( ${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME}" TIMEOUT ${TIMEOUT} )
37979 +ENDFOREACH()
37980 diff -Naur MEDCOUPLING_old/src/PyWrapping/medcoupling.i MEDCOUPLING_new/src/PyWrapping/medcoupling.i
37981 --- MEDCOUPLING_old/src/PyWrapping/medcoupling.i        1970-01-01 01:00:00.000000000 +0100
37982 +++ MEDCOUPLING_new/src/PyWrapping/medcoupling.i        2018-04-19 17:25:17.668795993 +0200
37983 @@ -0,0 +1,254 @@
37984 +// Copyright (C) 2017  CEA/DEN, EDF R&D
37985 +//
37986 +// This library is free software; you can redistribute it and/or
37987 +// modify it under the terms of the GNU Lesser General Public
37988 +// License as published by the Free Software Foundation; either
37989 +// version 2.1 of the License, or (at your option) any later version.
37990 +//
37991 +// This library is distributed in the hope that it will be useful,
37992 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
37993 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
37994 +// Lesser General Public License for more details.
37995 +//
37996 +// You should have received a copy of the GNU Lesser General Public
37997 +// License along with this library; if not, write to the Free Software
37998 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
37999 +//
38000 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
38001 +//
38002 +
38003 +// Author : Anthony Geay (EDF R&D)
38004 +
38005 +%module medcoupling
38006 +
38007 +#define MEDCOUPLINGREMAPPER_EXPORT
38008 +#define INTERPKERNEL_EXPORT
38009 +#define MEDCOUPLING_EXPORT
38010 +#define MEDLOADER_EXPORT
38011 +
38012 +%include "MEDCouplingCommon.i"
38013 +
38014 +%include "MEDCouplingRemapperCommon.i"
38015 +
38016 +#ifdef WITH_MED_FILE
38017 +%include "MEDLoaderCommon.i"
38018 +#endif
38019 +
38020 +#ifdef WITH_RENUMBER
38021 +%include "MEDRenumberImpl.i"
38022 +#endif
38023 +
38024 +#ifdef WITH_PARTITIONER
38025 +%include "MEDPartitionerCommon.i"
38026 +#endif
38027 +
38028 +#ifdef WITH_PARALLEL_INTERPOLATOR
38029 +%include "ParaMEDMEMCommon.i"
38030 +#endif
38031 +
38032 +%{
38033 +  static const char SEQ_INTERPOL_EXT[]="Sequential interpolator";
38034 +  static const char MEDFILEIO_EXT[]="MED file I/O";
38035 +  static const char RENUM_EXT[]="Renumberer";
38036 +  static const char PART_EXT[]="Partitioner";
38037 +  static const char PAR_INTERPOL_EXT[]="Parallel interpolator (SPMD paradigm)";
38038 +  
38039 +  static const char *EXTENSIONS[]={SEQ_INTERPOL_EXT,MEDFILEIO_EXT,RENUM_EXT,PART_EXT,PAR_INTERPOL_EXT};
38040 +  static const int NB_OF_EXTENSIONS=sizeof(EXTENSIONS)/sizeof(const char *);
38041 +%}
38042 +
38043 +%inline
38044 +{
38045 +  std::vector<std::string> AllPossibleExtensions()
38046 +  {
38047 +    std::vector<std::string> ret(EXTENSIONS,EXTENSIONS+NB_OF_EXTENSIONS);
38048 +    return ret;
38049 +  }
38050 +
38051 +  bool HasMEDFileExt()
38052 +  {
38053 +#ifdef WITH_MED_FILE
38054 +    return true;
38055 +#else
38056 +    return false;
38057 +#endif
38058 +  }
38059 +
38060 +  bool HasRenumberExt()
38061 +  {
38062 +#ifdef WITH_RENUMBER
38063 +    return true;
38064 +#else
38065 +    return false;
38066 +#endif
38067 +  }
38068 +
38069 +  bool HasPartitionerExt()
38070 +  {
38071 +#ifdef WITH_PARTITIONER
38072 +    return true;
38073 +#else
38074 +    return false;
38075 +#endif
38076 +  }
38077 +
38078 +  bool HasScotchPartitionerAlg()
38079 +  {
38080 +#ifdef WITH_PARTITIONER
38081 +    return MEDPartitioner::HasScotchAlg();
38082 +#else
38083 +    return false;
38084 +#endif    
38085 +  }
38086 +
38087 +  bool HasPTScotchPartitionerAlg()
38088 +  {
38089 +#ifdef WITH_PARTITIONER
38090 +    return MEDPartitioner::HasPTScotchAlg();
38091 +#else
38092 +    return false;
38093 +#endif    
38094 +  }
38095 +
38096 +  bool HasMetisPartitionerAlg()
38097 +  {
38098 +#ifdef WITH_PARTITIONER
38099 +    return MEDPartitioner::HasMetisAlg();
38100 +#else
38101 +    return false;
38102 +#endif    
38103 +  }
38104 +  
38105 +  bool HasParallelInterpolatorExt()
38106 +  {
38107 +#ifdef WITH_PARALLEL_INTERPOLATOR
38108 +    return true;
38109 +#else
38110 +    return false;
38111 +#endif
38112 +  }
38113 +  
38114 +  std::vector<std::string> ActiveExtensions()
38115 +  {
38116 +    std::vector<std::string> ret;
38117 +    ret.push_back(std::string(SEQ_INTERPOL_EXT));
38118 +#ifdef WITH_MED_FILE
38119 +    ret.push_back(std::string(MEDFILEIO_EXT));
38120 +#endif
38121 +#ifdef WITH_RENUMBER
38122 +    ret.push_back(std::string(RENUM_EXT));
38123 +#endif
38124 +#ifdef WITH_PARTITIONER
38125 +    ret.push_back(std::string(PART_EXT));
38126 +#endif
38127 +#ifdef WITH_PARALLEL_INTERPOLATOR
38128 +    ret.push_back(std::string(PAR_INTERPOL_EXT));
38129 +#endif
38130 +    return ret;
38131 +  }
38132 +}
38133 +
38134 +%pythoncode %{
38135 +def MEDCouplingDataArrayDoubleIadd(self,*args):
38136 +    import _medcoupling
38137 +    return _medcoupling.DataArrayDouble____iadd___(self, self, *args)
38138 +def MEDCouplingDataArrayDoubleIsub(self,*args):
38139 +    import _medcoupling
38140 +    return _medcoupling.DataArrayDouble____isub___(self, self, *args)
38141 +def MEDCouplingDataArrayDoubleImul(self,*args):
38142 +    import _medcoupling
38143 +    return _medcoupling.DataArrayDouble____imul___(self, self, *args)
38144 +def MEDCouplingDataArrayDoubleIdiv(self,*args):
38145 +    import _medcoupling
38146 +    return _medcoupling.DataArrayDouble____idiv___(self, self, *args)
38147 +def MEDCouplingDataArrayDoubleIpow(self,*args):
38148 +    import _medcoupling
38149 +    return _medcoupling.DataArrayDouble____ipow___(self, self, *args)
38150 +def MEDCouplingFieldDoubleIadd(self,*args):
38151 +    import _medcoupling
38152 +    return _medcoupling.MEDCouplingFieldDouble____iadd___(self, self, *args)
38153 +def MEDCouplingFieldDoubleIsub(self,*args):
38154 +    import _medcoupling
38155 +    return _medcoupling.MEDCouplingFieldDouble____isub___(self, self, *args)
38156 +def MEDCouplingFieldDoubleImul(self,*args):
38157 +    import _medcoupling
38158 +    return _medcoupling.MEDCouplingFieldDouble____imul___(self, self, *args)
38159 +def MEDCouplingFieldDoubleIdiv(self,*args):
38160 +    import _medcoupling
38161 +    return _medcoupling.MEDCouplingFieldDouble____idiv___(self, self, *args)
38162 +def MEDCouplingFieldDoubleIpow(self,*args):
38163 +    import _medcoupling
38164 +    return _medcoupling.MEDCouplingFieldDouble____ipow___(self, self, *args)
38165 +def MEDCouplingDataArrayIntIadd(self,*args):
38166 +    import _medcoupling
38167 +    return _medcoupling.DataArrayInt____iadd___(self, self, *args)
38168 +def MEDCouplingDataArrayIntIsub(self,*args):
38169 +    import _medcoupling
38170 +    return _medcoupling.DataArrayInt____isub___(self, self, *args)
38171 +def MEDCouplingDataArrayIntImul(self,*args):
38172 +    import _medcoupling
38173 +    return _medcoupling.DataArrayInt____imul___(self, self, *args)
38174 +def MEDCouplingDataArrayIntIdiv(self,*args):
38175 +    import _medcoupling
38176 +    return _medcoupling.DataArrayInt____idiv___(self, self, *args)
38177 +def MEDCouplingDataArrayIntImod(self,*args):
38178 +    import _medcoupling
38179 +    return _medcoupling.DataArrayInt____imod___(self, self, *args)
38180 +def MEDCouplingDataArrayIntIpow(self,*args):
38181 +    import _medcoupling
38182 +    return _medcoupling.DataArrayInt____ipow___(self, self, *args)
38183 +def MEDCouplingDataArrayFloatIadd(self,*args):
38184 +    import _medcoupling
38185 +    return _medcoupling.DataArrayFloat____iadd___(self, self, *args)
38186 +def MEDCouplingDataArrayFloatIsub(self,*args):
38187 +    import _medcoupling
38188 +    return _medcoupling.DataArrayFloat____isub___(self, self, *args)
38189 +def MEDCouplingDataArrayFloatImul(self,*args):
38190 +    import _medcoupling
38191 +    return _medcoupling.DataArrayFloat____imul___(self, self, *args)
38192 +def MEDCouplingDataArrayFloatIdiv(self,*args):
38193 +    import _medcoupling
38194 +    return _medcoupling.DataArrayFloat____idiv___(self, self, *args)
38195 +def MEDCouplingDataArrayDoubleTupleIadd(self,*args):
38196 +    import _medcoupling
38197 +    return _medcoupling.DataArrayDoubleTuple____iadd___(self, self, *args)
38198 +def MEDCouplingDataArrayDoubleTupleIsub(self,*args):
38199 +    import _medcoupling
38200 +    return _medcoupling.DataArrayDoubleTuple____isub___(self, self, *args)
38201 +def MEDCouplingDataArrayDoubleTupleImul(self,*args):
38202 +    import _medcoupling
38203 +    return _medcoupling.DataArrayDoubleTuple____imul___(self, self, *args)
38204 +def MEDCouplingDataArrayDoubleTupleIdiv(self,*args):
38205 +    import _medcoupling
38206 +    return _medcoupling.DataArrayDoubleTuple____idiv___(self, self, *args)
38207 +def MEDCouplingDataArrayIntTupleIadd(self,*args):
38208 +    import _medcoupling
38209 +    return _medcoupling.DataArrayIntTuple____iadd___(self, self, *args)
38210 +def MEDCouplingDataArrayIntTupleIsub(self,*args):
38211 +    import _medcoupling
38212 +    return _medcoupling.DataArrayIntTuple____isub___(self, self, *args)
38213 +def MEDCouplingDataArrayIntTupleImul(self,*args):
38214 +    import _medcoupling
38215 +    return _medcoupling.DataArrayIntTuple____imul___(self, self, *args)
38216 +def MEDCouplingDataArrayIntTupleIdiv(self,*args):
38217 +    import _medcoupling
38218 +    return _medcoupling.DataArrayIntTuple____idiv___(self, self, *args)
38219 +def MEDCouplingDataArrayIntTupleImod(self,*args):
38220 +    import _medcoupling
38221 +    return _medcoupling.DataArrayIntTuple____imod___(self, self, *args)
38222 +def MEDCouplingDenseMatrixIadd(self,*args):
38223 +    import _medcoupling
38224 +    return _medcoupling.DenseMatrix____iadd___(self, self, *args)
38225 +def MEDCouplingDenseMatrixIsub(self,*args):
38226 +    import _medcoupling
38227 +    return _medcoupling.DenseMatrix____isub___(self, self, *args)
38228 +%}
38229 +
38230 +%include "MEDCouplingFinalize.i"
38231 +
38232 +#ifdef WITH_MED_FILE
38233 +%include "MEDLoaderFinalize.i"
38234 +#endif
38235 +
38236 +%include "medcoupling_pycode"
38237 +
38238 diff -Naur MEDCOUPLING_old/src/PyWrapping/medcoupling_pycode MEDCOUPLING_new/src/PyWrapping/medcoupling_pycode
38239 --- MEDCOUPLING_old/src/PyWrapping/medcoupling_pycode   1970-01-01 01:00:00.000000000 +0100
38240 +++ MEDCOUPLING_new/src/PyWrapping/medcoupling_pycode   2018-04-19 17:25:17.670796032 +0200
38241 @@ -0,0 +1,102 @@
38242 +// Copyright (C) 2017  CEA/DEN, EDF R&D
38243 +//
38244 +// This library is free software; you can redistribute it and/or
38245 +// modify it under the terms of the GNU Lesser General Public
38246 +// License as published by the Free Software Foundation; either
38247 +// version 2.1 of the License, or (at your option) any later version.
38248 +//
38249 +// This library is distributed in the hope that it will be useful,
38250 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
38251 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
38252 +// Lesser General Public License for more details.
38253 +//
38254 +// You should have received a copy of the GNU Lesser General Public
38255 +// License along with this library; if not, write to the Free Software
38256 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
38257 +//
38258 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
38259 +//
38260 +
38261 +// Author : Anthony Geay (EDF R&D)
38262 +
38263 +%pythoncode %{
38264 +
38265 +def ExtensionsStr(sz=60):
38266 +    tab=["No","Yes"]
38267 +    isOK=[(elt,tab[int(elt in ActiveExtensions())]) for elt in AllPossibleExtensions()]
38268 +    return "\n".join([a+" "+('{:.>%d}'%(sz-len(a)-1)).format(' %s'%b) for a,b in isOK])
38269 +
38270 +def ShowExtensions(sz=60):
38271 +    print(ExtensionsStr(sz))
38272 +    pass
38273 +
38274 +def AdvancedExtensionsStr(sz=60):
38275 +    def SubExtension(allPossibilities,extensionsActivated,pad,tab, sts):
38276 +        for elt2 in allPossibilities:
38277 +            elt3="%s algorithm for %s"%(elt2,elt)
38278 +            sts.append(pad+elt3+" "+('{:.>%d}'%(sz-len(pad)-len(elt3)-1)).format(' %s'%tab[int(elt2 in extensionsActivated)]))
38279 +            pass
38280 +        pass
38281 +    pad="    "
38282 +    tab=["No","Yes"]
38283 +    aext=ActiveExtensions()
38284 +    sts=[]
38285 +    for elt in AllPossibleExtensions():
38286 +        isOK=elt in aext
38287 +        sts.append(elt+" "+('{:.>%d}'%(sz-len(elt)-1)).format(' %s'%tab[isOK]))
38288 +        if not isOK:
38289 +            continue
38290 +        if "Renumb" in elt:
38291 +            SubExtension(AllRenumberMethods(),RenumberAvailableMethods(),pad,tab, sts)
38292 +            pass
38293 +        if "Partit" in elt:
38294 +            SubExtension(MEDPartitioner.AllAlgorithms(),MEDPartitioner.AvailableAlgorithms(),pad,tab, sts)
38295 +            pass
38296 +        pass
38297 +    return "\n".join(sts)
38298 +
38299 +def ShowAdvancedExtensions(sz=60):
38300 +    print(AdvancedExtensionsStr(sz))
38301 +
38302 +def MEDCouplingWriterHelper(mci,fileName,medFunc):
38303 +    import os
38304 +    fileWithoutExt,ext=os.path.splitext(fileName)
38305 +    if ext in [".med",".rmed",""]:
38306 +        outFileName=fileName
38307 +        if ext=="":
38308 +            outFileName=fileWithoutExt+".med"
38309 +        if HasMEDFileExt():
38310 +            medFunc(outFileName,mci,True)
38311 +            pass
38312 +        else:
38313 +            raise InterpKernelException("Request for writing \"%s\" MED file, but MED file is not activated in your medcoupling !")
38314 +        pass
38315 +    elif ext[:3]==".vt" and len(ext)==4:
38316 +        mci.writeVTK(fileName)
38317 +    else:
38318 +        raise InterpKernelException("The extension \"%s\" of input file \"%s\" is not recognized !"%(ext,fileName))
38319 +    pass
38320 +
38321 +if HasMEDFileExt():
38322 +    def MEDCouplingMesh_write(self,fileName):
38323 +        MEDCouplingWriterHelper(self,fileName,WriteMesh)
38324 +
38325 +    def MEDCouplingField_write(self,fileName):
38326 +        MEDCouplingWriterHelper(self,fileName,WriteField)
38327 +
38328 +    def MEDCouplingFieldT_copyTimeInfoFrom(self,mlf1ts):
38329 +        assert(isinstance(mlf1ts,MEDFileAnyTypeField1TS))
38330 +        a,b,c=mlf1ts.getTime()
38331 +        self.setTime(c,a,b)
38332 +        pass
38333 +
38334 +    MEDCouplingMesh.write=MEDCouplingMesh_write
38335 +    del MEDCouplingMesh_write
38336 +    MEDCouplingField.write=MEDCouplingField_write
38337 +    del MEDCouplingField_write
38338 +    MEDCouplingFieldDouble.copyTimeInfoFrom=MEDCouplingFieldT_copyTimeInfoFrom
38339 +    MEDCouplingFieldInt.copyTimeInfoFrom=MEDCouplingFieldT_copyTimeInfoFrom
38340 +    MEDCouplingFieldFloat.copyTimeInfoFrom=MEDCouplingFieldT_copyTimeInfoFrom
38341 +    del MEDCouplingFieldT_copyTimeInfoFrom
38342 +    pass
38343 +%}
38344 diff -Naur MEDCOUPLING_old/src/PyWrapping/TestPyWrapGathered_medcoupling.py MEDCOUPLING_new/src/PyWrapping/TestPyWrapGathered_medcoupling.py
38345 --- MEDCOUPLING_old/src/PyWrapping/TestPyWrapGathered_medcoupling.py    1970-01-01 01:00:00.000000000 +0100
38346 +++ MEDCOUPLING_new/src/PyWrapping/TestPyWrapGathered_medcoupling.py    2018-04-19 17:25:17.671796052 +0200
38347 @@ -0,0 +1,155 @@
38348 +#  -*- coding: iso-8859-1 -*-
38349 +# Copyright (C) 2017  CEA/DEN, EDF R&D
38350 +#
38351 +# This library is free software; you can redistribute it and/or
38352 +# modify it under the terms of the GNU Lesser General Public
38353 +# License as published by the Free Software Foundation; either
38354 +# version 2.1 of the License, or (at your option) any later version.
38355 +#
38356 +# This library is distributed in the hope that it will be useful,
38357 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
38358 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
38359 +# Lesser General Public License for more details.
38360 +#
38361 +# You should have received a copy of the GNU Lesser General Public
38362 +# License along with this library; if not, write to the Free Software
38363 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
38364 +#
38365 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
38366 +#
38367 +# Author : Anthony Geay (EDF R&D)
38368 +
38369 +from medcoupling import *
38370 +import unittest
38371 +
38372 +class FileCreator(object):
38373 +    def __init__(self,tester,fname):
38374 +        self._tester=tester
38375 +        self._fname=fname
38376 +        pass
38377 +        
38378 +    def fileName(self):
38379 +        return self._fname
38380 +    
38381 +    def __enter__(self):
38382 +        import os
38383 +        if os.path.exists(self._fname):
38384 +            os.remove(self._fname)
38385 +            pass
38386 +        return self
38387 +    
38388 +    def __exit__(self, type, value, traceback):
38389 +        import os
38390 +        if not os.path.exists(self._fname):
38391 +            self._tester.assertTrue(False)
38392 +            pass
38393 +        else:
38394 +            os.remove(self._fname)
38395 +        pass
38396 +        
38397 +class medcouplingTest(unittest.TestCase):
38398 +
38399 +    def test0(self):
38400 +        """ Unconditional test : medcoupling "kernel" classes """
38401 +        f=MEDCouplingFieldDouble(ON_CELLS)
38402 +        g=DataArrayDouble(10,2)
38403 +        h=MEDCouplingUMesh("mesh",3)
38404 +        hh=MEDCouplingRemapper()
38405 +        ee=InterpKernelException("ee")
38406 +        pass
38407 +    
38408 +    @unittest.skipUnless(HasMEDFileExt(),"Requires link to MED file")
38409 +    def test1(self):
38410 +        import sys
38411 +        fname="mctest1.med"
38412 +        arr=DataArrayDouble(10) ; arr.iota()
38413 +        m=MEDCouplingCMesh()
38414 +        m.setCoords(arr,arr)
38415 +        m.setName("mesh")
38416 +        with FileCreator(self,fname) as fc:
38417 +            m.write(fc.fileName())
38418 +        m=m.buildUnstructured()
38419 +        with FileCreator(self,fname) as fc:
38420 +            m.write(fc.fileName())
38421 +        f=MEDCouplingFieldDouble(ON_NODES) ; f.setMesh(m) ; f.setArray(m.getCoords()) ; f.setName("field")
38422 +        with FileCreator(self,fname) as fc:
38423 +            f.write(fc.fileName())
38424 +        f=MEDCouplingFieldFloat(ON_NODES) ; f.setMesh(m)
38425 +        d=DataArrayFloat(m.getNumberOfNodes()) ; d.iota()
38426 +        f.setArray(d) ; f.setName("field1")
38427 +        with FileCreator(self,fname) as fc:
38428 +            f.write(fc.fileName())
38429 +        pass
38430 +
38431 +    @unittest.skipUnless(HasRenumberExt(),"Requires Boost or Metis to activate Renumberer")
38432 +    def test2(self):
38433 +        arr=DataArrayDouble(10) ; arr.iota()
38434 +        m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
38435 +        m=m.buildUnstructured() ; m.setName("mesh")
38436 +        #
38437 +        renf=RenumberingFactory("Boost")
38438 +        neigh,neighi=m.computeNeighborsOfCells()
38439 +        n2o,o2n=renf.renumber(neigh,neighi)
38440 +        mRenum=m[n2o]
38441 +        pass
38442 +
38443 +    @unittest.skipUnless(HasPartitionerExt(),"Requires Partitioner activation")
38444 +    def test3(self):
38445 +        for alg in MEDPartitioner.AvailableAlgorithms():
38446 +            st="Graph.%s"%alg.upper()
38447 +            print(st)
38448 +            self.partitionerTesterHelper(eval(st))
38449 +            pass
38450 +        pass
38451 +    
38452 +    @unittest.skipUnless(HasParallelInterpolatorExt(),"Requires // interpolator activated")
38453 +    def test4(self):
38454 +        interface=CommInterface()
38455 +        pass
38456 +
38457 +    @unittest.skipUnless(HasMEDFileExt(),"Requires link to MED file")
38458 +    def test5(self):
38459 +        f=MEDCouplingFieldDouble(ON_NODES)
38460 +        f.setTime(1.25,3,6)
38461 +        a,b,c=f.getTime()
38462 +        self.assertEqual(b,3) ; self.assertEqual(c,6) ; self.assertAlmostEqual(a,1.25,14);
38463 +        f1ts=MEDFileField1TS()
38464 +        f1ts.setTime(10,13,10.75)
38465 +        f.copyTimeInfoFrom(f1ts)
38466 +        a,b,c=f.getTime()
38467 +        self.assertEqual(b,10) ; self.assertEqual(c,13) ; self.assertAlmostEqual(a,10.75,14);
38468 +        f2=MEDCouplingFieldInt(ON_NODES)
38469 +        f2.copyTimeInfoFrom(f1ts)
38470 +        a,b,c=f2.getTime()
38471 +        self.assertEqual(b,10) ; self.assertEqual(c,13) ; self.assertAlmostEqual(a,10.75,14);
38472 +        f3=MEDCouplingFieldFloat(ON_NODES)
38473 +        f3.copyTimeInfoFrom(f1ts)
38474 +        a,b,c=f3.getTime()
38475 +        self.assertEqual(b,10) ; self.assertEqual(c,13) ; self.assertAlmostEqual(a,10.75,14);
38476 +        pass
38477 +        
38478 +
38479 +    def partitionerTesterHelper(self,algoSelected):
38480 +        arr=DataArrayDouble(10) ; arr.iota()
38481 +        m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
38482 +        m=m.buildUnstructured() ; m.setName("mesh")
38483 +        a,b=m.computeNeighborsOfCells()
38484 +        sk=MEDCouplingSkyLineArray(b,a)
38485 +        g=MEDPartitioner.Graph(sk,algoSelected)
38486 +        g.partGraph(4)
38487 +        procIdOnCells=g.getPartition().getValuesArray()
38488 +        m0=m[procIdOnCells.findIdsEqual(0)] ; m0.setName("m0")
38489 +        pass
38490 +    
38491 +    pass
38492 +
38493 +if __name__ == "__main__":
38494 +    if HasParallelInterpolatorExt():
38495 +        try:
38496 +            from mpi4py import MPI # if not imported test3 may failed due to MPI call of partitioner algorithms.
38497 +        except:
38498 +            pass
38499 +        pass
38500 +    unittest.main()
38501 +    pass
38502 +
38503 diff -Naur MEDCOUPLING_old/src/PyWrapping/tests.set MEDCOUPLING_new/src/PyWrapping/tests.set
38504 --- MEDCOUPLING_old/src/PyWrapping/tests.set    1970-01-01 01:00:00.000000000 +0100
38505 +++ MEDCOUPLING_new/src/PyWrapping/tests.set    2018-04-19 17:25:17.669796013 +0200
38506 @@ -0,0 +1,21 @@
38507 +# Copyright (C) 2017  CEA/DEN, EDF R&D
38508 +#
38509 +# This library is free software; you can redistribute it and/or
38510 +# modify it under the terms of the GNU Lesser General Public
38511 +# License as published by the Free Software Foundation; either
38512 +# version 2.1 of the License, or (at your option) any later version.
38513 +#
38514 +# This library is distributed in the hope that it will be useful,
38515 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
38516 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
38517 +# Lesser General Public License for more details.
38518 +#
38519 +# You should have received a copy of the GNU Lesser General Public
38520 +# License along with this library; if not, write to the Free Software
38521 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
38522 +#
38523 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
38524 +#
38525 +# Author : Anthony Geay (EDF R&D)
38526 +
38527 +SET(BASE_TESTS TestPyWrapGathered_medcoupling.py)
38528 \ Pas de fin de ligne à la fin du fichier
38529 diff -Naur MEDCOUPLING_old/src/RENUMBER/RenumberingFactory.cxx MEDCOUPLING_new/src/RENUMBER/RenumberingFactory.cxx
38530 --- MEDCOUPLING_old/src/RENUMBER/RenumberingFactory.cxx 2018-04-19 17:04:36.800223979 +0200
38531 +++ MEDCOUPLING_new/src/RENUMBER/RenumberingFactory.cxx 2018-04-19 17:25:18.149805501 +0200
38532 @@ -27,20 +27,27 @@
38533  #endif
38534  
38535  #include <iostream>
38536 -
38537 -using namespace std;
38538 +#include <algorithm>
38539  
38540  namespace MED_RENUMBER
38541  {
38542 -  Renumbering* RenumberingFactory(const string &s)
38543 +  bool CompareRenumMeth(const std::string& s1, const char *s2)
38544 +  {
38545 +    std::string ss1(s1),ss2(s2);
38546 +    std::transform(ss1.begin(), ss1.end(), ss1.begin(), ::tolower);
38547 +    std::transform(ss2.begin(), ss2.end(), ss2.begin(), ::tolower);
38548 +    return ss1==ss2;
38549 +  }
38550 +  
38551 +  Renumbering* RenumberingFactory(const std::string &s)
38552    {
38553  #ifdef MED_ENABLE_METIS
38554  #ifdef ENABLE_BOOST
38555 -    if (s=="METIS")
38556 +    if ( CompareRenumMeth(s,METIS_ALG) )
38557        {
38558          return new METISRenumbering;
38559        }
38560 -    else if(s=="BOOST")
38561 +    else if( CompareRenumMeth(s,BOOST_ALG) )
38562        {
38563          return new BOOSTRenumbering;
38564        }
38565 @@ -51,7 +58,7 @@
38566        }
38567  #endif
38568  #ifndef ENABLE_BOOST
38569 -    if (s=="METIS")
38570 +    if ( CompareRenumMeth(s,METIS_ALG) )
38571        {
38572          return new METISRenumbering;
38573        }
38574 @@ -64,7 +71,7 @@
38575  #endif
38576  #ifndef MED_ENABLE_METIS
38577  #ifdef ENABLE_BOOST
38578 -    if (s=="BOOST")
38579 +    if ( CompareRenumMeth(s,BOOST_ALG) )
38580        {
38581          return new BOOSTRenumbering;
38582        }
38583 @@ -80,4 +87,24 @@
38584  #endif
38585  #endif
38586    }
38587 +
38588 +  std::vector<std::string> AllRenumberMethods()
38589 +  {
38590 +    std::vector<std::string> ret;
38591 +    ret.push_back(std::string(BOOST_ALG));
38592 +    ret.push_back(std::string(METIS_ALG));
38593 +    return ret;
38594 +  }
38595 +  
38596 +  std::vector<std::string> RenumberAvailableMethods()
38597 +  {
38598 +    std::vector<std::string> ret;
38599 +#ifdef ENABLE_BOOST
38600 +    ret.push_back(std::string(BOOST_ALG));
38601 +#endif
38602 +#ifdef MED_ENABLE_METIS
38603 +    ret.push_back(std::string(METIS_ALG));
38604 +#endif
38605 +    return ret;
38606 +  }
38607  }
38608 diff -Naur MEDCOUPLING_old/src/RENUMBER/RenumberingFactory.hxx MEDCOUPLING_new/src/RENUMBER/RenumberingFactory.hxx
38609 --- MEDCOUPLING_old/src/RENUMBER/RenumberingFactory.hxx 2018-04-19 17:04:36.800223979 +0200
38610 +++ MEDCOUPLING_new/src/RENUMBER/RenumberingFactory.hxx 2018-04-19 17:25:18.150805520 +0200
38611 @@ -28,6 +28,10 @@
38612  namespace MED_RENUMBER
38613  {
38614    RENUMBER_EXPORT Renumbering* RenumberingFactory(const std::string& s);
38615 +  RENUMBER_EXPORT std::vector<std::string> RenumberAvailableMethods();
38616 +  RENUMBER_EXPORT std::vector<std::string> AllRenumberMethods();
38617 +  const char METIS_ALG[]="Metis";
38618 +  const char BOOST_ALG[]="Boost";
38619  }
38620  
38621  #endif /*RENUMBERINGFACTORY_HXX_*/
38622 diff -Naur MEDCOUPLING_old/src/RENUMBER_Swig/CMakeLists.txt MEDCOUPLING_new/src/RENUMBER_Swig/CMakeLists.txt
38623 --- MEDCOUPLING_old/src/RENUMBER_Swig/CMakeLists.txt    2018-04-19 17:04:36.800223979 +0200
38624 +++ MEDCOUPLING_new/src/RENUMBER_Swig/CMakeLists.txt    2018-04-19 17:25:18.157805659 +0200
38625 @@ -29,20 +29,13 @@
38626  ENDIF()
38627  SET(SWIG_MODULE_MEDRenumber_EXTRA_FLAGS "${NUMPY_DEFINITIONS};${SCIPY_DEFINITIONS};-DWITHOUT_AUTOFIELD")
38628  
38629 -IF(Boost_FOUND)
38630 -  SET(SWIG_MODULE_MEDRenumber_EXTRA_FLAGS -DHAS_BOOST ${SWIG_MODULE_MEDRenumber_EXTRA_FLAGS})
38631 -ENDIF(Boost_FOUND)
38632 -
38633 -IF(METIS_FOUND)
38634 -  SET(SWIG_MODULE_MEDRenumber_EXTRA_FLAGS -DHAS_METIS ${SWIG_MODULE_MEDRenumber_EXTRA_FLAGS})
38635 -ENDIF(METIS_FOUND)
38636 -
38637  SET (MEDRenumber_SWIG_DPYS_FILES
38638 -    MEDRenumberCommon.i)
38639 +  MEDRenumberCommon.i
38640 +  MEDRenumberImpl.i)
38641  
38642  INCLUDE_DIRECTORIES(
38643    ${PYTHON_INCLUDE_DIRS}
38644 -  ${PTHREAD_INCLUDE_DIR} # pthread dependancy due to python2.7 library
38645 +  ${PTHREAD_INCLUDE_DIR} # pthread dependency due to python2.7 library
38646    ${CMAKE_CURRENT_SOURCE_DIR}
38647    ${NUMPY_INCLUDE_DIR}
38648    ${CMAKE_CURRENT_BINARY_DIR}
38649 @@ -67,7 +60,7 @@
38650  
38651  SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/MEDRenumber.py ${MEDCOUPLING_INSTALL_PYTHON})
38652  
38653 -INSTALL(FILES MEDRenumber.i MEDRenumberCommon.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
38654 +INSTALL(FILES MEDRenumber.i MEDRenumberCommon.i MEDRenumberImpl.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
38655  INSTALL(FILES MEDRenumberTest.py DESTINATION ${MEDCOUPLING_INSTALL_SCRIPT_PYTHON})
38656  
38657  SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH ${CMAKE_CURRENT_BINARY_DIR}/../MEDCoupling_Swig)
38658 diff -Naur MEDCOUPLING_old/src/RENUMBER_Swig/MEDRenumberCommon.i MEDCOUPLING_new/src/RENUMBER_Swig/MEDRenumberCommon.i
38659 --- MEDCOUPLING_old/src/RENUMBER_Swig/MEDRenumberCommon.i       2018-04-19 17:04:36.800223979 +0200
38660 +++ MEDCOUPLING_new/src/RENUMBER_Swig/MEDRenumberCommon.i       2018-04-19 17:25:18.159805698 +0200
38661 @@ -18,8 +18,6 @@
38662  //
38663  // Author : Anthony Geay (CEA/DEN)
38664  
38665 -%module MEDRenumber
38666 -
38667  %include std_vector.i
38668  %include std_string.i
38669  
38670 @@ -28,12 +26,8 @@
38671  #include "MCAuto.hxx"
38672  #include "MEDCouplingDataArrayTypemaps.i"
38673  
38674 -#include "RenumberingFactory.hxx"
38675 -#include "RENUMBER_Renumbering.hxx"
38676 -
38677  using namespace MEDCoupling;
38678  using namespace INTERP_KERNEL;
38679 - using namespace MED_RENUMBER;
38680  %}
38681  
38682  %template(ivec) std::vector<int>;
38683 @@ -49,8 +43,6 @@
38684  %feature("autodoc", "1");
38685  %feature("docstring");
38686  
38687 -%newobject MED_RENUMBER::RenumberingFactory;
38688 -
38689  %nodefaultctor;
38690  
38691  %rename (InterpKernelException) INTERP_KERNEL::Exception;
38692 @@ -66,47 +58,7 @@
38693    }
38694  %}
38695  
38696 -class Renumbering
38697 -{
38698 -public:
38699 -  %extend
38700 -  {
38701 -    virtual PyObject *renumber(const MEDCoupling::DataArrayInt *graph, const MEDCoupling::DataArrayInt *index_graph) throw(INTERP_KERNEL::Exception)
38702 -    {
38703 -      if(!graph || !index_graph)
38704 -        throw INTERP_KERNEL::Exception("wrap of Renumbering::renumber : One of the input arrays is NULL !");
38705 -      if(!graph->isAllocated() || !index_graph->isAllocated())
38706 -        throw INTERP_KERNEL::Exception("wrap of Renumbering::renumber : One of the input arrays is not allocated !");
38707 -      MEDCoupling::DataArrayInt *out0(0),*out1(0);
38708 -      self->renumber(graph->begin(),index_graph->begin(),index_graph->getNumberOfTuples()-1,out0,out1);
38709 -      PyObject *ret=PyTuple_New(2);
38710 -      PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(out0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
38711 -      PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(out1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
38712 -      return ret;
38713 -    }
38714 -  }
38715 -  virtual ~Renumbering();
38716 -};
38717 -
38718 -namespace MED_RENUMBER
38719 -{
38720 -  Renumbering *RenumberingFactory(const std::string& s) throw(INTERP_KERNEL::Exception);
38721 -}
38722 -
38723 -%inline
38724 -{
38725 -  std::vector<std::string> RenumberAvailableMethods()throw(INTERP_KERNEL::Exception)
38726 -  {
38727 -    std::vector<std::string> ret;
38728 -#ifdef HAS_BOOST
38729 -    ret.push_back(std::string("BOOST"));
38730 -#endif
38731 -#ifdef HAS_METIS
38732 -    ret.push_back(std::string("METIS"));
38733 -#endif
38734 -    return ret;
38735 -  }
38736 -}
38737 +%include "MEDRenumberImpl.i"
38738  
38739  %pythoncode %{
38740  import os
38741 diff -Naur MEDCOUPLING_old/src/RENUMBER_Swig/MEDRenumber.i MEDCOUPLING_new/src/RENUMBER_Swig/MEDRenumber.i
38742 --- MEDCOUPLING_old/src/RENUMBER_Swig/MEDRenumber.i     2018-04-19 17:04:36.800223979 +0200
38743 +++ MEDCOUPLING_new/src/RENUMBER_Swig/MEDRenumber.i     2018-04-19 17:25:18.156805639 +0200
38744 @@ -17,12 +17,11 @@
38745  // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
38746  //
38747  
38748 +%module MEDRenumber
38749 +
38750  %include "MEDRenumberCommon.i"
38751  
38752  %pythoncode %{
38753 -def MEDCouplingDataArrayDoublenew(cls,*args):
38754 -    import _MEDRenumber
38755 -    return _MEDRenumber.DataArrayDouble____new___(cls,args)
38756  def MEDCouplingDataArrayDoubleIadd(self,*args):
38757      import _MEDRenumber
38758      return _MEDRenumber.DataArrayDouble____iadd___(self, self, *args)
38759 @@ -38,9 +37,6 @@
38760  def MEDCouplingDataArrayDoubleIpow(self,*args):
38761      import _MEDRenumber
38762      return _MEDRenumber.DataArrayDouble____ipow___(self, self, *args)
38763 -def MEDCouplingDataArrayIntnew(cls,*args):
38764 -    import _MEDRenumber
38765 -    return _MEDRenumber.DataArrayInt____new___(cls,args)
38766  def MEDCouplingDataArrayIntIadd(self,*args):
38767      import _MEDRenumber
38768      return _MEDRenumber.DataArrayInt____iadd___(self, self, *args)
38769 @@ -59,12 +55,6 @@
38770  def MEDCouplingDataArrayIntIpow(self,*args):
38771      import _MEDRenumber
38772      return _MEDRenumber.DataArrayInt____ipow___(self, self, *args)
38773 -def MEDCouplingDataArrayBytenew(cls,*args):
38774 -    import _MEDRenumber
38775 -    return _MEDRenumber.DataArrayByte____new___(cls,args)
38776 -def MEDCouplingDataArrayFloatnew(cls,*args):
38777 -    import _MEDRenumber
38778 -    return _MEDRenumber.DataArrayFloat____new___(cls,args)
38779  def MEDCouplingDataArrayFloatIadd(self,*args):
38780      import _MEDRenumber
38781      return _MEDRenumber.DataArrayFloat____iadd___(self, self, *args)
38782 @@ -109,14 +99,14 @@
38783  
38784  %pythoncode %{
38785  InterpKernelException.__reduce__=INTERPKERNELExceptionReduce
38786 -DataArrayDouble.__new__=classmethod(MEDCouplingDataArrayDoublenew)
38787 +DataArrayDouble.__reduce__=MEDCouplingDataArrayDoubleReduce
38788  DataArrayDouble.__iadd__=MEDCouplingDataArrayDoubleIadd
38789  DataArrayDouble.__isub__=MEDCouplingDataArrayDoubleIsub
38790  DataArrayDouble.__imul__=MEDCouplingDataArrayDoubleImul
38791  DataArrayDouble.__idiv__=MEDCouplingDataArrayDoubleIdiv
38792  DataArrayDouble.__ipow__=MEDCouplingDataArrayDoubleIpow
38793  
38794 -DataArrayInt.__new__=classmethod(MEDCouplingDataArrayIntnew)
38795 +DataArrayInt.__reduce__=MEDCouplingDataArrayIntReduce
38796  DataArrayInt.__iadd__=MEDCouplingDataArrayIntIadd
38797  DataArrayInt.__isub__=MEDCouplingDataArrayIntIsub
38798  DataArrayInt.__imul__=MEDCouplingDataArrayIntImul
38799 @@ -136,12 +126,12 @@
38800  DataArrayIntTuple.__imod__=MEDCouplingDataArrayIntTupleImod
38801  
38802  del INTERPKERNELExceptionReduce
38803 -del MEDCouplingDataArrayDoublenew
38804 +del MEDCouplingDataArrayDoubleReduce
38805 +del MEDCouplingDataArrayIntReduce
38806  del MEDCouplingDataArrayDoubleIadd
38807  del MEDCouplingDataArrayDoubleIsub
38808  del MEDCouplingDataArrayDoubleImul
38809  del MEDCouplingDataArrayDoubleIdiv
38810 -del MEDCouplingDataArrayIntnew
38811  del MEDCouplingDataArrayIntIadd
38812  del MEDCouplingDataArrayIntIsub
38813  del MEDCouplingDataArrayIntImul
38814 diff -Naur MEDCOUPLING_old/src/RENUMBER_Swig/MEDRenumberImpl.i MEDCOUPLING_new/src/RENUMBER_Swig/MEDRenumberImpl.i
38815 --- MEDCOUPLING_old/src/RENUMBER_Swig/MEDRenumberImpl.i 1970-01-01 01:00:00.000000000 +0100
38816 +++ MEDCOUPLING_new/src/RENUMBER_Swig/MEDRenumberImpl.i 2018-04-19 17:25:18.161805738 +0200
38817 @@ -0,0 +1,57 @@
38818 +// Copyright (C) 2017  CEA/DEN, EDF R&D
38819 +//
38820 +// This library is free software; you can redistribute it and/or
38821 +// modify it under the terms of the GNU Lesser General Public
38822 +// License as published by the Free Software Foundation; either
38823 +// version 2.1 of the License, or (at your option) any later version.
38824 +//
38825 +// This library is distributed in the hope that it will be useful,
38826 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
38827 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
38828 +// Lesser General Public License for more details.
38829 +//
38830 +// You should have received a copy of the GNU Lesser General Public
38831 +// License along with this library; if not, write to the Free Software
38832 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
38833 +//
38834 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
38835 +//
38836 +// Author : Anthony Geay (EDF R&D)
38837 +
38838 +%{
38839 +#include "RenumberingFactory.hxx"
38840 +#include "RENUMBER_Renumbering.hxx"
38841 +  
38842 +using namespace MED_RENUMBER;
38843 +%}
38844 +
38845 +%newobject MED_RENUMBER::RenumberingFactory;
38846 +
38847 +class Renumbering
38848 +{
38849 +public:
38850 +  %extend
38851 +  {
38852 +    virtual PyObject *renumber(const MEDCoupling::DataArrayInt *graph, const MEDCoupling::DataArrayInt *index_graph) throw(INTERP_KERNEL::Exception)
38853 +    {
38854 +      if(!graph || !index_graph)
38855 +        throw INTERP_KERNEL::Exception("wrap of Renumbering::renumber : One of the input arrays is NULL !");
38856 +      if(!graph->isAllocated() || !index_graph->isAllocated())
38857 +        throw INTERP_KERNEL::Exception("wrap of Renumbering::renumber : One of the input arrays is not allocated !");
38858 +      MEDCoupling::DataArrayInt *out0(0),*out1(0);
38859 +      self->renumber(graph->begin(),index_graph->begin(),index_graph->getNumberOfTuples()-1,out0,out1);
38860 +      PyObject *ret=PyTuple_New(2);
38861 +      PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(out0),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
38862 +      PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(out1),SWIGTYPE_p_MEDCoupling__DataArrayInt, SWIG_POINTER_OWN | 0 ));
38863 +      return ret;
38864 +    }
38865 +  }
38866 +  virtual ~Renumbering();
38867 +};
38868 +
38869 +namespace MED_RENUMBER
38870 +{
38871 +  Renumbering *RenumberingFactory(const std::string& s) throw(INTERP_KERNEL::Exception);
38872 +  std::vector<std::string> RenumberAvailableMethods();
38873 +  std::vector<std::string> AllRenumberMethods();
38874 +}