]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
Catalogue pour YACS ; liberation de structures allouees ; documentation
authornicolas <nicolas>
Tue, 9 Apr 2013 15:47:53 +0000 (15:47 +0000)
committernicolas <nicolas>
Tue, 9 Apr 2013 15:47:53 +0000 (15:47 +0000)
17 files changed:
doc/tui_create_boundary.rst
doc/tui_create_iteration.rst
idl/Gen.xml
idl/HOMARD_Iteration.idl
resources/HOMARDCatalog.xml.in
src/HOMARD/HOMARD_DriverTools.cxx
src/HOMARD/HOMARD_Iteration.cxx
src/HOMARD/HOMARD_Iteration.hxx
src/HOMARD/HomardDriver.cxx
src/HOMARDGUI/HOMARD_msg_fr.ts
src/HOMARDGUI/HomardQtCommun.cxx
src/HOMARDGUI/MonCreateIteration.cxx
src/HOMARD_I/HOMARD_Cas_i.cxx
src/HOMARD_I/HOMARD_Gen_i.cxx
src/HOMARD_I/HOMARD_Iteration_i.cxx
src/HOMARD_I/HOMARD_Iteration_i.hxx
src/HOMARD_I/HomardMedCommun.cxx

index 842717f9388bde91d72a6b2b8caad581e68027d8..10dbc6249f7f3716cacd5a5d4b3944b5fc529934 100644 (file)
@@ -52,10 +52,10 @@ Ces m
 |     Retourne une instance de la classe ``boundary`` analytique de type conique         |
 |     après sa création                                                                  |
 |                                                                                        |
-|     - ``boundary_name`` : le nom de la frontière analytique basée sur un cone          |
-|     - ``Xaxe``, ``Yaxe``, ``Zaxe`` : vecteur de l'axe                                  |
-|     - ``Angle`` : angle d'ouverture du cone en degre (entre 0 et 90)                   |
-|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées du centre du cone                     |
+|     - ``boundary_name`` : le nom de la frontière analytique basée sur un cône          |
+|     - ``Xaxe``, ``Yaxe``, ``Zaxe`` : vecteur de l'axe (non nécessairement normé)       |
+|     - ``Angle`` : angle d'ouverture du cône en degre (entre 0 et 90)                   |
+|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées du centre du cône                     |
 +----------------------------------------------------------------------------------------+
 | .. module:: CreateBoundaryConeR                                                        |
 |                                                                                        |
@@ -63,11 +63,11 @@ Ces m
 |     Retourne une instance de la classe ``boundary`` analytique de type conique         |
 |     après sa création                                                                  |
 |                                                                                        |
-|     - ``boundary_name`` : le nom de la frontière analytique basée sur un cone          |
-|     - ``Xc1``, ``Yc1``, ``Zc1`` : coordonnées du premier centre du cone                |
-|     - ``R1`` : rayon du cone à la hauteur du premier centre                            |
-|     - ``Xc2``, ``Yc2``, ``Zc2`` : coordonnées du second centre du cone                 |
-|     - ``R2`` : rayon du cone à la hauteur du second centre                             |
+|     - ``boundary_name`` : le nom de la frontière analytique basée sur un cône          |
+|     - ``Xc1``, ``Yc1``, ``Zc1`` : coordonnées du premier centre du cône                |
+|     - ``R1`` : rayon du cône à la hauteur du premier centre                            |
+|     - ``Xc2``, ``Yc2``, ``Zc2`` : coordonnées du second centre du cône                 |
+|     - ``R2`` : rayon du cône à la hauteur du second centre                             |
 +----------------------------------------------------------------------------------------+
 
 +---------------------------------------------------------------+
@@ -131,8 +131,8 @@ M
 |         * 0 : discrète                                        |
 |         * 1 : cylindre                                        |
 |         * 2 : sphère                                          |
-|         * 3 : cone défini par un axe et un angle              |
-|         * 4 : cone défini par deux rayons                     |
+|         * 3 : cône défini par un axe et un angle              |
+|         * 4 : cône défini par deux rayons                     |
 +---------------------------------------------------------------+
 | .. module:: GetCoords                                         |
 |                                                               |
index 3e153d80f3a96b6c0669cec62b679cbe634748a9..facb35fe951230b37a5bca3053ac58c16a5e1962 100644 (file)
@@ -161,7 +161,13 @@ G
 | .. module:: GetFileInfo                                       |
 |                                                               |
 | **GetFileInfo()**                                             |
-|     Retourne le nom du fichier contenant l'abalyse du maillage|
+|     Retourne le nom du fichier contenant l'analyse du maillage|
++---------------------------------------------------------------+
+| .. module:: GetDirName                                        |
+|                                                               |
+| **GetDirName()**                                              |
+|     Retourne le nom du répertoire des résutats associé à      |
+|     l'itération                                               |
 +---------------------------------------------------------------+
 | .. index:: single: Delete                                     |
 |                                                               |
index 468db6d74b7819326933ce01f4758ede87201b5d..5ff23f748417dfdf457c82ed7ce66191db614f03 100644 (file)
@@ -15,7 +15,7 @@
             <component-username>HOMARD</component-username>
             <component-type>OTHER</component-type>
             <component-author>HOMARD team - EDF RD</component-author>
-            <component-version>1.3</component-version>
+            <component-version>1.4</component-version>
             <component-comment>unknown</component-comment>
             <component-multistudy>1</component-multistudy>
             <component-impltype>1</component-impltype>
                         <DataStream-list></DataStream-list>
                     </component-service>
                     <component-service>
-                        <service-name>CreateHypothesis</service-name>
+                        <service-name>CreateCaseFromIteration</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
                         <service-version>1.1</service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                             <inParameter>
-                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>DirNameStart</inParameter-name>
                                 <inParameter-type>string</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
-                                <outParameter-type>HOMARD/HOMARD_Hypothesis</outParameter-type>
+                                <outParameter-type>HOMARD/HOMARD_Cas</outParameter-type>
                                 <outParameter-comment>unknown</outParameter-comment>
                             </outParameter>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
                     <component-service>
-                        <service-name>CreateZoneBox</service-name>
+                        <service-name>CreateCaseFromCaseLastIteration</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
                         <service-version>1.1</service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                             <inParameter>
-                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-name>CaseName</inParameter-name>
                                 <inParameter-type>string</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                             <inParameter>
-                                <inParameter-name>Xmini</inParameter-name>
-                                <inParameter-type>double</inParameter-type>
-                                <inParameter-comment>unknown</inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-name>Xmaxi</inParameter-name>
-                                <inParameter-type>double</inParameter-type>
+                                <inParameter-name>DirNameStart</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateCaseFromCaseIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
                             <inParameter>
-                                <inParameter-name>Ymini</inParameter-name>
-                                <inParameter-type>double</inParameter-type>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                             <inParameter>
-                                <inParameter-name>Ymaxi</inParameter-name>
-                                <inParameter-type>double</inParameter-type>
+                                <inParameter-name>DirNameStart</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                             <inParameter>
-                                <inParameter-name>Zmini</inParameter-name>
-                                <inParameter-type>double</inParameter-type>
+                                <inParameter-name>Number</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateHypothesis</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
                             <inParameter>
-                                <inParameter-name>Zmaxi</inParameter-name>
-                                <inParameter-type>double</inParameter-type>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                         </inParameter-list>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
-                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-type>HOMARD/HOMARD_Hypothesis</outParameter-type>
                                 <outParameter-comment>unknown</outParameter-comment>
                             </outParameter>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
                     <component-service>
-                        <service-name>CreateZoneSphere</service-name>
+                        <service-name>CreateZoneBox</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
                         <service-version>1.1</service-version>
                         <service-comment>unknown</service-comment>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                             <inParameter>
