]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
Merge from V6_main 13/12/2012 V7_1_0_pre
authorvsr <vsr@opencascade.com>
Thu, 13 Dec 2012 12:47:29 +0000 (12:47 +0000)
committervsr <vsr@opencascade.com>
Thu, 13 Dec 2012 12:47:29 +0000 (12:47 +0000)
34 files changed:
doc/gui_create_case.rst
doc/gui_create_hypothese.rst
doc/images/create_hypothese_av_1.png
doc/tui_create_boundary.rst
doc/tui_create_case.rst
doc/tui_create_hypothese.rst
doc/tui_create_iteration.rst
doc/tui_create_zone.rst
idl/HOMARD_Hypothesis.idl
src/HOMARD/HOMARD_DriverTools.cxx
src/HOMARD/HOMARD_Hypothesis.cxx
src/HOMARD/HOMARD_Hypothesis.hxx
src/HOMARD/HOMARD_Iteration.cxx
src/HOMARD/HomardDriver.cxx
src/HOMARD/HomardDriver.hxx
src/HOMARDGUI/CreateHypothesis.h
src/HOMARDGUI/CreateHypothesis.ui
src/HOMARDGUI/CreateIteration.h
src/HOMARDGUI/CreateIteration.ui
src/HOMARDGUI/HOMARD_msg_fr.ts
src/HOMARDGUI/Makefile.am
src/HOMARDGUI/MonCreateHypothesis.cxx
src/HOMARDGUI/MonCreateHypothesis.h
src/HOMARDGUI/MonCreateIteration.cxx
src/HOMARDGUI/MonEditHypothesis.cxx
src/HOMARDGUI/MonEditIteration.cxx
src/HOMARD_I/HOMARD_Gen_i.cxx
src/HOMARD_I/HOMARD_Gen_i.hxx
src/HOMARD_I/HOMARD_Hypothesis_i.cxx
src/HOMARD_I/HOMARD_Hypothesis_i.hxx
src/HOMARD_I/Makefile.am
tests/test_1.py
tests/test_2.py
tests/test_3.py

index 5758e8e9713aef9d86d4f1ebc030dc8d37943b5d..aaac4a777aebb3cafe84ee0996074e633efdcfd9 100644 (file)
@@ -97,6 +97,7 @@ Par d
    - 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 a3bb4b1d69afb9fb524452d44adec212f70b3661..ea7f004e338e3962b300d62218e62b36537540e8 100644 (file)
@@ -113,8 +113,9 @@ Si la case est coch
 
 Une première série d'options portent sur la finesse maximale de maillage que l'on ne veut pas dépasser. Deux directives sont possibles, séparément ou ensemble. On peut imposer une taille de maille minimale : une maille dont le diamètre est inférieur à cette limite ne sera plus découpée. Par défaut, on propose un diamètre minimal nul, ce qui revient à ne rien imposer. On peut imposer un niveau de raffinement maximal. Par défaut, le maximum est à 99, ce qui équivaut en général à ne rien imposer.
 
-La seconde série d'options n'a d'intérêt que dans le cas où l'adaptation est piloté par un champ et que ce champ n'est pas défini partout dans le maillage. Cela arrive par exemple quand on construit un champ basé sur une distance dans un plan alors que le domaine est 3D : le champ ne sera pas défini sur les noeuds hors du plan. Pour de tels champs, cette option permet de préciser le comportement que l'on souhaite dans les régions où le champ n'est pas défini. Par défaut, il ne se passe rien : les mailles sont gardées telles quelles. On peut choisir les deux autres variantes : raffiner, toutes les mailles seront a priori coupées, ou déraffiner, toutes les mailles seront candidates au déraffinement.
+La deuxième série d'options n'a d'intérêt que dans le cas où l'adaptation est piloté par un champ et que ce champ n'est pas défini partout dans le maillage. Cela arrive par exemple quand on construit un champ basé sur une distance dans un plan alors que le domaine est 3D : le champ ne sera pas défini sur les noeuds hors du plan. Pour de tels champs, cette option permet de préciser le comportement que l'on souhaite dans les régions où le champ n'est pas défini. Par défaut, il ne se passe rien : les mailles sont gardées telles quelles. On peut choisir les deux autres variantes : raffiner, toutes les mailles seront a priori coupées, ou déraffiner, toutes les mailles seront candidates au déraffinement.
 
+Le dernier choix porte sur une sortie supplémentaire de l'adaptation. Si la case est cochée, le fichier MED en sortie contiendra un champ contenant le niveau de raffinement de chaque maille. La convention est celle de HOMARD : une maille du maillage initial est de niveau 0, une maille issue d'un raffinement d'une maille initiale porte le niveau 1, etc. Les mailles de transition qui sont produites entre deux mailles de niveau différents, n et n+1, sont affectées du demi-niveau n+0,5. Par défaut, la case n'est pas cochée et le champ n'est pas produit.
 
 .. image:: images/create_hypothese_av_1.png
    :align: center
index d6eae0a539782d74651b3726f6788ba97800897c..0950d13813bcd5c72cf0abf5bc01b5689e558b4a 100644 (file)
Binary files a/doc/images/create_hypothese_av_1.png and b/doc/images/create_hypothese_av_1.png differ
index 9b2992b1c096cf1091345a9235f5f24f0bffc913..73bf0cddcb71c45dd1199d8d6a588a814243e5c5 100644 (file)
 .. _tui_create_boundary:
 
