]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
PR: modifs Gerald 20120216
authorprascle <prascle>
Tue, 6 Mar 2012 16:04:15 +0000 (16:04 +0000)
committerprascle <prascle>
Tue, 6 Mar 2012 16:04:15 +0000 (16:04 +0000)
36 files changed:
doc/gui_create_case.rst
doc/gui_homard.rst
doc/images/create_case_1.png
doc/images/create_case_7.png [new file with mode: 0644]
doc/images/intro_3.png [new file with mode: 0644]
doc/images/intro_4.png [new file with mode: 0644]
doc/images/intro_5.png [new file with mode: 0644]
doc/images/intro_6.png [new file with mode: 0644]
doc/images/intro_7.png [new file with mode: 0644]
doc/intro.rst
doc/tui_create_case.rst
doc/tui_create_hypothese.rst
doc/tui_create_iteration.rst
idl/HOMARD_Cas.idl
idl/HOMARD_Gen.idl
idl/HOMARD_Iteration.idl
src/HOMARD/HOMARD_Cas.cxx
src/HOMARD/HOMARD_Cas.hxx
src/HOMARD/HOMARD_DriverTools.cxx
src/HOMARD/HOMARD_Hypothesis.cxx
src/HOMARD/HOMARD_Iteration.cxx
src/HOMARD/HomardDriver.cxx
src/HOMARD/HomardDriver.hxx
src/HOMARDGUI/CreateCase.h
src/HOMARDGUI/CreateCase.ui
src/HOMARDGUI/HOMARD_msg_fr.ts
src/HOMARDGUI/MonCreateCase.cxx
src/HOMARDGUI/MonCreateCase.h
src/HOMARDGUI/MonEditCase.cxx
src/HOMARDGUI/MonEditHypothesis.cxx
src/HOMARD_I/HOMARD_Cas_i.cxx
src/HOMARD_I/HOMARD_Cas_i.hxx
src/HOMARD_I/HOMARD_Gen_i.cxx
src/HOMARD_I/HOMARD_Gen_i.hxx
src/HOMARD_I/HOMARD_Iteration_i.cxx
src/HOMARD_I/HOMARD_Iteration_i.hxx

index 0e5fe972334249dc6da3dd93421f446094259a32..5758e8e9713aef9d86d4f1ebc030dc8d37943b5d 100644 (file)
@@ -47,7 +47,7 @@ Le maillage initial doit se trouver dans un fichier au format MED. Classiquement
 
 Le type de conformité
 """""""""""""""""""""
-Les itérations qui seront définies pour ce cas devront respecter le même comportement vis-à-vis de la conformité.
+Les itérations qui seront calculées pour ce cas devront toutes respecter le même comportement vis-à-vis de la conformité.
 
 L'option par défaut, 'conforme', implique que les maillages produits par HOMARD seront conformes au sens des éléments finis. C'est le choix classique de la plupart des logiciels de simulation par éléments finis.
 
@@ -78,6 +78,26 @@ On cochera le ou les boutons voulus :
 
 La définition des frontières est décrite dans :ref:`gui_create_boundary`.
 
+.. index:: single: pyramide
+
+Les options avancées
+""""""""""""""""""""
+Par défaut, aucune option avancée n'est active.
+
+Néanmoins, on peut définir une oprion avancée :
+
+.. image:: images/create_case_7.png
+   :align: center
+
+Par défaut, HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles suivantes :
+   - mailles-points
+   - segments
+   - triangles
+   - quadrangles
+   - tétraèdres
+   - hexaèdres
+   - prismes
+Si le maillage initial comporte des pyramides, il y a arrêt en erreur. Toutefois, si on est certain que les raffinements ultérieurs ne toucheront aucune des arêtes des pyramides, on cochera la case "Pyramides autorisées". Les adaptations se dérouleront normalement et les pyramides seront restituées telles quelles dans le maillage final.
 
 L'arbre d'étude
 """""""""""""""
index 9952cd9a9fbebb649b6ec05c42ad6f40c4dfd7da..c4df6439ec75d220f70650dbe4bb0cdb0fe0b715 100644 (file)
@@ -38,6 +38,13 @@ Les deux fichiers de texte, Liste.n.vers.(n+1) et apad.n.vers.(n+1).bilan, sont
 .. image:: images/lancement_3.png
    :align: center
 
+
+
+.. note::
+  Par défaut, le calcul est lancé avec l'exécutable de HOMARD installé avec Salome. Si on souhaite utiliser une version privée de HOMARD, pour tester une évolution par exemple, il faut préciser où le nouvel exécutable est disponible. Pour cela, il faut renseigner deux variables d'environnement.
+  "*HOMARD_REP_EXE_PRIVATE*" définit le répertoire dans lequel se trouve l'exécutable voulu.
+  "*HOMARD_EXE_PRIVATE*" définit le nom de l'exécutable dans ce répertoire, si ce nom est différent de "*homard*".
+
 Méthodes python correspondantes
 """""""""""""""""""""""""""""""
 Consulter :ref:`tui_create_iteration`
index 34796a779cb247078b9c0b2ecfae6f095c15654d..ddef5000d09e45e3b401472f8a35eaf0433c4f51 100644 (file)
Binary files a/doc/images/create_case_1.png and b/doc/images/create_case_1.png differ
diff --git a/doc/images/create_case_7.png b/doc/images/create_case_7.png
new file mode 100644 (file)
index 0000000..766430f
Binary files /dev/null and b/doc/images/create_case_7.png differ
diff --git a/doc/images/intro_3.png b/doc/images/intro_3.png
new file mode 100644 (file)
index 0000000..64be42a
Binary files /dev/null and b/doc/images/intro_3.png differ
diff --git a/doc/images/intro_4.png b/doc/images/intro_4.png
new file mode 100644 (file)
index 0000000..5931fa4
Binary files /dev/null and b/doc/images/intro_4.png differ
diff --git a/doc/images/intro_5.png b/doc/images/intro_5.png
new file mode 100644 (file)
index 0000000..e0730d7
Binary files /dev/null and b/doc/images/intro_5.png differ
diff --git a/doc/images/intro_6.png b/doc/images/intro_6.png
new file mode 100644 (file)
index 0000000..21f79c2
Binary files /dev/null and b/doc/images/intro_6.png differ
diff --git a/doc/images/intro_7.png b/doc/images/intro_7.png
new file mode 100644 (file)
index 0000000..5e8ceec
Binary files /dev/null and b/doc/images/intro_7.png differ
index a510bb8d37b5988a3b4cf9343223e0be84b58300..d2a631fd1f608ec213cdbb2591a932692fdbf61d 100644 (file)
@@ -3,13 +3,27 @@ Introduction
 ============
 Le logiciel HOMARD est destiné à adapter les maillages dans le cadre des codes de calculs par éléments ou volumes finis. Ce logiciel, réalisé par EDF R&D, procède par raffinement et déraffinement des maillages bidimensionnels ou tridimensionnels. Il est conçu pour être utilisé indépendamment du code de calcul auquel il est couplé.
 
+HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles suivantes :
+   - mailles-points
+   - segments
+   - triangles
+   - quadrangles
+   - tétraèdres
+   - hexaèdres
+   - prismes
+
+Ces mailles peuvent être présentes simultanément. Par exemple, HOMARD saura adapter un maillage comportant des triangles et des quadrangles.
+Les noeuds acceptés sont évidemment les noeuds qui sont les sommets des mailles, ce qui correspond à la description classique « en degré 1 » . Si les éléments sont décrits « en degré 2 », les noeuds complémentaires sont gérés. En revanche, il ne peut pas y avoir cohabitation de mailles décrites en degré 1 et d'autres décrites en degré 2. Enfin, HOMARD sait prendre en compte des noeuds isolés, qui n'appartiendraient à aucune définition de mailles : ils ressortiront tels quels du processus d'adaptation.
+
+Le cas des pyramides est à part. HOMARD produit des pyramides pour assurer la conformité du raffinement de maillages formés d'hexaèdres ou de prismes. En revanche, HOMARD n'adapte pas un maillage qui contiendrait des pyramides au départ, sauf cas particuliers (voir :ref:`gui_create_case`).
+
 Plusieurs motivations apparaissent pour adapter un maillage :
 
-  - on veut simplifier la réalisation du maillage d'une géométrie complexe : on par d'une version grossière et on confie à un processus automatique la charge de le raffiner.
+  - on veut simplifier la réalisation du maillage d'une géométrie complexe : on part d'un maillage grossier et on confie à un processus automatique la charge de le raffiner.
   - on veut s'assurer de la convergence de la solution numérique : plutôt que de réaliser à la main des maillages de plus en plus fins, on laisse le logiciel chercher lui-même les endroits où il faudrait affiner le maillage pour augmenter la précision du résultat.
   - les conditions du calcul changent au cours de son déroulement : les zones qui doivent être maillées finement se déplacent. Si on maille fin partout dès le début, le maillage est trop gros. En adaptant au fur et à mesure, le maillage ne sera fin qu'aux endroits nécessaires : sa taille sera réduite et la qualité de la solution sera bonne.
 
-Dans tous les cas, le principe de l'adaptation de maillage reste le même. Sur le maillage de départ, on réalise le calcul standard. A partir d'une analyse de la solution numérique obtenue, on estime l'erreur qui a été commise par rapport à la solution réelle. Cette estimation se représente par une valeur d'indicateur d'erreur dans chaque maille du calcul. A partir de là, on applique le principe suivant : les mailles où l'indicateur d'erreur est fort devraient être plus petites et réciproquement, les mailles où l'indicateur d'erreur est faible pourraient être plus grandes. Avec cette information, on alimente HOMARD qui va modifier le maillage en conséquence. Sur le nouveau maillage, on recommencera alors le calcul.
+Dans tous les cas, le principe de l'adaptation de maillage reste le même. Sur le maillage de départ, on réalise le calcul standard. Avec une analyse de la solution numérique obtenue, on estime l'erreur qui a été commise par rapport à la solution réelle. Cette estimation se représente par une valeur d'indicateur d'erreur dans chaque maille du calcul. A partir de là, on applique le principe suivant : les mailles où l'indicateur d'erreur est fort devraient être plus petites et, réciproquement, les mailles où l'indicateur d'erreur est faible pourraient être plus grandes. Avec cette information, on alimente HOMARD qui va modifier le maillage en conséquence. Sur le nouveau maillage, on recommencera alors le calcul.
 Schématiquement, une itération d'adaptation de maillage se présente ainsi. Le logiciel calcule la solution numérique sur le maillage n°k, puis en déduit les valeurs de l'indicateur d'erreur sur tout le maillage. A partir de la connaissance du maillage n°k et de l'indicateur n°k, HOMARD crée le nouveau maillage n°k+1.
 
 .. image:: images/intro_1.png
@@ -20,7 +34,27 @@ Au final, la cha
 .. image:: images/intro_2.png
    :align: center
 
-A partir de ce schéma de base, des variantes sont possibles. Si aucun calcul d'erreur n'est disponible dans le logiciel couplé, on peut utiliser un champ pour piloter l'adaptation. Un champ de contraintes en mécaniques peut être utilisé : raffiner là où les contraintes sont importantes est souvent efficace pour améliorer la qualité de la simulation. On peut également adapter en fonction du saut d'une variable d'une maille à sa voisine ou dans une zone connue a priori. Grâce à ses nombreuses options, HOMARD permet d'envisager de nombreux scénarios d'adaptation de maillage.
+Des variantes de ce schéma de base sont possibles. Si aucun calcul d'erreur n'est disponible dans le logiciel couplé, on peut utiliser un champ pour piloter l'adaptation. Un champ de contraintes en mécaniques peut être utilisé : raffiner là où les contraintes sont importantes est souvent efficace pour améliorer la qualité de la simulation. On peut également adapter en fonction du saut d'une variable d'une maille à sa voisine ou dans une zone connue a priori. Grâce à ses nombreuses options, HOMARD permet d'envisager de multiples scénarios d'adaptation de maillage.
 
 .. note::
   Pour une description plus complète, voir :download:`Description générale de HOMARD <files/HOMARD_0.pdf>`.
+
+
+Quelques illustrations de maillage adaptés
+==========================================
+
+.. image:: images/intro_3.png
+   :align: center
+
+.. image:: images/intro_4.png
+   :align: center
+
+.. image:: images/intro_5.png
+   :align: center
+
+.. image:: images/intro_6.png
+   :align: center
+
+.. image:: images/intro_7.png
+   :align: center
+
index 77e58b40ef5262392ec13a3993a76862409a218b..202c79150cad371176d1bd20176a40ab2a229101 100644 (file)
@@ -56,10 +56,10 @@ M
 |                                                               |
 |     - ``conf_type`` : entier précisant le mode de conformité  |
 |                                                               |