-                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-name>Xmini</inParameter-name>
                                 <inParameter-type>double</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                             <inParameter>
-                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-name>Xmaxi</inParameter-name>
                                 <inParameter-type>double</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                             <inParameter>
-                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-name>Ymini</inParameter-name>
                                 <inParameter-type>double</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                             <inParameter>
-                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-name>Ymaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zmini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zmaxi</inParameter-name>
                                 <inParameter-type>double</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>CreateZoneSphere</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>CreateZoneBox2D</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryConeA</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BoundaryName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Angle</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryConeR</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BoundaryName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>GetCase</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
                         <outParameter-list></outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>PublishResultInSmesh</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Option</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MeshInfo</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>MeshName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>DirName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Qual</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Diam</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Conn</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Tail</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Inte</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                 </component-service-list>
             </component-interface-list>
         </component>
index 5847e41eab01c8e80c41377362952af8c214ca90..dafec4492e8792b5bd93e80a6b1547c8958093ce 100644 (file)
@@ -48,7 +48,9 @@ module HOMARD
     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
 
 // Caracteristiques
-    void     SetDirName(in string NomDir)                  raises (SALOME::SALOME_Exception);
+    void     SetDirNameLoc(in string NomDir)               raises (SALOME::SALOME_Exception);
+    string   GetDirNameLoc()                               raises (SALOME::SALOME_Exception);
+
     string   GetDirName()                                  raises (SALOME::SALOME_Exception);
 
     void     SetNumber(in long NumIter)                    raises (SALOME::SALOME_Exception);
index 260fc8c65d68c6edd6c68437d2719d5b6c1de604..bac71ed72431422618819dfaff55fc32985ca488 100644 (file)
@@ -52,7 +52,7 @@
             <component-username>HOMARD</component-username>
             <component-type>OTHER</component-type>
             <component-author>HOMARD team - EDF RD</component-author>
-            <component-version>1.1</component-version>
+            <component-version>1.4</component-version>
             <component-comment>unknown</component-comment>
             <component-multistudy>1</component-multistudy>
             <component-impltype>1</component-impltype>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>CreateCaseFromIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>DirNameStart</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateCaseFromCaseLastIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>DirNameStart</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateCaseFromCaseIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>DirNameStart</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Number</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>CreateHypothesis</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryConeA</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BoundaryName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Angle</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryConeR</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BoundaryName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius1</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius2</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>GetCase</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
                         <outParameter-list></outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>PublishResultInSmesh</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Option</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MeshInfo</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>MeshName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>DirName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Qual</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Diam</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Conn</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Tail</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Inte</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                 </component-service-list>
             </component-interface-list>
         </component>
index 138b740d6ba55cf2ef032d345074f14467d766b8..faf775530cd7554044cf2b092326478c2d0cf934 100644 (file)
@@ -34,7 +34,7 @@
 namespace HOMARD
 {
 
-  const char* const SEPARATOR = "|";
+  std::string SEPARATOR = "|" ;
 
   /*!
     \brief Read next chunk of data from the string
@@ -90,7 +90,7 @@ namespace HOMARD
   */
   std::string separator()
   {
-    return std::string( SEPARATOR );
+    return SEPARATOR ;
   }
 
 // =======================
@@ -171,7 +171,7 @@ namespace HOMARD
 
     os << separator() << iteration.GetHypoName();
     os << separator() << iteration.GetCaseName();
-    os << separator() << iteration.GetDirName();
+    os << separator() << iteration.GetDirNameLoc();
 
     saux = os.str();
 //     MESSAGE( ". Fin avec "<<saux);
@@ -469,7 +469,7 @@ namespace HOMARD
     iteration.SetCaseName( chunk.c_str() );
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
-    iteration.SetDirName( chunk.c_str() );
+    iteration.SetDirNameLoc( chunk.c_str() );
     return true;
   }
 
index eff38ebb38a5f7f2d5f96e32a4885a7146a8e47b..b9f42d9221bd87f2f36c7d4c92cc4f08e0d58ba8 100644 (file)
@@ -123,12 +123,12 @@ std::string HOMARD_Iteration::GetDumpPython() const
 // Caracteristiques
 //=============================================================================
 //=============================================================================
-void HOMARD_Iteration::SetDirName( const char* NomDir )
+void HOMARD_Iteration::SetDirNameLoc( const char* NomDir )
 {
   _NomDir = std::string( NomDir );
 }
 //=============================================================================
-std::string HOMARD_Iteration::GetDirName() const
+std::string HOMARD_Iteration::GetDirNameLoc() const
 {
    return _NomDir;
 }
index 64b95393825f928d915de42cd9ec2e41d985ac26..3c76a195a81d3b0e20dc3504f0419f59226628bc 100644 (file)
@@ -50,8 +50,8 @@ public:
   std::string                   GetDumpPython() const;
 
 // Caracteristiques
-  void                          SetDirName( const char* NomDir );
-  std::string                   GetDirName() const;
+  void                          SetDirNameLoc( const char* NomDir );
+  std::string                   GetDirNameLoc() const;
 
   void                          SetNumber( int NumIter );
   int                           GetNumber() const;
index a242174be76e780527ce84c14d0661ab193cb52d..35514cbb8a782926735134dd1ec7f15e4a1a37d9 100644 (file)
@@ -36,25 +36,24 @@ HomardDriver::HomardDriver(const std::string siter, const std::string siterp1):
   _NomFichierConf( "" ), _NomFichierDonn( "" ), _siter( "" ), _siterp1( "" ),
   _Texte( "" ), _bLu( false )
 {
+  MESSAGE("siter = "<<siter<<", siterp1 = "<<siterp1);
+// Le repertoire ou se trouve l'executable HOMARD
+  std::string dir ;
+  if ( getenv("HOMARD_REP_EXE_PRIVATE") != NULL ) { dir = getenv("HOMARD_REP_EXE_PRIVATE") ; }
+  else                                            { dir = getenv("HOMARD_REP_EXE") ; }
+  MESSAGE("dir ="<<dir);
+// L'executable HOMARD
+  std::string executable ;
+  if ( getenv("HOMARD_EXE_PRIVATE") != NULL ) { executable = getenv("HOMARD_EXE_PRIVATE") ; }
+  else                                        { executable = getenv("HOMARD_EXE") ; }
+  MESSAGE("executable ="<<executable);
 // Memorisation du nom complet de l'executable HOMARD
-  char* dirchar; char* execchar;
-  std::string dir;
-  std::string executable;
-  if ( !(dirchar = getenv("HOMARD_REP_EXE_PRIVATE")) )
-  { dirchar = getenv("HOMARD_REP_EXE") ; }
-  dir = std::string(dirchar);
-  MESSAGE("HomardDriver, dirchar ="<<dirchar<<", dir ="<<dir);
-  if ( !(execchar = getenv("HOMARD_EXE_PRIVATE")) )
-  { execchar = getenv("HOMARD_EXE"); }
-  executable = std::string(execchar);
-  MESSAGE("HomardDriver, execchar ="<<execchar<<", executable ="<<executable);
   _HOMARD_Exec = dir + "/" + executable ;
-  MESSAGE("HomardDriver, _HOMARD_Exec ="<<_HOMARD_Exec);
+  MESSAGE("==> _HOMARD_Exec ="<<_HOMARD_Exec) ;
 //
   _siter = siter ;
   _siterp1 = siterp1 ;
 }
-
 //=============================================================================
 //=============================================================================
 HomardDriver::~HomardDriver()