-La frontière
-============
-
-.. index:: single: boundary
-.. index:: single: frontière
-.. index:: single: cylindre
-.. index:: single: sphere
-
-Les variables sont décrites dans :ref:`gui_create_boundary`.
-
-Méthodes de la classe homard
-""""""""""""""""""""""""""""
-Ces méthodes retournent une instance de la classe boundary.
-
-+----------------------------------------------------------------------------------------+
-+----------------------------------------------------------------------------------------+
-| .. module:: CreateBoundaryDi                                                           |
-|                                                                                        |
-| **CreateBoundaryDi(boundary_name, mesh_name, mesh_file)**                              |
-|                                                                                        |
-|     - ``boundary_name`` : le nom de la frontière discrète                              |
-|     - ``mesh_name`` : le nom du maillage de la frontière                               |
-|     - ``mesh_file`` : le nom du fichier contenant ce maillage                          |
-+----------------------------------------------------------------------------------------+
-| .. module:: CreateBoundaryCylinder                                                     |
-|                                                                                        |
-| **CreateBoundaryCylinder(boundary_name, Xcen, Ycen, Zcen, Xaxe, Yaxe, Zaxe, R)**       |
-|                                                                                        |
-|     - ``boundary_name`` : le nom de la frontière analytique basée sur un cylindre      |
-|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées d'un point sur l'axe du cylindre      |
-|     - ``Xaxe``, ``Yaxe``, ``Zaxe`` : vecteur de l'axe                                  |
-|     - ``R`` : rayon du cylindre                                                        |
-+----------------------------------------------------------------------------------------+
-| .. module:: CreateBoundarySphere                                                       |
-|                                                                                        |
-| **CreateBoundarySphere(boundary_name, Xcen, Ycen, Zcen, R)**                           |
-|                                                                                        |
-|     - ``boundary_name`` : le nom de la frontière analytique basée sur une sphere       |
-|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées du centre de la sphère                |
-|     - ``R`` : rayon de la sphère                                                       |
-+----------------------------------------------------------------------------------------+
-
-Méthodes de la classe boundary
-""""""""""""""""""""""""""""""
-
-+-------------------------------------------------------------------+
-+-------------------------------------------------------------------+
-| .. module:: GetName                                               |
-|                                                                   |
-| **GetName()**                                                     |
-|     Retourne le nom de la frontière                               |
-+-------------------------------------------------------------------+
-| .. module:: GetBoundaryType                                       |
-|                                                                   |
-| **GetBoundaryType()**                                             |
-|     Retourne le type de la frontière :                            |
-|                                                                   |
-|         * 0 : discrète                                            |
-|         * 1 : cylindre                                            |
-|         * 2 : sphère                                              |
-+-------------------------------------------------------------------+
-| .. module:: GetCoords                                             |
-|                                                                   |
-| **GetCoords()**                                                   |
-|     Retourne un tableau contenant les coordonnées de la frontière |
-|     dans l'ordre d'entrée dans le CreateBoundaryXXXX associé      |
-+-------------------------------------------------------------------+
-
-
-Exemple
-"""""""
-Création d'une frontière discrète, d'une frontière sphèrique, puis d'une frontière cylindrique : ::
-
-    inter = homard.CreateBoundaryDi("INTERSECTION", 'PIQUAGE', dircase+'/tutorial_4.fr.med')
-    fron_1 = homard.CreateBoundarySphere("FRON_1", 12.3, 3.4, .56, 6.5)
-    fron_2 = homard.CreateBoundaryCylinder('CYL_1', 0.0, 25., -25., 25., 50., 75., 100.)
-
-
-Saisie graphique correspondante
+L'hypothèse
+===========
+.. index:: single: hypothèse
+
+L'hypothèse contient toutes les paramètres de pilotage d'une adaptation d'un maillage. Cette opération permet de réaliser l'itération à laquelle elle est attachée.
+
+Il existe trois classes d'hypothèses :
+
+  - Uniforme sur tout le maillage,
+  - Selon un champ,
+  - En fonction de zone géométrique.
+
+.. image:: images/create_hypothese_1.png
+   :align: center
+
+
+Nom de l'hypothèse
+""""""""""""""""""
+Un nom de l'hypothèse est proposé automatiquement : Hypo_1, Hypo_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une hypothèse précédente.
+
+Adaptation uniforme
+"""""""""""""""""""
+Par défaut on propose un raffinement uniforme. Quand on part d'un maillage qui a déjà été raffiné, l'option de déraffinement supprimera les mailles produites.
+
+Adaptation selon un champ
+"""""""""""""""""""""""""
+
+.. note::
+  Pour pouvoir adapter le maillage selon un champ il faut avoir au préalable désigné le fichier med contenant le champ. Cela se fait dans la fenêtre de construction de l'itération (voir :ref:`gui_create_iteration`). Le nom du fichier qui a été sélectionné est affiché sans modification possible ici :
+
+.. image:: images/create_hypothese_ch_1.png
+   :align: center
+
+Le champ voulu est à choisir dans la liste des champs contenus dans le fichier.
+Une fois ce champ choisi, la liste des ses composantes s'affiche. Il suffit de désigner la (ou les) composantes désirées.
+
+Si l'on choisit une seule composante, par défaut, c'est sa valeur absolue qui sera utilisée, mais il est possible d'utiliser la valeur relative. Dans le cas de plusieurs composantes, par défaut HOMARD utilisera la norme L2 (euclidienne). On peut toutefois choisir d'utiliser la norme infinie (le max des valeurs absolues des composantes).
+
+On peut choisir de ne pas utiliser directement le champ, mais sa variation d'un élément à ses voisins. Pour cela, on activera le bouton "*Saut entre éléments*".
+
+.. image:: images/create_hypothese_ch_2.png
+   :align: center
+
+
+Le raffinement se fait selon un seuil qui définit un critère haut de raffinement. Toutes les mailles pour lesquelles l'indicateur est supérieur à ce critère seront raffinées.
+Pour le choix du critère, trois variantes sont possible :
+
+  - selon un pourcentage de mailles à raffiner, nombre réel compris entre 0 et 100 ; HOMARD raffinera les x% des mailles qui ont la plus grande valeur du champ.
+  - selon une valeur relative du champ, nombre compris entre 0 et 100 ; HOMARD raffinera les mailles où le champ est supérieur à x% de l'intervalle [mini,maxi].
+  - selon une valeur absolue ; toutes les mailles avec une valeur de champ supérieure à cette valeur seront raffinées.
+
+La même convention s'applique au déraffinement, en remplaçant supérieur par inférieur. On peut inactiver une des fonctions (raffinement ou déraffinement) en cochant le bouton ad_hoc.
+
+.. image:: images/create_hypothese_ch_3.png
+   :align: center
+
+
+Adaptation selon une zone
+"""""""""""""""""""""""""
+.. index:: single: zone
+
+Au démarrage, il faut créer une première zone par activation du bouton "*Nouveau*" (voir :ref:`gui_create_zone`) :
+
+.. image:: images/create_hypothese_zo_1.png
+   :align: center
+
+Lorsque des zones ont déjà été créées, la liste apparaît dans la fenêtre, ce qui permet de sélectionner les zones voulues. On doit alors préciser si une zone est utilisée pour raffiner toutes les mailles dont une arête est contenue dans la zone, ou si la zone est utilisée pour déraffiner les mailles intérieures à la zone. Si aucun choix n'est fait, la zone est ignorée dans cette hypothèse.
+
+.. image:: images/create_hypothese_zo_2.png
+   :align: center
+
+
+Filtrage par les groupes
+""""""""""""""""""""""""
+.. index:: single: groupe
+
+On peut restreindre l'application de l'hypothèse d'adaptation à des groupes. Ainsi les mailles n'appartenant pas à ces groupes ne seront pas modidiées, sauf par contamination ultérieure du raffinement pour assurer la conformité du maillage final.
+On coche le bouton associé :
+
+.. image:: images/create_hypothese_gr_1.png
+   :align: center
+
+La liste des groupes de mailles présents dans le maillage est affichée. Il suffit de cocher ceux voulus pour restreindre l'hypothèse d'adaptation.
+
+.. image:: images/create_hypothese_gr_2.png
+   :align: center
+
+
+Interpolation de champs
+"""""""""""""""""""""""
+.. index:: single: interpolation
+
+.. note::
+  Pour pouvoir interpoler un champ de l'ancien vers le nouveau maillage, il faut avoir au préalable désigné le fichier med contenant le champ. Cela se fait dans la fenêtre de construction de l'itération (voir :ref:`gui_create_iteration`).
+
+Par défaut, aucun champ n'est interpolé. A contrario, on peut demander l'interpolation de tous les champs présents dans le fichier fourni :
+
+.. image:: images/create_hypothese_ch_4.png
+   :align: center
+
+Si on veut choisir les champs à interpoler, il faut les cocher dans la liste de tous les champs présents dans le fichier fourni :
+
+.. image:: images/create_hypothese_ch_5.png
+   :align: center
+
+
+Les options avancées
+""""""""""""""""""""
+Si la case "Options avancées" n'est pas cochée, aucune contrainte supplémentaire n'est définie.
+Si la case est cochée, on définira les options avancées.
+
+Une première série d'options portent sur la finesse maximale de maillage que l'on ne veut pas dépasser. Deux directives sont possibles, séparément ou ensemble. On peut imposer une taille de maille minimale : une maille dont le diamètre est inférieur à cette limite ne sera plus découpée. Par défaut, on propose un diamètre minimal nul, ce qui revient à ne rien imposer. On peut imposer un niveau de raffinement maximal. Par défaut, le maximum est à 99, ce qui équivaut en général à ne rien imposer.
+
+La deuxième série d'options n'a d'intérêt que dans le cas où l'adaptation est piloté par un champ et que ce champ n'est pas défini partout dans le maillage. Cela arrive par exemple quand on construit un champ basé sur une distance dans un plan alors que le domaine est 3D : le champ ne sera pas défini sur les noeuds hors du plan. Pour de tels champs, cette option permet de préciser le comportement que l'on souhaite dans les régions où le champ n'est pas défini. Par défaut, il ne se passe rien : les mailles sont gardées telles quelles. On peut choisir les deux autres variantes : raffiner, toutes les mailles seront a priori coupées, ou déraffiner, toutes les mailles seront candidates au déraffinement.
+
+Le dernier choix porte sur une sortie supplémentaire de l'adaptation. Si la case est cochée, le fichier MED en sortie contiendra un champ contenant le niveau de raffinement de chaque maille. La convention est celle de HOMARD : une maille du maillage initial est de niveau 0, une maille issue d'un raffinement d'une maille initiale porte le niveau 1, etc. Les mailles de transition qui sont produites entre deux mailles de niveau différents, n et n+1, sont affectées du demi-niveau n+0,5. Par défaut, la case n'est pas cochée et le champ n'est pas produit.
+
+.. image:: images/create_hypothese_av_1.png
+   :align: center
+
+.. index:: single: arbre d'étude
+
+L'arbre d'étude
+"""""""""""""""
+.. index:: single: arbre d'étude
+
+L'arbre d'études contient les hypothèses créées et les itérations qui les utilisent. La description des zones qui leur sont éventuellement attachées est présente.
+
+.. image:: images/create_hypothese_2.png
+   :align: center
+
+
+
+Méthodes python correspondantes
 """""""""""""""""""""""""""""""
-Consulter :ref:`gui_create_boundary`
+Consulter :ref:`tui_create_hypothese`
index 202c79150cad371176d1bd20176a40ab2a229101..f7ec74735b357bf049706cd930bde5ff8adee364 100644 (file)
@@ -16,7 +16,8 @@ M
 | .. module:: CreateCase                                        |
 |                                                               |
 | **CreateCase(case_name, mesh_name, mesh_file)**               |
-|     Retourne une instance de la classe cas                    |
+|     Retourne une instance de la classe ``cas`` après sa       |
+|     création                                                  |
 |                                                               |
 |     - ``case_name`` : le nom du cas                           |
 |     - ``mesh_name`` : le nom du maillage initial              |
@@ -27,6 +28,20 @@ M
 |  * le répertoire des résultats est ``/tmp``                   |
 |  * l'adaptation est conforme                                  |
 +---------------------------------------------------------------+
+| .. module:: GetCase                                           |
+|                                                               |
+| **GetCase(case_name)**                                        |
+|     Retourne l'instance de la classe ``cas`` connue par       |
+|     son nom                                                   |
+|                                                               |
+|     - ``case_name`` : le nom du cas                           |
++---------------------------------------------------------------+
+| .. module:: GetAllCases                                       |
+|                                                               |
+| **GetAllCases()**                                             |
+|     Retourne la liste des noms de tous les cas créés          |
+|                                                               |
++---------------------------------------------------------------+
 
 
 Méthodes de la classe cas
@@ -42,6 +57,7 @@ M
 | .. module:: SetDirName                                        |
 |                                                               |
 | **SetDirName(dirname)**                                       |
+|     Affecte le répertoire des résutats associé au cas         |
 |                                                               |
 |     - ``dirname`` : le nom du répertoire des résutats         |
 +---------------------------------------------------------------+
@@ -53,6 +69,7 @@ M
 | .. module:: SetConfType                                       |
 |                                                               |
 | **SetConfType(conf_type)**                                    |
+|     Définit le mode de conformité associé au cas              |
 |                                                               |
 |     - ``conf_type`` : entier précisant le mode de conformité  |
 |                                                               |
@@ -70,12 +87,13 @@ M
 |                                                               |
 | **GetIter0Name()**                                            |
 |     Retourne le nom de l'itération 0, associée au maillage    |
-|     initial. Ce nom est mis automatiquement par le module     |
+|     initial. Ce nom est créé automatiquement par le module    |
 |     HOMARD et doit être utilisé pour enchaîner les adaptations|
 +---------------------------------------------------------------+
 | .. module:: AddBoundaryGroup                                  |
 |                                                               |
 | **AddBoundaryGroup(boundary, group)**                         |
+|     Ajoute une frontière à la définition du cas               |
 |                                                               |
 |     - ``boundary`` : nom d'une frontière courbe à suivre      |
 |                                                               |
@@ -100,6 +118,7 @@ Les options avanc
 | .. module:: SetPyram                                          |
 |                                                               |
 | **SetPyram(option)**                                          |
+|     Définit le statut des pyramides pour le cas               |
 |                                                               |
 |     - ``option`` : entier précisant le statut des pyramides   |
 |       éventuellement présentes dans le maillage initial       |
index b9b7d85f17b1626cf1edb5602842c118c00cf62a..1f0396f36bbcbec3bc3b3c3680baa28165675003 100644 (file)
@@ -17,7 +17,7 @@ M
 | .. module:: CreateHypothesis                                  |
 |                                                               |
 | **CreateHypothesis(hypo_name)**                               |
-|     Retourne une instance de la classe hypothese              |
+|     Retourne une instance de la classe ``hypothese``          |
 |                                                               |
 |     - ``hypo_name`` : le nom de l'hypothèse                   |
 +---------------------------------------------------------------+
@@ -32,6 +32,20 @@ M
 |         * 1 : raffinement                                     |
 |         * -1 : déraffinement                                  |
 +---------------------------------------------------------------+
+| .. module:: GetHypothesis                                     |
+|                                                               |
+| **GetHypothesis(hypo_name)**                                  |
+|     Retourne l'instance de la classe ``hypothese`` connue par |
+|     son nom                                                   |
+|                                                               |
+|     - ``hypo_name`` : le nom de l'hypothèse                   |
++---------------------------------------------------------------+
+| .. module:: GetAllHypotheses                                  |
+|                                                               |
+| **GetAllHypotheses()**                                        |
+|     Retourne la liste des noms de toutes les hypothèses créées|
+|                                                               |
++---------------------------------------------------------------+
 
 Méthodes de la classe hypothese
 """""""""""""""""""""""""""""""
@@ -49,6 +63,7 @@ G
 | .. module:: SetAdapRefinUnRef                                 |
 |                                                               |
 | **SetAdapRefinUnRef(Adap, Refin, UnRef)**                     |
+|     Affecte le mode d'adaptation associé à l'hypothèse        |
 |                                                               |
 |     - ``Adap`` : entier précisant le type d'adaptation        |
 |                                                               |
@@ -91,6 +106,7 @@ Le champ et les seuils
 | .. module:: SetField                                          |
 |                                                               |
 | **SetField(field_name)**                                      |
+|     Attribue un nom de champ à l'hypothèse                    |
 |                                                               |
 |     - ``field_name`` : le nom du champ                        |
 +---------------------------------------------------------------+
@@ -102,6 +118,7 @@ Le champ et les seuils
 | .. module:: SetUseField                                       |
 |                                                               |
 | **SetUseField(use_field)**                                    |
+|     Attribue un mode d'usage du champ à l'hypothèse           |
 |                                                               |
 |     - ``use_field`` : entier précisant l'usage du champ       |
 |                                                               |
@@ -111,6 +128,7 @@ Le champ et les seuils
 | .. module:: SetRefinThr                                       |
 |                                                               |
 | **SetRefinThr(type_thres, threshold)**                        |
+|     Définit les seuils en raffinement                         |
 |                                                               |
 |     - ``type_thres`` : entier précisant le type de seuil en   |
 |       raffinement                                             |
@@ -129,6 +147,7 @@ Le champ et les seuils
 | .. module:: SetUnRefThr                                       |
 |                                                               |
 | **SetUnRefThr(type_thres, threshold)**                        |
+|     Définit les seuils en déraffinement                       |
 |                                                               |
 |     - ``type_thres`` : entier précisant le type de seuil en   |
 |       déraffinement                                           |
@@ -154,6 +173,7 @@ Les composantes du champ
 | .. module:: AddComp                                           |
 |                                                               |
 | **AddComp(comp_name)**                                        |
+|     Ajoute une composante du champ à considérer               |
 |                                                               |
 |     - ``comp_name`` : nom d'une composante à prendre en       |
 |       compte                                                  |
@@ -161,6 +181,7 @@ Les composantes du champ
 | .. module:: SetUseComp                                        |
 |                                                               |
 | **SetUseComp(use_comp)**                                      |
+|     Définit l'usage des composantes                           |
 |                                                               |
 |     - ``use_comp`` : entier précisant l'usage des composantes |
 |                                                               |
@@ -182,6 +203,7 @@ Le filtrage par les groupes
 | .. module:: AddGroup                                          |
 |                                                               |
 | **AddGroup(group_name)**                                      |
+|     Ajoute un groupe au filtrage                              |
 |                                                               |
 |     - ``group_name`` : nom du groupe à prendre en compte      |
 +---------------------------------------------------------------+
@@ -199,6 +221,7 @@ Les options avanc
 | .. module:: SetNivMax                                         |
 |                                                               |
 | **SetNivMax(nivmax)**                                         |
+|     Définit le niveau maximal de raffinement                  |
 |                                                               |
 |     - ``nivmax`` : niveau de raffinement à ne pas dépasser    |
 +---------------------------------------------------------------+
@@ -210,6 +233,7 @@ Les options avanc
 | .. module:: SetDiamMin                                        |
 |                                                               |
 | **SetDiamMin(diammin)**                                       |
+|     Définit le diamètre minimal des futures mailles           |
 |                                                               |
 |     - ``diammin`` : diamètre minimal voulu pour une maille    |
 +---------------------------------------------------------------+
@@ -218,6 +242,41 @@ Les options avanc
 | **GetDiamMin()**                                              |
 |     Retourne le diamètre minimal voulu                        |
 +---------------------------------------------------------------+
+| .. module:: SetAdapInit                                       |
+|                                                               |
+| **SetAdapInit(option)**                                       |
+|     Définit le traitement à appliquer aux mailles où          |
+|     le champ de pilotage du raffinement n'est pas défini      |
+|                                                               |
+|     - ``option`` : entier précisant le choix retenu           |
+|                                                               |
+|         *  0 : aucun effet (défaut)                           |
+|         *  1 : les mailles sans indicateurs sont raffinées    |
+|         * -1 : les mailles sans indicateurs sont déraffinées  |
++---------------------------------------------------------------+
+| .. module:: GetAdapInit                                       |
+|                                                               |
+| **GetAdapInit()**                                             |
+|     Retourne le type de traitement à appliquer aux mailles où |
+|     le champ de pilotage du raffinement n'est pas défini      |
++---------------------------------------------------------------+
+| .. module:: SetLevelOutput                                    |
+|                                                               |
+| **SetLevelOutput(option)**                                    |
+|     Précise si on veut récupérer le niveau de raffinement des |
+|     mailles sous la forme d'un champ                          |
+|                                                               |
+|     - ``option`` : entier précisant le choix retenu           |
+|                                                               |
+|         *  0 : aucun effet (défaut)                           |
+|         *  1 : le champ est produit                           |
++---------------------------------------------------------------+
+| .. module:: GetLevelOutput                                    |
+|                                                               |
+| **GetLevelOutput()**                                          |
+|     Retourne le choix retenu pour la récupération du niveau   |
+|     de raffinement                                            |
++---------------------------------------------------------------+
 
 
 Exemple
index a9590dcf5c1f125f6c3adc6c912a43fc83bb5d69..855cf6e1a1bc3415f9475e7d85ffe6d716169cad 100644 (file)
@@ -17,7 +17,8 @@ M
 | .. module:: CreateIteration                                   |
 |                                                               |
 | **CreateIteration(iter_name, iter_parent_name)**              |
-|     Retourne une instance de la classe iteration              |
+|     Retourne une instance de la classe ``iteration`` après    |
+|     sa création                                               |
 |                                                               |
 |     - ``iter_name`` : le nom de l'itération                   |
 |     - ``iter_parent_name`` : le nom de l'itération mère       |
@@ -29,10 +30,25 @@ M
 | .. module:: AssociateIterHypo                                 |
 |                                                               |
 | **AssociateIterHypo(iter_name, hypo_name)**                   |
+|     Associe une hypothèse à une itération                     |
 |                                                               |
 |     - ``iter_name`` : le nom de l'itération                   |
 |     - ``hypo_name`` : le nom de l'hypothèse à associer        |
 +---------------------------------------------------------------+
+| .. module:: GetIteration                                      |
+|                                                               |
+| **GetIteration(iter_name)**                                   |
+|     Retourne l'instance de la classe ``iteration`` connue par |
+|     son nom                                                   |
+|                                                               |
+|     - ``iter_name`` : le nom de l'itération                   |
++---------------------------------------------------------------+
+| .. module:: GetAllIterations                                  |
+|                                                               |
+| **GetAllIterations()**                                        |
+|     Retourne la liste des noms de toutes les itérations créées|
+|                                                               |
++---------------------------------------------------------------+
 
 Méthodes de la classe iteration
 """""""""""""""""""""""""""""""
@@ -108,6 +124,7 @@ Informations sur les maillages
 | .. module:: SetMeshFile                                       |
 |                                                               |
 | **SetMeshFile(mesh_file)**                                    |
+|     Définit le fichier du maillage produit                    |
 |                                                               |
 |     - ``mesh_file`` : le nom du fichier qui contiendra        |
 |       le maillage produit                                     |
@@ -126,12 +143,16 @@ Informations sur le champ
 | .. module:: SetFieldFile                                      |
 |                                                               |
 | **SetFieldFile(field_file)**                                  |
+|     Définit le fichier des champs utiles                      |
 |                                                               |
 |     - ``field_file`` : le nom du fichier contenant le champ   |
 +---------------------------------------------------------------+
 | .. module:: SetTimeStepRank                                   |
 |                                                               |
 | **SetTimeStepRank(TimeStep, Rank)**                           |
+|     Définit les instants pour le champ                        |
+|                                                               |
+|     Inutile si aucun instant n'est défini pour le champ       |
 |                                                               |
 |     - ``TimeStep`` : l'instant où est pris le champ           |
 |     - ``Rank`` : le numéro d'ordre où est pris le champ       |
@@ -160,7 +181,8 @@ Pour la cr
 
     iter_name = "Iteration_1"
     iter_1 = homard.CreateIteration(iter_name, case_1.GetIter0Name())
-    iter_1.SetField(field_file, 0, 0)
+    iter_1.SetField(field_file)
+    iter_1.SetTimeStepRank( 0, 0)
     iter_1.SetMeshName("maill_01")
     iter_1.SetMeshFile("/local00/M.01.med")
     homard.AssociateIterHypo(iter_name, "HypoField")
@@ -170,7 +192,8 @@ Pour la cr
 
     iter_name = "Iteration_2"
     iter_2 = homard.CreateIteration(iter_name, "Iteration_1")
-    iter_2.SetField(field_file, 0, 0)
+    iter_2.SetField(field_file)
+    iter_2.SetTimeStepRank( 1, 1)
     iter_2.SetMeshName("maill_02")
     iter_2.SetMeshFile("/local00/M.02.med")
     homard.AssociateIterHypo(iter_name, "HypoField")
index 9911c413c5c7f4d12e50494c0ee91b3afae56ea1..ea36905d9f4e1c020a64526c2a8a942da8f43ddf 100644 (file)
@@ -24,6 +24,8 @@ Ces m
 | .. module:: CreateZoneBox                                                        |
 |                                                                                  |
 | **CreateZoneBox(zone_name, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)**                 |
+|     Retourne une instance de la classe ``zone`` de type parallélépipèdique       |
+|     après sa création                                                            |
 |                                                                                  |
 |     - ``zone_name`` : le nom de la zone basée sur un parallélépipède             |
 |     - ``Xmin``, ``Xmax`` : coordonnées extrêmes selon X                          |
@@ -33,6 +35,8 @@ Ces m
 | .. module:: CreateZoneCylinder                                                   |
 |                                                                                  |
 | **CreateZoneCylinder(zone_name, Xbase, Ybase, Zbase, Xaxe, Yaxe, Zaxe, R, H)**   |
+|     Retourne une instance de la classe ``zone`` de type cylindrique              |
+|     après sa création                                                            |
 |                                                                                  |
 |     - ``zone_name`` : le nom de la zone basée sur un cylindre                    |
 |     - ``Xbase``, ``Ybase``, ``Zbase`` : coordonnées d'un point de base           |
@@ -44,6 +48,8 @@ Ces m
 | .. module:: CreateZonePipe                                                       |
 |                                                                                  |
 | **CreateZonePipe(zone_name, Xbase, Ybase, Zbase, Xaxe, Yaxe, Zaxe, R, H, Rint)** |
+|     Retourne une instance de la classe ``zone`` de type tuyau                    |
+|     après sa création                                                            |
 |                                                                                  |
 |     - ``zone_name`` : le nom de la zone basée sur un tuyau                       |
 |     - ``Xbase``, ``Ybase``, ``Zbase`` : coordonnées d'un point de base           |
@@ -56,6 +62,8 @@ Ces m
 | .. module:: CreateZoneSphere                                                     |
 |                                                                                  |
 | **CreateZoneSphere(zone_name, Xcen, Ycen, Zcen, R)**                             |
+|     Retourne une instance de la classe ``zone`` de type sphérique                |
+|     après sa création                                                            |
 |                                                                                  |
 |     - ``zone_name`` : le nom de la zone basée sur une sphère                     |
 |     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées du centre de la sphère          |
@@ -64,6 +72,8 @@ Ces m
 | .. module:: CreateZoneBox2D                                                      |
 |                                                                                  |
 | **CreateZoneBox2D(zone_name, Umin, Umax, Vmin, Vmax, Orient)**                   |
+|     Retourne une instance de la classe ``zone`` de type rectangulaire            |
+|     après sa création                                                            |
 |                                                                                  |
 |     - ``zone_name`` : le nom de la zone basée sur un rectangle                   |
 |     - ``Umin``, ``Umax`` : coordonnées extrêmes pour la 1ère dimension           |
@@ -73,6 +83,8 @@ Ces m
 | .. module:: CreateZoneDisk                                                       |
 |                                                                                  |
 | **CreateZoneDisk(zone_name, Ucen, Vcen, R, Orient)**                             |
+|     Retourne une instance de la classe ``zone`` de type disque                   |
+|     après sa création                                                            |
 |                                                                                  |
 |     - ``zone_name`` : le nom de la zone basée sur un disque plein                |
 |     - ``Ucen``, ``Vcen`` : coordonnées du centre du disque                       |
@@ -82,6 +94,8 @@ Ces m
 | .. module:: CreateZoneDiskWithHole                                               |
 |                                                                                  |
 | **CreateZoneDiskWithHole(zone_name, Ucen, Vcen, R, Rint, Orient)**               |
+|     Retourne une instance de la classe ``zone`` de type disque troué             |
+|     après sa création                                                            |
 |                                                                                  |
 |     - ``zone_name`` : le nom de la zone basée sur un disque troué                |
 |     - ``Ucen``, ``Vcen`` : coordonnées du centre du disque                       |
@@ -109,6 +123,26 @@ Ces m
   maillage est 2D, dans un des plans de coordonnées.
 
 
+
+
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+| .. module:: GetZone                                           |
+|                                                               |
+| **GetZone(zone_name)**                                        |
+|     Retourne l'instance de la classe ``zone`` connue par      |
+|     son nom                                                   |
+|                                                               |
+|     - ``zone_name`` : le nom de la zone                       |
++---------------------------------------------------------------+
+| .. module:: GetAllZones                                       |
+|                                                               |
+| **GetAllZones()**                                             |
+|     Retourne la liste des noms de toutes les zones créées     |
+|                                                               |
++---------------------------------------------------------------+
+
+
 Méthodes de la classe zone
 """"""""""""""""""""""""""
 
index 7ff0b81ba13f9be6cbd57c35894a23f7ef4e3218..c8ce350e4f8c4e6630e69534d33a29b13ad9bcc4 100644 (file)
@@ -103,6 +103,9 @@ module HOMARD
     void     SetAdapInit(in long AdapInit)                 raises (SALOME::SALOME_Exception);
     long     GetAdapInit()                                 raises (SALOME::SALOME_Exception);
 
+    void     SetLevelOutput(in long LevelOutput)           raises (SALOME::SALOME_Exception);
+    long     GetLevelOutput()                              raises (SALOME::SALOME_Exception);
+
     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
 
   };
index ccd5429f7ae60cb2556152138cc844ff034f343a..ee9264b4f36ba3fc7a9a01252dc9111d8809ee16 100644 (file)
@@ -228,6 +228,8 @@ namespace HOMARD
 
     os << separator() << hypothesis.GetNivMax();
     os << separator() << hypothesis.GetDiamMin();
+    os << separator() << hypothesis.GetAdapInit();
+    os << separator() << hypothesis.GetLevelOutput();
 
 //    MESSAGE( ". Fin avec "<<os.str());
     return os.str();
@@ -585,6 +587,14 @@ namespace HOMARD
     if ( !ok ) return false;
     hypothesis.SetDiamMin( strtod( chunk.c_str(), 0 ) );
 
+    chunk = getNextChunk( stream, start, ok );
+    if ( !ok ) return false;
+    hypothesis.SetAdapInit( strtod( chunk.c_str(), 0 ) );
+
+    chunk = getNextChunk( stream, start, ok );
+    if ( !ok ) return false;
+    hypothesis.SetLevelOutput( strtod( chunk.c_str(), 0 ) );
+
     return true;
   }
 
index 40874c5350f3002cc234c297210ecdc1702c9ae6..a1845b10bf176ce2ff65fd2fc8fe011536e5e45f 100644 (file)
@@ -119,13 +119,11 @@ std::string HOMARD_Hypothesis::GetDumpPython() const
     }
     if ( _TypeRaff == 1 )
     {
-      aScript << "\t" << _NomHypo << ".SetRefinThr(" << _TypeThR;
-      aScript << ", " << _ThreshR << ")\n";
+      aScript << "\t" << _NomHypo << ".SetRefinThr(" << _TypeThR << ", " << _ThreshR << ")\n";
     }
     if ( _TypeDera == 1 )
     {
-      aScript << "\t" << _NomHypo << ".SetUnRefThr(" << _TypeThC;
-      aScript << ", " << _ThreshC << ")\n";
+      aScript << "\t" << _NomHypo << ".SetUnRefThr(" << _TypeThC << ", " << _ThreshC << ")\n";
     }
   }
 
@@ -146,18 +144,19 @@ std::string HOMARD_Hypothesis::GetDumpPython() const
   }
   if ( _NivMax > 0 )
   {
-    aScript << "\tNivMax = " << _NivMax << "\n";
-    aScript << "\t" <<_NomHypo << ".SetNivMax(NivMax)\n";
+    aScript << "\t" <<_NomHypo << ".SetNivMax(" << _NivMax << ")\n";
   }
   if ( _DiamMin > 0 )
   {
-    aScript << "\tDiamMin = " << _DiamMin << "\n";
-    aScript << "\t" <<_NomHypo << ".SetDiamMin(DiamMin)\n";
+    aScript << "\t" <<_NomHypo << ".SetDiamMin(" << _DiamMin << ")\n";
   }
   if ( _AdapInit != 0 )
   {
-    aScript << "\tAdapInit = " << _AdapInit << "\n";
-    aScript << "\t" <<_NomHypo << ".SetAdapInit(AdapInit)\n";
+    aScript << "\t" <<_NomHypo << ".SetAdapInit(" << _AdapInit << ")\n";
+  }
+  if ( _LevelOutput != 0 )
+  {
+    aScript << "\t" <<_NomHypo << ".SetLevelOutput(" << _LevelOutput << ")\n";
   }
 
   return aScript.str();
@@ -450,3 +449,15 @@ const double HOMARD_Hypothesis::GetDiamMin() const
 {
   return _DiamMin;
 }
+//=============================================================================
+void HOMARD_Hypothesis::SetLevelOutput( int LevelOutput )
+//=============================================================================
+{
+  _LevelOutput = LevelOutput;
+}
+//=============================================================================
+const int HOMARD_Hypothesis::GetLevelOutput() const
+//=============================================================================
+{
+  return _LevelOutput;
+}
index c641cf9b21adb7b9fdb4ecc55809c9db04176bd6..22cc1ce232d04efcb3e6de128d56e08e6e6c372c 100644 (file)
@@ -89,6 +89,8 @@ public:
   const double                  GetDiamMin() const;
   void                          SetAdapInit( int AdapInit );
   const int                     GetAdapInit() const;
+  void                          SetLevelOutput( int LevelOutput );
+  const int                     GetLevelOutput() const;
 
 
 private:
@@ -115,6 +117,7 @@ private:
   int                           _NivMax;
   double                        _DiamMin;
   int                           _AdapInit;
+  int                           _LevelOutput;
 
   std::list<std::string>        _ListIter;
   std::list<std::string>        _ListZone;
index 3dcd98b1a46af63dd329d3614f070bdfb9bfc742..3c0cd5528c7b203f7f5c608c15fba98c6b447827 100644 (file)
@@ -34,7 +34,7 @@ HOMARD_Iteration::HOMARD_Iteration():
   _NomIter( "" ), _Etat( false ),
  _NumIter( -1 ),
   _NomMesh( "" ), _MeshFile( "" ),
-  _FieldFile( "" ), _TimeStep( 0 ), _Rank( 0 ),
+  _FieldFile( "" ), _TimeStep( -1 ), _Rank( -1 ),
   _MessFile( "" ),
   _IterParent( "" ),
   _NomHypo( "" ), _NomCas( "" ), _NomDir( "" )
@@ -94,21 +94,22 @@ std::string HOMARD_Iteration::GetDumpPython() const
   aScript << "\t" << _NomIter << ".SetMeshName(\"" << _NomMesh << "\")\n" ;
 // Le fichier du maillage produit
   aScript << "\t" << _NomIter << ".SetMeshFile(\"" << _MeshFile << "\")\n";
-  if (_FieldFile != "") {
+// Le fichier des champs, avec l'instant eventuel
+  if ( _FieldFile != "" ) {
     aScript << "\t" << _NomIter << ".SetFieldFile(\"" << _FieldFile << "\")\n";
-    aScript << "\tTimeStep = " << _TimeStep << "\n";
-    aScript << "\tRank = " << _Rank << "\n";
-    aScript << "\t" << _NomIter << ".SetTimeStepRank( TimeStep, Rank )\n";
+    if ( ( _TimeStep != -1 ) and ( _Rank != -1 ) ) {
+      aScript << "\t" << _NomIter << ".SetTimeStepRank( " << _TimeStep << ", " << _Rank << " )\n";
+    }
   }
 
   aScript << "\thomard.AssociateIterHypo(\"" <<_NomIter << "\", \"" << _NomHypo << "\")\n";
   if (_Etat == true)
   {
-     aScript << "\tcodret = homard.Compute(\"" <<_NomIter << "\", 1)\n";
+     aScript << "\tcodret = " <<_NomIter << ".Compute(1)\n";
   }
   else
   {
-     aScript << "\t#codret = homard.Compute(\"" <<_NomIter << "\", 1)\n";
+     aScript << "\t#codret = " <<_NomIter << ".Compute(1)\n";
   }
 
   return aScript.str();
index c025a5e22644e58862035a26feea331c89f407c7..55d14f9455281844d550337d9f2c676d0b05df1b 100644 (file)
@@ -797,9 +797,9 @@ void HomardDriver::TexteFieldInterpName( int NumeChamp, const std::string FieldN
   }
 }
 ////=============================================================================
-void HomardDriver::TexteAdvanced( int Pyram, int NivMax, double DiamMin, int AdapInit )
+void HomardDriver::TexteAdvanced( int Pyram, int NivMax, double DiamMin, int AdapInit, int LevelOutput )
 {
-  MESSAGE("TexteAdvanced, Pyram ="<<Pyram<<", NivMax ="<<NivMax<<", DiamMin ="<<DiamMin<<", AdapInit ="<<AdapInit);
+  MESSAGE("TexteAdvanced, Pyram ="<<Pyram<<", NivMax ="<<NivMax<<", DiamMin ="<<DiamMin<<", AdapInit ="<<AdapInit<<", LevelOutput ="<<LevelOutput);
   std::string saux ;
 
   if ( Pyram > 0 )
@@ -838,6 +838,11 @@ void HomardDriver::TexteAdvanced( int Pyram, int NivMax, double DiamMin, int Ada
       _Texte += "AdapInit " + saux2 + "\n" ;
     }
   }
+  if ( LevelOutput != 0 )
+  {
+    _Texte += "# Sortie des niveaux de raffinement\n" ;
+    _Texte += "NCNiveau NIVEAU\n" ;
+  }
 }
 
 ////=============================================================================
index 3c1c0a0192ecb007810226738b66f4ba8db998b7..355204e53215078ebbda7794b5239b255b3517c2 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 Pyram, int NivMax, double DiamMin, int AdapInit);
+  void        TexteAdvanced( int Pyram, int NivMax, double DiamMin, int AdapInit, int LevelOutput);
   void        CloseFichier();
   //
   int         ExecuteHomard();
index e40b04b889d0dec5313a93883cff663f068aaed7..6c28306b21c504656e94164d9e7e7eadf3431616 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateHypothesis.ui'
 **
-** Created: Wed Apr 11 11:35:26 2012
+** Created: Wed Nov 14 11:07:43 2012
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -43,6 +43,7 @@ public:
     QRadioButton *RBUniforme;
     QRadioButton *RBChamp;
     QRadioButton *RBZone;
+    QCheckBox *CBGroupe;
     QGroupBox *GBUniform;
     QGridLayout *gridLayout;
     QRadioButton *RBUniDera;
@@ -101,7 +102,6 @@ public:
     QRadioButton *RBFieldAll;
     QRadioButton *RBFieldChosen;
     QTableWidget *TWField;
-    QCheckBox *CBGroupe;
     QCheckBox *CBAdvanced;
     QGroupBox *GBAdvancedOptions;
     QGridLayout *gridLayout_1;
@@ -114,6 +114,7 @@ public:
     QRadioButton *RBAIN;
     QRadioButton *RBAIR;
     QRadioButton *RBAID;
+    QCheckBox *CBLevelOutput;
     QGroupBox *GBButtons;
     QGridLayout *gridLayout7;
     QPushButton *buttonOk;
@@ -126,7 +127,7 @@ public:
     {
         if (CreateHypothesis->objectName().isEmpty())
             CreateHypothesis->setObjectName(QString::fromUtf8("CreateHypothesis"));
-        CreateHypothesis->resize(770, 1428);
+        CreateHypothesis->resize(770, 1453);
         QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
         sizePolicy.setHorizontalStretch(0);
         sizePolicy.setVerticalStretch(0);
@@ -172,6 +173,11 @@ public:
 
         gridLayout_3->addWidget(GBTypeAdaptation, 1, 0, 1, 2);
 
+        CBGroupe = new QCheckBox(CreateHypothesis);
+        CBGroupe->setObjectName(QString::fromUtf8("CBGroupe"));
+
+        gridLayout_3->addWidget(CBGroupe, 2, 0, 1, 2);
+
         GBUniform = new QGroupBox(CreateHypothesis);
         GBUniform->setObjectName(QString::fromUtf8("GBUniform"));
         gridLayout = new QGridLayout(GBUniform);
@@ -194,7 +200,7 @@ public:
         gridLayout->addWidget(RBUniRaff, 0, 0, 1, 1);
 
 
-        gridLayout_3->addWidget(GBUniform, 2, 0, 1, 2);
+        gridLayout_3->addWidget(GBUniform, 3, 0, 1, 2);
 
         GBFieldFile = new QGroupBox(CreateHypothesis);
         GBFieldFile->setObjectName(QString::fromUtf8("GBFieldFile"));
@@ -218,7 +224,7 @@ public:
         gridLayout1->addWidget(LEFieldFile, 0, 1, 1, 1);
 
 
-        gridLayout_3->addWidget(GBFieldFile, 3, 0, 1, 2);
+        gridLayout_3->addWidget(GBFieldFile, 4, 0, 1, 2);
 
         GBFieldManagement = new QGroupBox(CreateHypothesis);
         GBFieldManagement->setObjectName(QString::fromUtf8("GBFieldManagement"));
@@ -465,7 +471,7 @@ public:
         gridLayout2->addLayout(hboxLayout4, 2, 0, 1, 1);
 
 
-        gridLayout_3->addWidget(GBFieldManagement, 4, 0, 1, 2);
+        gridLayout_3->addWidget(GBFieldManagement, 5, 0, 1, 2);
 
         GBAreaManagement = new QGroupBox(CreateHypothesis);
         GBAreaManagement->setObjectName(QString::fromUtf8("GBAreaManagement"));
@@ -535,7 +541,7 @@ public:
         gridLayout_4->addLayout(vboxLayout1, 0, 2, 1, 1);
 
 
-        gridLayout_3->addWidget(GBAreaManagement, 5, 0, 1, 2);
+        gridLayout_3->addWidget(GBAreaManagement, 6, 0, 1, 2);
 
         GBField = new QGroupBox(CreateHypothesis);
         GBField->setObjectName(QString::fromUtf8("GBField"));
@@ -588,12 +594,7 @@ public:
         gridLayout5->addWidget(TWField, 1, 0, 1, 1);
 
 
-        gridLayout_3->addWidget(GBField, 6, 0, 1, 2);
-
-        CBGroupe = new QCheckBox(CreateHypothesis);
-        CBGroupe->setObjectName(QString::fromUtf8("CBGroupe"));
-
-        gridLayout_3->addWidget(CBGroupe, 7, 0, 1, 2);
+        gridLayout_3->addWidget(GBField, 7, 0, 1, 2);
 
         CBAdvanced = new QCheckBox(CreateHypothesis);
         CBAdvanced->setObjectName(QString::fromUtf8("CBAdvanced"));
@@ -655,6 +656,11 @@ public:
 
         gridLayout_1->addWidget(GBAdapInit, 2, 0, 1, 2);
 
+        CBLevelOutput = new QCheckBox(GBAdvancedOptions);
+        CBLevelOutput->setObjectName(QString::fromUtf8("CBLevelOutput"));
+
+        gridLayout_1->addWidget(CBLevelOutput, 3, 0, 1, 1);
+
 
         gridLayout_3->addWidget(GBAdvancedOptions, 9, 0, 1, 2);
 
@@ -721,6 +727,7 @@ public:
         RBUniforme->setText(QApplication::translate("CreateHypothesis", "Uniform", 0, QApplication::UnicodeUTF8));
         RBChamp->setText(QApplication::translate("CreateHypothesis", "Driven by a field", 0, QApplication::UnicodeUTF8));
         RBZone->setText(QApplication::translate("CreateHypothesis", "With geometrical zones", 0, QApplication::UnicodeUTF8));
+        CBGroupe->setText(QApplication::translate("CreateHypothesis", "Filtering with groups", 0, QApplication::UnicodeUTF8));
         GBUniform->setTitle(QApplication::translate("CreateHypothesis", "Uniform adaptation", 0, QApplication::UnicodeUTF8));
         RBUniDera->setText(QApplication::translate("CreateHypothesis", "Coarsening", 0, QApplication::UnicodeUTF8));
         RBUniRaff->setText(QApplication::translate("CreateHypothesis", "Refinement", 0, QApplication::UnicodeUTF8));
@@ -767,7 +774,6 @@ public:
         ___qtablewidgetitem5->setText(QApplication::translate("CreateHypothesis", "Selection", 0, QApplication::UnicodeUTF8));
         QTableWidgetItem *___qtablewidgetitem6 = TWField->horizontalHeaderItem(1);
         ___qtablewidgetitem6->setText(QApplication::translate("CreateHypothesis", "Field Name", 0, QApplication::UnicodeUTF8));
-        CBGroupe->setText(QApplication::translate("CreateHypothesis", "Filtering with groups", 0, QApplication::UnicodeUTF8));
         CBAdvanced->setText(QApplication::translate("CreateHypothesis", "Advanced options", 0, QApplication::UnicodeUTF8));
         GBAdvancedOptions->setTitle(QApplication::translate("CreateHypothesis", "Advanced options", 0, QApplication::UnicodeUTF8));
         TLMinimalDiameter->setText(QApplication::translate("CreateHypothesis", "Minimal diameter", 0, QApplication::UnicodeUTF8));
@@ -776,6 +782,7 @@ public:
         RBAIN->setText(QApplication::translate("CreateHypothesis", "Nothing", 0, QApplication::UnicodeUTF8));
         RBAIR->setText(QApplication::translate("CreateHypothesis", "Refinement", 0, QApplication::UnicodeUTF8));
         RBAID->setText(QApplication::translate("CreateHypothesis", "Coarsening", 0, QApplication::UnicodeUTF8));
+        CBLevelOutput->setText(QApplication::translate("CreateHypothesis", "Output of the level of refinement", 0, QApplication::UnicodeUTF8));
         GBButtons->setTitle(QString());
         buttonOk->setText(QApplication::translate("CreateHypothesis", "OK", 0, QApplication::UnicodeUTF8));
         buttonApply->setText(QApplication::translate("CreateHypothesis", "Apply", 0, QApplication::UnicodeUTF8));
index 686a25ab7de3592309abe79b30534e7d96816977..2c4d96b6b26f5036256e0ce8d1d43990725621d4 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>770</width>
-    <height>1428</height>
+    <height>1453</height>
    </rect>
   </property>
   <property name="sizePolicy">
     </widget>
    </item>
    <item row="2" column="0" colspan="2">
+    <widget class="QCheckBox" name="CBGroupe">
+     <property name="text">
+      <string>Filtering with groups</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0" colspan="2">
     <widget class="QGroupBox" name="GBUniform">
      <property name="title">
       <string>Uniform adaptation</string>
      </layout>
     </widget>
    </item>
-   <item row="3" column="0" colspan="2">
+   <item row="4" column="0" colspan="2">
     <widget class="QGroupBox" name="GBFieldFile">
      <property name="title">
       <string/>
      </layout>
     </widget>
    </item>
-   <item row="4" column="0" colspan="2">
+   <item row="5" column="0" colspan="2">
     <widget class="QGroupBox" name="GBFieldManagement">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
      </layout>
     </widget>
    </item>
-   <item row="5" column="0" colspan="2">
+   <item row="6" column="0" colspan="2">
     <widget class="QGroupBox" name="GBAreaManagement">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
      </layout>
     </widget>
    </item>
-   <item row="6" column="0" colspan="2">
+   <item row="7" column="0" colspan="2">
     <widget class="QGroupBox" name="GBField">
      <property name="title">
       <string>Field Interpolation</string>
      </layout>
     </widget>
    </item>
-   <item row="7" column="0" colspan="2">
-    <widget class="QCheckBox" name="CBGroupe">
-     <property name="text">
-      <string>Filtering with groups</string>
-     </property>
-    </widget>
-   </item>
    <item row="8" column="0" colspan="2">
     <widget class="QCheckBox" name="CBAdvanced">
      <property name="text">
         </layout>
        </widget>
       </item>
+      <item row="3" column="0">
+       <widget class="QCheckBox" name="CBLevelOutput">
+        <property name="text">
+         <string>Output of the level of refinement</string>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
index c3e48c90a904343e4215aa63cbce30e38bdb473f..ec6ef6147d8268c0275fbc6f70410b7927e4956e 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateIteration.ui'
 **
-** Created: Wed Apr 11 11:35:39 2012
+** Created: Wed Nov 14 11:09:41 2012
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -120,9 +120,9 @@ public:
 
         SpinBox_Rank = new QSpinBox(GBField);
         SpinBox_Rank->setObjectName(QString::fromUtf8("SpinBox_Rank"));
-        SpinBox_Rank->setMaximum(1010000);
         SpinBox_Rank->setMinimum(-1);
-        SpinBox_Rank->setValue(1);
+        SpinBox_Rank->setMaximum(1010000);
+        SpinBox_Rank->setValue(-1);
 
         gridLayout1->addWidget(SpinBox_Rank, 4, 5, 1, 1);
 
@@ -137,8 +137,8 @@ public:
 
         SpinBox_TimeStep = new QSpinBox(GBField);
         SpinBox_TimeStep->setObjectName(QString::fromUtf8("SpinBox_TimeStep"));
-        SpinBox_TimeStep->setMaximum(100000);
         SpinBox_TimeStep->setMinimum(-2);
+        SpinBox_TimeStep->setMaximum(100000);
         SpinBox_TimeStep->setValue(-1);
 
         gridLayout1->addWidget(SpinBox_TimeStep, 4, 1, 1, 1);
index 01a0d38b488314792e2eda698dbef10c34f79182..95205de9acde6d2044e26c033421a6410ff9dcf2 100644 (file)
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>CreateIteration</class>
- <widget class="QWidget" name="CreateIteration" >
-  <property name="geometry" >
+ <widget class="QWidget" name="CreateIteration">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <height>598</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Create an iteration</string>
   </property>
-  <layout class="QGridLayout" >
-   <property name="margin" >
+  <layout class="QGridLayout">
+   <property name="margin">
     <number>9</number>
    </property>
-   <property name="spacing" >
+   <property name="spacing">
     <number>6</number>
    </property>
-   <item row="6" column="0" colspan="4" >
-    <widget class="QGroupBox" name="GBField" >
-     <property name="title" >
+   <item row="6" column="0" colspan="4">
+    <widget class="QGroupBox" name="GBField">
+     <property name="title">
       <string>Field information</string>
      </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
+     <layout class="QGridLayout">
+      <property name="margin">
        <number>9</number>
       </property>
-      <property name="spacing" >
+      <property name="spacing">
        <number>6</number>
       </property>
-      <item row="0" column="2" colspan="5" >
-       <widget class="QLineEdit" name="LEFieldFile" >
-        <property name="minimumSize" >
+      <item row="0" column="2" colspan="5">
+       <widget class="QLineEdit" name="LEFieldFile">
+        <property name="minimumSize">
          <size>
           <width>282</width>
           <height>21</height>
         </property>
        </widget>
       </item>
-      <item row="1" column="3" colspan="4" >
+      <item row="1" column="3" colspan="4">
        <spacer>
-        <property name="orientation" >
+        <property name="orientation">
          <enum>Qt::Vertical</enum>
         </property>
-        <property name="sizeHint" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>138</width>
           <height>18</height>
         </property>
        </spacer>
       </item>
-      <item row="2" column="6" >
-       <widget class="QRadioButton" name="RBChosen" >
-        <property name="text" >
+      <item row="2" column="6">
+       <widget class="QRadioButton" name="RBChosen">
+        <property name="text">
          <string>Chosen time step</string>
         </property>
        </widget>
       </item>
-      <item row="4" column="6" >
+      <item row="4" column="6">
        <spacer>
-        <property name="orientation" >
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeType" >
+        <property name="sizeType">
          <enum>QSizePolicy::Expanding</enum>
         </property>
-        <property name="sizeHint" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>255</width>
           <height>13</height>
         </property>
        </spacer>
       </item>
-      <item row="4" column="5" >
-       <widget class="QSpinBox" name="SpinBox_Rank" >
-        <property name="maximum" >
+      <item row="4" column="5">
+       <widget class="QSpinBox" name="SpinBox_Rank">
+        <property name="minimum">
+         <number>-1</number>
+        </property>
+        <property name="maximum">
          <number>1010000</number>
         </property>
-        <property name="minimum" >
+        <property name="value">
          <number>-1</number>
         </property>
-        <property name="value" >
-         <number>1</number>
-        </property>
        </widget>
       </item>
-      <item row="4" column="4" >
-       <widget class="QLabel" name="Rank" >
-        <property name="text" >
+      <item row="4" column="4">
+       <widget class="QLabel" name="Rank">
+        <property name="text">
          <string>Rank</string>
         </property>
        </widget>
       </item>
-      <item row="4" column="2" colspan="2" >
+      <item row="4" column="2" colspan="2">
        <spacer>
-        <property name="orientation" >
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeType" >
+        <property name="sizeType">
          <enum>QSizePolicy::Fixed</enum>
         </property>
-        <property name="sizeHint" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>13</height>
         </property>
        </spacer>
       </item>
-      <item row="4" column="1" >
-       <widget class="QSpinBox" name="SpinBox_TimeStep" >
-        <property name="maximum" >
-         <number>100000</number>
-        </property>
-        <property name="minimum" >
+      <item row="4" column="1">
+       <widget class="QSpinBox" name="SpinBox_TimeStep">
+        <property name="minimum">
          <number>-2</number>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <number>100000</number>
+        </property>
+        <property name="value">
          <number>-1</number>
         </property>
        </widget>
       </item>
-      <item row="4" column="0" >
-       <widget class="QLabel" name="TimeStep" >
-        <property name="text" >
+      <item row="4" column="0">
+       <widget class="QLabel" name="TimeStep">
+        <property name="text">
          <string>Time step</string>
         </property>
        </widget>
       </item>
-      <item row="3" column="0" colspan="4" >
+      <item row="3" column="0" colspan="4">
        <spacer>
-        <property name="orientation" >
+        <property name="orientation">
          <enum>Qt::Vertical</enum>
         </property>
-        <property name="sizeHint" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>138</width>
           <height>28</height>
         </property>
        </spacer>
       </item>
-      <item row="2" column="3" colspan="3" >
-       <widget class="QRadioButton" name="RBLast" >
-        <property name="text" >
+      <item row="2" column="3" colspan="3">
+       <widget class="QRadioButton" name="RBLast">
+        <property name="text">
          <string>Last time step</string>
         </property>
        </widget>
       </item>
-      <item row="2" column="0" colspan="3" >
-       <widget class="QRadioButton" name="RBNo" >
-        <property name="text" >
+      <item row="2" column="0" colspan="3">
+       <widget class="QRadioButton" name="RBNo">
+        <property name="text">
          <string>No time step</string>
         </property>
-        <property name="checkable" >
+        <property name="checkable">
          <bool>true</bool>
         </property>
-        <property name="checked" >
+        <property name="checked">
          <bool>true</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="PushFieldFile" >
-        <property name="text" >
+      <item row="0" column="1">
+       <widget class="QPushButton" name="PushFieldFile">
+        <property name="text">
          <string/>
         </property>
        </widget>
       </item>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="FieldFile" >
-        <property name="text" >
+      <item row="0" column="0">
+       <widget class="QLabel" name="FieldFile">
+        <property name="text">
          <string>Field file</string>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="0" column="0" colspan="2" >
-    <widget class="QLabel" name="Iteration_Name" >
-     <property name="text" >
+   <item row="0" column="0" colspan="2">
+    <widget class="QLabel" name="Iteration_Name">
+     <property name="text">
       <string>Iteration Name</string>
      </property>
     </widget>
    </item>
-   <item row="0" column="2" colspan="2" >
-    <widget class="QLineEdit" name="LEIterationName" >
-     <property name="minimumSize" >
+   <item row="0" column="2" colspan="2">
+    <widget class="QLineEdit" name="LEIterationName">
+     <property name="minimumSize">
       <size>
        <width>290</width>
        <height>21</height>
       </size>
      </property>
-     <property name="maxLength" >
+     <property name="maxLength">
       <number>200</number>
      </property>
     </widget>
    </item>
-   <item row="1" column="0" >
-    <widget class="QLabel" name="Iter_Parent" >
-     <property name="text" >
+   <item row="1" column="0">
+    <widget class="QLabel" name="Iter_Parent">
+     <property name="text">
       <string>Previous iteration</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="1" >
+   <item row="1" 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>24</height>
      </property>
     </spacer>
    </item>
-   <item row="1" column="2" >
-    <widget class="QPushButton" name="PBIterParent" >
-     <property name="enabled" >
+   <item row="1" column="2">
+    <widget class="QPushButton" name="PBIterParent">
+     <property name="enabled">
       <bool>true</bool>
      </property>
-     <property name="maximumSize" >
+     <property name="maximumSize">
       <size>
        <width>50</width>
        <height>27</height>
       </size>
      </property>
-     <property name="text" >
+     <property name="text">
       <string/>
      </property>
     </widget>
    </item>
-   <item row="1" column="3" >
-    <widget class="QLineEdit" name="LEIterationParentName" >
-     <property name="minimumSize" >
+   <item row="1" column="3">
+    <widget class="QLineEdit" name="LEIterationParentName">
+     <property name="minimumSize">
       <size>
        <width>0</width>
        <height>21</height>
       </size>
      </property>
-     <property name="maxLength" >
+     <property name="maxLength">
       <number>200</number>
      </property>
-     <property name="readOnly" >
+     <property name="readOnly">
       <bool>true</bool>
      </property>
     </widget>
    </item>
-   <item row="2" column="0" >
-    <widget class="QLabel" name="Mesh_n" >
-     <property name="text" >
+   <item row="2" column="0">
+    <widget class="QLabel" name="Mesh_n">
+     <property name="text">
       <string>Mesh n</string>
      </property>
     </widget>
    </item>
-   <item row="2" column="1" >
+   <item row="2" 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>21</height>
      </property>
     </spacer>
    </item>
-   <item row="2" column="2" colspan="2" >
-    <widget class="QLineEdit" name="LEMeshName_n" >
-     <property name="minimumSize" >
+   <item row="2" column="2" colspan="2">
+    <widget class="QLineEdit" name="LEMeshName_n">
+     <property name="minimumSize">
       <size>
        <width>290</width>
        <height>21</height>
       </size>
      </property>
-     <property name="maxLength" >
+     <property name="maxLength">
       <number>32</number>
      </property>
-     <property name="readOnly" >
+     <property name="readOnly">
       <bool>true</bool>
      </property>
     </widget>
    </item>
-   <item row="3" column="1" >
+   <item row="3" 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>22</height>
      </property>
     </spacer>
    </item>
-   <item row="4" column="0" colspan="2" >
-    <widget class="QLabel" name="Mesh_np1" >
-     <property name="text" >
+   <item row="4" column="0" colspan="2">
+    <widget class="QLabel" name="Mesh_np1">
+     <property name="text">
       <string>Mesh n+1</string>
      </property>
     </widget>
    </item>
-   <item row="4" column="2" colspan="2" >
-    <widget class="QLineEdit" name="LEMeshName_np1" >
-     <property name="minimumSize" >
+   <item row="4" column="2" colspan="2">
+    <widget class="QLineEdit" name="LEMeshName_np1">
+     <property name="minimumSize">
       <size>
        <width>290</width>
        <height>21</height>
       </size>
      </property>
-     <property name="maxLength" >
+     <property name="maxLength">
       <number>32</number>
      </property>
     </widget>
    </item>
-   <item row="5" column="1" >
+   <item row="5" 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>21</height>
      </property>
     </spacer>
    </item>
-   <item row="7" column="1" >
+   <item row="7" 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>22</height>
      </property>
     </spacer>
    </item>
-   <item row="8" column="0" colspan="4" >
-    <widget class="QGroupBox" name="Hypothese" >
-     <property name="title" >
+   <item row="8" column="0" colspan="4">
+    <widget class="QGroupBox" name="Hypothese">
+     <property name="title">
       <string>Hypothesis</string>
      </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
+     <layout class="QGridLayout">
+      <property name="margin">
        <number>9</number>
       </property>
-      <property name="spacing" >
+      <property name="spacing">
        <number>6</number>
       </property>
-      <item row="0" column="0" >
-       <widget class="QComboBox" name="CBHypothese" >
-        <property name="currentIndex" >
+      <item row="0" column="0">
+       <widget class="QComboBox" name="CBHypothese">
+        <property name="currentIndex">
          <number>-1</number>
         </property>
-        <property name="sizeAdjustPolicy" >
+        <property name="sizeAdjustPolicy">
          <enum>QComboBox::AdjustToContents</enum>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
+      <item row="0" column="1">
        <spacer>
-        <property name="orientation" >
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeType" >
+        <property name="sizeType">
          <enum>QSizePolicy::Fixed</enum>
         </property>
-        <property name="sizeHint" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>13</height>
         </property>
        </spacer>
       </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="PBHypoEdit" >
-        <property name="text" >
+      <item row="0" column="2">
+       <widget class="QPushButton" name="PBHypoEdit">
+        <property name="text">
          <string>Edit</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="PBHypoNew" >
-        <property name="text" >
+      <item row="0" column="3">
+       <widget class="QPushButton" name="PBHypoNew">
+        <property name="text">
          <string>New</string>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="9" column="0" >
+   <item row="9" column="0">
     <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>21</height>
      </property>
     </spacer>
    </item>
-   <item row="10" column="0" colspan="4" >
-    <widget class="QGroupBox" name="GroupButtons" >
-     <property name="title" >
+   <item row="10" column="0" colspan="4">
+    <widget class="QGroupBox" name="GroupButtons">
+     <property name="title">
       <string/>
      </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
+     <layout class="QGridLayout">
+      <property name="margin">
        <number>9</number>
       </property>
-      <property name="spacing" >
+      <property name="spacing">
        <number>6</number>
       </property>
-      <item row="0" column="0" >
-       <widget class="QPushButton" name="buttonOk" >
-        <property name="text" >
+      <item row="0" column="0">
+       <widget class="QPushButton" name="buttonOk">
+        <property name="text">
          <string>OK</string>
         </property>
-        <property name="autoDefault" >
+        <property name="autoDefault">
          <bool>false</bool>
         </property>
-        <property name="default" >
+        <property name="default">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonApply" >
-        <property name="text" >
+      <item row="0" column="1">
+       <widget class="QPushButton" name="buttonApply">
+        <property name="text">
          <string>Apply</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonCancel" >
-        <property name="text" >
+      <item row="0" column="2">
+       <widget class="QPushButton" name="buttonCancel">
+        <property name="text">
          <string>Cancel</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
+      <item row="0" column="3">
+       <widget class="QPushButton" name="buttonHelp">
+        <property name="text">
          <string>Help</string>
         </property>
        </widget>
index 5863f16ab71461cfb447c8b32bfc50b114fb5b1b..6f791274f9675416574b84bbaad10db74fab4514 100644 (file)
         <source>Maximal level</source>
         <translation>Niveau maximal</translation>
     </message>
+    <message>
+        <source>Output of the level of refinement</source>
+        <translation>Sortie du niveau de raffinement</translation>
+    </message>
     <message>
         <source>Create an iteration</source>
         <translation>Création d&apos;une itération</translation>
index a1b64618093ec62be7681d1b89770f68e7a3684a..ae5f5bc7f24c809702b184bc56753fe4f7e4b535 100644 (file)
@@ -119,7 +119,7 @@ libHOMARD_la_LDFLAGS  =                 \
        ../../idl/libSalomeIDLHOMARD.la \
        ../HOMARD_I/libHOMARDEngine.la  \
        $(KERNEL_LDFLAGS)               \
-       $(MED3_LIBS)                    \
+       $(MED3_LIBS_C_ONLY)             \
         -lSalomeLifeCycleCORBA          \
        $(GUI_LDFLAGS)                  \
        -lSalomeApp                     \
index bffc7df57f0ef14e48c2870c816b83f9e04295cc..9e5673a8679b39edc590c79cbbc6ccace9a19f59 100644 (file)
@@ -51,7 +51,9 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
     _UsField(0), _UsCmpI(0), _TypeFieldInterp(0),
     _NivMax(-1),
     _DiamMin(-1.),
-    _AdapInit(0)
+    _AdapInit(0),
+    _LevelOutput(0)
+
 {
       MESSAGE("Constructeur") ;
       _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
@@ -70,6 +72,7 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
       }
       SetFieldNo();
       GBAdvancedOptions->setVisible(0);
+      CBLevelOutput->setChecked(false);
 }
 
 // ------------------------------------------------------------------------
@@ -176,6 +179,9 @@ bool MonCreateHypothesis::PushOnApply()
     _aHypothesis->SetDiamMin(_DiamMin);
 // Enregistrement de l'intialisation de l'adaptation
     _aHypothesis->SetAdapInit(_AdapInit);
+// Sortie des niveaux de raffinement
+    if (CBLevelOutput->isChecked()) { _LevelOutput = 1 ; }
+    _aHypothesis->SetLevelOutput(_LevelOutput);
   }
 
   HOMARD_UTILS::updateObjBrowser();
@@ -839,6 +845,8 @@ void MonCreateHypothesis::SetAdvanced()
     _NivMax = -1 ;
     _DiamMin = -1. ;
     _AdapInit = 0 ;
+    CBLevelOutput->setChecked(false);
+    _LevelOutput = 0 ;
   }
   adjustSize();
 }
index a1271157b665b1152243a2243d9cbdaf726b38d1..0680a69c03475a1301d15e1bbba755426ccfd89d 100644 (file)
@@ -71,6 +71,7 @@ protected :
     int _NivMax;
     double _DiamMin;
     int _AdapInit;
+    int _LevelOutput;
 
     HOMARD::HOMARD_Gen_var _myHomardGen;
     HOMARD::HOMARD_Hypothesis_var _aHypothesis;
index fc3b05c572e2467c69af03f4e15d5f2cc24edbc4..e71dc955e522b51c7d69036e473f7617ead9bb1c 100644 (file)
@@ -301,36 +301,47 @@ void MonCreateIteration::SetFieldFile()
 // ------------------------------------------------------------------------
 void MonCreateIteration::SetTSNo()
 // ------------------------------------------------------------------------
-// Par defaut, on declare que le pas de temps vaut -1
+// Si on ne tient pas compte du pas de temps, on declare que le pas de temps
+// vaut -1, valeur par defaut de med
 {
   Rank->setVisible(0);
   SpinBox_Rank->setVisible(0);
+  SpinBox_Rank->setValue(-1);
+
   TimeStep->setVisible(0);
   SpinBox_TimeStep->setVisible(0);
   SpinBox_TimeStep->setValue(-1);
+
   adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateIteration::SetTSLast()
 // ------------------------------------------------------------------------
-// Par defaut, on declare que le pas de temps vaut -2
+// Si on choisit le dernier instant, on declare que le pas de temps vaut -2
 {
   Rank->setVisible(0);
   SpinBox_Rank->setVisible(0);
+  SpinBox_Rank->setValue(-2);
+
   TimeStep->setVisible(0);
   SpinBox_TimeStep->setVisible(0);
   SpinBox_TimeStep->setValue(-2);
+
   adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateIteration::SetTSChosen()
 // ------------------------------------------------------------------------
+// Si choisit un instant, on prepositionne a 0
 {
   Rank->setVisible(1);
   SpinBox_Rank->setVisible(1);
+  SpinBox_Rank->setValue(0);
+
   TimeStep->setVisible(1);
   SpinBox_TimeStep->setVisible(1);
-  SpinBox_TimeStep->setValue(1);
+  SpinBox_TimeStep->setValue(0);
+
   adjustSize();
 }
 
index 38a9d024931e0154629f0b71afc79f425c28d904..0192379f8744632adba5dfb1116d756938468ba9 100644 (file)
@@ -101,7 +101,8 @@ void MonEditHypothesis::InitValEdit()
   int NivMax = _aHypothesis->GetNivMax();
   double DiamMin = _aHypothesis->GetDiamMin();
   int AdapInit = _aHypothesis->GetAdapInit();
-  if ( NivMax > 0 or DiamMin > 0 or AdapInit != 0 )
+  int LevelOutput = _aHypothesis->GetLevelOutput();
+  if ( NivMax > 0 or DiamMin > 0 or AdapInit != 0 or LevelOutput != 0 )
   { GBAdvancedOptions->setVisible(1);
     if ( NivMax > 0 )
     { spinBoxNivMax->setValue(NivMax);
@@ -128,6 +129,14 @@ void MonEditHypothesis::InitValEdit()
     else
     { GBAdapInit->setVisible(0) ;
     }
+    if ( LevelOutput != 0 )
+    {
+      CBLevelOutput->setChecked(true);
+      CBLevelOutput->setEnabled(false);
+    }
+    else
+    { CBLevelOutput->setVisible(0) ;
+    }
   }
   else
   { GBAdvancedOptions->setVisible(0); }
index a6368637a7a6db6b98091531a12c2a330a5193e6..6ea10add3007b70131b6a7f2e2fda433f4aca318 100644 (file)
@@ -36,7 +36,7 @@ MonEditIteration::MonEditIteration ( QWidget* parent, bool modal,
     herite de MonCreateIteration
 */
    MonCreateIteration(parent, modal, myHomardGen, IterParentName),
-   _rank(0), _step(0), _IterationName(""), _FieldFile(""),_aTypeAdap()
+   _rank(-1), _step(-1), _IterationName(""), _FieldFile(""),_aTypeAdap()
 {
     MESSAGE("Debut de  MonEditIteration" << IterName.toStdString().c_str());
     setWindowTitle(QObject::tr("HOM_ITER_EDIT_WINDOW_TITLE"));
index 9415aa68d141f8176c5f2c7846ecac788cba3646..da4aa8b42dec10fb2162b718d539f1a2ee82463f 100755 (executable)
@@ -27,6 +27,8 @@
 #include "HOMARD_DriverTools.hxx"
 #include "HomardMedCommun.h"
 
+#include "HOMARD_version.h"
+
 #include "utilities.h"
 #include "Utils_SINGLETON.hxx"
 #include "Utils_CorbaException.hxx"
@@ -671,6 +673,7 @@ HOMARD::HOMARD_Hypothesis_ptr HOMARD_Gen_i::CreateHypothesis(const char* nomHypo
   myHypothesis->SetNivMax(-1);
   myHypothesis->SetDiamMin(-1.0);
   myHypothesis->SetAdapInit(0);
+  myHypothesis->SetLevelOutput(0);
 
   return HOMARD::HOMARD_Hypothesis::_duplicate(myHypothesis);
 }
@@ -1450,7 +1453,9 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatMena
   MESSAGE ( ". DiamMin = " << DiamMin );
   int AdapInit = myHypo->GetAdapInit();
   MESSAGE ( ". AdapInit = " << AdapInit );
-  myDriver->TexteAdvanced(Pyram, NivMax, DiamMin, AdapInit);
+  int LevelOutput = myHypo->GetLevelOutput();
+  MESSAGE ( ". LevelOutput = " << LevelOutput );
+  myDriver->TexteAdvanced(Pyram, NivMax, DiamMin, AdapInit, LevelOutput);
 
   // F. Ecriture du texte dans le fichier
   if (codret == 0)
@@ -2701,6 +2706,17 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
    return aStreamFile._retn();
 }
 
+
+// Version information
+char* HOMARD_Gen_i::getVersion()
+{
+#if HOMARD_DEVELOPMENT
+  return CORBA::string_dup(HOMARD_VERSION_STR"dev");
+#else
+  return CORBA::string_dup(HOMARD_VERSION_STR);
+#endif
+}
+
 //=============================================================================
 extern "C"
 {
index 4f646768939bfbbb73b3b35d49e8f0d2288e3746..62ec32bf0b127aafbfc68ad4f4cf2d6cf0dc1e59 100644 (file)
@@ -220,11 +220,12 @@ private:
   HOMARD::HOMARD_Boundary_ptr     newBoundary();
 
 
-  virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy,
-                                       CORBA::Boolean isPublished,
-                                       CORBA::Boolean isMultiFile,
-                                       CORBA::Boolean& isValidScript);
-
+  virtual Engines::TMPFile*       DumpPython(CORBA::Object_ptr theStudy,
+                                            CORBA::Boolean isPublished,
+                                            CORBA::Boolean isMultiFile,
+                                            CORBA::Boolean& isValidScript);
+  
+  virtual char*                   getVersion();
 
 private:
   struct StudyContext
index dd84483bd0c9bbf43db762c0187374461385dc49..22ce28866b03952b01056713a18ffc9d43eccc71 100644 (file)
@@ -395,6 +395,18 @@ CORBA::Long HOMARD_Hypothesis_i::GetAdapInit()
   ASSERT( myHomardHypothesis );
   return myHomardHypothesis->GetAdapInit();
 }
+//=============================================================================
+void HOMARD_Hypothesis_i::SetLevelOutput( CORBA::Long LevelOutput )
+{
+  ASSERT( myHomardHypothesis );
+  myHomardHypothesis->SetLevelOutput( LevelOutput );
+}
+//=============================================================================
+CORBA::Long HOMARD_Hypothesis_i::GetLevelOutput()
+{
+  ASSERT( myHomardHypothesis );
+  return myHomardHypothesis->GetLevelOutput();
+}
 
 //=============================================================================
 std::string HOMARD_Hypothesis_i::Dump() const
index ea7649a3866e2121f8f652694d2f3cd21c1479ad..b2f60182e4bc48d5148e55afb46b7468601085af 100644 (file)
@@ -91,6 +91,8 @@ public:
   CORBA::Double                GetDiamMin();
   void                         SetAdapInit( CORBA::Long AdapInit );
   CORBA::Long                  GetAdapInit();
+  void                         SetLevelOutput( CORBA::Long LevelOutput );
+  CORBA::Long                  GetLevelOutput();
 
   std::string                  Dump() const;
   bool                         Restore( const std::string& stream );
index c71252bb027294d77aee9c7d2fff5e15d2f608fa..a363abf9f92808b3826fdaa2cdaef5bdca637dcf 100644 (file)
@@ -59,9 +59,10 @@ libHOMARDEngine_la_CPPFLAGS =                      \
        $(GEOM_CXXFLAGS)                      \
        -I$(srcdir)/../HOMARD                 \
        -I$(srcdir)/../HOMARDGUI              \
+       -I$(top_builddir)                     \
        -I$(top_builddir)/idl                 \
         -I$(GEOM_ROOT_DIR)/include/salome     \
-        -I$(SMESH_ROOT_DIR)/include/salome     \
+        -I$(SMESH_ROOT_DIR)/include/salome    \
         -I$(MED_ROOT_DIR)/include/salome      \
        -I$(top_builddir)/adm_local/unix
 
@@ -70,7 +71,7 @@ libHOMARDEngine_la_LDFLAGS  =            \
        ../../idl/libSalomeIDLHOMARD.la  \
        ../HOMARD/libHOMARDImpl.la       \
        $(KERNEL_LDFLAGS)                \
-       $(MED3_LIBS)                     \
+       $(MED3_LIBS_C_ONLY)              \
        -lSalomeContainer                \
        -lSalomeNS                       \
        -lRegistry                       \
@@ -79,5 +80,4 @@ libHOMARDEngine_la_LDFLAGS  =            \
        -lTOOLSDS                        \
        -lSalomeGenericObj               \
         $(SMESH_LDFLAGS)                 \
-       -lSalomeIDLSMESH                 \
-        -lSMESHClient
+       -lSalomeIDLSMESH
index 01a0776825db36ce2242c18ac0102844016c762d..74a1f6581d854ea3070ee14529080a7bfd0ada81 100644 (file)
@@ -132,6 +132,8 @@ Copyright EDF-R&D 2010
 ######################################################################################
 
 homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
+
 #
 # Exec of HOMARD-SALOME
 #
@@ -139,9 +141,9 @@ try :
   error_main = homard_exec(salome.myStudy)
   if error_main :
     raise Exception('Pb in homard_exec at iteration %d' %error_main )
-except :
-  raise Exception('Pb in homard_exec at iteration %d' %error_main )
-  sys.exit(1)
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+
 #
 # Test of the result
 #
index 60110999e3f946842d042cd86512658433118bda..afb705f23624dce3684d05b118cb83f50b5fd15a 100644 (file)
@@ -121,6 +121,7 @@ Copyright EDF-R&D 2010
 ######################################################################################
 
 homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
 #
 # Exec of HOMARD-SALOME
 #
@@ -128,9 +129,9 @@ try :
   error_main = homard_exec(salome.myStudy)
   if error_main :
     raise Exception('Pb in homard_exec at iteration %d' %error_main )
-except :
-  raise Exception('Pb in homard_exec at iteration %d' %error_main )
-  sys.exit(1)
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+
 #
 # Test of the result
 #
index 5e7cdcc474e3798fed1567ddb68998a1196b3a8a..98c4e6e3fbac9b5eeb6a51af37418b0601613588 100644 (file)
@@ -120,6 +120,8 @@ Copyright EDF-R&D 2010
 ######################################################################################
 
 homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
+
 #
 # Exec of HOMARD-SALOME
 #
@@ -127,10 +129,9 @@ try :
   error_main = homard_exec(salome.myStudy)
   if error_main :
     raise Exception('Pb in homard_exec at iteration %d' %error_main )
-except :
-  if error_main :
-    raise Exception('Pb in homard_exec at iteration %d' %error_main )
-  sys.exit(1)
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+
 #
 # Test of the result
 #