-|         1. conforme                                           |
-|         2. non conforme avec 1 noeud par maille               |
-|         3. non conforme avec 1 noeud par arete de maille      |
-|         4. non conforme quelconque                            |
+|         * 1 : conforme                                        |
+|         * 2 : non conforme avec 1 noeud par maille            |
+|         * 3 : non conforme avec 1 noeud par arete de maille   |
+|         * 4 : non conforme quelconque                         |
 +---------------------------------------------------------------+
 | .. module:: GetConfType                                       |
 |                                                               |
@@ -92,6 +92,28 @@ M
 |       frontière                                               |
 +---------------------------------------------------------------+
 
+Les options avancées
+^^^^^^^^^^^^^^^^^^^^
+
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+| .. module:: SetPyram                                          |
+|                                                               |
+| **SetPyram(option)**                                          |
+|                                                               |
+|     - ``option`` : entier précisant le statut des pyramides   |
+|       éventuellement présentes dans le maillage initial       |
+|                                                               |
+|         * 0 : pyramides refusées (défaut)                     |
+|         * 1 : pyramides autorisées                            |
++---------------------------------------------------------------+
+| .. module:: GetPyram                                          |
+|                                                               |
+| **GetPyram()**                                                |
+|     Retourne le statut accordé aux pyramides éventuellement   |
+|     présentes dans le maillage initial                        |
++---------------------------------------------------------------+
+
 
 Exemple
 """""""
index 3ffeb89c6d358ade49d43b3444e8479f30d9ef1a..24ad8ec232e530a0f71835d012489ec24b4f3a40 100644 (file)
@@ -54,13 +54,13 @@ G
 |                                                               |
 |     - ``Refin`` : entier précisant si le raffinement est actif|
 |                                                               |
-|         0. inactif                                            |
-|         1. actif                                              |
+|         * 0 : inactif                                         |
+|         * 1 : actif                                           |
 |                                                               |
 |     - ``UnRef`` : entier précisant si déraffinement est actif |
 |                                                               |
-|         0. inactif                                            |
-|         1. actif                                              |
+|         * 0 : inactif                                         |
+|         * 1 : actif                                           |
 |                                                               |
 +---------------------------------------------------------------+
 | .. module:: GetAdapType                                       |
@@ -101,8 +101,8 @@ Le champ et les seuils
 |                                                               |
 |     - ``use_field`` : entier précisant l'usage du champ       |
 |                                                               |
-|         0. valeur par élément (défaut)                        |
-|         1. saut entre un élément et ses voisins               |
+|        * 0 : valeur par élément (défaut)                      |
+|        * 1 : saut entre un élément et ses voisins             |
 +---------------------------------------------------------------+
 | .. module:: SetRefinThr                                       |
 |                                                               |
@@ -111,9 +111,9 @@ Le champ et les seuils
 |     - ``type_thres`` : entier précisant le type de seuil en   |
 |       raffinement                                             |
 |                                                               |
-|         1. valeur absolue                                     |
-|         2. valeur relative en %                               |
-|         3. fraction des mailles en %                          |
+|        * 1 : valeur absolue                                   |
+|        * 2 : valeur relative en %                             |
+|        * 3 : fraction des mailles en %                        |
 |                                                               |
 |     - ``threshold`` : valeur du seuil                         |
 +---------------------------------------------------------------+
@@ -129,9 +129,9 @@ Le champ et les seuils
 |     - ``type_thres`` : entier précisant le type de seuil en   |
 |       déraffinement                                           |
 |                                                               |
-|         1. valeur absolue                                     |
-|         2. valeur relative en %                               |
-|         3. fraction des mailles en %                          |
+|        * 1 : valeur absolue                                   |
+|        * 2 : valeur relative en %                             |
+|        * 3 : fraction des mailles en %                        |
 |                                                               |
 |     - ``threshold`` : valeur du seuil                         |
 +---------------------------------------------------------------+
@@ -160,9 +160,9 @@ Les composantes du champ
 |                                                               |
 |     - ``use_comp`` : entier précisant l'usage des composantes |
 |                                                               |
-|         0. norme L2 (défaut)                                  |
-|         1. norme infinie                                      |
-|         2. valeur relative, uniquement si une seule composante|
+|        * 0 : norme L2 (défaut)                                |
+|        * 1 : norme infinie                                    |
+|        * 2 : valeur relative, si une seule composante         |
 +---------------------------------------------------------------+
 | .. module:: GetListComp                                       |
 |                                                               |
@@ -187,8 +187,8 @@ Le filtrage par les groupes
 |     Retourne la liste des groupes utilisés pour le filtrage   |
 +---------------------------------------------------------------+
 
-Les options avancéess
-^^^^^^^^^^^^^^^^^^^^^
+Les options avancées
+^^^^^^^^^^^^^^^^^^^^
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
index 776aecc9a8b1bbd0ccb3b68b7826afcbd300ce22..a9590dcf5c1f125f6c3adc6c912a43fc83bb5d69 100644 (file)
@@ -65,7 +65,11 @@ G
 | .. module:: GetNumber                                         |
 |                                                               |
 | **GetNumber()**                                               |
-|     Retourne le numéro de l'itération                         |
+|     Retourne le numéro de l'itération.                        |
+|                                                               |
+|     L'itération 0 est celle associée au maillage initial.     |
+|     Ensuite, une itération de numéro N est issue de           |
+|     l'adaptation d'une itération de numéro N-1.               |
 +---------------------------------------------------------------+
 | .. module:: GetIterParent                                     |
 |                                                               |
index e1ce5a96b84bfe7fed676fe6bd84c29435d0e10f..132150fa89538e513837d47fd7db43e1af180809 100644 (file)
@@ -60,6 +60,9 @@ module HOMARD
     void     AddBoundaryGroup(in string NomBoundary, in string Group)
                                                            raises (SALOME::SALOME_Exception);
 
+    void     SetPyram(in long Pyram)                       raises (SALOME::SALOME_Exception);
+    long     GetPyram()                                    raises (SALOME::SALOME_Exception);
+
   };
 };
 #endif
index 8981c2a824707f1798f36a37858eaac1ea8638ee..ed79e837326a59922007c4cfae771c51c359442a 100644 (file)
@@ -136,7 +136,7 @@ module HOMARD
     void InvalideHypo (in string HypoName)                 raises (SALOME::SALOME_Exception);
     void InvalideIter (in string IterName)                 raises (SALOME::SALOME_Exception);
 
-    boolean  Compute (in string IterName, in long etatMenage)
+    long  Compute (in string IterName, in long etatMenage)
                                                            raises (SALOME::SALOME_Exception);
 
     boolean  VerifieDir (in string IterName)               raises (SALOME::SALOME_Exception);
index cc4d085672ce14400ded262dbe6339d2d486d01e..26582e36cc7ef07bde4e45e2e63a05be91a2f365 100644 (file)
@@ -70,7 +70,7 @@ module HOMARD
     void     SetMessFile(in string MessFile)               raises (SALOME::SALOME_Exception);
     string   GetMessFile()                                 raises (SALOME::SALOME_Exception);
 
-    boolean  Compute(in long etatMenage)                   raises (SALOME::SALOME_Exception);
+    long     Compute(in long etatMenage)                   raises (SALOME::SALOME_Exception);
 
     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
   };
index 30c7381699be0d915f9585ff3c86412f7b20c3e7..5522eaea9a15852aa838fb5ceaa8d3b039ca4a75 100644 (file)
@@ -102,6 +102,11 @@ std::string HOMARD_Cas::GetDumpPython() const
     aScript << *it << "\")\n";
     it++;
   }
+  if ( _Pyram > 0 )
+  {
+    aScript << "\t" <<_NomCas << ".SetPyram(";
+    aScript << _Pyram << ")\n";
+  }
 
   return aScript.str();
 }
@@ -224,3 +229,17 @@ void HOMARD_Cas::SupprBoundaryGroup()
 {
   _ListBoundaryGroup.clear();
 }
+//=============================================================================
+void HOMARD_Cas::SetPyram( int Pyram )
+//=============================================================================
+{
+  MESSAGE ("SetPyram, Pyram = " << Pyram );
+  _Pyram = Pyram;
+}
+//=============================================================================
+const int HOMARD_Cas::GetPyram() const
+//=============================================================================
+{
+  MESSAGE ("GetPyram, Pyram = " << _Pyram );
+  return _Pyram;
+}
index 0c39304097591088fa19945da9b83aef53cb4159..fef06e681f2b4584963180758a2fd604e94da1c1 100644 (file)
@@ -67,6 +67,9 @@ public:
   const std::list<std::string>& GetBoundaryGroup() const;
   void                          SupprBoundaryGroup();
 
+  void                          SetPyram( int Pyram );
+  const int                     GetPyram() const;
+
 private:
   std::string                   _NomCas;
   std::string                   _NomDir;
@@ -76,6 +79,8 @@ private:
   std::list<std::string>        _ListGroup;
   std::list<std::string>        _ListBoundaryGroup;
 
+  int                           _Pyram;
+
   typedef std::string           IterName;
   typedef std::list<IterName>   IterNames;
   IterNames                     _ListIter;
index 6f7e8bf3ad817bb50e13d7885ea427fd917ad8bc..b2d476cf7a1988f96749debb4fb0d0754b845114 100644 (file)
@@ -130,6 +130,8 @@ namespace HOMARD
     for ( it = ListString.begin(); it != ListString.end(); ++it )
          os << separator() << *it;
 
+    os << separator() << cas.GetPyram();
+
 //    MESSAGE( ". Fin avec "<<os.str());
     return os.str();
   }
@@ -383,6 +385,10 @@ namespace HOMARD
       cas.AddBoundaryGroup( chunk.c_str(), chunkNext.c_str() );
     }
 
+    chunk = getNextChunk( stream, start, ok );
+    if ( !ok ) return false;
+    cas.SetPyram( atoi( chunk.c_str() ) );
+
     return true;
   }
 //
index bc44eefe6a668fd072638f7452af60c5a1b635e0..aa4daa4d93d0c51abe92c43865c43bd1c307574a 100644 (file)
@@ -143,6 +143,9 @@ std::string HOMARD_Hypothesis::GetDumpPython() const
   {
     aScript << "\t" <<_NomHypo << ".SetNivMax(";
     aScript << _NivMax << ")\n";
+  }
+  if ( _DiamMin > 0 )
+  {
     aScript << "\t" <<_NomHypo << ".SetDiamMin(";
     aScript << _DiamMin << ")\n";
   }
@@ -414,10 +417,10 @@ void HOMARD_Hypothesis::SetDiamMin( double DiamMin )
 //=============================================================================
 {
   _DiamMin = DiamMin;
-  if ( _NivMax < 0 )
+/*  if ( _NivMax < 0 )
   {
     _NivMax = 99 ;
-  }
+  }*/
 }
 //=============================================================================
 const double HOMARD_Hypothesis::GetDiamMin() const
index 87f16016335ea4ad5e5e868a916593e1995cbe8e..13adb738beb598fe3801bbf57285568108a6d243 100644 (file)
@@ -102,11 +102,11 @@ std::string HOMARD_Iteration::GetDumpPython() const
   aScript << "\thomard.AssociateIterHypo(\"" <<_NomIter << "\", \"" << _NomHypo << "\")\n";
   if (_Etat == true)
   {
-     aScript << "\tresult = homard.Compute(\"" <<_NomIter << "\", 1)\n";
+     aScript << "\tcodret = homard.Compute(\"" <<_NomIter << "\", 1)\n";
   }
   else
   {
-     aScript << "\t# result = homard.Compute(\"" <<_NomIter << "\", 1)\n";
+     aScript << "\t#codret = homard.Compute(\"" <<_NomIter << "\", 1)\n";
   }
 
   return aScript.str();
index 51bf17654466445af381a8fc741e410228328b2c..6fec7958b4786d0858b847c03d33a911f43ccef5 100644 (file)
@@ -38,16 +38,16 @@ HomardDriver::HomardDriver(const std::string siter, const std::string siterp1):
   char* dirchar; char* execchar;
   std::string dir;
   std::string executable;
-  if ( !(dirchar = getenv("HOMARD_REP_EXE")) )
-    dir = "/local00/HOMARD_SVN/trunk/bin" ;
-  else
-    dir = std::string(dirchar);
-  if ( !(execchar = getenv("HOMARD_EXE")) )
-    executable = "HOMARD.out";
-  else
-    executable = std::string(execchar);
+  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("Dans HomardDriver, _HOMARD_Exec ="<<_HOMARD_Exec);
+  MESSAGE("HomardDriver, _HOMARD_Exec ="<<_HOMARD_Exec);
 //
   _siter = siter ;
   _siterp1 = siterp1 ;