index 12eab8e3b9fe1b182418edd5d5337b496a5bfbf7..440c580896f79974467b1cc00a857fafc053a092 100644 (file)
         <source>Iteration number</source>
         <translation>A partir d'une itération numérotée</translation>
     </message>
+    <message>
+        <source>The directory of the case does not exist.</source>
+        <translation>Le répertoire du cas n'existe pas.</translation>
+    </message>
     <message>
         <source>The directory for the case cannot be modified because some iterations are already defined.</source>
         <translation>Impossible de changer le répertoire du cas car des itérations ont déjà été définies.</translation>
         <translation>Impossible de déplacer le point de départ du cas dans le nouveau répertoire.</translation>
     </message>
     <message>
-        <source>This directory of the case does not exist.</source>
+        <source>The directory of the case for the pursuit does not exist.</source>
         <translation>Le répertoire du cas de reprise n'existe pas.</translation>
     </message>
     <message>
index 595e66d04ff41bce151989f20995a6c8b56ecaa4..188b6ed665bdc65e2f9054b04a8e314341e1fab5 100644 (file)
@@ -201,8 +201,6 @@ QString HOMARD_QT_COMMUN::PushNomFichier(bool avertir)
   return aFile;
 
 }
-
-
 // =======================================================================
 int HOMARD_QT_COMMUN::OuvrirFichier(QString aFile)
 // =======================================================================
@@ -221,21 +219,40 @@ int HOMARD_QT_COMMUN::OuvrirFichier(QString aFile)
 QString HOMARD_QT_COMMUN::LireNomMaillage(QString aFile)
 // ========================================================
 {
-  med_int medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
-  med_int numberOfMeshes = MEDnMesh(medIdt) ;
-  if (numberOfMeshes == 0 )
-  {
-    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                              QObject::tr("HOM_MED_FILE_2") );
-  }
-  if (numberOfMeshes > 1 )
+  QString nomMaillage = "" ;
+  int erreur = 0 ;
+  med_int medIdt ;
+  while ( erreur == 0 )
   {
-    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                              QObject::tr("HOM_MED_FILE_3") );
+    //  Ouverture du fichier
+    medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
+    if ( medIdt < 0 )
+    {
+      erreur = 1 ;
+      break ;
+    }
+    med_int numberOfMeshes = MEDnMesh(medIdt) ;
+    if (numberOfMeshes == 0 )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_MED_FILE_2") );
+      erreur = 2 ;
+      break ;
+    }
+    if (numberOfMeshes > 1 )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_MED_FILE_3") );
+      erreur = 3 ;
+      break ;
+    }
+
+    nomMaillage = HOMARD_QT_COMMUN::LireNomMaillage(medIdt,1);
+    break ;
   }
+  // Fermeture du fichier
+  if ( medIdt > 0 ) MEDfileClose(medIdt);
 
-  QString nomMaillage= HOMARD_QT_COMMUN::LireNomMaillage(medIdt,1);
-  MEDfileClose(medIdt);
   return nomMaillage;
 }
 // =======================================================================
@@ -268,15 +285,13 @@ QString HOMARD_QT_COMMUN::LireNomMaillage(int medIdt ,int meshId)
                           axisname,
                           axisunit);
 
-  if ( aRet < 0 )
-  {
-  QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                            QObject::tr("HOM_MED_FILE_4") );
-  }
-  else
-  {
-    NomMaillage=QString(meshname);
-  }
+  if ( aRet < 0 ) { QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), \
+                                              QObject::tr("HOM_MED_FILE_4") );  }
+  else            { NomMaillage=QString(meshname); }
+
+  delete[] axisname ;
+  delete[] axisunit ;
+
   return NomMaillage;
 }
 
@@ -288,53 +303,60 @@ std::list<QString> HOMARD_QT_COMMUN::GetListeChamps(QString aFile)
 // Il faut voir si plusieurs maillages
 
   MESSAGE("GetListeChamps");
-  std::list<QString> ListeChamp;
-
-  char *comp, *unit;
-  char nomcha  [MED_NAME_SIZE+1];
-  char meshname[MED_NAME_SIZE+1];
-  med_field_type typcha;
-  med_int ncomp;
-  med_bool local;
-  med_int nbofcstp;
-
-  SCRUTE(aFile.toStdString());
-  med_int medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
-  if ( medIdt < 0 ) { return ListeChamp; }
-
-  // Le fichier Med est lisible
-  // Lecture du maillage
+  std::list<QString> ListeChamp ;
 
-  // Lecture du nombre de champs
-  med_int ncha = MEDnField(medIdt) ;
-  if (ncha < 1 )
-  {
-    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                              QObject::tr("HOM_MED_FILE_5") );
-    MEDfileClose(medIdt);
-    return ListeChamp;
-  }
+  med_err erreur = 0 ;
+  med_int medIdt ;
 
-  for (int i=0; i< ncha; i++)
+  while ( erreur == 0 )
   {
-    /* Lecture du type du champ, des noms des composantes et du nom de l'unite*/
-    ncomp = MEDfieldnComponent(medIdt,i+1);
-    comp = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
-    unit = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
-    char dtunit[MED_SNAME_SIZE+1];
-    if ( MEDfieldInfo(medIdt,i+1,nomcha,meshname,&local,&typcha,comp,unit,dtunit,&nbofcstp) < 0 )
+    // Ouverture du fichier
+    SCRUTE(aFile.toStdString());
+    medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
+    if ( medIdt < 0 )
+    {
+      erreur = 1 ;
+      break ;
+    }
+  // Lecture du nombre de champs
+    med_int ncha = MEDnField(medIdt) ;
+    if (ncha < 1 )
     {
       QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                                QObject::tr("HOM_MED_FILE_6") );
-      MEDfileClose(medIdt);
-      return ListeChamp;
+                                QObject::tr("HOM_MED_FILE_5") );
+      erreur = 2 ;
+      break ;
     }
-
-    ListeChamp.push_back(QString(nomcha));
-    free(comp);
-    free(unit);
+  // Lecture des caracteristiques des champs
+    for (int i=0; i< ncha; i++)
+    {
+//       Lecture du nombre de composantes
+      med_int ncomp = MEDfieldnComponent(medIdt,i+1);
+//       Lecture du type du champ, des noms des composantes et du nom de l'unite
+      char nomcha  [MED_NAME_SIZE+1];
+      char meshname[MED_NAME_SIZE+1];
+      char * comp = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+      char * unit = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+      char dtunit[MED_SNAME_SIZE+1];
+      med_bool local;
+      med_field_type typcha;
+      med_int nbofcstp;
+      erreur = MEDfieldInfo(medIdt,i+1,nomcha,meshname,&local,&typcha,comp,unit,dtunit,&nbofcstp) ;
+      free(comp);
+      free(unit);
+      if ( erreur < 0 )
+      {
+        QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                  QObject::tr("HOM_MED_FILE_6") );
+        break ;
+      }
+      ListeChamp.push_back(QString(nomcha));
+    }
+    break ;
   }
-  MEDfileClose(medIdt);
+  // Fermeture du fichier
+  if ( medIdt > 0 ) MEDfileClose(medIdt);
+
   return ListeChamp;
 }
 
@@ -347,61 +369,71 @@ std::list<QString> HOMARD_QT_COMMUN::GetListeComposants(QString aFile, QString a
 
   std::list<QString> ListeComposants;
 
-  char *comp, *unit;
-  char nomcha  [MED_NAME_SIZE+1];
-  char meshname[MED_NAME_SIZE+1];
-  med_field_type typcha;
-  med_int ncomp;
-  med_bool local;
-  med_int nbofcstp;
-
-  int medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
-  if ( medIdt < 0 ) { return ListeComposants; }
+  med_err erreur = 0 ;
+  med_int medIdt ;
 
-
-  // Lecture du nombre de champs
-  med_int ncha = MEDnField(medIdt) ;
-  if (ncha < 1 )
-  {
-    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                              QObject::tr("HOM_MED_FILE_5") );
-    MEDfileClose(medIdt);
-    return ListeComposants;
-  }
-
-  for (int i=0; i< ncha; i++)
+  while ( erreur == 0 )
   {
-    /* Lecture du type du champ, des noms des composantes et du nom de l'unite*/
-    ncomp = MEDfieldnComponent(medIdt,i+1);
-    comp = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
-    unit = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
-    char dtunit[MED_SNAME_SIZE+1];
-
-    if ( MEDfieldInfo(medIdt,i+1,nomcha,meshname,&local,&typcha,comp,unit,dtunit,&nbofcstp) < 0 )
+    // Ouverture du fichier
+    SCRUTE(aFile.toStdString());
+    medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
+    if ( medIdt < 0 )
     {
-      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                                QObject::tr("HOM_MED_FILE_6") );
-      MEDfileClose(medIdt);
-      return ListeComposants;
+      erreur = 1 ;
+      break ;
     }
-
-    if ( QString(nomcha) != aChamp ) {
-      free(comp);
-      free(unit);
-      continue;
+  // Lecture du nombre de champs
+    med_int ncha = MEDnField(medIdt) ;
+    if (ncha < 1 )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_MED_FILE_5") );
+      erreur = 2 ;
+      break ;
     }
-
-    for (int j = 0; j <ncomp; j++)
+  // Lecture des caracteristiques des champs
+    for (int i=0; i< ncha; i++)
     {
-      char cible[MED_SNAME_SIZE +1];
-      strncpy(cible,comp+j*MED_SNAME_SIZE,MED_SNAME_SIZE );
-      cible[MED_SNAME_SIZE ]='\0';
-      ListeComposants.push_back(QString(cible));
+//       Lecture du nombre de composantes
+      med_int ncomp = MEDfieldnComponent(medIdt,i+1);
+//       Lecture du type du champ, des noms des composantes et du nom de l'unite
+      char nomcha  [MED_NAME_SIZE+1];
+      char meshname[MED_NAME_SIZE+1];
+      char * comp = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+      char * unit = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+      char dtunit[MED_SNAME_SIZE+1];
+      med_bool local;
+      med_field_type typcha;
+      med_int nbofcstp;
+      erreur = MEDfieldInfo(medIdt,i+1,nomcha,meshname,&local,&typcha,comp,unit,dtunit,&nbofcstp) ;
+      free(unit);
+      if ( erreur < 0 )
+      {
+        free(comp);
+        QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                  QObject::tr("HOM_MED_FILE_6") );
+        break ;
+      }
+      // Lecture des composantes si c'est le bon champ
+      if ( QString(nomcha) == aChamp )
+      {
+        for (int j = 0; j <ncomp; j++)
+        {
+          char cible[MED_SNAME_SIZE +1];
+          strncpy(cible,comp+j*MED_SNAME_SIZE,MED_SNAME_SIZE );
+          cible[MED_SNAME_SIZE ]='\0';
+          ListeComposants.push_back(QString(cible));
+        }
+      }
+      // Menage
+      free(comp);
+      // Sortie si c'est bon
+      if ( QString(nomcha) == aChamp ) { break ; }
     }
-    break;
+    break ;
   }
-  free(comp);
-  free(unit);
-  MEDfileClose(medIdt);
+  // Fermeture du fichier
+  if ( medIdt > 0 ) MEDfileClose(medIdt);
+
   return ListeComposants;
 }
index ace8e1e6ca60024ce1826de0124221394e1da6ff..f46b58942a34056209cead54a325a370ec0aef2b 100644 (file)
@@ -160,8 +160,7 @@ bool MonCreateIteration::PushOnApply()
     }
   }
 // Mise en place des attributs
-  const char* IterName = aIter->GetName() ;
-  std::cerr << IterName << std::endl;
+  std::string IterName = aIter->GetName() ;
 
   if ( LEFieldFile->text().trimmed() != QString(""))
   {
@@ -172,7 +171,7 @@ bool MonCreateIteration::PushOnApply()
     if ( step == -2 ) { aIter->SetTimeStepRankLast(); }
     else              { aIter->SetTimeStepRank(step,rank); }
   }
-  _myHomardGen->AssociateIterHypo (IterName, monHypoName.toStdString().c_str());
+  _myHomardGen->AssociateIterHypo (IterName.c_str(), monHypoName.toStdString().c_str());
   aIter->SetMeshName(CORBA::string_dup(aMeshName_np1.toStdString().c_str()));
 
   HOMARD_UTILS::updateObjBrowser() ;
index ff5491ab239ebbeb4a71d102a114663e8405ab52..3660bfc3e98625b20fab9a62e668f4232b7ecfbf 100755 (executable)
@@ -136,7 +136,7 @@ void HOMARD_Cas_i::SetDirName( const char* NomDir )
     MESSAGE ( "etat : " << GetState() ) ;
     char* Iter0Name = GetIter0Name() ;
     HOMARD::HOMARD_Iteration_ptr Iter = _gen_i->GetIteration(Iter0Name) ;
-    char* DirNameIter = Iter->GetDirName() ;
+    char* DirNameIter = Iter->GetDirNameLoc() ;
     std::string commande = "mv " + std::string(oldrep) + "/" + std::string(DirNameIter) + " " + std::string(NomDir) ;
     codret = system(commande.c_str()) ;
     if ( codret != 0 )
index bc40259decb4fd94353996a42e96a15c21f3fcbb..20242f2454fb1a729a4bf40851acbaf6ad44bba0 100755 (executable)
@@ -187,14 +187,14 @@ void HOMARD_Gen_i::SetEtatIter(const char* nomIter, const CORBA::Long Etat)
   SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
   SALOMEDS::SObject_var aIterSO = SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(myIteration)));
 
-  const char* icone ;
+  std::string icone ;
   if ( Etat <= 0 )
     icone = "iter0.png" ;
   else if ( Etat == 2 )
     icone = "iter_calculee.png" ;
   else
     icone = "iter_non_calculee.png" ;
-  PublishInStudyAttr(aStudyBuilder, aIterSO, NULL , NULL, icone, NULL) ;
+  PublishInStudyAttr(aStudyBuilder, aIterSO, NULL , NULL, icone.c_str(), NULL) ;
 
   aStudyBuilder->CommitCommand();
 
@@ -590,10 +590,9 @@ void HOMARD_Gen_i::InvalideIterOption(const char* nomIter, CORBA::Long Option)
         throw SALOME::SALOME_Exception(es);
         return ;
     };
-    const char* dirCase    = myCase->GetDirName();
     const char* nomDir     = myIteration->GetDirName();
     const char* nomFichier = myIteration->GetMeshFile();
-    std::string commande= "rm -rf " + std::string(dirCase) + "/" + std::string(nomDir);
+    std::string commande= "rm -rf " + std::string(nomDir);
     if ( Option == 1 ) { commande = commande + ";rm -rf " + std::string(nomFichier) ; }
     MESSAGE ( "commande = " << commande );
     if ((system(commande.c_str())) != 0)
@@ -651,10 +650,9 @@ void HOMARD_Gen_i::InvalideIterInfo(const char* nomIter)
       throw SALOME::SALOME_Exception(es);
       return ;
   };
-  const char* dirCase  = myCase->GetDirName();
   const char* nomDir   = myIteration->GetDirName();