@@ -62,7 +62,7 @@ HomardDriver::~HomardDriver()
 ////=============================================================================
 void HomardDriver::TexteInit( const std::string DirCompute, const std::string DirComputePa, const std::string MessFile )
 {
-  MESSAGE("Dans TexteInit, MessFile ="<<MessFile);
+  MESSAGE("TexteInit, MessFile ="<<MessFile);
 //
   _Texte  = "Action   homa\n" ;
   _Texte += "CCAssoci med\n" ;
@@ -79,7 +79,7 @@ void HomardDriver::TexteInit( const std::string DirCompute, const std::string Di
 ////=============================================================================
 void HomardDriver::TexteMaillage( const std::string NomMesh, const std::string MeshFile, int apres )
 {
-  MESSAGE("Dans TexteMaillage, NomMesh ="<<NomMesh<<", MeshFile ="<<MeshFile);
+  MESSAGE("TexteMaillage, NomMesh ="<<NomMesh<<", MeshFile ="<<MeshFile);
   std::string saux ;
   saux = "P1" ;
   if ( apres < 1 ) { saux = "__" ; }
@@ -92,8 +92,8 @@ void HomardDriver::TexteMaillage( const std::string NomMesh, const std::string M
 ////=============================================================================
 void HomardDriver::TexteConfRaffDera( int ConfType, int TypeAdap, int TypeRaff, int TypeDera )
 {
-  MESSAGE("Dans TexteConfRaffDera, ConfType ="<<ConfType);
-  MESSAGE("Dans TexteConfRaffDera, TypeAdap ="<<TypeAdap<<", TypeRaff ="<<TypeRaff<<", TypeDera ="<<TypeDera);
+  MESSAGE("TexteConfRaffDera, ConfType ="<<ConfType);
+  MESSAGE("TexteConfRaffDera, TypeAdap ="<<TypeAdap<<", TypeRaff ="<<TypeRaff<<", TypeDera ="<<TypeDera);
 //
 // Type de conformite
 //
@@ -170,7 +170,7 @@ void HomardDriver::TexteConfRaffDera( int ConfType, int TypeAdap, int TypeRaff,
 ////=============================================================================
 void HomardDriver::TexteCompo( int NumeComp, const std::string NompCompo)
 {
-  MESSAGE("Dans TexteCompo, NumeComp = "<<NumeComp<<", NompCompo = "<<NompCompo);
+  MESSAGE("TexteCompo, NumeComp = "<<NumeComp<<", NompCompo = "<<NompCompo);
   _Texte +="CCCoChaI \"" + NompCompo + "\"\n" ;
 }
 
@@ -491,8 +491,8 @@ void HomardDriver::TexteField( const std::string FieldName, const std::string Fi
                int TypeThR, double ThreshR, int TypeThC, double ThreshC,
                int UsField, int UsCmpI )
 {
-  MESSAGE("Dans TexteField, FieldName = "<<FieldName<<", FieldFile = "<<FieldFile);
-  MESSAGE("Dans TexteField, TimeStep = "<<TimeStep<<", Rank = "<<Rank);
+  MESSAGE("TexteField, FieldName = "<<FieldName<<", FieldFile = "<<FieldFile);
+  MESSAGE("TexteField, TimeStep = "<<TimeStep<<", Rank = "<<Rank);
 
   std::string saux, saux2 ;
 //
@@ -577,7 +577,7 @@ void HomardDriver::TexteField( const std::string FieldName, const std::string Fi
 ////=============================================================================
 void HomardDriver::TexteGroup( const std::string GroupName )
 {
-  MESSAGE("Dans TexteGroup, GroupName = "<<GroupName);
+  MESSAGE("TexteGroup, GroupName = "<<GroupName);
 //
   _Texte += "CCGroAda " + GroupName  + "\n" ;
 //
@@ -585,7 +585,7 @@ void HomardDriver::TexteGroup( const std::string GroupName )
 ////=============================================================================
 void HomardDriver::TexteBoundaryOption( int BoundaryOption )
 {
-  MESSAGE("Dans TexteBoundaryOption, BoundaryOption = "<<BoundaryOption);
+  MESSAGE("TexteBoundaryOption, BoundaryOption = "<<BoundaryOption);
 //
 // Type de suivi de frontiere
 //
@@ -598,8 +598,8 @@ void HomardDriver::TexteBoundaryOption( int BoundaryOption )
 ////=============================================================================
 void HomardDriver::TexteBoundaryDi(  const std::string MeshName, const std::string MeshFile )
 {
-  MESSAGE("Dans TexteBoundaryDi, MeshName  = "<<MeshName);
-  MESSAGE("Dans TexteBoundaryDi, MeshFile  = "<<MeshFile);
+  MESSAGE("TexteBoundaryDi, MeshName  = "<<MeshName);
+  MESSAGE("TexteBoundaryDi, MeshFile  = "<<MeshFile);
 //
   _Texte += "CCNoMFro " + MeshName + "\n" ;
   _Texte += "CCFronti " + MeshFile + "\n" ;
@@ -608,7 +608,7 @@ void HomardDriver::TexteBoundaryDi(  const std::string MeshName, const std::stri
 ////=============================================================================
 void HomardDriver::TexteBoundaryDiGr(  const std::string GroupName )
 {
-  MESSAGE("Dans TexteBoundaryDiGr, GroupName  = "<<GroupName);
+  MESSAGE("TexteBoundaryDiGr, GroupName  = "<<GroupName);
 //
   _Texte += "CCGroFro " + GroupName + "\n" ;
 //
@@ -616,10 +616,10 @@ void HomardDriver::TexteBoundaryDiGr(  const std::string GroupName )
 ////=============================================================================
 void HomardDriver::TexteBoundaryAn( const std::string NameBoundary, int NumeBoundary, int BoundaryType, double x0, double x1, double x2, double x3, double x4, double x5, double x6 )
 {
-  MESSAGE("Dans TexteBoundaryAn, NameBoundary = "<<NameBoundary);
-//   MESSAGE("Dans TexteBoundaryAn, NumeBoundary = "<<NumeBoundary);
-  MESSAGE("Dans TexteBoundaryAn, BoundaryType = "<<BoundaryType);
-//   MESSAGE("Dans TexteBoundaryAn, coor         = "<< x0<<","<<x1<< ","<< x2<< ","<< x3<<","<<x4<<","<<x5<<","<<x6);
+  MESSAGE("TexteBoundaryAn, NameBoundary = "<<NameBoundary);
+//   MESSAGE("TexteBoundaryAn, NumeBoundary = "<<NumeBoundary);
+  MESSAGE("TexteBoundaryAn, BoundaryType = "<<BoundaryType);
+//   MESSAGE("TexteBoundaryAn, coor         = "<< x0<<","<<x1<< ","<< x2<< ","<< x3<<","<<x4<<","<<x5<<","<<x6);
 //
   std::string saux, saux2 ;
 //
@@ -723,9 +723,9 @@ void HomardDriver::TexteBoundaryAn( const std::string NameBoundary, int NumeBoun
 ////=============================================================================
 void HomardDriver::TexteBoundaryAnGr( const std::string NameBoundary, int NumeBoundary, const std::string GroupName )
 {
-  MESSAGE("Dans TexteBoundaryAnGr, NameBoundary  = "<<NameBoundary);
-//   MESSAGE("Dans TexteBoundaryAnGr, NumeBoundary  = "<<NumeBoundary);
-//   MESSAGE("Dans TexteBoundaryAnGr, GroupName  = "<<GroupName);
+  MESSAGE("TexteBoundaryAnGr, NameBoundary  = "<<NameBoundary);
+//   MESSAGE("TexteBoundaryAnGr, NumeBoundary  = "<<NumeBoundary);
+//   MESSAGE("TexteBoundaryAnGr, GroupName  = "<<GroupName);
 //
 // Commentaires
 //
@@ -744,9 +744,9 @@ void HomardDriver::TexteBoundaryAnGr( const std::string NameBoundary, int NumeBo
 ////=============================================================================
 void HomardDriver::TexteFieldInterp( int TypeFieldInterp, const std::string FieldFile, const std::string MeshFile, int TimeStep, int Rank )
 {
-  MESSAGE("Dans TexteFieldInterp, TypeFieldInterp = "<<TypeFieldInterp);
-  MESSAGE("Dans TexteFieldInterp, FieldFile = "<<FieldFile<<", MeshFile = "<<MeshFile);
-  MESSAGE("Dans TexteFieldInterp, TimeStep = "<<TimeStep<<", Rank = "<<Rank);
+  MESSAGE("TexteFieldInterp, TypeFieldInterp = "<<TypeFieldInterp);
+  MESSAGE("TexteFieldInterp, FieldFile = "<<FieldFile<<", MeshFile = "<<MeshFile);
+  MESSAGE("TexteFieldInterp, TimeStep = "<<TimeStep<<", Rank = "<<Rank);
 //
 // Type d'interpolation
 //
@@ -766,7 +766,7 @@ void HomardDriver::TexteFieldInterp( int TypeFieldInterp, const std::string Fiel
 ////=============================================================================
 void HomardDriver::TexteFieldInterpName( int NumeChamp, const std::string FieldName)
 {
-  MESSAGE("Dans TexteFieldInterpName, NumeChamp = "<<NumeChamp<<", FieldName = "<<FieldName);
+  MESSAGE("TexteFieldInterpName, NumeChamp = "<<NumeChamp<<", FieldName = "<<FieldName);
   std::stringstream saux1 ;
   saux1 << NumeChamp+1 ;
   std::string saux = saux1.str() ;
@@ -790,22 +790,33 @@ void HomardDriver::TexteFieldInterpName( int NumeChamp, const std::string FieldN
   }
 }
 ////=============================================================================
-void HomardDriver::TexteAdvanced( int NivMax, double DiamMin)
+void HomardDriver::TexteAdvanced( int Pyram, int NivMax, double DiamMin )
 {
-  MESSAGE("Dans TexteAdvanced, NivMax ="<<NivMax<<", DiamMin ="<<DiamMin);
+  MESSAGE("TexteAdvanced, Pyram ="<<Pyram<<", NivMax ="<<NivMax<<", DiamMin ="<<DiamMin);
   std::string saux ;
 
-  _Texte += "# Niveaux extremes\n" ;
-  { std::stringstream saux1 ;
-    saux1 << NivMax ;
-    std::string saux2 = saux1.str() ;
-    _Texte += "NiveauMa " + saux2 + "\n" ;
+  if ( Pyram > 0 )
+  {
+    _Texte += "# Autorisation de pyramides dans le maillage initial\n" ;
+    { _Texte += "TypeElem ignore_pyra\n" ; }
   }
+  if ( NivMax > 0 )
   {
-    std::stringstream saux1 ;
-    saux1 << DiamMin ;
-    std::string saux2 = saux1.str() ;
-    _Texte += "DiametMi " + saux2  + "\n" ;
+    _Texte += "# Niveaux extremes\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NivMax ;
+      std::string saux2 = saux1.str() ;
+      _Texte += "NiveauMa " + saux2 + "\n" ;
+    }
+  }
+  if ( DiamMin > 0 )
+  {
+    _Texte += "# Diametre minimal\n" ;
+    { std::stringstream saux1 ;
+      saux1 << DiamMin ;
+      std::string saux2 = saux1.str() ;
+      _Texte += "DiametMi " + saux2  + "\n" ;
+    }
   }
 }
 
index 516725697e1373ca79350c938ddd1d651a82e1f9..b286ba9d6727e0f260d9c6177c3d1715f67a69de 100644 (file)
@@ -52,7 +52,7 @@ public:
   void        TexteFieldInterp( int TypeFieldInterp, const std::string FieldFile, const std::string MeshFile,
                                 int TimeStep, int Rank );
   void        TexteFieldInterpName( int NumeChamp, const std::string FieldName);
-  void        TexteAdvanced( int NivMax, double DiamMin);
+  void        TexteAdvanced( int Pyram, int NivMax, double DiamMin);
   void        CloseFichier();
   //
   int         ExecuteHomard();
index 37603d3942ebcec3d12132a9f47b2be69942a7ef..46af698f779727f780f4fed189a4684cf74f0605 100644 (file)
@@ -1,10 +1,10 @@
 /********************************************************************************
-** Form generated from reading ui file 'CreateCase.ui'
+** Form generated from reading UI file 'CreateCase.ui'
 **
-** Created: Fri Oct 28 11:27:32 2011
-**      by: Qt User Interface Compiler version 4.2.1
+** Created: Wed Feb 15 18:15:40 2012
+**      by: Qt User Interface Compiler version 4.6.3
 **
-** WARNING! All changes made in this file will be lost when recompiling ui file!
+** WARNING! All changes made in this file will be lost when recompiling UI file!
 ********************************************************************************/
 
 #ifndef CREATECASE_H
 #include <QtGui/QCheckBox>
 #include <QtGui/QComboBox>
 #include <QtGui/QDialog>
+#include <QtGui/QFormLayout>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
 #include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
 #include <QtGui/QSpacerItem>
 #include <QtGui/QTableWidget>
-#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
 
 class Ui_CreateCase
 {
 public:
-    QGridLayout *gridLayout;
-    QGroupBox *GBBoundaryA;
-    QTableWidget *TWBoundary;
-    QWidget *layoutWidget;
-    QGridLayout *gridLayout1;
-    QPushButton *PBBoundaryAnEdit;
-    QPushButton *PBBoundaryAnNew;
-    QPushButton *PBBoundaryAnHelp;
-    QGroupBox *GBBoundaryD;
-    QGridLayout *gridLayout2;
-    QPushButton *PBBoundaryDiEdit;
-    QPushButton *PBBoundaryDiNew;
-    QComboBox *CBBoundaryDi;
-    QSpacerItem *spacerItem;
-    QPushButton *PBBoundaryDiHelp;
-    QGroupBox *GroupButtons;
-    QGridLayout *gridLayout3;
-    QPushButton *buttonHelp;
-    QPushButton *buttonCancel;
-    QPushButton *buttonApply;
-    QPushButton *buttonOk;
+    QGridLayout *gridLayout_2;
     QHBoxLayout *hboxLayout;
-    QCheckBox *CBBoundaryD;
-    QCheckBox *CBBoundaryA;
-    QHBoxLayout *hboxLayout1;
     QLabel *Name;
     QLineEdit *LECaseName;
-    QHBoxLayout *hboxLayout2;
+    QHBoxLayout *hboxLayout1;
     QLabel *Directory;
     QPushButton *PushDir;
     QLineEdit *LEDirName;
-    QHBoxLayout *hboxLayout3;
+    QSpacerItem *spacerItem;
+    QHBoxLayout *hboxLayout2;
     QLabel *Mesh_2;
     QPushButton *PushFichier;
     QLineEdit *LEFileName;
     QSpacerItem *spacerItem1;
     QGroupBox *GBTypeConf;
-    QHBoxLayout *hboxLayout4;
+    QHBoxLayout *hboxLayout3;
     QRadioButton *RBConforme;
     QRadioButton *RBNonConforme;
     QSpacerItem *spacerItem2;
     QGroupBox *GBTypeNoConf;
-    QHBoxLayout *hboxLayout5;
+    QHBoxLayout *hboxLayout4;
     QRadioButton *RB1NpM;
     QRadioButton *RB1NpA;
     QRadioButton *RBQuelconque;
     QSpacerItem *spacerItem3;
+    QHBoxLayout *hboxLayout5;
+    QCheckBox *CBBoundaryD;
+    QCheckBox *CBBoundaryA;
     QSpacerItem *spacerItem4;
+    QGroupBox *GBBoundaryD;
+    QGridLayout *gridLayout;
+    QPushButton *PBBoundaryDiEdit;
+    QPushButton *PBBoundaryDiNew;
+    QComboBox *CBBoundaryDi;
     QSpacerItem *spacerItem5;
+    QPushButton *PBBoundaryDiHelp;
+    QGroupBox *GBBoundaryA;
+    QFormLayout *formLayout;
+    QTableWidget *TWBoundary;
+    QGridLayout *gridLayout1;
+    QPushButton *PBBoundaryAnEdit;
+    QPushButton *PBBoundaryAnNew;
+    QPushButton *PBBoundaryAnHelp;
+    QSpacerItem *spacer;
+    QCheckBox *CBAdvanced;
+    QGroupBox *GBAdvancedOptions;
+    QGridLayout *gridLayout2;
+    QCheckBox *CBPyramid;
+    QSpacerItem *spacer_3;
+    QSpacerItem *spacer_4;
+    QGroupBox *GroupButtons;
+    QGridLayout *gridLayout3;
+    QPushButton *buttonHelp;
+    QPushButton *buttonApply;
+    QPushButton *buttonOk;
+    QPushButton *buttonCancel;
+    QSpacerItem *spacer_2;
 
     void setupUi(QDialog *CreateCase)
     {
-    CreateCase->setObjectName(QString::fromUtf8("CreateCase"));
-    QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
-    sizePolicy.setHorizontalStretch(0);
-    sizePolicy.setVerticalStretch(0);
-    sizePolicy.setHeightForWidth(CreateCase->sizePolicy().hasHeightForWidth());
-    CreateCase->setSizePolicy(sizePolicy);
-    CreateCase->setAutoFillBackground(true);
-    gridLayout = new QGridLayout(CreateCase);
-    gridLayout->setSpacing(6);
-    gridLayout->setMargin(9);
-    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-    GBBoundaryA = new QGroupBox(CreateCase);
-    GBBoundaryA->setObjectName(QString::fromUtf8("GBBoundaryA"));
-    GBBoundaryA->setMinimumSize(QSize(548, 200));
-    TWBoundary = new QTableWidget(GBBoundaryA);
-    TWBoundary->setObjectName(QString::fromUtf8("TWBoundary"));
-    TWBoundary->setGeometry(QRect(4, 20, 371, 161));
-    TWBoundary->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::NoEditTriggers|QAbstractItemView::SelectedClicked);
-    TWBoundary->setShowGrid(true);
-    TWBoundary->setRowCount(0);
-    TWBoundary->setColumnCount(1);
-    layoutWidget = new QWidget(GBBoundaryA);
-    layoutWidget->setObjectName(QString::fromUtf8("layoutWidget"));
-    layoutWidget->setGeometry(QRect(430, 40, 77, 95));
-    gridLayout1 = new QGridLayout(layoutWidget);
-    gridLayout1->setSpacing(6);
-    gridLayout1->setMargin(0);
-    gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
-    PBBoundaryAnEdit = new QPushButton(layoutWidget);
-    PBBoundaryAnEdit->setObjectName(QString::fromUtf8("PBBoundaryAnEdit"));
-    PBBoundaryAnEdit->setAutoDefault(false);
-
-    gridLayout1->addWidget(PBBoundaryAnEdit, 1, 0, 1, 1);
-
-    PBBoundaryAnNew = new QPushButton(layoutWidget);
-    PBBoundaryAnNew->setObjectName(QString::fromUtf8("PBBoundaryAnNew"));
-    PBBoundaryAnNew->setAutoDefault(false);
+        if (CreateCase->objectName().isEmpty())
+            CreateCase->setObjectName(QString::fromUtf8("CreateCase"));
+        CreateCase->resize(601, 1070);
+        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(CreateCase->sizePolicy().hasHeightForWidth());
+        CreateCase->setSizePolicy(sizePolicy);
+        CreateCase->setAutoFillBackground(true);
+        gridLayout_2 = new QGridLayout(CreateCase);
+        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
+        hboxLayout = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout->setContentsMargins(0, 0, 0, 0);
+#endif
+        hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+        Name = new QLabel(CreateCase);
+        Name->setObjectName(QString::fromUtf8("Name"));
+
+        hboxLayout->addWidget(Name);
+
+        LECaseName = new QLineEdit(CreateCase);
+        LECaseName->setObjectName(QString::fromUtf8("LECaseName"));
+        LECaseName->setMinimumSize(QSize(382, 21));
+
+        hboxLayout->addWidget(LECaseName);
 
-    gridLayout1->addWidget(PBBoundaryAnNew, 0, 0, 1, 1);
 
-    PBBoundaryAnHelp = new QPushButton(layoutWidget);
-    PBBoundaryAnHelp->setObjectName(QString::fromUtf8("PBBoundaryAnHelp"));
-    PBBoundaryAnHelp->setAutoDefault(false);
+        gridLayout_2->addLayout(hboxLayout, 0, 0, 1, 4);
 
-    gridLayout1->addWidget(PBBoundaryAnHelp, 2, 0, 1, 1);
+        hboxLayout1 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout1->setSpacing(6);
+#endif
+        hboxLayout1->setContentsMargins(0, 0, 0, 0);
+        hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
+        Directory = new QLabel(CreateCase);
+        Directory->setObjectName(QString::fromUtf8("Directory"));
 
+        hboxLayout1->addWidget(Directory);
 
-    gridLayout->addWidget(GBBoundaryA, 12, 0, 1, 2);
+        PushDir = new QPushButton(CreateCase);
+        PushDir->setObjectName(QString::fromUtf8("PushDir"));
+        PushDir->setAutoDefault(false);
 
-    GBBoundaryD = new QGroupBox(CreateCase);
-    GBBoundaryD->setObjectName(QString::fromUtf8("GBBoundaryD"));
-    QSizePolicy sizePolicy1(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
-    sizePolicy1.setHorizontalStretch(0);
-    sizePolicy1.setVerticalStretch(0);
-    sizePolicy1.setHeightForWidth(GBBoundaryD->sizePolicy().hasHeightForWidth());
-    GBBoundaryD->setSizePolicy(sizePolicy1);
-    gridLayout2 = new QGridLayout(GBBoundaryD);
-    gridLayout2->setSpacing(6);
-    gridLayout2->setMargin(9);
-    gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
-    PBBoundaryDiEdit = new QPushButton(GBBoundaryD);
-    PBBoundaryDiEdit->setObjectName(QString::fromUtf8("PBBoundaryDiEdit"));
-    PBBoundaryDiEdit->setAutoDefault(false);
+        hboxLayout1->addWidget(PushDir);
 
-    gridLayout2->addWidget(PBBoundaryDiEdit, 0, 3, 1, 1);
+        LEDirName = new QLineEdit(CreateCase);
+        LEDirName->setObjectName(QString::fromUtf8("LEDirName"));
+        LEDirName->setMinimumSize(QSize(382, 21));
 
-    PBBoundaryDiNew = new QPushButton(GBBoundaryD);
-    PBBoundaryDiNew->setObjectName(QString::fromUtf8("PBBoundaryDiNew"));
-    PBBoundaryDiNew->setAutoDefault(false);
+        hboxLayout1->addWidget(LEDirName);
 
-    gridLayout2->addWidget(PBBoundaryDiNew, 0, 2, 1, 1);
 
-    CBBoundaryDi = new QComboBox(GBBoundaryD);
-    CBBoundaryDi->setObjectName(QString::fromUtf8("CBBoundaryDi"));
-    CBBoundaryDi->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+        gridLayout_2->addLayout(hboxLayout1, 1, 0, 1, 4);
 
-    gridLayout2->addWidget(CBBoundaryDi, 0, 0, 1, 1);
+        spacerItem = new QSpacerItem(20, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    spacerItem = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
+        gridLayout_2->addItem(spacerItem, 2, 1, 1, 1);
 
-    gridLayout2->addItem(spacerItem, 0, 1, 1, 1);
+        hboxLayout2 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout2->setSpacing(6);
+#endif
+        hboxLayout2->setContentsMargins(0, 0, 0, 0);
+        hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
+        Mesh_2 = new QLabel(CreateCase);
+        Mesh_2->setObjectName(QString::fromUtf8("Mesh_2"));
 
-    PBBoundaryDiHelp = new QPushButton(GBBoundaryD);
-    PBBoundaryDiHelp->setObjectName(QString::fromUtf8("PBBoundaryDiHelp"));
-    PBBoundaryDiHelp->setAutoDefault(false);
+        hboxLayout2->addWidget(Mesh_2);
 
-    gridLayout2->addWidget(PBBoundaryDiHelp, 0, 4, 1, 1);
+        PushFichier = new QPushButton(CreateCase);
+        PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
+        PushFichier->setAutoDefault(false);
 
+        hboxLayout2->addWidget(PushFichier);
 
-    gridLayout->addWidget(GBBoundaryD, 11, 0, 1, 1);
+        LEFileName = new QLineEdit(CreateCase);
+        LEFileName->setObjectName(QString::fromUtf8("LEFileName"));
+        LEFileName->setMinimumSize(QSize(382, 21));
 
-    GroupButtons = new QGroupBox(CreateCase);
-    GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
-    gridLayout3 = new QGridLayout(GroupButtons);
-    gridLayout3->setSpacing(6);
-    gridLayout3->setMargin(9);
-    gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
-    buttonHelp = new QPushButton(GroupButtons);
-    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
-    buttonHelp->setAutoDefault(false);
+        hboxLayout2->addWidget(LEFileName);
 
-    gridLayout3->addWidget(buttonHelp, 0, 3, 1, 1);
 
-    buttonCancel = new QPushButton(GroupButtons);
-    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
-    buttonCancel->setAutoDefault(false);
+        gridLayout_2->addLayout(hboxLayout2, 3, 0, 1, 4);
 
-    gridLayout3->addWidget(buttonCancel, 0, 2, 1, 1);
+        spacerItem1 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    buttonApply = new QPushButton(GroupButtons);
-    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
-    buttonApply->setAutoDefault(false);
+        gridLayout_2->addItem(spacerItem1, 4, 1, 1, 3);
 
-    gridLayout3->addWidget(buttonApply, 0, 1, 1, 1);
+        GBTypeConf = new QGroupBox(CreateCase);
+        GBTypeConf->setObjectName(QString::fromUtf8("GBTypeConf"));
+        hboxLayout3 = new QHBoxLayout(GBTypeConf);
+#ifndef Q_OS_MAC
+        hboxLayout3->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout3->setContentsMargins(9, 9, 9, 9);
+#endif
+        hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
+        RBConforme = new QRadioButton(GBTypeConf);
+        RBConforme->setObjectName(QString::fromUtf8("RBConforme"));
+        RBConforme->setChecked(true);
 
-    buttonOk = new QPushButton(GroupButtons);
-    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
-    buttonOk->setAutoDefault(false);
+        hboxLayout3->addWidget(RBConforme);
 
-    gridLayout3->addWidget(buttonOk, 0, 0, 1, 1);
+        RBNonConforme = new QRadioButton(GBTypeConf);
+        RBNonConforme->setObjectName(QString::fromUtf8("RBNonConforme"));
 
+        hboxLayout3->addWidget(RBNonConforme);
 
-    gridLayout->addWidget(GroupButtons, 13, 0, 1, 1);
 
-    hboxLayout = new QHBoxLayout();
-    hboxLayout->setSpacing(6);
-    hboxLayout->setMargin(0);
-    hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
-    CBBoundaryD = new QCheckBox(CreateCase);
-    CBBoundaryD->setObjectName(QString::fromUtf8("CBBoundaryD"));
+        gridLayout_2->addWidget(GBTypeConf, 5, 0, 1, 1);
 
-    hboxLayout->addWidget(CBBoundaryD);
+        spacerItem2 = new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    CBBoundaryA = new QCheckBox(CreateCase);
-    CBBoundaryA->setObjectName(QString::fromUtf8("CBBoundaryA"));
+        gridLayout_2->addItem(spacerItem2, 6, 1, 1, 1);
 
-    hboxLayout->addWidget(CBBoundaryA);
+        GBTypeNoConf = new QGroupBox(CreateCase);
+        GBTypeNoConf->setObjectName(QString::fromUtf8("GBTypeNoConf"));
+        hboxLayout4 = new QHBoxLayout(GBTypeNoConf);
+#ifndef Q_OS_MAC
+        hboxLayout4->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout4->setContentsMargins(9, 9, 9, 9);
+#endif
+        hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
+        RB1NpM = new QRadioButton(GBTypeNoConf);
+        RB1NpM->setObjectName(QString::fromUtf8("RB1NpM"));
 
+        hboxLayout4->addWidget(RB1NpM);
 
-    gridLayout->addLayout(hboxLayout, 9, 0, 1, 1);
+        RB1NpA = new QRadioButton(GBTypeNoConf);
+        RB1NpA->setObjectName(QString::fromUtf8("RB1NpA"));
 
-    hboxLayout1 = new QHBoxLayout();
-    hboxLayout1->setSpacing(6);
-    hboxLayout1->setMargin(0);
-    hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
-    Name = new QLabel(CreateCase);
-    Name->setObjectName(QString::fromUtf8("Name"));
+        hboxLayout4->addWidget(RB1NpA);
 
-    hboxLayout1->addWidget(Name);
+        RBQuelconque = new QRadioButton(GBTypeNoConf);
+        RBQuelconque->setObjectName(QString::fromUtf8("RBQuelconque"));
 
-    LECaseName = new QLineEdit(CreateCase);
-    LECaseName->setObjectName(QString::fromUtf8("LECaseName"));
-    LECaseName->setMinimumSize(QSize(382, 21));
+        hboxLayout4->addWidget(RBQuelconque);
 
-    hboxLayout1->addWidget(LECaseName);
 
+        gridLayout_2->addWidget(GBTypeNoConf, 7, 0, 1, 3);
 
-    gridLayout->addLayout(hboxLayout1, 0, 0, 1, 2);
+        spacerItem3 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    hboxLayout2 = new QHBoxLayout();
-    hboxLayout2->setSpacing(6);
-    hboxLayout2->setMargin(0);
-    hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
-    Directory = new QLabel(CreateCase);
-    Directory->setObjectName(QString::fromUtf8("Directory"));
+        gridLayout_2->addItem(spacerItem3, 8, 1, 1, 3);
 
-    hboxLayout2->addWidget(Directory);
+        hboxLayout5 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout5->setSpacing(6);
+#endif
+        hboxLayout5->setContentsMargins(0, 0, 0, 0);
+        hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5"));
+        CBBoundaryD = new QCheckBox(CreateCase);
+        CBBoundaryD->setObjectName(QString::fromUtf8("CBBoundaryD"));
 
-    PushDir = new QPushButton(CreateCase);
-    PushDir->setObjectName(QString::fromUtf8("PushDir"));
-    PushDir->setAutoDefault(false);
+        hboxLayout5->addWidget(CBBoundaryD);
 
-    hboxLayout2->addWidget(PushDir);
+        CBBoundaryA = new QCheckBox(CreateCase);
+        CBBoundaryA->setObjectName(QString::fromUtf8("CBBoundaryA"));
 
-    LEDirName = new QLineEdit(CreateCase);
-    LEDirName->setObjectName(QString::fromUtf8("LEDirName"));
-    LEDirName->setMinimumSize(QSize(382, 21));
+        hboxLayout5->addWidget(CBBoundaryA);
 
-    hboxLayout2->addWidget(LEDirName);
 
+        gridLayout_2->addLayout(hboxLayout5, 9, 0, 1, 2);
 
-    gridLayout->addLayout(hboxLayout2, 1, 0, 1, 1);
+        spacerItem4 = new QSpacerItem(20, 2, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    hboxLayout3 = new QHBoxLayout();
-    hboxLayout3->setSpacing(6);
-    hboxLayout3->setMargin(0);
-    hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
-    Mesh_2 = new QLabel(CreateCase);
-    Mesh_2->setObjectName(QString::fromUtf8("Mesh_2"));
+        gridLayout_2->addItem(spacerItem4, 10, 1, 1, 1);
 
-    hboxLayout3->addWidget(Mesh_2);
+        GBBoundaryD = new QGroupBox(CreateCase);
+        GBBoundaryD->setObjectName(QString::fromUtf8("GBBoundaryD"));
+        sizePolicy.setHeightForWidth(GBBoundaryD->sizePolicy().hasHeightForWidth());
+        GBBoundaryD->setSizePolicy(sizePolicy);
+        gridLayout = new QGridLayout(GBBoundaryD);
+#ifndef Q_OS_MAC
+        gridLayout->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        PBBoundaryDiEdit = new QPushButton(GBBoundaryD);
+        PBBoundaryDiEdit->setObjectName(QString::fromUtf8("PBBoundaryDiEdit"));
+        PBBoundaryDiEdit->setAutoDefault(false);
 
-    PushFichier = new QPushButton(CreateCase);
-    PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
-    PushFichier->setAutoDefault(false);
+        gridLayout->addWidget(PBBoundaryDiEdit, 0, 3, 1, 1);
 
-    hboxLayout3->addWidget(PushFichier);
+        PBBoundaryDiNew = new QPushButton(GBBoundaryD);
+        PBBoundaryDiNew->setObjectName(QString::fromUtf8("PBBoundaryDiNew"));
+        PBBoundaryDiNew->setAutoDefault(false);
 
-    LEFileName = new QLineEdit(CreateCase);
-    LEFileName->setObjectName(QString::fromUtf8("LEFileName"));
-    LEFileName->setMinimumSize(QSize(382, 21));
+        gridLayout->addWidget(PBBoundaryDiNew, 0, 2, 1, 1);
 
-    hboxLayout3->addWidget(LEFileName);
+        CBBoundaryDi = new QComboBox(GBBoundaryD);
+        CBBoundaryDi->setObjectName(QString::fromUtf8("CBBoundaryDi"));
+        CBBoundaryDi->setSizeAdjustPolicy(QComboBox::AdjustToContents);
 
+        gridLayout->addWidget(CBBoundaryDi, 0, 0, 1, 1);
 
-    gridLayout->addLayout(hboxLayout3, 3, 0, 1, 2);
+        spacerItem5 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    spacerItem1 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        gridLayout->addItem(spacerItem5, 0, 1, 1, 1);
 
-    gridLayout->addItem(spacerItem1, 4, 0, 1, 1);
+        PBBoundaryDiHelp = new QPushButton(GBBoundaryD);
+        PBBoundaryDiHelp->setObjectName(QString::fromUtf8("PBBoundaryDiHelp"));
+        PBBoundaryDiHelp->setAutoDefault(false);
 
-    GBTypeConf = new QGroupBox(CreateCase);
-    GBTypeConf->setObjectName(QString::fromUtf8("GBTypeConf"));
-    hboxLayout4 = new QHBoxLayout(GBTypeConf);
-    hboxLayout4->setSpacing(6);
-    hboxLayout4->setMargin(9);
-    hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
-    RBConforme = new QRadioButton(GBTypeConf);
-    RBConforme->setObjectName(QString::fromUtf8("RBConforme"));
-    RBConforme->setChecked(true);
+        gridLayout->addWidget(PBBoundaryDiHelp, 0, 4, 1, 1);
 
-    hboxLayout4->addWidget(RBConforme);
 
-    RBNonConforme = new QRadioButton(GBTypeConf);
-    RBNonConforme->setObjectName(QString::fromUtf8("RBNonConforme"));
+        gridLayout_2->addWidget(GBBoundaryD, 11, 0, 1, 3);
 
-    hboxLayout4->addWidget(RBNonConforme);
+        GBBoundaryA = new QGroupBox(CreateCase);
+        GBBoundaryA->setObjectName(QString::fromUtf8("GBBoundaryA"));
+        GBBoundaryA->setMinimumSize(QSize(548, 200));
+        formLayout = new QFormLayout(GBBoundaryA);
+        formLayout->setObjectName(QString::fromUtf8("formLayout"));
+        TWBoundary = new QTableWidget(GBBoundaryA);
+        if (TWBoundary->columnCount() < 1)
+            TWBoundary->setColumnCount(1);
+        QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem();
+        TWBoundary->setHorizontalHeaderItem(0, __qtablewidgetitem);
+        TWBoundary->setObjectName(QString::fromUtf8("TWBoundary"));
+        TWBoundary->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked);
+        TWBoundary->setShowGrid(true);
+        TWBoundary->setRowCount(0);
+        TWBoundary->setColumnCount(1);
+
+        formLayout->setWidget(0, QFormLayout::LabelRole, TWBoundary);
+
+        gridLayout1 = new QGridLayout();
+#ifndef Q_OS_MAC
+        gridLayout1->setSpacing(6);
+#endif
+        gridLayout1->setContentsMargins(0, 0, 0, 0);
+        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+        PBBoundaryAnEdit = new QPushButton(GBBoundaryA);
+        PBBoundaryAnEdit->setObjectName(QString::fromUtf8("PBBoundaryAnEdit"));
+        PBBoundaryAnEdit->setAutoDefault(false);
+
+        gridLayout1->addWidget(PBBoundaryAnEdit, 1, 0, 1, 1);
+
+        PBBoundaryAnNew = new QPushButton(GBBoundaryA);
+        PBBoundaryAnNew->setObjectName(QString::fromUtf8("PBBoundaryAnNew"));
+        PBBoundaryAnNew->setAutoDefault(false);
+
+        gridLayout1->addWidget(PBBoundaryAnNew, 0, 0, 1, 1);
+
+        PBBoundaryAnHelp = new QPushButton(GBBoundaryA);
+        PBBoundaryAnHelp->setObjectName(QString::fromUtf8("PBBoundaryAnHelp"));
+        PBBoundaryAnHelp->setAutoDefault(false);
+
+        gridLayout1->addWidget(PBBoundaryAnHelp, 2, 0, 1, 1);
+
+
+        formLayout->setLayout(0, QFormLayout::FieldRole, gridLayout1);
 
 
-    gridLayout->addWidget(GBTypeConf, 5, 0, 1, 2);
+        gridLayout_2->addWidget(GBBoundaryA, 12, 0, 1, 4);
 
-    spacerItem2 = new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacer = new QSpacerItem(239, 41, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout->addItem(spacerItem2, 6, 0, 1, 1);
+        gridLayout_2->addItem(spacer, 13, 0, 1, 1);
 
-    GBTypeNoConf = new QGroupBox(CreateCase);
-    GBTypeNoConf->setObjectName(QString::fromUtf8("GBTypeNoConf"));
-    hboxLayout5 = new QHBoxLayout(GBTypeNoConf);
-    hboxLayout5->setSpacing(6);
-    hboxLayout5->setMargin(9);
-    hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5"));
-    RB1NpM = new QRadioButton(GBTypeNoConf);
-    RB1NpM->setObjectName(QString::fromUtf8("RB1NpM"));
+        CBAdvanced = new QCheckBox(CreateCase);
+        CBAdvanced->setObjectName(QString::fromUtf8("CBAdvanced"));
 
-    hboxLayout5->addWidget(RB1NpM);
+        gridLayout_2->addWidget(CBAdvanced, 14, 0, 1, 1);
 
-    RB1NpA = new QRadioButton(GBTypeNoConf);
-    RB1NpA->setObjectName(QString::fromUtf8("RB1NpA"));
+        GBAdvancedOptions = new QGroupBox(CreateCase);
+        GBAdvancedOptions->setObjectName(QString::fromUtf8("GBAdvancedOptions"));
+        gridLayout2 = new QGridLayout(GBAdvancedOptions);
+        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+        CBPyramid = new QCheckBox(GBAdvancedOptions);
+        CBPyramid->setObjectName(QString::fromUtf8("CBPyramid"));
 
-    hboxLayout5->addWidget(RB1NpA);
+        gridLayout2->addWidget(CBPyramid, 0, 0, 1, 1);
 
-    RBQuelconque = new QRadioButton(GBTypeNoConf);
-    RBQuelconque->setObjectName(QString::fromUtf8("RBQuelconque"));
 
-    hboxLayout5->addWidget(RBQuelconque);
+        gridLayout_2->addWidget(GBAdvancedOptions, 15, 0, 1, 2);
 
+        spacer_3 = new QSpacerItem(128, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    gridLayout->addWidget(GBTypeNoConf, 7, 0, 1, 2);
+        gridLayout_2->addItem(spacer_3, 15, 2, 1, 2);
 
-    spacerItem3 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacer_4 = new QSpacerItem(239, 41, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout->addItem(spacerItem3, 8, 0, 1, 1);
+        gridLayout_2->addItem(spacer_4, 16, 0, 1, 2);
 
-    spacerItem4 = new QSpacerItem(20, 2, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        GroupButtons = new QGroupBox(CreateCase);
+        GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
+        gridLayout3 = new QGridLayout(GroupButtons);
+#ifndef Q_OS_MAC
+        gridLayout3->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout3->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
+        buttonHelp = new QPushButton(GroupButtons);
+        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+        buttonHelp->setAutoDefault(false);
 
-    gridLayout->addItem(spacerItem4, 10, 0, 1, 1);
+        gridLayout3->addWidget(buttonHelp, 0, 4, 1, 1);
 
-    spacerItem5 = new QSpacerItem(20, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        buttonApply = new QPushButton(GroupButtons);
+        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+        buttonApply->setAutoDefault(false);
 
-    gridLayout->addItem(spacerItem5, 2, 1, 1, 1);
+        gridLayout3->addWidget(buttonApply, 0, 1, 1, 1);
 
+        buttonOk = new QPushButton(GroupButtons);
+        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+        buttonOk->setAutoDefault(false);
 
-    retranslateUi(CreateCase);
+        gridLayout3->addWidget(buttonOk, 0, 0, 1, 1);
 
-    QSize size(601, 843);
-    size = size.expandedTo(CreateCase->minimumSizeHint());
-    CreateCase->resize(size);
+        buttonCancel = new QPushButton(GroupButtons);
+        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+        buttonCancel->setAutoDefault(false);
 
+        gridLayout3->addWidget(buttonCancel, 0, 2, 1, 1);
 
-    CBBoundaryDi->setCurrentIndex(-1);
 
+        gridLayout_2->addWidget(GroupButtons, 17, 0, 1, 3);
 
-    QMetaObject::connectSlotsByName(CreateCase);
+        spacer_2 = new QSpacerItem(128, 25, QSizePolicy::Fixed, QSizePolicy::Minimum);
+
+        gridLayout_2->addItem(spacer_2, 17, 3, 1, 1);
+
+
+        retranslateUi(CreateCase);
+
+        CBBoundaryDi->setCurrentIndex(-1);
+
+
+        QMetaObject::connectSlotsByName(CreateCase);
     } // setupUi
 
     void retranslateUi(QDialog *CreateCase)
     {
-    CreateCase->setWindowTitle(QApplication::translate("CreateCase", "Create a case", 0, QApplication::UnicodeUTF8));
-    GBBoundaryA->setTitle(QApplication::translate("CreateCase", "Analytical boundary", 0, QApplication::UnicodeUTF8));
-    if (TWBoundary->columnCount() < 1)
-        TWBoundary->setColumnCount(1);
-
-    QTableWidgetItem *__colItem = new QTableWidgetItem();
-    __colItem->setText(QApplication::translate("CreateCase", "a_virer", 0, QApplication::UnicodeUTF8));
-    TWBoundary->setHorizontalHeaderItem(0, __colItem);
-    PBBoundaryAnEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
-    PBBoundaryAnNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
-    PBBoundaryAnHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
-    GBBoundaryD->setTitle(QApplication::translate("CreateCase", "Discrete boundary", 0, QApplication::UnicodeUTF8));
-    PBBoundaryDiEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
-    PBBoundaryDiNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
-    PBBoundaryDiHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
-    GroupButtons->setTitle(QString());
-    buttonHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
-    buttonCancel->setText(QApplication::translate("CreateCase", "Cancel", 0, QApplication::UnicodeUTF8));
-    buttonApply->setText(QApplication::translate("CreateCase", "Apply", 0, QApplication::UnicodeUTF8));
-    buttonOk->setText(QApplication::translate("CreateCase", "OK", 0, QApplication::UnicodeUTF8));
-    CBBoundaryD->setText(QApplication::translate("CreateCase", "Discrete boundary", 0, QApplication::UnicodeUTF8));
-    CBBoundaryA->setText(QApplication::translate("CreateCase", "Analytical boundary", 0, QApplication::UnicodeUTF8));
-    Name->setText(QApplication::translate("CreateCase", "Name", 0, QApplication::UnicodeUTF8));
-    Directory->setText(QApplication::translate("CreateCase", "Directory", 0, QApplication::UnicodeUTF8));
-    PushDir->setText(QString());
-    Mesh_2->setText(QApplication::translate("CreateCase", "Mesh", 0, QApplication::UnicodeUTF8));
-    PushFichier->setText(QString());
-    GBTypeConf->setTitle(QApplication::translate("CreateCase", "Conformity type", 0, QApplication::UnicodeUTF8));
-    RBConforme->setText(QApplication::translate("CreateCase", "Conformal", 0, QApplication::UnicodeUTF8));
-    RBNonConforme->setText(QApplication::translate("CreateCase", "Non conformal", 0, QApplication::UnicodeUTF8));
-    GBTypeNoConf->setTitle(QApplication::translate("CreateCase", "Non conformal option", 0, QApplication::UnicodeUTF8));
-    RB1NpM->setText(QApplication::translate("CreateCase", "1 hanging node per mesh", 0, QApplication::UnicodeUTF8));
-    RB1NpA->setText(QApplication::translate("CreateCase", "1 node per edge", 0, QApplication::UnicodeUTF8));
-    RBQuelconque->setText(QApplication::translate("CreateCase", "Free", 0, QApplication::UnicodeUTF8));
-    Q_UNUSED(CreateCase);
+        CreateCase->setWindowTitle(QApplication::translate("CreateCase", "Create a case", 0, QApplication::UnicodeUTF8));
+        Name->setText(QApplication::translate("CreateCase", "Name", 0, QApplication::UnicodeUTF8));
+        Directory->setText(QApplication::translate("CreateCase", "Directory", 0, QApplication::UnicodeUTF8));
+        PushDir->setText(QString());
+        Mesh_2->setText(QApplication::translate("CreateCase", "Mesh", 0, QApplication::UnicodeUTF8));
+        PushFichier->setText(QString());
+        GBTypeConf->setTitle(QApplication::translate("CreateCase", "Conformity type", 0, QApplication::UnicodeUTF8));
+        RBConforme->setText(QApplication::translate("CreateCase", "Conformal", 0, QApplication::UnicodeUTF8));
+        RBNonConforme->setText(QApplication::translate("CreateCase", "Non conformal", 0, QApplication::UnicodeUTF8));
+        GBTypeNoConf->setTitle(QApplication::translate("CreateCase", "Non conformal option", 0, QApplication::UnicodeUTF8));
+        RB1NpM->setText(QApplication::translate("CreateCase", "1 hanging node per mesh", 0, QApplication::UnicodeUTF8));
+        RB1NpA->setText(QApplication::translate("CreateCase", "1 node per edge", 0, QApplication::UnicodeUTF8));
+        RBQuelconque->setText(QApplication::translate("CreateCase", "Free", 0, QApplication::UnicodeUTF8));
+        CBBoundaryD->setText(QApplication::translate("CreateCase", "Discrete boundary", 0, QApplication::UnicodeUTF8));
+        CBBoundaryA->setText(QApplication::translate("CreateCase", "Analytical boundary", 0, QApplication::UnicodeUTF8));
+        GBBoundaryD->setTitle(QApplication::translate("CreateCase", "Discrete boundary", 0, QApplication::UnicodeUTF8));
+        PBBoundaryDiEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
+        PBBoundaryDiNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
+        PBBoundaryDiHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
+        GBBoundaryA->setTitle(QApplication::translate("CreateCase", "Analytical boundary", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem = TWBoundary->horizontalHeaderItem(0);
+        ___qtablewidgetitem->setText(QApplication::translate("CreateCase", "a_virer", 0, QApplication::UnicodeUTF8));
+        PBBoundaryAnEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
+        PBBoundaryAnNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
+        PBBoundaryAnHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
+        CBAdvanced->setText(QApplication::translate("CreateCase", "Advanced options", 0, QApplication::UnicodeUTF8));
+        GBAdvancedOptions->setTitle(QApplication::translate("CreateCase", "Advanced options", 0, QApplication::UnicodeUTF8));
+        CBPyramid->setText(QApplication::translate("CreateCase", "Authorized pyramids", 0, QApplication::UnicodeUTF8));
+        GroupButtons->setTitle(QString());
+        buttonHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
+        buttonApply->setText(QApplication::translate("CreateCase", "Apply", 0, QApplication::UnicodeUTF8));
+        buttonOk->setText(QApplication::translate("CreateCase", "OK", 0, QApplication::UnicodeUTF8));
+        buttonCancel->setText(QApplication::translate("CreateCase", "Cancel", 0, QApplication::UnicodeUTF8));
     } // retranslateUi
 
 };
@@ -413,4 +483,6 @@ namespace Ui {
     class CreateCase: public Ui_CreateCase {};
 } // namespace Ui
 
+QT_END_NAMESPACE
+
 #endif // CREATECASE_H
index 3bdc0ef52dc6707e5c12ce46aa63169358cf3b38..95204dcd88da69862ec7a7cdfae50ce3b0aab551 100644 (file)
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>CreateCase</class>
- <widget class="QDialog" name="CreateCase" >
-  <property name="geometry" >
+ <widget class="QDialog" name="CreateCase">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>601</width>
-    <height>843</height>
+    <height>1070</height>
    </rect>
   </property>
-  <property name="sizePolicy" >
-   <sizepolicy>
-    <hsizetype>0</hsizetype>
-    <vsizetype>0</vsizetype>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Create a case</string>
   </property>
-  <property name="autoFillBackground" >
+  <property name="autoFillBackground">
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" >
-   <property name="margin" >
-    <number>9</number>
-   </property>
-   <property name="spacing" >
-    <number>6</number>
-   </property>
-   <item row="12" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBBoundaryA" >
-     <property name="minimumSize" >
-      <size>
-       <width>548</width>
-       <height>200</height>
-      </size>
-     </property>
-     <property name="title" >
-      <string>Analytical boundary</string>
-     </property>
-     <widget class="QTableWidget" name="TWBoundary" >
-      <property name="geometry" >
-       <rect>
-        <x>4</x>
-        <y>20</y>
-        <width>371</width>
-        <height>161</height>
-       </rect>
-      </property>
-      <property name="editTriggers" >
-       <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::NoEditTriggers|QAbstractItemView::SelectedClicked</set>
-      </property>
-      <property name="showGrid" >
-       <bool>true</bool>
-      </property>
-      <property name="rowCount" >
-       <number>0</number>
-      </property>
-      <property name="columnCount" >
-       <number>1</number>
-      </property>
-      <column>
-       <property name="text" >
-        <string>a_virer</string>
-       </property>
-      </column>
-     </widget>
-     <widget class="QWidget" name="layoutWidget" >
-      <property name="geometry" >
-       <rect>
-        <x>430</x>
-        <y>40</y>
-        <width>77</width>
-        <height>95</height>
-       </rect>
-      </property>
-      <layout class="QGridLayout" >
-       <property name="margin" >
-        <number>0</number>
-       </property>
-       <property name="spacing" >
-        <number>6</number>
-       </property>
-       <item row="1" column="0" >
-        <widget class="QPushButton" name="PBBoundaryAnEdit" >
-         <property name="text" >
-          <string>Edit</string>
-         </property>
-         <property name="autoDefault" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="0" column="0" >
-        <widget class="QPushButton" name="PBBoundaryAnNew" >
-         <property name="text" >
-          <string>New</string>
-         </property>
-         <property name="autoDefault" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="2" column="0" >
-        <widget class="QPushButton" name="PBBoundaryAnHelp" >
-         <property name="text" >
-          <string>Help</string>
-         </property>
-         <property name="autoDefault" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item row="11" column="0" >
-    <widget class="QGroupBox" name="GBBoundaryD" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>0</hsizetype>
-       <vsizetype>0</vsizetype>
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title" >
-      <string>Discrete boundary</string>
-     </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
-       <number>9</number>
-      </property>
-      <property name="spacing" >
-       <number>6</number>
-      </property>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="PBBoundaryDiEdit" >
-        <property name="text" >
-         <string>Edit</string>
-        </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="PBBoundaryDiNew" >
-        <property name="text" >
-         <string>New</string>
-        </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" >
-       <widget class="QComboBox" name="CBBoundaryDi" >
-        <property name="currentIndex" >
-         <number>-1</number>
-        </property>
-        <property name="sizeAdjustPolicy" >
-         <enum>QComboBox::AdjustToContents</enum>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <spacer>
-        <property name="orientation" >
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType" >
-         <enum>QSizePolicy::Fixed</enum>
-        </property>
-        <property name="sizeHint" >
-         <size>
-          <width>40</width>
-          <height>13</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="0" column="4" >
-       <widget class="QPushButton" name="PBBoundaryDiHelp" >
-        <property name="text" >
-         <string>Help</string>
-        </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="13" column="0" >
-    <widget class="QGroupBox" name="GroupButtons" >
-     <property name="title" >
-      <string/>
-     </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
-       <number>9</number>
-      </property>
-      <property name="spacing" >
-       <number>6</number>
-      </property>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
-         <string>Help</string>
-        </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonCancel" >
-        <property name="text" >
-         <string>Cancel</string>
-        </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonApply" >
-        <property name="text" >
-         <string>Apply</string>
-        </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" >
-       <widget class="QPushButton" name="buttonOk" >
-        <property name="text" >
-         <string>OK</string>
-        </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="9" column="0" >
-    <layout class="QHBoxLayout" >
-     <property name="margin" >
-      <number>0</number>
-     </property>
-     <property name="spacing" >
+  <layout class="QGridLayout" name="gridLayout_2">
+   <item row="0" column="0" colspan="4">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
       <number>6</number>
      </property>
-     <item>
-      <widget class="QCheckBox" name="CBBoundaryD" >
-       <property name="text" >
-        <string>Discrete boundary</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QCheckBox" name="CBBoundaryA" >
-       <property name="text" >
-        <string>Analytical boundary</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="0" column="0" colspan="2" >
-    <layout class="QHBoxLayout" >
-     <property name="margin" >
+     <property name="margin">
       <number>0</number>
      </property>
-     <property name="spacing" >
-      <number>6</number>
-     </property>
      <item>
-      <widget class="QLabel" name="Name" >
-       <property name="text" >
+      <widget class="QLabel" name="Name">
+       <property name="text">
         <string>Name</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="LECaseName" >
-       <property name="minimumSize" >
+      <widget class="QLineEdit" name="LECaseName">
+       <property name="minimumSize">
         <size>
          <width>382</width>
          <height>21</height>
      </item>
     </layout>
    </item>
-   <item row="1" column="0" >
-    <layout class="QHBoxLayout" >
-     <property name="margin" >
-      <number>0</number>
-     </property>
-     <property name="spacing" >
+   <item row="1" column="0" colspan="4">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
       <number>6</number>
      </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
      <item>
-      <widget class="QLabel" name="Directory" >
-       <property name="text" >
+      <widget class="QLabel" name="Directory">
+       <property name="text">
         <string>Directory</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="PushDir" >
-       <property name="text" >
+      <widget class="QPushButton" name="PushDir">
+       <property name="text">
         <string/>
        </property>
-       <property name="autoDefault" >
+       <property name="autoDefault">
         <bool>false</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="LEDirName" >
-       <property name="minimumSize" >
+      <widget class="QLineEdit" name="LEDirName">
+       <property name="minimumSize">
         <size>
          <width>382</width>
          <height>21</height>
      </item>
     </layout>
    </item>
-   <item row="3" column="0" colspan="2" >
-    <layout class="QHBoxLayout" >
-     <property name="margin" >
-      <number>0</number>
+   <item row="2" column="1">
+    <spacer>
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
      </property>
-     <property name="spacing" >
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>18</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="3" column="0" colspan="4">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
       <number>6</number>
      </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
      <item>
-      <widget class="QLabel" name="Mesh_2" >
-       <property name="text" >
+      <widget class="QLabel" name="Mesh_2">
+       <property name="text">
         <string>Mesh</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="PushFichier" >
-       <property name="text" >
+      <widget class="QPushButton" name="PushFichier">
+       <property name="text">
         <string/>
        </property>
-       <property name="autoDefault" >
+       <property name="autoDefault">
         <bool>false</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="LEFileName" >
-       <property name="minimumSize" >
+      <widget class="QLineEdit" name="LEFileName">
+       <property name="minimumSize">
         <size>
          <width>382</width>
          <height>21</height>
      </item>
     </layout>
    </item>
-   <item row="4" column="0" >
+   <item row="4" column="1" colspan="3">
     <spacer>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>0</height>
      </property>
     </spacer>
    </item>
-   <item row="5" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBTypeConf" >
-     <property name="title" >
+   <item row="5" column="0">
+    <widget class="QGroupBox" name="GBTypeConf">
+     <property name="title">
       <string>Conformity type</string>
      </property>
-     <layout class="QHBoxLayout" >
-      <property name="margin" >
-       <number>9</number>
-      </property>
-      <property name="spacing" >
+     <layout class="QHBoxLayout">
+      <property name="spacing">
        <number>6</number>
       </property>
+      <property name="margin">
+       <number>9</number>
+      </property>
       <item>
-       <widget class="QRadioButton" name="RBConforme" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RBConforme">
+        <property name="text">
          <string>Conformal</string>
         </property>
-        <property name="checked" >
+        <property name="checked">
          <bool>true</bool>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RBNonConforme" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RBNonConforme">
+        <property name="text">
          <string>Non conformal</string>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="6" column="0" >
+   <item row="6" column="1">
     <spacer>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>1</height>
      </property>
     </spacer>
    </item>
-   <item row="7" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBTypeNoConf" >
-     <property name="title" >
+   <item row="7" column="0" colspan="3">
+    <widget class="QGroupBox" name="GBTypeNoConf">
+     <property name="title">
       <string>Non conformal option</string>
      </property>
-     <layout class="QHBoxLayout" >
-      <property name="margin" >
-       <number>9</number>
-      </property>
-      <property name="spacing" >
+     <layout class="QHBoxLayout">
+      <property name="spacing">
        <number>6</number>
       </property>
+      <property name="margin">
+       <number>9</number>
+      </property>
       <item>
-       <widget class="QRadioButton" name="RB1NpM" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RB1NpM">
+        <property name="text">
          <string>1 hanging node per mesh</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RB1NpA" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RB1NpA">
+        <property name="text">
          <string>1 node per edge</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RBQuelconque" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RBQuelconque">
+        <property name="text">
          <string>Free</string>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="8" column="0" >
+   <item row="8" column="1" colspan="3">
     <spacer>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>0</height>
      </property>
     </spacer>
    </item>
-   <item row="10" column="0" >
+   <item row="9" column="0" colspan="2">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
+      <number>6</number>
+     </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
+     <item>
+      <widget class="QCheckBox" name="CBBoundaryD">
+       <property name="text">
+        <string>Discrete boundary</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QCheckBox" name="CBBoundaryA">
+       <property name="text">
+        <string>Analytical boundary</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="10" column="1">
     <spacer>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>2</height>
      </property>
     </spacer>
    </item>
-   <item row="2" column="1" >
-    <spacer>
-     <property name="orientation" >
+   <item row="11" column="0" colspan="3">
+    <widget class="QGroupBox" name="GBBoundaryD">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title">
+      <string>Discrete boundary</string>
+     </property>
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="3">
+       <widget class="QPushButton" name="PBBoundaryDiEdit">
+        <property name="text">
+         <string>Edit</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QPushButton" name="PBBoundaryDiNew">
+        <property name="text">
+         <string>New</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QComboBox" name="CBBoundaryDi">
+        <property name="currentIndex">
+         <number>-1</number>
+        </property>
+        <property name="sizeAdjustPolicy">
+         <enum>QComboBox::AdjustToContents</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <spacer>
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeType">
+         <enum>QSizePolicy::Fixed</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>13</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="0" column="4">
+       <widget class="QPushButton" name="PBBoundaryDiHelp">
+        <property name="text">
+         <string>Help</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="12" column="0" colspan="4">
+    <widget class="QGroupBox" name="GBBoundaryA">
+     <property name="minimumSize">
+      <size>
+       <width>548</width>
+       <height>200</height>
+      </size>
+     </property>
+     <property name="title">
+      <string>Analytical boundary</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout">
+      <item row="0" column="0">
+       <widget class="QTableWidget" name="TWBoundary">
+        <property name="editTriggers">
+         <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
+        </property>
+        <property name="showGrid">
+         <bool>true</bool>
+        </property>
+        <property name="rowCount">
+         <number>0</number>
+        </property>
+        <property name="columnCount">
+         <number>1</number>
+        </property>
+        <column>
+         <property name="text">
+          <string>a_virer</string>
+         </property>
+        </column>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <layout class="QGridLayout">
+        <property name="margin">
+         <number>0</number>
+        </property>
+        <property name="spacing">
+         <number>6</number>
+        </property>
+        <item row="1" column="0">
+         <widget class="QPushButton" name="PBBoundaryAnEdit">
+          <property name="text">
+           <string>Edit</string>
+          </property>
+          <property name="autoDefault">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="0">
+         <widget class="QPushButton" name="PBBoundaryAnNew">
+          <property name="text">
+           <string>New</string>
+          </property>
+          <property name="autoDefault">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="0">
+         <widget class="QPushButton" name="PBBoundaryAnHelp">
+          <property name="text">
+           <string>Help</string>
+          </property>
+          <property name="autoDefault">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="13" column="0">
+    <spacer name="spacer">
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
-       <width>20</width>
-       <height>18</height>
+       <width>239</width>
+       <height>41</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="14" column="0">
+    <widget class="QCheckBox" name="CBAdvanced">
+     <property name="text">
+      <string>Advanced options</string>
+     </property>
+    </widget>
+   </item>
+   <item row="15" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBAdvancedOptions">
+     <property name="title">
+      <string>Advanced options</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="0" column="0">
+       <widget class="QCheckBox" name="CBPyramid">
+        <property name="text">
+         <string>Authorized pyramids</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="15" column="2" colspan="2">
+    <spacer name="spacer_3">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Fixed</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>128</width>
+       <height>13</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="16" column="0" colspan="2">
+    <spacer name="spacer_4">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>239</width>
+       <height>41</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="17" column="0" colspan="3">
+    <widget class="QGroupBox" name="GroupButtons">
+     <property name="title">
+      <string/>
+     </property>
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="4">
+       <widget class="QPushButton" name="buttonHelp">
+        <property name="text">
+         <string>Help</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="buttonApply">
+        <property name="text">
+         <string>Apply</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QPushButton" name="buttonOk">
+        <property name="text">
+         <string>OK</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QPushButton" name="buttonCancel">
+        <property name="text">
+         <string>Cancel</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="17" column="3">
+    <spacer name="spacer_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Fixed</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>128</width>
+       <height>25</height>
       </size>
      </property>
     </spacer>
index 4741dc74607481a08b51c61e42d09584f51addcc..9d3dce944f0f5e3e9a3a497d7aa0687c266e636b 100644 (file)
         <source>Advanced options</source>
         <translation>Options avancées</translation>
     </message>
+    <message>
+        <source>Authorized pyramids</source>
+        <translation>Pyramides autorisées</translation>
+    </message>
     <message>
         <source>Minimal diameter</source>
         <translation>Diamètre minimal</translation>
index 477525d1cda8197f38165b9c49ccb1749599a5b0..6934339a0faa7b5708df38fd7501cc9c9a116f3d 100644 (file)
@@ -43,8 +43,10 @@ MonCreateCase::MonCreateCase(QWidget* parent, bool modal, HOMARD::HOMARD_Gen_var
  */
     :
     Ui_CreateCase(),
-    _aCaseName(""),_aDirName(""), _ConfType(1)
-    {
+    _aCaseName(""),_aDirName(""),
+    _ConfType(1),
+    _Pyram(0)
+{
       _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
       setupUi(this);
       setModal(modal);
@@ -55,7 +57,9 @@ MonCreateCase::MonCreateCase(QWidget* parent, bool modal, HOMARD::HOMARD_Gen_var
       GBBoundaryD->setVisible(0);
       GBTypeNoConf->setVisible(0);
       adjustSize();
-    }
+      GBAdvancedOptions->setVisible(0);
+      CBPyramid->setChecked(false);
+}
 
 // ------------------------------------------------------------------------
 MonCreateCase::~MonCreateCase()
@@ -85,6 +89,8 @@ void MonCreateCase::InitConnect()
     connect( PBBoundaryAnEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryAnEdit()) );
     connect( PBBoundaryAnHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryAnHelp()) );
 
+    connect( CBAdvanced,     SIGNAL(stateChanged(int)), this, SLOT(SetAdvanced()));
+
     connect( buttonOk,       SIGNAL(pressed()), this, SLOT(PushOnOK()));
     connect( buttonApply,    SIGNAL(pressed()), this, SLOT(PushOnApply()));
     connect( buttonCancel,   SIGNAL(pressed()), this, SLOT(close()));
@@ -274,6 +280,13 @@ bool MonCreateCase::PushOnApply()
     }
   }
 
+// Options avancees
+  if (CBAdvanced->isChecked())
+  {
+// Autorisation des pyramides
+    if (CBPyramid->isChecked()) { _Pyram = 1 ; }
+  }
+
   HOMARD_UTILS::updateObjBrowser();
   return true;
 }
@@ -499,3 +512,16 @@ void MonCreateCase::CaseNameChanged()
        PushFichier->show();
     }
 }
+// ------------------------------------------------------------------------
+void MonCreateCase::SetAdvanced()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAdvanced ");
+  if (CBAdvanced->isChecked()) { GBAdvancedOptions->setVisible(1); }
+  else
+  { GBAdvancedOptions->setVisible(0);
+    CBPyramid->setChecked(false);
+    _Pyram = 0 ;
+ }
+  adjustSize();
+}
index cb4c62d48e48de89eb5a1e698e27bafda1079f4d..bb6ce4707e56d149754020c8afd7ce5f4ca8333c 100644 (file)
@@ -47,6 +47,8 @@ protected :
 
     int _ConfType;
 
+    int _Pyram;
+
     HOMARD::HOMARD_Cas_var aCase ;
     HOMARD::HOMARD_Gen_var _myHomardGen;
 
@@ -73,6 +75,8 @@ public slots:
     virtual void PushBoundaryAnEdit();
     virtual void PushBoundaryAnHelp();
 
+    virtual void SetAdvanced();
+
     virtual void PushOnOK();
     virtual bool PushOnApply();
     virtual void PushOnHelp();
index 7a1b39631f50a429882c4f1ab480111928dcaafd..199d5460e54d3bb60dabf13ff48000c99c04a737 100644 (file)
@@ -54,7 +54,7 @@ MonEditCase::~MonEditCase()
 void MonEditCase::InitValEdit()
 // ------------------------------
 {
-  MESSAGE("Debut de MonEditCase::InitValEdit");
+  MESSAGE("InitValEdit");
   LECaseName->setText(_aCaseName);
   LECaseName->setReadOnly(true);
 
@@ -179,6 +179,21 @@ void MonEditCase::InitValEdit()
       PBBoundaryDiNew->setVisible(0);
       PBBoundaryDiHelp->setVisible(0); }
   }
+//
+// Les options avancees (non modifiables)
+  CBAdvanced->setVisible(0) ;
+  CBAdvanced->setEnabled(false) ;
+  int Pyram = aCase->GetPyram();
+  MESSAGE("Pyram "<<Pyram);
+  if ( Pyram > 0 )
+  { GBAdvancedOptions->setVisible(1);
+    CBPyramid->setChecked(true);
+    CBPyramid->setEnabled(false);
+  }
+  else
+  { GBAdvancedOptions->setVisible(0);
+    CBPyramid->setChecked(false);
+ }
 //
   adjustSize();
 }
@@ -188,5 +203,4 @@ bool MonEditCase::PushOnApply()
 // -------------------------------------
 {
   return true ;
-
 };
index b01ddbe1283fe597c7548b6e16f9ede337f087c1..e31e58089919af3727fecac53d5badc58c76547f 100644 (file)
@@ -102,12 +102,20 @@ void MonEditHypothesis::InitValEdit()
   CBAdvanced->setVisible(0) ;
   int NivMax = _aHypothesis->GetNivMax();
   double DiamMin = _aHypothesis->GetDiamMin();
-  if ( NivMax > 0 )
+  if ( NivMax > 0 or DiamMin > 0 )
   { GBAdvancedOptions->setVisible(1);
-    spinBoxNivMax->setValue(NivMax);
-    spinBoxNivMax->setDisabled(true);
-    doubleSpinBoxDiamMin->setValue(DiamMin);
-    doubleSpinBoxDiamMin->setDisabled(true);
+    if ( NivMax > 0 )
+    { spinBoxNivMax->setValue(NivMax);
+      spinBoxNivMax->setDisabled(true); }
+    else
+    { TLMaximalLevel->setVisible(0);
+      spinBoxNivMax->setVisible(0); }
+    if ( DiamMin > 0 )
+    { doubleSpinBoxDiamMin->setValue(DiamMin);
+      doubleSpinBoxDiamMin->setDisabled(true); }
+    else
+    { TLMinimalDiameter->setVisible(0);
+      doubleSpinBoxDiamMin->setVisible(0); }
   }
   else
   { GBAdvancedOptions->setVisible(0); }
index a5077680e81c81f8e7b4ad67f8525e2b8cfafe7b..92586a7f0a03c4de92196622df2a80980310b2c6 100755 (executable)
@@ -205,14 +205,14 @@ HOMARD::ListGroupType* HOMARD_Cas_i::GetGroups()
 //=============================================================================
 void HOMARD_Cas_i::AddBoundaryGroup( const char* Boundary, const char* Group)
 {
-  MESSAGE ("Dans AddBoundaryGroup");
+  MESSAGE ("AddBoundaryGroup");
   ASSERT( myHomardCas );
   myHomardCas->AddBoundaryGroup( Boundary, Group );
 }
 //=============================================================================
 HOMARD::ListBoundaryGroupType* HOMARD_Cas_i::GetBoundaryGroup()
 {
-  MESSAGE ("Dans GetBoundaryGroup");
+  MESSAGE ("GetBoundaryGroup");
   ASSERT(myHomardCas );
   const std::list<std::string>& ListString = myHomardCas->GetBoundaryGroup();
   HOMARD::ListBoundaryGroupType_var aResult = new HOMARD::ListBoundaryGroupType();
@@ -226,6 +226,20 @@ HOMARD::ListBoundaryGroupType* HOMARD_Cas_i::GetBoundaryGroup()
   return aResult._retn();
 }
 
+//=============================================================================
+void HOMARD_Cas_i::SetPyram( CORBA::Long Pyram )
+{
+  MESSAGE ("SetPyram, Pyram = " << Pyram );
+  ASSERT( myHomardCas );
+  myHomardCas->SetPyram( Pyram );
+}
+//=============================================================================
+CORBA::Long HOMARD_Cas_i::GetPyram()
+{
+  MESSAGE ("GetPyram");
+  ASSERT( myHomardCas );
+  return myHomardCas->GetPyram();
+}
 //=============================================================================
 std::string HOMARD_Cas_i::Dump() const
 {
index cf63e55ddd371e3ff51abdb2079b87aa00ff59e7..79f7f91d76c2822dbffe406c6ad23cd8cb65a905 100644 (file)
@@ -65,6 +65,9 @@ public:
   HOMARD::ListBoundaryGroupType*  GetBoundaryGroup();
   void                   AddBoundaryGroup( const char* Boundary, const char* Group);
 
+  void                   SetPyram( CORBA::Long Pyram );
+  CORBA::Long            GetPyram();
+
   std::string            Dump() const;
   bool                   Restore( const std::string& stream );
 
index bf9fb00f13b97219a0b23e8456eb5cc28c9d8071..eb4fb142b4e9dc53f794519bd31a42eb4bc17c7c 100755 (executable)
@@ -585,6 +585,9 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* nomCas, const char*
 //
   PublishResultInSmesh(MeshFile, 0);
 
+// Valeurs par defaut des filtrages
+  myCase->SetPyram(0);
+
   return HOMARD::HOMARD_Cas::_duplicate(myCase);
 }
 
@@ -601,6 +604,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::GetCas(const char* nomCas)
       throw SALOME::SALOME_Exception(es);
       return 0;
   };
+
   return HOMARD::HOMARD_Cas::_duplicate(myCase);
 }
 
@@ -991,7 +995,7 @@ HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneDiskWithHole(const char* ZoneNam
 
 
 //=============================================================================
-CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatMenage)
+CORBA::Long HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatMenage)
 {
   MESSAGE ( "Compute : calcul de " << nomIteration );
   IsValidStudy () ;
@@ -1007,7 +1011,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
       es.type = SALOME::BAD_PARAM;
       es.text = "This iteration is the first of the case and cannot be computed.";
       throw SALOME::SALOME_Exception(es);
-      return 0;
+      return 1;
   };
 
 // on verifie qu il y a une hypothese (erreur improbable);
@@ -1018,7 +1022,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
       es.type = SALOME::BAD_PARAM;
       es.text= "This iteration does not have any associated hypothesis.";
       throw SALOME::SALOME_Exception(es);
-      return 0;
+      return 2;
   }
   HOMARD::HOMARD_Hypothesis_var myHypo = myContextMap[GetCurrentStudyID()]._mesHypotheses[nomHypo];
   ASSERT(!CORBA::is_nil(myHypo));
@@ -1038,7 +1042,12 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
       throw SALOME::SALOME_Exception(es);
       return 0;
       */
-      Compute(nomIterationParent, etatMenage);
+      int codret = Compute(nomIterationParent, etatMenage);
+      if (codret != 0)
+      {
+        // GERALD -- QMESSAGE BOX
+        ASSERT("Pb au calcul de l'iteration precedente" == 0);
+      }
   };
 
   const char* nomCas = myIteration->GetCaseName();
@@ -1119,7 +1128,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
           std::string text = "Directory : " + DirCompute.str() + "is not empty";
           es.text = CORBA::string_dup(text.c_str());
           throw SALOME::SALOME_Exception(es);
-          return false;
+          return 3;
        }
     }
   }
@@ -1176,7 +1185,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
           std::string text = "MeshFile : " + std::string(MeshFile) + " already exists ";
           es.text = CORBA::string_dup(text.c_str());
           throw SALOME::SALOME_Exception(es);
-          return false;
+          return 4;
      }
      else
      {
@@ -1189,7 +1198,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
           std::string text = "PB with meshfile destruction ";
           es.text = CORBA::string_dup(text.c_str());
           throw SALOME::SALOME_Exception(es);
-          return false;
+          return 5;
          }
       }
   }
@@ -1427,14 +1436,13 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
     }
   }
   // E.7. Ajout des options avancees
+  int Pyram = myCase->GetPyram();
+  MESSAGE ( ". Pyram = " << Pyram );
   int NivMax = myHypo->GetNivMax();
   MESSAGE ( ". NivMax = " << NivMax );
-  if ( NivMax > 0 )
-  {
-    double DiamMin = myHypo->GetDiamMin();
-    MESSAGE ( ". DiamMin = " << DiamMin );
-    myDriver->TexteAdvanced(NivMax, DiamMin);
-  }
+  double DiamMin = myHypo->GetDiamMin() ;
+  MESSAGE ( ". DiamMin = " << DiamMin );
+  myDriver->TexteAdvanced(Pyram, NivMax, DiamMin);
 
   // F. Ecriture du texte dans le fichier
   if (codret == 0)
@@ -1444,11 +1452,12 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
 
 // G. Execution
 //
-  int codretexec = 1 ;
+  int codretexec = 12 ;
   if (codret == 0)
   {
     codretexec = myDriver->ExecuteHomard();
 //
+    MESSAGE ( "Erreur en executant HOMARD : " << codretexec );
     if (codretexec == 0)
     {
       SetEtatIter(nomIteration,true);
@@ -1509,8 +1518,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
     delete myDriver;
   }
   //
-  if (codret == 0) { return true; }
-  else { return false; }
+  return codretexec ;
 }
 
 //===========================================================================
index 85dd7aa86438b48e13234b26d97535cbe75dea21..8c8fb943893fb9f511f49a03befc73287570052e 100644 (file)
@@ -128,7 +128,7 @@ public:
 
   char*                           GetCaseName(const char* nomIteration);
 
-  CORBA::Boolean                  Compute(const char* nomIteration, CORBA::Long etatMenage);
+  CORBA::Long                     Compute(const char* nomIteration, CORBA::Long etatMenage);
   CORBA::Boolean                  VerifieDir(const char* nomDir);
 
   void                            PublishResultInSmesh(const char* NomFich, CORBA::Long IconeType);
index 77e983a393410e74604b706289f77fa330f72295..9b8851a6152cfa7c30caffee5ae679f73c1c636f 100644 (file)
@@ -166,7 +166,7 @@ void HOMARD_Iteration_i::AddIteration( const char* NomIter )
 }
 
 //=============================================================================
-CORBA::Boolean  HOMARD_Iteration_i::Compute(CORBA::Long etatMenage)
+CORBA::Long  HOMARD_Iteration_i::Compute(CORBA::Long etatMenage)
 {
   MESSAGE ( "Compute : calcul d'une iteration" );
   ASSERT( myHomardIteration );
index 8a899254ed788c2af29e4db3730e92b44bbb1903..d7df0313ca605fa5bebb9f87f9bdb3e9eef05bfe 100644 (file)
@@ -84,7 +84,7 @@ public:
   void                   SetHypoName( const char* NomHypo );
   char*                  GetHypoName();
 
-  CORBA::Boolean         Compute(CORBA::Long etatMenage);
+  CORBA::Long            Compute(CORBA::Long etatMenage);
 
   std::string            Dump() const;
   bool                   Restore( const std::string& stream );