-  std::string commande = "rm -f " + std::string(dirCase) + "/" + std::string(nomDir) + "/info* " ;
-  commande += std::string(dirCase) + "/" + std::string(nomDir) + "/Liste.*info" ;
+  std::string commande = "rm -f " + std::string(nomDir) + "/info* " ;
+  commande += std::string(nomDir) + "/Liste.*info" ;
 /*  MESSAGE ( "commande = " << commande );*/
   if ((system(commande.c_str())) != 0)
   {
@@ -1097,7 +1095,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
 //
 {
   MESSAGE ( "CreateCaseFromIteration : nomCas = " << nomCas << ", DirNameStart = " << DirNameStart );
-  char* nomDirWork = getenv("PWD") ;
+  std::string nomDirWork = getenv("PWD") ;
   int codret ;
 
   // A. Decodage du point de reprise
@@ -1246,7 +1244,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
   IterName = myCase->GetIter0Name() ;
   HOMARD::HOMARD_Iteration_var Iter = GetIteration(IterName) ;
   char* nomDirIter = CreateDirNameIter(nomDirCase, 0 );
-  Iter->SetDirName(nomDirIter);
+  Iter->SetDirNameLoc(nomDirIter);
   std::string nomDirIterTotal ;
   nomDirIterTotal = std::string(nomDirCase) + "/" + std::string(nomDirIter) ;
   if (mkdir(nomDirIterTotal.c_str(), S_IRWXU|S_IRGRP|S_IXGRP) != 0)
@@ -1278,7 +1276,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
   delete[] MeshName ;
   delete[] MeshFile ;
 
-  chdir(nomDirWork);
+  chdir(nomDirWork.c_str());
 
   return HOMARD::HOMARD_Cas::_duplicate(myCase);
 }
@@ -1343,7 +1341,7 @@ std::string HOMARD_Gen_i::CreateCase1(const char* DirNameStart, CORBA::Long Numb
   {
     SALOME::ExceptionStruct es;
     es.type = SALOME::BAD_PARAM;
-    es.text = "This directory of the case does not exist.";
+    es.text = "The directory of the case for the pursuit does not exist.";
     throw SALOME::SALOME_Exception(es);
     return 0;
   };
@@ -1652,7 +1650,7 @@ HOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration(const char* NomIterat
 // la creation d'un sous-repertoire unique
   int nbitercase = myCase->GetNumberofIter();
   char* nomDirIter = CreateDirNameIter(nomDirCase, nbitercase );
-  myIteration->SetDirName(nomDirIter);
+  myIteration->SetDirNameLoc(nomDirIter);
 
 // Le nom du fichier du maillage MED est indice par le nombre d'iterations du cas.
 // Si on a une chaine unique depuis le depart, ce nombre est le meme que le
@@ -2194,7 +2192,7 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
 
   // B. Les repertoires
   // B.1. Le repertoire courant
-  char* nomDirWork = getenv("PWD") ;
+  std::string nomDirWork = getenv("PWD") ;
   // B.2. Le sous-repertoire de l'iteration a traiter
   char* DirCompute = ComputeDirManagement(myCase, myIteration, etatMenage);
   MESSAGE( ". DirCompute = " << DirCompute );
@@ -2330,7 +2328,7 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
   {
     delete myDriver;
     MESSAGE ( ". On retourne dans nomDirWork = " << nomDirWork );
-    chdir(nomDirWork);
+    chdir(nomDirWork.c_str());
   }
 
   return codretexec ;
@@ -2497,14 +2495,24 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
   return codret ;
 }
 //=============================================================================
-// Creation d'un nom de sous-repertoire pour l'iteration au sein d'un repertoire
+// Creation d'un nom de sous-repertoire pour l'iteration au sein d'un repertoire parent
 //  nomrep : nom du repertoire parent
 //  num : le nom du sous-repertoire est sous la forme 'In', n est >= num
 //=============================================================================
 char* HOMARD_Gen_i::CreateDirNameIter(const char* nomrep, CORBA::Long num )
 {
   MESSAGE ( "CreateDirNameIter : nomrep ="<< nomrep << ", num = "<<num);
-  char* nomDirActuel = getenv("PWD") ;
+  // On verifie que le repertoire parent existe
+  int codret = chdir(nomrep) ;
+  if ( codret != 0 )
+  {
+    SALOME::ExceptionStruct es;
+    es.type = SALOME::BAD_PARAM;
+    es.text = "The directory of the case does not exist.";
+    throw SALOME::SALOME_Exception(es);
+    return 0;
+  };
+  std::string nomDirActuel = getenv("PWD") ;
   std::string DirName ;
   // On boucle sur tous les noms possibles jusqu'a trouver un nom correspondant a un repertoire inconnu
   bool a_chercher = true ;
@@ -2549,7 +2557,7 @@ char* HOMARD_Gen_i::CreateDirNameIter(const char* nomrep, CORBA::Long num )
 
   MESSAGE ( "==> DirName = " << DirName);
   MESSAGE ( ". On retourne dans nomDirActuel = " << nomDirActuel );
-  chdir(nomDirActuel);
+  chdir(nomDirActuel.c_str());
 
   return CORBA::string_dup( DirName.c_str() );
 }
@@ -2569,7 +2577,7 @@ char* HOMARD_Gen_i::ComputeDirManagement(HOMARD::HOMARD_Cas_var myCase, HOMARD::
 
   // B.3. Le sous-repertoire de l'iteration a calculer, puis le repertoire complet a creer
   // B.3.1. Le nom du sous-repertoire
-  const char* nomDirIt = myIteration->GetDirName();
+  const char* nomDirIt = myIteration->GetDirNameLoc();
 
   // B.3.2. Le nom complet du sous-repertoire
   std::stringstream DirCompute ;
@@ -2647,7 +2655,7 @@ char* HOMARD_Gen_i::ComputeDirPaManagement(HOMARD::HOMARD_Cas_var myCase, HOMARD
 
   const char* nomIterationParent = myIteration->GetIterParentName();
   HOMARD::HOMARD_Iteration_var myIterationParent = myContextMap[GetCurrentStudyID()]._mesIterations[nomIterationParent];
-  const char* nomDirItPa = myIterationParent->GetDirName();
+  const char* nomDirItPa = myIterationParent->GetDirNameLoc();
   std::stringstream DirComputePa ;
   DirComputePa << nomDirCase << "/" << nomDirItPa;
   MESSAGE( ". nomDirItPa = " << nomDirItPa);
@@ -3019,7 +3027,7 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishZoneInStudy(SALOMEDS::Study_ptr theSt
   else { MESSAGE("La categorie des zones existe deja."); }
 
   aResultSO = aStudyBuilder->NewObject(aSOZone);
-  const char* icone ;
+  std::string icone ;
   switch (ZoneType)
   {
     case 11 :
@@ -3063,7 +3071,7 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishZoneInStudy(SALOMEDS::Study_ptr theSt
       break ;
     }
   }
-  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "ZoneHomard", icone, _orb->object_to_string(theObject) ) ;
+  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "ZoneHomard", icone.c_str(), _orb->object_to_string(theObject) ) ;
 
   return aResultSO._retn();
 }
@@ -3100,8 +3108,8 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishBoundaryInStudy(SALOMEDS::Study_ptr t
   aResultSO = aStudyBuilder->NewObject(aSOBoundary);
   CORBA::Long BoundaryType = myBoundary->GetType();
 //   MESSAGE("BoundaryType : "<<BoundaryType);
-  const char* icone ;
-  const char* value ;
+  std::string icone ;
+  std::string value ;
   switch (BoundaryType)
   {
     case 0 :
@@ -3130,7 +3138,7 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishBoundaryInStudy(SALOMEDS::Study_ptr t
       break;
     }
   }
-  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, value, icone, _orb->object_to_string(theObject));
+  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, value.c_str(), icone.c_str(), _orb->object_to_string(theObject));
   return aResultSO._retn();
 }
 
@@ -3399,13 +3407,13 @@ void HOMARD_Gen_i::PublishFileUnderIteration(const char* NomIter, const char* No
 // Pour les fichiers med, on affiche une icone de maillage
 // Pour les fichiers qui sont texte, on affiche une icone de fichier texte 'texte'
 // Le reperage se fait par la 1ere lettre du commentaire : I pour Iteration n
-  const char* icone ;
-  const char* ior = " " ;
+  std::string icone ;
+  std::string ior = " " ;
   if ( Commentaire[0] == 'I' )
   { icone = "med.png" ; }
   else
   { icone = "texte_2.png" ; }
-  PublishInStudyAttr(aStudyBuilder, aSubSO, NomFich, Commentaire, icone, ior ) ;
+  PublishInStudyAttr(aStudyBuilder, aSubSO, NomFich, Commentaire, icone.c_str(), ior.c_str() ) ;
 
   aStudyBuilder->CommitCommand();
 }
index 6ccffbbd3de46ee79c632b6c3da4fa209dc93208..136228c1e2356e3319d652c4f8135e0f8962fa25 100644 (file)
@@ -112,16 +112,26 @@ bool HOMARD_Iteration_i::Restore( const std::string& stream )
 // Caracteristiques
 //=============================================================================
 //=============================================================================
-void HOMARD_Iteration_i::SetDirName( const char* NomDir )
+void HOMARD_Iteration_i::SetDirNameLoc( const char* NomDir )
 {
   ASSERT( myHomardIteration );
-  myHomardIteration->SetDirName( NomDir );
+  myHomardIteration->SetDirNameLoc( NomDir );
+}
+//=============================================================================
+char* HOMARD_Iteration_i::GetDirNameLoc()
+{
+  ASSERT( myHomardIteration );
+  return CORBA::string_dup( myHomardIteration->GetDirNameLoc().c_str() );
 }
 //=============================================================================
 char* HOMARD_Iteration_i::GetDirName()
 {
   ASSERT( myHomardIteration );
-  return CORBA::string_dup( myHomardIteration->GetDirName().c_str() );
+  std::string casename = myHomardIteration->GetCaseName() ;
+  HOMARD::HOMARD_Cas_ptr caseiter = _gen_i->GetCase(casename.c_str()) ;
+  std::string dirnamecase = caseiter->GetDirName() ;
+  std::string dirname = dirnamecase + "/" +  GetDirNameLoc() ;
+  return CORBA::string_dup( dirname.c_str() );
 }
 //=============================================================================
 void HOMARD_Iteration_i::SetNumber( CORBA::Long NumIter )
index c29d5c4df01054070df782ad34c310426485dc5a..bf57bee90807f90fa79eeca4384fb8517c021aa7 100644 (file)
@@ -65,7 +65,9 @@ public:
   bool                   Restore( const std::string& stream );
 
 // Caracteristiques
-  void                   SetDirName( const char* NomDir );
+  void                   SetDirNameLoc( const char* NomDir );
+  char*                  GetDirNameLoc();
+
   char*                  GetDirName();
 
   void                   SetNumber( CORBA::Long NumIter );
index 19208d1a41edb8a1992618ee1c200c865165133d..7b22b6df4ede3355688034920f44e9fd5b70b952 100644 (file)
@@ -48,96 +48,99 @@ std::set<std::string> GetListeGroupesInMedFile(const char * aFile)
 // =======================================================================
 {
   std::set<std::string> ListeGroupes;
-  med_idt medIdt = MEDfileOpen(aFile,MED_ACC_RDONLY);
-  if ( medIdt < 0 ) { return ListeGroupes; };
-
-  char meshname[MED_NAME_SIZE+1];
-  med_int spacedim,meshdim;
-  med_mesh_type meshtype;
-  char descriptionription[MED_COMMENT_SIZE+1];
-  char dtunit[MED_SNAME_SIZE+1];
-  med_sorting_type sortingtype;
-  med_int nstep;
-  med_axis_type axistype;
-  int naxis = MEDmeshnAxis(medIdt,1);
-  char *axisname=new char[naxis*MED_SNAME_SIZE+1];
-  char *axisunit=new char[naxis*MED_SNAME_SIZE+1];
-  med_err aRet = MEDmeshInfo(medIdt,
-                          1,
-                          meshname,
-                          &spacedim,
-                          &meshdim,
-                          &meshtype,
-                          descriptionription,
-                          dtunit,
-                          &sortingtype,
-                          &nstep,
-                          &axistype,
-                          axisname,
-                          axisunit);
-   if ( aRet < 0 ) { return ListeGroupes; };
-
-   med_int nfam, ngro, natt;
-   if ((nfam = MEDnFamily(medIdt,meshname)) < 0) { return ListeGroupes; };
-
-  char familyname[MED_NAME_SIZE+1];
-  med_int numfam;
-  for (int i=0;i<nfam;i++)
+  med_err erreur = 0 ;
+  med_int medIdt ;
+  while ( erreur == 0 )
   {
-    if ((ngro = MEDnFamilyGroup(medIdt,meshname,i+1)) < 0)
+    //  Ouverture du fichier
+    medIdt = MEDfileOpen(aFile,MED_ACC_RDONLY);
+    if ( medIdt < 0 )
     {
-      // GERALD -- QMESSAGE BOX
-      std::cerr << " Error : Families are unreadable" << std::endl;
-      std::cerr << "Pb avec la famille : " << i+1 << std::endl;
-      break;
+      erreur = 1 ;
+      break ;
     }
-    if (ngro == 0) continue;
-
-    if ((natt = MEDnFamily23Attribute(medIdt,meshname,i+1)) < 0)
+    // Caracteristiques du maillage
+    char meshname[MED_NAME_SIZE+1];
+    med_int spacedim,meshdim;
+    med_mesh_type meshtype;
+    char descriptionription[MED_COMMENT_SIZE+1];
+    char dtunit[MED_SNAME_SIZE+1];
+    med_sorting_type sortingtype;
+    med_int nstep;
+    med_axis_type axistype;
+    int naxis = MEDmeshnAxis(medIdt,1);
+    char *axisname=new char[naxis*MED_SNAME_SIZE+1];
+    char *axisunit=new char[naxis*MED_SNAME_SIZE+1];
+    erreur = MEDmeshInfo(medIdt,
+                            1,
+                            meshname,
+                            &spacedim,
+                            &meshdim,
+                            &meshtype,
+                            descriptionription,
+                            dtunit,
+                            &sortingtype,
+                            &nstep,
+                            &axistype,
+                            axisname,
+                            axisunit);
+    delete[] axisname ;
+    delete[] axisunit ;
+    if ( erreur < 0 ) { break ; }
+    // Nombre de familles
+    med_int nfam ;
+    nfam = MEDnFamily(medIdt,meshname) ;
+    if ( nfam < 0 )
     {
-      // GERALD -- QMESSAGE BOX
-      std::cerr << " Error : Families are unreadable" << std::endl;
-      std::cerr << "Pb avec la famille : " << i+1 << std::endl;
-      break;
+      erreur = 2 ;
+      break ;
     }
-
-    med_int* attide = (med_int*) malloc(sizeof(med_int)*natt);
-    med_int* attval = (med_int*) malloc(sizeof(med_int)*natt);
-    char*    attdes = (char *)   malloc(MED_COMMENT_SIZE*natt+1);
-    char*    gro    = (char*)    malloc(MED_LNAME_SIZE*ngro+1);
-
-    med_err aRet = MEDfamily23Info(medIdt,
-                                meshname,
-                                i+1,
-                                familyname,
-                                attide,
-                                attval,
-                                attdes,
-                                &numfam,
-                                gro);
-
-    if (aRet < 0)
+  // Lecture des caracteristiques des familles
+    for (int i=0;i<nfam;i++)
     {
-      // GERALD -- QMESSAGE BOX
-      std::cerr << " Error : Families are unreadable" << std::endl;
-      std::cerr << "Pb avec la famille : " << i+1 << std::endl;
-        break;
+//       Lecture du nombre de groupes
+      med_int ngro = MEDnFamilyGroup(medIdt,meshname,i+1);
+      if ( ngro < 0 )
+      {
+        erreur = 3 ;
+        break ;
+      }
+//       Lecture de la famille
+      else if ( ngro > 0 )
+      {
+        char familyname[MED_NAME_SIZE+1];
+        med_int numfam;
+        char* gro = (char*) malloc(MED_LNAME_SIZE*ngro+1);
+        erreur = MEDfamilyInfo(medIdt,
+                               meshname,
+                               i+1,
+                               familyname,
+                               &numfam,
+                               gro);
+        if ( erreur < 0 )
+        {
+          free(gro);
+          break ;
+        }
+        // Lecture des groupes pour une famille de mailles
+        if ( numfam < 0)
+        {
+          for (int j=0;j<ngro;j++)
+          {
+            char str2[MED_LNAME_SIZE+1];
+            strncpy(str2,gro+j*MED_LNAME_SIZE,MED_LNAME_SIZE);
+            str2[MED_LNAME_SIZE] = '\0';
+            ListeGroupes.insert(std::string(str2));
+          }
+        }
+        free(gro);
+      }
     }
-    free(attide);
-    free(attval);
-    free(attdes);
-    if ((numfam )> 0) { continue;} // On ne garde que les familles d elts
-
-    for (int j=0;j<ngro;j++)
-    {
-      char str2[MED_LNAME_SIZE+1];
-      strncpy(str2,gro+j*MED_LNAME_SIZE,MED_LNAME_SIZE);
-      str2[MED_LNAME_SIZE] = '\0';
-      ListeGroupes.insert(std::string(str2));
-    }
-    free(gro);
+    break ;
   }
-  MEDfileClose(medIdt);
+  // Fermeture du fichier
+  if ( medIdt > 0 ) MEDfileClose(medIdt);
+
   return ListeGroupes;
 }
 
@@ -151,150 +154,145 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
 // en position 6 et 7 Zmin, Zmax et en position 8 Dz si < 0  2D
 //  9 distance max dans le maillage
 
-   std::vector<double> LesExtremes;
-
-   // Ouverture du Fichier Med
-   med_idt medIdt = MEDfileOpen(aFile,MED_ACC_RDONLY);
-   if (medIdt <0)
-   {
-          // GERALD -- QMESSAGE BOX
-          std::cerr << "Error : mesh is unreadable" << std::endl;
-          return LesExtremes;
-   }
-
-                                // Le fichier Med est lisible
-    // Boucle sur les noms de maillage
-   med_int numberOfMeshes = MEDnMesh(medIdt) ;
-   if (numberOfMeshes != 1 )
-   {
-          // GERALD -- QMESSAGE BOX
-          std::cerr << "Error : file contains more than one mesh" << std::endl;
-          return LesExtremes;
-   }
-
-  char meshname[MED_NAME_SIZE+1];
-  med_int spacedim,meshdim;
-  med_mesh_type meshtype;
-  char descriptionription[MED_COMMENT_SIZE+1];
-  char dtunit[MED_SNAME_SIZE+1];
-  med_sorting_type sortingtype;
-  med_int nstep;
-  med_axis_type axistype;
-  int naxis = MEDmeshnAxis(medIdt,1);
-  char *axisname=new char[naxis*MED_SNAME_SIZE+1];
-  char *axisunit=new char[naxis*MED_SNAME_SIZE+1];
-  med_err aRet = MEDmeshInfo(medIdt,
-                          1,
-                          meshname,
-                          &spacedim,
-                          &meshdim,
-                          &meshtype,
-                          descriptionription,
-                          dtunit,
-                          &sortingtype,
-                          &nstep,
-                          &axistype,
-                          axisname,
-                          axisunit);
-
-   if (aRet < 0)
-   {
-          // GERALD -- QMESSAGE BOX
-          std::cerr << "Error : mesh is unreadable" << std::endl;
-          return LesExtremes;
-   }
-
-  med_bool chgt,trsf;
-  med_int nnoe  = MEDmeshnEntity(medIdt,
+  std::vector<double> LesExtremes;
+  med_err erreur = 0 ;
+  med_int medIdt ;
+  while ( erreur == 0 )
+  {
+    //  Ouverture du fichier
+    medIdt = MEDfileOpen(aFile,MED_ACC_RDONLY);
+    if ( medIdt < 0 )
+    {
+      erreur = 1 ;
+      break ;
+    }
+    //Nombre de maillage : on ne peut en lire qu'un seul
+    med_int numberOfMeshes = MEDnMesh(medIdt) ;
+    if (numberOfMeshes != 1 )
+    {
+      erreur = 2 ;
+      break ;
+    }
+    // Caracteristiques du maillage
+    char meshname[MED_NAME_SIZE+1];
+    med_int spacedim,meshdim;
+    med_mesh_type meshtype;
+    char descriptionription[MED_COMMENT_SIZE+1];
+    char dtunit[MED_SNAME_SIZE+1];
+    med_sorting_type sortingtype;
+    med_int nstep;
+    med_axis_type axistype;
+    int naxis = MEDmeshnAxis(medIdt,1);
+    char *axisname=new char[naxis*MED_SNAME_SIZE+1];
+    char *axisunit=new char[naxis*MED_SNAME_SIZE+1];
+    erreur = MEDmeshInfo(medIdt,
+                            1,
                             meshname,
-                            MED_NO_DT,
-                            MED_NO_IT,
-                            MED_NODE,
-                            MED_NO_GEOTYPE,
-                            MED_COORDINATE,
-                            MED_NO_CMODE,
-                            &chgt,
-                            &trsf);
-   if ( nnoe < 0)
-   {
-          // GERALD -- QMESSAGE BOX
-          std::cerr << "Error : mesh is unreadable" << std::endl;
-          return LesExtremes;
-   }
+                            &spacedim,
+                            &meshdim,
+                            &meshtype,
+                            descriptionription,
+                            dtunit,
+                            &sortingtype,
+                            &nstep,
+                            &axistype,
+                            axisname,
+                            axisunit);
+    delete[] axisname ;
+    delete[] axisunit ;
+    if ( erreur < 0 ) { break ; }
+
+    // Nombre de noeuds
+    med_bool chgt,trsf;
+    med_int nnoe  = MEDmeshnEntity(medIdt,
+                              meshname,
+                              MED_NO_DT,
+                              MED_NO_IT,
+                              MED_NODE,
+                              MED_NO_GEOTYPE,
+                              MED_COORDINATE,
+                              MED_NO_CMODE,
+                              &chgt,
+                              &trsf);
+    if ( nnoe < 0 )
+    {
+      erreur =  4;
+      break ;
+    }
 
-  med_float* coo    = (med_float*) malloc(sizeof(med_float)*nnoe*spacedim);
+    // Les coordonnees
+    med_float* coo    = (med_float*) malloc(sizeof(med_float)*nnoe*spacedim);
 
-  aRet = MEDmeshNodeCoordinateRd(medIdt,
+    erreur = MEDmeshNodeCoordinateRd(medIdt,
                                       meshname,
                                       MED_NO_DT,
                                       MED_NO_IT,
                                       MED_NO_INTERLACE,
                                       coo);
-   if ( aRet < 0)
-   {
-          // GERALD -- QMESSAGE BOX
-          std::cerr << "Error : mesh coordinates are unreadable" << std::endl;
-          return LesExtremes;
-   }
+    if ( erreur < 0 )
+    {
+      free(coo) ;
+      break ;
+    }
 
-   med_float xmin,xmax,ymin,ymax,zmin,zmax;
+    // Calcul des extremes
+    med_float xmin,xmax,ymin,ymax,zmin,zmax;
 
-   xmin=coo[0];
-   xmax=coo[0];
-   for (int i=1;i<nnoe;i++)
-   {
-      xmin = std::min(xmin,coo[i]);
-      xmax = std::max(xmax,coo[i]);
-   }
-//
-   if (spacedim > 1)
-   {
-       ymin=coo[nnoe]; ymax=coo[nnoe];
-       for (int i=nnoe+1;i<2*nnoe;i++)
-       {
-           ymin = std::min(ymin,coo[i]);
-           ymax = std::max(ymax,coo[i]);
-       }
-   }
-   else
-   {
-       ymin=0;
-       ymax=0;
-       zmin=0;
-       zmax=0;
-   }
+    xmin=coo[0];
+    xmax=coo[0];
+    for (int i=1;i<nnoe;i++)
+    {
+        xmin = std::min(xmin,coo[i]);
+        xmax = std::max(xmax,coo[i]);
+    }
+  //
+    if (spacedim > 1)
+    {
+        ymin=coo[nnoe]; ymax=coo[nnoe];
+        for (int i=nnoe+1;i<2*nnoe;i++)
+        {
+            ymin = std::min(ymin,coo[i]);
+            ymax = std::max(ymax,coo[i]);
+        }
+    }
+    else
+    {
+        ymin=0;
+        ymax=0;
+        zmin=0;
+        zmax=0;
+    }
 //
-   if (spacedim > 2)
-   {
-       zmin=coo[2*nnoe]; zmax=coo[2*nnoe];
-       for (int i=2*nnoe+1;i<3*nnoe;i++)
-       {
-           zmin = std::min(zmin,coo[i]);
-           zmax = std::max(zmax,coo[i]);
-       }
-   }
-   else
-   {
-       zmin=0;
-       zmax=0;
-   }
-   MEDfileClose(medIdt);
+    if (spacedim > 2)
+    {
+        zmin=coo[2*nnoe]; zmax=coo[2*nnoe];
+        for (int i=2*nnoe+1;i<3*nnoe;i++)
+        {
+            zmin = std::min(zmin,coo[i]);
+            zmax = std::max(zmax,coo[i]);
+        }
+    }
+    else
+    {
+        zmin=0;
+        zmax=0;
+    }
 
-   MESSAGE( "_______________________________________");
-   MESSAGE( "xmin : " << xmin << " xmax : " << xmax );
-   MESSAGE( "ymin : " << ymin << " ymax : " << ymax );
-   MESSAGE( "zmin : " << zmin << " zmax : " << zmax );
-   MESSAGE( "_______________________________________" );
-   double epsilon = 1.e-6 ;
-   LesExtremes.push_back(xmin);
-   LesExtremes.push_back(xmax);
-   LesExtremes.push_back(0);
-   LesExtremes.push_back(ymin);
-   LesExtremes.push_back(ymax);
-   LesExtremes.push_back(0);
-   LesExtremes.push_back(zmin);
-   LesExtremes.push_back(zmax);
-   LesExtremes.push_back(0);
+    MESSAGE( "_______________________________________");
+    MESSAGE( "xmin : " << xmin << " xmax : " << xmax );
+    MESSAGE( "ymin : " << ymin << " ymax : " << ymax );
+    MESSAGE( "zmin : " << zmin << " zmax : " << zmax );
+    MESSAGE( "_______________________________________" );
+    double epsilon = 1.e-6 ;
+    LesExtremes.push_back(xmin);
+    LesExtremes.push_back(xmax);
+    LesExtremes.push_back(0);
+    LesExtremes.push_back(ymin);
+    LesExtremes.push_back(ymax);
+    LesExtremes.push_back(0);
+    LesExtremes.push_back(zmin);
+    LesExtremes.push_back(zmax);
+    LesExtremes.push_back(0);
 
 
    double max1=std::max ( LesExtremes[1] - LesExtremes[0] , LesExtremes[4] - LesExtremes[3] ) ;
@@ -310,42 +308,30 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
 // On fait un traitement pour dans le cas d'une coordonnee constante
 // inhiber ce cas en mettant un increment negatif
 //
-   double diff = LesExtremes[1] - LesExtremes[0];
-   if (fabs(diff)  > epsilon*max2)
-   {
-      LesExtremes[2] = diff/100.;
-   }
-   else
-   {
-      LesExtremes[2] = -1. ;
-   }
-
-   diff = LesExtremes[4] - LesExtremes[3];
-   if (fabs(diff)  > epsilon*max2)
-   {
-      LesExtremes[5]=diff/100.;
-   }
-   else
-   {
-      LesExtremes[5] = -1. ;
-   }
-
-   diff = LesExtremes[7] - LesExtremes[6];
-   if (fabs(diff)  > epsilon*max2)
-   {
-      LesExtremes[8]=diff/100.;
-   }
-   else
-   {
-      LesExtremes[8] = -1. ;
-   }
-
-   MESSAGE ( "_______________________________________" );
-   MESSAGE ( "xmin : " << LesExtremes[0] << " xmax : " << LesExtremes[1] << " xincr : " << LesExtremes[2] );
-   MESSAGE ( "ymin : " << LesExtremes[3] << " ymax : " << LesExtremes[4] << " yincr : " << LesExtremes[5] );
-   MESSAGE ( "zmin : " << LesExtremes[6] << " zmax : " << LesExtremes[7] << " zincr : " << LesExtremes[8] );
-   MESSAGE ( "dmax : " << LesExtremes[9] );
-   MESSAGE ( "_______________________________________" );
+    double diff = LesExtremes[1] - LesExtremes[0];
+    if ( fabs(diff) > epsilon*max2 ) { LesExtremes[2] = diff/100.; }
+    else                             { LesExtremes[2] = -1. ; }
+
+    diff = LesExtremes[4] - LesExtremes[3];
+    if ( fabs(diff) > epsilon*max2 ) { LesExtremes[5]=diff/100.; }
+    else                             { LesExtremes[5] = -1. ; }
+
+    diff = LesExtremes[7] - LesExtremes[6];
+    if ( fabs(diff) > epsilon*max2 ) { LesExtremes[8]=diff/100.; }
+    else                             { LesExtremes[8] = -1. ;  }
+
+    MESSAGE ( "_______________________________________" );
+    MESSAGE ( "xmin : " << LesExtremes[0] << " xmax : " << LesExtremes[1] << " xincr : " << LesExtremes[2] );
+    MESSAGE ( "ymin : " << LesExtremes[3] << " ymax : " << LesExtremes[4] << " yincr : " << LesExtremes[5] );
+    MESSAGE ( "zmin : " << LesExtremes[6] << " zmax : " << LesExtremes[7] << " zincr : " << LesExtremes[8] );
+    MESSAGE ( "dmax : " << LesExtremes[9] );
+    MESSAGE ( "_______________________________________" );
+
+    free(coo) ;
+    break ;
+  }
+  // Fermeture du fichier
+  if ( medIdt > 0 ) MEDfileClose(medIdt);
 
    return  LesExtremes;
 }