]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
Merge branch V7_3_1_BR V7_4_0a1 V7_4_0b1
authorvsr <vsr@opencascade.com>
Thu, 3 Apr 2014 12:13:36 +0000 (16:13 +0400)
committervsr <vsr@opencascade.com>
Thu, 3 Apr 2014 12:13:36 +0000 (16:13 +0400)
187 files changed:
CMakeLists.txt
HOMARD_version.h.in
SalomeHOMARDConfig.cmake.in
adm_local/CMakeLists.txt
adm_local/cmake_files/CMakeLists.txt
adm_local/cmake_files/FindSalomeHOMARD.cmake
adm_local/unix/CMakeLists.txt
adm_local/unix/config_files/CMakeLists.txt
adm_local/unix/config_files/check_GUI.m4
adm_local/unix/config_files/check_Med2.m4
adm_local/unix/config_files/check_sphinx.m4
bin/CMakeLists.txt
bin/runAppli.in
bin/runSalome.py
doc/CMakeLists.txt
doc/en/CMakeLists.txt
doc/en/conf.py.in
doc/en/divers.rst
doc/en/gui_create_boundary.rst
doc/en/gui_usage.rst
doc/en/images/create_boundary_an_to.png [new file with mode: 0644]
doc/en/images/preferences_1.png [new file with mode: 0644]
doc/en/preferences.rst [new file with mode: 0644]
doc/en/tui_create_boundary.rst
doc/en/tui_create_hypothese.rst
doc/en/tui_usage.rst
doc/en/tutorials.rst
doc/files/licence.en.txt
doc/files/licence.fr.txt
doc/files/tutorial_1.py [changed mode: 0644->0755]
doc/files/tutorial_2.py [changed mode: 0644->0755]
doc/files/tutorial_3.py [changed mode: 0644->0755]
doc/files/tutorial_4.py [changed mode: 0644->0755]
doc/files/tutorial_5.py [changed mode: 0644->0755]
doc/files/tutorial_util.py [new file with mode: 0755]
doc/files/yacs_script.py
doc/fr/CMakeLists.txt
doc/fr/conf.py.in
doc/fr/divers.rst
doc/fr/gui_create_boundary.rst
doc/fr/gui_usage.rst
doc/fr/images/create_boundary_an_to.png [new file with mode: 0644]
doc/fr/images/preferences_1.png [new file with mode: 0644]
doc/fr/preferences.rst [new file with mode: 0644]
doc/fr/tui_create_boundary.rst
doc/fr/tui_create_hypothese.rst
doc/fr/tui_usage.rst
doc/fr/tutorials.rst
idl/CMakeLists.txt
idl/Gen.xml
idl/HOMARD_Boundary.idl
idl/HOMARD_Cas.idl
idl/HOMARD_Gen.idl
idl/HOMARD_Hypothesis.idl
idl/HOMARD_Iteration.idl
idl/HOMARD_YACS.idl
idl/HOMARD_Zone.idl
resources/CMakeLists.txt
resources/HOMARDCatalog.xml.in
resources/SalomeApp.xml.in
resources/toruspointvector.png [new file with mode: 0644]
resources/yacs_01.en.xml
resources/yacs_01.fr.xml
src/CMakeLists.txt
src/HOMARD/CMakeLists.txt
src/HOMARD/HOMARD.hxx
src/HOMARD/HOMARD_Boundary.cxx
src/HOMARD/HOMARD_Boundary.hxx
src/HOMARD/HOMARD_Cas.cxx
src/HOMARD/HOMARD_Cas.hxx
src/HOMARD/HOMARD_DriverTools.cxx
src/HOMARD/HOMARD_DriverTools.hxx
src/HOMARD/HOMARD_Gen.cxx
src/HOMARD/HOMARD_Gen.hxx
src/HOMARD/HOMARD_Hypothesis.cxx
src/HOMARD/HOMARD_Hypothesis.hxx
src/HOMARD/HOMARD_Iteration.cxx
src/HOMARD/HOMARD_Iteration.hxx
src/HOMARD/HOMARD_YACS.cxx
src/HOMARD/HOMARD_YACS.hxx
src/HOMARD/HOMARD_Zone.cxx
src/HOMARD/HOMARD_Zone.hxx
src/HOMARD/HomardDriver.cxx
src/HOMARD/HomardDriver.hxx
src/HOMARD/YACSDriver.cxx
src/HOMARD/YACSDriver.hxx
src/HOMARDGUI/CMakeLists.txt
src/HOMARDGUI/CreateBoundaryAn.h
src/HOMARDGUI/CreateBoundaryAn.ui
src/HOMARDGUI/CreateCase.h
src/HOMARDGUI/CreateCase.ui
src/HOMARDGUI/CreateHypothesis.h
src/HOMARDGUI/CreateHypothesis.ui
src/HOMARDGUI/CreateIteration.h
src/HOMARDGUI/CreateIteration.ui
src/HOMARDGUI/CreateYACS.h
src/HOMARDGUI/CreateYACS.ui
src/HOMARDGUI/CreateZone.h
src/HOMARDGUI/CreateZone.ui
src/HOMARDGUI/HOMARDGUI.cxx
src/HOMARDGUI/HOMARDGUI.h
src/HOMARDGUI/HOMARDGUI_Exports.hxx
src/HOMARDGUI/HOMARDGUI_Utils.cxx
src/HOMARDGUI/HOMARDGUI_Utils.h
src/HOMARDGUI/HOMARD_msg_en.ts
src/HOMARDGUI/HOMARD_msg_fr.ts
src/HOMARDGUI/HOMARD_msg_ja.ts
src/HOMARDGUI/HomardQtCommun.cxx
src/HOMARDGUI/HomardQtCommun.h
src/HOMARDGUI/MonCreateBoundaryAn.cxx
src/HOMARDGUI/MonCreateBoundaryAn.h
src/HOMARDGUI/MonCreateBoundaryDi.cxx
src/HOMARDGUI/MonCreateBoundaryDi.h
src/HOMARDGUI/MonCreateCase.cxx
src/HOMARDGUI/MonCreateCase.h
src/HOMARDGUI/MonCreateHypothesis.cxx
src/HOMARDGUI/MonCreateHypothesis.h
src/HOMARDGUI/MonCreateIteration.cxx
src/HOMARDGUI/MonCreateIteration.h
src/HOMARDGUI/MonCreateListGroup.cxx
src/HOMARDGUI/MonCreateListGroup.h
src/HOMARDGUI/MonCreateYACS.cxx
src/HOMARDGUI/MonCreateYACS.h
src/HOMARDGUI/MonCreateZone.cxx
src/HOMARDGUI/MonCreateZone.h
src/HOMARDGUI/MonEditBoundaryAn.cxx
src/HOMARDGUI/MonEditBoundaryAn.h
src/HOMARDGUI/MonEditBoundaryDi.cxx
src/HOMARDGUI/MonEditBoundaryDi.h
src/HOMARDGUI/MonEditCase.cxx
src/HOMARDGUI/MonEditCase.h
src/HOMARDGUI/MonEditFile.cxx
src/HOMARDGUI/MonEditFile.h
src/HOMARDGUI/MonEditHypothesis.cxx
src/HOMARDGUI/MonEditHypothesis.h
src/HOMARDGUI/MonEditIteration.cxx
src/HOMARDGUI/MonEditIteration.h
src/HOMARDGUI/MonEditListGroup.cxx
src/HOMARDGUI/MonEditListGroup.h
src/HOMARDGUI/MonEditYACS.cxx
src/HOMARDGUI/MonEditYACS.h
src/HOMARDGUI/MonEditZone.cxx
src/HOMARDGUI/MonEditZone.h
src/HOMARDGUI/MonIterInfo.cxx
src/HOMARDGUI/MonIterInfo.h
src/HOMARDGUI/MonMeshInfo.cxx
src/HOMARDGUI/MonMeshInfo.h
src/HOMARDGUI/MonPursueIteration.cxx
src/HOMARDGUI/MonPursueIteration.h
src/HOMARDGUI/PursueIteration.h
src/HOMARDGUI/PursueIteration.ui
src/HOMARD_I/CMakeLists.txt
src/HOMARD_I/HOMARD_Boundary_i.cxx
src/HOMARD_I/HOMARD_Boundary_i.hxx
src/HOMARD_I/HOMARD_Cas_i.cxx
src/HOMARD_I/HOMARD_Cas_i.hxx
src/HOMARD_I/HOMARD_Gen_i.cxx
src/HOMARD_I/HOMARD_Gen_i.hxx
src/HOMARD_I/HOMARD_Hypothesis_i.cxx
src/HOMARD_I/HOMARD_Hypothesis_i.hxx
src/HOMARD_I/HOMARD_Iteration_i.cxx
src/HOMARD_I/HOMARD_Iteration_i.hxx
src/HOMARD_I/HOMARD_YACS_i.cxx
src/HOMARD_I/HOMARD_YACS_i.hxx
src/HOMARD_I/HOMARD_Zone_i.cxx
src/HOMARD_I/HOMARD_Zone_i.hxx
src/HOMARD_I/HOMARD_i.hxx
src/HOMARD_I/HomardMedCommun.cxx
src/HOMARD_I/HomardMedCommun.h
src/HOMARD_SWIG/CMakeLists.txt
src/HOMARD_SWIG/HOMARD_shared_modules.py
src/HOMARD_SWIG/libHOMARD_Swig.i
tests/CMakeLists.txt
tests/test_1.py [changed mode: 0644->0755]
tests/test_11.apad.03.bilan [new file with mode: 0644]
tests/test_11.py [new file with mode: 0755]
tests/test_12.apad.02.bilan [new file with mode: 0644]
tests/test_12.py [new file with mode: 0755]
tests/test_13.apad.02.bilan [new file with mode: 0644]
tests/test_13.py [new file with mode: 0755]
tests/test_14.apad.03.bilan [new file with mode: 0644]
tests/test_14.py [new file with mode: 0755]
tests/test_15.apad.02.bilan [new file with mode: 0644]
tests/test_15.py [new file with mode: 0755]
tests/test_2.py [changed mode: 0644->0755]
tests/test_3.py [changed mode: 0644->0755]
tests/test_util.py

index 76ac193519b6798331b75c88b33b878c32a6b73f..40e1861388c3c840ff78bfc65ccefb3d52d2bd06 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +32,7 @@ SET(${PROJECT_NAME_UC}_MINOR_VERSION 3)
 SET(${PROJECT_NAME_UC}_PATCH_VERSION 1)
 SET(${PROJECT_NAME_UC}_VERSION
   ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
-SET(${PROJECT_NAME_UC}_VERSION_DEV 0)
+SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
 
 # Find KERNEL
 # ===========
@@ -41,14 +41,11 @@ IF(EXISTS ${KERNEL_ROOT_DIR})
   LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files")
   INCLUDE(SalomeMacros)
   FIND_PACKAGE(SalomeKERNEL REQUIRED)
+  KERNEL_WITH_CORBA() # check whether KERNEL builded with CORBA
 ELSE(EXISTS ${KERNEL_ROOT_DIR})
   MESSAGE(FATAL_ERROR "We absolutely need a Salome KERNEL, please define KERNEL_ROOT_DIR")
 ENDIF(EXISTS ${KERNEL_ROOT_DIR})
 
-IF(SALOME_LIGHT_ONLY)
-  MESSAGE(FATAL_ERROR "HOMARD module can't be built in Light mode (without CORBA)")
-ENDIF()
-
 # Platform setup
 # ==============
 INCLUDE(SalomeSetupPlatform)   # From KERNEL
@@ -95,6 +92,7 @@ SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR} CACHE PATH "Path to the Salome GUI")
 IF(EXISTS ${GUI_ROOT_DIR})
   LIST(APPEND CMAKE_MODULE_PATH "${GUI_ROOT_DIR}/adm_local/cmake_files")
   FIND_PACKAGE(SalomeGUI REQUIRED)
+  FULL_GUI(TRUE) # check whether GUI builded in full mode and with CORBA
   ADD_DEFINITIONS(${GUI_DEFINITIONS})
   INCLUDE_DIRECTORIES(${GUI_INCLUDE_DIRS})
 ELSE(EXISTS ${GUI_ROOT_DIR})
index 9db2cd16d34dc7a2c68f568993bdc875bda0d8ec..4521ea998331c04a52d47e95effcd68c84584e73 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 1f7556110c74d71f9d932c8b47d9cd1aca7dba12..4ec7cf137e5beb3e637224388248b1ac6a60ae91 100644 (file)
@@ -1,32 +1,27 @@
-# - Config file for the @PROJECT_NAME@ package
-# It defines the following variables. 
-# Specific to the pacakge @PROJECT_NAME@ itself:
-#  @PROJECT_NAME_UC@_ROOT_DIR_EXP - the root path of the installation providing this CMake file
+# Copyright (C) 2013-2014  CEA/DEN, EDF R&D
 #
-
-###############################################################
-#  Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
 #
-#  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
 #
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+# - Config file for the @PROJECT_NAME@ package
+# It defines the following variables. 
+# Specific to the pacakge @PROJECT_NAME@ itself:
+#  @PROJECT_NAME_UC@_ROOT_DIR_EXP - the root path of the installation providing this CMake file
 #
-#  See http://www.salome-platform.org/ or
-#  email : webmaster.salome@opencascade.com
-###############################################################
 
 ### Initialisation performed by CONFIGURE_PACKAGE_CONFIG_FILE:
 @PACKAGE_INIT@
index 84d97c22e5014fa450423e11fb3931dd15cccf26..1edbe754a265aa51c7ba75f855236a81591ea4e5 100755 (executable)
@@ -1,12 +1,9 @@
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+# Copyright (C) 2007-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index d237cf7072d895af3fa47f704681815d85102dd1..6470c6488dddb0c663531eca2e401017c20dc245 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 64d655c47ea37c9c09a7565e60187d30fbd976d6..190ce9940db24795e5ae2a65d85d5b59267ddb72 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,7 +16,6 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-#
 
 IF(NOT SalomeHOMARD_FIND_QUIETLY)
   MESSAGE(STATUS "Looking for Salome HOMARD ...")
index 2f895ae4bc65192d67fe49837c7fbdaa8b7fd4a5..f3b612c2b6df7872353d67258fc850b6056149c6 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 44b6c41853eb42f0ae3cd028a8214b64e4f0dda7..a31473892b7a71feec9d6cff3ef398485cebccf0 100755 (executable)
@@ -1,12 +1,9 @@
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+# Copyright (C) 2007-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 9a9ce6003780482f222c7a9af4d991ccb6441f88..362c973272e40aebff53ad7bf977318d350c2671 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 5e9440ede1268f9b4dc0454f5b4dc4dfb24be444..a62a2f1e8f0d3a9d9b951c4ed845d64986c8988f 100644 (file)
@@ -1,9 +1,9 @@
-dnl Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+dnl Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 dnl
 dnl This library is free software; you can redistribute it and/or
 dnl modify it under the terms of the GNU Lesser General Public
 dnl License as published by the Free Software Foundation; either
-dnl version 2.1 of the License.
+dnl version 2.1 of the License, or (at your option) any later version.
 dnl
 dnl This library is distributed in the hope that it will be useful,
 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
index 2e717ba3a7fbc11828a26d23c88ef1da230e3bc3..f4687e7affd3a3908a6ef3deda40600a9a4ee3c5 100644 (file)
@@ -1,9 +1,9 @@
-dnl Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+dnl Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 dnl
 dnl This library is free software; you can redistribute it and/or
 dnl modify it under the terms of the GNU Lesser General Public
 dnl License as published by the Free Software Foundation; either
-dnl version 2.1 of the License.
+dnl version 2.1 of the License, or (at your option) any later version.
 dnl
 dnl This library is distributed in the hope that it will be useful,
 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
index 9dfd01bc1ec993e9b9e382c5b8515df0d55bbe9c..3eefec99104ffb0f4b9091f62d3900669e8709d9 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 9f255a6b996d611aee3cb77e0836e0f7cceb71b3..20146bb9d161daa2a6cd3c6ee07c34c5d4428f46 100755 (executable)
@@ -1,10 +1,10 @@
 #!/bin/sh
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 957f261a48d370ec18185109e32acf423ab879be..46870176438f2d9574303001aa5ff3342daee720 100755 (executable)
@@ -1,10 +1,10 @@
 #!/usr/bin/env python
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 5d3bb7be0e706ac89fb5c667b6d7107efd983f1b..6cb4873e61355ee26824da249cb5e9fc7d48e27e 100755 (executable)
@@ -1,12 +1,9 @@
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+# Copyright (C) 2007-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index ad003d55f9b69763ee42cd93b0e9c89eb25cab94..fe019f94266c75a5c24c9a5a91685099c36e1e96 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 716e760ce449c67ea9bbb53ec4c3837d5997ea96..2dc8525ff9a937c80c7778b871693779f3492180 100644 (file)
@@ -38,7 +38,7 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'HOMARD'
-copyright = u'1996, 2011, 2013, EDF R&D, G. Nicolas, T. Fouquet, P. Noyret'
+copyright = u'1996, 2011, 2013-2014, EDF R&D, G. Nicolas, T. Fouquet, P. Noyret'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
index 12455ae9fb2311202464f5548a2ffa57e1636a40..f9ae1115065121a7193f16efb6c3225629319e14 100644 (file)
@@ -56,3 +56,11 @@ SALOME VERSION 7.3:
       ``SetFieldInterpTimeStep(FieldInterp, TimeStep)``: defines the time step for the interpolation of the field (see :ref:`tui_create_iteration`)
       ``SetFieldInterpTimeStepRank(FieldInterp, TimeStep, Rank)``: defines the time step and the rank for the interpolation of the field (see :ref:`tui_create_iteration`)
     - If error occurs into the python instructions, the program stops.
+
+SALOME VERSION 7.4 :
+    - Scroll bar for the large windows.
+    - The meshes are published only if requested.
+    - The torus is a new possibility for the analytical boundary.
+    - The function ``SetAdapRefinUnRef(TypeAdap, TypeRaff, TypeDera)`` is suppressed. For an adaptation by a field or by zones, the mode refinement/unrefinement is automatically set from the other parameters of the hypothesis. For a uniform refinement, the function ``SetUnifRefinUnRef(TypeRaffDera)`` is now used (see :ref:`tui_create_hypothese`).
+    - If an error occurs, the name of the message file is displayed.
+
index 8bf860872dfd6e588450363c56ab491b0412120a..5b84c664d8309b5da66d9262da20c57b010c24a1 100644 (file)
@@ -45,7 +45,7 @@ In the starting up, SALOME shows a table with one only one column. This column c
 .. image:: images/create_boundary_an_1.png
    :align: center
 
-It is necessary to create a first analytical boundary by activation of the button "*New*". We shall have the choice between cylinder, sphere or cone. When the boundary will be validated, its name will appear in header of the second column.
+It is necessary to create a first analytical boundary by activation of the button "*New*". We shall have the choice between cylinder, sphere, cone or torus. When the boundary will be validated, its name will appear in header of the second column.
 
 .. image:: images/create_boundary_an_2.png
    :align: center
@@ -76,6 +76,7 @@ There are three types of analytical boundary:
   - Cylindre
   - Sphere
   - Cone, described by an axis and an angle or by two radius
+  - Torus
 
 .. note::
   The numerical values proposed by default take into account the geometry of the mesh.
@@ -117,6 +118,15 @@ Creation by two points centered on the axis and the associated radius:
 
 .. index:: single: object browser
 
+Torus
+=====
+.. index:: single: torus
+
+The torus is defined by its centre, its axis, the revolution radius and the primary radius. The axis is defined by a vector. The standard of this vector is not inevitably equal to 1; also, its orientation has no importance. A name of boundary is automatically proposed: Boun_1, Boun_2, etc. This name can be modified. It must not already have been used for another boundary.
+
+.. image:: images/create_boundary_an_to.png
+   :align: center
+
 Object browser
 **************
 At the end of this creation of boundaries, the object browser was enriched. We find all the boundaries created, identified there by their name, with the possibility of editing them.
index 6b1853bc09904e1a8e095944c8e23637a88faca0..b8accc91b61953a7313d33cb6d908591fdf994dd 100644 (file)
@@ -50,4 +50,12 @@ An automatic creation of a schema YACS is available in the module HOMARD.
    gui_create_yacs_aster
 
 
+Preferences
+***********
 
+Some default options for the module HOMARD are defined into the preferences.
+
+.. toctree::
+   :maxdepth: 2
+
+   preferences
diff --git a/doc/en/images/create_boundary_an_to.png b/doc/en/images/create_boundary_an_to.png
new file mode 100644 (file)
index 0000000..38e3940
Binary files /dev/null and b/doc/en/images/create_boundary_an_to.png differ
diff --git a/doc/en/images/preferences_1.png b/doc/en/images/preferences_1.png
new file mode 100644 (file)
index 0000000..37022f8
Binary files /dev/null and b/doc/en/images/preferences_1.png differ
diff --git a/doc/en/preferences.rst b/doc/en/preferences.rst
new file mode 100644 (file)
index 0000000..9d87a11
--- /dev/null
@@ -0,0 +1,26 @@
+.. _preferences:
+
+The preferences
+###############
+.. index:: single: preferences
+
+Some default options for the module HOMARD are defined into the preferences.
+
+
+The language
+************
+The language that is selected into the general preferences of SALOME is used for the menus of the GUI.
+
+If french is selected, the messages that are produced by HOMARD are in french. Otherwise, english is used.
+
+Publication of the meshes
+*************************
+.. index:: single: publication
+
+.. image:: images/preferences_1.png
+   :align: center
+
+By default, the meshes that are read during the creation of the case or that are produced after an adaptation are not published into SMESH. This choice can be modified here.
+
+
+
index 5818fc986bb3693544b02dc93622101bb24d2fc3..b6efe599726daf945f13848b94c5c9020e993c15 100644 (file)
@@ -68,6 +68,18 @@ These methods returns an instance of the class boundary.
 |     - ``Xc2``, ``Yc2``, ``Zc2``: coordinates of the second centre of the cone          |
 |     - ``R2``: radius of the cone at the second centre of the cone                      |
 +----------------------------------------------------------------------------------------+
+| .. module:: CreateBoundaryTorus                                                        |
+|                                                                                        |
+| **CreateBoundaryTorus(boundary_name, Xcen, Ycen, Zcen, Xaxe, Yaxe, Zaxe, RRev, RPri)** |
+|     Returns an instance of the class ``boundary`` analytical type torus                |
+|     after its creation                                                                 |
+|                                                                                        |
+|     - ``boundary_name``: the name of the analytical boundary based on a torus          |
+|     - ``Xcen``, ``Ycen``, ``Zcen``: coordinates of the centre of the torus             |
+|     - ``Xaxe``, ``Yaxe``, ``Zaxe``: vector of the axis                                 |
+|     - ``RRev``: revolution radius of the torus                                         |
+|     - ``RPri``: primary radius of the torus                                            |
++----------------------------------------------------------------------------------------+
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -134,6 +146,7 @@ Methods of the class boundary
 |         * 2: sphere                                           |
 |         * 3: cone defined by an axis and an angle             |
 |         * 4: cone defined by 2 radius                         |
+|         * 5: torus                                            |
 +---------------------------------------------------------------+
 | .. module:: GetCoords                                         |
 |                                                               |
index 957eadf780dc5cc3394879ba538a3129fad414e3..c4f739339cd2151a5cae78af38834c8227706324 100644 (file)
@@ -50,44 +50,30 @@ General methods
 | **GetName()**                                                 |
 |     Returns the name of the hypothesis                        |
 +---------------------------------------------------------------+
-| .. module:: SetAdapRefinUnRef                                 |
-|                                                               |
-| **SetAdapRefinUnRef(Adap, Refin, UnRef)**                     |
-|     Gives the type of adaptation to the hypothesis            |
+| .. module:: GetAdapType                                       |
 |                                                               |
-|     - ``Adap``: integer that defines the type of adaptation   |
+| **GetAdapType()**                                             |
+|     Returns the type of the adaptation                        |
 |                                                               |
 |         * -1: uniform                                         |
 |         * 0: by zones                                         |
 |         * 1: by a field                                       |
-|                                                               |
-|     - ``Refin``: integer that informs if the refinement is    |
-|       active or not                                           |
-|                                                               |
-|         * 0: unactive                                         |
-|         * 1: active                                           |
-|                                                               |
-|     - ``UnRef``: integer that informs if the refinement is    |
-|       active or not                                           |
-|                                                               |
-|         * 0: unactive                                         |
-|         * 1: active                                           |
-|                                                               |
-+---------------------------------------------------------------+
-| .. module:: GetAdapType                                       |
-|                                                               |
-| **GetAdapType()**                                             |
-|     Returns the type of the adaptation                        |
 +---------------------------------------------------------------+
 | .. module:: GetRefinType                                      |
 |                                                               |
 | **GetRefinType()**                                            |
 |     Returns the type of the refinement                        |
+|                                                               |
+|         * 0: unactive                                         |
+|         * 1: active                                           |
 +---------------------------------------------------------------+
 | .. module:: GetUnRefType                                      |
 |                                                               |
 | **GetUnRefType()**                                            |
 |     Returns the type of the unrefinement                      |
+|                                                               |
+|         * 0: unactive                                         |
+|         * 1: active                                           |
 +---------------------------------------------------------------+
 | .. module:: Delete                                            |
 |                                                               |
@@ -99,8 +85,28 @@ General methods
 |         * other value: problem                                |
 +---------------------------------------------------------------+
 
+Uniform adaptation
+==================
+
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+| .. module:: SetUnifRefinUnRef                                 |
+|                                                               |
+| **SetUnifRefinUnRef(RefinUnRef)**                             |
+|     Defines a type of adaptation for the whole mesh           |
+|                                                               |
+|     - ``RefinUnRef``: integer that defines the                |
+|       type of adaptation                                      |
+|                                                               |
+|         * 1: refinement                                       |
+|         * -1: unrefinement                                    |
++---------------------------------------------------------------+
+
+Adaptation by a field
+=====================
+
 The driving field and the thresholds
-====================================
+------------------------------------
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -172,7 +178,7 @@ The driving field and the thresholds
 
 
 The components of the driving field
-===================================
+-----------------------------------
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -217,8 +223,8 @@ The components of the driving field
 +---------------------------------------------------------------+
 
 
-The zones
-=========
+Adaptation by zones
+===================
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -429,7 +435,6 @@ The creation of the object hypo_1 is done as follows:
 ::
 
     hypo_1 = homard.CreateHypothesis("HypoField")
-    hypo_1.SetAdapRefinUnRef(1, 1, 0)
     hypo_1.SetField("INDICATEUR")
     hypo_1.AddComp("INDX")
     hypo_1.AddComp("INDZ")
index 0d8c271e92f16d0ce0e540fc586d659db394355b..2b8b19654c925cec4607923a3dc69855e4becc00 100644 (file)
@@ -1,5 +1,9 @@
 User's guide of the TUI
 #######################
+
+User's guide
+************
+
 The functionnalities of the module HOMARD are available by python instructions. We shall find here the description of each of the functions.
 
 .. toctree::
@@ -12,3 +16,13 @@ The functionnalities of the module HOMARD are available by python instructions.
    tui_create_boundary
    tui_homard
    tui_create_yacs
+
+Preferences
+***********
+
+Some default options for the module HOMARD are defined into the preferences.
+
+.. toctree::
+   :maxdepth: 2
+
+   preferences
index 4de3b77a5bfb3dd233f6bb9b8f30201f8d3df601..e057799beb7464bce0608f5f4f95f3c7f87129f7 100644 (file)
@@ -37,29 +37,32 @@ One will make here three successive uniform refinements of the mesh contained in
 
 
 .. literalinclude:: ../files/tutorial_1.py
-   :lines: 57-89
+   :lines: 52-85
 
 .. note::
   Download the files
 
   * :download:`initial mesh<../files/tutorial_1.00.med.gz>`
   * :download:`python script<../files/tutorial_1.py>`
+  * :download:`python script for the compression<../files/tutorial_util.py>`
+
 
 
 Refinement by zones
 *******************
 .. index:: single: zone
 
-One proceeds here to refinement according to zones. To pass from the initial mesh to the mesh 'M_1', one uses a box framing the z=1 plane and a sphere centered on the origin with radius 1.05. Then to pass from the mesh 'M_1' to the mesh 'M_2', one replaces the sphere by a box framing the cube on side 0.5, pointing on the origin. It will be noted that the type of refinement was not specified; by default, it will be thus in conformity.
+One proceeds here to refinement according to zones. To pass from the initial mesh to the mesh 'M_1', one uses a box framing the z=1 plane and a sphere centered on the origin with radius 1.05. Then to pass from the mesh 'M_1' to the mesh 'M_2', one replaces the sphere by a box framing the cube on side 0.5, pointing on the origin and the meshes in the very first zone are unrefined.
 
 .. literalinclude:: ../files/tutorial_2.py
-   :lines: 57-101
+   :lines: 52-95
 
 .. note::
   Download the files
 
   * :download:`initial mesh<../files/tutorial_2.00.med.gz>`
   * :download:`python script<../files/tutorial_2.py>`
+  * :download:`python script for the compression<../files/tutorial_util.py>`
 
 
 Refinement driven by a field
@@ -70,7 +73,7 @@ One proceeds here to refinement according to a field. The hypotheses are used to
 To adapt the H_1 mesh resulting from the Iter_1 iteration, two alternatives are applied. In the first, Iter_2, the field is a scalar field of indicators of error and one cuts out the 1.5% of elements where the error is largest. In the second alternative, Iter_2_bis, one is based on a vector field and one examines the jump of this vector between an element and its neighbors: one will cut out where the infinite standard of this jump is higher than the absolute threshold of 0.0001.
 
 .. literalinclude:: ../files/tutorial_3.py
-   :lines: 57-131
+   :lines: 52-124
 
 .. note::
   Download the files
@@ -78,6 +81,7 @@ To adapt the H_1 mesh resulting from the Iter_1 iteration, two alternatives are
   * :download:`mesh and field stage 0<../files/tutorial_3.00.med.gz>`
   * :download:`mesh and field stage 1<../files/tutorial_3.01.med.gz>`
   * :download:`python script<../files/tutorial_3.py>`
+  * :download:`python script for the compression<../files/tutorial_util.py>`
 
 
 Non plane boundaries
@@ -89,7 +93,7 @@ One tests the follow-up of the curved borders here: analytical borders to descri
 Scheme YACS carrying out this adaptation is downloadable.
 
 .. literalinclude:: ../files/tutorial_4.py
-   :lines: 57-115
+   :lines: 52-111
 
 .. note::
   Download the files
@@ -97,6 +101,7 @@ Scheme YACS carrying out this adaptation is downloadable.
   * :download:`initial mesh<../files/tutorial_4.00.med.gz>`
   * :download:`mesh of the discrete boundary<../files/tutorial_4.fr.med.gz>`
   * :download:`python script<../files/tutorial_4.py>`
+  * :download:`python script for the compression<../files/tutorial_util.py>`
   * :download:`YACS scheme<../files/tutorial_4.xml>`
 
 
@@ -108,7 +113,7 @@ The instructions to adapt a 2D mesh are exactly identical to those necessary to
 In the case presented here, one for the first time refines all the elements contained in a bored disk, then in one second iteration, all the elements contained in a rectangle. One will note the use of the follow-up of the circular borders of the field.
 
 .. literalinclude:: ../files/tutorial_5.py
-   :lines: 57-101
+   :lines: 52-95
 
 .. note::
   Download the files
@@ -116,6 +121,7 @@ In the case presented here, one for the first time refines all the elements cont
   * :download:`initial mesh<../files/tutorial_5.00.med.gz>`
   * :download:`mesh of the discrete boundary<../files/tutorial_5.fr.med.gz>`
   * :download:`python script<../files/tutorial_5.py>`
+  * :download:`python script for the compression<../files/tutorial_util.py>`
 
 
 .. toctree::
index c9ab5a80e4e8790ad2dfd6412a0b561518ca7df3..935282616cf0b2ac40b089e087259dbbde179c00 100644 (file)
@@ -1,6 +1,6 @@
     <HOMARD, a SALOME module for Mesh Adaptation>
 
-    Copyright (C) 1996-2013 EDF R&D
+    Copyright (C) 1996-2014 EDF R&D
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Lesser General Public
index c9ab5a80e4e8790ad2dfd6412a0b561518ca7df3..935282616cf0b2ac40b089e087259dbbde179c00 100644 (file)
@@ -1,6 +1,6 @@
     <HOMARD, a SALOME module for Mesh Adaptation>
 
-    Copyright (C) 1996-2013 EDF R&D
+    Copyright (C) 1996-2014 EDF R&D
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Lesser General Public
old mode 100644 (file)
new mode 100755 (executable)
index bfb2d85..bfb44fa
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
 
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 """
 Exemple de couplage HOMARD-Salome
-Copyright EDF-R&D 1996, 2010, 2013
+Copyright EDF-R&D 1996, 2010, 2014
 """
-__revision__ = "V1.7"
+__revision__ = "V1.9"
 #
 import os
+import sys
 #
 # ==================================
-# Repertoire a personnaliser
-# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med, maill.03.med
-if os.environ.has_key("LOGNAME") :
-  user = os.environ ["LOGNAME"]
-else :
-  user = "anonymous"
-dircase = os.path.join( os.sep, "tmp", "HOMARD_"+user)
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-dircase = os.path.join( dircase, "tutorial_1" )
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-# ==================================
-# Ce repertoire contient les fichiers de donnees : tutorial_1.00.med
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
-data_dir = os.path.join(pathHomard, "share/doc/salome/gui/HOMARD/fr/_downloads")
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+from tutorial_util import creation_dircase
+# ==================================
+dircase = creation_dircase(1)
+gzip_gunzip(data_dir, 1, -1)
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -57,7 +53,7 @@ homard.SetCurrentStudy(salome.myStudy)
 # Hypotheses
 # ==========
 Hypo_1 = homard.CreateHypothesis('Hypo_1')
-Hypo_1.SetAdapRefinUnRef(-1, 1, 0)
+Hypo_1.SetUnifRefinUnRef(1)
 #
 # Cas
 # ===
@@ -72,21 +68,25 @@ Iter_1_1 = Case_1.NextIteration('Iter_1_1')
 Iter_1_1.SetMeshName('MESH')
 Iter_1_1.SetMeshFile(dircase+'/maill.01.med')
 Iter_1_1.AssociateHypo('Hypo_1')
-codret = Iter_1_1.Compute(1, 2)
+error = Iter_1_1.Compute(1, 2)
 
 # Iteration "Iter_1_2"
 Iter_1_2 = Iter_1_1.NextIteration('Iter_1_2')
 Iter_1_2.SetMeshName('MESH')
 Iter_1_2.SetMeshFile(dircase+'/maill.02.med')
 Iter_1_2.AssociateHypo('Hypo_1')
-codret = Iter_1_2.Compute(1, 2)
+error = Iter_1_2.Compute(1, 2)
 
 # Iteration "Iter_1_3"
 Iter_1_3 = Iter_1_2.NextIteration('Iter_1_3')
 Iter_1_3.SetMeshName('MESH')
 Iter_1_3.SetMeshFile(dircase+'/maill.03.med')
 Iter_1_3.AssociateHypo('Hypo_1')
-codret = Iter_1_3.Compute(1, 2)
+error = Iter_1_3.Compute(1, 2)
+
+# ==================================
+gzip_gunzip(data_dir, 1, 1)
+# ==================================
 
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
old mode 100644 (file)
new mode 100755 (executable)
index d5caeeb..51b9323
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
 
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 """
 Exemple de couplage HOMARD-Salome
-Copyright EDF-R&D 1996, 2010, 2013
+Copyright EDF-R&D 1996, 2010, 2014
 """
-__revision__ = "V1.8"
+__revision__ = "V1.10"
 #
 import os
+import sys
 #
 # ==================================
-# Repertoire a personnaliser
-# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med
-if os.environ.has_key("LOGNAME") :
-  user = os.environ ["LOGNAME"]
-else :
-  user = "anonymous"
-dircase = os.path.join( os.sep, "tmp", "HOMARD_"+user)
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-dircase = os.path.join( dircase, "tutorial_2" )
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-# ==================================
-# Ce repertoire contient les fichiers de donnees : tutorial_2.00.med
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
-data_dir = os.path.join(pathHomard, "share/doc/salome/gui/HOMARD/fr/_downloads")
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+from tutorial_util import creation_dircase
+# ==================================
+dircase = creation_dircase(2)
+gzip_gunzip(data_dir, 2, -1)
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -68,15 +64,13 @@ Zone_2 = homard.CreateZoneBox ('Zone_2', -0.1, 0.51, -0.1, 0.51, -0.1, 0.51)
 # Hypothese "Hypo_2"
 # ==================
 Hypo_2 = homard.CreateHypothesis('Hypo_2')
-Hypo_2.SetAdapRefinUnRef(0, 1, 0)
 Hypo_2.AddZone('Zone_1', 1)
 Hypo_2.AddZone('Zone_0', 1)
 #
 # Hypothese "Hypo_2_bis"
 # ======================
 Hypo_2_bis = homard.CreateHypothesis('Hypo_2_bis')
-Hypo_2_bis.SetAdapRefinUnRef(0, 1, 0)
-Hypo_2_bis.AddZone('Zone_0', 1)
+Hypo_2_bis.AddZone('Zone_0', -1)
 Hypo_2_bis.AddZone('Zone_2', 1)
 #
 # Cas
@@ -90,7 +84,7 @@ Iter_2_1 = Case_2.NextIteration('Iter_2_1')
 Iter_2_1.SetMeshName('M_1')
 Iter_2_1.SetMeshFile(dircase+'/maill.01.med')
 Iter_2_1.AssociateHypo('Hypo_2')
-codret = Iter_2_1.Compute(1, 2)
+error = Iter_2_1.Compute(1, 2)
 #
 # Iteration "Iter_2_2"
 # ====================
@@ -98,7 +92,11 @@ Iter_2_2 = Iter_2_1.NextIteration('Iter_2_2')
 Iter_2_2.SetMeshName('M_2')
 Iter_2_2.SetMeshFile(dircase+'/maill.02.med')
 Iter_2_2.AssociateHypo('Hypo_2_bis')
-codret = Iter_2_2.Compute(1, 2)
+error = Iter_2_2.Compute(1, 2)
+
+# ==================================
+gzip_gunzip(data_dir, 2, 1)
+# ==================================
 
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
old mode 100644 (file)
new mode 100755 (executable)
index 55943ec..728c791
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
 
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 """
 Exemple de couplage HOMARD-Salome
-Copyright EDF-R&D 1996, 2010, 2013
+Copyright EDF-R&D 1996, 2010, 2014
 """
-__revision__ = "V1.7"
+__revision__ = "V1.9"
 #
 import os
+import sys
 #
 # ==================================
-# Repertoire a personnaliser
-# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med
-if os.environ.has_key("LOGNAME") :
-  user = os.environ ["LOGNAME"]
-else :
-  user = "anonymous"
-dircase = os.path.join( os.sep, "tmp", "HOMARD_"+user)
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-dircase = os.path.join( dircase, "tutorial_3" )
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-# ==================================
-# Ce repertoire contient les fichiers de donnees : tutorial_3.00.med, tutorial_3.01.med
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
-data_dir = os.path.join(pathHomard, "share/doc/salome/gui/HOMARD/fr/_downloads")
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+from tutorial_util import creation_dircase
+# ==================================
+dircase = creation_dircase(3)
+gzip_gunzip(data_dir, 3, -1)
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -57,7 +53,6 @@ homard.SetCurrentStudy(salome.myStudy)
 # Hypothese "Hypo_0vers1"
 # =======================
 Hypo_0vers1 = homard.CreateHypothesis('Hypo_0vers1')
-Hypo_0vers1.SetAdapRefinUnRef(1, 1, 0)
 # Characterization of the field
 Hypo_0vers1.SetField('SOLU_0__QIRE_ELEM_SIGM__________')
 Hypo_0vers1.SetUseComp(0)
@@ -70,7 +65,6 @@ Hypo_0vers1.AddFieldInterp('SOLU_0__ERRE_ELEM_SIGM__________')
 # Hypothese "Hypo_1vers2"
 # =======================
 Hypo_1vers2 = homard.CreateHypothesis('Hypo_1vers2')
-Hypo_1vers2.SetAdapRefinUnRef(1, 1, 1)
 # Characterization of the field
 Hypo_1vers2.SetField('SOLU_1__QIRE_ELEM_SIGM__________')
 Hypo_1vers2.SetUseComp(0)
@@ -84,7 +78,6 @@ Hypo_1vers2.AddFieldInterp('SOLU_1__QIRE_ELEM_SIGM__________')
 # Hypothese "Hypo_1vers2_bis"
 # ===========================
 Hypo_1vers2_bis = homard.CreateHypothesis('Hypo_1vers2_bis')
-Hypo_1vers2_bis.SetAdapRefinUnRef(1, 1, 1)
 # Characterization of the field
 Hypo_1vers2_bis.SetField('SOLU_1__DEPL____________________')
 Hypo_1vers2_bis.SetUseComp(1)
@@ -108,7 +101,7 @@ Iter_3_1.SetMeshFile(dircase+'/maill.01.med')
 Iter_3_1.SetFieldFile(data_dir+'/tutorial_3.00.med')
 Iter_3_1.SetTimeStepRank( 1, 1)
 Iter_3_1.AssociateHypo('Hypo_0vers1')
-codret = Iter_3_1.Compute(1, 2)
+error = Iter_3_1.Compute(1, 2)
 #
 # Iteration "Iter_3_2"
 # ====================
@@ -118,7 +111,7 @@ Iter_3_2.SetMeshFile(dircase+'/maill.02.med')
 Iter_3_2.SetFieldFile(data_dir+'/tutorial_3.01.med')
 Iter_3_2.SetTimeStepRank(1, 1)
 Iter_3_2.AssociateHypo('Hypo_1vers2')
-codret = Iter_3_2.Compute(1, 2)
+error = Iter_3_2.Compute(1, 2)
 #
 # Iteration "Iter_3_2_bis"
 # ========================
@@ -128,7 +121,11 @@ Iter_3_2_bis.SetMeshFile(dircase+'/maill.02.bis.med')
 Iter_3_2_bis.SetFieldFile(data_dir+'/tutorial_3.01.med')
 Iter_3_2_bis.SetTimeStepRank(1, 1)
 Iter_3_2_bis.AssociateHypo('Hypo_1vers2_bis')
-codret = Iter_3_2_bis.Compute(1, 2)
-#
+error = Iter_3_2_bis.Compute(1, 2)
+
+# ==================================
+gzip_gunzip(data_dir, 3, 1)
+# ==================================
+
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
old mode 100644 (file)
new mode 100755 (executable)
index 662efa4..8c7a0b2
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
 
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 """
 Exemple de couplage HOMARD-Salome
-Copyright EDF-R&D 1996, 2011, 2013
+Copyright EDF-R&D 1996, 2011, 2014
 """
-__revision__ = "V2.3"
+__revision__ = "V2.5"
 #
 import os
+import sys
 #
 # ==================================
-# Repertoire a personnaliser
-# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med, maill.03.med
-if os.environ.has_key("LOGNAME") :
-  user = os.environ ["LOGNAME"]
-else :
-  user = "anonymous"
-dircase = os.path.join( os.sep, "tmp", "HOMARD_"+user)
-if not os.path.isdir(dircase) :
-    os.mkdir (dircase)
-dircase = os.path.join( dircase, "tutorial_4" )
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-# ==================================
-# Ce repertoire contient les fichiers de donnees : tutorial_4.00.med, tutorial_4.fr.med
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
-data_dir = os.path.join(pathHomard, "share/doc/salome/gui/HOMARD/fr/_downloads")
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+from tutorial_util import creation_dircase
+# ==================================
+dircase = creation_dircase(4)
+gzip_gunzip(data_dir, 4, -1)
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -70,13 +66,13 @@ Boun_4_5 = homard.CreateBoundaryCylinder('cyl_2_int', 17.5, -2.5, -12.5, -100.,
 # ==========
 # Creation of the hypothesis Hypo_4
 Hypo_4 = homard.CreateHypothesis('Hypo_4')
-Hypo_4.SetAdapRefinUnRef(-1, 1, 0)
+Hypo_4.SetUnifRefinUnRef(1)
 Hypo_4.AddGroup('T1_INT_I')
 Hypo_4.AddGroup('T1_INT_O')
 Hypo_4.AddGroup('T2_INT')
 # Creation of the hypothesis Hypo_4_bis
 Hypo_4_bis = homard.CreateHypothesis('Hypo_4_bis')
-Hypo_4_bis.SetAdapRefinUnRef(-1, 1, 0)
+Hypo_4_bis.SetUnifRefinUnRef(1)
 Hypo_4_bis.AddGroup('T1_EXT_I')
 Hypo_4_bis.AddGroup('T1_EXT_O')
 Hypo_4_bis.AddGroup('T2_EXT')
@@ -100,19 +96,23 @@ Iter_4_1 = Case_4.NextIteration('Iter_4_1')
 Iter_4_1.SetMeshName('PIQUAGE_1')
 Iter_4_1.SetMeshFile(dircase+'/maill.01.med')
 Iter_4_1.AssociateHypo('Hypo_4')
-codret = Iter_4_1.Compute(1, 2)
+error = Iter_4_1.Compute(1, 2)
 # Iteration Iter_4_2 : raffinement selon les faces externes
 Iter_4_2 = Iter_4_1.NextIteration('Iter_4_2')
 Iter_4_2.SetMeshName('PIQUAGE_2')
 Iter_4_2.SetMeshFile(dircase+'/maill.02.med')
 Iter_4_2.AssociateHypo('Hypo_4_bis')
-codret = Iter_4_2.Compute(1, 2)
+error = Iter_4_2.Compute(1, 2)
 # Iteration Iter_4_3 : second raffinement selon les faces externes
 Iter_4_3 = Iter_4_2.NextIteration('Iter_4_3')
 Iter_4_3.SetMeshName('PIQUAGE_3')
 Iter_4_3.SetMeshFile(dircase+'/maill.03.med')
 Iter_4_3.AssociateHypo('Hypo_4_bis')
-codret = Iter_4_3.Compute(1, 2)
+error = Iter_4_3.Compute(1, 2)
+
+# ==================================
+gzip_gunzip(data_dir, 4, 1)
+# ==================================
 
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
old mode 100644 (file)
new mode 100755 (executable)
index a906987..b049f56
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
 
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 """
 Exemple de couplage HOMARD-Salome
-Copyright EDF-R&D 1996, 2010, 2013
+Copyright EDF-R&D 1996, 2010, 2014
 """
-__revision__ = "V1.6"
+__revision__ = "V1.8"
 #
 import os
+import sys
 #
 # ==================================
-# Repertoire a personnaliser
-# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med
-if os.environ.has_key("LOGNAME") :
-  user = os.environ ["LOGNAME"]
-else :
-  user = "anonymous"
-dircase = os.path.join( os.sep, "tmp", "HOMARD_"+user)
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-dircase = os.path.join( dircase, "tutorial_5" )
-if not os.path.isdir(dircase) :
-  os.mkdir (dircase)
-# ==================================
-# Ce repertoire contient les fichiers de donnees : tutorial_5.00.med, tutorial_5.fr.med
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
-data_dir = os.path.join(pathHomard, "share/doc/salome/gui/HOMARD/fr/_downloads")
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+from tutorial_util import creation_dircase
+# ==================================
+dircase = creation_dircase(5)
+gzip_gunzip(data_dir, 5, -1)
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -70,11 +66,9 @@ quart_sup = homard.CreateZoneBox2D( 'quart_sup', 0., 250., 0., 250., 1 )
 # ==========
 # Creation of the hypothesis Hypo_5
 Hypo_5 = homard.CreateHypothesis('Hypo_5')
-Hypo_5.SetAdapRefinUnRef(0, 1, 0)
 Hypo_5.AddZone('enveloppe', 1)
 # Creation of the hypothesis Hypo_5_bis
 Hypo_5_bis = homard.CreateHypothesis('Hypo_5_bis')
-Hypo_5_bis.SetAdapRefinUnRef(0, 1, 0)
 Hypo_5_bis.AddZone('quart_sup', 1)
 #
 # Cas
@@ -90,7 +84,7 @@ Iter_5_1 = Case_5.NextIteration('Iter_5_1')
 Iter_5_1.SetMeshName('COEUR_2D_01')
 Iter_5_1.SetMeshFile(dircase+'/maill.01.med')
 Iter_5_1.AssociateHypo('Hypo_5')
-codret = Iter_5_1.Compute(1, 2)
+error = Iter_5_1.Compute(1, 2)
 #
 # Iteration "Iter_5_2"
 # ====================
@@ -98,8 +92,11 @@ Iter_5_2 = Iter_5_1.NextIteration('Iter_5_2')
 Iter_5_2.SetMeshName('COEUR_2D_02')
 Iter_5_2.SetMeshFile(dircase+'/maill.02.med')
 Iter_5_2.AssociateHypo('Hypo_5_bis')
-codret = Iter_5_2.Compute(1, 2)
+error = Iter_5_2.Compute(1, 2)
 
+# ==================================
+gzip_gunzip(data_dir, 5, 1)
+# ==================================
 
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
diff --git a/doc/files/tutorial_util.py b/doc/files/tutorial_util.py
new file mode 100755 (executable)
index 0000000..b409c7a
--- /dev/null
@@ -0,0 +1,129 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+Python script for HOMARD
+Copyright EDF-R&D 2014
+"""
+__revision__ = "V1.1"
+
+import os
+import sys
+
+pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des tests
+Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
+Rep_Test = os.path.normpath(Rep_Test)
+sys.path.append(Rep_Test)
+from test_util import remove_dir
+
+#========================================================================
+#========================================================================
+def gzip_gunzip(data_dir, num_tuto, option) :
+  """
+Compression/Uncompression of the med files of a directory such as tutorial_x.nn.med
+data_dir: directory
+num_tuto: number of the tutorial
+option  : 1: compression, -1: uncompression
+Copyright EDF-R&D 2014
+  """
+#
+  ficloc_basis = "tutorial_%d" % num_tuto
+#
+  ok = True
+  num = -1
+#
+# Uncompression
+#
+  if ( option == -1 ) :
+#
+    while ok :
+      num += 1
+      ficloc = ficloc_basis + ".%02d.med" % num
+      nomfic = os.path.join(data_dir, ficloc)
+      if not os.path.isfile(nomfic) :
+        ficloc += ".gz"
+        nomfic = os.path.join(data_dir, ficloc)
+        if os.path.isfile(nomfic) :
+          os.system("gunzip "+nomfic)
+        else :
+          ok = False
+          break
+#
+    ficloc = ficloc_basis + ".fr.med"
+    nomfic = os.path.join(data_dir, ficloc)
+    if not os.path.isfile(nomfic) :
+      ficloc += ".gz"
+      nomfic = os.path.join(data_dir, ficloc)
+      if os.path.isfile(nomfic) :
+        os.system("gunzip "+nomfic)
+#
+# Compression
+#
+  elif ( option == 1 ) :
+#
+    while ok :
+      num += 1
+      ficloc = ficloc_basis + ".%02d.med.gz" % num
+      nomfic = os.path.join(data_dir, ficloc)
+      if not os.path.isfile(nomfic) :
+        ficloc = ficloc_basis + ".%02d.med" % num
+        nomfic = os.path.join(data_dir, ficloc)
+        if os.path.isfile(nomfic) :
+          os.system("gzip "+nomfic)
+        else :
+          ok = False
+          break
+#
+    ficloc = ficloc_basis + ".fr.med.gz"
+    nomfic = os.path.join(data_dir, ficloc)
+    if not os.path.isfile(nomfic) :
+      ficloc = ficloc_basis + ".fr.med"
+      nomfic = os.path.join(data_dir, ficloc)
+      if os.path.isfile(nomfic) :
+        os.system("gzip "+nomfic)
+#
+  return
+#
+#========================================================================
+#========================================================================
+def creation_dircase(num_tuto) :
+  """
+Creation of a directory for the results of tutorial_x
+num_tuto: number of the tutorial
+Copyright EDF-R&D 2014
+  """
+#
+  if os.environ.has_key("LOGNAME") :
+    user = os.environ ["LOGNAME"]
+  else :
+    user = "anonymous"
+  dircase = os.path.join( os.sep, "tmp", "HOMARD_"+user)
+  if not os.path.isdir(dircase) :
+    os.mkdir (dircase)
+  dirtuto_basis = "tutorial_%d" % num_tuto
+  dircase = os.path.join( dircase, dirtuto_basis )
+  if os.path.isdir(dircase) :
+    remove_dir(dircase)
+  os.mkdir (dircase)
+#
+  return dircase
+#========================================================================
+#========================================================================
+#
index b11b04587a50cc0630125651f8d43a8dd19fa3d9..4a09ee4ba78a5cb1f1f230bba4a323539703c04b 100755 (executable)
@@ -1,5 +1,24 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
+# Copyright (C) 2013-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
 """
 Lancement d'un calcul ASTER
 """
index da3d2500a72fde06eab0c3caa0afdc8dc6e23197..aceeb465a3fbf23a90ef9cb6cc39492c9905e43f 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 977503ae8a4a3d59749ec982e257a5b95c213fef..c34b5b229f4688a87af98cabfc7e2db40f907fb1 100644 (file)
@@ -38,7 +38,7 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'HOMARD'
-copyright = u'1996, 2011, 2013, EDF R&D, G. Nicolas, T. Fouquet, P. Noyret'
+copyright = u'1996, 2011, 2013-2014, EDF R&D, G. Nicolas, T. Fouquet, P. Noyret'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
index 1994b6edb24af00781fad9ed9b25e89501b21acc..fce811bb759b59df783ab1b9ce48087496255a0f 100644 (file)
@@ -57,4 +57,11 @@ SALOME VERSION 7.3 :
       ``SetFieldInterpTimeStepRank(FieldInterp, TimeStep, Rank)`` : interpole le champ au pas de temps TimeStep et au numéro d'ordre Rank (voir :ref:`tui_create_iteration`)
     - Arrêt en cas d'erreur dans les données des instructions python
 
+SALOME VERSION 7.4 :
+    - Grandes fenêtres avec ascenseur.
+    - Publication des maillages à la demande.
+    - Suivi de frontière analytique torique.
+    - La fonction ``SetAdapRefinUnRef(TypeAdap, TypeRaff, TypeDera)`` est supprimée. Pour une adaptation selon un champ ou des zones, le mode raffinement/déraffinement est automatiquement déduit des autres paramètres de l'hypothèse. Pour un raffinement uniforme, on utilisera ``SetUnifRefinUnRef(TypeRaffDera)`` (voir :ref:`tui_create_hypothese`).
+    - En cas d'erreur dans l'adaptation, le nom du fichier de messages est affiché.
+
 
index 914d87cce4e2b31cf7a972fe60ff73d6e330f084..5710384a82e9c00a180fd29ab31389a47ab8cbb8 100644 (file)
@@ -45,7 +45,7 @@ Au d
 .. image:: images/create_boundary_an_1.png
    :align: center
 
-Il faut créer une première frontière analytique par activation du bouton "*Nouveau*". On aura le choix entre cylindre, sphère ou cône. Une fois que la frontière sera validée, son nom figurera en en-tête d'une deuxième colonne.
+Il faut créer une première frontière analytique par activation du bouton "*Nouveau*". On aura le choix entre cylindre, sphère, cône ou tore. Une fois que la frontière sera validée, son nom figurera en en-tête d'une deuxième colonne.
 
 .. image:: images/create_boundary_an_2.png
    :align: center
@@ -76,6 +76,7 @@ Il existe trois types de fronti
   - Cylindre
   - Sphère
   - Cône, décrit par un axe et un angle ou par deux rayons
+  - Tore
 
 .. note::
   Les valeurs numériques proposées par défaut tiennent compte de la géométrie du maillage.
@@ -115,6 +116,15 @@ Cr
 .. image:: images/create_boundary_an_co_2.png
    :align: center
 
+Un tore
+=======
+.. index:: single: tore
+
+Le tore est défini par son centre, son axe, le rayon de révolution et le rayon primaire. L'axe est défini par un vecteur. La norme de ce vecteur n'est pas nécessairement égale à 1 ; de même, son orientation n'a aucune importance. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+
+.. image:: images/create_boundary_an_to.png
+   :align: center
+
 L'arbre d'étude
 ***************
 .. index:: single: arbre d'étude
index 66001c436f0e132da8946d7ad6f60e9156c2b068..0f53da5787651eb006852a64375067e30522cbd2 100644 (file)
@@ -49,3 +49,13 @@ Le module HOMARD propose la cr
    gui_create_yacs
    gui_create_yacs_aster
 
+
+Préférences
+***********
+
+Un certain nombre de choix par défaut pour le module HOMARD sont définis dans les préférences.
+
+.. toctree::
+   :maxdepth: 2
+
+   preferences
diff --git a/doc/fr/images/create_boundary_an_to.png b/doc/fr/images/create_boundary_an_to.png
new file mode 100644 (file)
index 0000000..beb362c
Binary files /dev/null and b/doc/fr/images/create_boundary_an_to.png differ
diff --git a/doc/fr/images/preferences_1.png b/doc/fr/images/preferences_1.png
new file mode 100644 (file)
index 0000000..84e9fcc
Binary files /dev/null and b/doc/fr/images/preferences_1.png differ
diff --git a/doc/fr/preferences.rst b/doc/fr/preferences.rst
new file mode 100644 (file)
index 0000000..78d49e2
--- /dev/null
@@ -0,0 +1,30 @@
+.. _preferences:
+
+Les préférences
+###############
+.. index:: single: préférences
+
+Un certain nombre de choix par défaut pour le module HOMARD sont définis dans les préférences.
+
+
+La langue
+*********
+La langue choisie dans les préférences générales de SALOME est celle qui est utilisée dans les menus de l'interface graphique.
+
+Si le français est retenu, les messages émis par HOMARD le sont en français. Dans tous les autres cas, ils sont en anglais.
+
+Publication des maillages
+*************************
+.. index:: single: publication
+
+.. image:: images/preferences_1.png
+   :align: center
+
+Par défaut, les maillages lus à la création d'un cas ou produits après une adaptation ne sont pas publiés dans SMESH. Ce choix est modifiable en cochant cette préférence.
+
+
+
+
+
+
+
index 4ef349cb976e2ece1e553a4efef4a571ccd8b7f9..de94f042cafdc3a42a07c166d2f3caca112c33b4 100644 (file)
@@ -69,6 +69,18 @@ Ces m
 |     - ``Xc2``, ``Yc2``, ``Zc2`` : coordonnées du second centre du cône                 |
 |     - ``R2`` : rayon du cône à la hauteur du second centre                             |
 +----------------------------------------------------------------------------------------+
+| .. module:: CreateBoundaryTorus                                                        |
+|                                                                                        |
+| **CreateBoundaryTorus(boundary_name, Xcen, Ycen, Zcen, Xaxe, Yaxe, Zaxe, RRev, RPri)** |
+|     Retourne une instance de la classe ``boundary`` analytique de type torique         |
+|     après sa création                                                                  |
+|                                                                                        |
+|     - ``boundary_name`` : le nom de la frontière analytique basée sur un tore          |
+|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées du centre du tore                     |
+|     - ``Xaxe``, ``Yaxe``, ``Zaxe`` : vecteur de l'axe                                  |
+|     - ``RRev`` : rayon de révolution du tore                                           |
+|     - ``RPri`` : rayon primaire du tore                                                |
++----------------------------------------------------------------------------------------+
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -135,6 +147,7 @@ M
 |         * 2 : sphère                                          |
 |         * 3 : cône défini par un axe et un angle              |
 |         * 4 : cône défini par deux rayons                     |
+|         * 5 : tore                                            |
 +---------------------------------------------------------------+
 | .. module:: GetCoords                                         |
 |                                                               |
index 2b5d03030b4ab8803e6c2b42a4541b677b7ab03a..bfa4cf93c5bd9c87f78b552059996118e57eb88e 100644 (file)
@@ -56,42 +56,30 @@ G
 | **GetName()**                                                 |
 |     Retourne le nom de l'hypothèse                            |
 +---------------------------------------------------------------+
-| .. module:: SetAdapRefinUnRef                                 |
-|                                                               |
-| **SetAdapRefinUnRef(Adap, Refin, UnRef)**                     |
-|     Affecte le mode d'adaptation associé à l'hypothèse        |
+| .. module:: GetAdapType                                       |
 |                                                               |
-|     - ``Adap`` : entier précisant le type d'adaptation        |
+| **GetAdapType()**                                             |
+|     Retourne le type d'adaptation                             |
 |                                                               |
 |         * -1 : uniforme                                       |
 |         * 0 : selon des zones                                 |
 |         * 1 : selon un champ                                  |
-|                                                               |
-|     - ``Refin`` : entier précisant si le raffinement est actif|
-|                                                               |
-|         * 0 : inactif                                         |
-|         * 1 : actif                                           |
-|                                                               |
-|     - ``UnRef`` : entier précisant si déraffinement est actif |
-|                                                               |
-|         * 0 : inactif                                         |
-|         * 1 : actif                                           |
-|                                                               |
-+---------------------------------------------------------------+
-| .. module:: GetAdapType                                       |
-|                                                               |
-| **GetAdapType()**                                             |
-|     Retourne le type d'adaptation                             |
 +---------------------------------------------------------------+
 | .. module:: GetRefinType                                      |
 |                                                               |
 | **GetRefinType()**                                            |
 |     Retourne le type de raffinement                           |
+|                                                               |
+|         * 0 : inactif                                         |
+|         * 1 : actif                                           |
 +---------------------------------------------------------------+
 | .. module:: GetUnRefType                                      |
 |                                                               |
 | **GetUnRefType()**                                            |
 |     Retourne le type de déraffinement                         |
+|                                                               |
+|         * 0 : inactif                                         |
+|         * 1 : actif                                           |
 +---------------------------------------------------------------+
 | .. module:: Delete                                            |
 |                                                               |
@@ -103,8 +91,27 @@ G
 |         * autre valeur : problème                             |
 +---------------------------------------------------------------+
 
+Adaptation uniforme
+===================
+
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+| .. module:: SetUnifRefinUnRef                                 |
+|                                                               |
+| **SetUnifRefinUnRef(RefinUnRef)**                             |
+|     Définit un mode d'adaptation uniforme à tout le maillage  |
+|                                                               |
+|     - ``RefinUnRef`` : entier précisant le type d'adaptation  |
+|                                                               |
+|         * 1 : raffinement                                     |
+|         * -1 : déraffinement                                  |
++---------------------------------------------------------------+
+
+Adaptation selon un champ
+=========================
+
 Le champ de pilotage de l'adaptation et les seuils
-==================================================
+--------------------------------------------------
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -174,7 +181,7 @@ Le champ de pilotage de l'adaptation et les seuils
 
 
 Les composantes du champ de pilotage
-====================================
+------------------------------------
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -219,8 +226,8 @@ Les composantes du champ de pilotage
 +---------------------------------------------------------------+
 
 
-Les zones
-=========
+Adaptation selon des zones
+==========================
 
 +---------------------------------------------------------------+
 +---------------------------------------------------------------+
@@ -430,7 +437,6 @@ Exemple
 La création de l'objet hypo_1 se fait ainsi : ::
 
     hypo_1 = homard.CreateHypothesis("HypoField")
-    hypo_1.SetAdapRefinUnRef(1, 1, 0)
     hypo_1.SetField("INDICATEUR")
     hypo_1.AddComp("INDX")
     hypo_1.AddComp("INDZ")
index 6ff6f751fc8344967fafb3c6866ee02b9fd305ca..befdd63b966fd1c837c46508e2c9623226a7690b 100644 (file)
@@ -1,5 +1,9 @@
 Mode d'emploi pour TUI
 ######################
+
+Mode d'emploi de la saisie des données
+**************************************
+
 Le module HOMARD peut se lancer à partir d'instructions python. On trouvera ici la description de chacune des fonctions accessibles par l'utilisateur.
 
 .. toctree::
@@ -12,3 +16,13 @@ Le module HOMARD peut se lancer 
    tui_create_boundary
    tui_homard
    tui_create_yacs
+
+Préférences
+***********
+
+Un certain nombre de choix par défaut pour le module HOMARD sont définis dans les préférences.
+
+.. toctree::
+   :maxdepth: 2
+
+   preferences
index 1f040f8137b9661b3892c97399236977c2789728..92ce134d8dd75e2de14a5c6410331dbfa7d966c4 100644 (file)
@@ -36,29 +36,31 @@ On fera ici trois raffinements uniformes successifs du maillage contenu dans le
   * le maillage produit porte toujours le même nom. Cela ne pose pas de problème car il est stocké dans des fichiers différents.
 
 .. literalinclude:: ../files/tutorial_1.py
-   :lines: 57-89
+   :lines: 52-85
 
 .. note::
   Téléchargement des fichiers
 
   * :download:`maillage initial<../files/tutorial_1.00.med.gz>`
   * :download:`commandes python<../files/tutorial_1.py>`
+  * :download:`commandes python de l'utilitaire de compression<../files/tutorial_util.py>`
 
 
 Raffinement par des zones
 *************************
 .. index:: single: zone
 
-On procède ici au raffinement selon des zones. Pour passer du maillage initial au maillage 'M_1', on utilise une boîte encadrant le plan z=1 et une sphère centrée sur l'origine de rayon 1.05. Puis pour passer du maillage 'M_1' au maillage 'M_2', on remplace la sphère par une boîte encadrant le cube de côté 0.5, pointant sur l'origine. On notera que le type de raffinement n'a pas été précisé ; par défaut, il sera donc conforme.
+On procède ici au raffinement selon des zones. Pour passer du maillage initial au maillage 'M_1', on utilise une boîte encadrant le plan z=1 et une sphère centrée sur l'origine de rayon 1.05. Puis pour passer du maillage 'M_1' au maillage 'M_2', on remplace la sphère par une boîte encadrant le cube de côté 0.5, pointant sur l'origine et on déraffine les mailles contenues dans la toute première zone.
 
 .. literalinclude:: ../files/tutorial_2.py
-   :lines: 57-101
+   :lines: 52-95
 
 .. note::
   Téléchargement des fichiers
 
   * :download:`maillage initial<../files/tutorial_2.00.med.gz>`
   * :download:`commandes python<../files/tutorial_2.py>`
+  * :download:`commandes python de l'utilitaire de compression<../files/tutorial_util.py>`
 
 
 Raffinement selon un champ
@@ -69,7 +71,7 @@ On proc
 Pour adapter le maillage H_1 issu de l'itération Iter_1, deux variantes sont appliquées. Dans la première, Iter_2, le champ est un champ scalaire d'indicateurs d'erreur et on découpe les 1.5% de mailles où l'erreur est la plus grande. Dans la seconde variante, Iter_2_bis, on se base sur un champ vectoriel et on examine le saut de ce vecteur entre une maille et ses voisines : on découpera là où la norme infinie de ce saut est supérieure au seuil absolu de 0.0001.
 
 .. literalinclude:: ../files/tutorial_3.py
-   :lines: 57-131
+   :lines: 52-124
 
 .. note::
   Téléchargement des fichiers
@@ -77,6 +79,7 @@ Pour adapter le maillage H_1 issu de l'it
   * :download:`maillage et champ étape 0<../files/tutorial_3.00.med.gz>`
   * :download:`maillage et champ étape 1<../files/tutorial_3.01.med.gz>`
   * :download:`commandes python<../files/tutorial_3.py>`
+  * :download:`commandes python de l'utilitaire de compression<../files/tutorial_util.py>`
 
 
 Suivi de frontières courbes
@@ -88,7 +91,7 @@ On teste ici le suivi des fronti
 Le schéma YACS réalisant cette adaptation est téléchargeable.
 
 .. literalinclude:: ../files/tutorial_4.py
-   :lines: 57-115
+   :lines: 52-111
 
 .. note::
   Téléchargement des fichiers
@@ -96,6 +99,7 @@ Le sch
   * :download:`maillage initial<../files/tutorial_4.00.med.gz>`
   * :download:`maillage de la frontière discrète<../files/tutorial_4.fr.med.gz>`
   * :download:`commandes python<../files/tutorial_4.py>`
+  * :download:`commandes python de l'utilitaire de compression<../files/tutorial_util.py>`
   * :download:`schéma YACS<../files/tutorial_4.xml>`
 
 
@@ -107,7 +111,7 @@ Les instructions pour adapter un maillage 2D sont exactement identiques 
 Dans le cas présenté ici, on raffine une première fois toutes les mailles contenues dans un disque percé, puis dans une seconde itération, toutes les mailles contenues dans un rectangle. On notera l'utilisation du suivi des frontières circulaires du domaine.
 
 .. literalinclude:: ../files/tutorial_5.py
-   :lines: 57-101
+   :lines: 52-95
 
 .. note::
   Téléchargement des fichiers
@@ -115,7 +119,9 @@ Dans le cas pr
   * :download:`maillage initial<../files/tutorial_5.00.med.gz>`
   * :download:`maillage de la frontière discrète<../files/tutorial_5.fr.med.gz>`
   * :download:`commandes python<../files/tutorial_5.py>`
+  * :download:`commandes python de l'utilitaire de compression<../files/tutorial_util.py>`
 
 
 .. toctree::
    :maxdepth: 2
+
index 59f77ce2aca6370f13e457f3160e76a94fbe1be2..67697aad9870f28132d2de2d783ececc2af693ef 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 5ff23f748417dfdf457c82ed7ce66191db614f03..0f965c5f5e530ff684aa11a900dd9a7c8434f6e8 100644 (file)
@@ -15,7 +15,7 @@
             <component-username>HOMARD</component-username>
             <component-type>OTHER</component-type>
             <component-author>HOMARD team - EDF RD</component-author>
-            <component-version>1.4</component-version>
+            <component-version>1.5</component-version>
             <component-comment>unknown</component-comment>
             <component-multistudy>1</component-multistudy>
             <component-impltype>1</component-impltype>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryTorus</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>RRev</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>RPri</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>GetCase</service-name>
                         <service-author>HOMARD team - EDF RD</service-author>
index da4c0093bb24ab88bfab4e11596715f2215942b8..8f3b3253b7b448207c1c1905612561acdcd55ca2 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -74,6 +75,10 @@ module HOMARD
                       in double Xcentre,in double Ycentre,in double ZCentre)
                                                            raises (SALOME::SALOME_Exception);
 
+    void     SetTorus (in double Xcentre, in double Ycentre, in double Zcentre,
+                          in double Xaxe, in double Yaxe, in double Zaxe, in double rayonRev, in double rayonPri)
+                                                           raises (SALOME::SALOME_Exception);
+
 
     HOMARD::double_array GetCoords()                       raises (SALOME::SALOME_Exception);
 
index a278eabb33262468016edd1b473d56f4bb6a724a..82bb89f0c5b71136e5dfea9a4751eba79c6d1ed5 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -74,6 +75,7 @@ module HOMARD
     void     AddBoundaryGroup(in string BoundaryName, in string Group)
                                                            raises (SALOME::SALOME_Exception);
     ListBoundaryGroupType GetBoundaryGroup()               raises (SALOME::SALOME_Exception);
+    void     SupprBoundaryGroup()                          raises (SALOME::SALOME_Exception);
 
     void     SetPyram(in long Pyram)                       raises (SALOME::SALOME_Exception);
     long     GetPyram()                                    raises (SALOME::SALOME_Exception);
index 1c134945a8a5a7510a2cb566f11e42a4b4f3a2ba..ca138c49b13eb1de1ae85297ac0a8ad398be83e2 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -70,6 +70,11 @@ module HOMARD
                                       in double Xaxis, in double Yaxis, in double Zaxis, in double Angle,
                                       in double Xcentre, in double Ycentre, in double Zcentre)
     raises(SALOME::SALOME_Exception);
+    HOMARD_Boundary   CreateBoundaryTorus (in string BoundaryName,
+                                      in double Xcentre, in double Ycentre, in double Zcentre,
+                                      in double Xaxis, in double Yaxis, in double Zaxis,
+                                      in double RadiusRev, in double RadiusPri)
+    raises (SALOME::SALOME_Exception);
     HOMARD_Cas        CreateCase(in string CaseName, in string MeshName, in string FileName )
     raises(SALOME::SALOME_Exception);
     HOMARD_Cas        CreateCaseFromIteration(in string CaseName, in string DirNameStart )
@@ -152,6 +157,7 @@ module HOMARD
     void InvalideIter (in string IterName)                 raises (SALOME::SALOME_Exception);
     void InvalideIterOption (in string IterName, in long Option)
     raises(SALOME::SALOME_Exception);
+    void InvalideYACS (in string YacsName)                 raises (SALOME::SALOME_Exception);
     void InvalideZone (in string ZoneName)                 raises (SALOME::SALOME_Exception);
 
     long DeleteBoundary (in string BoundaryName)           raises (SALOME::SALOME_Exception);
@@ -181,7 +187,7 @@ module HOMARD
     string CreateDirNameIter(in string NomDir, in long option )
     raises(SALOME::SALOME_Exception);
 
-    string VerifieDir (in string NomDir)                raises (SALOME::SALOME_Exception);
+    string VerifieDir (in string NomDir)                   raises (SALOME::SALOME_Exception);
 
 //
     void PublishFileUnderIteration(in string IterName, in string FileName, in string Comment)
@@ -190,8 +196,12 @@ module HOMARD
     raises(SALOME::SALOME_Exception);
     void PublishResultInSmesh(in string FileName, in long Option)
     raises(SALOME::SALOME_Exception);
+    void PublishMeshIterInSmesh (in string IterName)       raises(SALOME::SALOME_Exception);
 
 //
+
+//
+//  La creation des schemas YACS
     HOMARD_YACS CreateYACSSchema(in string YACSName, in string CaseName, in string ScriptFile, in string DirName, in string MeshFile)
     raises(SALOME::SALOME_Exception);
     long YACSWrite (in string YACSName)                    raises (SALOME::SALOME_Exception);
@@ -199,8 +209,20 @@ module HOMARD
     raises(SALOME::SALOME_Exception);
 
 //
+//  Les preferences
     void SetLanguageShort (in string LanguageShort)        raises (SALOME::SALOME_Exception);
     string GetLanguageShort ()                             raises (SALOME::SALOME_Exception);
+    void SetPublisMesh (in long PublisMeshIN, in long PublisMeshOUT)
+    raises (SALOME::SALOME_Exception);
+    long GetPublisMeshIN ()                                raises (SALOME::SALOME_Exception);
+    long GetPublisMeshOUT ()                               raises (SALOME::SALOME_Exception);
+    void SetYACSMaximum(in long YACSMaxIter, in long YACSMaxNode, in long YACSMaxElem)
+    raises (SALOME::SALOME_Exception);
+    long GetYACSMaxIter()                                  raises (SALOME::SALOME_Exception);
+    long GetYACSMaxNode()                                  raises (SALOME::SALOME_Exception);
+    long GetYACSMaxElem()                                  raises (SALOME::SALOME_Exception);
+    void SetYACSConvergenceType(in long TypeTest)          raises (SALOME::SALOME_Exception);
+    long GetYACSConvergenceType()                          raises (SALOME::SALOME_Exception);
   };
 };
 
index ab8c55fb8502beed932d934f648ae32f2174b63a..daaf0ff20de5aadf08b829671c62c227ce171d25 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -65,8 +66,7 @@ module HOMARD
     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
 
 // Caracteristiques
-    void     SetAdapRefinUnRef(in long Adap, in long Raff, in long Dera)
-                                                           raises (SALOME::SALOME_Exception);
+    void     SetUnifRefinUnRef(in long RaffDera)           raises (SALOME::SALOME_Exception);
     listeTypes GetAdapRefinUnRef()                         raises (SALOME::SALOME_Exception);
     long     GetAdapType()                                 raises (SALOME::SALOME_Exception);
     long     GetRefinType()                                raises (SALOME::SALOME_Exception);
index 1addb5f126cf575fb5a1dbb73bea9e0af74c2dd3..9da3e602499a907cab32c5b69785e1444a2214d0 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
index fa8f528601da9f49855d45fb368109191dff7640..3ba7db393481372b1d3a9fd8c2d5207c8a6be3ee 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -49,6 +50,18 @@ module HOMARD
     void     SetType (in long Type)                        raises (SALOME::SALOME_Exception);
     long     GetType()                                     raises (SALOME::SALOME_Exception);
 
+    void     SetMaxIter (in long MaxIter)                  raises (SALOME::SALOME_Exception);
+    long     GetMaxIter()                                  raises (SALOME::SALOME_Exception);
+    void     SetMaxNode (in long MaxNode)                  raises (SALOME::SALOME_Exception);
+    long     GetMaxNode()                                  raises (SALOME::SALOME_Exception);
+    void     SetMaxElem (in long MaxElem)                  raises (SALOME::SALOME_Exception);
+    long     GetMaxElem()                                  raises (SALOME::SALOME_Exception);
+
+    void     SetTestConvergence (in long TypeTest, in double VRef)
+                                                           raises (SALOME::SALOME_Exception);
+    long     GetTestConvergenceType()                      raises (SALOME::SALOME_Exception);
+    double   GetTestConvergenceVRef()                      raises (SALOME::SALOME_Exception);
+
     void     SetDirName(in string NomDir)                  raises (SALOME::SALOME_Exception);
     string   GetDirName()                                  raises (SALOME::SALOME_Exception);
 
index 3ee416092a67311ee508980c2af45d7ab4a1cedf..beb5ddce1dace14fe843cc73a56977d7e9b703b4 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
index 58bf62b20bd189931b534d8372054f9ad61db52f..04d526fc8b37c7b9e87107d4b520c82e2c97a8bc 100755 (executable)
@@ -1,12 +1,9 @@
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+# Copyright (C) 2007-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -65,6 +62,7 @@ SET(HOMARD_RESOURCES_FILES
   table_view.png
   texte.png
   texte_2.png
+  toruspointvector.png
   triangle.png
   whatis.png
   write.png
index bac71ed72431422618819dfaff55fc32985ca488..a609914b10b141688ea6939d6b44cd0e79ce242c 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='us-ascii' ?>
 
 <!--
-  Copyright (C) 2011-2013  CEA/DEN, EDF RD
+  Copyright (C) 2011-2014  CEA/DEN, EDF RD
 
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
-  version 2.1 of the License.
+  version 2.1 of the License, or (at your option) any later version.
 
   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
index a4b35d578febf0621ab04bf74bd3c73747c86cfe..00f5ac6954e3f2f2c01536b26404eb29fb6fb191 100644 (file)
@@ -1,10 +1,10 @@
 <!--
-  Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+  Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
-  version 2.1 of the License.
+  version 2.1 of the License, or (at your option) any later version.
 
   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/resources/toruspointvector.png b/resources/toruspointvector.png
new file mode 100644 (file)
index 0000000..138b520
Binary files /dev/null and b/resources/toruspointvector.png differ
index 66641f438a4f073f32db4f3e1b56c99b7a865d21..f00cb5f39d9e6e58cf44696f09407844568fc8d0 100644 (file)
@@ -106,7 +106,7 @@ global resu1
 NumCalcP1 = NumCalc + 1
 FileName = " "
 #
-NbCalcMax = 5
+Analyse_Test_Convergence
 #
 MessInfo = None
 Error = 0
@@ -150,10 +150,11 @@ while not Error :
 #
 # If the maximum number of adaptations is reached, stop:
 #
-    if NumCalc > NbCalcMax :
-        MessInfo = "The maximum number of adaptations is reached: %d" % NbCalcMax
-        Error = -1
-        break
+    if MaxIter > 0 :
+      if NumCalc >= MaxIter :
+          MessInfo = "The maximum number of adaptations is reached: %d" % (MaxIter+1)
+          Error = -1
+          break
 #
     break
 ]]></code></script>
index 6d0df606880644f556c66fd295551a7af38d7deb..0ed06c6bbb63e218b84e7f9fdbb97f5644e93511 100644 (file)
@@ -106,7 +106,7 @@ global resu1
 NumCalcP1 = NumCalc + 1
 FileName = " "
 #
-NbCalcMax = 5
+Analyse_Test_Convergence
 #
 MessInfo = None
 Error = 0
@@ -150,10 +150,11 @@ while not Error :
 #
 # Si on depasse le maximum, on arrete :
 #
-    if NumCalc > NbCalcMax :
-        MessInfo = "La limite en nombre de calculs a ete atteinte : %d" % NbCalcMax
-        Error = -1
-        break
+    if MaxIter > 0 :
+      if NumCalc >= MaxIter :
+          MessInfo = "La limite en nombre de calculs a ete atteinte : %d" % (MaxIter+1)
+          Error = -1
+          break
 #
     break
 ]]></code></script>
index 1fcc8af12161deaa7881d041c6779c3d6ca1eefe..1e97acb3cdc298138fdc46c64131b6a08ec1dfa5 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index e472b5b348e40c390ff4cf150927394da5393a8e..51dc08560f5011c55db6edafa6dc0e1303eafde1 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 61f478324e5e463b35460965993878a3ea7ba1af..4281c27eeca5d1440b6f1590c04045ff675a6ee7 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    #define HOMARDIMPL_EXPORT
 #endif
 
+// La gestion des repertoires
+#ifndef CHDIR
+  #ifdef WIN32
+    #define CHDIR _chdir
+  #else
+    #define CHDIR chdir
+  #endif
+#endif
+
 #endif
index f7743014f3056b5a5a9ad508ea55b76c2cba0d05..e0fbde07715c8b433825f6a943b4aee1f834775d 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -113,6 +113,13 @@ std::string HOMARD_Boundary::GetDumpPython() const
       aScript << _Xcentre1 << ", " << _Ycentre1 << ", " << _Zcentre1 << ", " << _Rayon1 << ", " << _Xcentre2 << ", " << _Ycentre2 << ", " << _Zcentre2 << ", " << _Rayon2 << ")\n";
       break ;
     }
+    case 5:
+    {
+      aScript << "tore " << _Name << "\n";
+      aScript << "\t" << _Name << " = homard.CreateBoundaryTorus(\"" << _Name << "\", ";
+      aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Rayon1 << ", " << _Rayon2 << ")\n";
+      break ;
+    }
   }
 
   return aScript.str();
@@ -183,6 +190,15 @@ void HOMARD_Boundary::SetConeA( double Xaxe, double Yaxe, double Zaxe, double An
   _Xcentre = Xcentre; _Ycentre = Ycentre; _Zcentre = Zcentre;
 }
 //=======================================================================================
+void HOMARD_Boundary::SetTorus( double X0, double X1, double X2,
+                                double X3, double X4, double X5, double X6, double X7 )
+{
+  _Xcentre = X0; _Ycentre = X1; _Zcentre = X2;
+  _Xaxe = X3; _Yaxe = X4; _Zaxe = X5;
+  _Rayon1 = X6;
+  _Rayon2 = X7;
+}
+//=======================================================================================
 std::vector<double> HOMARD_Boundary::GetCoords() const
 {
   std::vector<double> mesCoor;
@@ -235,7 +251,20 @@ std::vector<double> HOMARD_Boundary::GetCoords() const
       mesCoor.push_back( _Rayon2 );
       break ;
     }
-    VERIFICATION( (_Type>=1) && (_Type<=4) ) ;
+//  Tore
+    case 5:
+    {
+      mesCoor.push_back( _Xcentre );
+      mesCoor.push_back( _Ycentre );
+      mesCoor.push_back( _Zcentre );
+      mesCoor.push_back( _Xaxe );
+      mesCoor.push_back( _Yaxe );
+      mesCoor.push_back( _Zaxe );
+      mesCoor.push_back( _Rayon1 );
+      mesCoor.push_back( _Rayon2 );
+      break ;
+    }
+    VERIFICATION( (_Type>=1) && (_Type<=5) ) ;
   }
   return mesCoor;
 }
index df94e5e6379b055be0b5285c3730c30cf0e3fba9..780a22c2932c9246b47378ccd7fdcd47d98c673b 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -73,6 +73,8 @@ public:
                                           double Xcentre2, double Ycentre2, double Zcentre2, double Rayon2);
   void                          SetConeA( double Xaxe, double Yaxe, double Zaxe, double Angle,
                                           double Xcentre, double Ycentre, double ZCentre);
+  void                          SetTorus( double X0, double X1, double X2, double X3,
+                                             double X4, double X5, double X6, double X7 );
 
   std::vector<double>           GetCoords() const;
 
index 2823be1227ba2575d76b0b3026d57f463f1ca15b..0aaea7006d7525615b160107ee88d56378eb6e8b 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,6 +33,7 @@
 
 #include "HOMARD_Cas.hxx"
 #include "utilities.h"
+#include "HOMARD.hxx"
 #include <iostream>
 #include <sys/stat.h>
 
@@ -113,25 +114,18 @@ int HOMARD_Cas::SetDirName( const char* NomDir )
   MESSAGE("SetDirName, _ListIter.size() : "<<_ListIter.size());
   if ( _ListIter.size() > 1 ) { erreur = 1 ; }
   // Creation
-#ifndef WIN32
-  if ( chdir(NomDir) == 0 ) 
-#else
-  if ( _chdir(NomDir) == 0 ) 
-#endif
+  if ( CHDIR(NomDir) == 0 )
   { _NomDir = std::string( NomDir ); }
   else
   {
 
 #ifndef WIN32
     if ( mkdir(NomDir, S_IRWXU|S_IRGRP|S_IXGRP) == 0 )
-    {
-      if ( chdir(NomDir) == 0 ) 
 #else
     if ( _mkdir(NomDir) == 0 )
-    {
-      if ( _chdir(NomDir) == 0 ) 
 #endif
-      { _NomDir = std::string( NomDir ); }
+    {
+      if ( CHDIR(NomDir) == 0 ) { _NomDir = std::string( NomDir ); }
       else                      { erreur = 2 ; }
     }
     else { erreur = 2 ; }
index f9543a4784394026d488b262b692ac5539d011f1..c4c139db7d23caed1736e0269f78698ae95c0487 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 57c939ccc5fb4f1dcd4cdb42c430ed467a8a4324..64ccd34bebbded8970cb846709d6e6ab613cea0e 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 8898e153ca44632eb47b2a549f1afa4d1d46a9fe..a9caf6188b73d6f1bc15bacb1fdcb7a2b4c16bdf 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 4e0e8de9488b4e8043d5772b9f2c30977a0ce154..3951ee8c57c55e5de810d2ad94e963551c4b1158 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 340acecde718f22f232799a60b57b65c6f56af7a..657a960b7134039876a839e5199a44a6ff1dfd39 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index bd68ce5f917bf5df6a3dea669727cff54459eabf..8c0652d84447e3fa984f089782f5c7da956f63ea 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -79,7 +79,13 @@ std::string HOMARD_Hypothesis::GetDumpPython() const
   std::ostringstream aScript;
   aScript << "\n# Creation of the hypothesis " << _Name << "\n" ;
   aScript << "\t" << _Name << " = homard.CreateHypothesis(\"" << _Name << "\")\n";
-  aScript << "\t" << _Name << ".SetAdapRefinUnRef(" << _TypeAdap << ", " << _TypeRaff << ", " << _TypeDera << ")\n";
+  if ( _TypeAdap == -1 )
+  {
+    int TypeRaffDera ;
+    if ( _TypeRaff == 1 ) { TypeRaffDera = 1 ; }
+    else                  { TypeRaffDera = -1 ; }
+    aScript << "\t" << _Name << ".SetUnifRefinUnRef(" << TypeRaffDera << ")\n";
+  }
 
 // Raffinement selon des zones geometriques
   std::list<std::string>::const_iterator it = _ListZone.begin();
index f8988469e6f28456ae530ce3876e614283e5fffb..fe2ec51d8cc01419225622d2365c89f507a8e320 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 322cfaca8ff5da96a20bb8e511842d8f08515bea..d496572b9a91d4d4c251191c4259e32ee484e411 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index d6300a0bfb85cfd9a49ea56f9e06ff4d59d6ce1f..261161fad51ef117a40467d8f51762c749b820bc 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 67f04c2a312a2ec0621803ec7d715bbf978d9f6e..d1e494cb67cc6720aea55ad084fae422a6a0a445 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -44,8 +44,7 @@ HOMARD_YACS::HOMARD_YACS():
   _NomCas( "" ),
   _NomDir( "" ),
   _MeshFile( "" ),
-  _ScriptFile( "" ),
-  _Type( 1 )
+  _ScriptFile( "" )
 {
   MESSAGE("HOMARD_YACS");
 }
@@ -82,6 +81,10 @@ std::string HOMARD_YACS::GetDumpPython() const
   aScript << "\t" << _Name << " = " << _NomCas << ".CreateYACSSchema(\"" << _Name << "\", \"" << _ScriptFile << "\", \"" << _NomDir << "\", \"" << _MeshFile << "\")\n";
 // Le type de schema
   aScript << "\t" << _Name << ".SetType(" << _Type << ")\n";
+// Les controles de convergences
+  if ( _MaxIter > 0 ) { aScript << "\t" << _Name << ".SetMaxIter(" << _MaxIter << ")\n"; }
+  if ( _MaxNode > 0 ) { aScript << "\t" << _Name << ".SetMaxNode(" << _MaxNode << ")\n"; }
+  if ( _MaxElem > 0 ) { aScript << "\t" << _Name << ".SetMaxElem(" << _MaxElem << ")\n"; }
 
 // L'ecriture du schema
   aScript << "\tcodret = " << _Name << ".Write()\n";
@@ -92,7 +95,7 @@ std::string HOMARD_YACS::GetDumpPython() const
 }
 //=============================================================================
 //=============================================================================
-// Caracteristiques
+// Caracteristiques de la convergence
 //=============================================================================
 //=============================================================================
 void HOMARD_YACS::SetType( int Type )
@@ -105,6 +108,57 @@ int HOMARD_YACS::GetType() const
   return _Type;
 }
 //=============================================================================
+void HOMARD_YACS::SetMaxIter( int MaxIter )
+{
+  _MaxIter = MaxIter;
+}
+//=============================================================================
+int HOMARD_YACS::GetMaxIter() const
+{
+  return _MaxIter;
+}
+//=============================================================================
+void HOMARD_YACS::SetMaxNode( int MaxNode )
+{
+  _MaxNode = MaxNode;
+}
+//=============================================================================
+int HOMARD_YACS::GetMaxNode() const
+{
+  return _MaxNode;
+}
+//=============================================================================
+void HOMARD_YACS::SetMaxElem( int MaxElem )
+{
+  _MaxElem = MaxElem;
+}
+//=============================================================================
+int HOMARD_YACS::GetMaxElem() const
+{
+  return _MaxElem;
+}
+//=============================================================================
+void HOMARD_YACS::SetTestConvergence( int TypeTest, double VRef )
+{
+  _TypeTest = TypeTest;
+  _VRef = VRef;
+}
+//=============================================================================
+int HOMARD_YACS::GetTestConvergenceType() const
+{
+  return _TypeTest;
+}
+//=============================================================================
+double HOMARD_YACS::GetTestConvergenceVRef() const
+{
+  return _VRef;
+}
+//=============================================================================
+//=============================================================================
+// Repertoire et fichiers
+//=============================================================================
+//=============================================================================
+//=============================================================================
 void HOMARD_YACS::SetDirName( const char* NomDir )
 {
   _NomDir = std::string( NomDir );
index 4c8597dd7e718fd4a286182d866aea559f12afb7..8a1a5af5a21ea7156b17c083c2176567f97b9298 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -55,6 +55,17 @@ public:
   void                          SetType( int Type );
   int                           GetType() const;
 
+  void                          SetMaxIter( int MaxIter );
+  int                           GetMaxIter() const;
+  void                          SetMaxNode( int MaxNode );
+  int                           GetMaxNode() const;
+  void                          SetMaxElem( int MaxElem );
+  int                           GetMaxElem() const;
+
+  void                          SetTestConvergence( int TypeTest, double VRef );
+  int                           GetTestConvergenceType() const;
+  double                        GetTestConvergenceVRef() const;
+
   void                          SetDirName( const char* NomDir );
   std::string                   GetDirName() const;
 
@@ -81,6 +92,11 @@ private:
   std::string                   _MeshFile;
   std::string                   _ScriptFile;
   int                           _Type;
+  int                           _MaxIter;
+  int                           _MaxNode;
+  int                           _MaxElem;
+  int                           _TypeTest;
+  double                        _VRef;
   std::string                   _XMLFile;
 };
 
index 3d4f7ce0b71ebefc06723bdcab6c1c0c98c5c10b..d5652f921c6b774396d2bc06bd44c0a7a55b6d61 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index f326098b9102b3797634a8aa93a2362a35a14fc9..4a87cd0bb1a774bb22bee3daf2304f80952047ad 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 4589c24adcf1e6ba836f66fe5b22d4888df02411..e72821155ca8c66eb4815a21efd605288c35e047 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -588,7 +588,7 @@ void HomardDriver::TexteField( const std::string FieldName, const std::string Fi
   if ( UsCmpI == 1 )
   { saux = "INFINI" ; }
   if ( UsCmpI == 2 )
-  { saux = "V_RELATIVE" ; }
+  { saux = "RELATIF" ; }
   if ( saux != " " )
   {
     _Texte += "CCUsCmpI " + saux  + "\n" ;
@@ -657,6 +657,8 @@ void HomardDriver::TexteBoundaryAn( const std::string NameBoundary, int NumeBoun
   { saux += "# Sphere\n" ; }
   if ( BoundaryType == 3 || BoundaryType == 4 )
   { saux += "# Cone\n" ; }
+  if ( BoundaryType == 5 )
+  { saux += "# Tore\n" ; }
 //
 // Le nom de la frontiere
 //
@@ -800,6 +802,45 @@ void HomardDriver::TexteBoundaryAn( const std::string NameBoundary, int NumeBoun
       saux += "FARayon2 " + saux1.str() + "\n" ;
     }
  }
+//
+// Cas du tore
+//
+  if ( BoundaryType == 5 )
+  {
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x0 ;
+      saux2 = saux1.str() ;
+      saux += "FAXCen " + saux1.str() + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x1 ;
+      saux += "FAYCen " + saux1.str() + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x2 ;
+      saux += "FAZCen " + saux1.str() + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x3 ;
+      saux += "FAXAxe " + saux1.str() + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x4 ;
+      saux += "FAYAxe " + saux1.str() + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x5 ;
+      saux += "FAZAxe " + saux1.str() + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x6 ;
+      saux += "FARayon  " + saux1.str() + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeBoundary << " " << x7 ;
+      saux += "FARayon2 " + saux1.str() + "\n" ;
+    }
+ }
 //
   _Texte += saux + "#\n" ;
 //
index efabde202ccd2b20d719879f075a5bac37193cd0..6d20f83af3ab82870c07a536ab531eb451120482 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index dee4f8944472b4d3f61e025b09b012d80f68bcb2..23c1483e37e85ca747d27133934d82bf28c5f4df 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -365,7 +365,7 @@ std::string YACSDriver::Texte_Iter_1_Boundary( int BoundaryType, const std::stri
     TexteParametre( node, "Radius", "double", x7 ) ;
   }
 //
-// 4.2. Cas d un cone defini par un axe et un angle
+// 4.3. Cas d un cone defini par un axe et un angle
   else if ( BoundaryType == 3 )
   {
     _Texte += Texte_inport( "double", "Xaxis" ) ;
@@ -384,7 +384,7 @@ std::string YACSDriver::Texte_Iter_1_Boundary( int BoundaryType, const std::stri
     TexteParametre( node, "Zcentre", "double", x7 ) ;
   }
 //
-// 4.2. Cas d un cone defini par les 2 rayons
+// 4.4. Cas d un cone defini par les 2 rayons
   else if ( BoundaryType == 4 )
   {
     _Texte += Texte_inport( "double", "Xcentre1" ) ;
@@ -404,6 +404,26 @@ std::string YACSDriver::Texte_Iter_1_Boundary( int BoundaryType, const std::stri
     TexteParametre( node, "Zcentre2", "double", x6 ) ;
     TexteParametre( node, "Radius2", "double", x7 ) ;
   }
+// 4.5. Cas du tore (5)
+  else if ( BoundaryType == 5 )
+  {
+    _Texte += Texte_inport( "double", "Xcentre" ) ;
+    _Texte += Texte_inport( "double", "Ycentre" ) ;
+    _Texte += Texte_inport( "double", "Zcentre" ) ;
+    _Texte += Texte_inport( "double", "Xaxis" ) ;
+    _Texte += Texte_inport( "double", "Yaxis" ) ;
+    _Texte += Texte_inport( "double", "Zaxis" ) ;
+    _Texte += Texte_inport( "double", "RRev" ) ;
+    _Texte += Texte_inport( "double", "RPri" ) ;
+    TexteParametre( node, "Xcentre", "double", x0 ) ;
+    TexteParametre( node, "Ycentre", "double", x1 ) ;
+    TexteParametre( node, "Zcentre", "double", x2 ) ;
+    TexteParametre( node, "Xaxis", "double", x3 ) ;
+    TexteParametre( node, "Yaxis", "double", x4 ) ;
+    TexteParametre( node, "Zaxis", "double", x5 ) ;
+    TexteParametre( node, "RRev", "double", x6 ) ;
+    TexteParametre( node, "RPri", "double", x7 ) ;
+  }
 //
 // 4.2. Erreur
   else
@@ -556,6 +576,28 @@ void YACSDriver::Texte_python_2( const std::string pythonTexte, const std::strin
 //
 }
 //===============================================================================
+// Parametres de tests de convergence
+//===============================================================================
+void YACSDriver::TexteAnalyse_Test_Convergence( int MaxIter, int MaxNode, int MaxElem )
+{
+//
+//   MESSAGE("TexteAnalyse_Test_Convergence");
+  std::string chaine ;
+  std::ostringstream oss1;
+  oss1 << MaxIter;
+  chaine = oss1.str();
+  _Texte += "MaxIter = " + chaine + "\n" ;
+  std::ostringstream oss2;
+  oss2 << MaxNode;
+  chaine = oss2.str();
+  _Texte += "MaxNode = " + chaine + "\n" ;
+  std::ostringstream oss3;
+  oss3 << MaxElem;
+  chaine = oss3.str();
+  _Texte += "MaxElem = " + chaine + "\n" ;
+//
+}
+//===============================================================================
 // Creation d'un parametre
 //===============================================================================
 void YACSDriver::TexteParametre( const std::string node, const std::string port, const std::string type_value, const std::string value )
index 89632e7684a3c226c3cb9479870ff1ee00dc7013..bbf500bbb4e5ae704c11dc0b64766c30bd44e677 100644 (file)
@@ -1,11 +1,11 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -47,6 +47,7 @@ public:
   void        Texte_python_1( const std::string pythonTexte, int indice, const std::string concept ) ;
   void        Texte_python_2( const std::string pythonTexte, const std::string mot_cle, const std::string concept ) ;
   void        TexteParametre( const std::string node, const std::string port, const std::string type_value, const std::string value ) ;
+  void        TexteAnalyse_Test_Convergence( int MaxIter, int MaxNode, int MaxElem ) ;
   void        TexteAddParametres( ) ;
   void        CreeFichier() ;
   //
index cb7c3ad81eb46f58328ff5ef5750211ce38ba894..d0e02f702761bf4b232f4e168d1912019dd29712 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 48778fdd281447032400cf18a91a6b1c5b3b9745..60cc12b7b8c9c3f325faabc073b4a548c4ce307a 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateBoundaryAn.ui'
 **
-** Created: Tue Sep 17 14:08:40 2013
+** Created: Wed Jan 15 11:19:06 2014
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -29,7 +29,7 @@ QT_BEGIN_NAMESPACE
 class Ui_CreateBoundaryAn
 {
 public:
-    QGridLayout *gridLayout_4;
+    QGridLayout *gridLayout_5;
     QLabel *Name;
     QLineEdit *LEName;
     QGroupBox *TypeBoundary;
@@ -37,6 +37,7 @@ public:
     QRadioButton *RBCylindre;
     QRadioButton *RBSphere;
     QRadioButton *RBCone;
+    QRadioButton *RBTore;
     QGroupBox *gBCylindre;
     QGridLayout *gridLayout1;
     QDoubleSpinBox *SpinBox_Xcent;
@@ -85,6 +86,24 @@ public:
     QDoubleSpinBox *SpinBox_Cone_V1;
     QLabel *TLCone_V2;
     QDoubleSpinBox *SpinBox_Cone_V2;
+    QGroupBox *gBTore;
+    QGridLayout *gridLayout_4;
+    QLabel *TLToreXcent;
+    QDoubleSpinBox *SpinBoxToreXcent;
+    QLabel *TLToreXaxe;
+    QDoubleSpinBox *SpinBoxToreXaxe;
+    QLabel *TLToreYcent;
+    QDoubleSpinBox *SpinBoxToreYcent;
+    QLabel *TLToreYaxe;
+    QDoubleSpinBox *SpinBoxToreYaxe;
+    QLabel *TLToreZcent;
+    QDoubleSpinBox *SpinBoxToreZcent;
+    QLabel *TLToreZaxe;
+    QDoubleSpinBox *SpinBoxToreZaxe;
+    QLabel *TLToreRayRev;
+    QDoubleSpinBox *SpinBoxToreRRev;
+    QLabel *TLToreRayPri;
+    QDoubleSpinBox *SpinBoxToreRPri;
     QGroupBox *GBButtons;
     QGridLayout *gridLayout3;
     QPushButton *buttonHelp;
@@ -96,21 +115,21 @@ public:
     {
         if (CreateBoundaryAn->objectName().isEmpty())
             CreateBoundaryAn->setObjectName(QString::fromUtf8("CreateBoundaryAn"));
-        CreateBoundaryAn->resize(527, 701);
+        CreateBoundaryAn->resize(522, 835);
         CreateBoundaryAn->setAutoFillBackground(true);
         CreateBoundaryAn->setSizeGripEnabled(true);
-        gridLayout_4 = new QGridLayout(CreateBoundaryAn);
-        gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
+        gridLayout_5 = new QGridLayout(CreateBoundaryAn);
+        gridLayout_5->setObjectName(QString::fromUtf8("gridLayout_5"));
         Name = new QLabel(CreateBoundaryAn);
         Name->setObjectName(QString::fromUtf8("Name"));
 
-        gridLayout_4->addWidget(Name, 0, 0, 1, 1);
+        gridLayout_5->addWidget(Name, 0, 0, 1, 1);
 
         LEName = new QLineEdit(CreateBoundaryAn);
         LEName->setObjectName(QString::fromUtf8("LEName"));
         LEName->setMaxLength(32);
 
-        gridLayout_4->addWidget(LEName, 0, 1, 1, 1);
+        gridLayout_5->addWidget(LEName, 0, 1, 1, 1);
 
         TypeBoundary = new QGroupBox(CreateBoundaryAn);
         TypeBoundary->setObjectName(QString::fromUtf8("TypeBoundary"));
@@ -148,8 +167,18 @@ public:
 
         gridLayout->addWidget(RBCone, 0, 2, 1, 1);
 
+        RBTore = new QRadioButton(TypeBoundary);
+        RBTore->setObjectName(QString::fromUtf8("RBTore"));
+        QIcon icon3;
+        icon3.addFile(QString::fromUtf8("../../resources/toruspointvector.png"), QSize(), QIcon::Normal, QIcon::Off);
+        RBTore->setIcon(icon3);
+        RBTore->setCheckable(true);
+        RBTore->setChecked(false);
+
+        gridLayout->addWidget(RBTore, 0, 3, 1, 1);
 
-        gridLayout_4->addWidget(TypeBoundary, 1, 0, 1, 2);
+
+        gridLayout_5->addWidget(TypeBoundary, 1, 0, 1, 2);
 
         gBCylindre = new QGroupBox(CreateBoundaryAn);
         gBCylindre->setObjectName(QString::fromUtf8("gBCylindre"));
@@ -281,7 +310,7 @@ public:
         gridLayout1->addWidget(SpinBox_Xaxis, 0, 3, 1, 1);
 
 
-        gridLayout_4->addWidget(gBCylindre, 2, 0, 1, 2);
+        gridLayout_5->addWidget(gBCylindre, 2, 0, 1, 2);
 
         gBSphere = new QGroupBox(CreateBoundaryAn);
         gBSphere->setObjectName(QString::fromUtf8("gBSphere"));
@@ -364,7 +393,7 @@ public:
         gridLayout2->addWidget(TLXcentre, 0, 0, 1, 1);
 
 
-        gridLayout_4->addWidget(gBSphere, 3, 0, 1, 2);
+        gridLayout_5->addWidget(gBSphere, 3, 0, 1, 2);
 
         gBCone = new QGroupBox(CreateBoundaryAn);
         gBCone->setObjectName(QString::fromUtf8("gBCone"));
@@ -378,18 +407,18 @@ public:
         gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
         RB_Def_radius = new QRadioButton(groupBox);
         RB_Def_radius->setObjectName(QString::fromUtf8("RB_Def_radius"));
-        QIcon icon3;
-        icon3.addFile(QString::fromUtf8("../../resources/conedxyz.png"), QSize(), QIcon::Normal, QIcon::Off);
-        RB_Def_radius->setIcon(icon3);
+        QIcon icon4;
+        icon4.addFile(QString::fromUtf8("../../resources/conedxyz.png"), QSize(), QIcon::Normal, QIcon::Off);
+        RB_Def_radius->setIcon(icon4);
         RB_Def_radius->setChecked(true);
 
         gridLayout_2->addWidget(RB_Def_radius, 0, 0, 1, 1);
 
         RB_Def_angle = new QRadioButton(groupBox);
         RB_Def_angle->setObjectName(QString::fromUtf8("RB_Def_angle"));
-        QIcon icon4;
-        icon4.addFile(QString::fromUtf8("../../resources/conepointvector.png"), QSize(), QIcon::Normal, QIcon::Off);
-        RB_Def_angle->setIcon(icon4);
+        QIcon icon5;
+        icon5.addFile(QString::fromUtf8("../../resources/conepointvector.png"), QSize(), QIcon::Normal, QIcon::Off);
+        RB_Def_angle->setIcon(icon5);
 
         gridLayout_2->addWidget(RB_Def_angle, 0, 1, 1, 1);
 
@@ -508,7 +537,7 @@ public:
 
         SpinBox_Cone_V1 = new QDoubleSpinBox(gBCone);
         SpinBox_Cone_V1->setObjectName(QString::fromUtf8("SpinBox_Cone_V1"));
-        SpinBox_Cone_V1->setDecimals(14);
+        SpinBox_Cone_V1->setDecimals(5);
         SpinBox_Cone_V1->setMaximum(1e+09);
 
         gridLayout_3->addWidget(SpinBox_Cone_V1, 4, 1, 1, 1);
@@ -523,13 +552,154 @@ public:
 
         SpinBox_Cone_V2 = new QDoubleSpinBox(gBCone);
         SpinBox_Cone_V2->setObjectName(QString::fromUtf8("SpinBox_Cone_V2"));
-        SpinBox_Cone_V2->setDecimals(14);
+        SpinBox_Cone_V2->setDecimals(5);
         SpinBox_Cone_V2->setMaximum(1e+09);
 
         gridLayout_3->addWidget(SpinBox_Cone_V2, 4, 3, 1, 1);
 
 
-        gridLayout_4->addWidget(gBCone, 4, 0, 1, 2);
+        gridLayout_5->addWidget(gBCone, 4, 0, 1, 2);
+
+        gBTore = new QGroupBox(CreateBoundaryAn);
+        gBTore->setObjectName(QString::fromUtf8("gBTore"));
+        sizePolicy.setHeightForWidth(gBTore->sizePolicy().hasHeightForWidth());
+        gBTore->setSizePolicy(sizePolicy);
+        gridLayout_4 = new QGridLayout(gBTore);
+        gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
+        TLToreXcent = new QLabel(gBTore);
+        TLToreXcent->setObjectName(QString::fromUtf8("TLToreXcent"));
+        sizePolicy.setHeightForWidth(TLToreXcent->sizePolicy().hasHeightForWidth());
+        TLToreXcent->setSizePolicy(sizePolicy);
+        TLToreXcent->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreXcent, 0, 0, 1, 1);
+
+        SpinBoxToreXcent = new QDoubleSpinBox(gBTore);
+        SpinBoxToreXcent->setObjectName(QString::fromUtf8("SpinBoxToreXcent"));
+        SpinBoxToreXcent->setDecimals(5);
+        SpinBoxToreXcent->setMinimum(-1e+09);
+        SpinBoxToreXcent->setMaximum(1e+09);
+        SpinBoxToreXcent->setValue(0);
+
+        gridLayout_4->addWidget(SpinBoxToreXcent, 0, 1, 1, 1);
+
+        TLToreXaxe = new QLabel(gBTore);
+        TLToreXaxe->setObjectName(QString::fromUtf8("TLToreXaxe"));
+        sizePolicy.setHeightForWidth(TLToreXaxe->sizePolicy().hasHeightForWidth());
+        TLToreXaxe->setSizePolicy(sizePolicy);
+        TLToreXaxe->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreXaxe, 0, 2, 1, 1);
+
+        SpinBoxToreXaxe = new QDoubleSpinBox(gBTore);
+        SpinBoxToreXaxe->setObjectName(QString::fromUtf8("SpinBoxToreXaxe"));
+        SpinBoxToreXaxe->setDecimals(5);
+        SpinBoxToreXaxe->setMinimum(-1e+09);
+        SpinBoxToreXaxe->setMaximum(1e+09);
+        SpinBoxToreXaxe->setValue(0);
+
+        gridLayout_4->addWidget(SpinBoxToreXaxe, 0, 3, 1, 1);
+
+        TLToreYcent = new QLabel(gBTore);
+        TLToreYcent->setObjectName(QString::fromUtf8("TLToreYcent"));
+        sizePolicy.setHeightForWidth(TLToreYcent->sizePolicy().hasHeightForWidth());
+        TLToreYcent->setSizePolicy(sizePolicy);
+        TLToreYcent->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreYcent, 1, 0, 1, 1);
+
+        SpinBoxToreYcent = new QDoubleSpinBox(gBTore);
+        SpinBoxToreYcent->setObjectName(QString::fromUtf8("SpinBoxToreYcent"));
+        SpinBoxToreYcent->setDecimals(5);
+        SpinBoxToreYcent->setMinimum(-1e+09);
+        SpinBoxToreYcent->setMaximum(1e+09);
+        SpinBoxToreYcent->setValue(0);
+
+        gridLayout_4->addWidget(SpinBoxToreYcent, 1, 1, 1, 1);
+
+        TLToreYaxe = new QLabel(gBTore);
+        TLToreYaxe->setObjectName(QString::fromUtf8("TLToreYaxe"));
+        sizePolicy.setHeightForWidth(TLToreYaxe->sizePolicy().hasHeightForWidth());
+        TLToreYaxe->setSizePolicy(sizePolicy);
+        TLToreYaxe->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreYaxe, 1, 2, 1, 1);
+
+        SpinBoxToreYaxe = new QDoubleSpinBox(gBTore);
+        SpinBoxToreYaxe->setObjectName(QString::fromUtf8("SpinBoxToreYaxe"));
+        SpinBoxToreYaxe->setDecimals(5);
+        SpinBoxToreYaxe->setMinimum(-1e+09);
+        SpinBoxToreYaxe->setMaximum(1e+09);
+        SpinBoxToreYaxe->setValue(0);
+
+        gridLayout_4->addWidget(SpinBoxToreYaxe, 1, 3, 1, 1);
+
+        TLToreZcent = new QLabel(gBTore);
+        TLToreZcent->setObjectName(QString::fromUtf8("TLToreZcent"));
+        sizePolicy.setHeightForWidth(TLToreZcent->sizePolicy().hasHeightForWidth());
+        TLToreZcent->setSizePolicy(sizePolicy);
+        TLToreZcent->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreZcent, 2, 0, 1, 1);
+
+        SpinBoxToreZcent = new QDoubleSpinBox(gBTore);
+        SpinBoxToreZcent->setObjectName(QString::fromUtf8("SpinBoxToreZcent"));
+        SpinBoxToreZcent->setDecimals(5);
+        SpinBoxToreZcent->setMinimum(-1e+09);
+        SpinBoxToreZcent->setMaximum(1e+09);
+        SpinBoxToreZcent->setValue(0);
+
+        gridLayout_4->addWidget(SpinBoxToreZcent, 2, 1, 1, 1);
+
+        TLToreZaxe = new QLabel(gBTore);
+        TLToreZaxe->setObjectName(QString::fromUtf8("TLToreZaxe"));
+        sizePolicy.setHeightForWidth(TLToreZaxe->sizePolicy().hasHeightForWidth());
+        TLToreZaxe->setSizePolicy(sizePolicy);
+        TLToreZaxe->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreZaxe, 2, 2, 1, 1);
+
+        SpinBoxToreZaxe = new QDoubleSpinBox(gBTore);
+        SpinBoxToreZaxe->setObjectName(QString::fromUtf8("SpinBoxToreZaxe"));
+        SpinBoxToreZaxe->setDecimals(5);
+        SpinBoxToreZaxe->setMinimum(-1e+09);
+        SpinBoxToreZaxe->setMaximum(1e+09);
+        SpinBoxToreZaxe->setValue(0);
+
+        gridLayout_4->addWidget(SpinBoxToreZaxe, 2, 3, 1, 1);
+
+        TLToreRayRev = new QLabel(gBTore);
+        TLToreRayRev->setObjectName(QString::fromUtf8("TLToreRayRev"));
+        sizePolicy.setHeightForWidth(TLToreRayRev->sizePolicy().hasHeightForWidth());
+        TLToreRayRev->setSizePolicy(sizePolicy);
+        TLToreRayRev->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreRayRev, 3, 0, 1, 1);
+
+        SpinBoxToreRRev = new QDoubleSpinBox(gBTore);
+        SpinBoxToreRRev->setObjectName(QString::fromUtf8("SpinBoxToreRRev"));
+        SpinBoxToreRRev->setDecimals(5);
+        SpinBoxToreRRev->setMaximum(1e+09);
+
+        gridLayout_4->addWidget(SpinBoxToreRRev, 3, 1, 1, 1);
+
+        TLToreRayPri = new QLabel(gBTore);
+        TLToreRayPri->setObjectName(QString::fromUtf8("TLToreRayPri"));
+        sizePolicy.setHeightForWidth(TLToreRayPri->sizePolicy().hasHeightForWidth());
+        TLToreRayPri->setSizePolicy(sizePolicy);
+        TLToreRayPri->setWordWrap(false);
+
+        gridLayout_4->addWidget(TLToreRayPri, 3, 2, 1, 1);
+
+        SpinBoxToreRPri = new QDoubleSpinBox(gBTore);
+        SpinBoxToreRPri->setObjectName(QString::fromUtf8("SpinBoxToreRPri"));
+        SpinBoxToreRPri->setDecimals(5);
+        SpinBoxToreRPri->setMaximum(1e+09);
+
+        gridLayout_4->addWidget(SpinBoxToreRPri, 3, 3, 1, 1);
+
+
+        gridLayout_5->addWidget(gBTore, 5, 0, 1, 2);
 
         GBButtons = new QGroupBox(CreateBoundaryAn);
         GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
@@ -564,7 +734,7 @@ public:
         gridLayout3->addWidget(buttonOk, 0, 0, 1, 1);
 
 
-        gridLayout_4->addWidget(GBButtons, 5, 0, 1, 2);
+        gridLayout_5->addWidget(GBButtons, 6, 0, 1, 2);
 
 
         retranslateUi(CreateBoundaryAn);
@@ -580,6 +750,7 @@ public:
         RBCylindre->setText(QApplication::translate("CreateBoundaryAn", "Cylinder", 0, QApplication::UnicodeUTF8));
         RBSphere->setText(QApplication::translate("CreateBoundaryAn", "Sphere", 0, QApplication::UnicodeUTF8));
         RBCone->setText(QApplication::translate("CreateBoundaryAn", "Cone", 0, QApplication::UnicodeUTF8));
+        RBTore->setText(QApplication::translate("CreateBoundaryAn", "Torus", 0, QApplication::UnicodeUTF8));
         gBCylindre->setTitle(QApplication::translate("CreateBoundaryAn", "Coordinates", 0, QApplication::UnicodeUTF8));
         TLXcent->setText(QApplication::translate("CreateBoundaryAn", "X centre", 0, QApplication::UnicodeUTF8));
         TLradius->setText(QApplication::translate("CreateBoundaryAn", "Radius", 0, QApplication::UnicodeUTF8));
@@ -605,6 +776,15 @@ public:
         TLCone_Z2->setText(QApplication::translate("CreateBoundaryAn", "Z 2", 0, QApplication::UnicodeUTF8));
         TLCone_V1->setText(QApplication::translate("CreateBoundaryAn", "V 1", 0, QApplication::UnicodeUTF8));
         TLCone_V2->setText(QApplication::translate("CreateBoundaryAn", "V 2", 0, QApplication::UnicodeUTF8));
+        gBTore->setTitle(QApplication::translate("CreateBoundaryAn", "Coordinates", 0, QApplication::UnicodeUTF8));
+        TLToreXcent->setText(QApplication::translate("CreateBoundaryAn", "X centre", 0, QApplication::UnicodeUTF8));
+        TLToreXaxe->setText(QApplication::translate("CreateBoundaryAn", "X axis", 0, QApplication::UnicodeUTF8));
+        TLToreYcent->setText(QApplication::translate("CreateBoundaryAn", "Y centre", 0, QApplication::UnicodeUTF8));
+        TLToreYaxe->setText(QApplication::translate("CreateBoundaryAn", "Y axis", 0, QApplication::UnicodeUTF8));
+        TLToreZcent->setText(QApplication::translate("CreateBoundaryAn", "Z centre", 0, QApplication::UnicodeUTF8));
+        TLToreZaxe->setText(QApplication::translate("CreateBoundaryAn", "Z axis", 0, QApplication::UnicodeUTF8));
+        TLToreRayRev->setText(QApplication::translate("CreateBoundaryAn", "R revolution", 0, QApplication::UnicodeUTF8));
+        TLToreRayPri->setText(QApplication::translate("CreateBoundaryAn", "Primary R", 0, QApplication::UnicodeUTF8));
         GBButtons->setTitle(QString());
         buttonHelp->setText(QApplication::translate("CreateBoundaryAn", "Help", 0, QApplication::UnicodeUTF8));
         buttonCancel->setText(QApplication::translate("CreateBoundaryAn", "Cancel", 0, QApplication::UnicodeUTF8));
index 30eecf6350ff7d78708465f2e0be07cb8d082291..ac291082db3ba6933ed8512aea53074b57e5359f 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>527</width>
-    <height>701</height>
+    <width>522</width>
+    <height>835</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -19,7 +19,7 @@
   <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout_4">
+  <layout class="QGridLayout" name="gridLayout_5">
    <item row="0" column="0">
     <widget class="QLabel" name="Name">
      <property name="text">
         </property>
        </widget>
       </item>
+      <item row="0" column="3">
+       <widget class="QRadioButton" name="RBTore">
+        <property name="text">
+         <string>Torus</string>
+        </property>
+        <property name="icon">
+         <iconset>
+          <normaloff>../../resources/toruspointvector.png</normaloff>../../resources/toruspointvector.png</iconset>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
       <item row="4" column="1">
        <widget class="QDoubleSpinBox" name="SpinBox_Cone_V1">
         <property name="decimals">
-         <number>14</number>
+         <number>5</number>
         </property>
         <property name="maximum">
          <double>1000000000.000000000000000</double>
       <item row="4" column="3">
        <widget class="QDoubleSpinBox" name="SpinBox_Cone_V2">
         <property name="decimals">
-         <number>14</number>
+         <number>5</number>
         </property>
         <property name="maximum">
          <double>1000000000.000000000000000</double>
     </widget>
    </item>
    <item row="5" column="0" colspan="2">
+    <widget class="QGroupBox" name="gBTore">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title">
+      <string>Coordinates</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_4">
+      <item row="0" column="0">
+       <widget class="QLabel" name="TLToreXcent">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>X centre</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreXcent">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QLabel" name="TLToreXaxe">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>X axis</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreXaxe">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="TLToreYcent">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Y centre</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreYcent">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2">
+       <widget class="QLabel" name="TLToreYaxe">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Y axis</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreYaxe">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="TLToreZcent">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Z centre</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreZcent">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2">
+       <widget class="QLabel" name="TLToreZaxe">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Z axis</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreZaxe">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="TLToreRayRev">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>R revolution</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreRRev">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="maximum">
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="2">
+       <widget class="QLabel" name="TLToreRayPri">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Primary R</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBoxToreRPri">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="maximum">
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="6" column="0" colspan="2">
     <widget class="QGroupBox" name="GBButtons">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
index c5c6c4c0538086b5135f2d45891cf2df72d9e236..73adbb0c2e5388660fa408af7d9f8e0aec4ebccc 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateCase.ui'
 **
-** Created: Tue Sep 17 14:09:06 2013
+** Created: Wed Jan 15 08:42:35 2014
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
 #include <QtGui/QRadioButton>
 #include <QtGui/QSpacerItem>
 #include <QtGui/QTableWidget>
+#include <QtGui/QWidget>
 
 QT_BEGIN_NAMESPACE
 
 class Ui_CreateCase
 {
 public:
+    QGridLayout *gridLayout_3;
+    QWidget *WName;
     QGridLayout *gridLayout_2;
-    QHBoxLayout *hboxLayout;
     QLabel *Name;
     QLineEdit *LEName;
-    QHBoxLayout *hboxLayout1;
+    QSpacerItem *horizontalSpacer;
+    QHBoxLayout *hboxLayout;
     QLabel *Directory;
     QPushButton *PushDir;
     QLineEdit *LEDirName;
     QSpacerItem *spacerItem;
-    QHBoxLayout *hboxLayout2;
+    QHBoxLayout *hboxLayout1;
     QLabel *Mesh;
     QPushButton *PushFichier;
     QLineEdit *LEFileName;
     QSpacerItem *spacerItem1;
     QGroupBox *GBTypeConf;
-    QHBoxLayout *hboxLayout3;
+    QHBoxLayout *hboxLayout2;
     QRadioButton *RBConforme;
     QRadioButton *RBNonConforme;
     QSpacerItem *spacerItem2;
     QGroupBox *GBTypeNoConf;
-    QHBoxLayout *hboxLayout4;
+    QHBoxLayout *hboxLayout3;
     QRadioButton *RB1NpM;
     QRadioButton *RB1NpA;
     QRadioButton *RBQuelconque;
     QSpacerItem *spacerItem3;
-    QHBoxLayout *hboxLayout5;
+    QHBoxLayout *hboxLayout4;
     QCheckBox *CBBoundaryD;
     QCheckBox *CBBoundaryA;
     QSpacerItem *spacerItem4;
@@ -99,183 +102,188 @@ public:
         if (CreateCase->objectName().isEmpty())
             CreateCase->setObjectName(QString::fromUtf8("CreateCase"));
         CreateCase->resize(601, 1100);
-        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
         sizePolicy.setHorizontalStretch(0);
         sizePolicy.setVerticalStretch(0);
         sizePolicy.setHeightForWidth(CreateCase->sizePolicy().hasHeightForWidth());
         CreateCase->setSizePolicy(sizePolicy);
+        CreateCase->setMinimumSize(QSize(600, 320));
+        CreateCase->setSizeIncrement(QSize(1, 1));
+        CreateCase->setBaseSize(QSize(600, 320));
         CreateCase->setAutoFillBackground(true);
-        gridLayout_2 = new QGridLayout(CreateCase);
+        gridLayout_3 = new QGridLayout(CreateCase);
+        gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
+        WName = new QWidget(CreateCase);
+        WName->setObjectName(QString::fromUtf8("WName"));
+        gridLayout_2 = new QGridLayout(WName);
         gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
-        hboxLayout = new QHBoxLayout();
-#ifndef Q_OS_MAC
-        hboxLayout->setSpacing(6);
-#endif
-#ifndef Q_OS_MAC
-        hboxLayout->setContentsMargins(0, 0, 0, 0);
-#endif
-        hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
-        Name = new QLabel(CreateCase);
+        Name = new QLabel(WName);
         Name->setObjectName(QString::fromUtf8("Name"));
 
-        hboxLayout->addWidget(Name);
+        gridLayout_2->addWidget(Name, 0, 0, 1, 1);
 
-        LEName = new QLineEdit(CreateCase);
+        LEName = new QLineEdit(WName);
         LEName->setObjectName(QString::fromUtf8("LEName"));
-        LEName->setMinimumSize(QSize(382, 21));
 
-        hboxLayout->addWidget(LEName);
+        gridLayout_2->addWidget(LEName, 0, 1, 1, 1);
 
 
-        gridLayout_2->addLayout(hboxLayout, 0, 0, 1, 3);
+        gridLayout_3->addWidget(WName, 0, 0, 1, 1);
 
-        hboxLayout1 = new QHBoxLayout();
+        horizontalSpacer = new QSpacerItem(199, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer, 0, 1, 1, 1);
+
+        hboxLayout = new QHBoxLayout();
 #ifndef Q_OS_MAC
-        hboxLayout1->setSpacing(6);
+        hboxLayout->setSpacing(6);
 #endif
-        hboxLayout1->setContentsMargins(0, 0, 0, 0);
-        hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
+        hboxLayout->setContentsMargins(0, 0, 0, 0);
+        hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
         Directory = new QLabel(CreateCase);
         Directory->setObjectName(QString::fromUtf8("Directory"));
 
-        hboxLayout1->addWidget(Directory);
+        hboxLayout->addWidget(Directory);
 
         PushDir = new QPushButton(CreateCase);
         PushDir->setObjectName(QString::fromUtf8("PushDir"));
         PushDir->setAutoDefault(false);
 
-        hboxLayout1->addWidget(PushDir);
+        hboxLayout->addWidget(PushDir);
 
         LEDirName = new QLineEdit(CreateCase);
         LEDirName->setObjectName(QString::fromUtf8("LEDirName"));
         LEDirName->setMinimumSize(QSize(382, 21));
 
-        hboxLayout1->addWidget(LEDirName);
+        hboxLayout->addWidget(LEDirName);
 
 
-        gridLayout_2->addLayout(hboxLayout1, 1, 0, 1, 4);
+        gridLayout_3->addLayout(hboxLayout, 1, 0, 1, 6);
 
         spacerItem = new QSpacerItem(20, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(spacerItem, 2, 1, 1, 1);
+        gridLayout_3->addItem(spacerItem, 2, 2, 1, 2);
 
-        hboxLayout2 = new QHBoxLayout();
+        hboxLayout1 = new QHBoxLayout();
 #ifndef Q_OS_MAC
-        hboxLayout2->setSpacing(6);
+        hboxLayout1->setSpacing(6);
 #endif
-        hboxLayout2->setContentsMargins(0, 0, 0, 0);
-        hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
+        hboxLayout1->setContentsMargins(0, 0, 0, 0);
+        hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
         Mesh = new QLabel(CreateCase);
         Mesh->setObjectName(QString::fromUtf8("Mesh"));
 
-        hboxLayout2->addWidget(Mesh);
+        hboxLayout1->addWidget(Mesh);
 
         PushFichier = new QPushButton(CreateCase);
         PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
         PushFichier->setAutoDefault(false);
 
-        hboxLayout2->addWidget(PushFichier);
+        hboxLayout1->addWidget(PushFichier);
 
         LEFileName = new QLineEdit(CreateCase);
         LEFileName->setObjectName(QString::fromUtf8("LEFileName"));
         LEFileName->setMinimumSize(QSize(382, 21));
 
-        hboxLayout2->addWidget(LEFileName);
+        hboxLayout1->addWidget(LEFileName);
 
 
-        gridLayout_2->addLayout(hboxLayout2, 3, 0, 1, 4);
+        gridLayout_3->addLayout(hboxLayout1, 3, 0, 2, 6);
 
         spacerItem1 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(spacerItem1, 4, 1, 1, 3);
+        gridLayout_3->addItem(spacerItem1, 4, 3, 1, 3);
 
         GBTypeConf = new QGroupBox(CreateCase);
         GBTypeConf->setObjectName(QString::fromUtf8("GBTypeConf"));
-        hboxLayout3 = new QHBoxLayout(GBTypeConf);
+        hboxLayout2 = new QHBoxLayout(GBTypeConf);
 #ifndef Q_OS_MAC
-        hboxLayout3->setSpacing(6);
+        hboxLayout2->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        hboxLayout3->setContentsMargins(9, 9, 9, 9);
+        hboxLayout2->setContentsMargins(9, 9, 9, 9);
 #endif
-        hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
+        hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
         RBConforme = new QRadioButton(GBTypeConf);
         RBConforme->setObjectName(QString::fromUtf8("RBConforme"));
         RBConforme->setChecked(true);
 
-        hboxLayout3->addWidget(RBConforme);
+        hboxLayout2->addWidget(RBConforme);
 
         RBNonConforme = new QRadioButton(GBTypeConf);
         RBNonConforme->setObjectName(QString::fromUtf8("RBNonConforme"));
 
-        hboxLayout3->addWidget(RBNonConforme);
+        hboxLayout2->addWidget(RBNonConforme);
 
 
-        gridLayout_2->addWidget(GBTypeConf, 5, 0, 1, 1);
+        gridLayout_3->addWidget(GBTypeConf, 5, 0, 1, 2);
 
         spacerItem2 = new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(spacerItem2, 6, 1, 1, 1);
+        gridLayout_3->addItem(spacerItem2, 6, 3, 1, 1);
 
         GBTypeNoConf = new QGroupBox(CreateCase);
         GBTypeNoConf->setObjectName(QString::fromUtf8("GBTypeNoConf"));
-        hboxLayout4 = new QHBoxLayout(GBTypeNoConf);
+        hboxLayout3 = new QHBoxLayout(GBTypeNoConf);
 #ifndef Q_OS_MAC
-        hboxLayout4->setSpacing(6);
+        hboxLayout3->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        hboxLayout4->setContentsMargins(9, 9, 9, 9);
+        hboxLayout3->setContentsMargins(9, 9, 9, 9);
 #endif
-        hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
+        hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
         RB1NpM = new QRadioButton(GBTypeNoConf);
         RB1NpM->setObjectName(QString::fromUtf8("RB1NpM"));
 
-        hboxLayout4->addWidget(RB1NpM);
+        hboxLayout3->addWidget(RB1NpM);
 
         RB1NpA = new QRadioButton(GBTypeNoConf);
         RB1NpA->setObjectName(QString::fromUtf8("RB1NpA"));
 
-        hboxLayout4->addWidget(RB1NpA);
+        hboxLayout3->addWidget(RB1NpA);
 
         RBQuelconque = new QRadioButton(GBTypeNoConf);
         RBQuelconque->setObjectName(QString::fromUtf8("RBQuelconque"));
 
-        hboxLayout4->addWidget(RBQuelconque);
+        hboxLayout3->addWidget(RBQuelconque);
 
 
-        gridLayout_2->addWidget(GBTypeNoConf, 7, 0, 1, 3);
+        gridLayout_3->addWidget(GBTypeNoConf, 7, 0, 1, 6);
 
         spacerItem3 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(spacerItem3, 8, 1, 1, 3);
+        gridLayout_3->addItem(spacerItem3, 8, 3, 1, 3);
 
-        hboxLayout5 = new QHBoxLayout();
+        hboxLayout4 = new QHBoxLayout();
 #ifndef Q_OS_MAC
-        hboxLayout5->setSpacing(6);
+        hboxLayout4->setSpacing(6);
 #endif
-        hboxLayout5->setContentsMargins(0, 0, 0, 0);
-        hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5"));
+        hboxLayout4->setContentsMargins(0, 0, 0, 0);
+        hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
         CBBoundaryD = new QCheckBox(CreateCase);
         CBBoundaryD->setObjectName(QString::fromUtf8("CBBoundaryD"));
 
-        hboxLayout5->addWidget(CBBoundaryD);
+        hboxLayout4->addWidget(CBBoundaryD);
 
         CBBoundaryA = new QCheckBox(CreateCase);
         CBBoundaryA->setObjectName(QString::fromUtf8("CBBoundaryA"));
 
-        hboxLayout5->addWidget(CBBoundaryA);
+        hboxLayout4->addWidget(CBBoundaryA);
 
 
-        gridLayout_2->addLayout(hboxLayout5, 9, 0, 1, 2);
+        gridLayout_3->addLayout(hboxLayout4, 9, 0, 1, 4);
 
         spacerItem4 = new QSpacerItem(20, 2, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(spacerItem4, 10, 1, 1, 1);
+        gridLayout_3->addItem(spacerItem4, 10, 3, 1, 1);
 
         GBBoundaryD = new QGroupBox(CreateCase);
         GBBoundaryD->setObjectName(QString::fromUtf8("GBBoundaryD"));
-        sizePolicy.setHeightForWidth(GBBoundaryD->sizePolicy().hasHeightForWidth());
-        GBBoundaryD->setSizePolicy(sizePolicy);
+        QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(GBBoundaryD->sizePolicy().hasHeightForWidth());
+        GBBoundaryD->setSizePolicy(sizePolicy1);
         gridLayout = new QGridLayout(GBBoundaryD);
 #ifndef Q_OS_MAC
         gridLayout->setSpacing(6);
@@ -313,7 +321,7 @@ public:
         gridLayout->addWidget(PBBoundaryDiHelp, 0, 4, 1, 1);
 
 
-        gridLayout_2->addWidget(GBBoundaryD, 11, 0, 1, 3);
+        gridLayout_3->addWidget(GBBoundaryD, 11, 0, 1, 6);
 
         GBBoundaryA = new QGroupBox(CreateCase);
         GBBoundaryA->setObjectName(QString::fromUtf8("GBBoundaryA"));
@@ -361,16 +369,16 @@ public:
         formLayout->setLayout(0, QFormLayout::FieldRole, gridLayout1);
 
 
-        gridLayout_2->addWidget(GBBoundaryA, 12, 0, 1, 4);
+        gridLayout_3->addWidget(GBBoundaryA, 12, 0, 1, 6);
 
         spacer = new QSpacerItem(239, 41, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(spacer, 13, 0, 1, 1);
+        gridLayout_3->addItem(spacer, 13, 0, 1, 2);
 
         CBAdvanced = new QCheckBox(CreateCase);
         CBAdvanced->setObjectName(QString::fromUtf8("CBAdvanced"));
 
-        gridLayout_2->addWidget(CBAdvanced, 14, 0, 1, 1);
+        gridLayout_3->addWidget(CBAdvanced, 14, 0, 1, 1);
 
         GBAdvancedOptions = new QGroupBox(CreateCase);
         GBAdvancedOptions->setObjectName(QString::fromUtf8("GBAdvancedOptions"));
@@ -382,24 +390,24 @@ public:
         gridLayout2->addWidget(CBPyramid, 0, 0, 1, 1);
 
 
-        gridLayout_2->addWidget(GBAdvancedOptions, 15, 0, 1, 1);
+        gridLayout_3->addWidget(GBAdvancedOptions, 15, 0, 1, 1);
 
         spacer_3 = new QSpacerItem(128, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-        gridLayout_2->addItem(spacer_3, 15, 2, 1, 2);
+        gridLayout_3->addItem(spacer_3, 15, 4, 1, 2);
 
         spacer_4 = new QSpacerItem(239, 41, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(spacer_4, 16, 0, 1, 1);
+        gridLayout_3->addItem(spacer_4, 16, 0, 1, 2);
 
         Comment = new QLabel(CreateCase);
         Comment->setObjectName(QString::fromUtf8("Comment"));
 
-        gridLayout_2->addWidget(Comment, 17, 0, 1, 3);
+        gridLayout_3->addWidget(Comment, 17, 0, 1, 1);
 
         verticalSpacer = new QSpacerItem(20, 35, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout_2->addItem(verticalSpacer, 18, 0, 1, 1);
+        gridLayout_3->addItem(verticalSpacer, 18, 0, 1, 1);
 
         GroupButtons = new QGroupBox(CreateCase);
         GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
@@ -436,11 +444,11 @@ public:
         gridLayout3->addWidget(buttonCancel, 0, 2, 1, 1);
 
 
-        gridLayout_2->addWidget(GroupButtons, 19, 0, 1, 3);
+        gridLayout_3->addWidget(GroupButtons, 19, 0, 1, 5);
 
         spacer_2 = new QSpacerItem(128, 25, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-        gridLayout_2->addItem(spacer_2, 19, 3, 1, 1);
+        gridLayout_3->addItem(spacer_2, 19, 5, 1, 1);
 
 
         retranslateUi(CreateCase);
index 2c140a72987943e6bbe17a20188a7de599838f15..d57d1c1de19fddb6dea198226d20031af105860e 100644 (file)
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>600</width>
+    <height>320</height>
+   </size>
+  </property>
+  <property name="sizeIncrement">
+   <size>
+    <width>1</width>
+    <height>1</height>
+   </size>
+  </property>
+  <property name="baseSize">
+   <size>
+    <width>600</width>
+    <height>320</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Create a case</string>
   </property>
   <property name="autoFillBackground">
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout_2">
-   <item row="0" column="0" colspan="3">
-    <layout class="QHBoxLayout">
-     <property name="spacing">
-      <number>6</number>
+  <layout class="QGridLayout" name="gridLayout_3">
+   <item row="0" column="0">
+    <widget class="QWidget" name="WName" native="true">
+     <layout class="QGridLayout" name="gridLayout_2">
+      <item row="0" column="0">
+       <widget class="QLabel" name="Name">
+        <property name="text">
+         <string>Name</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="LEName"/>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <spacer name="horizontalSpacer">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
      </property>
-     <property name="margin">
-      <number>0</number>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>199</width>
+       <height>20</height>
+      </size>
      </property>
-     <item>
-      <widget class="QLabel" name="Name">
-       <property name="text">
-        <string>Name</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="LEName">
-       <property name="minimumSize">
-        <size>
-         <width>382</width>
-         <height>21</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-    </layout>
+    </spacer>
    </item>
-   <item row="1" column="0" colspan="4">
+   <item row="1" column="0" colspan="6">
     <layout class="QHBoxLayout">
      <property name="spacing">
       <number>6</number>
      </item>
     </layout>
    </item>
-   <item row="2" column="1">
+   <item row="2" column="2" colspan="2">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
-   <item row="3" column="0" colspan="4">
+   <item row="3" column="0" rowspan="2" colspan="6">
     <layout class="QHBoxLayout">
      <property name="spacing">
       <number>6</number>
      </item>
     </layout>
    </item>
-   <item row="4" column="1" colspan="3">
+   <item row="4" column="3" colspan="3">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
-   <item row="5" column="0">
+   <item row="5" column="0" colspan="2">
     <widget class="QGroupBox" name="GBTypeConf">
      <property name="title">
       <string>Conformity type</string>
      </layout>
     </widget>
    </item>
-   <item row="6" column="1">
+   <item row="6" column="3">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
-   <item row="7" column="0" colspan="3">
+   <item row="7" column="0" colspan="6">
     <widget class="QGroupBox" name="GBTypeNoConf">
      <property name="title">
       <string>Non conformal option</string>
      </layout>
     </widget>
    </item>
-   <item row="8" column="1" colspan="3">
+   <item row="8" column="3" colspan="3">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
-   <item row="9" column="0" colspan="2">
+   <item row="9" column="0" colspan="4">
     <layout class="QHBoxLayout">
      <property name="spacing">
       <number>6</number>
      </item>
     </layout>
    </item>
-   <item row="10" column="1">
+   <item row="10" column="3">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
-   <item row="11" column="0" colspan="3">
+   <item row="11" column="0" colspan="6">
     <widget class="QGroupBox" name="GBBoundaryD">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
      </layout>
     </widget>
    </item>
-   <item row="12" column="0" colspan="4">
+   <item row="12" column="0" colspan="6">
     <widget class="QGroupBox" name="GBBoundaryA">
      <property name="minimumSize">
       <size>
      </layout>
     </widget>
    </item>
-   <item row="13" column="0">
+   <item row="13" column="0" colspan="2">
     <spacer name="spacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </layout>
     </widget>
    </item>
-   <item row="15" column="2" colspan="2">
+   <item row="15" column="4" colspan="2">
     <spacer name="spacer_3">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </spacer>
    </item>
-   <item row="16" column="0">
+   <item row="16" column="0" colspan="2">
     <spacer name="spacer_4">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
-   <item row="17" column="0" colspan="3">
+   <item row="17" column="0">
     <widget class="QLabel" name="Comment">
      <property name="text">
       <string> No comment.</string>
      </property>
     </spacer>
    </item>
-   <item row="19" column="0" colspan="3">
+   <item row="19" column="0" colspan="5">
     <widget class="QGroupBox" name="GroupButtons">
      <property name="title">
       <string/>
      </layout>
     </widget>
    </item>
-   <item row="19" column="3">
+   <item row="19" column="5">
     <spacer name="spacer_2">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
index 60afee80e8f4fd33359b65ea68dfbb5488cdc0f3..dc3ef61167968d15d2fb7d7492ba6a2ffacf5dbf 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateHypothesis.ui'
 **
-** Created: Tue Sep 24 14:35:06 2013
+** Created: Wed Jan 15 08:44:19 2014
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -16,7 +16,6 @@
 #include <QtGui/QButtonGroup>
 #include <QtGui/QCheckBox>
 #include <QtGui/QComboBox>
-#include <QtGui/QDialog>
 #include <QtGui/QDoubleSpinBox>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
+#include <QtGui/QScrollArea>
 #include <QtGui/QSpacerItem>
 #include <QtGui/QSpinBox>
 #include <QtGui/QTableWidget>
 #include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
 
 QT_BEGIN_NAMESPACE
 
 class Ui_CreateHypothesis
 {
 public:
+    QWidget *scrollAreaWidgetContents;
     QGridLayout *gridLayout_3;
+    QWidget *WName;
+    QGridLayout *gridLayout;
+    QLabel *Name;
     QLineEdit *LEName;
+    QSpacerItem *horizontalSpacer_9;
     QGroupBox *GBTypeAdaptation;
     QHBoxLayout *hboxLayout;
     QRadioButton *RBUniforme;
     QRadioButton *RBChamp;
     QRadioButton *RBZone;
+    QSpacerItem *horizontalSpacer_6;
+    QCheckBox *CBGroupe;
+    QSpacerItem *horizontalSpacer_8;
     QGroupBox *GBUniform;
-    QGridLayout *gridLayout;
+    QGridLayout *gridLayout1;
     QRadioButton *RBUniDera;
     QRadioButton *RBUniRaff;
+    QSpacerItem *horizontalSpacer_7;
     QGroupBox *GBFieldFile;
-    QGridLayout *gridLayout1;
+    QGridLayout *gridLayout2;
     QLabel *FieldFile;
     QLineEdit *LEFieldFile;
     QGroupBox *GBFieldManagement;
-    QGridLayout *gridLayout2;
+    QGridLayout *gridLayout3;
     QHBoxLayout *hboxLayout1;
     QLabel *FieldName;
     QComboBox *CBFieldName;
@@ -67,7 +77,7 @@ public:
     QCheckBox *CBJump;
     QHBoxLayout *hboxLayout4;
     QGroupBox *GBRefinementThresholds;
-    QGridLayout *gridLayout3;
+    QGridLayout *gridLayout4;
     QRadioButton *RBRPE;
     QDoubleSpinBox *SpinBox_RPE;
     QRadioButton *RBRRel;
@@ -78,7 +88,7 @@ public:
     QDoubleSpinBox *SpinBox_RMuSigma;
     QRadioButton *RBRNo;
     QGroupBox *GBCoarseningThresholds;
-    QGridLayout *gridLayout4;
+    QGridLayout *gridLayout5;
     QRadioButton *RBCPE;
     QDoubleSpinBox *SpinBox_CPE;
     QRadioButton *RBCRel;
@@ -99,56 +109,79 @@ public:
     QPushButton *PBZoneDelete;
     QSpacerItem *spacerItem2;
     QGroupBox *GBField;
-    QGridLayout *gridLayout5;
     QGridLayout *gridLayout6;
+    QGridLayout *gridLayout7;
     QRadioButton *RBFieldNo;
     QRadioButton *RBFieldAll;
     QRadioButton *RBFieldChosen;
     QTableWidget *TWField;
-    QCheckBox *CBGroupe;
+    QSpacerItem *horizontalSpacer_5;
     QCheckBox *CBAdvanced;
+    QSpacerItem *horizontalSpacer_4;
     QGroupBox *GBAdvancedOptions;
     QGridLayout *gridLayout_1;
     QLabel *TLMinimalDiameter;
     QDoubleSpinBox *doubleSpinBoxDiamMin;
     QLabel *TLMaximalLevel;
-    QSpinBox *spinBoxNivMax;
+    QSpinBox *SpinBoxNivMax;
     QGroupBox *GBAdapInit;
     QGridLayout *gridLayout_2;
     QRadioButton *RBAIN;
     QRadioButton *RBAIR;
     QRadioButton *RBAID;
     QCheckBox *CBLevelOutput;
+    QSpacerItem *horizontalSpacer_3;
     QGroupBox *GBButtons;
-    QGridLayout *gridLayout7;
+    QGridLayout *gridLayout8;
     QPushButton *buttonOk;
     QPushButton *buttonApply;
     QPushButton *buttonCancel;
     QPushButton *buttonHelp;
-    QLabel *Name;
+    QSpacerItem *horizontalSpacer_2;
 
-    void setupUi(QDialog *CreateHypothesis)
+    void setupUi(QScrollArea *CreateHypothesis)
     {
         if (CreateHypothesis->objectName().isEmpty())
             CreateHypothesis->setObjectName(QString::fromUtf8("CreateHypothesis"));
-        CreateHypothesis->resize(794, 1481);
-        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        CreateHypothesis->resize(848, 1550);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
         sizePolicy.setHorizontalStretch(0);
         sizePolicy.setVerticalStretch(0);
         sizePolicy.setHeightForWidth(CreateHypothesis->sizePolicy().hasHeightForWidth());
         CreateHypothesis->setSizePolicy(sizePolicy);
-        CreateHypothesis->setAutoFillBackground(true);
-        CreateHypothesis->setSizeGripEnabled(true);
-        gridLayout_3 = new QGridLayout(CreateHypothesis);
+        CreateHypothesis->setMinimumSize(QSize(800, 600));
+        CreateHypothesis->setSizeIncrement(QSize(1, 1));
+        CreateHypothesis->setBaseSize(QSize(800, 1200));
+        CreateHypothesis->setWidgetResizable(true);
+        scrollAreaWidgetContents = new QWidget();
+        scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents"));
+        scrollAreaWidgetContents->setGeometry(QRect(0, 0, 844, 1546));
+        scrollAreaWidgetContents->setProperty("sizeGripEnabled", QVariant(true));
+        gridLayout_3 = new QGridLayout(scrollAreaWidgetContents);
         gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
-        LEName = new QLineEdit(CreateHypothesis);
+        WName = new QWidget(scrollAreaWidgetContents);
+        WName->setObjectName(QString::fromUtf8("WName"));
+        gridLayout = new QGridLayout(WName);
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        Name = new QLabel(WName);
+        Name->setObjectName(QString::fromUtf8("Name"));
+
+        gridLayout->addWidget(Name, 0, 0, 1, 1);
+
+        LEName = new QLineEdit(WName);
         LEName->setObjectName(QString::fromUtf8("LEName"));
-        LEName->setMinimumSize(QSize(382, 31));
-        LEName->setMaxLength(32);
+        LEName->setMinimumSize(QSize(282, 31));
 
-        gridLayout_3->addWidget(LEName, 0, 1, 1, 1);
+        gridLayout->addWidget(LEName, 0, 1, 1, 1);
 
-        GBTypeAdaptation = new QGroupBox(CreateHypothesis);
+
+        gridLayout_3->addWidget(WName, 0, 0, 1, 1);
+
+        horizontalSpacer_9 = new QSpacerItem(224, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer_9, 0, 1, 1, 1);
+
+        GBTypeAdaptation = new QGroupBox(scrollAreaWidgetContents);
         GBTypeAdaptation->setObjectName(QString::fromUtf8("GBTypeAdaptation"));
         hboxLayout = new QHBoxLayout(GBTypeAdaptation);
 #ifndef Q_OS_MAC
@@ -177,66 +210,86 @@ public:
 
         gridLayout_3->addWidget(GBTypeAdaptation, 1, 0, 1, 2);
 
-        GBUniform = new QGroupBox(CreateHypothesis);
+        horizontalSpacer_6 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer_6, 1, 2, 1, 1);
+
+        CBGroupe = new QCheckBox(scrollAreaWidgetContents);
+        CBGroupe->setObjectName(QString::fromUtf8("CBGroupe"));
+
+        gridLayout_3->addWidget(CBGroupe, 2, 0, 1, 1);
+
+        horizontalSpacer_8 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer_8, 2, 2, 1, 1);
+
+        GBUniform = new QGroupBox(scrollAreaWidgetContents);
         GBUniform->setObjectName(QString::fromUtf8("GBUniform"));
-        gridLayout = new QGridLayout(GBUniform);
+        gridLayout1 = new QGridLayout(GBUniform);
 #ifndef Q_OS_MAC
-        gridLayout->setSpacing(6);
+        gridLayout1->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout->setContentsMargins(9, 9, 9, 9);
+        gridLayout1->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
         RBUniDera = new QRadioButton(GBUniform);
         RBUniDera->setObjectName(QString::fromUtf8("RBUniDera"));
 
-        gridLayout->addWidget(RBUniDera, 0, 1, 1, 1);
+        gridLayout1->addWidget(RBUniDera, 0, 1, 1, 1);
 
         RBUniRaff = new QRadioButton(GBUniform);
         RBUniRaff->setObjectName(QString::fromUtf8("RBUniRaff"));
         RBUniRaff->setChecked(true);
 
-        gridLayout->addWidget(RBUniRaff, 0, 0, 1, 1);
+        gridLayout1->addWidget(RBUniRaff, 0, 0, 1, 1);
+
 
+        gridLayout_3->addWidget(GBUniform, 3, 0, 1, 1);
 
-        gridLayout_3->addWidget(GBUniform, 3, 0, 1, 2);
+        horizontalSpacer_7 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        GBFieldFile = new QGroupBox(CreateHypothesis);
+        gridLayout_3->addItem(horizontalSpacer_7, 3, 2, 1, 1);
+
+        GBFieldFile = new QGroupBox(scrollAreaWidgetContents);
         GBFieldFile->setObjectName(QString::fromUtf8("GBFieldFile"));
-        gridLayout1 = new QGridLayout(GBFieldFile);
+        gridLayout2 = new QGridLayout(GBFieldFile);
 #ifndef Q_OS_MAC
-        gridLayout1->setSpacing(6);
+        gridLayout2->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout1->setContentsMargins(9, 9, 9, 9);
+        gridLayout2->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
         FieldFile = new QLabel(GBFieldFile);
         FieldFile->setObjectName(QString::fromUtf8("FieldFile"));
 
-        gridLayout1->addWidget(FieldFile, 0, 0, 1, 1);
+        gridLayout2->addWidget(FieldFile, 0, 0, 1, 1);
 
         LEFieldFile = new QLineEdit(GBFieldFile);
         LEFieldFile->setObjectName(QString::fromUtf8("LEFieldFile"));
         LEFieldFile->setMinimumSize(QSize(282, 31));
 
-        gridLayout1->addWidget(LEFieldFile, 0, 1, 1, 1);
+        gridLayout2->addWidget(LEFieldFile, 0, 1, 1, 1);
 
 
         gridLayout_3->addWidget(GBFieldFile, 4, 0, 1, 2);
 
-        GBFieldManagement = new QGroupBox(CreateHypothesis);
+        GBFieldManagement = new QGroupBox(scrollAreaWidgetContents);
         GBFieldManagement->setObjectName(QString::fromUtf8("GBFieldManagement"));
-        sizePolicy.setHeightForWidth(GBFieldManagement->sizePolicy().hasHeightForWidth());
-        GBFieldManagement->setSizePolicy(sizePolicy);
-        gridLayout2 = new QGridLayout(GBFieldManagement);
+        QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(GBFieldManagement->sizePolicy().hasHeightForWidth());
+        GBFieldManagement->setSizePolicy(sizePolicy1);
+        gridLayout3 = new QGridLayout(GBFieldManagement);
 #ifndef Q_OS_MAC
-        gridLayout2->setSpacing(6);
+        gridLayout3->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout2->setContentsMargins(9, 9, 9, 9);
+        gridLayout3->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
         hboxLayout1 = new QHBoxLayout();
 #ifndef Q_OS_MAC
         hboxLayout1->setSpacing(6);
@@ -252,8 +305,8 @@ public:
 
         CBFieldName = new QComboBox(GBFieldManagement);
         CBFieldName->setObjectName(QString::fromUtf8("CBFieldName"));
-        sizePolicy.setHeightForWidth(CBFieldName->sizePolicy().hasHeightForWidth());
-        CBFieldName->setSizePolicy(sizePolicy);
+        sizePolicy1.setHeightForWidth(CBFieldName->sizePolicy().hasHeightForWidth());
+        CBFieldName->setSizePolicy(sizePolicy1);
         CBFieldName->setEditable(false);
         CBFieldName->setSizeAdjustPolicy(QComboBox::AdjustToContents);
 
@@ -264,7 +317,7 @@ public:
         hboxLayout1->addItem(spacerItem);
 
 
-        gridLayout2->addLayout(hboxLayout1, 0, 0, 1, 1);
+        gridLayout3->addLayout(hboxLayout1, 0, 0, 1, 1);
 
         hboxLayout2 = new QHBoxLayout();
 #ifndef Q_OS_MAC
@@ -329,7 +382,7 @@ public:
         hboxLayout2->addLayout(vboxLayout);
 
 
-        gridLayout2->addLayout(hboxLayout2, 1, 0, 1, 1);
+        gridLayout3->addLayout(hboxLayout2, 1, 0, 1, 1);
 
         hboxLayout4 = new QHBoxLayout();
 #ifndef Q_OS_MAC
@@ -339,22 +392,22 @@ public:
         hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
         GBRefinementThresholds = new QGroupBox(GBFieldManagement);
         GBRefinementThresholds->setObjectName(QString::fromUtf8("GBRefinementThresholds"));
-        sizePolicy.setHeightForWidth(GBRefinementThresholds->sizePolicy().hasHeightForWidth());
-        GBRefinementThresholds->setSizePolicy(sizePolicy);
-        gridLayout3 = new QGridLayout(GBRefinementThresholds);
+        sizePolicy1.setHeightForWidth(GBRefinementThresholds->sizePolicy().hasHeightForWidth());
+        GBRefinementThresholds->setSizePolicy(sizePolicy1);
+        gridLayout4 = new QGridLayout(GBRefinementThresholds);
 #ifndef Q_OS_MAC
-        gridLayout3->setSpacing(6);
+        gridLayout4->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout3->setContentsMargins(9, 9, 9, 9);
+        gridLayout4->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
+        gridLayout4->setObjectName(QString::fromUtf8("gridLayout4"));
         RBRPE = new QRadioButton(GBRefinementThresholds);
         RBRPE->setObjectName(QString::fromUtf8("RBRPE"));
         RBRPE->setCheckable(true);
         RBRPE->setChecked(true);
 
-        gridLayout3->addWidget(RBRPE, 0, 0, 1, 1);
+        gridLayout4->addWidget(RBRPE, 0, 0, 1, 1);
 
         SpinBox_RPE = new QDoubleSpinBox(GBRefinementThresholds);
         SpinBox_RPE->setObjectName(QString::fromUtf8("SpinBox_RPE"));
@@ -363,12 +416,12 @@ public:
         SpinBox_RPE->setSingleStep(0.1);
         SpinBox_RPE->setValue(2);
 
-        gridLayout3->addWidget(SpinBox_RPE, 0, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_RPE, 0, 1, 1, 1);
 
         RBRRel = new QRadioButton(GBRefinementThresholds);
         RBRRel->setObjectName(QString::fromUtf8("RBRRel"));
 
-        gridLayout3->addWidget(RBRRel, 1, 0, 1, 1);
+        gridLayout4->addWidget(RBRRel, 1, 0, 1, 1);
 
         SpinBox_RRel = new QDoubleSpinBox(GBRefinementThresholds);
         SpinBox_RRel->setObjectName(QString::fromUtf8("SpinBox_RRel"));
@@ -377,12 +430,12 @@ public:
         SpinBox_RRel->setMaximum(100);
         SpinBox_RRel->setSingleStep(0.1);
 
-        gridLayout3->addWidget(SpinBox_RRel, 1, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_RRel, 1, 1, 1, 1);
 
         RBRAbs = new QRadioButton(GBRefinementThresholds);
         RBRAbs->setObjectName(QString::fromUtf8("RBRAbs"));
 
-        gridLayout3->addWidget(RBRAbs, 2, 0, 1, 1);
+        gridLayout4->addWidget(RBRAbs, 2, 0, 1, 1);
 
         SpinBox_RAbs = new QDoubleSpinBox(GBRefinementThresholds);
         SpinBox_RAbs->setObjectName(QString::fromUtf8("SpinBox_RAbs"));
@@ -392,12 +445,12 @@ public:
         SpinBox_RAbs->setMaximum(1e+12);
         SpinBox_RAbs->setSingleStep(0.1);
 
-        gridLayout3->addWidget(SpinBox_RAbs, 2, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_RAbs, 2, 1, 1, 1);
 
         RBRMuSigma = new QRadioButton(GBRefinementThresholds);
         RBRMuSigma->setObjectName(QString::fromUtf8("RBRMuSigma"));
 
-        gridLayout3->addWidget(RBRMuSigma, 3, 0, 1, 1);
+        gridLayout4->addWidget(RBRMuSigma, 3, 0, 1, 1);
 
         SpinBox_RMuSigma = new QDoubleSpinBox(GBRefinementThresholds);
         SpinBox_RMuSigma->setObjectName(QString::fromUtf8("SpinBox_RMuSigma"));
@@ -408,32 +461,32 @@ public:
         SpinBox_RMuSigma->setSingleStep(0.1);
         SpinBox_RMuSigma->setValue(3);
 
-        gridLayout3->addWidget(SpinBox_RMuSigma, 3, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_RMuSigma, 3, 1, 1, 1);
 
         RBRNo = new QRadioButton(GBRefinementThresholds);
         RBRNo->setObjectName(QString::fromUtf8("RBRNo"));
 
-        gridLayout3->addWidget(RBRNo, 4, 0, 1, 1);
+        gridLayout4->addWidget(RBRNo, 4, 0, 1, 1);
 
 
         hboxLayout4->addWidget(GBRefinementThresholds);
 
         GBCoarseningThresholds = new QGroupBox(GBFieldManagement);
         GBCoarseningThresholds->setObjectName(QString::fromUtf8("GBCoarseningThresholds"));
-        gridLayout4 = new QGridLayout(GBCoarseningThresholds);
+        gridLayout5 = new QGridLayout(GBCoarseningThresholds);
 #ifndef Q_OS_MAC
-        gridLayout4->setSpacing(6);
+        gridLayout5->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout4->setContentsMargins(9, 9, 9, 9);
+        gridLayout5->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout4->setObjectName(QString::fromUtf8("gridLayout4"));
+        gridLayout5->setObjectName(QString::fromUtf8("gridLayout5"));
         RBCPE = new QRadioButton(GBCoarseningThresholds);
         RBCPE->setObjectName(QString::fromUtf8("RBCPE"));
         RBCPE->setCheckable(true);
         RBCPE->setChecked(false);
 
-        gridLayout4->addWidget(RBCPE, 0, 0, 1, 1);
+        gridLayout5->addWidget(RBCPE, 0, 0, 1, 1);
 
         SpinBox_CPE = new QDoubleSpinBox(GBCoarseningThresholds);
         SpinBox_CPE->setObjectName(QString::fromUtf8("SpinBox_CPE"));
@@ -442,12 +495,12 @@ public:
         SpinBox_CPE->setMaximum(100);
         SpinBox_CPE->setSingleStep(0.1);
 
-        gridLayout4->addWidget(SpinBox_CPE, 0, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_CPE, 0, 1, 1, 1);
 
         RBCRel = new QRadioButton(GBCoarseningThresholds);
         RBCRel->setObjectName(QString::fromUtf8("RBCRel"));
 
-        gridLayout4->addWidget(RBCRel, 1, 0, 1, 1);
+        gridLayout5->addWidget(RBCRel, 1, 0, 1, 1);
 
         SpinBox_CRel = new QDoubleSpinBox(GBCoarseningThresholds);
         SpinBox_CRel->setObjectName(QString::fromUtf8("SpinBox_CRel"));
@@ -456,12 +509,12 @@ public:
         SpinBox_CRel->setMaximum(100);
         SpinBox_CRel->setSingleStep(0.1);
 
-        gridLayout4->addWidget(SpinBox_CRel, 1, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_CRel, 1, 1, 1, 1);
 
         RBCAbs = new QRadioButton(GBCoarseningThresholds);
         RBCAbs->setObjectName(QString::fromUtf8("RBCAbs"));
 
-        gridLayout4->addWidget(RBCAbs, 2, 0, 1, 1);
+        gridLayout5->addWidget(RBCAbs, 2, 0, 1, 1);
 
         SpinBox_CAbs = new QDoubleSpinBox(GBCoarseningThresholds);
         SpinBox_CAbs->setObjectName(QString::fromUtf8("SpinBox_CAbs"));
@@ -471,12 +524,12 @@ public:
         SpinBox_CAbs->setMaximum(1e+12);
         SpinBox_CAbs->setSingleStep(0.1);
 
-        gridLayout4->addWidget(SpinBox_CAbs, 2, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_CAbs, 2, 1, 1, 1);
 
         RBCMuSigma = new QRadioButton(GBCoarseningThresholds);
         RBCMuSigma->setObjectName(QString::fromUtf8("RBCMuSigma"));
 
-        gridLayout4->addWidget(RBCMuSigma, 3, 0, 1, 1);
+        gridLayout5->addWidget(RBCMuSigma, 3, 0, 1, 1);
 
         SpinBox_CMuSigma = new QDoubleSpinBox(GBCoarseningThresholds);
         SpinBox_CMuSigma->setObjectName(QString::fromUtf8("SpinBox_CMuSigma"));
@@ -487,27 +540,27 @@ public:
         SpinBox_CMuSigma->setSingleStep(0.1);
         SpinBox_CMuSigma->setValue(4);
 
-        gridLayout4->addWidget(SpinBox_CMuSigma, 3, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_CMuSigma, 3, 1, 1, 1);
 
         RBCNo = new QRadioButton(GBCoarseningThresholds);
         RBCNo->setObjectName(QString::fromUtf8("RBCNo"));
         RBCNo->setChecked(true);
 
-        gridLayout4->addWidget(RBCNo, 4, 0, 1, 1);
+        gridLayout5->addWidget(RBCNo, 4, 0, 1, 1);
 
 
         hboxLayout4->addWidget(GBCoarseningThresholds);
 
 
-        gridLayout2->addLayout(hboxLayout4, 2, 0, 1, 1);
+        gridLayout3->addLayout(hboxLayout4, 2, 0, 1, 1);
 
 
-        gridLayout_3->addWidget(GBFieldManagement, 5, 0, 1, 2);
+        gridLayout_3->addWidget(GBFieldManagement, 5, 0, 1, 3);
 
-        GBAreaManagement = new QGroupBox(CreateHypothesis);
+        GBAreaManagement = new QGroupBox(scrollAreaWidgetContents);
         GBAreaManagement->setObjectName(QString::fromUtf8("GBAreaManagement"));
-        sizePolicy.setHeightForWidth(GBAreaManagement->sizePolicy().hasHeightForWidth());
-        GBAreaManagement->setSizePolicy(sizePolicy);
+        sizePolicy1.setHeightForWidth(GBAreaManagement->sizePolicy().hasHeightForWidth());
+        GBAreaManagement->setSizePolicy(sizePolicy1);
         gridLayout_4 = new QGridLayout(GBAreaManagement);
         gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
         TWZone = new QTableWidget(GBAreaManagement);
@@ -574,44 +627,44 @@ public:
 
         gridLayout_3->addWidget(GBAreaManagement, 6, 0, 1, 2);
 
-        GBField = new QGroupBox(CreateHypothesis);
+        GBField = new QGroupBox(scrollAreaWidgetContents);
         GBField->setObjectName(QString::fromUtf8("GBField"));
-        gridLayout5 = new QGridLayout(GBField);
+        gridLayout6 = new QGridLayout(GBField);
 #ifndef Q_OS_MAC
-        gridLayout5->setSpacing(6);
+        gridLayout6->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout5->setContentsMargins(9, 9, 9, 9);
+        gridLayout6->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout5->setObjectName(QString::fromUtf8("gridLayout5"));
-        gridLayout6 = new QGridLayout();
+        gridLayout6->setObjectName(QString::fromUtf8("gridLayout6"));
+        gridLayout7 = new QGridLayout();
 #ifndef Q_OS_MAC
-        gridLayout6->setSpacing(6);
+        gridLayout7->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout6->setContentsMargins(0, 0, 0, 0);
+        gridLayout7->setContentsMargins(0, 0, 0, 0);
 #endif
-        gridLayout6->setObjectName(QString::fromUtf8("gridLayout6"));
+        gridLayout7->setObjectName(QString::fromUtf8("gridLayout7"));
         RBFieldNo = new QRadioButton(GBField);
         RBFieldNo->setObjectName(QString::fromUtf8("RBFieldNo"));
         RBFieldNo->setChecked(true);
 
-        gridLayout6->addWidget(RBFieldNo, 0, 0, 1, 1);
+        gridLayout7->addWidget(RBFieldNo, 0, 0, 1, 1);
 
         RBFieldAll = new QRadioButton(GBField);
         RBFieldAll->setObjectName(QString::fromUtf8("RBFieldAll"));
         RBFieldAll->setChecked(false);
 
-        gridLayout6->addWidget(RBFieldAll, 0, 1, 1, 1);
+        gridLayout7->addWidget(RBFieldAll, 0, 1, 1, 1);
 
         RBFieldChosen = new QRadioButton(GBField);
         RBFieldChosen->setObjectName(QString::fromUtf8("RBFieldChosen"));
         RBFieldChosen->setChecked(false);
 
-        gridLayout6->addWidget(RBFieldChosen, 0, 2, 1, 1);
+        gridLayout7->addWidget(RBFieldChosen, 0, 2, 1, 1);
 
 
-        gridLayout5->addLayout(gridLayout6, 0, 0, 1, 1);
+        gridLayout6->addLayout(gridLayout7, 0, 0, 1, 1);
 
         TWField = new QTableWidget(GBField);
         if (TWField->columnCount() < 2)
@@ -622,29 +675,32 @@ public:
         TWField->setHorizontalHeaderItem(1, __qtablewidgetitem6);
         TWField->setObjectName(QString::fromUtf8("TWField"));
 
-        gridLayout5->addWidget(TWField, 1, 0, 1, 1);
+        gridLayout6->addWidget(TWField, 1, 0, 1, 1);
 
 
-        gridLayout_3->addWidget(GBField, 7, 0, 1, 2);
+        gridLayout_3->addWidget(GBField, 7, 0, 1, 1);
 
-        CBGroupe = new QCheckBox(CreateHypothesis);
-        CBGroupe->setObjectName(QString::fromUtf8("CBGroupe"));
+        horizontalSpacer_5 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout_3->addWidget(CBGroupe, 2, 0, 1, 2);
+        gridLayout_3->addItem(horizontalSpacer_5, 7, 2, 1, 1);
 
-        CBAdvanced = new QCheckBox(CreateHypothesis);
+        CBAdvanced = new QCheckBox(scrollAreaWidgetContents);
         CBAdvanced->setObjectName(QString::fromUtf8("CBAdvanced"));
 
-        gridLayout_3->addWidget(CBAdvanced, 8, 0, 1, 2);
+        gridLayout_3->addWidget(CBAdvanced, 8, 0, 1, 1);
+
+        horizontalSpacer_4 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer_4, 8, 2, 1, 1);
 
-        GBAdvancedOptions = new QGroupBox(CreateHypothesis);
+        GBAdvancedOptions = new QGroupBox(scrollAreaWidgetContents);
         GBAdvancedOptions->setObjectName(QString::fromUtf8("GBAdvancedOptions"));
         gridLayout_1 = new QGridLayout(GBAdvancedOptions);
         gridLayout_1->setObjectName(QString::fromUtf8("gridLayout_1"));
         TLMinimalDiameter = new QLabel(GBAdvancedOptions);
         TLMinimalDiameter->setObjectName(QString::fromUtf8("TLMinimalDiameter"));
-        sizePolicy.setHeightForWidth(TLMinimalDiameter->sizePolicy().hasHeightForWidth());
-        TLMinimalDiameter->setSizePolicy(sizePolicy);
+        sizePolicy1.setHeightForWidth(TLMinimalDiameter->sizePolicy().hasHeightForWidth());
+        TLMinimalDiameter->setSizePolicy(sizePolicy1);
         TLMinimalDiameter->setWordWrap(false);
 
         gridLayout_1->addWidget(TLMinimalDiameter, 0, 0, 1, 1);
@@ -657,17 +713,17 @@ public:
 
         TLMaximalLevel = new QLabel(GBAdvancedOptions);
         TLMaximalLevel->setObjectName(QString::fromUtf8("TLMaximalLevel"));
-        sizePolicy.setHeightForWidth(TLMaximalLevel->sizePolicy().hasHeightForWidth());
-        TLMaximalLevel->setSizePolicy(sizePolicy);
+        sizePolicy1.setHeightForWidth(TLMaximalLevel->sizePolicy().hasHeightForWidth());
+        TLMaximalLevel->setSizePolicy(sizePolicy1);
         TLMaximalLevel->setWordWrap(false);
 
         gridLayout_1->addWidget(TLMaximalLevel, 1, 0, 1, 1);
 
-        spinBoxNivMax = new QSpinBox(GBAdvancedOptions);
-        spinBoxNivMax->setObjectName(QString::fromUtf8("spinBoxNivMax"));
-        spinBoxNivMax->setValue(99);
+        SpinBoxNivMax = new QSpinBox(GBAdvancedOptions);
+        SpinBoxNivMax->setObjectName(QString::fromUtf8("SpinBoxNivMax"));
+        SpinBoxNivMax->setValue(99);
 
-        gridLayout_1->addWidget(spinBoxNivMax, 1, 1, 1, 1);
+        gridLayout_1->addWidget(SpinBoxNivMax, 1, 1, 1, 1);
 
         GBAdapInit = new QGroupBox(GBAdvancedOptions);
         GBAdapInit->setObjectName(QString::fromUtf8("GBAdapInit"));
@@ -698,71 +754,65 @@ public:
         gridLayout_1->addWidget(CBLevelOutput, 3, 0, 1, 1);
 
 
-        gridLayout_3->addWidget(GBAdvancedOptions, 9, 0, 1, 2);
+        gridLayout_3->addWidget(GBAdvancedOptions, 9, 0, 1, 1);
 
-        GBButtons = new QGroupBox(CreateHypothesis);
+        horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_3->addItem(horizontalSpacer_3, 9, 2, 1, 1);
+
+        GBButtons = new QGroupBox(scrollAreaWidgetContents);
         GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
-        gridLayout7 = new QGridLayout(GBButtons);
+        gridLayout8 = new QGridLayout(GBButtons);
 #ifndef Q_OS_MAC
-        gridLayout7->setSpacing(6);
+        gridLayout8->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout7->setContentsMargins(9, 9, 9, 9);
+        gridLayout8->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout7->setObjectName(QString::fromUtf8("gridLayout7"));
+        gridLayout8->setObjectName(QString::fromUtf8("gridLayout8"));
         buttonOk = new QPushButton(GBButtons);
         buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
 
-        gridLayout7->addWidget(buttonOk, 0, 0, 1, 1);
+        gridLayout8->addWidget(buttonOk, 0, 0, 1, 1);
 
         buttonApply = new QPushButton(GBButtons);
         buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
 
-        gridLayout7->addWidget(buttonApply, 0, 1, 1, 1);
+        gridLayout8->addWidget(buttonApply, 0, 1, 1, 1);
 
         buttonCancel = new QPushButton(GBButtons);
         buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
 
-        gridLayout7->addWidget(buttonCancel, 0, 2, 1, 1);
+        gridLayout8->addWidget(buttonCancel, 0, 2, 1, 1);
 
         buttonHelp = new QPushButton(GBButtons);
         buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
 
-        gridLayout7->addWidget(buttonHelp, 0, 3, 1, 1);
+        gridLayout8->addWidget(buttonHelp, 0, 3, 1, 1);
 
 
         gridLayout_3->addWidget(GBButtons, 10, 0, 1, 2);
 
-        Name = new QLabel(CreateHypothesis);
-        Name->setObjectName(QString::fromUtf8("Name"));
+        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout_3->addWidget(Name, 0, 0, 1, 1);
-
-        LEName->raise();
-        GBTypeAdaptation->raise();
-        GBUniform->raise();
-        GBFieldFile->raise();
-        GBFieldManagement->raise();
-        GBAreaManagement->raise();
-        GBField->raise();
-        CBGroupe->raise();
-        CBAdvanced->raise();
-        GBAdvancedOptions->raise();
-        GBButtons->raise();
-        Name->raise();
+        gridLayout_3->addItem(horizontalSpacer_2, 10, 2, 1, 1);
+
+        CreateHypothesis->setWidget(scrollAreaWidgetContents);
 
         retranslateUi(CreateHypothesis);
 
         QMetaObject::connectSlotsByName(CreateHypothesis);
     } // setupUi
 
-    void retranslateUi(QDialog *CreateHypothesis)
+    void retranslateUi(QScrollArea *CreateHypothesis)
     {
         CreateHypothesis->setWindowTitle(QApplication::translate("CreateHypothesis", "Create an hypothesis", 0, QApplication::UnicodeUTF8));
+        Name->setText(QApplication::translate("CreateHypothesis", "Name", 0, QApplication::UnicodeUTF8));
         GBTypeAdaptation->setTitle(QApplication::translate("CreateHypothesis", "Type of adaptation", 0, QApplication::UnicodeUTF8));
         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));
@@ -811,7 +861,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));
@@ -826,7 +875,6 @@ public:
         buttonApply->setText(QApplication::translate("CreateHypothesis", "Apply", 0, QApplication::UnicodeUTF8));
         buttonCancel->setText(QApplication::translate("CreateHypothesis", "Cancel", 0, QApplication::UnicodeUTF8));
         buttonHelp->setText(QApplication::translate("CreateHypothesis", "Help", 0, QApplication::UnicodeUTF8));
-        Name->setText(QApplication::translate("CreateHypothesis", "Name", 0, QApplication::UnicodeUTF8));
     } // retranslateUi
 
 };
index 5163e918992b65e293730968ec75a7797e494540..98f0c334227db2d0dadb1a4aee27d4d78bbebed2 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>CreateHypothesis</class>
- <widget class="QDialog" name="CreateHypothesis">
+ <widget class="QScrollArea" name="CreateHypothesis">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>794</width>
-    <height>1481</height>
+    <width>848</width>
+    <height>1550</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>800</width>
+    <height>600</height>
+   </size>
+  </property>
+  <property name="sizeIncrement">
+   <size>
+    <width>1</width>
+    <height>1</height>
+   </size>
+  </property>
+  <property name="baseSize">
+   <size>
+    <width>800</width>
+    <height>1200</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Create an hypothesis</string>
   </property>
-  <property name="autoFillBackground">
+  <property name="widgetResizable">
    <bool>true</bool>
   </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout_3">
-   <item row="0" column="1">
-    <widget class="QLineEdit" name="LEName">
-     <property name="minimumSize">
-      <size>
-       <width>382</width>
-       <height>31</height>
-      </size>
-     </property>
-     <property name="maxLength">
-      <number>32</number>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBTypeAdaptation">
-     <property name="title">
-      <string>Type of adaptation</string>
-     </property>
-     <layout class="QHBoxLayout">
-      <property name="spacing">
-       <number>6</number>
+  <widget class="QWidget" name="scrollAreaWidgetContents">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>844</width>
+     <height>1546</height>
+    </rect>
+   </property>
+   <property name="sizeGripEnabled" stdset="0">
+    <bool>true</bool>
+   </property>
+   <layout class="QGridLayout" name="gridLayout_3">
+    <item row="0" column="0">
+     <widget class="QWidget" name="WName" native="true">
+      <layout class="QGridLayout" name="gridLayout">
+       <item row="0" column="0">
+        <widget class="QLabel" name="Name">
+         <property name="text">
+          <string>Name</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QLineEdit" name="LEName">
+         <property name="minimumSize">
+          <size>
+           <width>282</width>
+           <height>31</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="0" column="1">
+     <spacer name="horizontalSpacer_9">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
       </property>
-      <property name="margin">
-       <number>9</number>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>224</width>
+        <height>20</height>
+       </size>
       </property>
-      <item>
-       <widget class="QRadioButton" name="RBUniforme">
-        <property name="text">
-         <string>Uniform</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="RBChamp">
-        <property name="text">
-         <string>Driven by a field</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="RBZone">
-        <property name="text">
-         <string>With geometrical zones</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="3" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBUniform">
-     <property name="title">
-      <string>Uniform adaptation</string>
-     </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
+     </spacer>
+    </item>
+    <item row="1" column="0" colspan="2">
+     <widget class="QGroupBox" name="GBTypeAdaptation">
+      <property name="title">
+       <string>Type of adaptation</string>
       </property>
-      <property name="spacing">
-       <number>6</number>
+      <layout class="QHBoxLayout">
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <item>
+        <widget class="QRadioButton" name="RBUniforme">
+         <property name="text">
+          <string>Uniform</string>
+         </property>
+         <property name="checkable">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="RBChamp">
+         <property name="text">
+          <string>Driven by a field</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="RBZone">
+         <property name="text">
+          <string>With geometrical zones</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="1" column="2">
+     <spacer name="horizontalSpacer_6">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
       </property>
-      <item row="0" column="1">
-       <widget class="QRadioButton" name="RBUniDera">
-        <property name="text">
-         <string>Coarsening</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0">
-       <widget class="QRadioButton" name="RBUniRaff">
-        <property name="text">
-         <string>Refinement</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="4" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBFieldFile">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>20</height>
+       </size>
       </property>
-      <property name="spacing">
-       <number>6</number>
+     </spacer>
+    </item>
+    <item row="2" column="0">
+     <widget class="QCheckBox" name="CBGroupe">
+      <property name="text">
+       <string>Filtering with groups</string>
       </property>
-      <item row="0" column="0">
-       <widget class="QLabel" name="FieldFile">
-        <property name="text">
-         <string>File of the fields</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLineEdit" name="LEFieldFile">
-        <property name="minimumSize">
-         <size>
-          <width>282</width>
-          <height>31</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="5" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBFieldManagement">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Governing field for the adaptation</string>
-     </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
+     </widget>
+    </item>
+    <item row="2" column="2">
+     <spacer name="horizontalSpacer_8">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
       </property>
-      <property name="spacing">
-       <number>6</number>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
       </property>
-      <item row="0" column="0">
-       <layout class="QHBoxLayout">
-        <property name="spacing">
-         <number>6</number>
-        </property>
-        <property name="margin">
-         <number>0</number>
-        </property>
-        <item>
-         <widget class="QLabel" name="FieldName">
-          <property name="text">
-           <string>Field name</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QComboBox" name="CBFieldName">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="editable">
-           <bool>false</bool>
-          </property>
-          <property name="sizeAdjustPolicy">
-           <enum>QComboBox::AdjustToContents</enum>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer>
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>48</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item row="1" column="0">
-       <layout class="QHBoxLayout">
-        <property name="spacing">
-         <number>6</number>
-        </property>
-        <property name="margin">
-         <number>0</number>
-        </property>
-        <item>
-         <widget class="QTableWidget" name="TWCMP">
-          <property name="editTriggers">
-           <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
-          </property>
-          <property name="showGrid">
-           <bool>true</bool>
-          </property>
-          <property name="rowCount">
-           <number>0</number>
-          </property>
-          <property name="columnCount">
-           <number>2</number>
-          </property>
-          <column>
+     </spacer>
+    </item>
+    <item row="3" column="0">
+     <widget class="QGroupBox" name="GBUniform">
+      <property name="title">
+       <string>Uniform adaptation</string>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="1">
+        <widget class="QRadioButton" name="RBUniDera">
+         <property name="text">
+          <string>Coarsening</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="0">
+        <widget class="QRadioButton" name="RBUniRaff">
+         <property name="text">
+          <string>Refinement</string>
+         </property>
+         <property name="checked">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="3" column="2">
+     <spacer name="horizontalSpacer_7">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="4" column="0" colspan="2">
+     <widget class="QGroupBox" name="GBFieldFile">
+      <property name="title">
+       <string/>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="0">
+        <widget class="QLabel" name="FieldFile">
+         <property name="text">
+          <string>File of the fields</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QLineEdit" name="LEFieldFile">
+         <property name="minimumSize">
+          <size>
+           <width>282</width>
+           <height>31</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="5" column="0" colspan="3">
+     <widget class="QGroupBox" name="GBFieldManagement">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="title">
+       <string>Governing field for the adaptation</string>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="0">
+        <layout class="QHBoxLayout">
+         <property name="spacing">
+          <number>6</number>
+         </property>
+         <property name="margin">
+          <number>0</number>
+         </property>
+         <item>
+          <widget class="QLabel" name="FieldName">
            <property name="text">
-            <string>Selection</string>
+            <string>Field name</string>
            </property>
-          </column>
-          <column>
-           <property name="text">
-            <string>Component</string>
+          </widget>
+         </item>
+         <item>
+          <widget class="QComboBox" name="CBFieldName">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
            </property>
-          </column>
-         </widget>
-        </item>
-        <item>
-         <spacer>
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>60</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <layout class="QVBoxLayout">
-          <property name="spacing">
-           <number>6</number>
-          </property>
-          <property name="margin">
-           <number>0</number>
-          </property>
-          <item>
-           <layout class="QHBoxLayout">
-            <property name="spacing">
-             <number>6</number>
+           <property name="editable">
+            <bool>false</bool>
+           </property>
+           <property name="sizeAdjustPolicy">
+            <enum>QComboBox::AdjustToContents</enum>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer>
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>48</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item row="1" column="0">
+        <layout class="QHBoxLayout">
+         <property name="spacing">
+          <number>6</number>
+         </property>
+         <property name="margin">
+          <number>0</number>
+         </property>
+         <item>
+          <widget class="QTableWidget" name="TWCMP">
+           <property name="editTriggers">
+            <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
+           </property>
+           <property name="showGrid">
+            <bool>true</bool>
+           </property>
+           <property name="rowCount">
+            <number>0</number>
+           </property>
+           <property name="columnCount">
+            <number>2</number>
+           </property>
+           <column>
+            <property name="text">
+             <string>Selection</string>
+            </property>
+           </column>
+           <column>
+            <property name="text">
+             <string>Component</string>
             </property>
+           </column>
+          </widget>
+         </item>
+         <item>
+          <spacer>
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>60</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <layout class="QVBoxLayout">
+           <property name="spacing">
+            <number>6</number>
+           </property>
+           <property name="margin">
+            <number>0</number>
+           </property>
+           <item>
+            <layout class="QHBoxLayout">
+             <property name="spacing">
+              <number>6</number>
+             </property>
+             <property name="margin">
+              <number>0</number>
+             </property>
+             <item>
+              <widget class="QRadioButton" name="RBL2">
+               <property name="text">
+                <string>L2 norm</string>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QRadioButton" name="RBInf">
+               <property name="text">
+                <string>Infinite norm</string>
+               </property>
+               <property name="checked">
+                <bool>false</bool>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="CBJump">
+             <property name="text">
+              <string>Jump between elements</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </item>
+       <item row="2" column="0">
+        <layout class="QHBoxLayout">
+         <property name="spacing">
+          <number>6</number>
+         </property>
+         <property name="margin">
+          <number>0</number>
+         </property>
+         <item>
+          <widget class="QGroupBox" name="GBRefinementThresholds">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="title">
+            <string>Refinement threshold</string>
+           </property>
+           <layout class="QGridLayout">
             <property name="margin">
-             <number>0</number>
+             <number>9</number>
+            </property>
+            <property name="spacing">
+             <number>6</number>
             </property>
-            <item>
-             <widget class="QRadioButton" name="RBL2">
+            <item row="0" column="0">
+             <widget class="QRadioButton" name="RBRPE">
               <property name="text">
-               <string>L2 norm</string>
+               <string>Percentage of meshes</string>
+              </property>
+              <property name="checkable">
+               <bool>true</bool>
               </property>
               <property name="checked">
                <bool>true</bool>
               </property>
              </widget>
             </item>
-            <item>
-             <widget class="QRadioButton" name="RBInf">
+            <item row="0" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_RPE">
+              <property name="suffix">
+               <string> %</string>
+              </property>
+              <property name="decimals">
+               <number>3</number>
+              </property>
+              <property name="maximum">
+               <double>100.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="value">
+               <double>2.000000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0">
+             <widget class="QRadioButton" name="RBRRel">
               <property name="text">
-               <string>Infinite norm</string>
+               <string>Relative</string>
               </property>
-              <property name="checked">
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_RRel">
+              <property name="enabled">
                <bool>false</bool>
               </property>
+              <property name="suffix">
+               <string> %</string>
+              </property>
+              <property name="decimals">
+               <number>3</number>
+              </property>
+              <property name="maximum">
+               <double>100.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="0">
+             <widget class="QRadioButton" name="RBRAbs">
+              <property name="text">
+               <string>Absolute</string>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_RAbs">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="decimals">
+               <number>8</number>
+              </property>
+              <property name="minimum">
+               <double>-1000000000000.000000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>1000000000000.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="0">
+             <widget class="QRadioButton" name="RBRMuSigma">
+              <property name="text">
+               <string>Mean + n*(std deviation)</string>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_RMuSigma">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="decimals">
+               <number>8</number>
+              </property>
+              <property name="minimum">
+               <double>-1000000000000.000000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>1000000000000.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="value">
+               <double>3.000000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="4" column="0">
+             <widget class="QRadioButton" name="RBRNo">
+              <property name="text">
+               <string>No refinement</string>
+              </property>
              </widget>
             </item>
            </layout>
-          </item>
-          <item>
-           <widget class="QCheckBox" name="CBJump">
-            <property name="text">
-             <string>Jump between elements</string>
+          </widget>
+         </item>
+         <item>
+          <widget class="QGroupBox" name="GBCoarseningThresholds">
+           <property name="title">
+            <string>Coarsening threshold</string>
+           </property>
+           <layout class="QGridLayout">
+            <property name="margin">
+             <number>9</number>
             </property>
-           </widget>
-          </item>
-         </layout>
-        </item>
-       </layout>
-      </item>
-      <item row="2" column="0">
-       <layout class="QHBoxLayout">
-        <property name="spacing">
-         <number>6</number>
-        </property>
-        <property name="margin">
-         <number>0</number>
-        </property>
-        <item>
-         <widget class="QGroupBox" name="GBRefinementThresholds">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
+            <property name="spacing">
+             <number>6</number>
+            </property>
+            <item row="0" column="0">
+             <widget class="QRadioButton" name="RBCPE">
+              <property name="text">
+               <string>Percentage of meshes</string>
+              </property>
+              <property name="checkable">
+               <bool>true</bool>
+              </property>
+              <property name="checked">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_CPE">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="suffix">
+               <string> %</string>
+              </property>
+              <property name="decimals">
+               <number>3</number>
+              </property>
+              <property name="maximum">
+               <double>100.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0">
+             <widget class="QRadioButton" name="RBCRel">
+              <property name="text">
+               <string>Relative</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_CRel">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="suffix">
+               <string> %</string>
+              </property>
+              <property name="decimals">
+               <number>3</number>
+              </property>
+              <property name="maximum">
+               <double>100.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="0">
+             <widget class="QRadioButton" name="RBCAbs">
+              <property name="text">
+               <string>Absolute</string>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_CAbs">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="decimals">
+               <number>8</number>
+              </property>
+              <property name="minimum">
+               <double>-1000000000000.000000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>1000000000000.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="0">
+             <widget class="QRadioButton" name="RBCMuSigma">
+              <property name="text">
+               <string>Mean - n*(std deviation)</string>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="1">
+             <widget class="QDoubleSpinBox" name="SpinBox_CMuSigma">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="decimals">
+               <number>8</number>
+              </property>
+              <property name="minimum">
+               <double>-1000000000000.000000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>1000000000000.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="value">
+               <double>4.000000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="4" column="0">
+             <widget class="QRadioButton" name="RBCNo">
+              <property name="text">
+               <string>No coarsening</string>
+              </property>
+              <property name="checked">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="6" column="0" colspan="2">
+     <widget class="QGroupBox" name="GBAreaManagement">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="title">
+       <string>Zone management</string>
+      </property>
+      <layout class="QGridLayout" name="gridLayout_4">
+       <item row="0" column="0">
+        <widget class="QTableWidget" name="TWZone">
+         <property name="minimumSize">
+          <size>
+           <width>400</width>
+           <height>0</height>
+          </size>
+         </property>
+         <property name="editTriggers">
+          <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
+         </property>
+         <property name="showGrid">
+          <bool>true</bool>
+         </property>
+         <property name="rowCount">
+          <number>0</number>
+         </property>
+         <property name="columnCount">
+          <number>3</number>
+         </property>
+         <column>
+          <property name="text">
+           <string>Refinement</string>
           </property>
-          <property name="title">
-           <string>Refinement threshold</string>
+         </column>
+         <column>
+          <property name="text">
+           <string>Coarsening</string>
           </property>
-          <layout class="QGridLayout">
-           <property name="margin">
-            <number>9</number>
-           </property>
+         </column>
+         <column>
+          <property name="text">
+           <string>Zone name</string>
+          </property>
+         </column>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <spacer name="horizontalSpacer">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="0" column="2">
+        <layout class="QVBoxLayout">
+         <property name="spacing">
+          <number>6</number>
+         </property>
+         <property name="margin">
+          <number>0</number>
+         </property>
+         <item>
+          <layout class="QVBoxLayout">
            <property name="spacing">
             <number>6</number>
            </property>
-           <item row="0" column="0">
-            <widget class="QRadioButton" name="RBRPE">
-             <property name="text">
-              <string>Percentage of meshes</string>
-             </property>
-             <property name="checkable">
-              <bool>true</bool>
-             </property>
-             <property name="checked">
-              <bool>true</bool>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_RPE">
-             <property name="suffix">
-              <string> %</string>
-             </property>
-             <property name="decimals">
-              <number>3</number>
-             </property>
-             <property name="maximum">
-              <double>100.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
-             </property>
-             <property name="value">
-              <double>2.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QRadioButton" name="RBRRel">
-             <property name="text">
-              <string>Relative</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_RRel">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="suffix">
-              <string> %</string>
-             </property>
-             <property name="decimals">
-              <number>3</number>
-             </property>
-             <property name="maximum">
-              <double>100.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="0">
-            <widget class="QRadioButton" name="RBRAbs">
-             <property name="text">
-              <string>Absolute</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_RAbs">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="decimals">
-              <number>8</number>
-             </property>
-             <property name="minimum">
-              <double>-1000000000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000000000.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="0">
-            <widget class="QRadioButton" name="RBRMuSigma">
-             <property name="text">
-              <string>Mean + n*(std deviation)</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_RMuSigma">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="decimals">
-              <number>8</number>
-             </property>
-             <property name="minimum">
-              <double>-1000000000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000000000.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
-             </property>
-             <property name="value">
-              <double>3.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="4" column="0">
-            <widget class="QRadioButton" name="RBRNo">
-             <property name="text">
-              <string>No refinement</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item>
-         <widget class="QGroupBox" name="GBCoarseningThresholds">
-          <property name="title">
-           <string>Coarsening threshold</string>
-          </property>
-          <layout class="QGridLayout">
            <property name="margin">
-            <number>9</number>
-           </property>
-           <property name="spacing">
-            <number>6</number>
+            <number>0</number>
            </property>
-           <item row="0" column="0">
-            <widget class="QRadioButton" name="RBCPE">
+           <item>
+            <widget class="QPushButton" name="PBZoneNew">
              <property name="text">
-              <string>Percentage of meshes</string>
-             </property>
-             <property name="checkable">
-              <bool>true</bool>
-             </property>
-             <property name="checked">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_CPE">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="suffix">
-              <string> %</string>
-             </property>
-             <property name="decimals">
-              <number>3</number>
-             </property>
-             <property name="maximum">
-              <double>100.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QRadioButton" name="RBCRel">
-             <property name="text">
-              <string>Relative</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_CRel">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="suffix">
-              <string> %</string>
-             </property>
-             <property name="decimals">
-              <number>3</number>
-             </property>
-             <property name="maximum">
-              <double>100.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="0">
-            <widget class="QRadioButton" name="RBCAbs">
-             <property name="text">
-              <string>Absolute</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_CAbs">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="decimals">
-              <number>8</number>
-             </property>
-             <property name="minimum">
-              <double>-1000000000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000000000.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
+              <string>New</string>
              </property>
             </widget>
            </item>
-           <item row="3" column="0">
-            <widget class="QRadioButton" name="RBCMuSigma">
+           <item>
+            <widget class="QPushButton" name="PBZoneEdit">
              <property name="text">
-              <string>Mean - n*(std deviation)</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="1">
-            <widget class="QDoubleSpinBox" name="SpinBox_CMuSigma">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="decimals">
-              <number>8</number>
-             </property>
-             <property name="minimum">
-              <double>-1000000000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000000000.000000000000000</double>
-             </property>
-             <property name="singleStep">
-              <double>0.100000000000000</double>
-             </property>
-             <property name="value">
-              <double>4.000000000000000</double>
+              <string>Edit</string>
              </property>
             </widget>
            </item>
-           <item row="4" column="0">
-            <widget class="QRadioButton" name="RBCNo">
+           <item>
+            <widget class="QPushButton" name="PBZoneDelete">
              <property name="text">
-              <string>No coarsening</string>
-             </property>
-             <property name="checked">
-              <bool>true</bool>
+              <string/>
              </property>
             </widget>
            </item>
           </layout>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="6" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBAreaManagement">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Zone management</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_4">
-      <item row="0" column="0">
-       <widget class="QTableWidget" name="TWZone">
-        <property name="minimumSize">
-         <size>
-          <width>400</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="editTriggers">
-         <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
-        </property>
-        <property name="showGrid">
-         <bool>true</bool>
-        </property>
-        <property name="rowCount">
-         <number>0</number>
-        </property>
-        <property name="columnCount">
-         <number>3</number>
-        </property>
-        <column>
-         <property name="text">
-          <string>Refinement</string>
+         </item>
+         <item>
+          <spacer>
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>20</width>
+             <height>48</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="7" column="0">
+     <widget class="QGroupBox" name="GBField">
+      <property name="title">
+       <string>Field Interpolation</string>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="0">
+        <layout class="QGridLayout">
+         <property name="margin">
+          <number>0</number>
          </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Coarsening</string>
+         <property name="spacing">
+          <number>6</number>
          </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Zone name</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="0" column="2">
-       <layout class="QVBoxLayout">
-        <property name="spacing">
-         <number>6</number>
-        </property>
-        <property name="margin">
-         <number>0</number>
-        </property>
-        <item>
-         <layout class="QVBoxLayout">
-          <property name="spacing">
-           <number>6</number>
+         <item row="0" column="0">
+          <widget class="QRadioButton" name="RBFieldNo">
+           <property name="text">
+            <string>None</string>
+           </property>
+           <property name="checked">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="QRadioButton" name="RBFieldAll">
+           <property name="text">
+            <string>All</string>
+           </property>
+           <property name="checked">
+            <bool>false</bool>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="2">
+          <widget class="QRadioButton" name="RBFieldChosen">
+           <property name="text">
+            <string>Chosen</string>
+           </property>
+           <property name="checked">
+            <bool>false</bool>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item row="1" column="0">
+        <widget class="QTableWidget" name="TWField">
+         <column>
+          <property name="text">
+           <string>Selection</string>
           </property>
-          <property name="margin">
-           <number>0</number>
+         </column>
+         <column>
+          <property name="text">
+           <string>Field Name</string>
           </property>
-          <item>
-           <widget class="QPushButton" name="PBZoneNew">
+         </column>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="7" column="2">
+     <spacer name="horizontalSpacer_5">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="8" column="0">
+     <widget class="QCheckBox" name="CBAdvanced">
+      <property name="text">
+       <string>Advanced options</string>
+      </property>
+     </widget>
+    </item>
+    <item row="8" column="2">
+     <spacer name="horizontalSpacer_4">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="9" column="0">
+     <widget class="QGroupBox" name="GBAdvancedOptions">
+      <property name="title">
+       <string>Advanced options</string>
+      </property>
+      <layout class="QGridLayout" name="gridLayout_1">
+       <item row="0" column="0">
+        <widget class="QLabel" name="TLMinimalDiameter">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Minimal diameter</string>
+         </property>
+         <property name="wordWrap">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QDoubleSpinBox" name="doubleSpinBoxDiamMin">
+         <property name="decimals">
+          <number>7</number>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="TLMaximalLevel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Maximal level</string>
+         </property>
+         <property name="wordWrap">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QSpinBox" name="SpinBoxNivMax">
+         <property name="value">
+          <number>99</number>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0" colspan="2">
+        <widget class="QGroupBox" name="GBAdapInit">
+         <property name="title">
+          <string>Initialization of adaptation</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_2">
+          <item row="0" column="0">
+           <widget class="QRadioButton" name="RBAIN">
             <property name="text">
-             <string>New</string>
+             <string>Nothing</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QPushButton" name="PBZoneEdit">
+          <item row="0" column="1">
+           <widget class="QRadioButton" name="RBAIR">
             <property name="text">
-             <string>Edit</string>
+             <string>Refinement</string>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QPushButton" name="PBZoneDelete">
+          <item row="0" column="2">
+           <widget class="QRadioButton" name="RBAID">
             <property name="text">
-             <string/>
+             <string>Coarsening</string>
             </property>
            </widget>
           </item>
          </layout>
-        </item>
-        <item>
-         <spacer>
-          <property name="orientation">
-           <enum>Qt::Vertical</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>20</width>
-            <height>48</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="7" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBField">
-     <property name="title">
-      <string>Field Interpolation</string>
-     </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
+        </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>
+    <item row="9" column="2">
+     <spacer name="horizontalSpacer_3">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
       </property>
-      <property name="spacing">
-       <number>6</number>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
       </property>
-      <item row="0" column="0">
-       <layout class="QGridLayout">
-        <property name="margin">
-         <number>0</number>
-        </property>
-        <property name="spacing">
-         <number>6</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QRadioButton" name="RBFieldNo">
-          <property name="text">
-           <string>None</string>
-          </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QRadioButton" name="RBFieldAll">
-          <property name="text">
-           <string>All</string>
-          </property>
-          <property name="checked">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="2">
-         <widget class="QRadioButton" name="RBFieldChosen">
-          <property name="text">
-           <string>Chosen</string>
-          </property>
-          <property name="checked">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item row="1" column="0">
-       <widget class="QTableWidget" name="TWField">
-        <column>
+     </spacer>
+    </item>
+    <item row="10" column="0" colspan="2">
+     <widget class="QGroupBox" name="GBButtons">
+      <property name="title">
+       <string/>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="0">
+        <widget class="QPushButton" name="buttonOk">
          <property name="text">
-          <string>Selection</string>
+          <string>OK</string>
          </property>
-        </column>
-        <column>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QPushButton" name="buttonApply">
          <property name="text">
-          <string>Field Name</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-     </layout>
-    </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="8" column="0" colspan="2">
-    <widget class="QCheckBox" name="CBAdvanced">
-     <property name="text">
-      <string>Advanced options</string>
-     </property>
-    </widget>
-   </item>
-   <item row="9" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBAdvancedOptions">
-     <property name="title">
-      <string>Advanced options</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_1">
-      <item row="0" column="0">
-       <widget class="QLabel" name="TLMinimalDiameter">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string>Minimal diameter</string>
-        </property>
-        <property name="wordWrap">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QDoubleSpinBox" name="doubleSpinBoxDiamMin">
-        <property name="decimals">
-         <number>7</number>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="TLMaximalLevel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string>Maximal level</string>
-        </property>
-        <property name="wordWrap">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QSpinBox" name="spinBoxNivMax">
-        <property name="value">
-         <number>99</number>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0" colspan="2">
-       <widget class="QGroupBox" name="GBAdapInit">
-        <property name="title">
-         <string>Initialization of adaptation</string>
-        </property>
-        <layout class="QGridLayout" name="gridLayout_2">
-         <item row="0" column="0">
-          <widget class="QRadioButton" name="RBAIN">
-           <property name="text">
-            <string>Nothing</string>
-           </property>
-           <property name="checked">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QRadioButton" name="RBAIR">
-           <property name="text">
-            <string>Refinement</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="2">
-          <widget class="QRadioButton" name="RBAID">
-           <property name="text">
-            <string>Coarsening</string>
-           </property>
-          </widget>
-         </item>
-        </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>
-   <item row="10" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBButtons">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
+          <string>Apply</string>
+         </property>
+        </widget>
+       </item>
+       <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">
+          <string>Help</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="10" column="2">
+     <spacer name="horizontalSpacer_2">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
       </property>
-      <property name="spacing">
-       <number>6</number>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
       </property>
-      <item row="0" column="0">
-       <widget class="QPushButton" name="buttonOk">
-        <property name="text">
-         <string>OK</string>
-        </property>
-       </widget>
-      </item>
-      <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">
-         <string>Cancel</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="3">
-       <widget class="QPushButton" name="buttonHelp">
-        <property name="text">
-         <string>Help</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="0" column="0">
-    <widget class="QLabel" name="Name">
-     <property name="text">
-      <string>Name</string>
-     </property>
-    </widget>
-   </item>
-  </layout>
-  <zorder>LEName</zorder>
-  <zorder>GBTypeAdaptation</zorder>
-  <zorder>GBUniform</zorder>
-  <zorder>GBFieldFile</zorder>
-  <zorder>GBFieldManagement</zorder>
-  <zorder>GBAreaManagement</zorder>
-  <zorder>GBField</zorder>
-  <zorder>CBGroupe</zorder>
-  <zorder>CBAdvanced</zorder>
-  <zorder>GBAdvancedOptions</zorder>
-  <zorder>GBButtons</zorder>
-  <zorder></zorder>
-  <zorder>Name</zorder>
+     </spacer>
+    </item>
+   </layout>
+  </widget>
  </widget>
  <resources/>
  <connections/>
index 6674ed944bcbec6321f7d545df5692d1871e6297..38a7e6ee2c61b18fe64be5d7169bc6356b968035 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateIteration.ui'
 **
-** Created: Tue Sep 17 14:09:30 2013
+** Created: Wed Jan 15 08:42:25 2014
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -22,6 +22,7 @@
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
+#include <QtGui/QScrollArea>
 #include <QtGui/QSpacerItem>
 #include <QtGui/QSpinBox>
 #include <QtGui/QWidget>
@@ -31,7 +32,24 @@ QT_BEGIN_NAMESPACE
 class Ui_CreateIteration
 {
 public:
+    QWidget *scrollAreaWidgetContents;
     QGridLayout *gridLayout;
+    QLabel *Iteration_Name;
+    QSpacerItem *horizontalSpacer_6;
+    QLineEdit *LEName;
+    QSpacerItem *horizontalSpacer_3;
+    QLabel *Iter_Parent;
+    QPushButton *PBIterParent;
+    QLineEdit *LEIterationParentName;
+    QLabel *Mesh_n;
+    QSpacerItem *horizontalSpacer_7;
+    QLineEdit *LEMeshName_n;
+    QSpacerItem *horizontalSpacer_4;
+    QLabel *Mesh_np1;
+    QSpacerItem *horizontalSpacer_8;
+    QLineEdit *LEMeshName_np1;
+    QSpacerItem *horizontalSpacer_5;
+    QSpacerItem *verticalSpacer;
     QGroupBox *GBField;
     QGridLayout *gridLayout1;
     QLineEdit *LEFieldFile;
@@ -48,48 +66,131 @@ public:
     QRadioButton *RBNo;
     QPushButton *PushFieldFile;
     QLabel *FieldFile;
-    QLabel *Iteration_Name;
-    QLineEdit *LEName;
-    QLabel *Iter_Parent;
+    QSpacerItem *horizontalSpacer_10;
     QSpacerItem *spacerItem4;
-    QPushButton *PBIterParent;
-    QLineEdit *LEIterationParentName;
-    QLabel *Mesh_n;
-    QSpacerItem *spacerItem5;
-    QLineEdit *LEMeshName_n;
-    QSpacerItem *spacerItem6;
-    QLabel *Mesh_np1;
-    QLineEdit *LEMeshName_np1;
-    QSpacerItem *spacerItem7;
-    QSpacerItem *spacerItem8;
     QGroupBox *Hypothese;
     QGridLayout *gridLayout2;
     QComboBox *CBHypothese;
-    QSpacerItem *spacerItem9;
+    QSpacerItem *spacerItem5;
     QPushButton *PBHypoEdit;
     QPushButton *PBHypoNew;
-    QSpacerItem *spacerItem10;
+    QSpacerItem *horizontalSpacer_2;
+    QSpacerItem *spacerItem6;
     QGroupBox *GroupButtons;
     QGridLayout *gridLayout3;
     QPushButton *buttonOk;
     QPushButton *buttonApply;
     QPushButton *buttonCancel;
     QPushButton *buttonHelp;
+    QSpacerItem *horizontalSpacer;
+    QSpacerItem *horizontalSpacer_9;
 
-    void setupUi(QWidget *CreateIteration)
+    void setupUi(QScrollArea *CreateIteration)
     {
         if (CreateIteration->objectName().isEmpty())
             CreateIteration->setObjectName(QString::fromUtf8("CreateIteration"));
-        CreateIteration->resize(610, 598);
-        gridLayout = new QGridLayout(CreateIteration);
-#ifndef Q_OS_MAC
-        gridLayout->setSpacing(6);
-#endif
-#ifndef Q_OS_MAC
-        gridLayout->setContentsMargins(9, 9, 9, 9);
-#endif
+        CreateIteration->resize(777, 668);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(CreateIteration->sizePolicy().hasHeightForWidth());
+        CreateIteration->setSizePolicy(sizePolicy);
+        CreateIteration->setMinimumSize(QSize(750, 400));
+        CreateIteration->setSizeIncrement(QSize(1, 1));
+        CreateIteration->setBaseSize(QSize(750, 400));
+        CreateIteration->setWidgetResizable(true);
+        scrollAreaWidgetContents = new QWidget();
+        scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents"));
+        scrollAreaWidgetContents->setGeometry(QRect(0, 0, 773, 664));
+        scrollAreaWidgetContents->setProperty("sizeGripEnabled", QVariant(true));
+        gridLayout = new QGridLayout(scrollAreaWidgetContents);
         gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-        GBField = new QGroupBox(CreateIteration);
+        Iteration_Name = new QLabel(scrollAreaWidgetContents);
+        Iteration_Name->setObjectName(QString::fromUtf8("Iteration_Name"));
+
+        gridLayout->addWidget(Iteration_Name, 0, 0, 1, 2);
+
+        horizontalSpacer_6 = new QSpacerItem(117, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_6, 0, 2, 1, 1);
+
+        LEName = new QLineEdit(scrollAreaWidgetContents);
+        LEName->setObjectName(QString::fromUtf8("LEName"));
+        LEName->setMinimumSize(QSize(290, 21));
+        LEName->setMaxLength(64);
+
+        gridLayout->addWidget(LEName, 0, 3, 1, 2);
+
+        horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_3, 0, 5, 1, 1);
+
+        Iter_Parent = new QLabel(scrollAreaWidgetContents);
+        Iter_Parent->setObjectName(QString::fromUtf8("Iter_Parent"));
+
+        gridLayout->addWidget(Iter_Parent, 1, 0, 1, 2);
+
+        PBIterParent = new QPushButton(scrollAreaWidgetContents);
+        PBIterParent->setObjectName(QString::fromUtf8("PBIterParent"));
+        PBIterParent->setEnabled(true);
+        PBIterParent->setMaximumSize(QSize(50, 27));
+
+        gridLayout->addWidget(PBIterParent, 1, 2, 1, 1);
+
+        LEIterationParentName = new QLineEdit(scrollAreaWidgetContents);
+        LEIterationParentName->setObjectName(QString::fromUtf8("LEIterationParentName"));
+        LEIterationParentName->setMinimumSize(QSize(0, 21));
+        LEIterationParentName->setMaxLength(64);
+        LEIterationParentName->setReadOnly(true);
+
+        gridLayout->addWidget(LEIterationParentName, 1, 3, 1, 2);
+
+        Mesh_n = new QLabel(scrollAreaWidgetContents);
+        Mesh_n->setObjectName(QString::fromUtf8("Mesh_n"));
+
+        gridLayout->addWidget(Mesh_n, 2, 0, 1, 1);
+
+        horizontalSpacer_7 = new QSpacerItem(117, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_7, 2, 2, 1, 1);
+
+        LEMeshName_n = new QLineEdit(scrollAreaWidgetContents);
+        LEMeshName_n->setObjectName(QString::fromUtf8("LEMeshName_n"));
+        LEMeshName_n->setMinimumSize(QSize(290, 21));
+        LEMeshName_n->setMaxLength(64);
+        LEMeshName_n->setReadOnly(true);
+
+        gridLayout->addWidget(LEMeshName_n, 2, 3, 1, 3);
+
+        horizontalSpacer_4 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_4, 2, 6, 1, 1);
+
+        Mesh_np1 = new QLabel(scrollAreaWidgetContents);
+        Mesh_np1->setObjectName(QString::fromUtf8("Mesh_np1"));
+
+        gridLayout->addWidget(Mesh_np1, 3, 0, 1, 2);
+
+        horizontalSpacer_8 = new QSpacerItem(117, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_8, 3, 2, 1, 1);
+
+        LEMeshName_np1 = new QLineEdit(scrollAreaWidgetContents);
+        LEMeshName_np1->setObjectName(QString::fromUtf8("LEMeshName_np1"));
+        LEMeshName_np1->setMinimumSize(QSize(290, 21));
+        LEMeshName_np1->setMaxLength(64);
+
+        gridLayout->addWidget(LEMeshName_np1, 3, 3, 1, 3);
+
+        horizontalSpacer_5 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_5, 3, 6, 1, 1);
+
+        verticalSpacer = new QSpacerItem(20, 62, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout->addItem(verticalSpacer, 4, 0, 1, 1);
+
+        GBField = new QGroupBox(scrollAreaWidgetContents);
         GBField->setObjectName(QString::fromUtf8("GBField"));
         gridLayout1 = new QGridLayout(GBField);
 #ifndef Q_OS_MAC
@@ -175,86 +276,17 @@ public:
         gridLayout1->addWidget(FieldFile, 0, 0, 1, 1);
 
 
-        gridLayout->addWidget(GBField, 6, 0, 1, 4);
+        gridLayout->addWidget(GBField, 5, 0, 1, 6);
 
-        Iteration_Name = new QLabel(CreateIteration);
-        Iteration_Name->setObjectName(QString::fromUtf8("Iteration_Name"));
-
-        gridLayout->addWidget(Iteration_Name, 0, 0, 1, 2);
-
-        LEName = new QLineEdit(CreateIteration);
-        LEName->setObjectName(QString::fromUtf8("LEName"));
-        LEName->setMinimumSize(QSize(290, 21));
-        LEName->setMaxLength(200);
-
-        gridLayout->addWidget(LEName, 0, 2, 1, 2);
-
-        Iter_Parent = new QLabel(CreateIteration);
-        Iter_Parent->setObjectName(QString::fromUtf8("Iter_Parent"));
+        horizontalSpacer_10 = new QSpacerItem(69, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout->addWidget(Iter_Parent, 1, 0, 1, 1);
-
-        spacerItem4 = new QSpacerItem(20, 24, QSizePolicy::Minimum, QSizePolicy::Expanding);
-
-        gridLayout->addItem(spacerItem4, 1, 1, 1, 1);
-
-        PBIterParent = new QPushButton(CreateIteration);
-        PBIterParent->setObjectName(QString::fromUtf8("PBIterParent"));
-        PBIterParent->setEnabled(true);
-        PBIterParent->setMaximumSize(QSize(50, 27));
-
-        gridLayout->addWidget(PBIterParent, 1, 2, 1, 1);
-
-        LEIterationParentName = new QLineEdit(CreateIteration);
-        LEIterationParentName->setObjectName(QString::fromUtf8("LEIterationParentName"));
-        LEIterationParentName->setMinimumSize(QSize(0, 21));
-        LEIterationParentName->setMaxLength(200);
-        LEIterationParentName->setReadOnly(true);
-
-        gridLayout->addWidget(LEIterationParentName, 1, 3, 1, 1);
-
-        Mesh_n = new QLabel(CreateIteration);
-        Mesh_n->setObjectName(QString::fromUtf8("Mesh_n"));
-
-        gridLayout->addWidget(Mesh_n, 2, 0, 1, 1);
+        gridLayout->addItem(horizontalSpacer_10, 5, 6, 1, 1);
 
-        spacerItem5 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem4 = new QSpacerItem(20, 22, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout->addItem(spacerItem5, 2, 1, 1, 1);
+        gridLayout->addItem(spacerItem4, 6, 0, 1, 1);
 
-        LEMeshName_n = new QLineEdit(CreateIteration);
-        LEMeshName_n->setObjectName(QString::fromUtf8("LEMeshName_n"));
-        LEMeshName_n->setMinimumSize(QSize(290, 21));
-        LEMeshName_n->setMaxLength(32);
-        LEMeshName_n->setReadOnly(true);
-
-        gridLayout->addWidget(LEMeshName_n, 2, 2, 1, 2);
-
-        spacerItem6 = new QSpacerItem(20, 22, QSizePolicy::Minimum, QSizePolicy::Expanding);
-
-        gridLayout->addItem(spacerItem6, 3, 1, 1, 1);
-
-        Mesh_np1 = new QLabel(CreateIteration);
-        Mesh_np1->setObjectName(QString::fromUtf8("Mesh_np1"));
-
-        gridLayout->addWidget(Mesh_np1, 4, 0, 1, 2);
-
-        LEMeshName_np1 = new QLineEdit(CreateIteration);
-        LEMeshName_np1->setObjectName(QString::fromUtf8("LEMeshName_np1"));
-        LEMeshName_np1->setMinimumSize(QSize(290, 21));
-        LEMeshName_np1->setMaxLength(32);
-
-        gridLayout->addWidget(LEMeshName_np1, 4, 2, 1, 2);
-
-        spacerItem7 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
-
-        gridLayout->addItem(spacerItem7, 5, 1, 1, 1);
-
-        spacerItem8 = new QSpacerItem(20, 22, QSizePolicy::Minimum, QSizePolicy::Expanding);
-
-        gridLayout->addItem(spacerItem8, 7, 1, 1, 1);
-
-        Hypothese = new QGroupBox(CreateIteration);
+        Hypothese = new QGroupBox(scrollAreaWidgetContents);
         Hypothese->setObjectName(QString::fromUtf8("Hypothese"));
         gridLayout2 = new QGridLayout(Hypothese);
 #ifndef Q_OS_MAC
@@ -270,9 +302,9 @@ public:
 
         gridLayout2->addWidget(CBHypothese, 0, 0, 1, 1);
 
-        spacerItem9 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
+        spacerItem5 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-        gridLayout2->addItem(spacerItem9, 0, 1, 1, 1);
+        gridLayout2->addItem(spacerItem5, 0, 1, 1, 1);
 
         PBHypoEdit = new QPushButton(Hypothese);
         PBHypoEdit->setObjectName(QString::fromUtf8("PBHypoEdit"));
@@ -285,13 +317,17 @@ public:
         gridLayout2->addWidget(PBHypoNew, 0, 3, 1, 1);
 
 
-        gridLayout->addWidget(Hypothese, 8, 0, 1, 4);
+        gridLayout->addWidget(Hypothese, 7, 0, 1, 4);
+
+        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_2, 7, 4, 1, 2);
 
-        spacerItem10 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem6 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout->addItem(spacerItem10, 9, 0, 1, 1);
+        gridLayout->addItem(spacerItem6, 8, 1, 1, 1);
 
-        GroupButtons = new QGroupBox(CreateIteration);
+        GroupButtons = new QGroupBox(scrollAreaWidgetContents);
         GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
         gridLayout3 = new QGridLayout(GroupButtons);
 #ifndef Q_OS_MAC
@@ -324,8 +360,17 @@ public:
         gridLayout3->addWidget(buttonHelp, 0, 3, 1, 1);
 
 
-        gridLayout->addWidget(GroupButtons, 10, 0, 1, 4);
+        gridLayout->addWidget(GroupButtons, 9, 0, 1, 4);
+
+        horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer, 9, 4, 1, 2);
 
+        horizontalSpacer_9 = new QSpacerItem(139, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_9, 1, 5, 1, 1);
+
+        CreateIteration->setWidget(scrollAreaWidgetContents);
 
         retranslateUi(CreateIteration);
 
@@ -335,9 +380,14 @@ public:
         QMetaObject::connectSlotsByName(CreateIteration);
     } // setupUi
 
-    void retranslateUi(QWidget *CreateIteration)
+    void retranslateUi(QScrollArea *CreateIteration)
     {
         CreateIteration->setWindowTitle(QApplication::translate("CreateIteration", "Create an iteration", 0, QApplication::UnicodeUTF8));
+        Iteration_Name->setText(QApplication::translate("CreateIteration", "Iteration Name", 0, QApplication::UnicodeUTF8));
+        Iter_Parent->setText(QApplication::translate("CreateIteration", "Previous iteration", 0, QApplication::UnicodeUTF8));
+        PBIterParent->setText(QString());
+        Mesh_n->setText(QApplication::translate("CreateIteration", "Mesh n", 0, QApplication::UnicodeUTF8));
+        Mesh_np1->setText(QApplication::translate("CreateIteration", "Mesh n+1", 0, QApplication::UnicodeUTF8));
         GBField->setTitle(QApplication::translate("CreateIteration", "Field information", 0, QApplication::UnicodeUTF8));
         RBChosen->setText(QApplication::translate("CreateIteration", "Chosen time step", 0, QApplication::UnicodeUTF8));
         Rank->setText(QApplication::translate("CreateIteration", "Rank", 0, QApplication::UnicodeUTF8));
@@ -346,11 +396,6 @@ public:
         RBNo->setText(QApplication::translate("CreateIteration", "No time step", 0, QApplication::UnicodeUTF8));
         PushFieldFile->setText(QString());
         FieldFile->setText(QApplication::translate("CreateIteration", "Field file", 0, QApplication::UnicodeUTF8));
-        Iteration_Name->setText(QApplication::translate("CreateIteration", "Iteration Name", 0, QApplication::UnicodeUTF8));
-        Iter_Parent->setText(QApplication::translate("CreateIteration", "Previous iteration", 0, QApplication::UnicodeUTF8));
-        PBIterParent->setText(QString());
-        Mesh_n->setText(QApplication::translate("CreateIteration", "Mesh n", 0, QApplication::UnicodeUTF8));
-        Mesh_np1->setText(QApplication::translate("CreateIteration", "Mesh n+1", 0, QApplication::UnicodeUTF8));
         Hypothese->setTitle(QApplication::translate("CreateIteration", "Hypothesis", 0, QApplication::UnicodeUTF8));
         PBHypoEdit->setText(QApplication::translate("CreateIteration", "Edit", 0, QApplication::UnicodeUTF8));
         PBHypoNew->setText(QApplication::translate("CreateIteration", "New", 0, QApplication::UnicodeUTF8));
index d355e1d366dedc1f46a2562c91e54cf36ad6f04d..2cc2827c6c5fefd0574df3c52a5512d39f15afab 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>CreateIteration</class>
- <widget class="QWidget" name="CreateIteration">
+ <widget class="QScrollArea" name="CreateIteration">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>610</width>
-    <height>598</height>
+    <width>777</width>
+    <height>668</height>
    </rect>
   </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>750</width>
+    <height>400</height>
+   </size>
+  </property>
+  <property name="sizeIncrement">
+   <size>
+    <width>1</width>
+    <height>1</height>
+   </size>
+  </property>
+  <property name="baseSize">
+   <size>
+    <width>750</width>
+    <height>400</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Create an iteration</string>
   </property>
-  <layout class="QGridLayout">
-   <property name="margin">
-    <number>9</number>
+  <property name="widgetResizable">
+   <bool>true</bool>
+  </property>
+  <widget class="QWidget" name="scrollAreaWidgetContents">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>773</width>
+     <height>664</height>
+    </rect>
    </property>
-   <property name="spacing">
-    <number>6</number>
+   <property name="sizeGripEnabled" stdset="0">
+    <bool>true</bool>
    </property>
-   <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">
-       <number>9</number>
-      </property>
-      <property name="spacing">
-       <number>6</number>
-      </property>
-      <item row="0" column="2" colspan="5">
-       <widget class="QLineEdit" name="LEFieldFile">
-        <property name="minimumSize">
-         <size>
-          <width>282</width>
-          <height>21</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3" colspan="4">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>138</width>
-          <height>18</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <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">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Expanding</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>255</width>
-          <height>13</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <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="value">
-         <number>-1</number>
-        </property>
-       </widget>
-      </item>
-      <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">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Fixed</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>13</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="4" column="1">
-       <widget class="QSpinBox" name="SpinBox_TimeStep">
-        <property name="minimum">
-         <number>-2</number>
-        </property>
-        <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">
-         <string>Time step</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0" colspan="4">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>138</width>
-          <height>28</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <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">
-         <string>No time step</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <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">
-         <string>Field file</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <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="LEName">
-     <property name="minimumSize">
-      <size>
-       <width>290</width>
-       <height>21</height>
-      </size>
-     </property>
-     <property name="maxLength">
-      <number>200</number>
-     </property>
-    </widget>
-   </item>
-   <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">
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>24</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="1" column="2">
-    <widget class="QPushButton" name="PBIterParent">
-     <property name="enabled">
-      <bool>true</bool>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>50</width>
-       <height>27</height>
-      </size>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-    </widget>
-   </item>
-   <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">
-      <number>200</number>
-     </property>
-     <property name="readOnly">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <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">
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>21</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <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">
-      <number>32</number>
-     </property>
-     <property name="readOnly">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="1">
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>22</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <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">
-      <size>
-       <width>290</width>
-       <height>21</height>
-      </size>
-     </property>
-     <property name="maxLength">
-      <number>32</number>
-     </property>
-    </widget>
-   </item>
-   <item row="5" column="1">
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>21</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="7" column="1">
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>22</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <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">
-       <number>9</number>
-      </property>
-      <property name="spacing">
-       <number>6</number>
-      </property>
-      <item row="0" column="0">
-       <widget class="QComboBox" name="CBHypothese">
-        <property name="currentIndex">
-         <number>-1</number>
-        </property>
-        <property name="sizeAdjustPolicy">
-         <enum>QComboBox::AdjustToContents</enum>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Fixed</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>13</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="0" column="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">
-         <string>New</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="9" column="0">
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>21</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="10" column="0" colspan="4">
-    <widget class="QGroupBox" name="GroupButtons">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
-      </property>
-      <property name="spacing">
-       <number>6</number>
-      </property>
-      <item row="0" column="0">
-       <widget class="QPushButton" name="buttonOk">
-        <property name="text">
-         <string>OK</string>
-        </property>
-        <property name="autoDefault">
-         <bool>false</bool>
-        </property>
-        <property name="default">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <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">
-         <string>Cancel</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="3">
-       <widget class="QPushButton" name="buttonHelp">
-        <property name="text">
-         <string>Help</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-  </layout>
+   <layout class="QGridLayout" name="gridLayout">
+    <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">
+     <spacer name="horizontalSpacer_6">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>117</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="0" column="3" colspan="2">
+     <widget class="QLineEdit" name="LEName">
+      <property name="minimumSize">
+       <size>
+        <width>290</width>
+        <height>21</height>
+       </size>
+      </property>
+      <property name="maxLength">
+       <number>64</number>
+      </property>
+     </widget>
+    </item>
+    <item row="0" column="5">
+     <spacer name="horizontalSpacer_3">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="1" column="0" colspan="2">
+     <widget class="QLabel" name="Iter_Parent">
+      <property name="text">
+       <string>Previous iteration</string>
+      </property>
+     </widget>
+    </item>
+    <item row="1" column="2">
+     <widget class="QPushButton" name="PBIterParent">
+      <property name="enabled">
+       <bool>true</bool>
+      </property>
+      <property name="maximumSize">
+       <size>
+        <width>50</width>
+        <height>27</height>
+       </size>
+      </property>
+      <property name="text">
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="1" column="3" colspan="2">
+     <widget class="QLineEdit" name="LEIterationParentName">
+      <property name="minimumSize">
+       <size>
+        <width>0</width>
+        <height>21</height>
+       </size>
+      </property>
+      <property name="maxLength">
+       <number>64</number>
+      </property>
+      <property name="readOnly">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+    <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="2">
+     <spacer name="horizontalSpacer_7">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>117</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="2" column="3" colspan="3">
+     <widget class="QLineEdit" name="LEMeshName_n">
+      <property name="minimumSize">
+       <size>
+        <width>290</width>
+        <height>21</height>
+       </size>
+      </property>
+      <property name="maxLength">
+       <number>64</number>
+      </property>
+      <property name="readOnly">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+    <item row="2" column="6">
+     <spacer name="horizontalSpacer_4">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="3" column="0" colspan="2">
+     <widget class="QLabel" name="Mesh_np1">
+      <property name="text">
+       <string>Mesh n+1</string>
+      </property>
+     </widget>
+    </item>
+    <item row="3" column="2">
+     <spacer name="horizontalSpacer_8">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>117</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="3" column="3" colspan="3">
+     <widget class="QLineEdit" name="LEMeshName_np1">
+      <property name="minimumSize">
+       <size>
+        <width>290</width>
+        <height>21</height>
+       </size>
+      </property>
+      <property name="maxLength">
+       <number>64</number>
+      </property>
+     </widget>
+    </item>
+    <item row="3" column="6">
+     <spacer name="horizontalSpacer_5">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="4" column="0">
+     <spacer name="verticalSpacer">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>62</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="5" column="0" colspan="6">
+     <widget class="QGroupBox" name="GBField">
+      <property name="title">
+       <string>Field information</string>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="2" colspan="5">
+        <widget class="QLineEdit" name="LEFieldFile">
+         <property name="minimumSize">
+          <size>
+           <width>282</width>
+           <height>21</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="3" colspan="4">
+        <spacer>
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>138</width>
+           <height>18</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <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">
+        <spacer>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Expanding</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>255</width>
+           <height>13</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <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="value">
+          <number>-1</number>
+         </property>
+        </widget>
+       </item>
+       <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">
+        <spacer>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>13</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="4" column="1">
+        <widget class="QSpinBox" name="SpinBox_TimeStep">
+         <property name="minimum">
+          <number>-2</number>
+         </property>
+         <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">
+          <string>Time step</string>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0" colspan="4">
+        <spacer>
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>138</width>
+           <height>28</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <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">
+          <string>No time step</string>
+         </property>
+         <property name="checkable">
+          <bool>true</bool>
+         </property>
+         <property name="checked">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <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">
+          <string>Field file</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="5" column="6">
+     <spacer name="horizontalSpacer_10">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>69</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="6" column="0">
+     <spacer>
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>22</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="7" column="0" colspan="4">
+     <widget class="QGroupBox" name="Hypothese">
+      <property name="title">
+       <string>Hypothesis</string>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="0">
+        <widget class="QComboBox" name="CBHypothese">
+         <property name="currentIndex">
+          <number>-1</number>
+         </property>
+         <property name="sizeAdjustPolicy">
+          <enum>QComboBox::AdjustToContents</enum>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <spacer>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>13</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="0" column="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">
+          <string>New</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="7" column="4" colspan="2">
+     <spacer name="horizontalSpacer_2">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="8" column="1">
+     <spacer>
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>21</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="9" column="0" colspan="4">
+     <widget class="QGroupBox" name="GroupButtons">
+      <property name="title">
+       <string/>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="0">
+        <widget class="QPushButton" name="buttonOk">
+         <property name="text">
+          <string>OK</string>
+         </property>
+         <property name="autoDefault">
+          <bool>false</bool>
+         </property>
+         <property name="default">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <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">
+          <string>Cancel</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="3">
+        <widget class="QPushButton" name="buttonHelp">
+         <property name="text">
+          <string>Help</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="9" column="4" colspan="2">
+     <spacer name="horizontalSpacer">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="1" column="5">
+     <spacer name="horizontalSpacer_9">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>139</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+   </layout>
+  </widget>
  </widget>
  <resources/>
  <connections/>
index 9ce7a302b0166d3231d2cc91db3f0a74a46f0297..ff732b730710930fd05b9cf7f9298d11fa0f29c3 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateYACS.ui'
 **
-** Created: Mon Sep 23 13:29:12 2013
+** Created: Mon Jan 20 13:23:30 2014
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -14,7 +14,7 @@
 #include <QtGui/QAction>
 #include <QtGui/QApplication>
 #include <QtGui/QButtonGroup>
-#include <QtGui/QDialog>
+#include <QtGui/QDoubleSpinBox>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
 #include <QtGui/QHBoxLayout>
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
+#include <QtGui/QScrollArea>
 #include <QtGui/QSpacerItem>
+#include <QtGui/QSpinBox>
+#include <QtGui/QWidget>
 
 QT_BEGIN_NAMESPACE
 
 class Ui_CreateYACS
 {
 public:
+    QWidget *scrollAreaWidgetContents;
+    QGridLayout *gridLayout_5;
+    QWidget *WName;
     QGridLayout *gridLayout_2;
     QLabel *Name;
     QLineEdit *LEName;
+    QSpacerItem *horizontalSpacer;
     QGridLayout *gridLayout;
     QLabel *Case;
     QPushButton *PBCaseName;
@@ -53,6 +60,23 @@ public:
     QHBoxLayout *_4;
     QRadioButton *RBConstant;
     QRadioButton *RBVariable;
+    QGroupBox *GBMax;
+    QGridLayout *gridLayout_3;
+    QLabel *TLMaxIteration;
+    QSpinBox *SpinBoxMaxIter;
+    QLabel *TLMaxNodes;
+    QSpinBox *SpinBoxMaxNode;
+    QLabel *TLMaxElem;
+    QSpinBox *SpinBoxMaxElem;
+    QSpacerItem *horizontalSpacer_2;
+    QGroupBox *GBConvergence;
+    QGridLayout *gridLayout_4;
+    QRadioButton *RBNone;
+    QRadioButton *RBVMinAbs;
+    QRadioButton *RBVMaxAbs;
+    QLabel *labelVref;
+    QDoubleSpinBox *doubleSpinBoxConvergence;
+    QSpacerItem *horizontalSpacer_3;
     QGroupBox *GroupButtons;
     QGridLayout *gridLayout1;
     QPushButton *buttonHelp;
@@ -61,52 +85,70 @@ public:
     QPushButton *buttonCancel;
     QSpacerItem *spacer_2;
 
-    void setupUi(QDialog *CreateYACS)
+    void setupUi(QScrollArea *CreateYACS)
     {
         if (CreateYACS->objectName().isEmpty())
             CreateYACS->setObjectName(QString::fromUtf8("CreateYACS"));
-        CreateYACS->resize(538, 340);
-        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        CreateYACS->resize(684, 649);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
         sizePolicy.setHorizontalStretch(0);
         sizePolicy.setVerticalStretch(0);
         sizePolicy.setHeightForWidth(CreateYACS->sizePolicy().hasHeightForWidth());
         CreateYACS->setSizePolicy(sizePolicy);
-        CreateYACS->setAutoFillBackground(true);
-        gridLayout_2 = new QGridLayout(CreateYACS);
+        CreateYACS->setMinimumSize(QSize(600, 500));
+        CreateYACS->setSizeIncrement(QSize(1, 1));
+        CreateYACS->setBaseSize(QSize(600, 500));
+        CreateYACS->setWidgetResizable(true);
+        scrollAreaWidgetContents = new QWidget();
+        scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents"));
+        scrollAreaWidgetContents->setGeometry(QRect(0, 0, 680, 645));
+        scrollAreaWidgetContents->setProperty("sizeGripEnabled", QVariant(true));
+        gridLayout_5 = new QGridLayout(scrollAreaWidgetContents);
+        gridLayout_5->setObjectName(QString::fromUtf8("gridLayout_5"));
+        WName = new QWidget(scrollAreaWidgetContents);
+        WName->setObjectName(QString::fromUtf8("WName"));
+        gridLayout_2 = new QGridLayout(WName);
         gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
-        Name = new QLabel(CreateYACS);
+        Name = new QLabel(WName);
         Name->setObjectName(QString::fromUtf8("Name"));
 
         gridLayout_2->addWidget(Name, 0, 0, 1, 1);
 
-        LEName = new QLineEdit(CreateYACS);
+        LEName = new QLineEdit(WName);
         LEName->setObjectName(QString::fromUtf8("LEName"));
         LEName->setMaxLength(32);
 
         gridLayout_2->addWidget(LEName, 0, 1, 1, 1);
 
+
+        gridLayout_5->addWidget(WName, 0, 0, 1, 1);
+
+        horizontalSpacer = new QSpacerItem(131, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_5->addItem(horizontalSpacer, 0, 1, 1, 1);
+
         gridLayout = new QGridLayout();
         gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-        Case = new QLabel(CreateYACS);
+        Case = new QLabel(scrollAreaWidgetContents);
         Case->setObjectName(QString::fromUtf8("Case"));
 
         gridLayout->addWidget(Case, 0, 0, 1, 1);
 
-        PBCaseName = new QPushButton(CreateYACS);
+        PBCaseName = new QPushButton(scrollAreaWidgetContents);
         PBCaseName->setObjectName(QString::fromUtf8("PBCaseName"));
         PBCaseName->setEnabled(true);
         PBCaseName->setMaximumSize(QSize(50, 27));
 
         gridLayout->addWidget(PBCaseName, 0, 1, 1, 1);
 
-        LECaseName = new QLineEdit(CreateYACS);
+        LECaseName = new QLineEdit(scrollAreaWidgetContents);
         LECaseName->setObjectName(QString::fromUtf8("LECaseName"));
         LECaseName->setMinimumSize(QSize(382, 21));
 
         gridLayout->addWidget(LECaseName, 0, 2, 1, 1);
 
 
-        gridLayout_2->addLayout(gridLayout, 1, 0, 1, 3);
+        gridLayout_5->addLayout(gridLayout, 1, 0, 1, 2);
 
         _2 = new QHBoxLayout();
 #ifndef Q_OS_MAC
@@ -114,25 +156,25 @@ public:
 #endif
         _2->setContentsMargins(0, 0, 0, 0);
         _2->setObjectName(QString::fromUtf8("_2"));
-        Script = new QLabel(CreateYACS);
+        Script = new QLabel(scrollAreaWidgetContents);
         Script->setObjectName(QString::fromUtf8("Script"));
 
         _2->addWidget(Script);
 
-        PBScriptFile = new QPushButton(CreateYACS);
+        PBScriptFile = new QPushButton(scrollAreaWidgetContents);
         PBScriptFile->setObjectName(QString::fromUtf8("PBScriptFile"));
         PBScriptFile->setAutoDefault(false);
 
         _2->addWidget(PBScriptFile);
 
-        LEScriptFile = new QLineEdit(CreateYACS);
+        LEScriptFile = new QLineEdit(scrollAreaWidgetContents);
         LEScriptFile->setObjectName(QString::fromUtf8("LEScriptFile"));
         LEScriptFile->setMinimumSize(QSize(382, 21));
 
         _2->addWidget(LEScriptFile);
 
 
-        gridLayout_2->addLayout(_2, 2, 0, 1, 3);
+        gridLayout_5->addLayout(_2, 2, 0, 1, 2);
 
         hboxLayout = new QHBoxLayout();
 #ifndef Q_OS_MAC
@@ -140,25 +182,25 @@ public:
 #endif
         hboxLayout->setContentsMargins(0, 0, 0, 0);
         hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
-        DirectoryStart = new QLabel(CreateYACS);
+        DirectoryStart = new QLabel(scrollAreaWidgetContents);
         DirectoryStart->setObjectName(QString::fromUtf8("DirectoryStart"));
 
         hboxLayout->addWidget(DirectoryStart);
 
-        PBDir = new QPushButton(CreateYACS);
+        PBDir = new QPushButton(scrollAreaWidgetContents);
         PBDir->setObjectName(QString::fromUtf8("PBDir"));
         PBDir->setAutoDefault(false);
 
         hboxLayout->addWidget(PBDir);
 
-        LEDirName = new QLineEdit(CreateYACS);
+        LEDirName = new QLineEdit(scrollAreaWidgetContents);
         LEDirName->setObjectName(QString::fromUtf8("LEDirName"));
         LEDirName->setMinimumSize(QSize(382, 21));
 
         hboxLayout->addWidget(LEDirName);
 
 
-        gridLayout_2->addLayout(hboxLayout, 3, 0, 1, 3);
+        gridLayout_5->addLayout(hboxLayout, 3, 0, 1, 2);
 
         _3 = new QHBoxLayout();
 #ifndef Q_OS_MAC
@@ -166,27 +208,27 @@ public:
 #endif
         _3->setContentsMargins(0, 0, 0, 0);
         _3->setObjectName(QString::fromUtf8("_3"));
-        MeshFile = new QLabel(CreateYACS);
+        MeshFile = new QLabel(scrollAreaWidgetContents);
         MeshFile->setObjectName(QString::fromUtf8("MeshFile"));
 
         _3->addWidget(MeshFile);
 
-        PBMeshFile = new QPushButton(CreateYACS);
+        PBMeshFile = new QPushButton(scrollAreaWidgetContents);
         PBMeshFile->setObjectName(QString::fromUtf8("PBMeshFile"));
         PBMeshFile->setAutoDefault(false);
 
         _3->addWidget(PBMeshFile);
 
-        LEMeshFile = new QLineEdit(CreateYACS);
+        LEMeshFile = new QLineEdit(scrollAreaWidgetContents);
         LEMeshFile->setObjectName(QString::fromUtf8("LEMeshFile"));
         LEMeshFile->setMinimumSize(QSize(382, 21));
 
         _3->addWidget(LEMeshFile);
 
 
-        gridLayout_2->addLayout(_3, 4, 0, 1, 3);
+        gridLayout_5->addLayout(_3, 4, 0, 1, 2);
 
-        GBTypeSchema = new QGroupBox(CreateYACS);
+        GBTypeSchema = new QGroupBox(scrollAreaWidgetContents);
         GBTypeSchema->setObjectName(QString::fromUtf8("GBTypeSchema"));
         _4 = new QHBoxLayout(GBTypeSchema);
 #ifndef Q_OS_MAC
@@ -208,9 +250,113 @@ public:
         _4->addWidget(RBVariable);
 
 
-        gridLayout_2->addWidget(GBTypeSchema, 5, 0, 1, 2);
+        gridLayout_5->addWidget(GBTypeSchema, 5, 0, 1, 1);
+
+        GBMax = new QGroupBox(scrollAreaWidgetContents);
+        GBMax->setObjectName(QString::fromUtf8("GBMax"));
+        gridLayout_3 = new QGridLayout(GBMax);
+        gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
+        TLMaxIteration = new QLabel(GBMax);
+        TLMaxIteration->setObjectName(QString::fromUtf8("TLMaxIteration"));
+        QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(TLMaxIteration->sizePolicy().hasHeightForWidth());
+        TLMaxIteration->setSizePolicy(sizePolicy1);
+        TLMaxIteration->setWordWrap(false);
+
+        gridLayout_3->addWidget(TLMaxIteration, 0, 0, 1, 1);
+
+        SpinBoxMaxIter = new QSpinBox(GBMax);
+        SpinBoxMaxIter->setObjectName(QString::fromUtf8("SpinBoxMaxIter"));
+        SpinBoxMaxIter->setMinimum(0);
+        SpinBoxMaxIter->setMaximum(999999999);
+        SpinBoxMaxIter->setValue(0);
+
+        gridLayout_3->addWidget(SpinBoxMaxIter, 0, 1, 1, 1);
+
+        TLMaxNodes = new QLabel(GBMax);
+        TLMaxNodes->setObjectName(QString::fromUtf8("TLMaxNodes"));
+        sizePolicy1.setHeightForWidth(TLMaxNodes->sizePolicy().hasHeightForWidth());
+        TLMaxNodes->setSizePolicy(sizePolicy1);
+        TLMaxNodes->setWordWrap(false);
+
+        gridLayout_3->addWidget(TLMaxNodes, 1, 0, 1, 1);
+
+        SpinBoxMaxNode = new QSpinBox(GBMax);
+        SpinBoxMaxNode->setObjectName(QString::fromUtf8("SpinBoxMaxNode"));
+        SpinBoxMaxNode->setMinimum(0);
+        SpinBoxMaxNode->setMaximum(999999999);
+        SpinBoxMaxNode->setSingleStep(1000);
+        SpinBoxMaxNode->setValue(0);
+
+        gridLayout_3->addWidget(SpinBoxMaxNode, 1, 1, 1, 1);
+
+        TLMaxElem = new QLabel(GBMax);
+        TLMaxElem->setObjectName(QString::fromUtf8("TLMaxElem"));
+        sizePolicy1.setHeightForWidth(TLMaxElem->sizePolicy().hasHeightForWidth());
+        TLMaxElem->setSizePolicy(sizePolicy1);
+        TLMaxElem->setWordWrap(false);
+
+        gridLayout_3->addWidget(TLMaxElem, 1, 2, 1, 1);
+
+        SpinBoxMaxElem = new QSpinBox(GBMax);
+        SpinBoxMaxElem->setObjectName(QString::fromUtf8("SpinBoxMaxElem"));
+        SpinBoxMaxElem->setMinimum(0);
+        SpinBoxMaxElem->setMaximum(999999999);
+        SpinBoxMaxElem->setSingleStep(1000);
+        SpinBoxMaxElem->setValue(0);
+
+        gridLayout_3->addWidget(SpinBoxMaxElem, 1, 3, 1, 1);
+
+
+        gridLayout_5->addWidget(GBMax, 6, 0, 1, 1);
+
+        horizontalSpacer_2 = new QSpacerItem(269, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_5->addItem(horizontalSpacer_2, 6, 1, 1, 1);
+
+        GBConvergence = new QGroupBox(scrollAreaWidgetContents);
+        GBConvergence->setObjectName(QString::fromUtf8("GBConvergence"));
+        gridLayout_4 = new QGridLayout(GBConvergence);
+        gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
+        RBNone = new QRadioButton(GBConvergence);
+        RBNone->setObjectName(QString::fromUtf8("RBNone"));
+        RBNone->setChecked(true);
+
+        gridLayout_4->addWidget(RBNone, 0, 0, 1, 1);
+
+        RBVMinAbs = new QRadioButton(GBConvergence);
+        RBVMinAbs->setObjectName(QString::fromUtf8("RBVMinAbs"));
+
+        gridLayout_4->addWidget(RBVMinAbs, 0, 1, 1, 1);
+
+        RBVMaxAbs = new QRadioButton(GBConvergence);
+        RBVMaxAbs->setObjectName(QString::fromUtf8("RBVMaxAbs"));
+
+        gridLayout_4->addWidget(RBVMaxAbs, 0, 2, 1, 1);
+
+        labelVref = new QLabel(GBConvergence);
+        labelVref->setObjectName(QString::fromUtf8("labelVref"));
+
+        gridLayout_4->addWidget(labelVref, 1, 0, 1, 1);
+
+        doubleSpinBoxConvergence = new QDoubleSpinBox(GBConvergence);
+        doubleSpinBoxConvergence->setObjectName(QString::fromUtf8("doubleSpinBoxConvergence"));
+        doubleSpinBoxConvergence->setDecimals(4);
+        doubleSpinBoxConvergence->setMinimum(-1e+09);
+        doubleSpinBoxConvergence->setMaximum(1e+09);
+
+        gridLayout_4->addWidget(doubleSpinBoxConvergence, 1, 1, 1, 1);
+
+
+        gridLayout_5->addWidget(GBConvergence, 7, 0, 1, 1);
+
+        horizontalSpacer_3 = new QSpacerItem(269, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout_5->addItem(horizontalSpacer_3, 7, 1, 1, 1);
 
-        GroupButtons = new QGroupBox(CreateYACS);
+        GroupButtons = new QGroupBox(scrollAreaWidgetContents);
         GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
         gridLayout1 = new QGridLayout(GroupButtons);
 #ifndef Q_OS_MAC
@@ -245,19 +391,20 @@ public:
         gridLayout1->addWidget(buttonCancel, 0, 2, 1, 1);
 
 
-        gridLayout_2->addWidget(GroupButtons, 6, 0, 1, 2);
+        gridLayout_5->addWidget(GroupButtons, 8, 0, 1, 1);
 
         spacer_2 = new QSpacerItem(128, 25, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-        gridLayout_2->addItem(spacer_2, 6, 2, 1, 1);
+        gridLayout_5->addItem(spacer_2, 8, 1, 1, 1);
 
+        CreateYACS->setWidget(scrollAreaWidgetContents);
 
         retranslateUi(CreateYACS);
 
         QMetaObject::connectSlotsByName(CreateYACS);
     } // setupUi
 
-    void retranslateUi(QDialog *CreateYACS)
+    void retranslateUi(QScrollArea *CreateYACS)
     {
         CreateYACS->setWindowTitle(QApplication::translate("CreateYACS", "Create YACS", 0, QApplication::UnicodeUTF8));
         Name->setText(QApplication::translate("CreateYACS", "Name", 0, QApplication::UnicodeUTF8));
@@ -272,6 +419,15 @@ public:
         GBTypeSchema->setTitle(QApplication::translate("CreateYACS", "Type of schema", 0, QApplication::UnicodeUTF8));
         RBConstant->setText(QApplication::translate("CreateYACS", "Constant", 0, QApplication::UnicodeUTF8));
         RBVariable->setText(QApplication::translate("CreateYACS", "Variable", 0, QApplication::UnicodeUTF8));
+        GBMax->setTitle(QApplication::translate("CreateYACS", "Maximum of ...", 0, QApplication::UnicodeUTF8));
+        TLMaxIteration->setText(QApplication::translate("CreateYACS", "Iterations", 0, QApplication::UnicodeUTF8));
+        TLMaxNodes->setText(QApplication::translate("CreateYACS", "Nodes", 0, QApplication::UnicodeUTF8));
+        TLMaxElem->setText(QApplication::translate("CreateYACS", "Elements", 0, QApplication::UnicodeUTF8));
+        GBConvergence->setTitle(QApplication::translate("CreateYACS", "Test of convergence", 0, QApplication::UnicodeUTF8));
+        RBNone->setText(QApplication::translate("CreateYACS", "None", 0, QApplication::UnicodeUTF8));
+        RBVMinAbs->setText(QApplication::translate("CreateYACS", "Vtest > Vref", 0, QApplication::UnicodeUTF8));
+        RBVMaxAbs->setText(QApplication::translate("CreateYACS", "Vtest < Vref", 0, QApplication::UnicodeUTF8));
+        labelVref->setText(QApplication::translate("CreateYACS", "Vref", 0, QApplication::UnicodeUTF8));
         GroupButtons->setTitle(QString());
         buttonHelp->setText(QApplication::translate("CreateYACS", "Help", 0, QApplication::UnicodeUTF8));
         buttonApply->setText(QApplication::translate("CreateYACS", "Apply", 0, QApplication::UnicodeUTF8));
index e181961930c3820b0871d6f1445c79d4a4d5c194..0e8f76c25dcdbb4d3f189dd868086040f5095cd8 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>CreateYACS</class>
- <widget class="QDialog" name="CreateYACS">
+ <widget class="QScrollArea" name="CreateYACS">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>538</width>
-    <height>340</height>
+    <width>684</width>
+    <height>649</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>600</width>
+    <height>500</height>
+   </size>
+  </property>
+  <property name="sizeIncrement">
+   <size>
+    <width>1</width>
+    <height>1</height>
+   </size>
+  </property>
+  <property name="baseSize">
+   <size>
+    <width>600</width>
+    <height>500</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Create YACS</string>
   </property>
-  <property name="autoFillBackground">
+  <property name="widgetResizable">
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout_2">
-   <item row="0" column="0">
-    <widget class="QLabel" name="Name">
-     <property name="text">
-      <string>Name</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1">
-    <widget class="QLineEdit" name="LEName">
-     <property name="maxLength">
-      <number>32</number>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0" colspan="3">
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="Case">
-       <property name="text">
-        <string>Case</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QPushButton" name="PBCaseName">
-       <property name="enabled">
-        <bool>true</bool>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>50</width>
-         <height>27</height>
-        </size>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="2">
-      <widget class="QLineEdit" name="LECaseName">
-       <property name="minimumSize">
-        <size>
-         <width>382</width>
-         <height>21</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="2" column="0" colspan="3">
-    <layout class="QHBoxLayout" name="_2">
-     <property name="spacing">
-      <number>6</number>
-     </property>
-     <property name="margin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QLabel" name="Script">
-       <property name="text">
-        <string>Script</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="PBScriptFile">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="LEScriptFile">
-       <property name="minimumSize">
-        <size>
-         <width>382</width>
-         <height>21</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="3" column="0" colspan="3">
-    <layout class="QHBoxLayout">
-     <property name="spacing">
-      <number>6</number>
-     </property>
-     <property name="margin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QLabel" name="DirectoryStart">
-       <property name="text">
-        <string>Directory</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="PBDir">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="LEDirName">
-       <property name="minimumSize">
-        <size>
-         <width>382</width>
-         <height>21</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="4" column="0" colspan="3">
-    <layout class="QHBoxLayout" name="_3">
-     <property name="spacing">
-      <number>6</number>
-     </property>
-     <property name="margin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QLabel" name="MeshFile">
-       <property name="text">
-        <string>Mesh file</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="PBMeshFile">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="LEMeshFile">
-       <property name="minimumSize">
-        <size>
-         <width>382</width>
-         <height>21</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="5" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBTypeSchema">
-     <property name="title">
-      <string>Type of schema</string>
-     </property>
-     <layout class="QHBoxLayout" name="_4">
+  <widget class="QWidget" name="scrollAreaWidgetContents">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>680</width>
+     <height>645</height>
+    </rect>
+   </property>
+   <property name="sizeGripEnabled" stdset="0">
+    <bool>true</bool>
+   </property>
+   <layout class="QGridLayout" name="gridLayout_5">
+    <item row="0" column="0">
+     <widget class="QWidget" name="WName" native="true">
+      <layout class="QGridLayout" name="gridLayout_2">
+       <item row="0" column="0">
+        <widget class="QLabel" name="Name">
+         <property name="text">
+          <string>Name</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QLineEdit" name="LEName">
+         <property name="maxLength">
+          <number>32</number>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="0" column="1">
+     <spacer name="horizontalSpacer">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>131</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="1" column="0" colspan="2">
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="0" column="0">
+       <widget class="QLabel" name="Case">
+        <property name="text">
+         <string>Case</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="PBCaseName">
+        <property name="enabled">
+         <bool>true</bool>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>50</width>
+          <height>27</height>
+         </size>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QLineEdit" name="LECaseName">
+        <property name="minimumSize">
+         <size>
+          <width>382</width>
+          <height>21</height>
+         </size>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item row="2" column="0" colspan="2">
+     <layout class="QHBoxLayout" name="_2">
       <property name="spacing">
        <number>6</number>
       </property>
       <property name="margin">
-       <number>9</number>
+       <number>0</number>
       </property>
       <item>
-       <widget class="QRadioButton" name="RBConstant">
+       <widget class="QLabel" name="Script">
         <property name="text">
-         <string>Constant</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
+         <string>Script</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RBVariable">
+       <widget class="QPushButton" name="PBScriptFile">
         <property name="text">
-         <string>Variable</string>
+         <string/>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="LEScriptFile">
+        <property name="minimumSize">
+         <size>
+          <width>382</width>
+          <height>21</height>
+         </size>
         </property>
        </widget>
       </item>
      </layout>
-    </widget>
-   </item>
-   <item row="6" column="0" colspan="2">
-    <widget class="QGroupBox" name="GroupButtons">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QGridLayout">
-      <property name="margin">
-       <number>9</number>
-      </property>
+    </item>
+    <item row="3" column="0" colspan="2">
+     <layout class="QHBoxLayout">
       <property name="spacing">
        <number>6</number>
       </property>
-      <item row="0" column="4">
-       <widget class="QPushButton" name="buttonHelp">
+      <property name="margin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="DirectoryStart">
         <property name="text">
-         <string>Help</string>
-        </property>
-        <property name="autoDefault">
-         <bool>false</bool>
+         <string>Directory</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QPushButton" name="buttonApply">
+      <item>
+       <widget class="QPushButton" name="PBDir">
         <property name="text">
-         <string>Apply</string>
+         <string/>
         </property>
         <property name="autoDefault">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="0">
-       <widget class="QPushButton" name="buttonOk">
-        <property name="text">
-         <string>OK</string>
+      <item>
+       <widget class="QLineEdit" name="LEDirName">
+        <property name="minimumSize">
+         <size>
+          <width>382</width>
+          <height>21</height>
+         </size>
         </property>
-        <property name="autoDefault">
-         <bool>false</bool>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item row="4" column="0" colspan="2">
+     <layout class="QHBoxLayout" name="_3">
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <property name="margin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="MeshFile">
+        <property name="text">
+         <string>Mesh file</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="2">
-       <widget class="QPushButton" name="buttonCancel">
+      <item>
+       <widget class="QPushButton" name="PBMeshFile">
         <property name="text">
-         <string>Cancel</string>
+         <string/>
         </property>
         <property name="autoDefault">
          <bool>false</bool>
         </property>
        </widget>
       </item>
+      <item>
+       <widget class="QLineEdit" name="LEMeshFile">
+        <property name="minimumSize">
+         <size>
+          <width>382</width>
+          <height>21</height>
+         </size>
+        </property>
+       </widget>
+      </item>
      </layout>
-    </widget>
-   </item>
-   <item row="6" column="2">
-    <spacer name="spacer_2">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeType">
-      <enum>QSizePolicy::Fixed</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>128</width>
-       <height>25</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
+    </item>
+    <item row="5" column="0">
+     <widget class="QGroupBox" name="GBTypeSchema">
+      <property name="title">
+       <string>Type of schema</string>
+      </property>
+      <layout class="QHBoxLayout" name="_4">
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <item>
+        <widget class="QRadioButton" name="RBConstant">
+         <property name="text">
+          <string>Constant</string>
+         </property>
+         <property name="checked">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="RBVariable">
+         <property name="text">
+          <string>Variable</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="6" column="0">
+     <widget class="QGroupBox" name="GBMax">
+      <property name="title">
+       <string>Maximum of ...</string>
+      </property>
+      <layout class="QGridLayout" name="gridLayout_3">
+       <item row="0" column="0">
+        <widget class="QLabel" name="TLMaxIteration">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Iterations</string>
+         </property>
+         <property name="wordWrap">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QSpinBox" name="SpinBoxMaxIter">
+         <property name="minimum">
+          <number>0</number>
+         </property>
+         <property name="maximum">
+          <number>999999999</number>
+         </property>
+         <property name="value">
+          <number>0</number>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="TLMaxNodes">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Nodes</string>
+         </property>
+         <property name="wordWrap">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QSpinBox" name="SpinBoxMaxNode">
+         <property name="minimum">
+          <number>0</number>
+         </property>
+         <property name="maximum">
+          <number>999999999</number>
+         </property>
+         <property name="singleStep">
+          <number>1000</number>
+         </property>
+         <property name="value">
+          <number>0</number>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="2">
+        <widget class="QLabel" name="TLMaxElem">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Elements</string>
+         </property>
+         <property name="wordWrap">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="3">
+        <widget class="QSpinBox" name="SpinBoxMaxElem">
+         <property name="minimum">
+          <number>0</number>
+         </property>
+         <property name="maximum">
+          <number>999999999</number>
+         </property>
+         <property name="singleStep">
+          <number>1000</number>
+         </property>
+         <property name="value">
+          <number>0</number>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="6" column="1">
+     <spacer name="horizontalSpacer_2">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>269</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="7" column="0">
+     <widget class="QGroupBox" name="GBConvergence">
+      <property name="title">
+       <string>Test of convergence</string>
+      </property>
+      <layout class="QGridLayout" name="gridLayout_4">
+       <item row="0" column="0">
+        <widget class="QRadioButton" name="RBNone">
+         <property name="text">
+          <string>None</string>
+         </property>
+         <property name="checked">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QRadioButton" name="RBVMinAbs">
+         <property name="text">
+          <string>Vtest &gt; Vref</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="2">
+        <widget class="QRadioButton" name="RBVMaxAbs">
+         <property name="text">
+          <string>Vtest &lt; Vref</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="labelVref">
+         <property name="text">
+          <string>Vref</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QDoubleSpinBox" name="doubleSpinBoxConvergence">
+         <property name="decimals">
+          <number>4</number>
+         </property>
+         <property name="minimum">
+          <double>-999999999.000000000000000</double>
+         </property>
+         <property name="maximum">
+          <double>999999999.000000000000000</double>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="7" column="1">
+     <spacer name="horizontalSpacer_3">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>269</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="8" column="0">
+     <widget class="QGroupBox" name="GroupButtons">
+      <property name="title">
+       <string/>
+      </property>
+      <layout class="QGridLayout">
+       <property name="margin">
+        <number>9</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
+       <item row="0" column="4">
+        <widget class="QPushButton" name="buttonHelp">
+         <property name="text">
+          <string>Help</string>
+         </property>
+         <property name="autoDefault">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QPushButton" name="buttonApply">
+         <property name="text">
+          <string>Apply</string>
+         </property>
+         <property name="autoDefault">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="0">
+        <widget class="QPushButton" name="buttonOk">
+         <property name="text">
+          <string>OK</string>
+         </property>
+         <property name="autoDefault">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="2">
+        <widget class="QPushButton" name="buttonCancel">
+         <property name="text">
+          <string>Cancel</string>
+         </property>
+         <property name="autoDefault">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="8" column="1">
+     <spacer name="spacer_2">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeType">
+       <enum>QSizePolicy::Fixed</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>128</width>
+        <height>25</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+   </layout>
+  </widget>
  </widget>
  <resources/>
  <connections/>
index 77893ea9156ce0a6e12fb36d9ae8f041c6a0c0fc..74f50886a19424f3bdc2c066c1270e67007631dd 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'CreateZone.ui'
 **
-** Created: Tue Sep 17 14:09:38 2013
+** Created: Wed Jan 15 14:45:55 2014
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -23,6 +23,7 @@
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
+#include <QtGui/QSpacerItem>
 
 QT_BEGIN_NAMESPACE
 
@@ -30,20 +31,42 @@ class Ui_CreateZone
 {
 public:
     QGridLayout *gridLayout;
-    QGroupBox *GBButtons;
-    QGridLayout *gridLayout1;
-    QPushButton *buttonHelp;
-    QPushButton *buttonCancel;
-    QPushButton *buttonApply;
-    QPushButton *buttonOk;
+    QLabel *Name;
+    QLineEdit *LEName;
+    QSpacerItem *horizontalSpacer_3;
     QGroupBox *TypeZone;
-    QGridLayout *gridLayout2;
+    QGridLayout *gridLayout1;
     QRadioButton *RBSphere;
     QRadioButton *RBPipe;
     QRadioButton *RBCylinder;
     QRadioButton *RBBox;
-    QGroupBox *gBCylindre;
+    QSpacerItem *horizontalSpacer_2;
+    QGroupBox *gBBox;
+    QGridLayout *gridLayout2;
+    QLabel *TLXmini;
+    QDoubleSpinBox *SpinBox_Xmini;
+    QLabel *TLYmini;
+    QDoubleSpinBox *SpinBox_Ymini;
+    QLabel *TLZmini;
+    QDoubleSpinBox *SpinBox_Zmini;
+    QLabel *TLXmaxi;
+    QLabel *TLZmaxi;
+    QDoubleSpinBox *SpinBox_Zmaxi;
+    QLabel *TLYmaxi;
+    QDoubleSpinBox *SpinBox_Xmaxi;
+    QDoubleSpinBox *SpinBox_Ymaxi;
+    QGroupBox *gBSphere;
     QGridLayout *gridLayout3;
+    QLabel *TLXcentre;
+    QDoubleSpinBox *SpinBox_Xcentre;
+    QLabel *TLYcentre;
+    QDoubleSpinBox *SpinBox_Ycentre;
+    QLabel *TLRayon;
+    QDoubleSpinBox *SpinBox_Rayon;
+    QLabel *TLZcentre;
+    QDoubleSpinBox *SpinBox_Zcentre;
+    QGroupBox *gBCylindre;
+    QGridLayout *gridLayout4;
     QDoubleSpinBox *SpinBox_Haut;
     QLabel *TLHaut;
     QLabel *TLRadius;
@@ -60,34 +83,8 @@ public:
     QDoubleSpinBox *SpinBox_Radius;
     QLabel *TLXbase;
     QDoubleSpinBox *SpinBox_Xbase;
-    QGroupBox *gBSphere;
-    QGridLayout *gridLayout4;
-    QLabel *TLXcentre;
-    QDoubleSpinBox *SpinBox_Xcentre;
-    QLabel *TLYcentre;
-    QDoubleSpinBox *SpinBox_Ycentre;
-    QLabel *TLRayon;
-    QDoubleSpinBox *SpinBox_Rayon;
-    QLabel *TLZcentre;
-    QDoubleSpinBox *SpinBox_Zcentre;
-    QGroupBox *gBBox;
-    QGridLayout *gridLayout5;
-    QLabel *TLXmini;
-    QDoubleSpinBox *SpinBox_Xmini;
-    QLabel *TLYmini;
-    QDoubleSpinBox *SpinBox_Ymini;
-    QLabel *TLZmini;
-    QDoubleSpinBox *SpinBox_Zmini;
-    QLabel *TLXmaxi;
-    QLabel *TLZmaxi;
-    QDoubleSpinBox *SpinBox_Zmaxi;
-    QLabel *TLYmaxi;
-    QDoubleSpinBox *SpinBox_Xmaxi;
-    QDoubleSpinBox *SpinBox_Ymaxi;
-    QLineEdit *LEName;
-    QLabel *Name;
     QGroupBox *gBPipe;
-    QGridLayout *gridLayout6;
+    QGridLayout *gridLayout5;
     QLabel *TLHaut_p;
     QDoubleSpinBox *SpinBox_Xbase_p;
     QLabel *TLXbase_p;
@@ -106,282 +103,242 @@ public:
     QDoubleSpinBox *SpinBox_Radius_ext;
     QLabel *TLRadius_ext;
     QDoubleSpinBox *SpinBox_Haut_p;
+    QGroupBox *GBButtons;
+    QGridLayout *gridLayout6;
+    QPushButton *buttonHelp;
+    QPushButton *buttonCancel;
+    QPushButton *buttonApply;
+    QPushButton *buttonOk;
+    QSpacerItem *horizontalSpacer;
 
     void setupUi(QDialog *CreateZone)
     {
         if (CreateZone->objectName().isEmpty())
             CreateZone->setObjectName(QString::fromUtf8("CreateZone"));
-        CreateZone->resize(551, 880);
+        CreateZone->resize(545, 778);
+        CreateZone->setSizeIncrement(QSize(1, 1));
+        CreateZone->setBaseSize(QSize(550, 400));
         CreateZone->setAutoFillBackground(true);
         CreateZone->setSizeGripEnabled(true);
         gridLayout = new QGridLayout(CreateZone);
-#ifndef Q_OS_MAC
-        gridLayout->setSpacing(6);
-#endif
-#ifndef Q_OS_MAC
-        gridLayout->setContentsMargins(9, 9, 9, 9);
-#endif
         gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-        GBButtons = new QGroupBox(CreateZone);
-        GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
-        QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
-        sizePolicy.setHorizontalStretch(0);
-        sizePolicy.setVerticalStretch(0);
-        sizePolicy.setHeightForWidth(GBButtons->sizePolicy().hasHeightForWidth());
-        GBButtons->setSizePolicy(sizePolicy);
-        gridLayout1 = new QGridLayout(GBButtons);
-#ifndef Q_OS_MAC
-        gridLayout1->setSpacing(6);
-#endif
-#ifndef Q_OS_MAC
-        gridLayout1->setContentsMargins(9, 9, 9, 9);
-#endif
-        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
-        buttonHelp = new QPushButton(GBButtons);
-        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
-
-        gridLayout1->addWidget(buttonHelp, 0, 3, 1, 1);
-
-        buttonCancel = new QPushButton(GBButtons);
-        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
-
-        gridLayout1->addWidget(buttonCancel, 0, 2, 1, 1);
-
-        buttonApply = new QPushButton(GBButtons);
-        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+        Name = new QLabel(CreateZone);
+        Name->setObjectName(QString::fromUtf8("Name"));
 
-        gridLayout1->addWidget(buttonApply, 0, 1, 1, 1);
+        gridLayout->addWidget(Name, 0, 0, 1, 1);
 
-        buttonOk = new QPushButton(GBButtons);
-        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+        LEName = new QLineEdit(CreateZone);
+        LEName->setObjectName(QString::fromUtf8("LEName"));
+        LEName->setMaxLength(32);
 
-        gridLayout1->addWidget(buttonOk, 0, 0, 1, 1);
+        gridLayout->addWidget(LEName, 0, 1, 1, 1);
 
+        horizontalSpacer_3 = new QSpacerItem(142, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout->addWidget(GBButtons, 6, 0, 1, 2);
+        gridLayout->addItem(horizontalSpacer_3, 0, 2, 1, 1);
 
         TypeZone = new QGroupBox(CreateZone);
         TypeZone->setObjectName(QString::fromUtf8("TypeZone"));
+        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
         sizePolicy.setHeightForWidth(TypeZone->sizePolicy().hasHeightForWidth());
         TypeZone->setSizePolicy(sizePolicy);
         TypeZone->setMinimumSize(QSize(340, 0));
-        gridLayout2 = new QGridLayout(TypeZone);
+        gridLayout1 = new QGridLayout(TypeZone);
 #ifndef Q_OS_MAC
-        gridLayout2->setSpacing(6);
+        gridLayout1->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout2->setContentsMargins(9, 9, 9, 9);
+        gridLayout1->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
         RBSphere = new QRadioButton(TypeZone);
         RBSphere->setObjectName(QString::fromUtf8("RBSphere"));
-        const QIcon icon = QIcon(QString::fromUtf8("../../resources/zone_spherepoint.png"));
+        QIcon icon;
+        icon.addFile(QString::fromUtf8("../../resources/zone_spherepoint.png"), QSize(), QIcon::Normal, QIcon::Off);
         RBSphere->setIcon(icon);
 
-        gridLayout2->addWidget(RBSphere, 0, 3, 1, 1);
+        gridLayout1->addWidget(RBSphere, 0, 3, 1, 1);
 
         RBPipe = new QRadioButton(TypeZone);
         RBPipe->setObjectName(QString::fromUtf8("RBPipe"));
-        const QIcon icon1 = QIcon(QString::fromUtf8("../../resources/pipe.png"));
+        QIcon icon1;
+        icon1.addFile(QString::fromUtf8("../../resources/pipe.png"), QSize(), QIcon::Normal, QIcon::Off);
         RBPipe->setIcon(icon1);
 
-        gridLayout2->addWidget(RBPipe, 0, 2, 1, 1);
+        gridLayout1->addWidget(RBPipe, 0, 2, 1, 1);
 
         RBCylinder = new QRadioButton(TypeZone);
         RBCylinder->setObjectName(QString::fromUtf8("RBCylinder"));
-        const QIcon icon2 = QIcon(QString::fromUtf8("../../resources/cylinderpointvector.png"));
+        QIcon icon2;
+        icon2.addFile(QString::fromUtf8("../../resources/cylinderpointvector.png"), QSize(), QIcon::Normal, QIcon::Off);
         RBCylinder->setIcon(icon2);
 
-        gridLayout2->addWidget(RBCylinder, 0, 1, 1, 1);
+        gridLayout1->addWidget(RBCylinder, 0, 1, 1, 1);
 
         RBBox = new QRadioButton(TypeZone);
         RBBox->setObjectName(QString::fromUtf8("RBBox"));
-        const QIcon icon3 = QIcon(QString::fromUtf8("../../resources/zone_boxdxyz.png"));
+        QIcon icon3;
+        icon3.addFile(QString::fromUtf8("../../resources/zone_boxdxyz.png"), QSize(), QIcon::Normal, QIcon::Off);
         RBBox->setIcon(icon3);
         RBBox->setCheckable(true);
         RBBox->setChecked(true);
 
-        gridLayout2->addWidget(RBBox, 0, 0, 1, 1);
+        gridLayout1->addWidget(RBBox, 0, 0, 1, 1);
 
 
-        gridLayout->addWidget(TypeZone, 1, 0, 1, 2);
+        gridLayout->addWidget(TypeZone, 1, 0, 1, 4);
 
-        gBCylindre = new QGroupBox(CreateZone);
-        gBCylindre->setObjectName(QString::fromUtf8("gBCylindre"));
-        sizePolicy.setHeightForWidth(gBCylindre->sizePolicy().hasHeightForWidth());
-        gBCylindre->setSizePolicy(sizePolicy);
-        gBCylindre->setFocusPolicy(Qt::TabFocus);
-        gridLayout3 = new QGridLayout(gBCylindre);
+        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_2, 1, 4, 1, 1);
+
+        gBBox = new QGroupBox(CreateZone);
+        gBBox->setObjectName(QString::fromUtf8("gBBox"));
+        sizePolicy.setHeightForWidth(gBBox->sizePolicy().hasHeightForWidth());
+        gBBox->setSizePolicy(sizePolicy);
+        gridLayout2 = new QGridLayout(gBBox);
 #ifndef Q_OS_MAC
-        gridLayout3->setSpacing(6);
+        gridLayout2->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout3->setContentsMargins(9, 9, 9, 9);
+        gridLayout2->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
-        SpinBox_Haut = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Haut->setObjectName(QString::fromUtf8("SpinBox_Haut"));
-        SpinBox_Haut->setDecimals(5);
-        SpinBox_Haut->setMaximum(1e+09);
-
-        gridLayout3->addWidget(SpinBox_Haut, 4, 1, 1, 1);
-
-        TLHaut = new QLabel(gBCylindre);
-        TLHaut->setObjectName(QString::fromUtf8("TLHaut"));
-        sizePolicy.setHeightForWidth(TLHaut->sizePolicy().hasHeightForWidth());
-        TLHaut->setSizePolicy(sizePolicy);
-        TLHaut->setWordWrap(false);
-
-        gridLayout3->addWidget(TLHaut, 4, 0, 1, 1);
-
-        TLRadius = new QLabel(gBCylindre);
-        TLRadius->setObjectName(QString::fromUtf8("TLRadius"));
-        sizePolicy.setHeightForWidth(TLRadius->sizePolicy().hasHeightForWidth());
-        TLRadius->setSizePolicy(sizePolicy);
-        TLRadius->setWordWrap(false);
-
-        gridLayout3->addWidget(TLRadius, 3, 0, 1, 1);
-
-        SpinBox_Xaxis = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Xaxis->setObjectName(QString::fromUtf8("SpinBox_Xaxis"));
-        SpinBox_Xaxis->setDecimals(5);
-        SpinBox_Xaxis->setMaximum(1e+09);
-        SpinBox_Xaxis->setMinimum(-1e+09);
-        SpinBox_Xaxis->setValue(0);
-
-        gridLayout3->addWidget(SpinBox_Xaxis, 0, 3, 1, 1);
-
-        SpinBox_Yaxis = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Yaxis->setObjectName(QString::fromUtf8("SpinBox_Yaxis"));
-        SpinBox_Yaxis->setDecimals(5);
-        SpinBox_Yaxis->setMaximum(1e+09);
-        SpinBox_Yaxis->setMinimum(-1e+09);
-        SpinBox_Yaxis->setValue(0);
+        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+        TLXmini = new QLabel(gBBox);
+        TLXmini->setObjectName(QString::fromUtf8("TLXmini"));
+        sizePolicy.setHeightForWidth(TLXmini->sizePolicy().hasHeightForWidth());
+        TLXmini->setSizePolicy(sizePolicy);
+        TLXmini->setWordWrap(false);
 
-        gridLayout3->addWidget(SpinBox_Yaxis, 1, 3, 1, 1);
+        gridLayout2->addWidget(TLXmini, 0, 0, 1, 1);
 
-        SpinBox_Zaxis = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Zaxis->setObjectName(QString::fromUtf8("SpinBox_Zaxis"));
-        SpinBox_Zaxis->setDecimals(5);
-        SpinBox_Zaxis->setMaximum(1e+09);
-        SpinBox_Zaxis->setMinimum(-1e+09);
-        SpinBox_Zaxis->setValue(0);
+        SpinBox_Xmini = new QDoubleSpinBox(gBBox);
+        SpinBox_Xmini->setObjectName(QString::fromUtf8("SpinBox_Xmini"));
+        SpinBox_Xmini->setDecimals(5);
+        SpinBox_Xmini->setMinimum(-1e+09);
+        SpinBox_Xmini->setMaximum(1e+09);
+        SpinBox_Xmini->setValue(0);
 
-        gridLayout3->addWidget(SpinBox_Zaxis, 2, 3, 1, 1);
+        gridLayout2->addWidget(SpinBox_Xmini, 0, 1, 1, 1);
 
-        TLZaxis = new QLabel(gBCylindre);
-        TLZaxis->setObjectName(QString::fromUtf8("TLZaxis"));
-        sizePolicy.setHeightForWidth(TLZaxis->sizePolicy().hasHeightForWidth());
-        TLZaxis->setSizePolicy(sizePolicy);
-        TLZaxis->setWordWrap(false);
+        TLYmini = new QLabel(gBBox);
+        TLYmini->setObjectName(QString::fromUtf8("TLYmini"));
+        sizePolicy.setHeightForWidth(TLYmini->sizePolicy().hasHeightForWidth());
+        TLYmini->setSizePolicy(sizePolicy);
+        TLYmini->setWordWrap(false);
 
-        gridLayout3->addWidget(TLZaxis, 2, 2, 1, 1);
+        gridLayout2->addWidget(TLYmini, 1, 0, 1, 1);
 
-        TLYaxis = new QLabel(gBCylindre);
-        TLYaxis->setObjectName(QString::fromUtf8("TLYaxis"));
-        sizePolicy.setHeightForWidth(TLYaxis->sizePolicy().hasHeightForWidth());
-        TLYaxis->setSizePolicy(sizePolicy);
-        TLYaxis->setWordWrap(false);
+        SpinBox_Ymini = new QDoubleSpinBox(gBBox);
+        SpinBox_Ymini->setObjectName(QString::fromUtf8("SpinBox_Ymini"));
+        SpinBox_Ymini->setDecimals(5);
+        SpinBox_Ymini->setMinimum(-1e+09);
+        SpinBox_Ymini->setMaximum(1e+09);
+        SpinBox_Ymini->setValue(0);
 
-        gridLayout3->addWidget(TLYaxis, 1, 2, 1, 1);
+        gridLayout2->addWidget(SpinBox_Ymini, 1, 1, 1, 1);
 
-        TLXaxis = new QLabel(gBCylindre);
-        TLXaxis->setObjectName(QString::fromUtf8("TLXaxis"));
-        sizePolicy.setHeightForWidth(TLXaxis->sizePolicy().hasHeightForWidth());
-        TLXaxis->setSizePolicy(sizePolicy);
-        TLXaxis->setWordWrap(false);
+        TLZmini = new QLabel(gBBox);
+        TLZmini->setObjectName(QString::fromUtf8("TLZmini"));
+        sizePolicy.setHeightForWidth(TLZmini->sizePolicy().hasHeightForWidth());
+        TLZmini->setSizePolicy(sizePolicy);
+        TLZmini->setWordWrap(false);
 
-        gridLayout3->addWidget(TLXaxis, 0, 2, 1, 1);
+        gridLayout2->addWidget(TLZmini, 2, 0, 1, 1);
 
-        SpinBox_Ybase = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Ybase->setObjectName(QString::fromUtf8("SpinBox_Ybase"));
-        SpinBox_Ybase->setDecimals(5);
-        SpinBox_Ybase->setMaximum(1e+09);
-        SpinBox_Ybase->setMinimum(-1e+09);
-        SpinBox_Ybase->setValue(0);
+        SpinBox_Zmini = new QDoubleSpinBox(gBBox);
+        SpinBox_Zmini->setObjectName(QString::fromUtf8("SpinBox_Zmini"));
+        SpinBox_Zmini->setDecimals(5);
+        SpinBox_Zmini->setMinimum(-1e+09);
+        SpinBox_Zmini->setMaximum(1e+09);
+        SpinBox_Zmini->setValue(0);
 
-        gridLayout3->addWidget(SpinBox_Ybase, 1, 1, 1, 1);
+        gridLayout2->addWidget(SpinBox_Zmini, 2, 1, 1, 1);
 
-        TLYbase = new QLabel(gBCylindre);
-        TLYbase->setObjectName(QString::fromUtf8("TLYbase"));
-        sizePolicy.setHeightForWidth(TLYbase->sizePolicy().hasHeightForWidth());
-        TLYbase->setSizePolicy(sizePolicy);
-        TLYbase->setWordWrap(false);
+        TLXmaxi = new QLabel(gBBox);
+        TLXmaxi->setObjectName(QString::fromUtf8("TLXmaxi"));
+        sizePolicy.setHeightForWidth(TLXmaxi->sizePolicy().hasHeightForWidth());
+        TLXmaxi->setSizePolicy(sizePolicy);
+        TLXmaxi->setWordWrap(false);
 
-        gridLayout3->addWidget(TLYbase, 1, 0, 1, 1);
+        gridLayout2->addWidget(TLXmaxi, 0, 2, 1, 1);
 
-        TLZbase = new QLabel(gBCylindre);
-        TLZbase->setObjectName(QString::fromUtf8("TLZbase"));
-        sizePolicy.setHeightForWidth(TLZbase->sizePolicy().hasHeightForWidth());
-        TLZbase->setSizePolicy(sizePolicy);
-        TLZbase->setWordWrap(false);
+        TLZmaxi = new QLabel(gBBox);
+        TLZmaxi->setObjectName(QString::fromUtf8("TLZmaxi"));
+        sizePolicy.setHeightForWidth(TLZmaxi->sizePolicy().hasHeightForWidth());
+        TLZmaxi->setSizePolicy(sizePolicy);
+        TLZmaxi->setWordWrap(false);
 
-        gridLayout3->addWidget(TLZbase, 2, 0, 1, 1);
+        gridLayout2->addWidget(TLZmaxi, 2, 2, 1, 1);
 
-        SpinBox_Zbase = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Zbase->setObjectName(QString::fromUtf8("SpinBox_Zbase"));
-        SpinBox_Zbase->setDecimals(5);
-        SpinBox_Zbase->setMaximum(1e+09);
-        SpinBox_Zbase->setMinimum(-1e+09);
-        SpinBox_Zbase->setValue(0);
+        SpinBox_Zmaxi = new QDoubleSpinBox(gBBox);
+        SpinBox_Zmaxi->setObjectName(QString::fromUtf8("SpinBox_Zmaxi"));
+        SpinBox_Zmaxi->setDecimals(5);
+        SpinBox_Zmaxi->setMinimum(-1e+09);
+        SpinBox_Zmaxi->setMaximum(1e+09);
+        SpinBox_Zmaxi->setValue(0);
 
-        gridLayout3->addWidget(SpinBox_Zbase, 2, 1, 1, 1);
+        gridLayout2->addWidget(SpinBox_Zmaxi, 2, 3, 1, 1);
 
-        SpinBox_Radius = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Radius->setObjectName(QString::fromUtf8("SpinBox_Radius"));
-        SpinBox_Radius->setDecimals(5);
-        SpinBox_Radius->setMaximum(1e+09);
+        TLYmaxi = new QLabel(gBBox);
+        TLYmaxi->setObjectName(QString::fromUtf8("TLYmaxi"));
+        sizePolicy.setHeightForWidth(TLYmaxi->sizePolicy().hasHeightForWidth());
+        TLYmaxi->setSizePolicy(sizePolicy);
+        TLYmaxi->setWordWrap(false);
 
-        gridLayout3->addWidget(SpinBox_Radius, 3, 1, 1, 1);
+        gridLayout2->addWidget(TLYmaxi, 1, 2, 1, 1);
 
-        TLXbase = new QLabel(gBCylindre);
-        TLXbase->setObjectName(QString::fromUtf8("TLXbase"));
-        sizePolicy.setHeightForWidth(TLXbase->sizePolicy().hasHeightForWidth());
-        TLXbase->setSizePolicy(sizePolicy);
-        TLXbase->setWordWrap(false);
+        SpinBox_Xmaxi = new QDoubleSpinBox(gBBox);
+        SpinBox_Xmaxi->setObjectName(QString::fromUtf8("SpinBox_Xmaxi"));
+        SpinBox_Xmaxi->setDecimals(5);
+        SpinBox_Xmaxi->setMinimum(-1e+09);
+        SpinBox_Xmaxi->setMaximum(1e+09);
+        SpinBox_Xmaxi->setValue(0);
 
-        gridLayout3->addWidget(TLXbase, 0, 0, 1, 1);
+        gridLayout2->addWidget(SpinBox_Xmaxi, 0, 3, 1, 1);
 
-        SpinBox_Xbase = new QDoubleSpinBox(gBCylindre);
-        SpinBox_Xbase->setObjectName(QString::fromUtf8("SpinBox_Xbase"));
-        SpinBox_Xbase->setDecimals(5);
-        SpinBox_Xbase->setMaximum(1e+09);
-        SpinBox_Xbase->setMinimum(-1e+09);
-        SpinBox_Xbase->setValue(0);
+        SpinBox_Ymaxi = new QDoubleSpinBox(gBBox);
+        SpinBox_Ymaxi->setObjectName(QString::fromUtf8("SpinBox_Ymaxi"));
+        SpinBox_Ymaxi->setDecimals(5);
+        SpinBox_Ymaxi->setMinimum(-1e+09);
+        SpinBox_Ymaxi->setMaximum(1e+09);
+        SpinBox_Ymaxi->setValue(0);
 
-        gridLayout3->addWidget(SpinBox_Xbase, 0, 1, 1, 1);
+        gridLayout2->addWidget(SpinBox_Ymaxi, 1, 3, 1, 1);
 
 
-        gridLayout->addWidget(gBCylindre, 4, 0, 1, 2);
+        gridLayout->addWidget(gBBox, 2, 0, 1, 4);
 
         gBSphere = new QGroupBox(CreateZone);
         gBSphere->setObjectName(QString::fromUtf8("gBSphere"));
         sizePolicy.setHeightForWidth(gBSphere->sizePolicy().hasHeightForWidth());
         gBSphere->setSizePolicy(sizePolicy);
-        gridLayout4 = new QGridLayout(gBSphere);
+        gridLayout3 = new QGridLayout(gBSphere);
 #ifndef Q_OS_MAC
-        gridLayout4->setSpacing(6);
+        gridLayout3->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout4->setContentsMargins(9, 9, 9, 9);
+        gridLayout3->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout4->setObjectName(QString::fromUtf8("gridLayout4"));
+        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
         TLXcentre = new QLabel(gBSphere);
         TLXcentre->setObjectName(QString::fromUtf8("TLXcentre"));
         sizePolicy.setHeightForWidth(TLXcentre->sizePolicy().hasHeightForWidth());
         TLXcentre->setSizePolicy(sizePolicy);
         TLXcentre->setWordWrap(false);
 
-        gridLayout4->addWidget(TLXcentre, 0, 0, 1, 1);
+        gridLayout3->addWidget(TLXcentre, 0, 0, 1, 1);
 
         SpinBox_Xcentre = new QDoubleSpinBox(gBSphere);
         SpinBox_Xcentre->setObjectName(QString::fromUtf8("SpinBox_Xcentre"));
         SpinBox_Xcentre->setDecimals(5);
-        SpinBox_Xcentre->setMaximum(1e+09);
         SpinBox_Xcentre->setMinimum(-1e+09);
+        SpinBox_Xcentre->setMaximum(1e+09);
         SpinBox_Xcentre->setValue(0);
 
-        gridLayout4->addWidget(SpinBox_Xcentre, 0, 1, 1, 1);
+        gridLayout3->addWidget(SpinBox_Xcentre, 0, 1, 1, 1);
 
         TLYcentre = new QLabel(gBSphere);
         TLYcentre->setObjectName(QString::fromUtf8("TLYcentre"));
@@ -389,16 +346,16 @@ public:
         TLYcentre->setSizePolicy(sizePolicy);
         TLYcentre->setWordWrap(false);
 
-        gridLayout4->addWidget(TLYcentre, 1, 0, 1, 1);
+        gridLayout3->addWidget(TLYcentre, 1, 0, 1, 1);
 
         SpinBox_Ycentre = new QDoubleSpinBox(gBSphere);
         SpinBox_Ycentre->setObjectName(QString::fromUtf8("SpinBox_Ycentre"));
         SpinBox_Ycentre->setDecimals(5);
-        SpinBox_Ycentre->setMaximum(1e+09);
         SpinBox_Ycentre->setMinimum(-1e+09);
+        SpinBox_Ycentre->setMaximum(1e+09);
         SpinBox_Ycentre->setValue(0);
 
-        gridLayout4->addWidget(SpinBox_Ycentre, 1, 1, 1, 1);
+        gridLayout3->addWidget(SpinBox_Ycentre, 1, 1, 1, 1);
 
         TLRayon = new QLabel(gBSphere);
         TLRayon->setObjectName(QString::fromUtf8("TLRayon"));
@@ -406,16 +363,16 @@ public:
         TLRayon->setSizePolicy(sizePolicy);
         TLRayon->setWordWrap(false);
 
-        gridLayout4->addWidget(TLRayon, 1, 2, 1, 1);
+        gridLayout3->addWidget(TLRayon, 1, 2, 1, 1);
 
         SpinBox_Rayon = new QDoubleSpinBox(gBSphere);
         SpinBox_Rayon->setObjectName(QString::fromUtf8("SpinBox_Rayon"));
         SpinBox_Rayon->setDecimals(5);
+        SpinBox_Rayon->setMinimum(0);
         SpinBox_Rayon->setMaximum(1e+09);
-        SpinBox_Rayon->setMinimum(-1e+09);
         SpinBox_Rayon->setValue(0);
 
-        gridLayout4->addWidget(SpinBox_Rayon, 1, 3, 1, 1);
+        gridLayout3->addWidget(SpinBox_Rayon, 1, 3, 1, 1);
 
         TLZcentre = new QLabel(gBSphere);
         TLZcentre->setObjectName(QString::fromUtf8("TLZcentre"));
@@ -423,176 +380,196 @@ public:
         TLZcentre->setSizePolicy(sizePolicy);
         TLZcentre->setWordWrap(false);
 
-        gridLayout4->addWidget(TLZcentre, 2, 0, 1, 1);
+        gridLayout3->addWidget(TLZcentre, 2, 0, 1, 1);
 
         SpinBox_Zcentre = new QDoubleSpinBox(gBSphere);
         SpinBox_Zcentre->setObjectName(QString::fromUtf8("SpinBox_Zcentre"));
         SpinBox_Zcentre->setDecimals(5);
-        SpinBox_Zcentre->setMaximum(1e+09);
         SpinBox_Zcentre->setMinimum(-1e+09);
+        SpinBox_Zcentre->setMaximum(1e+09);
         SpinBox_Zcentre->setValue(0);
 
-        gridLayout4->addWidget(SpinBox_Zcentre, 2, 1, 1, 1);
+        gridLayout3->addWidget(SpinBox_Zcentre, 2, 1, 1, 1);
 
 
-        gridLayout->addWidget(gBSphere, 3, 0, 1, 2);
+        gridLayout->addWidget(gBSphere, 3, 0, 1, 4);
 
-        gBBox = new QGroupBox(CreateZone);
-        gBBox->setObjectName(QString::fromUtf8("gBBox"));
-        sizePolicy.setHeightForWidth(gBBox->sizePolicy().hasHeightForWidth());
-        gBBox->setSizePolicy(sizePolicy);
-        gridLayout5 = new QGridLayout(gBBox);
+        gBCylindre = new QGroupBox(CreateZone);
+        gBCylindre->setObjectName(QString::fromUtf8("gBCylindre"));
+        sizePolicy.setHeightForWidth(gBCylindre->sizePolicy().hasHeightForWidth());
+        gBCylindre->setSizePolicy(sizePolicy);
+        gBCylindre->setFocusPolicy(Qt::TabFocus);
+        gridLayout4 = new QGridLayout(gBCylindre);
 #ifndef Q_OS_MAC
-        gridLayout5->setSpacing(6);
+        gridLayout4->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout5->setContentsMargins(9, 9, 9, 9);
+        gridLayout4->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout5->setObjectName(QString::fromUtf8("gridLayout5"));
-        TLXmini = new QLabel(gBBox);
-        TLXmini->setObjectName(QString::fromUtf8("TLXmini"));
-        sizePolicy.setHeightForWidth(TLXmini->sizePolicy().hasHeightForWidth());
-        TLXmini->setSizePolicy(sizePolicy);
-        TLXmini->setWordWrap(false);
+        gridLayout4->setObjectName(QString::fromUtf8("gridLayout4"));
+        SpinBox_Haut = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Haut->setObjectName(QString::fromUtf8("SpinBox_Haut"));
+        SpinBox_Haut->setDecimals(5);
+        SpinBox_Haut->setMaximum(1e+09);
 
-        gridLayout5->addWidget(TLXmini, 0, 0, 1, 1);
+        gridLayout4->addWidget(SpinBox_Haut, 4, 1, 1, 1);
 
-        SpinBox_Xmini = new QDoubleSpinBox(gBBox);
-        SpinBox_Xmini->setObjectName(QString::fromUtf8("SpinBox_Xmini"));
-        SpinBox_Xmini->setDecimals(5);
-        SpinBox_Xmini->setMaximum(1e+09);
-        SpinBox_Xmini->setMinimum(-1e+09);
-        SpinBox_Xmini->setValue(0);
+        TLHaut = new QLabel(gBCylindre);
+        TLHaut->setObjectName(QString::fromUtf8("TLHaut"));
+        sizePolicy.setHeightForWidth(TLHaut->sizePolicy().hasHeightForWidth());
+        TLHaut->setSizePolicy(sizePolicy);
+        TLHaut->setWordWrap(false);
 
-        gridLayout5->addWidget(SpinBox_Xmini, 0, 1, 1, 1);
+        gridLayout4->addWidget(TLHaut, 4, 0, 1, 1);
 
-        TLYmini = new QLabel(gBBox);
-        TLYmini->setObjectName(QString::fromUtf8("TLYmini"));
-        sizePolicy.setHeightForWidth(TLYmini->sizePolicy().hasHeightForWidth());
-        TLYmini->setSizePolicy(sizePolicy);
-        TLYmini->setWordWrap(false);
+        TLRadius = new QLabel(gBCylindre);
+        TLRadius->setObjectName(QString::fromUtf8("TLRadius"));
+        sizePolicy.setHeightForWidth(TLRadius->sizePolicy().hasHeightForWidth());
+        TLRadius->setSizePolicy(sizePolicy);
+        TLRadius->setWordWrap(false);
 
-        gridLayout5->addWidget(TLYmini, 1, 0, 1, 1);
+        gridLayout4->addWidget(TLRadius, 3, 0, 1, 1);
 
-        SpinBox_Ymini = new QDoubleSpinBox(gBBox);
-        SpinBox_Ymini->setObjectName(QString::fromUtf8("SpinBox_Ymini"));
-        SpinBox_Ymini->setDecimals(5);
-        SpinBox_Ymini->setMaximum(1e+09);
-        SpinBox_Ymini->setMinimum(-1e+09);
-        SpinBox_Ymini->setValue(0);
+        SpinBox_Xaxis = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Xaxis->setObjectName(QString::fromUtf8("SpinBox_Xaxis"));
+        SpinBox_Xaxis->setDecimals(5);
+        SpinBox_Xaxis->setMinimum(-1e+09);
+        SpinBox_Xaxis->setMaximum(1e+09);
+        SpinBox_Xaxis->setValue(0);
 
-        gridLayout5->addWidget(SpinBox_Ymini, 1, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_Xaxis, 0, 3, 1, 1);
 
-        TLZmini = new QLabel(gBBox);
-        TLZmini->setObjectName(QString::fromUtf8("TLZmini"));
-        sizePolicy.setHeightForWidth(TLZmini->sizePolicy().hasHeightForWidth());
-        TLZmini->setSizePolicy(sizePolicy);
-        TLZmini->setWordWrap(false);
+        SpinBox_Yaxis = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Yaxis->setObjectName(QString::fromUtf8("SpinBox_Yaxis"));
+        SpinBox_Yaxis->setDecimals(5);
+        SpinBox_Yaxis->setMinimum(-1e+09);
+        SpinBox_Yaxis->setMaximum(1e+09);
+        SpinBox_Yaxis->setValue(0);
 
-        gridLayout5->addWidget(TLZmini, 2, 0, 1, 1);
+        gridLayout4->addWidget(SpinBox_Yaxis, 1, 3, 1, 1);
 
-        SpinBox_Zmini = new QDoubleSpinBox(gBBox);
-        SpinBox_Zmini->setObjectName(QString::fromUtf8("SpinBox_Zmini"));
-        SpinBox_Zmini->setDecimals(5);
-        SpinBox_Zmini->setMaximum(1e+09);
-        SpinBox_Zmini->setMinimum(-1e+09);
-        SpinBox_Zmini->setValue(0);
+        SpinBox_Zaxis = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Zaxis->setObjectName(QString::fromUtf8("SpinBox_Zaxis"));
+        SpinBox_Zaxis->setDecimals(5);
+        SpinBox_Zaxis->setMinimum(-1e+09);
+        SpinBox_Zaxis->setMaximum(1e+09);
+        SpinBox_Zaxis->setValue(0);
 
-        gridLayout5->addWidget(SpinBox_Zmini, 2, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_Zaxis, 2, 3, 1, 1);
 
-        TLXmaxi = new QLabel(gBBox);
-        TLXmaxi->setObjectName(QString::fromUtf8("TLXmaxi"));
-        sizePolicy.setHeightForWidth(TLXmaxi->sizePolicy().hasHeightForWidth());
-        TLXmaxi->setSizePolicy(sizePolicy);
-        TLXmaxi->setWordWrap(false);
+        TLZaxis = new QLabel(gBCylindre);
+        TLZaxis->setObjectName(QString::fromUtf8("TLZaxis"));
+        sizePolicy.setHeightForWidth(TLZaxis->sizePolicy().hasHeightForWidth());
+        TLZaxis->setSizePolicy(sizePolicy);
+        TLZaxis->setWordWrap(false);
 
-        gridLayout5->addWidget(TLXmaxi, 0, 2, 1, 1);
+        gridLayout4->addWidget(TLZaxis, 2, 2, 1, 1);
 
-        TLZmaxi = new QLabel(gBBox);
-        TLZmaxi->setObjectName(QString::fromUtf8("TLZmaxi"));
-        sizePolicy.setHeightForWidth(TLZmaxi->sizePolicy().hasHeightForWidth());
-        TLZmaxi->setSizePolicy(sizePolicy);
-        TLZmaxi->setWordWrap(false);
+        TLYaxis = new QLabel(gBCylindre);
+        TLYaxis->setObjectName(QString::fromUtf8("TLYaxis"));
+        sizePolicy.setHeightForWidth(TLYaxis->sizePolicy().hasHeightForWidth());
+        TLYaxis->setSizePolicy(sizePolicy);
+        TLYaxis->setWordWrap(false);
 
-        gridLayout5->addWidget(TLZmaxi, 2, 2, 1, 1);
+        gridLayout4->addWidget(TLYaxis, 1, 2, 1, 1);
 
-        SpinBox_Zmaxi = new QDoubleSpinBox(gBBox);
-        SpinBox_Zmaxi->setObjectName(QString::fromUtf8("SpinBox_Zmaxi"));
-        SpinBox_Zmaxi->setDecimals(5);
-        SpinBox_Zmaxi->setMaximum(1e+09);
-        SpinBox_Zmaxi->setMinimum(-1e+09);
-        SpinBox_Zmaxi->setValue(0);
+        TLXaxis = new QLabel(gBCylindre);
+        TLXaxis->setObjectName(QString::fromUtf8("TLXaxis"));
+        sizePolicy.setHeightForWidth(TLXaxis->sizePolicy().hasHeightForWidth());
+        TLXaxis->setSizePolicy(sizePolicy);
+        TLXaxis->setWordWrap(false);
 
-        gridLayout5->addWidget(SpinBox_Zmaxi, 2, 3, 1, 1);
+        gridLayout4->addWidget(TLXaxis, 0, 2, 1, 1);
 
-        TLYmaxi = new QLabel(gBBox);
-        TLYmaxi->setObjectName(QString::fromUtf8("TLYmaxi"));
-        sizePolicy.setHeightForWidth(TLYmaxi->sizePolicy().hasHeightForWidth());
-        TLYmaxi->setSizePolicy(sizePolicy);
-        TLYmaxi->setWordWrap(false);
+        SpinBox_Ybase = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Ybase->setObjectName(QString::fromUtf8("SpinBox_Ybase"));
+        SpinBox_Ybase->setDecimals(5);
+        SpinBox_Ybase->setMinimum(-1e+09);
+        SpinBox_Ybase->setMaximum(1e+09);
+        SpinBox_Ybase->setValue(0);
 
-        gridLayout5->addWidget(TLYmaxi, 1, 2, 1, 1);
+        gridLayout4->addWidget(SpinBox_Ybase, 1, 1, 1, 1);
 
-        SpinBox_Xmaxi = new QDoubleSpinBox(gBBox);
-        SpinBox_Xmaxi->setObjectName(QString::fromUtf8("SpinBox_Xmaxi"));
-        SpinBox_Xmaxi->setDecimals(5);
-        SpinBox_Xmaxi->setMaximum(1e+09);
-        SpinBox_Xmaxi->setMinimum(-1e+09);
-        SpinBox_Xmaxi->setValue(0);
+        TLYbase = new QLabel(gBCylindre);
+        TLYbase->setObjectName(QString::fromUtf8("TLYbase"));
+        sizePolicy.setHeightForWidth(TLYbase->sizePolicy().hasHeightForWidth());
+        TLYbase->setSizePolicy(sizePolicy);
+        TLYbase->setWordWrap(false);
 
-        gridLayout5->addWidget(SpinBox_Xmaxi, 0, 3, 1, 1);
+        gridLayout4->addWidget(TLYbase, 1, 0, 1, 1);
 
-        SpinBox_Ymaxi = new QDoubleSpinBox(gBBox);
-        SpinBox_Ymaxi->setObjectName(QString::fromUtf8("SpinBox_Ymaxi"));
-        SpinBox_Ymaxi->setDecimals(5);
-        SpinBox_Ymaxi->setMaximum(1e+09);
-        SpinBox_Ymaxi->setMinimum(-1e+09);
-        SpinBox_Ymaxi->setValue(0);
+        TLZbase = new QLabel(gBCylindre);
+        TLZbase->setObjectName(QString::fromUtf8("TLZbase"));
+        sizePolicy.setHeightForWidth(TLZbase->sizePolicy().hasHeightForWidth());
+        TLZbase->setSizePolicy(sizePolicy);
+        TLZbase->setWordWrap(false);
 
-        gridLayout5->addWidget(SpinBox_Ymaxi, 1, 3, 1, 1);
+        gridLayout4->addWidget(TLZbase, 2, 0, 1, 1);
 
+        SpinBox_Zbase = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Zbase->setObjectName(QString::fromUtf8("SpinBox_Zbase"));
+        SpinBox_Zbase->setDecimals(5);
+        SpinBox_Zbase->setMinimum(-1e+09);
+        SpinBox_Zbase->setMaximum(1e+09);
+        SpinBox_Zbase->setValue(0);
 
-        gridLayout->addWidget(gBBox, 2, 0, 1, 2);
+        gridLayout4->addWidget(SpinBox_Zbase, 2, 1, 1, 1);
 
-        LEName = new QLineEdit(CreateZone);
-        LEName->setObjectName(QString::fromUtf8("LEName"));
-        LEName->setMaxLength(32);
+        SpinBox_Radius = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Radius->setObjectName(QString::fromUtf8("SpinBox_Radius"));
+        SpinBox_Radius->setDecimals(5);
+        SpinBox_Radius->setMaximum(1e+09);
 
-        gridLayout->addWidget(LEName, 0, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_Radius, 3, 1, 1, 1);
 
-        Name = new QLabel(CreateZone);
-        Name->setObjectName(QString::fromUtf8("Name"));
+        TLXbase = new QLabel(gBCylindre);
+        TLXbase->setObjectName(QString::fromUtf8("TLXbase"));
+        sizePolicy.setHeightForWidth(TLXbase->sizePolicy().hasHeightForWidth());
+        TLXbase->setSizePolicy(sizePolicy);
+        TLXbase->setWordWrap(false);
 
-        gridLayout->addWidget(Name, 0, 0, 1, 1);
+        gridLayout4->addWidget(TLXbase, 0, 0, 1, 1);
+
+        SpinBox_Xbase = new QDoubleSpinBox(gBCylindre);
+        SpinBox_Xbase->setObjectName(QString::fromUtf8("SpinBox_Xbase"));
+        SpinBox_Xbase->setDecimals(5);
+        SpinBox_Xbase->setMinimum(-1e+09);
+        SpinBox_Xbase->setMaximum(1e+09);
+        SpinBox_Xbase->setValue(0);
+
+        gridLayout4->addWidget(SpinBox_Xbase, 0, 1, 1, 1);
+
+
+        gridLayout->addWidget(gBCylindre, 4, 0, 1, 4);
 
         gBPipe = new QGroupBox(CreateZone);
         gBPipe->setObjectName(QString::fromUtf8("gBPipe"));
         sizePolicy.setHeightForWidth(gBPipe->sizePolicy().hasHeightForWidth());
         gBPipe->setSizePolicy(sizePolicy);
-        gridLayout6 = new QGridLayout(gBPipe);
+        gridLayout5 = new QGridLayout(gBPipe);
 #ifndef Q_OS_MAC
-        gridLayout6->setSpacing(6);
+        gridLayout5->setSpacing(6);
 #endif
 #ifndef Q_OS_MAC
-        gridLayout6->setContentsMargins(9, 9, 9, 9);
+        gridLayout5->setContentsMargins(9, 9, 9, 9);
 #endif
-        gridLayout6->setObjectName(QString::fromUtf8("gridLayout6"));
+        gridLayout5->setObjectName(QString::fromUtf8("gridLayout5"));
         TLHaut_p = new QLabel(gBPipe);
         TLHaut_p->setObjectName(QString::fromUtf8("TLHaut_p"));
         sizePolicy.setHeightForWidth(TLHaut_p->sizePolicy().hasHeightForWidth());
         TLHaut_p->setSizePolicy(sizePolicy);
         TLHaut_p->setWordWrap(false);
 
-        gridLayout6->addWidget(TLHaut_p, 4, 0, 1, 1);
+        gridLayout5->addWidget(TLHaut_p, 4, 0, 1, 1);
 
         SpinBox_Xbase_p = new QDoubleSpinBox(gBPipe);
         SpinBox_Xbase_p->setObjectName(QString::fromUtf8("SpinBox_Xbase_p"));
         SpinBox_Xbase_p->setDecimals(5);
-        SpinBox_Xbase_p->setMaximum(1e+09);
         SpinBox_Xbase_p->setMinimum(-1e+09);
+        SpinBox_Xbase_p->setMaximum(1e+09);
         SpinBox_Xbase_p->setValue(0);
 
-        gridLayout6->addWidget(SpinBox_Xbase_p, 0, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_Xbase_p, 0, 1, 1, 1);
 
         TLXbase_p = new QLabel(gBPipe);
         TLXbase_p->setObjectName(QString::fromUtf8("TLXbase_p"));
@@ -600,23 +577,23 @@ public:
         TLXbase_p->setSizePolicy(sizePolicy);
         TLXbase_p->setWordWrap(false);
 
-        gridLayout6->addWidget(TLXbase_p, 0, 0, 1, 1);
+        gridLayout5->addWidget(TLXbase_p, 0, 0, 1, 1);
 
         SpinBox_Radius_int = new QDoubleSpinBox(gBPipe);
         SpinBox_Radius_int->setObjectName(QString::fromUtf8("SpinBox_Radius_int"));
         SpinBox_Radius_int->setDecimals(5);
         SpinBox_Radius_int->setMaximum(1e+09);
 
-        gridLayout6->addWidget(SpinBox_Radius_int, 3, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_Radius_int, 3, 1, 1, 1);
 
         SpinBox_Zbase_p = new QDoubleSpinBox(gBPipe);
         SpinBox_Zbase_p->setObjectName(QString::fromUtf8("SpinBox_Zbase_p"));
         SpinBox_Zbase_p->setDecimals(5);
-        SpinBox_Zbase_p->setMaximum(1e+09);
         SpinBox_Zbase_p->setMinimum(-1e+09);
+        SpinBox_Zbase_p->setMaximum(1e+09);
         SpinBox_Zbase_p->setValue(0);
 
-        gridLayout6->addWidget(SpinBox_Zbase_p, 2, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_Zbase_p, 2, 1, 1, 1);
 
         TLRadius_int = new QLabel(gBPipe);
         TLRadius_int->setObjectName(QString::fromUtf8("TLRadius_int"));
@@ -624,7 +601,7 @@ public:
         TLRadius_int->setSizePolicy(sizePolicy);
         TLRadius_int->setWordWrap(false);
 
-        gridLayout6->addWidget(TLRadius_int, 3, 0, 1, 1);
+        gridLayout5->addWidget(TLRadius_int, 3, 0, 1, 1);
 
         TLZbase_p = new QLabel(gBPipe);
         TLZbase_p->setObjectName(QString::fromUtf8("TLZbase_p"));
@@ -632,7 +609,7 @@ public:
         TLZbase_p->setSizePolicy(sizePolicy);
         TLZbase_p->setWordWrap(false);
 
-        gridLayout6->addWidget(TLZbase_p, 2, 0, 1, 1);
+        gridLayout5->addWidget(TLZbase_p, 2, 0, 1, 1);
 
         TLYbase_p = new QLabel(gBPipe);
         TLYbase_p->setObjectName(QString::fromUtf8("TLYbase_p"));
@@ -640,16 +617,16 @@ public:
         TLYbase_p->setSizePolicy(sizePolicy);
         TLYbase_p->setWordWrap(false);
 
-        gridLayout6->addWidget(TLYbase_p, 1, 0, 1, 1);
+        gridLayout5->addWidget(TLYbase_p, 1, 0, 1, 1);
 
         SpinBox_Ybase_p = new QDoubleSpinBox(gBPipe);
         SpinBox_Ybase_p->setObjectName(QString::fromUtf8("SpinBox_Ybase_p"));
         SpinBox_Ybase_p->setDecimals(5);
-        SpinBox_Ybase_p->setMaximum(1e+09);
         SpinBox_Ybase_p->setMinimum(-1e+09);
+        SpinBox_Ybase_p->setMaximum(1e+09);
         SpinBox_Ybase_p->setValue(0);
 
-        gridLayout6->addWidget(SpinBox_Ybase_p, 1, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_Ybase_p, 1, 1, 1, 1);
 
         TLXaxis_p = new QLabel(gBPipe);
         TLXaxis_p->setObjectName(QString::fromUtf8("TLXaxis_p"));
@@ -657,7 +634,7 @@ public:
         TLXaxis_p->setSizePolicy(sizePolicy);
         TLXaxis_p->setWordWrap(false);
 
-        gridLayout6->addWidget(TLXaxis_p, 0, 2, 1, 1);
+        gridLayout5->addWidget(TLXaxis_p, 0, 2, 1, 1);
 
         TLYaxis_p = new QLabel(gBPipe);
         TLYaxis_p->setObjectName(QString::fromUtf8("TLYaxis_p"));
@@ -665,7 +642,7 @@ public:
         TLYaxis_p->setSizePolicy(sizePolicy);
         TLYaxis_p->setWordWrap(false);
 
-        gridLayout6->addWidget(TLYaxis_p, 1, 2, 1, 1);
+        gridLayout5->addWidget(TLYaxis_p, 1, 2, 1, 1);
 
         TLZaxis_p = new QLabel(gBPipe);
         TLZaxis_p->setObjectName(QString::fromUtf8("TLZaxis_p"));
@@ -673,41 +650,41 @@ public:
         TLZaxis_p->setSizePolicy(sizePolicy);
         TLZaxis_p->setWordWrap(false);
 
-        gridLayout6->addWidget(TLZaxis_p, 2, 2, 1, 1);
+        gridLayout5->addWidget(TLZaxis_p, 2, 2, 1, 1);
 
         SpinBox_Zaxis_p = new QDoubleSpinBox(gBPipe);
         SpinBox_Zaxis_p->setObjectName(QString::fromUtf8("SpinBox_Zaxis_p"));
         SpinBox_Zaxis_p->setDecimals(5);
-        SpinBox_Zaxis_p->setMaximum(1e+09);
         SpinBox_Zaxis_p->setMinimum(-1e+09);
+        SpinBox_Zaxis_p->setMaximum(1e+09);
         SpinBox_Zaxis_p->setValue(0);
 
-        gridLayout6->addWidget(SpinBox_Zaxis_p, 2, 3, 1, 1);
+        gridLayout5->addWidget(SpinBox_Zaxis_p, 2, 3, 1, 1);
 
         SpinBox_Yaxis_p = new QDoubleSpinBox(gBPipe);
         SpinBox_Yaxis_p->setObjectName(QString::fromUtf8("SpinBox_Yaxis_p"));
         SpinBox_Yaxis_p->setDecimals(5);
-        SpinBox_Yaxis_p->setMaximum(1e+09);
         SpinBox_Yaxis_p->setMinimum(-1e+09);
+        SpinBox_Yaxis_p->setMaximum(1e+09);
         SpinBox_Yaxis_p->setValue(0);
 
-        gridLayout6->addWidget(SpinBox_Yaxis_p, 1, 3, 1, 1);
+        gridLayout5->addWidget(SpinBox_Yaxis_p, 1, 3, 1, 1);
 
         SpinBox_Xaxis_p = new QDoubleSpinBox(gBPipe);
         SpinBox_Xaxis_p->setObjectName(QString::fromUtf8("SpinBox_Xaxis_p"));
         SpinBox_Xaxis_p->setDecimals(5);
-        SpinBox_Xaxis_p->setMaximum(1e+09);
         SpinBox_Xaxis_p->setMinimum(-1e+09);
+        SpinBox_Xaxis_p->setMaximum(1e+09);
         SpinBox_Xaxis_p->setValue(0);
 
-        gridLayout6->addWidget(SpinBox_Xaxis_p, 0, 3, 1, 1);
+        gridLayout5->addWidget(SpinBox_Xaxis_p, 0, 3, 1, 1);
 
         SpinBox_Radius_ext = new QDoubleSpinBox(gBPipe);
         SpinBox_Radius_ext->setObjectName(QString::fromUtf8("SpinBox_Radius_ext"));
         SpinBox_Radius_ext->setDecimals(5);
         SpinBox_Radius_ext->setMaximum(1e+09);
 
-        gridLayout6->addWidget(SpinBox_Radius_ext, 3, 3, 1, 1);
+        gridLayout5->addWidget(SpinBox_Radius_ext, 3, 3, 1, 1);
 
         TLRadius_ext = new QLabel(gBPipe);
         TLRadius_ext->setObjectName(QString::fromUtf8("TLRadius_ext"));
@@ -715,17 +692,56 @@ public:
         TLRadius_ext->setSizePolicy(sizePolicy);
         TLRadius_ext->setWordWrap(false);
 
-        gridLayout6->addWidget(TLRadius_ext, 3, 2, 1, 1);
+        gridLayout5->addWidget(TLRadius_ext, 3, 2, 1, 1);
 
         SpinBox_Haut_p = new QDoubleSpinBox(gBPipe);
         SpinBox_Haut_p->setObjectName(QString::fromUtf8("SpinBox_Haut_p"));
         SpinBox_Haut_p->setDecimals(5);
         SpinBox_Haut_p->setMaximum(1e+09);
 
-        gridLayout6->addWidget(SpinBox_Haut_p, 4, 1, 1, 1);
+        gridLayout5->addWidget(SpinBox_Haut_p, 4, 1, 1, 1);
+
+
+        gridLayout->addWidget(gBPipe, 5, 0, 1, 5);
+
+        GBButtons = new QGroupBox(CreateZone);
+        GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
+        sizePolicy.setHeightForWidth(GBButtons->sizePolicy().hasHeightForWidth());
+        GBButtons->setSizePolicy(sizePolicy);
+        gridLayout6 = new QGridLayout(GBButtons);
+#ifndef Q_OS_MAC
+        gridLayout6->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout6->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout6->setObjectName(QString::fromUtf8("gridLayout6"));
+        buttonHelp = new QPushButton(GBButtons);
+        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+
+        gridLayout6->addWidget(buttonHelp, 0, 3, 1, 1);
+
+        buttonCancel = new QPushButton(GBButtons);
+        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+
+        gridLayout6->addWidget(buttonCancel, 0, 2, 1, 1);
+
+        buttonApply = new QPushButton(GBButtons);
+        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+
+        gridLayout6->addWidget(buttonApply, 0, 1, 1, 1);
+
+        buttonOk = new QPushButton(GBButtons);
+        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+
+        gridLayout6->addWidget(buttonOk, 0, 0, 1, 1);
+
+
+        gridLayout->addWidget(GBButtons, 6, 0, 1, 3);
 
+        horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout->addWidget(gBPipe, 5, 0, 1, 2);
+        gridLayout->addItem(horizontalSpacer, 6, 3, 1, 2);
 
 
         retranslateUi(CreateZone);
@@ -736,16 +752,24 @@ public:
     void retranslateUi(QDialog *CreateZone)
     {
         CreateZone->setWindowTitle(QApplication::translate("CreateZone", "Create a zone", 0, QApplication::UnicodeUTF8));
-        GBButtons->setTitle(QString());
-        buttonHelp->setText(QApplication::translate("CreateZone", "Help", 0, QApplication::UnicodeUTF8));
-        buttonCancel->setText(QApplication::translate("CreateZone", "Cancel", 0, QApplication::UnicodeUTF8));
-        buttonApply->setText(QApplication::translate("CreateZone", "Apply", 0, QApplication::UnicodeUTF8));
-        buttonOk->setText(QApplication::translate("CreateZone", "OK", 0, QApplication::UnicodeUTF8));
+        Name->setText(QApplication::translate("CreateZone", "Name", 0, QApplication::UnicodeUTF8));
         TypeZone->setTitle(QApplication::translate("CreateZone", "Type of zone", 0, QApplication::UnicodeUTF8));
         RBSphere->setText(QApplication::translate("CreateZone", "Sphere", 0, QApplication::UnicodeUTF8));
         RBPipe->setText(QApplication::translate("CreateZone", "Pipe", 0, QApplication::UnicodeUTF8));
         RBCylinder->setText(QApplication::translate("CreateZone", "Cylinder", 0, QApplication::UnicodeUTF8));
         RBBox->setText(QApplication::translate("CreateZone", "Box", 0, QApplication::UnicodeUTF8));
+        gBBox->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
+        TLXmini->setText(QApplication::translate("CreateZone", "X mini", 0, QApplication::UnicodeUTF8));
+        TLYmini->setText(QApplication::translate("CreateZone", "Y mini", 0, QApplication::UnicodeUTF8));
+        TLZmini->setText(QApplication::translate("CreateZone", "Z mini", 0, QApplication::UnicodeUTF8));
+        TLXmaxi->setText(QApplication::translate("CreateZone", "X maxi", 0, QApplication::UnicodeUTF8));
+        TLZmaxi->setText(QApplication::translate("CreateZone", "Z maxi", 0, QApplication::UnicodeUTF8));
+        TLYmaxi->setText(QApplication::translate("CreateZone", "Y maxi", 0, QApplication::UnicodeUTF8));
+        gBSphere->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
+        TLXcentre->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
+        TLYcentre->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
+        TLRayon->setText(QApplication::translate("CreateZone", "Radius", 0, QApplication::UnicodeUTF8));
+        TLZcentre->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8));
         gBCylindre->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
         TLHaut->setText(QApplication::translate("CreateZone", "Height", 0, QApplication::UnicodeUTF8));
         TLRadius->setText(QApplication::translate("CreateZone", "Radius", 0, QApplication::UnicodeUTF8));
@@ -755,19 +779,6 @@ public:
         TLYbase->setText(QApplication::translate("CreateZone", "Y base", 0, QApplication::UnicodeUTF8));
         TLZbase->setText(QApplication::translate("CreateZone", "Z base", 0, QApplication::UnicodeUTF8));
         TLXbase->setText(QApplication::translate("CreateZone", "X base", 0, QApplication::UnicodeUTF8));
-        gBSphere->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
-        TLXcentre->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
-        TLYcentre->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
-        TLRayon->setText(QApplication::translate("CreateZone", "Radius", 0, QApplication::UnicodeUTF8));
-        TLZcentre->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8));
-        gBBox->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
-        TLXmini->setText(QApplication::translate("CreateZone", "X mini", 0, QApplication::UnicodeUTF8));
-        TLYmini->setText(QApplication::translate("CreateZone", "Y mini", 0, QApplication::UnicodeUTF8));
-        TLZmini->setText(QApplication::translate("CreateZone", "Z mini", 0, QApplication::UnicodeUTF8));
-        TLXmaxi->setText(QApplication::translate("CreateZone", "X maxi", 0, QApplication::UnicodeUTF8));
-        TLZmaxi->setText(QApplication::translate("CreateZone", "Z maxi", 0, QApplication::UnicodeUTF8));
-        TLYmaxi->setText(QApplication::translate("CreateZone", "Y maxi", 0, QApplication::UnicodeUTF8));
-        Name->setText(QApplication::translate("CreateZone", "Name", 0, QApplication::UnicodeUTF8));
         gBPipe->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
         TLHaut_p->setText(QApplication::translate("CreateZone", "Height", 0, QApplication::UnicodeUTF8));
         TLXbase_p->setText(QApplication::translate("CreateZone", "X base", 0, QApplication::UnicodeUTF8));
@@ -778,6 +789,11 @@ public:
         TLYaxis_p->setText(QApplication::translate("CreateZone", "Y axis", 0, QApplication::UnicodeUTF8));
         TLZaxis_p->setText(QApplication::translate("CreateZone", "Z axis", 0, QApplication::UnicodeUTF8));
         TLRadius_ext->setText(QApplication::translate("CreateZone", "External radius", 0, QApplication::UnicodeUTF8));
+        GBButtons->setTitle(QString());
+        buttonHelp->setText(QApplication::translate("CreateZone", "Help", 0, QApplication::UnicodeUTF8));
+        buttonCancel->setText(QApplication::translate("CreateZone", "Cancel", 0, QApplication::UnicodeUTF8));
+        buttonApply->setText(QApplication::translate("CreateZone", "Apply", 0, QApplication::UnicodeUTF8));
+        buttonOk->setText(QApplication::translate("CreateZone", "OK", 0, QApplication::UnicodeUTF8));
     } // retranslateUi
 
 };
index 112e4f6c0ba12bad8ba385ceff0f3a6d3e0eb555..84a607516cd01eb0996c83aae0c1c6020e0b1117 100644 (file)
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>CreateZone</class>
- <widget class="QDialog" name="CreateZone" >
-  <property name="geometry" >
+ <widget class="QDialog" name="CreateZone">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>551</width>
-    <height>880</height>
+    <width>545</width>
+    <height>778</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="sizeIncrement">
+   <size>
+    <width>1</width>
+    <height>1</height>
+   </size>
+  </property>
+  <property name="baseSize">
+   <size>
+    <width>550</width>
+    <height>400</height>
+   </size>
+  </property>
+  <property name="windowTitle">
    <string>Create a zone</string>
   </property>
-  <property name="autoFillBackground" >
+  <property name="autoFillBackground">
    <bool>true</bool>
   </property>
-  <property name="sizeGripEnabled" >
+  <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" >
-   <property name="margin" >
-    <number>9</number>
-   </property>
-   <property name="spacing" >
-    <number>6</number>
-   </property>
-   <item row="6" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBButtons" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>0</hsizetype>
-       <vsizetype>0</vsizetype>
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <widget class="QLabel" name="Name">
+     <property name="text">
+      <string>Name</string>
      </property>
-     <property name="title" >
-      <string/>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLineEdit" name="LEName">
+     <property name="maxLength">
+      <number>32</number>
      </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
-       <number>9</number>
-      </property>
-      <property name="spacing" >
-       <number>6</number>
-      </property>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
-         <string>Help</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonCancel" >
-        <property name="text" >
-         <string>Cancel</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonApply" >
-        <property name="text" >
-         <string>Apply</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" >
-       <widget class="QPushButton" name="buttonOk" >
-        <property name="text" >
-         <string>OK</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
     </widget>
    </item>
-   <item row="1" column="0" colspan="2" >
-    <widget class="QGroupBox" name="TypeZone" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>0</hsizetype>
-       <vsizetype>0</vsizetype>
+   <item row="0" column="2">
+    <spacer name="horizontalSpacer_3">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>142</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="1" column="0" colspan="4">
+    <widget class="QGroupBox" name="TypeZone">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="minimumSize" >
+     <property name="minimumSize">
       <size>
        <width>340</width>
        <height>0</height>
       </size>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Type of zone</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="3" >
-       <widget class="QRadioButton" name="RBSphere" >
-        <property name="text" >
+      <item row="0" column="3">
+       <widget class="QRadioButton" name="RBSphere">
+        <property name="text">
          <string>Sphere</string>
         </property>
-        <property name="icon" >
-         <iconset>../../resources/zone_spherepoint.png</iconset>
+        <property name="icon">
+         <iconset>
+          <normaloff>../../resources/zone_spherepoint.png</normaloff>../../resources/zone_spherepoint.png</iconset>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QRadioButton" name="RBPipe" >
-        <property name="text" >
+      <item row="0" column="2">
+       <widget class="QRadioButton" name="RBPipe">
+        <property name="text">
          <string>Pipe</string>
         </property>
-        <property name="icon" >
-         <iconset>../../resources/pipe.png</iconset>
+        <property name="icon">
+         <iconset>
+          <normaloff>../../resources/pipe.png</normaloff>../../resources/pipe.png</iconset>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QRadioButton" name="RBCylinder" >
-        <property name="text" >
+      <item row="0" column="1">
+       <widget class="QRadioButton" name="RBCylinder">
+        <property name="text">
          <string>Cylinder</string>
         </property>
-        <property name="icon" >
-         <iconset>../../resources/cylinderpointvector.png</iconset>
+        <property name="icon">
+         <iconset>
+          <normaloff>../../resources/cylinderpointvector.png</normaloff>../../resources/cylinderpointvector.png</iconset>
         </property>
        </widget>
       </item>
-      <item row="0" column="0" >
-       <widget class="QRadioButton" name="RBBox" >
-        <property name="text" >
+      <item row="0" column="0">
+       <widget class="QRadioButton" name="RBBox">
+        <property name="text">
          <string>Box</string>
         </property>
-        <property name="icon" >
-         <iconset>../../resources/zone_boxdxyz.png</iconset>
+        <property name="icon">
+         <iconset>
+          <normaloff>../../resources/zone_boxdxyz.png</normaloff>../../resources/zone_boxdxyz.png</iconset>
         </property>
-        <property name="checkable" >
+        <property name="checkable">
          <bool>true</bool>
         </property>
-        <property name="checked" >
+        <property name="checked">
          <bool>true</bool>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="4" column="0" colspan="2" >
-    <widget class="QGroupBox" name="gBCylindre" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>0</hsizetype>
-       <vsizetype>0</vsizetype>
+   <item row="1" column="4">
+    <spacer name="horizontalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="2" column="0" colspan="4">
+    <widget class="QGroupBox" name="gBBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="focusPolicy" >
-      <enum>Qt::TabFocus</enum>
-     </property>
-     <property name="title" >
+     <property name="title">
       <string>Coordinates</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="4" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Haut" >
-        <property name="decimals" >
-         <number>5</number>
-        </property>
-        <property name="maximum" >
-         <double>1000000000.000000000000000</double>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="0" >
-       <widget class="QLabel" name="TLHaut" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text" >
-         <string>Height</string>
-        </property>
-        <property name="wordWrap" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0" >
-       <widget class="QLabel" name="TLRadius" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="0" column="0">
+       <widget class="QLabel" name="TLXmini">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Radius</string>
+        <property name="text">
+         <string>X mini</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Xaxis" >
-        <property name="decimals" >
-         <number>5</number>
-        </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
-         <double>-999999999.000000000000000</double>
-        </property>
-        <property name="value" >
-         <double>0.000000000000000</double>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Yaxis" >
-        <property name="decimals" >
+      <item row="0" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Xmini">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
-         <double>0.000000000000000</double>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Zaxis" >
-        <property name="decimals" >
-         <number>5</number>
-        </property>
-        <property name="maximum" >
+        <property name="maximum">
          <double>999999999.000000000000000</double>
         </property>
-        <property name="minimum" >
-         <double>-999999999.000000000000000</double>
-        </property>
-        <property name="value" >
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="2" column="2" >
-       <widget class="QLabel" name="TLZaxis" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="1" column="0">
+       <widget class="QLabel" name="TLYmini">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Z axis</string>
+        <property name="text">
+         <string>Y mini</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="2" >
-       <widget class="QLabel" name="TLYaxis" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
+      <item row="1" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Ymini">
+        <property name="decimals">
+         <number>5</number>
         </property>
-        <property name="text" >
-         <string>Y axis</string>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
         </property>
-        <property name="wordWrap" >
-         <bool>false</bool>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QLabel" name="TLXaxis" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="2" column="0">
+       <widget class="QLabel" name="TLZmini">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>X axis</string>
+        <property name="text">
+         <string>Z mini</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Ybase" >
-        <property name="decimals" >
+      <item row="2" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Zmini">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" >
-       <widget class="QLabel" name="TLYbase" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="0" column="2">
+       <widget class="QLabel" name="TLXmaxi">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Y base</string>
+        <property name="text">
+         <string>X maxi</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="0" >
-       <widget class="QLabel" name="TLZbase" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="2" column="2">
+       <widget class="QLabel" name="TLZmaxi">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Z base</string>
+        <property name="text">
+         <string>Z maxi</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Zbase" >
-        <property name="decimals" >
+      <item row="2" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Zmaxi">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
-         <double>0.000000000000000</double>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Radius" >
-        <property name="decimals" >
-         <number>5</number>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
         </property>
-        <property name="maximum" >
-         <double>1000000000.000000000000000</double>
+        <property name="value">
+         <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="TLXbase" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="1" column="2">
+       <widget class="QLabel" name="TLYmaxi">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>X base</string>
+        <property name="text">
+         <string>Y maxi</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Xbase" >
-        <property name="decimals" >
+      <item row="0" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Xmaxi">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
          <double>999999999.000000000000000</double>
         </property>
-        <property name="minimum" >
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Ymaxi">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="3" column="0" colspan="2" >
-    <widget class="QGroupBox" name="gBSphere" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>0</hsizetype>
-       <vsizetype>0</vsizetype>
+   <item row="3" column="0" colspan="4">
+    <widget class="QGroupBox" name="gBSphere">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Coordinates</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="QLabel" name="TLXcentre" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="0" column="0">
+       <widget class="QLabel" name="TLXcentre">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>X centre</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Xcentre" >
-        <property name="decimals" >
+      <item row="0" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Xcentre">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" >
-       <widget class="QLabel" name="TLYcentre" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="1" column="0">
+       <widget class="QLabel" name="TLYcentre">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Y centre</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Ycentre" >
-        <property name="decimals" >
+      <item row="1" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Ycentre">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="2" >
-       <widget class="QLabel" name="TLRayon" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="1" column="2">
+       <widget class="QLabel" name="TLRayon">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Radius</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Rayon" >
-        <property name="decimals" >
+      <item row="1" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Rayon">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
+        <property name="minimum">
+         <double>0.000000000000000</double>
         </property>
-        <property name="minimum" >
-         <double>-999999999.000000000000000</double>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="2" column="0" >
-       <widget class="QLabel" name="TLZcentre" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="2" column="0">
+       <widget class="QLabel" name="TLZcentre">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Z centre</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Zcentre" >
-        <property name="decimals" >
+      <item row="2" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Zcentre">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="2" column="0" colspan="2" >
-    <widget class="QGroupBox" name="gBBox" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>0</hsizetype>
-       <vsizetype>0</vsizetype>
+   <item row="4" column="0" colspan="4">
+    <widget class="QGroupBox" name="gBCylindre">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="focusPolicy">
+      <enum>Qt::TabFocus</enum>
+     </property>
+     <property name="title">
       <string>Coordinates</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="QLabel" name="TLXmini" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="4" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Haut">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="maximum">
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="0">
+       <widget class="QLabel" name="TLHaut">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>X mini</string>
+        <property name="text">
+         <string>Height</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Xmini" >
-        <property name="decimals" >
+      <item row="3" column="0">
+       <widget class="QLabel" name="TLRadius">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Radius</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Xaxis">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
          <double>999999999.000000000000000</double>
         </property>
-        <property name="minimum" >
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Yaxis">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Zaxis">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" >
-       <widget class="QLabel" name="TLYmini" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="2" column="2">
+       <widget class="QLabel" name="TLZaxis">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Y mini</string>
+        <property name="text">
+         <string>Z axis</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Ymini" >
-        <property name="decimals" >
-         <number>5</number>
-        </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
+      <item row="1" column="2">
+       <widget class="QLabel" name="TLYaxis">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
         </property>
-        <property name="minimum" >
-         <double>-999999999.000000000000000</double>
+        <property name="text">
+         <string>Y axis</string>
         </property>
-        <property name="value" >
-         <double>0.000000000000000</double>
+        <property name="wordWrap">
+         <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="0" >
-       <widget class="QLabel" name="TLZmini" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="0" column="2">
+       <widget class="QLabel" name="TLXaxis">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Z mini</string>
+        <property name="text">
+         <string>X axis</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Zmini" >
-        <property name="decimals" >
+      <item row="1" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Ybase">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QLabel" name="TLXmaxi" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="1" column="0">
+       <widget class="QLabel" name="TLYbase">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>X maxi</string>
+        <property name="text">
+         <string>Y base</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="2" >
-       <widget class="QLabel" name="TLZmaxi" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="2" column="0">
+       <widget class="QLabel" name="TLZbase">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Z maxi</string>
+        <property name="text">
+         <string>Z base</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Zmaxi" >
-        <property name="decimals" >
+      <item row="2" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Zbase">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="2" >
-       <widget class="QLabel" name="TLYmaxi" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="3" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Radius">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+        <property name="maximum">
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QLabel" name="TLXbase">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
-         <string>Y maxi</string>
+        <property name="text">
+         <string>X base</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Xmaxi" >
-        <property name="decimals" >
+      <item row="0" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Xbase">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
-         <double>0.000000000000000</double>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Ymaxi" >
-        <property name="decimals" >
-         <number>5</number>
-        </property>
-        <property name="maximum" >
+        <property name="maximum">
          <double>999999999.000000000000000</double>
         </property>
-        <property name="minimum" >
-         <double>-999999999.000000000000000</double>
-        </property>
-        <property name="value" >
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="0" column="1" >
-    <widget class="QLineEdit" name="LEName" >
-     <property name="maxLength" >
-      <number>32</number>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="0" >
-    <widget class="QLabel" name="Name" >
-     <property name="text" >
-      <string>Name</string>
-     </property>
-    </widget>
-   </item>
-   <item row="5" column="0" colspan="2" >
-    <widget class="QGroupBox" name="gBPipe" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>0</hsizetype>
-       <vsizetype>0</vsizetype>
+   <item row="5" column="0" colspan="5">
+    <widget class="QGroupBox" name="gBPipe">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Coordinates</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="4" column="0" >
-       <widget class="QLabel" name="TLHaut_p" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="4" column="0">
+       <widget class="QLabel" name="TLHaut_p">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Height</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Xbase_p" >
-        <property name="decimals" >
+      <item row="0" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Xbase_p">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="TLXbase_p" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="0" column="0">
+       <widget class="QLabel" name="TLXbase_p">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>X base</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="3" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Radius_int" >
-        <property name="decimals" >
+      <item row="3" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Radius_int">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
+        <property name="maximum">
          <double>1000000000.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="2" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Zbase_p" >
-        <property name="decimals" >
+      <item row="2" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Zbase_p">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="3" column="0" >
-       <widget class="QLabel" name="TLRadius_int" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="3" column="0">
+       <widget class="QLabel" name="TLRadius_int">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Internal radius</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="0" >
-       <widget class="QLabel" name="TLZbase_p" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="2" column="0">
+       <widget class="QLabel" name="TLZbase_p">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Z base</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" >
-       <widget class="QLabel" name="TLYbase_p" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="1" column="0">
+       <widget class="QLabel" name="TLYbase_p">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Y base</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Ybase_p" >
-        <property name="decimals" >
+      <item row="1" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Ybase_p">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QLabel" name="TLXaxis_p" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="0" column="2">
+       <widget class="QLabel" name="TLXaxis_p">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>X axis</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="2" >
-       <widget class="QLabel" name="TLYaxis_p" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="1" column="2">
+       <widget class="QLabel" name="TLYaxis_p">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Y axis</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="2" >
-       <widget class="QLabel" name="TLZaxis_p" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="2" column="2">
+       <widget class="QLabel" name="TLZaxis_p">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>Z axis</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Zaxis_p" >
-        <property name="decimals" >
+      <item row="2" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Zaxis_p">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Yaxis_p" >
-        <property name="decimals" >
+      <item row="1" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Yaxis_p">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Xaxis_p" >
-        <property name="decimals" >
+      <item row="0" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Xaxis_p">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="minimum" >
+        <property name="minimum">
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="value" >
+        <property name="maximum">
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="value">
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="3" column="3" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Radius_ext" >
-        <property name="decimals" >
+      <item row="3" column="3">
+       <widget class="QDoubleSpinBox" name="SpinBox_Radius_ext">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
+        <property name="maximum">
          <double>1000000000.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="3" column="2" >
-       <widget class="QLabel" name="TLRadius_ext" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="3" column="2">
+       <widget class="QLabel" name="TLRadius_ext">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>External radius</string>
         </property>
-        <property name="wordWrap" >
+        <property name="wordWrap">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="4" column="1" >
-       <widget class="QDoubleSpinBox" name="SpinBox_Haut_p" >
-        <property name="decimals" >
+      <item row="4" column="1">
+       <widget class="QDoubleSpinBox" name="SpinBox_Haut_p">
+        <property name="decimals">
          <number>5</number>
         </property>
-        <property name="maximum" >
+        <property name="maximum">
          <double>1000000000.000000000000000</double>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
+   <item row="6" column="0" colspan="3">
+    <widget class="QGroupBox" name="GBButtons">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title">
+      <string/>
+     </property>
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="3">
+       <widget class="QPushButton" name="buttonHelp">
+        <property name="text">
+         <string>Help</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QPushButton" name="buttonCancel">
+        <property name="text">
+         <string>Cancel</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="buttonApply">
+        <property name="text">
+         <string>Apply</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QPushButton" name="buttonOk">
+        <property name="text">
+         <string>OK</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="6" column="3" colspan="2">
+    <spacer name="horizontalSpacer">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
   </layout>
  </widget>
  <resources/>
index 4ea5c5b65a997853e798f92141f15dca37172aeb..3c60dbefbf733d6b77136a6c6c87dcff803c5ee5 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -91,8 +91,6 @@ HOMARDGUI::HOMARDGUI(const QString&) :
            SalomeApp_Module( "HOMARD" ) // default name
 {
 }
-
-
 //=======================================================================
 // function : ~HOMARDGUI()
 // purpose  : Destructor
@@ -123,6 +121,7 @@ void HOMARDGUI::initialize( CAM_Application* app )
   anId = 0;
   createActions();
   createMenus();
+  recupPreferences();
 }
 
 //================================================
@@ -161,7 +160,9 @@ void HOMARDGUI::createActions(){
   createHOMARDAction( 1102, "PURSUE_ITERATION", "iter_poursuite.png"     );
   createHOMARDAction( 1103, "NEW_ITERATION",    "iter_next.png"          );
   createHOMARDAction( 1111, "COMPUTE",          "mesh_compute.png"       );
+  createHOMARDAction( 1112, "COMPUTE_PUBLISH",  "mesh_compute.png"       );
   createHOMARDAction( 1121, "MESH_INFO",        "advanced_mesh_info.png" );
+  createHOMARDAction( 1131, "MESH_PUBLICATION", "mesh_tree_mesh.png"     );
 //
   createHOMARDAction( 1201, "EDIT",             "loop.png"         );
   createHOMARDAction( 1211, "DELETE",           "delete.png"       );
@@ -175,28 +176,70 @@ void HOMARDGUI::createActions(){
 
 //================================================
 // function : createPreferences
-// No preferences for Homard
-// Just a test
 //================================================
-void HOMARDGUI::createPreferences(){
-   QString toto = tr( "PREF_GROUP_GENERAL" );
-   int tabId  = addPreference( tr( "PREF_GROUP_GENERAL" ) );
-   int genGroup = addPreference( tr( "PREF_TAB_SETTINGS" ), tabId );
-   addPreference( tr( "PREF_TEST" ), genGroup, LightApp_Preferences::Color, "Homard", "shading_color" );
+void HOMARDGUI::createPreferences()
+{
+  MESSAGE("createPreferences")
+
+  int Onglet, Bloc, Pref ;
+  // 1. Generalites
+  Onglet = addPreference( tr( "PREF_TAB_GENERAL" ) );
+//   Onglet = addPreference( tr( "PREF_TAB_SETTINGS" ) ) ;
+
+  Bloc = addPreference( tr( "PREF_PUBLICATION" ), Onglet );
+  setPreferenceProperty( Bloc, "columns", 1 );
+
+  Pref = addPreference( tr( "PREF_PUBLICATION_MAILLAGE_IN" ), Bloc, LightApp_Preferences::Bool, "HOMARD", "publish_mesh_in" );
+
+  Pref = addPreference( tr( "PREF_PUBLICATION_MAILLAGE_OUT" ), Bloc, LightApp_Preferences::Bool, "HOMARD", "publish_mesh_out" );
+
+  // 2. YACS
+  Onglet = addPreference( tr( "PREF_YACS" ) ) ;
+
+  Bloc = addPreference( tr( "PREF_YACS_MAX" ), Onglet );
+  setPreferenceProperty( Bloc, "columns", 1 );
+
+  Pref = addPreference( tr( "PREF_YACS_MAX_ITER" ), Bloc, LightApp_Preferences::IntSpin, "HOMARD", "yacs_max_iter" );
+  setPreferenceProperty( Pref, "min",  0 );
+  setPreferenceProperty( Pref, "max",  100000000 );
+  setPreferenceProperty( Pref, "step", 1 );
+
+  Pref = addPreference( tr( "PREF_YACS_MAX_NODE" ), Bloc, LightApp_Preferences::IntSpin, "HOMARD", "yacs_max_node" );
+  setPreferenceProperty( Pref, "min",  0 );
+  setPreferenceProperty( Pref, "max",  100000000 );
+  setPreferenceProperty( Pref, "step", 1000 );
+
+  Pref = addPreference( tr( "PREF_YACS_MAX_ELEM" ), Bloc, LightApp_Preferences::IntSpin, "HOMARD", "yacs_max_elem" );
+  setPreferenceProperty( Pref, "min",  0 );
+  setPreferenceProperty( Pref, "max",  100000000 );
+  setPreferenceProperty( Pref, "step", 1000 );
+
+  Bloc = addPreference( tr( "PREF_YACS_CONVERGENCE" ), Onglet );
+  setPreferenceProperty( Bloc, "columns", 1 );
+
+  Pref = addPreference( tr( "PREF_YACS_TYPE_TEST" ), Bloc, LightApp_Preferences::Selector, "HOMARD", "yacs_type_test" );
+  QStringList aListOfTypeTest;
+  aListOfTypeTest << "None";
+  aListOfTypeTest << "VTest > VRef";
+  aListOfTypeTest << "VTest < VRef";
+  setPreferenceProperty( Pref, "strings", aListOfTypeTest );
 }
 
 
 //================================================
 // function : createMenus
 //================================================
-void HOMARDGUI::createMenus(){
+void HOMARDGUI::createMenus()
+{
   MESSAGE("createMenus")
 //
   int HOMARD_Id  = createMenu( tr( "HOM_MEN_HOMARD" ),  -1,  5, 10 );
   createMenu( 1101, HOMARD_Id, -1 ); //Create_Case
   createMenu( 1102, HOMARD_Id, -1 ); //Pursue_Iteration
+  createMenu( separator(), HOMARD_Id,-1);
   createMenu( 1103, HOMARD_Id, -1 ); //Create_Iteration
-  createMenu( 1111, HOMARD_Id, -1 ); //COMPUTE
+  createMenu( 1111, HOMARD_Id, -1 ); //Compute
+  createMenu( 1112, HOMARD_Id, -1 ); //Compute and publish
 //
   HOMARD_Id  = createMenu( tr( "HOM_MEN_MODIFICATION" ),  -1,  5, 10 );
   createMenu( 1201, HOMARD_Id, -1 ); //Edit
@@ -204,6 +247,7 @@ void HOMARDGUI::createMenus(){
 //
   HOMARD_Id  = createMenu( tr( "HOM_MEN_INFORMATION" ),  -1,  5, 10 );
   createMenu( 1301, HOMARD_Id, -1 ); //Information sur un maillage
+  createMenu( 1131, HOMARD_Id, -1 ); //Mesh publication
   createMenu( separator(), HOMARD_Id,-1);
   createMenu( 1302, HOMARD_Id, -1 ); //EditAsciiFile pour le fichier listeStd ou bilan
   createMenu( separator(), HOMARD_Id,-1);
@@ -213,15 +257,85 @@ void HOMARDGUI::createMenus(){
   HOMARD_Id  = createMenu( tr( "HOM_MEN_YACS" ),  -1,  5, 10 );
   createMenu( 1401, HOMARD_Id, -1 ); // Création d'un schéma YACS
   createMenu( separator(), HOMARD_Id,-1);
+}
+
+//================================================
+// function : recupPreferences
+// Pour chaque valeur, le defaut est la valeur definie dans HOMARD_Gen
+// . Si la recuperation dans config/salome s'est bien passee a la creation de HOMARD_Gen,
+//   ces valeurs sont les valeurs definies.
+// . Si cela ne s'est pas bien passe, ce sont les valeurs par defaut de HOMARD_Gen
+//================================================
+void HOMARDGUI::recupPreferences()
+{
+  MESSAGE("recupPreferences")
 //
-// La langue des preferences
-  SUIT_ResourceMgr* resMgr = getApp()->resourceMgr();
-  _LanguageShort = resMgr->stringValue("language", "language", "en");
-  MESSAGE("_LanguageShort " << _LanguageShort.toStdString().c_str() );
+// A. Declarations
 //
   SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( application() );
   HOMARD::HOMARD_Gen_var homardGen = HOMARDGUI::InitHOMARDGen(app);
+  int defaut_i ;
+  std::string defaut_s ;
+  QString QString_v ;
+//
+// B. Les valeurs
+// B.1. La langue
+//
+  defaut_s = homardGen->GetLanguageShort();
+  SUIT_ResourceMgr* resMgr = getApp()->resourceMgr();
+  _LanguageShort = resMgr->stringValue("language", "language", QString(defaut_s.c_str()) );
+//
+// B.2. Les publications
+  bool publish_mesh ;
+//
+  _PublisMeshIN = homardGen->GetPublisMeshIN();
+  if ( _PublisMeshIN == 1 ) { publish_mesh = true ;  }
+  else                      { publish_mesh = false ; }
+  publish_mesh = resMgr->booleanValue("HOMARD", "publish_mesh_in", publish_mesh );
+  if ( publish_mesh ) { _PublisMeshIN = 1 ; }
+  else                { _PublisMeshIN = 0 ; }
+//
+  _PublisMeshOUT = homardGen->GetPublisMeshOUT();
+  if ( _PublisMeshOUT == 1 ) { publish_mesh = true ;  }
+  else                       { publish_mesh = false ; }
+  publish_mesh = resMgr->booleanValue("HOMARD", "publish_mesh_out", publish_mesh );
+  if ( publish_mesh ) { _PublisMeshOUT = 1 ; }
+  else                { _PublisMeshOUT = 0 ; }
+//
+// B.3. Les maximum pour YACS
+//
+  defaut_i = homardGen->GetYACSMaxIter();
+  _YACSMaxIter = resMgr->integerValue("HOMARD", "yacs_max_iter", defaut_i );
+//
+  defaut_i = homardGen->GetYACSMaxNode();
+  _YACSMaxNode = resMgr->integerValue("HOMARD", "yacs_max_node", defaut_i );
+//
+  defaut_i = homardGen->GetYACSMaxElem();
+  _YACSMaxElem = resMgr->integerValue("HOMARD", "yacs_max_elem", defaut_i );
+//
+// B.4. La convergence pour YACS
+//
+  defaut_i = homardGen->GetYACSConvergenceType();
+  if ( defaut_i == 1 )      { QString_v = tr("VTest > VRef") ; }
+  else if ( defaut_i == 2 ) { QString_v = tr("VTest < VRef") ; }
+  else                      { QString_v = tr("None") ; }
+  QString_v = resMgr->stringValue ( "HOMARD", "yacs_type_test", QString_v );
+  if ( ( QString_v == "VTest > VRef" ) || ( QString_v == "VTest &gt; VRef" ) )      { _YACSTypeTest = 1 ; }
+  else if ( ( QString_v == "VTest < VRef" ) || ( QString_v == "VTest &lt; VRef" ) ) { _YACSTypeTest = 2 ; }
+  else                                                                              { _YACSTypeTest = 0 ; }
+//
+// C. Enregistrement dans l'objet general
+//
+  MESSAGE ("Enregistrement de LanguageShort = " << _LanguageShort.toStdString().c_str() );
+  MESSAGE ("Enregistrement de PublisMeshIN = " << _PublisMeshIN<<", PublisMeshOUT = "<< _PublisMeshOUT);
+  MESSAGE ("Enregistrement de YACSMaxIter = " << _YACSMaxIter<<", YACSMaxNode = "<< _YACSMaxNode<<", YACSMaxElem = "<< _YACSMaxElem);
+  MESSAGE ("Enregistrement de YACSTypeTest = " << _YACSTypeTest);
+//
   homardGen->SetLanguageShort(_LanguageShort.toStdString().c_str());
+  homardGen->SetPublisMesh(_PublisMeshIN, _PublisMeshOUT);
+  homardGen->SetYACSMaximum(_YACSMaxIter, _YACSMaxNode, _YACSMaxElem);
+//
+  homardGen->SetYACSConvergenceType(_YACSTypeTest);
 }
 
 //================================================
@@ -231,13 +345,10 @@ void HOMARDGUI::OnGUIEvent()
   MESSAGE("OnGUIEvent()")
   setOrb();
   const QObject* obj = sender();
-  if ( !obj || !obj->inherits( "QAction" ) )
-       return;
+  if ( !obj || !obj->inherits( "QAction" ) ) { return; }
   int id = actionId((QAction*)obj);
-  bool ret;
-  if ( id != -1 )
-      ret = OnGUIEvent( id );
-  MESSAGE("************** End of OnGUIEvent()");
+  if ( id != -1 ) { bool ret = OnGUIEvent( id ); }
+  MESSAGE("Fin de OnGUIEvent()");
 }
 
 //=======================================================================
@@ -246,11 +357,13 @@ void HOMARDGUI::OnGUIEvent()
 bool HOMARDGUI::OnGUIEvent (int theCommandID)
 {
   MESSAGE("OnGUIEvent avec theCommandID = "<<theCommandID);
+// A. Controles
   SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( application() );
   if ( !app ) return false;
 
   SalomeApp_Study* stud = dynamic_cast<SalomeApp_Study*> ( app->activeStudy() );
-  if ( !stud ) {
+  if ( !stud )
+  {
     MESSAGE ( "FAILED to cast active study to SalomeApp_Study" );
     return false;
   }
@@ -270,7 +383,7 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
    }
   getApp()->updateObjectBrowser();
 
-
+// B. Choix selon les commandes
   SCRUTE(theCommandID);
   switch (theCommandID)
   {
@@ -294,24 +407,31 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
 
     case 1103: // Creation d une Iteration
     {
-      MESSAGE("command " << theCommandID << " activated");
-      QString IterParentName=HOMARD_QT_COMMUN::SelectionArbreEtude(QString("IterationHomard"), 0);
-      MESSAGE("IterParentName " << IterParentName.toStdString().c_str() << " choisi dans arbre");
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
       MonCreateIteration *IterDlg = new MonCreateIteration( parent, true,
-                                     HOMARD::HOMARD_Gen::_duplicate(homardGen), IterParentName ) ;
+                                     HOMARD::HOMARD_Gen::_duplicate(homardGen), _ObjectName ) ;
       IterDlg->show();
       break;
     }
 
-    case 1111: // Compute une Iteration
+    case 1111: // Compute une iteration
     {
-      MESSAGE("command " << theCommandID << " activated");
-      QString monIter=HOMARD_QT_COMMUN::SelectionArbreEtude(QString("IterationHomard"), 1);
-      if (monIter == QString("")) break;
-      try
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
+      try { homardGen->Compute(_ObjectName.toStdString().c_str(), 0, 1, -1, 1); }
+      catch( SALOME::SALOME_Exception& S_ex )
       {
-        homardGen->Compute(monIter.toStdString().c_str(), 0, 1, -1, 1);
+        QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                  QObject::tr(CORBA::string_dup(S_ex.details.text)) );
+        getApp()->updateObjectBrowser();
+        return false;
       }
+      break;
+    }
+
+    case 1112: // Compute une iteration et publication
+    {
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
+      try { homardGen->Compute(_ObjectName.toStdString().c_str(), 0, 1, -1, 2); }
       catch( SALOME::SALOME_Exception& S_ex )
       {
         QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
@@ -324,14 +444,26 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
 
     case 1121: // Information sur le maillage de l'iteration
     {
-      MESSAGE("command " << theCommandID << " activated");
-      QString IterName=HOMARD_QT_COMMUN::SelectionArbreEtude(QString("IterationHomard"), 0);
-      MESSAGE("IterName " << IterName.toStdString().c_str() << " choisi dans arbre");
-      MonIterInfo *IterDlg = new MonIterInfo( parent, true, HOMARD::HOMARD_Gen::_duplicate(homardGen), IterName ) ;
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
+      MonIterInfo *IterDlg = new MonIterInfo( parent, true, HOMARD::HOMARD_Gen::_duplicate(homardGen), _ObjectName ) ;
       IterDlg->show();
       break;
     }
 
+    case 1131: // Publication du maillage de l'iteration
+    {
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
+      homardGen->PublishMeshIterInSmesh(_ObjectName.toStdString().c_str());
+      break;
+    }
+
+    case 1132: // Publication du maillage de l'iteration a partir du fichier
+    {
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
+      homardGen->PublishResultInSmesh(_ObjectName.toStdString().c_str(), 1);
+      break;
+    }
+
     case 1201: // Edition d'un objet
     {
       MESSAGE("command " << theCommandID << " activated");
@@ -498,13 +630,11 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
       break;
     }
 
-    case 1401: // Création d'un schéma YACS
+    case 1401: // Création d'un schema YACS
     {
       MESSAGE("etape 1401")
-      MESSAGE("command " << theCommandID << " activated");
-      QString Name=HOMARD_QT_COMMUN::SelectionArbreEtude(QString("CasHomard"), 1);
-      MESSAGE("Name " << Name.toStdString().c_str() << " choisi dans arbre");
-      MonCreateYACS *aDlg = new MonCreateYACS( true, HOMARD::HOMARD_Gen::_duplicate(homardGen), Name ) ;
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
+      MonCreateYACS *aDlg = new MonCreateYACS( true, HOMARD::HOMARD_Gen::_duplicate(homardGen), _ObjectName ) ;
       aDlg->show();
       break;
     }
@@ -512,13 +642,8 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
     case 1402: // Ecriture d'un schéma YACS
     {
       MESSAGE("etape 1402")
-      MESSAGE("command " << theCommandID << " activated");
-      QString Name=HOMARD_QT_COMMUN::SelectionArbreEtude(QString("YACSHomard"), 1);
-      if (Name == QString("")) break;
-      try
-      {
-        homardGen->YACSWrite(Name.toStdString().c_str());
-      }
+      MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
+      try { homardGen->YACSWrite(_ObjectName.toStdString().c_str()); }
       catch( SALOME::SALOME_Exception& S_ex )
       {
         QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
@@ -661,10 +786,14 @@ void HOMARDGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& t
     {
       pix = resMgr->loadPixmap( "HOMARD", "iter_next.png" );
       menu->addAction(QIcon(pix), tr(QString("HOM_MEN_NEW_ITERATION").toLatin1().data()), this, SLOT(NextIter()));
-      QPixmap pix2 = resMgr->loadPixmap( "HOMARD", "mesh_compute.png" );
-      menu->addAction(QIcon(pix2), tr(QString("HOM_MEN_COMPUTE").toLatin1().data()), this, SLOT(LanceCalcul()));
-      pix2 = resMgr->loadPixmap( "HOMARD", "advanced_mesh_info.png" );
-      menu->addAction(QIcon(pix2), tr(QString("HOM_MEN_MESH_INFO").toLatin1().data()), this, SLOT(IterInfo()));
+      pix = resMgr->loadPixmap( "HOMARD", "mesh_compute.png" );
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_COMPUTE").toLatin1().data()), this, SLOT(LanceCalcul0()));
+      pix = resMgr->loadPixmap( "HOMARD", "mesh_compute.png" );
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_COMPUTE_PUBLISH").toLatin1().data()), this, SLOT(LanceCalcul1()));
+      pix = resMgr->loadPixmap( "HOMARD", "advanced_mesh_info.png" );
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_MESH_INFO").toLatin1().data()), this, SLOT(IterInfo()));
+      pix = resMgr->loadPixmap( "HOMARD", "mesh_tree_mesh.png" );
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_MESH_PUBLICATION").toLatin1().data()), this, SLOT(MeshPublish0()));
       EditObject = true ;
       DeleteObject = true ;
     }
@@ -685,6 +814,11 @@ void HOMARDGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& t
       pix = resMgr->loadPixmap( "HOMARD", "texte.png" );
       menu->addAction(QIcon(pix), tr(QString("HOM_MEN_EDIT_MESS_FILE").toLatin1().data()), this, SLOT(EditAsciiFile()));
     }
+    else if ( HOMARD_UTILS::isFileType(obj,QString("Mesh")) )
+    {
+      pix = resMgr->loadPixmap( "HOMARD", "mesh_tree_mesh.png" );
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_MESH_PUBLICATION").toLatin1().data()), this, SLOT(MeshPublish1()));
+    }
 //  Ajout d'un menu d'edition pour les objets qui le proposent
     if ( EditObject )
     {
@@ -705,16 +839,31 @@ void HOMARDGUI::NextIter()
   this->OnGUIEvent(1103);
 }
 
-void HOMARDGUI::LanceCalcul()
+void HOMARDGUI::LanceCalcul0()
 {
   this->OnGUIEvent(1111);
 }
 
+void HOMARDGUI::LanceCalcul1()
+{
+  this->OnGUIEvent(1112);
+}
+
 void HOMARDGUI::IterInfo()
 {
   this->OnGUIEvent(1121);
 }
 
+void HOMARDGUI::MeshPublish0()
+{
+  this->OnGUIEvent(1131);
+}
+
+void HOMARDGUI::MeshPublish1()
+{
+  this->OnGUIEvent(1132);
+}
+
 void HOMARDGUI::Edit()
 {
   this->OnGUIEvent(1201);
index c00798cbba9fe69117839dda9d6330105e6c165b..f94d5868303eca627e1b208798e0a39cd9238853 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -64,9 +64,12 @@ public slots:
 private slots:
     void OnGUIEvent();
     void EditAsciiFile();
-    void LanceCalcul();
+    void LanceCalcul0();
+    void LanceCalcul1();
     void IterInfo();
     void NextIter();
+    void MeshPublish0();
+    void MeshPublish1();
     void YACSCreate();
     void YACSWrite();
     void Edit();
@@ -81,6 +84,7 @@ private:
                             const int key = 0, const bool toggle = false );
    void createActions();
    void createMenus();
+   void recupPreferences();
    void createPopupMenus();
    _PTR(SObject)  chercheMonObjet();
 
@@ -91,6 +95,12 @@ private:
    int anId;
    QString _ObjectName;
    QString _LanguageShort ;
+   int _PublisMeshIN ;
+   int _PublisMeshOUT ;
+   int _YACSMaxIter ;
+   int _YACSMaxNode ;
+   int _YACSMaxElem ;
+   int _YACSTypeTest ;
 };
 
 #endif
index c29e38ae48c89471c67255cf477c9c8c314b01b7..a7e9a9c62b420e1e696e62c0931310a88a7962c9 100755 (executable)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 47f4fa6b499d2531c83997b3d846869775556673..fdc6eda1cb19ea99e6a1122af14a2f8ede91f492 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -117,8 +117,8 @@ const SALOME_ListIO& HOMARD_UTILS::selectedIO()
       if( aSelectionMgr )
       {
              aSelectionMgr->selectedObjects( mySelected );
-              for (SALOME_ListIteratorOfListIO it (mySelected); it.More(); it.Next())
-                SCRUTE(it.Value()->getEntry());
+        for (SALOME_ListIteratorOfListIO it (mySelected); it.More(); it.Next())
+        SCRUTE(it.Value()->getEntry());
       };
       return mySelected;
 }
@@ -135,7 +135,7 @@ int HOMARD_UTILS::IObjectCount()
       {
              aSelectionMgr->selectedObjects( mySelected );
              SCRUTE(mySelected.Extent());
-              return mySelected.Extent();
+        return mySelected.Extent();
       }
       return 0;
 }
@@ -161,7 +161,7 @@ Handle(SALOME_InteractiveObject) HOMARD_UTILS::lastIObject()
 }
 
 //================================================================
-// Retourne vrai si l objet est du type voulu
+// Retourne vrai si l'objet est du type voulu
 // . Dans le cas d'un cas, d'une hypothese, d'une zone, on se contente
 // d'une comparaison simple entre le type stocke et TypeObject.
 // . Pour l'iteration, le type stocke en attribut est sous la forme
@@ -188,6 +188,7 @@ bool HOMARD_UTILS::isObject(_PTR(SObject) MonObj, QString TypeObject, int option
   if ( option == 0 )
   {
     int position = Type.lastIndexOf(TypeObject);
+//     MESSAGE("position = "<<position);
     if ( position == 0 ) { bOK = true ; }
   }
   else
@@ -197,56 +198,56 @@ bool HOMARD_UTILS::isObject(_PTR(SObject) MonObj, QString TypeObject, int option
   return bOK ;
 }
 //================================================================
-// Retourne vrai si l objet est une frontiere analytique
+// Retourne vrai si l'objet est une frontiere analytique
 //================================================================
 bool HOMARD_UTILS::isBoundaryAn(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("BoundaryAnHomard"), -1 ) ;
 }
 //================================================================
-// Retourne vrai si l objet est une frontiere discrete
+// Retourne vrai si l'objet est une frontiere discrete
 //================================================================
 bool HOMARD_UTILS::isBoundaryDi(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("BoundaryDiHomard"), -1 ) ;
 }
 //================================================================
-// Retourne vrai si l objet est un cas
+// Retourne vrai si l'objet est un cas
 //================================================================
 bool HOMARD_UTILS::isCase(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("CasHomard"), -1 ) ;
 }
 //================================================================
-// Retourne vrai si l objet est une Hypothese
+// Retourne vrai si l'objet est une Hypothese
 //================================================================
 bool HOMARD_UTILS::isHypo(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("HypoHomard"), -1 ) ;
 }
 //================================================================
-// Retourne vrai si l objet est une iteration
+// Retourne vrai si l'objet est une iteration
 //================================================================
 bool HOMARD_UTILS::isIter(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("IterationHomard"), 0 ) ;
 }
 //================================================================
-// Retourne vrai si l objet est un schema YACS
+// Retourne vrai si l'objet est un schema YACS
 //================================================================
 bool HOMARD_UTILS::isYACS(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("YACSHomard"), -1 ) ;
 }
 //================================================================
-// Retourne vrai si l objet est une zone
+// Retourne vrai si l'objet est une zone
 //================================================================
 bool HOMARD_UTILS::isZone(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("ZoneHomard"), -1 ) ;
 }
 //================================================================
-// Retourne vrai si l objet est un fichier de type TypeFile
+// Retourne vrai si l'objet est un fichier de type TypeFile
 //================================================================
 bool HOMARD_UTILS::isFileType(_PTR(SObject) MonObj, QString TypeFile)
 {
@@ -263,7 +264,7 @@ void HOMARD_UTILS::PushOnHelp(QString monFichierAide, QString contexte, QString
     HOMARDGUI* aHomardGUI = dynamic_cast<HOMARDGUI*>( app->module( "Homard" ) );
     // Repertoire de reference de la documentation
     QString rep = aHomardGUI ? app->moduleName(aHomardGUI->moduleName()) : QString("") ;
-    // WARNING/ATTENTION : si on savait recuperer la langue depuis les preferences, on ne fera pas le passage par argument
+    // WARNING/ATTENTION : si on savait recuperer la langue depuis les preferences, on ne ferait pas le passage par argument
 //     SUIT_ResourceMgr* resMgr = getApp()->resourceMgr();
 //     SUIT_ResourceMgr* resMgr = myModule->getApp()->resourceMgr();
 //     QString langue = resMgr->stringValue("language", "language", "en");
index 5a70575c1263df09a6253bc58829bec5c857db5f..2ecb41a0bd03ac80ca05d9388c2923e3a0e28a3a 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 8386a7211f8d1279e09c2be433787d5e94f8cea6..b95385fd69f96a40d2c9c7b3d95522224ba38ac3 100644 (file)
     </message>
     <message>
         <source>HOM_MEN_PURSUE_ITERATION</source>
-        <translation>Pursuit of an iteration</translation>
+        <translation>Case: pursuit of a stored iteration</translation>
     </message>
     <message>
         <source>HOM_MEN_COMPUTE</source>
         <translation>Compute</translation>
     </message>
+    <message>
+        <source>HOM_MEN_COMPUTE_PUBLISH</source>
+        <translation>Compute and publish</translation>
+    </message>
     <message>
         <source>HOM_MEN_EDIT</source>
         <translation>Edit</translation>
         <source>HOM_MEN_MESH_INFO</source>
         <translation>Mesh analysis</translation>
     </message>
+    <message>
+        <source>HOM_MEN_MESH_PUBLICATION</source>
+        <translation>Mesh publication</translation>
+    </message>
     <message>
         <source>HOM_MEN_EDIT_MESS_FILE</source>
         <translation>Show the file</translation>
     </message>
     <message>
         <source>HOM_TOP_PURSUE_ITERATION</source>
-        <translation>Pursuit of an iteration</translation>
+        <translation>Case: pursuit of a stored iteration</translation>
     </message>
     <message>
         <source>HOM_TOP_COMPUTE</source>
         <translation>Compute</translation>
     </message>
+    <message>
+        <source>HOM_TOP_COMPUTE_PUBLISH</source>
+        <translation>Compute and publish</translation>
+    </message>
     <message>
         <source>HOM_TOP_EDIT</source>
         <translation>Edit</translation>
     </message>
     <message>
         <source>HOM_STB_PURSUE_ITERATION</source>
-        <translation>Pursuit of an iteration</translation>
+        <translation>Case: pursuit of a stored iteration</translation>
     </message>
     <message>
         <source>HOM_STB_COMPUTE</source>
         <translation>Compute</translation>
     </message>
+    <message>
+        <source>HOM_STB_COMPUTE_PUBLISH</source>
+        <translation>Compute and publish</translation>
+    </message>
     <message>
         <source>HOM_STB_EDIT</source>
         <translation>Edit</translation>
         <source>HOM_SELECT_OBJECT_3</source>
         <translation>Select an object with type %1.</translation>
     </message>
+    <message>
+        <source>HOM_SELECT_FILE_0</source>
+        <translation>File selection</translation>
+    </message>
     <message>
         <source>HOM_SELECT_FILE_1</source>
         <translation>Select a file.</translation>
     </message>
     <message>
         <source>HOM_CASE_PURSUE_WINDOW_TITLE</source>
-        <translation>Pursuit of an iteration</translation>
+        <translation>Case: pursuit of a stored iteration</translation>
     </message>
     <message>
         <source>HOM_ITER_NAME</source>
         <source>HOM_YACS_EDIT_WINDOW_TITLE</source>
         <translation>Edition of a schema YACS</translation>
     </message>
+    <message>
+        <source>PREF_TAB_GENERAL</source>
+        <translation>General</translation>
+    </message>
+    <message>
+        <source>PREF_PUBLICATION</source>
+        <translation>Publication</translation>
+    </message>
+    <message>
+        <source>PREF_PUBLICATION_MAILLAGE_IN</source>
+        <translation>IN meshes</translation>
+    </message>
+    <message>
+        <source>PREF_PUBLICATION_MAILLAGE_OUT</source>
+        <translation>OUT meshes</translation>
+    </message>
+    <message>
+        <source>PREF_YACS</source>
+        <translation>YACS</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX</source>
+        <translation>Maximum numbers</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX_ITER</source>
+        <translation>Iterations</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX_NODE</source>
+        <translation>Nodes</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX_ELEM</source>
+        <translation>Elements</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_CONVERGENCE</source>
+        <translation>Convergence</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_TYPE_TEST</source>
+        <translation>Test type</translation>
+    </message>
 </context>
 </TS>
index db8348bca9202df5c97d60724a1f57d4286b1ef5..b248bc59e837cbabcbb73e2687ff97c3221a265d 100644 (file)
     </message>
     <message>
         <source>HOM_MEN_PURSUE_ITERATION</source>
-        <translation>Poursuite d'une itération</translation>
+        <translation>Cas de poursuite d'une itération</translation>
     </message>
     <message>
         <source>HOM_MEN_COMPUTE</source>
         <translation>Calculer</translation>
     </message>
+    <message>
+        <source>HOM_MEN_COMPUTE_PUBLISH</source>
+        <translation>Calculer et publier</translation>
+    </message>
     <message>
         <source>HOM_MEN_EDIT</source>
         <translation>Editer</translation>
         <source>HOM_MEN_MESH_INFO</source>
         <translation>Analyse de maillage</translation>
     </message>
+    <message>
+        <source>HOM_MEN_MESH_PUBLICATION</source>
+        <translation>Publication du maillage</translation>
+    </message>
     <message>
         <source>HOM_MEN_EDIT_MESS_FILE</source>
         <translation>Afficher le fichier</translation>
     </message>
     <message>
         <source>HOM_TOP_PURSUE_ITERATION</source>
-        <translation>Poursuite d'une itération</translation>
+        <translation>Cas de poursuite d'une itération</translation>
     </message>
     <message>
         <source>HOM_TOP_COMPUTE</source>
         <translation>Calculer</translation>
     </message>
+    <message>
+        <source>HOM_TOP_COMPUTE_PUBLISH</source>
+        <translation>Calculer et publier</translation>
+    </message>
     <message>
         <source>HOM_TOP_EDIT</source>
         <translation>Editer</translation>
     </message>
     <message>
         <source>HOM_STB_PURSUE_ITERATION</source>
-        <translation>Poursuite d'une itération</translation>
+        <translation>Cas de poursuite d'une itération</translation>
     </message>
     <message>
         <source>HOM_STB_COMPUTE</source>
         <translation>Calculer</translation>
     </message>
+    <message>
+        <source>HOM_STB_COMPUTE_PUBLISH</source>
+        <translation>Calculer et publier</translation>
+    </message>
     <message>
         <source>HOM_STB_EDIT</source>
         <translation>Editer</translation>
         <source>HOM_SELECT_OBJECT_3</source>
         <translation>Sélectionner un objet de type %1.</translation>
     </message>
+    <message>
+        <source>HOM_SELECT_FILE_0</source>
+        <translation>Choix de fichier</translation>
+    </message>
     <message>
         <source>HOM_SELECT_FILE_1</source>
         <translation>Sélectionner un fichier.</translation>
     </message>
     <message>
         <source>HOM_CASE_PURSUE_WINDOW_TITLE</source>
-        <translation>Poursuite d'une itération</translation>
+        <translation>Cas de poursuite d'une itération</translation>
     </message>
     <message>
         <source>The configuration file cannot be found.</source>
         <source>Type of boundary</source>
         <translation>Type de la frontière</translation>
     </message>
+    <message>
+        <source>Torus</source>
+        <translation>Tore</translation>
+    </message>
     <message>
         <source>Radius</source>
         <translation>Rayon</translation>
         <source>Z axis</source>
         <translation>Z axe</translation>
     </message>
+    <message>
+        <source>R revolution</source>
+        <translation>R révolution</translation>
+    </message>
+    <message>
+        <source>Primary R</source>
+        <translation>R primaire</translation>
+    </message>
     <message>
         <source>HOM_BOUN_NAME</source>
         <translation>Il faut donner un nom à la frontière.</translation>
         <source>Type of schema</source>
         <translation>Type de schema</translation>
     </message>
+    <message>
+        <source>Maximum of ...</source>
+        <translation>Maximum de ...</translation>
+    </message>
+    <message>
+        <source>Iterations</source>
+        <translation>Itérations</translation>
+    </message>
+    <message>
+        <source>Nodes</source>
+        <translation>Noeuds</translation>
+    </message>
+    <message>
+        <source>Elements</source>
+        <translation>Eléments</translation>
+    </message>
+    <message>
+        <source>Test of convergence</source>
+        <translation>Test de convergence</translation>
+    </message>
     <message>
         <source>Edit a file</source>
         <translation>Affichage d'un fichier</translation>
         <source>HOM_YACS_EDIT_WINDOW_TITLE</source>
         <translation>Edition d'un schéma YACS</translation>
     </message>
+    <message>
+        <source>PREF_TAB_GENERAL</source>
+        <translation>Général</translation>
+    </message>
+    <message>
+        <source>PREF_PUBLICATION</source>
+        <translation>Publication</translation>
+    </message>
+    <message>
+        <source>PREF_PUBLICATION_MAILLAGE_IN</source>
+        <translation>Les maillages d'entrée</translation>
+    </message>
+    <message>
+        <source>PREF_PUBLICATION_MAILLAGE_OUT</source>
+        <translation>Les maillages de sortie</translation>
+    </message>
+    <message>
+        <source>PREF_YACS</source>
+        <translation>YACS</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX</source>
+        <translation>Nombres maximum</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX_ITER</source>
+        <translation>Itérations</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX_NODE</source>
+        <translation>Noeuds</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_MAX_ELEM</source>
+        <translation>Eléments</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_CONVERGENCE</source>
+        <translation>Convergence</translation>
+    </message>
+    <message>
+        <source>PREF_YACS_TYPE_TEST</source>
+        <translation>Type de test</translation>
+    </message>
 </context>
 </TS>
index cb153fe0d8b41119c3bcd09b5a1dacba3d926864..2c322ebfa7bbff89f560a3f8768589f2bf34904f 100644 (file)
       <source>HOM_YACS_EDIT_WINDOW_TITLE</source>
       <translation>YACS スキーマ編集スキーマへんしゅう</translation>
     </message>
-  </context>
+    <message>
+      <source>PREF_TAB_GENERAL</source>
+      <translation>一般的な</translation>
+    </message>
+</context>
 </TS>
index e7f9070a25e87b0940fe5a54dda8aadb67eed683..2dec6c1085ec7532d64294ca7045c4b2c57719ec 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -50,13 +50,13 @@ QString HOMARD_QT_COMMUN::SelectionArbreEtude(QString commentaire, int option )
 // . si le commentaire est une chaine vide, on ne tient pas compte du type de l'objet
 //   et on retourne le nom de cet objet
 // . sinon :
-//   . si l'objet est du type defini par commentaite, retourne le nom de cet objet
+//   . si l'objet est du type defini par commentaire, retourne le nom de cet objet
 //   . sinon on retourne une QString("")
 // option :
 // . Si option = 0, ce n'est pas grave de ne rien trouver ; aucun message n'est emis
 // . Si option = 1, ce n'est pas grave de ne rien trouver mais on emet un message
 {
-  MESSAGE("SelectionArbreEtude : commentaire = " << commentaire.toStdString().c_str() << " et option = " << option);
+//   MESSAGE("SelectionArbreEtude : commentaire = " << commentaire.toStdString().c_str() << " et option = " << option);
   int nbSel = HOMARD_UTILS::IObjectCount() ;
   if ( nbSel == 0 )
   {
@@ -77,6 +77,7 @@ QString HOMARD_QT_COMMUN::SelectionArbreEtude(QString commentaire, int option )
   Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
   if ( aIO->hasEntry() )
   {
+//     MESSAGE("aIO->getEntry() = " << aIO->getEntry());
     _PTR(Study) aStudy = HOMARD_UTILS::GetActiveStudyDocument();
     _PTR(SObject) aSO ( aStudy->FindObjectID( aIO->getEntry() ) );
     _PTR(GenericAttribute) anAttr;
@@ -86,9 +87,9 @@ QString HOMARD_QT_COMMUN::SelectionArbreEtude(QString commentaire, int option )
       {
         _PTR(AttributeComment) attributComment = anAttr;
         QString aComment= QString(attributComment->Value().data());
-        MESSAGE("... aComment = " << aComment.toStdString().c_str());
+//         MESSAGE("... aComment = " << aComment.toStdString().c_str());
         int iaux = aComment.lastIndexOf(commentaire);
-        MESSAGE("... iaux = " << iaux);
+//         MESSAGE("... iaux = " << iaux);
         if ( iaux !=0  )
         {
           QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
@@ -144,7 +145,7 @@ QString HOMARD_QT_COMMUN::SelectionCasEtude()
 }
 
 // =======================================================================
-QString HOMARD_QT_COMMUN::PushNomFichier(bool avertir)
+QString HOMARD_QT_COMMUN::PushNomFichier(bool avertir, QString TypeFichier)
 // =======================================================================
 // Gestion les boutons qui permettent  de
 // 1) retourne le nom d'un fichier par une fenetre de dialogue si aucun
@@ -152,19 +153,31 @@ QString HOMARD_QT_COMMUN::PushNomFichier(bool avertir)
 // 2) retourne le nom du fichier asocie a l objet
 //    selectionne dans l arbre d etude
 {
-  MESSAGE("PushNomFichier");
-  QString aFile=QString::null;
+//   MESSAGE("PushNomFichier avec avertir "<<avertir<<" et TypeFichier = "<<TypeFichier.toStdString().c_str());
+  QString aFile = QString::null;
+//
+  // A. Filtre
+  QString filtre  ;
+//
+  if ( TypeFichier == "med" )     { filtre = QString("Med") ; }
+  else if ( TypeFichier == "py" ) { filtre = QString("Python") ; }
+  else                            { filtre = TypeFichier ; }
+//
+  if ( TypeFichier != "" ) { filtre += QString(" files (*.") + TypeFichier + QString(");;") ; }
+//
+  filtre += QString("all (*) ") ;
+//
+  // B. Selection
   int nbSel = HOMARD_UTILS::IObjectCount() ;
+//   MESSAGE("nbSel ="<<nbSel);
+  // B.1. Rien n'est selectionne
   if ( nbSel == 0 )
   {
-    aFile = QFileDialog::getOpenFileName(0,QString("File Selection"),QString("") ,QString("Med files (*.med);;all (*) ") );
-  }
-  if (nbSel > 1)
-  {
-    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
-                              QObject::tr("HOM_SELECT_FILE_2") );
+//     aFile = QFileDialog::getOpenFileName(0, QObject::tr("HOM_SELECT_FILE_0"), QString(""), QString("Med files (*.med);;all (*) ") );
+    aFile = QFileDialog::getOpenFileName(0, QObject::tr("HOM_SELECT_FILE_0"), QString(""), filtre );
   }
-  if (nbSel == 1)
+  // B.2. Un objet est selectionne
+  else if (nbSel == 1)
   {
     Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
     if ( aIO->hasEntry() )
@@ -191,17 +204,19 @@ QString HOMARD_QT_COMMUN::PushNomFichier(bool avertir)
     {
       if ( avertir ) {
         QMessageBox::warning( 0, QObject::tr("HOM_WARNING"),
-                                QObject::tr("HOM_SELECT_STUDY") );
-      }
-      aFile = QFileDialog::getOpenFileName();
-      if (!aFile.isEmpty())
-      {
-        aFile=aFile;
+                                 QObject::tr("HOM_SELECT_STUDY") );
       }
+      aFile = QFileDialog::getOpenFileName(0, QObject::tr("HOM_SELECT_FILE_0"), QString(""), filtre );
     }
   }
-  return aFile;
+  // B.3. Bizarre
+  else
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_SELECT_FILE_2") );
+  }
 
+  return aFile;
 }
 // =======================================================================
 int HOMARD_QT_COMMUN::OuvrirFichier(QString aFile)
index 83d5417c77005399fae458797b2dd505d40a5b92..21f6983a2a1aeba3e16490667466cc7851f1fca6 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -39,7 +39,7 @@ class QComboBox;
 
 namespace HOMARD_QT_COMMUN
 {
-    HOMARD_EXPORT QString PushNomFichier(bool avertir=true);
+    HOMARD_EXPORT QString PushNomFichier(bool avertir, QString TypeFichier="");
     HOMARD_EXPORT QString LireNomMaillage(int Medidt,int MeshId);
     HOMARD_EXPORT QString LireNomMaillage(QString aFile);
 
index 91537d2057a228195d01a804b0b7a5db2107d797..ab9604d90adfe6ad8dd18c20c73cbbf1d5d2573c 100644 (file)
@@ -1,9 +1,9 @@
-// #Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -60,6 +60,9 @@ MonCreateBoundaryAn::MonCreateBoundaryAn(MonCreateCase* parent, bool modal,
     _BoundaryAnXcone2(0), _BoundaryAnYcone2(0), _BoundaryAnZcone2(0), _BoundaryAnRayon2(0),
     _BoundaryAnXaxisCone(0), _BoundaryAnYaxisCone(0), _BoundaryAnZaxisCone(0),
     _BoundaryAngle(0),
+    _BoundaryAnToreXcentre(0), _BoundaryAnToreYcentre(0), _BoundaryAnToreZcentre(0),
+    _BoundaryAnToreXaxe(0), _BoundaryAnToreYaxe(0), _BoundaryAnToreZaxe(0),
+    _BoundaryAnToreRRev(0), _BoundaryAnToreRPri(0),
     Chgt (false)
     {
       MESSAGE("Constructeur") ;
@@ -68,22 +71,27 @@ MonCreateBoundaryAn::MonCreateBoundaryAn(MonCreateCase* parent, bool modal,
       setModal(modal);
 
     //  Gestion des icones
+      QPixmap pix ;
+      QIcon IS ;
       SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
-      QPixmap pix = resMgr->loadPixmap( "HOMARD", "spherepoint.png" );
-      QIcon IS=QIcon(pix);
+      pix = resMgr->loadPixmap( "HOMARD", "spherepoint.png" );
+      IS=QIcon(pix);
       RBSphere->setIcon(IS);
-      QPixmap pix2 = resMgr->loadPixmap( "HOMARD", "cylinderpointvector.png" );
-      QIcon IS2=QIcon(pix2);
-      RBCylindre->setIcon(IS2);
-      QPixmap pix3 = resMgr->loadPixmap( "HOMARD", "cone.png" );
-      QIcon IS3=QIcon(pix3);
-      RBCone->setIcon(IS3);
-      QPixmap pix4 = resMgr->loadPixmap( "HOMARD", "conepointvector.png" );
-      QIcon IS4=QIcon(pix4);
-      RB_Def_angle->setIcon(IS4);
-      QPixmap pix5 = resMgr->loadPixmap( "HOMARD", "conedxyz.png" );
-      QIcon IS5=QIcon(pix5);
-      RB_Def_radius->setIcon(IS5);
+      pix = resMgr->loadPixmap( "HOMARD", "cylinderpointvector.png" );
+      IS=QIcon(pix);
+      RBCylindre->setIcon(IS);
+      pix = resMgr->loadPixmap( "HOMARD", "cone.png" );
+      IS=QIcon(pix);
+      RBCone->setIcon(IS);
+      pix = resMgr->loadPixmap( "HOMARD", "conepointvector.png" );
+      IS=QIcon(pix);
+      RB_Def_angle->setIcon(IS);
+      pix = resMgr->loadPixmap( "HOMARD", "conedxyz.png" );
+      IS=QIcon(pix);
+      RB_Def_radius->setIcon(IS);
+      pix = resMgr->loadPixmap( "HOMARD", "toruspointvector.png" );
+      IS=QIcon(pix);
+      RBTore->setIcon(IS);
 
       InitConnect( );
 
@@ -149,6 +157,7 @@ void MonCreateBoundaryAn::InitConnect()
     connect( RBCone,        SIGNAL(clicked()) , this, SLOT(SetCone()) ) ;
     connect( RB_Def_radius, SIGNAL(clicked()) , this, SLOT(SetConeR()) );
     connect( RB_Def_angle,  SIGNAL(clicked()) , this, SLOT(SetConeA()) );
+    connect( RBTore,        SIGNAL(clicked()) , this, SLOT(SetTore()) ) ;
     connect( buttonOk,     SIGNAL( pressed() ), this, SLOT( PushOnOK() ) );
     connect( buttonApply,  SIGNAL( pressed() ), this, SLOT( PushOnApply() ) );
     connect( buttonCancel, SIGNAL( pressed() ), this, SLOT( close() ) );
@@ -213,7 +222,6 @@ void MonCreateBoundaryAn::InitMinMax()
   // . Rayon
   SpinBox_Radius->setValue(_Rayon);
   SpinBox_Radius->setSingleStep(_Rayon/10.);
-  SpinBox_Radius->setMinimum(0.);
 
   // Sphere
   // . X du centre
@@ -228,7 +236,6 @@ void MonCreateBoundaryAn::InitMinMax()
   // . Rayon
   SpinBox_Rayon->setValue(_Rayon);
   SpinBox_Rayon->setSingleStep(_Rayon/10.);
-  SpinBox_Rayon->setMinimum(0.);
 
   // Cone en rayons
   // . X des centres
@@ -248,10 +255,8 @@ void MonCreateBoundaryAn::InitMinMax()
   SpinBox_Cone_Z2->setSingleStep(_Zincr);
   // . Rayons/Angles
   _BoundaryAnRayon1 = 0. ;
-  SpinBox_Cone_V1->setMinimum(0.);
   _BoundaryAnRayon2 = _Rayon ;
   SpinBox_Cone_V2->setSingleStep(_Rayon/10.);
-  SpinBox_Cone_V2->setMinimum(0.);
 
   // Cone en angle
   convertRayonAngle(1) ;
@@ -262,6 +267,32 @@ void MonCreateBoundaryAn::InitMinMax()
   SpinBox_Cone_X2->setValue(_BoundaryAnXorigCone);
   SpinBox_Cone_Y2->setValue(_BoundaryAnYorigCone);
   SpinBox_Cone_Z2->setValue(_BoundaryAnZorigCone);
+
+  // Tore
+  // . X du centre
+  SpinBoxToreXcent->setValue(_Xcentre);
+  SpinBoxToreXcent->setSingleStep(_Xincr);
+  // . Y du centre
+  SpinBoxToreYcent->setValue(_Ycentre);
+  SpinBoxToreYcent->setSingleStep(_Yincr);
+  // . Z du centre
+  SpinBoxToreZcent->setValue(_Zcentre);
+  SpinBoxToreZcent->setSingleStep(_Zincr);
+  // . X de l'axe
+  SpinBoxToreXaxe->setValue(0.);
+  SpinBoxToreXaxe->setSingleStep(0.1);
+  // . Y de l'axe
+  SpinBoxToreYaxe->setValue(0.);
+  SpinBoxToreYaxe->setSingleStep(0.1);
+  // . Z de l'axe
+  SpinBoxToreZaxe->setValue(1.);
+  SpinBoxToreZaxe->setSingleStep(0.1);
+  // . Rayon de revolution
+  SpinBoxToreRRev->setValue(_Rayon);
+  SpinBoxToreRRev->setSingleStep(_Rayon/10.);
+  // . Rayon primaire
+  SpinBoxToreRPri->setValue(_Rayon/3.);
+  SpinBoxToreRPri->setSingleStep(_Rayon/20.);
 }
 // ------------------------------------------------------------------------
 bool MonCreateBoundaryAn::PushOnApply()
@@ -361,6 +392,30 @@ bool MonCreateBoundaryAn::PushOnApply()
         }
         break;
       }
+      case 5 : // il s agit d un tore
+      {
+        if ((_BoundaryAnToreXcentre != SpinBoxToreXcent->value())  ||
+            (_BoundaryAnToreYcentre != SpinBoxToreYcent->value())  ||
+            (_BoundaryAnToreZcentre != SpinBoxToreZcent->value())  ||
+            (_BoundaryAnToreRRev   != SpinBoxToreRRev->value()) ||
+            (_BoundaryAnToreRPri   != SpinBoxToreRPri->value()) ||
+            (_BoundaryAnToreXaxe   != SpinBoxToreXaxe->value()) ||
+            (_BoundaryAnToreYaxe   != SpinBoxToreYaxe->value()) ||
+            (_BoundaryAnToreZaxe   != SpinBoxToreZaxe->value()) )
+        {
+          Chgt = true;
+          _BoundaryAnToreXcentre= SpinBoxToreXcent->value();
+          _BoundaryAnToreYcentre= SpinBoxToreYcent->value();
+          _BoundaryAnToreZcentre= SpinBoxToreZcent->value();
+          _BoundaryAnToreRRev=SpinBoxToreRRev->value();
+          _BoundaryAnToreRPri=SpinBoxToreRPri->value();
+          _BoundaryAnToreXaxe=SpinBoxToreXaxe->value();
+          _BoundaryAnToreYaxe=SpinBoxToreYaxe->value();
+          _BoundaryAnToreZaxe=SpinBoxToreZaxe->value();
+        }
+        break;
+      }
+
  }
 
   bool bOK = CreateOrUpdateBoundaryAn();
@@ -440,6 +495,21 @@ bool MonCreateBoundaryAn:: CreateOrUpdateBoundaryAn()
       }
       break;
     }
+   case 5 : // il s agit d un tore
+    {
+      try
+      {
+        aBoundaryAn = myHomardGen->CreateBoundaryTorus(CORBA::string_dup(_aName.toStdString().c_str()), \
+        _BoundaryAnToreXcentre, _BoundaryAnToreYcentre, _BoundaryAnToreZcentre, _BoundaryAnToreXaxe, _BoundaryAnToreYaxe, _BoundaryAnToreZaxe, _BoundaryAnToreRRev, _BoundaryAnToreRPri );
+      }
+      catch( SALOME::SALOME_Exception& S_ex )
+      {
+        QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                  QObject::tr(CORBA::string_dup(S_ex.details.text)) );
+        return false ;
+     }
+      break;
+    }
   }
   _parent->AddBoundaryAn(_aName);
 
@@ -455,8 +525,8 @@ void MonCreateBoundaryAn::PushOnOK()
 void MonCreateBoundaryAn::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("un-cylindre"), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("un-cylindre"), QString(LanguageShort.c_str()));
 }
 
 // -----------------------------------
@@ -475,9 +545,9 @@ void MonCreateBoundaryAn::SetNewName()
     {
       if ( aName ==  QString(MyObjects[i]))
       {
-          num=num+1;
-          aName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
    }
   }
@@ -491,8 +561,11 @@ void MonCreateBoundaryAn::SetCylinder()
   gBCylindre->setVisible(1);
   gBSphere->setVisible(0);
   gBCone->setVisible(0);
-  adjustSize();
+  gBTore->setVisible(0);
+//
   _Type=1;
+//
+  adjustSize();
 //   MESSAGE("Fin de SetCylinder")
 }
 // ------------------------------------------------------------------------
@@ -503,8 +576,11 @@ void MonCreateBoundaryAn::SetSphere()
   gBCylindre->setVisible(0);
   gBSphere->setVisible(1);
   gBCone->setVisible(0);
-  adjustSize();
+  gBTore->setVisible(0);
+//
   _Type=2;
+//
+  adjustSize();
 //   MESSAGE("Fin de SetSphere")
 }
 // ------------------------------------------------------------------------
@@ -623,8 +699,8 @@ void MonCreateBoundaryAn::SetCone()
   gBCylindre->setVisible(0);
   gBSphere->setVisible(0);
   gBCone->setVisible(1);
+  gBTore->setVisible(0);
 //
-  adjustSize();
   if ( RB_Def_radius->isChecked() )
   {
     SetConeR();
@@ -633,9 +709,26 @@ void MonCreateBoundaryAn::SetCone()
   {
     SetConeA();
   }
+//
+  adjustSize();
 //   MESSAGE("Fin de SetCone")
 }
 // ------------------------------------------------------------------------
+void MonCreateBoundaryAn::SetTore()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetTore")
+  gBCylindre->setVisible(0);
+  gBSphere->setVisible(0);
+  gBCone->setVisible(0);
+  gBTore->setVisible(1);
+//
+  _Type=5;
+//
+  adjustSize();
+//   MESSAGE("Fin de SetTore")
+}
+// ------------------------------------------------------------------------
 void MonCreateBoundaryAn::convertRayonAngle(int option)
 // ------------------------------------------------------------------------
 // Conversion entre les deux formulations du cone :
index e7476f28e037d2798aa6237f81eb338f5ed901d4..316b7c608fe8d8ea0d8dfe77453767cc17e0627d 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -63,6 +63,9 @@ protected :
     double _BoundaryAnXaxisCone, _BoundaryAnYaxisCone, _BoundaryAnZaxisCone;
     double _BoundaryAnXorigCone, _BoundaryAnYorigCone, _BoundaryAnZorigCone;
     double _BoundaryAngle;
+    double _BoundaryAnToreXcentre, _BoundaryAnToreYcentre, _BoundaryAnToreZcentre;
+    double _BoundaryAnToreXaxe, _BoundaryAnToreYaxe, _BoundaryAnToreZaxe;
+    double _BoundaryAnToreRRev, _BoundaryAnToreRPri;
 
 
     bool Chgt;
@@ -83,6 +86,7 @@ public slots:
     virtual void SetCone();
     virtual void SetConeR();
     virtual void SetConeA();
+    virtual void SetTore();
     virtual void PushOnOK();
     virtual bool PushOnApply();
     virtual void PushOnHelp();
index 18aaa2460d71afe66e89eeaf07174935b536ea61..6c6f80ba1301eda85ca484c221d54f625c3e8fec 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -139,8 +139,8 @@ void MonCreateBoundaryDi::PushOnOK()
 void MonCreateBoundaryDi::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-discrete"), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-discrete"), QString(LanguageShort.c_str()));
 }
 // ------------------------------------------------------------------------
 void MonCreateBoundaryDi::AssocieLesGroupes()
@@ -171,9 +171,9 @@ void MonCreateBoundaryDi::SetNewName()
     {
       if ( aName ==  QString(MyObjects[i]))
       {
-          num=num+1;
-          aName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
    }
   }
@@ -183,7 +183,7 @@ void MonCreateBoundaryDi::SetNewName()
 void MonCreateBoundaryDi::SetMeshFile()
 // ------------------------------------------------------------------------
 {
-  QString aMeshFile = HOMARD_QT_COMMUN::PushNomFichier();
+  QString aMeshFile = HOMARD_QT_COMMUN::PushNomFichier( false, QString("med") );
   if (!(aMeshFile.isEmpty())) LEFileName->setText(aMeshFile);
 }
 
index 1c227968a03ad101f4dfca67a500d9946ec6e283..340b3d3a5c256b0cb46b6f20bbddb64529e30ce5 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 4738ba342efbf2cc8872cdab3a7ba874636fbdf8..258d60187e612869d17411ef51409357b5ff3a11 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,6 +22,7 @@
 #include "MonEditBoundaryAn.h"
 #include "MonCreateBoundaryDi.h"
 #include "MonEditBoundaryDi.h"
+#include "HOMARD.hxx"
 
 #include <QFileDialog>
 #include <QMessageBox>
@@ -63,9 +64,10 @@ MonCreateCase::MonCreateCase( bool modal, HOMARD::HOMARD_Gen_var myHomardGen0 )
   GBAdvancedOptions->setVisible(0);
   Comment->setVisible(0);
   CBPyramid->setChecked(false);
-
+//
   adjustSize();
-  MESSAGE("Fin du constructeur de MonCreateCase");
+
+//   MESSAGE("Fin du constructeur de MonCreateCase");
 }
 // ------------------------------------------------------------------------
 MonCreateCase::~MonCreateCase()
@@ -99,7 +101,7 @@ void MonCreateCase::InitConnect()
     connect( CBAdvanced,     SIGNAL(stateChanged(int)), this, SLOT(SetAdvanced()));
 
     connect( buttonOk,       SIGNAL(pressed()), this, SLOT(PushOnOK()));
-    connect( buttonApply,    SIGNAL(pressed()), this, SLOT(PushOnApply()));
+    connect( buttonApply,    SIGNAL(pressed()), this, SLOT(PushOnApply(0)));
     connect( buttonCancel,   SIGNAL(pressed()), this, SLOT(close()));
     connect( buttonHelp,     SIGNAL(pressed()), this, SLOT(PushOnHelp()));
 }
@@ -138,7 +140,7 @@ void MonCreateCase::InitBoundarys()
   TWBoundary->clearSelection();
 }
 // -------------------------------
-bool MonCreateCase::PushOnApply()
+bool MonCreateCase::PushOnApply(int option)
 // --------------------------------
 {
   MESSAGE("PushOnApply");
@@ -160,7 +162,7 @@ bool MonCreateCase::PushOnApply()
 
   if ( aDirName != _aDirName)
   { QString CaseNameDir = myHomardGen->VerifieDir( aDirName.toStdString().c_str()) ;
-    if ( CaseNameDir != "" )
+    if ( ( CaseNameDir != "" ) & ( CaseNameDir != aCaseName ) )
     {
       QString texte ;
       texte = QObject::tr("HOM_CASE_DIRECTORY_2") + CaseNameDir ;
@@ -169,11 +171,7 @@ bool MonCreateCase::PushOnApply()
       return false;
     }
   }
-#ifndef WIN32
-  if (chdir(aDirName.toStdString().c_str()) != 0)
-#else
-  if (_chdir(aDirName.toStdString().c_str()) != 0)
-#endif
+  if (CHDIR(aDirName.toStdString().c_str()) != 0)
   {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_CASE_DIRECTORY_3") );
@@ -196,6 +194,7 @@ bool MonCreateCase::PushOnApply()
     return false;
   }
 
+// On verifie qu'un groupe n'est pas associe a deux frontieres differentes
   if (CBBoundaryA->isChecked())
   {
     QStringList ListeGroup ;
@@ -227,6 +226,7 @@ bool MonCreateCase::PushOnApply()
     }
   }
 
+// Creation du cas
   if (aCaseName != _aCaseName )
   {
     _aCaseName = aCaseName;
@@ -241,17 +241,6 @@ bool MonCreateCase::PushOnApply()
     {
       QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                                 QObject::tr(CORBA::string_dup(S_ex.details.text)) );
-      try
-      {
-          aCase = myHomardGen->GetCase(_aCaseName.toStdString().c_str());
-          string iter0 = aCase->GetIter0Name();
-          HOMARD::HOMARD_Iteration_var aIter =  myHomardGen->GetIteration(iter0.c_str());
-          QString aFileName = aIter->GetMeshFile();
-          LEFileName->setText(aFileName);
-          LEFileName->setReadOnly(true);
-          PushFichier->hide();
-      }
-      catch( SALOME::SALOME_Exception& S_ex )  {};
       return false;
     }
     LEFileName->setReadOnly(true);
@@ -259,49 +248,56 @@ bool MonCreateCase::PushOnApply()
     InitBoundarys();
   }
 
+// Repertoire et type
   aCase->SetDirName(aDirName.toStdString().c_str());
   _aDirName=aDirName;
   aCase->SetConfType(_ConfType);
 
-// Enregistrement de la frontiere discrete
-  if (CBBoundaryD->isChecked())
+//   Menage des eventuelles frontieres deja enregistrees
+  aCase->SupprBoundaryGroup() ;
+
+  // Enregistrement et publication dans l'arbre d'etudes a la sortie definitive
+  if ( option > 0 )
   {
-    QString monBoundaryDiName=CBBoundaryDi->currentText();
-    if (monBoundaryDiName != "" )
+    if (CBBoundaryD->isChecked())
     {
-      aCase->AddBoundaryGroup(monBoundaryDiName.toStdString().c_str(), "");
+      QString monBoundaryDiName=CBBoundaryDi->currentText();
+      if (monBoundaryDiName != "" )
+      {
+        aCase->AddBoundaryGroup(monBoundaryDiName.toStdString().c_str(), "");
+      }
     }
-  }
-
-// Enregistrement des liens (groupe,frontiere analytique)
-  if (CBBoundaryA->isChecked())
-  {
-    QString NomGroup ;
-    int nbcol = TWBoundary->columnCount();
-    int nbrow = TWBoundary->rowCount();
-    for ( int col=1; col< nbcol; col++)
+    if (CBBoundaryA->isChecked())
     {
-      for ( int row=0; row< nbrow; row++)
+      QString NomGroup ;
+      int nbcol = TWBoundary->columnCount();
+      int nbrow = TWBoundary->rowCount();
+      for ( int col=1; col< nbcol; col++)
       {
-        if ( TWBoundary->item( row, col )->checkState() ==  Qt::Checked )
+        for ( int row=0; row< nbrow; row++)
         {
-//        Nom du groupe
-          NomGroup = QString(TWBoundary->item(row, 0)->text()) ;
-//        Nom de la frontiere
-          QTableWidgetItem *__colItem = new QTableWidgetItem();
-          __colItem = TWBoundary->horizontalHeaderItem(col);
-          aCase->AddBoundaryGroup(QString(__colItem->text()).toStdString().c_str(), NomGroup.toStdString().c_str());
+          if ( TWBoundary->item( row, col )->checkState() ==  Qt::Checked )
+          {
+  //        Nom du groupe
+            NomGroup = QString(TWBoundary->item(row, 0)->text()) ;
+  //        Nom de la frontiere
+            QTableWidgetItem *__colItem = new QTableWidgetItem();
+            __colItem = TWBoundary->horizontalHeaderItem(col);
+            aCase->AddBoundaryGroup(QString(__colItem->text()).toStdString().c_str(), NomGroup.toStdString().c_str());
+          }
         }
       }
     }
   }
 
+
 // Options avancees
   if (CBAdvanced->isChecked())
   {
 // Autorisation des pyramides
     if (CBPyramid->isChecked()) { _Pyram = 1 ; }
   }
+  aCase->SetPyram(_Pyram);
 
   HOMARD_UTILS::updateObjBrowser();
 
@@ -311,15 +307,15 @@ bool MonCreateCase::PushOnApply()
 void MonCreateCase::PushOnOK()
 // ---------------------------
 {
-  bool bOK = PushOnApply();
+  bool bOK = PushOnApply(1);
   if ( bOK ) this->close();
 }
 //------------------------------
 void MonCreateCase::PushOnHelp()
 //-------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // ---------------------------------
 void MonCreateCase::SetNewName()
@@ -335,9 +331,9 @@ void MonCreateCase::SetNewName()
     {
       if ( aCaseName ==  QString((MyCases)[i]))
       {
-          num=num+1;
-          aCaseName="";
-          break;
+        num ++ ;
+        aCaseName = "" ;
+        break ;
       }
    }
   }
@@ -357,7 +353,7 @@ void MonCreateCase::SetFileName()
 // ------------------------------------------------------------------------
 {
   QString fileName0 = LEFileName->text().trimmed();
-  QString fileName = HOMARD_QT_COMMUN::PushNomFichier();
+  QString fileName = HOMARD_QT_COMMUN::PushNomFichier( false, QString("med") ) ;
   if (fileName.isEmpty()) fileName = fileName0 ;
   LEFileName->setText(fileName);
 }
@@ -366,8 +362,10 @@ void MonCreateCase::SetConforme()
 // ------------------------------------------------------------------------
 {
   GBTypeNoConf->setVisible(0);
-  adjustSize();
+//
   _ConfType=1;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateCase::SetNonConforme()
@@ -375,8 +373,10 @@ void MonCreateCase::SetNonConforme()
 {
   GBTypeNoConf->setVisible(1);
   RB1NpM->setChecked(true);
-  adjustSize();
+//
   _ConfType=2;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateCase::Set1NpM()
@@ -403,13 +403,14 @@ void MonCreateCase::SetBoundaryD()
   MESSAGE("Debut de SetBoundaryD ");
   if (CBBoundaryD->isChecked())
   {
-    bool bOK = PushOnApply();
+    bool bOK = PushOnApply(0);
     if (bOK) { GBBoundaryD->setVisible(1); }
     else     { GBBoundaryD->setVisible(0);
                CBBoundaryD->setChecked(0);
                CBBoundaryD->setCheckState(Qt::Unchecked); }
   }
   else { GBBoundaryD->setVisible(0); }
+//
   adjustSize();
 }
 // ------------------------------------------------------------------------
@@ -440,8 +441,8 @@ void MonCreateCase::PushBoundaryDiEdit()
 void MonCreateCase::PushBoundaryDiHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-discrete"), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-discrete"), QString(LanguageShort.c_str()));
 }
 // ------------------------------------------------------------------------
 void MonCreateCase::SetBoundaryA()
@@ -450,13 +451,14 @@ void MonCreateCase::SetBoundaryA()
   MESSAGE("Debut de SetBoundaryA ");
   if (CBBoundaryA->isChecked())
   {
-    bool bOK = PushOnApply();
+    bool bOK = PushOnApply(0);
     if (bOK) { GBBoundaryA->setVisible(1); }
     else     { GBBoundaryA->setVisible(0);
                CBBoundaryA->setChecked(0);
                CBBoundaryA->setCheckState(Qt::Unchecked); }
   }
   else { GBBoundaryA->setVisible(0); }
+//
   adjustSize();
 //
 //   MESSAGE("Fin de SetBoundaryA ");
@@ -519,8 +521,8 @@ void MonCreateCase::PushBoundaryAnEdit()
 void MonCreateCase::PushBoundaryAnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-analytique"), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-analytique"), QString(LanguageShort.c_str()));
 }
 // ------------------------------------------------------------------------
 void MonCreateCase::CaseNameChanged()
@@ -543,5 +545,6 @@ void MonCreateCase::SetAdvanced()
     CBPyramid->setChecked(false);
     _Pyram = 0 ;
  }
+//
   adjustSize();
 }
index cf2bb6d9667cc8c1e801783c4a3f5893c852e3b6..65d27479efde6754deaa0c61a4d1753e0f4bcb6f 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -80,7 +80,7 @@ public slots:
     virtual void SetAdvanced();
 
     virtual void PushOnOK();
-    virtual bool PushOnApply();
+    virtual bool PushOnApply(int option);
     virtual void PushOnHelp();
 
     virtual void CaseNameChanged();
index fcbfc5183da5f5250a0b8f925da87d560d0cd07e..f3be9366d01f019fc41372e338f5f44ce157d64d 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -41,7 +41,7 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
 // ---------------------------------------------------------------------------------
 /* Constructs a MonCreateHypothesis */
     :
-    QDialog(0), Ui_CreateHypothesis(),
+    QScrollArea(0), Ui_CreateHypothesis(),
     _parent(parent), _Name(Name),
     _aCaseName(caseName), _aFieldFile(aFieldFile),
     _aFieldName(""),
@@ -58,7 +58,9 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
       MESSAGE("Constructeur") ;
       myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen0);
       setupUi(this);
-      setModal(modal);
+      if ( modal ) { setWindowModality(Qt::WindowModal); }
+      else         { setWindowModality(Qt::NonModal); }
+      setWindowFlags( Qt::WindowStaysOnTopHint ) ;
       InitConnect();
 
       SetNewName();
@@ -73,6 +75,8 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
       SetFieldNo();
       GBAdvancedOptions->setVisible(0);
       CBLevelOutput->setChecked(false);
+//
+      adjustSize();
 }
 
 // ------------------------------------------------------------------------
@@ -161,7 +165,13 @@ bool MonCreateHypothesis::PushOnApply()
   }
 
 // Mise en place des attributs
-  aHypothesis->SetAdapRefinUnRef(_aTypeAdap,_aTypeRaff,_aTypeDera);
+  if ( _aTypeAdap == -1 )
+  {
+    int TypeRaffDera ;
+    if ( _aTypeRaff == 1 ) { TypeRaffDera = 1 ; }
+    else                   { TypeRaffDera = -1 ; }
+    aHypothesis->SetUnifRefinUnRef(TypeRaffDera);
+  }
   aHypothesis->SetTypeFieldInterp(_TypeFieldInterp);
   aHypothesis->SetCaseCreation(_aCaseName.toStdString().c_str());
 
@@ -174,7 +184,7 @@ bool MonCreateHypothesis::PushOnApply()
   if (CBAdvanced->isChecked())
   {
 // Enregistrement du niveau maximal
-    _NivMax = spinBoxNivMax->value() ;
+    _NivMax = SpinBoxNivMax->value() ;
     aHypothesis->SetNivMax(_NivMax);
 // Enregistrement du diametre minimal
     _DiamMin = doubleSpinBoxDiamMin->value() ;
@@ -203,8 +213,8 @@ void MonCreateHypothesis::PushOnOK()
 void MonCreateHypothesis::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // -------------------------------------------------
 void MonCreateHypothesis::SetNewName()
@@ -222,9 +232,9 @@ void MonCreateHypothesis::SetNewName()
     {
       if ( aName ==  QString(MyObjects[i]))
       {
-          num=num+1;
-          aName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
     }
   }
@@ -241,8 +251,10 @@ void MonCreateHypothesis::SetUniforme()
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(0);
   GBUniform->setVisible(1);
-  adjustSize();
+
   _aTypeAdap = -1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetChamp()
@@ -268,9 +280,10 @@ void MonCreateHypothesis::SetChamp()
   GBAreaManagement->adjustSize();
   GBFieldManagement->adjustSize();
   GBFieldFile->adjustSize();
-  adjustSize();
 
   _aTypeAdap = 1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetZone()
@@ -282,10 +295,12 @@ void MonCreateHypothesis::SetZone()
   if ( _TypeFieldInterp == 0 ) { GBFieldFile->setVisible(0); }
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(1);
-  adjustSize();
+
   _aTypeRaff = 1 ;
   _aTypeDera = 0 ;
   _aTypeAdap = 0 ;
+//
+  adjustSize();
 }
 
 // ------------------------------------------------------------------------
@@ -670,7 +685,8 @@ void MonCreateHypothesis::SetUCL2()
 void MonCreateHypothesis::SetUCInf()
 // ------------------------------------------------------------------------
 {
-  _UsCmpI = 1 ;
+  if ( TWCMP->rowCount() == 1 ) { _UsCmpI = 2 ; }
+  else                          { _UsCmpI = 1 ; }
   RBInf->setChecked(true);
 }
 // ------------------------------------------------------------------------
@@ -767,8 +783,8 @@ void MonCreateHypothesis::AssocieComposants()
 
   _aFieldName=CBFieldName->currentText();
   aHypothesis->SetField(CORBA::string_dup(_aFieldName.toStdString().c_str()) ) ;
-  aHypothesis->SetRefinThr( _TypeThR, _ThreshR ) ;
-  aHypothesis->SetUnRefThr( _TypeThC, _ThreshC ) ;
+  if ( _TypeThR > 0 ) { aHypothesis->SetRefinThr( _TypeThR, _ThreshR ) ; }
+  if ( _TypeThC > 0 ) { aHypothesis->SetUnRefThr( _TypeThC, _ThreshC ) ; }
   aHypothesis->SetUseField( _UsField ) ;
   aHypothesis->SetUseComp( _UsCmpI ) ;
   _aListeComposant = GetListCompChecked() ;
@@ -797,8 +813,9 @@ void MonCreateHypothesis::SetFieldNo()
   else                   { GBFieldFile->setVisible(0); }
   TWField->setVisible(0);
 //
-   adjustSize();
   _TypeFieldInterp = 0 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldAll()
@@ -819,7 +836,8 @@ void MonCreateHypothesis::SetFieldAll()
   TWField->setVisible(0);
 //
   _TypeFieldInterp = 1 ;
-   adjustSize();
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldChosen()
@@ -866,7 +884,8 @@ void MonCreateHypothesis::SetFieldChosen()
   TWField->setVisible(1);
 
   _TypeFieldInterp = 2 ;
-   adjustSize();
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetAdvanced()
@@ -890,6 +909,7 @@ void MonCreateHypothesis::SetAdvanced()
     CBLevelOutput->setChecked(false);
     _LevelOutput = 0 ;
   }
+//
   adjustSize();
 }
 // ------------------------------------------------------------------------
index 2e9ee24e16b61f0466ae6ccef287bdaa83da3125..453d810c84dcea8bf3fd556ca33f10e078be1647 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include CORBA_CLIENT_HEADER(HOMARD_Hypothesis)
 
 #include <CreateHypothesis.h>
-#include <QDialog>
+#include <QScrollArea>
 
 class MonCreateIteration;
-class HOMARD_EXPORT MonCreateHypothesis : public QDialog, public Ui_CreateHypothesis
+class HOMARD_EXPORT MonCreateHypothesis : public QScrollArea, public Ui_CreateHypothesis
 {
     Q_OBJECT
 
index 5314ccc70fe5eb4ef37e6598eb0f95d9d71d2cfa..92791bb69f1d55012022bd038e58ec513b230371 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -39,7 +39,7 @@ MonCreateIteration::MonCreateIteration(QWidget* parent, bool modal,
  * Inherits from CasHomard
  * Sets attributes to default values
  */
-    QDialog(0),
+    QScrollArea(0),
     Ui_CreateIteration(),
     _Name(""),
     _IterParentName(IterParentName),
@@ -48,16 +48,17 @@ MonCreateIteration::MonCreateIteration(QWidget* parent, bool modal,
       MESSAGE("Constructeur");
       myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen0);
       setupUi(this);
-      setModal(modal);
+      if ( modal ) { setWindowModality(Qt::WindowModal); }
+      else         { setWindowModality(Qt::NonModal); }
       InitConnect();
 
       SetNewName();
       GetHypotheses();
-      if (_IterParentName != QString(""))
-         { SetIterParentName(); }
-      else
-         {setModal(false); /* permet selection de l iteration dans l arbre d etude */}
+      if (_IterParentName != QString("")) { SetIterParentName(); }
+      else                                { setWindowModality(Qt::NonModal) ; /* permet selection de l'iteration dans l arbre d etude */}
       SetTSNo();
+//
+      adjustSize();
     }
 // ------------------------------------------------------------------------
 MonCreateIteration::~MonCreateIteration()
@@ -97,7 +98,7 @@ bool MonCreateIteration::PushOnApply()
 // ------------------------------------------------------------------------
 // Appele lorsque l'un des boutons Ok ou Apply est presse
 {
-  MESSAGE("MonCreateIteration::PushOnApply");
+  MESSAGE("PushOnApply");
 //
   QString aName = LEName->text().trimmed();
   if ( aName == QString (""))
@@ -189,8 +190,8 @@ void MonCreateIteration::PushOnOK()
 void MonCreateIteration::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_iteration.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_iteration.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // ------------------------------------------------------------------------
 void MonCreateIteration::SetIterParentName()
@@ -227,9 +228,9 @@ void MonCreateIteration::SetNewName()
     {
       if ( aName ==  QString((MyObjects)[i]))
       {
-          num=num+1;
-          aName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
    }
   }
@@ -284,7 +285,7 @@ void MonCreateIteration::SetFieldFile()
 // ------------------------------------------------------------------------
 {
   QString fileName0 = LEFieldFile->text().trimmed();
-  QString fileName = HOMARD_QT_COMMUN::PushNomFichier(false);
+  QString fileName = HOMARD_QT_COMMUN::PushNomFichier( false, QString("med") ) ;
   if (fileName.isEmpty()) fileName = fileName0 ;
   LEFieldFile->setText(fileName);
   raise();
@@ -302,7 +303,7 @@ void MonCreateIteration::SetTSNo()
   TimeStep->setVisible(0);
   SpinBox_TimeStep->setVisible(0);
   SpinBox_TimeStep->setValue(-1);
-
+//
   adjustSize();
 }
 // ------------------------------------------------------------------------
@@ -317,7 +318,7 @@ void MonCreateIteration::SetTSLast()
   TimeStep->setVisible(0);
   SpinBox_TimeStep->setVisible(0);
   SpinBox_TimeStep->setValue(-2);
-
+//
   adjustSize();
 }
 // ------------------------------------------------------------------------
@@ -332,7 +333,7 @@ void MonCreateIteration::SetTSChosen()
   TimeStep->setVisible(1);
   SpinBox_TimeStep->setVisible(1);
   SpinBox_TimeStep->setValue(0);
-
+//
   adjustSize();
 }
 
index 88083cedfc8c8075ba8aa3da88322bcbf59f4ee2..05fef96ee330f4a62d2ff032adcc2a6dbd17f4e6 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include CORBA_CLIENT_HEADER(HOMARD_Cas)
 
 #include <CreateIteration.h>
-#include <QDialog>
-#include <QWidget>
+#include <QScrollArea>
+// #include <QDialog>
+// #include <QWidget>
 
-class HOMARD_EXPORT MonCreateIteration : public QDialog, public Ui_CreateIteration
+class HOMARD_EXPORT MonCreateIteration : public QScrollArea, public Ui_CreateIteration
 {
     Q_OBJECT
 
index d7442211d836d714c0eb7e29846661ff3529f303..f66bea7b79393b5f47b05a987769523c0a0c1626 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -115,8 +115,8 @@ void MonCreateListGroup::PushOnOK()
 void MonCreateListGroup::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // ------------------------------------------------------------------------
 void MonCreateListGroup::InitGroupes()
index 0941e387d3e90c4c02e4dcd8fbc04b0467f3de1f..c94c25b4eb19a78826430efe6ddd935927e90f3a 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 11cdc461eb6af065303024c3ac762e865d0f4ae7..d9b21d91e4faf1625e1236b953a47185bf184661 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,6 +18,7 @@
 //
 
 #include "MonCreateYACS.h"
+#include "HOMARD.hxx"
 
 #include <QFileDialog>
 #include <QMessageBox>
@@ -45,25 +46,32 @@ MonCreateYACS::MonCreateYACS (bool modal, HOMARD::HOMARD_Gen_var myHomardGen0, Q
   _aDirName(""),
   _aMeshFile(""),
   _Type(1)
-  // La valeur de _Type doit etre la meme que celle dans HOMARD_Gen_i::CreateYACSSchema
-  // et doit correspondre aux defauts des boutons
+  // Les valeurs de _Type, _MaxIter, _MaxNode, _MaxElem doivent etre les memes que celles dans HOMARD_Gen_i::CreateYACSSchema
+  // et doivent correspondre aux defauts des boutons
   {
 //     MESSAGE("Debut du constructeur de MonCreateYACS");
     myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen0);
     setupUi(this);
-    setModal(modal);
+    if ( modal ) { setWindowModality(Qt::WindowModal); }
+    else         { setWindowModality(Qt::NonModal); }
 
     InitConnect();
 
     SetNewName() ;
 
-    if (_aCaseName != QString(""))
-      { SetCaseName(); }
-    else
-      {setModal(false); /* permet selection du cas dans l arbre d etude */}
-
+    if (_aCaseName != QString("")) { SetCaseName(); }
+    else                           { setWindowModality(Qt::NonModal); /* permet selection du cas dans l arbre d etude */}
+//
+//  Les valeurs definies dans les preferences
+    _MaxIter = myHomardGen->GetYACSMaxIter();
+    _MaxNode = myHomardGen->GetYACSMaxNode();
+    _MaxElem = myHomardGen->GetYACSMaxElem();
+    MESSAGE ("Valeur par defaut de MaxIter = " << _MaxIter<<", MaxNode = "<< _MaxNode<<", MaxElem = "<< _MaxElem);
+    SpinBoxMaxIter->setValue(_MaxIter) ;
+    SpinBoxMaxNode->setValue(_MaxNode) ;
+    SpinBoxMaxElem->setValue(_MaxElem) ;
+//
     adjustSize();
-//     MESSAGE("Fin du constructeur de MonCreateYACS");
   }
 
 // ----------------------------------------------------------------------
@@ -72,17 +80,18 @@ MonCreateYACS::MonCreateYACS(HOMARD::HOMARD_Gen_var myHomardGen0,
 // ----------------------------------------------------------------------
 // Constructeur appele par MonEditYACS
 //
-    myHomardGen(myHomardGen0),
-    _Name (""),
-    Chgt (false)
-    {
+myHomardGen(myHomardGen0),
+_Name (""),
+Chgt (false)
+{
 //       MESSAGE("Debut du constructeur de MonCreateYACS appele par MonEditYACS");
-      setupUi(this) ;
-
-      setModal(true) ;
-      InitConnect() ;
-    }
+  setupUi(this) ;
 
+  setWindowModality(Qt::WindowModal);
+  InitConnect() ;
+//
+  adjustSize();
+}
 // ------------------------------------------------------------------------
 MonCreateYACS::~MonCreateYACS()
 // ------------------------------------------------------------------------
@@ -140,11 +149,7 @@ bool MonCreateYACS::PushOnApply()
       return false;
     }
   }
-#ifndef WIN32
-  if (chdir(aDirName.toStdString().c_str()) != 0)
-#else
-  if (_chdir(aDirName.toStdString().c_str()) != 0)
-#endif
+  if (CHDIR(aDirName.toStdString().c_str()) != 0)
   {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_CASE_DIRECTORY_3") );
@@ -181,14 +186,15 @@ bool MonCreateYACS:: CreateOrUpdate()
   MESSAGE("CreateOrUpdate");
   bool bOK = true ;
 
-  // Le cas
+  // 1. Verification des donnees
+  // 1.1. Le cas
   if ( _aCaseName == QString (""))
   {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_CASE_NAME") );
     return false;
   }
-  // Les donnees
+  // 1.2. Les donnees
   QString aScriptFile=LEScriptFile->text().trimmed();
   if ( aScriptFile != _aScriptFile )
   {
@@ -208,7 +214,7 @@ bool MonCreateYACS:: CreateOrUpdate()
     Chgt = true ;
   }
 
-  // Creation de l'objet CORBA
+  // 2. Creation de l'objet CORBA
   try
   {
     _Name=LEName->text().trimmed();
@@ -221,11 +227,25 @@ bool MonCreateYACS:: CreateOrUpdate()
     bOK = false;
   }
 
-  // Options
+  // 3. Options
   if ( bOK )
-  { aYACS->SetType(_Type) ; }
+  {
+  // 3.1. Le type du schema
+    aYACS->SetType(_Type) ;
+
+  // 3.2. Les maximums
+    _MaxIter = SpinBoxMaxIter->value() ;
+    aYACS->SetMaxIter(_MaxIter) ;
+
+    _MaxNode = SpinBoxMaxNode->value() ;
+    aYACS->SetMaxNode(_MaxNode) ;
+
+    _MaxElem = SpinBoxMaxElem->value() ;
+    aYACS->SetMaxElem(_MaxElem) ;
+
+  }
 
-  // Ecriture du fichier
+  // 4. Ecriture du fichier
   if ( bOK )
   {
     int codret = aYACS->Write() ;
@@ -245,8 +265,8 @@ void MonCreateYACS::PushOnOK()
 void MonCreateYACS::PushOnHelp()
 //-------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("yacs.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("yacs.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // -------------------------------------------------
 void MonCreateYACS::SetNewName()
@@ -263,9 +283,9 @@ void MonCreateYACS::SetNewName()
     {
       if ( aName ==  QString(MyObjects[i]))
       {
-          num=num+1;
-          aName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
    }
   }
@@ -295,7 +315,7 @@ void MonCreateYACS::SetScriptFile()
 // ------------------------------------------------------------------------
 {
   QString fileName0 = LEScriptFile->text().trimmed();
-  QString fileName = HOMARD_QT_COMMUN::PushNomFichier(false);
+  QString fileName = HOMARD_QT_COMMUN::PushNomFichier( false, QString("py") ) ;
   if (fileName.isEmpty()) fileName = fileName0 ;
   LEScriptFile->setText(fileName);
 }
@@ -304,7 +324,7 @@ void MonCreateYACS::SetMeshFile()
 // ------------------------------------------------------------------------
 {
   QString fileName0 = LEMeshFile->text().trimmed();
-  QString fileName = HOMARD_QT_COMMUN::PushNomFichier(false);
+  QString fileName = HOMARD_QT_COMMUN::PushNomFichier( false, QString("med") ) ;
   if (fileName.isEmpty()) fileName = fileName0 ;
   LEMeshFile->setText(fileName);
 }
index fc84cd60ee941150a58489a1fc97f424b807fd43..3d7549f8a69fae799bfc2953e47218f622eb1fe1 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,9 +30,9 @@
 #include CORBA_CLIENT_HEADER(HOMARD_Cas)
 
 #include <CreateYACS.h>
-#include <QWidget>
+#include <QScrollArea>
 
-class HOMARD_EXPORT MonCreateYACS : public QDialog, public Ui_CreateYACS
+class HOMARD_EXPORT MonCreateYACS : public QScrollArea, public Ui_CreateYACS
 {
     Q_OBJECT
 
@@ -50,6 +50,9 @@ class HOMARD_EXPORT MonCreateYACS : public QDialog, public Ui_CreateYACS
     QString _aMeshFile;
 
     int _Type;
+    int _MaxIter;
+    int _MaxNode;
+    int _MaxElem;
 
     bool Chgt;
 
index 1b15311812fafc924aee4aa09b2a840ad8031b85..7b3b86fa6b2168bc39c9af088d0241a90a2f2b75 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -287,13 +287,9 @@ void MonCreateZone::InitMinMax()
     }
 // Rayons
     SpinBox_Rayon->setSingleStep(_Rayon/10.) ;
-    SpinBox_Rayon->setMinimum(0.) ;
     SpinBox_Radius->setSingleStep(_Rayon/10.) ;
-    SpinBox_Radius->setMinimum(0.) ;
     SpinBox_Radius_int->setSingleStep(_Rayon/20.) ;
-    SpinBox_Radius_int->setMinimum(0.) ;
     SpinBox_Radius_ext->setSingleStep(_Rayon/10.) ;
-    SpinBox_Radius_ext->setMinimum(0.) ;
 // Axe et hauteur
 // Si une coordonnee est constante, inutile de demander l'axe et la hauteur
     if ( _Orient > 0) {
@@ -315,9 +311,7 @@ void MonCreateZone::InitMinMax()
       TLHaut_p->setVisible(0) ;
     }
     else {
-      SpinBox_Haut->setMinimum(0.) ;
       SpinBox_Haut->setSingleStep(_Rayon/10.) ;
-      SpinBox_Haut_p->setMinimum(0.) ;
       SpinBox_Haut_p->setSingleStep(_Rayon/10.) ;
     }
 }
@@ -586,8 +580,8 @@ void MonCreateZone::PushOnOK()
 void MonCreateZone::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_zone.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_zone.html"), QString(""), QString(LanguageShort.c_str()));
 }
 
 // -----------------------------------
@@ -606,9 +600,9 @@ void MonCreateZone::SetNewName()
     {
       if ( aName ==  QString(MyObjects[i]))
       {
-          num=num+1;
-          aName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
    }
   }
index 16868369df9946a2d86136472c0a1f973f83ccf7..a1ad022f9def4b87800283051c2ed5ab71b0b621 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 1557d9a064918d64e731d32741264b63038559f6..54608e661a77df874f83c5db93ada82e5afe1510 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -83,6 +83,12 @@ void MonEditBoundaryAn::InitValEdit()
       SetConeR();
       break;
     }
+    case 5: // il s agit d un tore
+    {
+      InitValBoundaryAnTore();
+      SetTore();
+      break;
+    }
   };
 }
 // ------------------------------------------------------------------------
@@ -152,18 +158,33 @@ void MonEditBoundaryAn::InitValBoundaryAnConeR()
   convertRayonAngle(1) ;
 }
 // ------------------------------------------------------------------------
+void MonEditBoundaryAn::InitValBoundaryAnTore()
+// ------------------------------------------------------------------------
+{
+  HOMARD::double_array_var  mesCoordBoundary = aBoundaryAn->GetCoords();
+  ASSERT(mesCoordBoundary->length() == 8 );
+  _BoundaryAnXcentre=mesCoordBoundary[0];
+  _BoundaryAnYcentre=mesCoordBoundary[1];
+  _BoundaryAnZcentre=mesCoordBoundary[2];
+  _BoundaryAnXaxis=mesCoordBoundary[3];
+  _BoundaryAnYaxis=mesCoordBoundary[4];
+  _BoundaryAnZaxis=mesCoordBoundary[5];
+  _BoundaryAnRayon1=mesCoordBoundary[6];
+  _BoundaryAnRayon2=mesCoordBoundary[7];
+}
+// ------------------------------------------------------------------------
 void MonEditBoundaryAn::SetCylinder()
 // ------------------------------------------------------------------------
 {
   gBCylindre->setVisible(1);
   gBSphere->setVisible(0);
   gBCone->setVisible(0);
+  gBTore->setVisible(0);
   RBCylindre->setChecked(1);
-  adjustSize();
   _Type=1;
   RBSphere->setDisabled(true);
   RBCone->setDisabled(true);
-  adjustSize();
+  RBTore->setDisabled(true);
 
   SpinBox_Xcent->setValue(_BoundaryAnXcentre);
   SpinBox_Ycent->setValue(_BoundaryAnYcentre);
@@ -183,7 +204,8 @@ void MonEditBoundaryAn::SetCylinder()
 // Rayon
   SpinBox_Radius->setValue(_BoundaryAnRayon);
   SpinBox_Radius->setSingleStep(_BoundaryAnRayon/10.);
-
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonEditBoundaryAn::SetSphere()
@@ -193,9 +215,10 @@ void MonEditBoundaryAn::SetSphere()
   gBSphere->setVisible(1);
   RBSphere->setChecked(1);
   gBCone->setVisible(0);
+  gBTore->setVisible(0);
   RBCylindre->setDisabled(true);
   RBCone->setDisabled(true);
-  adjustSize();
+  RBTore->setDisabled(true);
   _Type=2 ;
 
   SpinBox_Xcentre->setValue(_BoundaryAnXcentre);
@@ -210,8 +233,9 @@ void MonEditBoundaryAn::SetSphere()
   if ( _Zincr > 0) { SpinBox_Zcentre->setSingleStep(_Zincr); }
   else             { SpinBox_Zcentre->setSingleStep(1);}
 
-  SpinBox_Rayon->setMinimum(0.);
   SpinBox_Rayon->setValue(_BoundaryAnRayon);
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonEditBoundaryAn::SetConeA()
@@ -221,10 +245,11 @@ void MonEditBoundaryAn::SetConeA()
   gBSphere->setVisible(0);
   gBCone->setVisible(1);
   RBCone->setChecked(1);
+  gBTore->setVisible(0);
   RB_Def_angle->setChecked(1);
   RBCylindre->setDisabled(true);
   RBSphere->setDisabled(true);
-  adjustSize();
+  RBTore->setDisabled(true);
   _Type=3;
 //
   TLCone_X1->setText(QApplication::translate("CreateBoundaryAn", "X axis", 0, QApplication::UnicodeUTF8));
@@ -248,6 +273,8 @@ void MonEditBoundaryAn::SetConeA()
 //
   TLCone_V2->setVisible(0);
   SpinBox_Cone_V2->setVisible(0);
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonEditBoundaryAn::SetConeR()
@@ -256,11 +283,12 @@ void MonEditBoundaryAn::SetConeR()
   gBCylindre->setVisible(0);
   gBSphere->setVisible(0);
   gBCone->setVisible(1);
+  gBTore->setVisible(0);
   RBCone->setChecked(1);
   RB_Def_radius->setChecked(1);
   RBCylindre->setDisabled(true);
   RBSphere->setDisabled(true);
-  adjustSize();
+  RBTore->setDisabled(true);
   _Type=4;
 //
   TLCone_X1->setText(QApplication::translate("CreateBoundaryAn", "X centre 1", 0, QApplication::UnicodeUTF8));
@@ -286,6 +314,46 @@ void MonEditBoundaryAn::SetConeR()
   SpinBox_Cone_V2->setVisible(1);
   TLCone_V2->setText(QApplication::translate("CreateBoundaryAn", "Radius 2", 0, QApplication::UnicodeUTF8));
   SpinBox_Cone_V2->setValue(_BoundaryAnRayon2);
+//
+  adjustSize();
+}
+// ------------------------------------------------------------------------
+void MonEditBoundaryAn::SetTore()
+// ------------------------------------------------------------------------
+{
+  gBCylindre->setVisible(0);
+  gBSphere->setVisible(0);
+  gBCone->setVisible(0);
+  gBTore->setVisible(1);
+  RBTore->setChecked(1);
+  _Type=5;
+  RBCylindre->setDisabled(true);
+  RBSphere->setDisabled(true);
+  RBCone->setDisabled(true);
+
+  SpinBoxToreXcent->setValue(_BoundaryAnXcentre);
+  SpinBoxToreYcent->setValue(_BoundaryAnYcentre);
+  SpinBoxToreZcent->setValue(_BoundaryAnZcentre);
+
+  SpinBoxToreXaxe->setValue(_BoundaryAnXaxis);
+  SpinBoxToreYaxe->setValue(_BoundaryAnYaxis);
+  SpinBoxToreZaxe->setValue(_BoundaryAnZaxis);
+
+
+  SpinBoxToreXaxe->setSingleStep(0.1);
+  SpinBoxToreXcent->setSingleStep(_Xincr);
+  SpinBoxToreYaxe->setSingleStep(0.1);
+  SpinBoxToreYcent->setSingleStep(_Yincr);
+  SpinBoxToreZaxe->setSingleStep(0.1);
+  SpinBoxToreZcent->setSingleStep(_Zincr);
+// Rayon de revolution
+  SpinBoxToreRRev->setValue(_BoundaryAnRayon1);
+  SpinBoxToreRRev->setSingleStep(_BoundaryAnRayon1/10.);
+// Rayon primaire
+  SpinBoxToreRPri->setValue(_BoundaryAnRayon2);
+  SpinBoxToreRPri->setSingleStep(_BoundaryAnRayon2/10.);
+//
+  adjustSize();
 }
 // ---------------------------------------------------
 bool MonEditBoundaryAn::CreateOrUpdateBoundaryAn()
@@ -312,12 +380,17 @@ bool MonEditBoundaryAn::CreateOrUpdateBoundaryAn()
       break;
     }
     case 4 : // il s agit d un cone defini par les 2 rayons
-      {
+    {
       aBoundaryAn = myHomardGen->CreateBoundaryConeR(CORBA::string_dup(_aName.toStdString().c_str()), \
         _BoundaryAnXcone1, _BoundaryAnYcone1, _BoundaryAnZcone1, _BoundaryAnRayon1, \
         _BoundaryAnXcone2, _BoundaryAnYcone2, _BoundaryAnZcone2, _BoundaryAnRayon2);
       break;
     }
+    case 5 : // il s agit d un tore
+    {
+      aBoundaryAn->SetTorus(_BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnXaxis, _BoundaryAnYaxis, _BoundaryAnZaxis, _BoundaryAnRayon1, _BoundaryAnRayon2 );
+      break;
+    }
   }
   if (Chgt) myHomardGen->InvalideBoundary(_aName.toStdString().c_str());
   HOMARD_UTILS::updateObjBrowser();
index 532c4940713c194724cb39b65800a5fe06c89381..2ac3d699e5c7db93dde100472d3f2c6beca69a9e 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -47,10 +47,12 @@ protected :
     void SetSphere();
     void SetConeR();
     void SetConeA();
+    void SetTore();
     void InitValBoundaryAnCylindre();
     void InitValBoundaryAnSphere();
     void InitValBoundaryAnConeR();
     void InitValBoundaryAnConeA();
+    void InitValBoundaryAnTore();
 
 public slots:
 
index b50c4c76d3978c535176c544ff2d18b2a5083b19..7d4f1bf45b34f1b55ffdfeca6233e68afdb6581d 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -64,7 +64,6 @@ MonEditBoundaryDi::~MonEditBoundaryDi()
 // ------------------------------
 {
 }
-
 // ------------------------------
 void MonEditBoundaryDi::InitValEdit()
 // ------------------------------
@@ -76,6 +75,7 @@ void MonEditBoundaryDi::InitValEdit()
       LEFileName->setText(aMeshFile);
       LEFileName->setReadOnly(1);
       PushFichier->setVisible(0);
+//
       adjustSize();
 }
 // ------------------------------
index 597d6b615f4d7c645e9881e5b0f61d127094927f..36f4235918223a38121fa5eb4ae3aeb3637c667a 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index eec45f6fc6edbead81785d24da668be249230711..3d2c4c2181107c472b0d6e50b0d1a87999f1d339 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 7a0549f6a7e5b90040e510f95572b69df11f4664..19b35a8788c309078f975fedb32875ee89c93051 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 25f7ef0db0ba852a4caca57a3cf2b673ea5195eb..f2cb1b81ea1dd485d3194898b42ea2d91f3b9070 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 4517a78bf8f3c65aab5e7a2b8bdb84230bc351f5..fb53b690bd53c89621c68f915719b1560935ac1e 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 6f28eab49e017918ecdcd25430f39841b8a13537..6d0ef7968caa8aa87de253d6a36df59993109559 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -107,11 +107,11 @@ void MonEditHypothesis::InitValEdit()
   if ( NivMax > 0 || DiamMin > 0 || AdapInit != 0 || LevelOutput != 0 )
   { GBAdvancedOptions->setVisible(1);
     if ( NivMax > 0 )
-    { spinBoxNivMax->setValue(NivMax);
-      spinBoxNivMax->setDisabled(true); }
+    { SpinBoxNivMax->setValue(NivMax);
+      SpinBoxNivMax->setDisabled(true); }
     else
     { TLMaximalLevel->setVisible(0);
-      spinBoxNivMax->setVisible(0); }
+      SpinBoxNivMax->setVisible(0); }
     if ( DiamMin > 0 )
     { doubleSpinBoxDiamMin->setValue(DiamMin);
       doubleSpinBoxDiamMin->setDisabled(true); }
@@ -143,7 +143,6 @@ void MonEditHypothesis::InitValEdit()
   else
   { GBAdvancedOptions->setVisible(0); }
 //
-  adjustSize();
 }
 // ----------------------------------------
 void MonEditHypothesis::InitAdaptUniforme()
@@ -151,28 +150,29 @@ void MonEditHypothesis::InitAdaptUniforme()
 // Affichage des informations pour une adaptation uniforme
 {
 //  Choix des options generales
-    GBFieldManagement->setVisible(0);
-    GBAreaManagement->setVisible(0);
-    GBUniform->setVisible(1);
-    adjustSize();
-    RBUniforme->setChecked(true);
-    RBUniforme->setEnabled(false);
-    RBChamp->setEnabled(false);
-    RBZone->setEnabled(false);
+  GBFieldManagement->setVisible(0);
+  GBAreaManagement->setVisible(0);
+  GBUniform->setVisible(1);
+  RBUniforme->setChecked(true);
+  RBUniforme->setEnabled(false);
+  RBChamp->setEnabled(false);
+  RBZone->setEnabled(false);
 //
 // Raffinement ou deraffinement ?
-    if (_aTypeDera == 0)
-    {
-        VERIFICATION(_aTypeRaff==1);
-        RBUniDera->setChecked(false);
-        RBUniRaff->setChecked(true);
-    }
-    if (_aTypeDera == 1)
-    {
-        VERIFICATION(_aTypeRaff==0);
-        RBUniDera->setChecked(true);
-        RBUniRaff->setChecked(false);
-    }
+  if (_aTypeDera == 0)
+  {
+      VERIFICATION(_aTypeRaff==1);
+      RBUniDera->setChecked(false);
+      RBUniRaff->setChecked(true);
+  }
+  if (_aTypeDera == 1)
+  {
+      VERIFICATION(_aTypeRaff==0);
+      RBUniDera->setChecked(true);
+      RBUniRaff->setChecked(false);
+  }
+//
+  adjustSize();
 //
 }
 // -------------------------------------
@@ -180,52 +180,53 @@ void MonEditHypothesis::InitAdaptZone()
 // -------------------------------------
 // Affichage des informations pour une adaptation selon des zones :
 {
-    MESSAGE ("Debut de InitAdaptZone");
+  MESSAGE ("Debut de InitAdaptZone");
 //  Choix des options generales
-    GBUniform->setVisible(0);
-    GBFieldManagement->setVisible(0);
-    GBAreaManagement->setVisible(1);
-    adjustSize();
-    RBZone->setChecked(true);
-    RBChamp->setEnabled(false);
-    RBUniforme->setEnabled(false);
-    RBZone->setEnabled(false);
+  GBUniform->setVisible(0);
+  GBFieldManagement->setVisible(0);
+  GBAreaManagement->setVisible(1);
+  RBZone->setChecked(true);
+  RBChamp->setEnabled(false);
+  RBUniforme->setEnabled(false);
+  RBZone->setEnabled(false);
 
 //  Recuperation de toutes les zones decrites et notation de celles retenues
-    GetAllZones();
-    HOMARD::listeZonesHypo_var mesZonesAvant = aHypothesis->GetZones();
-    for (int i=0; i<mesZonesAvant->length(); i++)
+  GetAllZones();
+  HOMARD::listeZonesHypo_var mesZonesAvant = aHypothesis->GetZones();
+  for (int i=0; i<mesZonesAvant->length(); i++)
+  {
+    MESSAGE ("i"<<i<<", zone :"<<string(mesZonesAvant[i])<<", type :"<<string(mesZonesAvant[i+1]));
+    for ( int j =0 ; j < TWZone->rowCount(); j++)
     {
-      MESSAGE ("i"<<i<<", zone :"<<string(mesZonesAvant[i])<<", type :"<<string(mesZonesAvant[i+1]));
-      for ( int j =0 ; j < TWZone->rowCount(); j++)
+      MESSAGE (". j"<<j<<", zone :"<<TWZone->item(j,2)->text().toStdString());
+      if ( TWZone->item(j,2)->text().toStdString() == string(mesZonesAvant[i]) )
       {
-        MESSAGE (". j"<<j<<", zone :"<<TWZone->item(j,2)->text().toStdString());
-        if ( TWZone->item(j,2)->text().toStdString() == string(mesZonesAvant[i]) )
+        MESSAGE ("OK avec "<<string(mesZonesAvant[i]));
+        if ( string(mesZonesAvant[i+1]) == "1" )
+        {
+          MESSAGE ("... RAFF");
+          TWZone->item( j,0 )->setCheckState( Qt::Checked );
+          TWZone->item( j,1 )->setCheckState( Qt::Unchecked ); }
+        else
         {
-          MESSAGE ("OK avec "<<string(mesZonesAvant[i]));
-          if ( string(mesZonesAvant[i+1]) == "1" )
-          {
-            MESSAGE ("... RAFF");
-            TWZone->item( j,0 )->setCheckState( Qt::Checked );
-            TWZone->item( j,1 )->setCheckState( Qt::Unchecked ); }
-          else
-          {
-            MESSAGE ("... DERA");
-            TWZone->item( j,0 )->setCheckState( Qt::Unchecked );
-            TWZone->item( j,1 )->setCheckState( Qt::Checked ); }
-          break;
-        }
+          MESSAGE ("... DERA");
+          TWZone->item( j,0 )->setCheckState( Qt::Unchecked );
+          TWZone->item( j,1 )->setCheckState( Qt::Checked ); }
+        break;
       }
-      i += 1 ;
     }
+    i += 1 ;
+  }
 //
 //  Inactivation des choix
-    for ( int j =0 ; j < TWZone->rowCount(); j++)
-    {
-      TWZone->item( j, 0 )->setFlags(0);
-      TWZone->item( j, 1 )->setFlags(0);
-    }
-    PBZoneNew->setVisible(0);
+  for ( int j =0 ; j < TWZone->rowCount(); j++)
+  {
+    TWZone->item( j, 0 )->setFlags(0);
+    TWZone->item( j, 1 )->setFlags(0);
+  }
+  PBZoneNew->setVisible(0);
+//
+  adjustSize();
 //
 }
 // -------------------------------------
@@ -242,7 +243,6 @@ void MonEditHypothesis::InitAdaptChamps()
     GBUniform->setVisible(0);
     GBAreaManagement->setVisible(0);
     GBFieldManagement->setVisible(1);
-    adjustSize();
     RBChamp->setChecked(true);
     RBUniforme->setEnabled(false);
     RBChamp->setEnabled(false);
@@ -344,6 +344,8 @@ void MonEditHypothesis::InitAdaptChamps()
     RBInf->setChecked(true);
     RBInf->setEnabled(true);
   }
+//
+  adjustSize();
 }
 // -------------------------------------
 void MonEditHypothesis::InitFieldInterp()
index a94a17669fb4e5182da3edee629e052189026651..5758c39095d48b7405a92d54e91c2fcee6c89912 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index ca231f98fb6615e42b6ef9f103add1701d90f7bc..5fee755480bdf3c0e009c67d2aa8c07399820bfb 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -81,7 +81,6 @@ void MonEditIteration::InitValEdit0(int etat)
 //    Invisibilite des hypotheses et des champs
       Hypothese->setVisible(0);
       GBField->setVisible(0);
-      adjustSize();
 //
 }
 // ------------------------------
@@ -93,32 +92,32 @@ void MonEditIteration::InitValEdit()
   LEName->setText(_IterationName);
   LEName->setReadOnly(true);
 
-//    Affichage bloque du nom de l'iteration parent
+  //    Affichage bloque du nom de l'iteration parent
   _IterParentName = aIter->GetIterParentName();
   LEIterationParentName->setText(_IterParentName);
   LEIterationParentName->setReadOnly(true);
   PBIterParent->setEnabled(false);
   PBIterParent->setVisible(0);
 
-//    Affichage bloque du nom du maillage de l'iteration parent
+  //    Affichage bloque du nom du maillage de l'iteration parent
   aIterParent = myHomardGen->GetIteration(_IterParentName.toStdString().c_str());
   QString MeshNameParent = aIterParent->GetMeshName();
   LEMeshName_n->setText(MeshNameParent);
   LEMeshName_n->setReadOnly(1);
 
-//    Affichage bloque du nom du maillage de l'iteration courante
+  //    Affichage bloque du nom du maillage de l'iteration courante
   QString MeshName = aIter->GetMeshName();
   LEMeshName_np1->setText(MeshName);
   LEMeshName_np1->setReadOnly(1);
 
-//    Affichage de la bonne hypothese
+  //    Affichage de la bonne hypothese
   QString HypoName = aIter->GetHypoName();
   CBHypothese->insertItem(0,HypoName);
   CBHypothese->setCurrentIndex(0);
   CBHypothese->setEnabled(false);
   PBHypoNew->setVisible(0);
 
-//    Pour une adaptation selon un champ
+  //    Pour une adaptation selon un champ
   HOMARD::HOMARD_Hypothesis_var myHypo = myHomardGen->GetHypothesis(HypoName.toStdString().c_str()) ;
   _aTypeAdap = myHypo->GetAdapType() ;
   if ( _aTypeAdap == 1 )
@@ -130,7 +129,7 @@ void MonEditIteration::InitValEdit()
     _rank = aIter->GetRank() ;
     SpinBox_Rank->setValue(_rank);
 
-// Cas ou on prend le dernier pas de temps ou sans pas de temps
+  // Cas ou on prend le dernier pas de temps ou sans pas de temps
     if ( _step <= -1 )
     {
       Rank->setVisible(0);
@@ -142,7 +141,7 @@ void MonEditIteration::InitValEdit()
       else               { RBNo->setChecked(true); }
     }
 
-// Cas avec pas de temps
+  // Cas avec pas de temps
     else
     {
       Rank->setVisible(1);
@@ -156,6 +155,7 @@ void MonEditIteration::InitValEdit()
   {
     GBField->setVisible(0);
   }
+//
   adjustSize();
 //
 }
index 916422c7126982234c4daa23b54db071d69a13a1..5d342709275ced109ac75f3e18f1a7ce6292eb88 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index fb72b9c3e2f01ab33c04d6fb9078d7640da76331..7933fb67ab6b78dd10fe74167cedf8a8024d3695 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 09286abbb6341596b80479fc899cee55f995d016..25fd6640967f936798613b537638e8df66412632 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 9d2aa831c19a6771bc8124eea786aa5c65faae74..12c80d8c4f2e270d0208407375d0e69d90098185 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -55,55 +55,94 @@ void MonEditYACS::InitValEdit()
   LEName->setText(_Name);
   LEName->setReadOnly(true);
 
-  QString _aCaseName = aYACS->GetCaseName();
+  _aCaseName = aYACS->GetCaseName();
   LECaseName->setText(_aCaseName);
   LECaseName->setReadOnly(true);
   PBCaseName->setVisible(0);
 
-  QString aScriptFile = aYACS->GetScriptFile();
-  LEScriptFile->setText(aScriptFile);
+  _aScriptFile = aYACS->GetScriptFile();
+  LEScriptFile->setText(_aScriptFile);
 
-  QString aDirName = aYACS->GetDirName();
-  LEDirName->setText(aDirName);
+  _aDirName = aYACS->GetDirName();
+  LEDirName->setText(_aDirName);
+  LEDirName->setReadOnly(true);
 
-  QString aMeshFile = aYACS->GetMeshFile();
-  LEMeshFile->setText(aMeshFile);
+  _aMeshFile = aYACS->GetMeshFile();
+  LEMeshFile->setText(_aMeshFile);
 
-  int Type=aYACS->GetType();
-  if(Type==1) { RBConstant->setChecked(true); }
-  else        { RBVariable->setChecked(true); };
+  _Type=aYACS->GetType();
+  if(_Type==1) { RBConstant->setChecked(true); }
+  else         { RBVariable->setChecked(true); };
   RBConstant->setEnabled(false);
   RBVariable->setEnabled(false);
+
+  _MaxIter = aYACS->GetMaxIter();
+  SpinBoxMaxIter->setValue(_MaxIter) ;
+  _MaxNode = aYACS->GetMaxNode();
+  SpinBoxMaxNode->setValue(_MaxNode) ;
+  _MaxElem = aYACS->GetMaxElem();
+  SpinBoxMaxElem->setValue(_MaxElem) ;
 //
-  adjustSize();
 }
 
 // ---------------------------------------------------
 bool MonEditYACS:: CreateOrUpdate()
 //----------------------------------------------------
-//  Modification du schema
+//  Edition/modification du schema
 {
   MESSAGE("CreateOrUpdate");
-
-  // Les donnees
+  bool chgt = false ;
+  int valeur_i ;
+  // A. Recuperation et comparaison des valeurs
+  // A.1. Le script de lancement
   QString aScriptFile=LEScriptFile->text().trimmed();
   if ( aScriptFile != _aScriptFile )
   {
+//     MESSAGE("modification de ScriptFile : "<<_aScriptFile.toStdString()<<" devient "<<aScriptFile.toStdString());
     _aScriptFile = aScriptFile ;
     aYACS->SetScriptFile(CORBA::string_dup(_aScriptFile.toStdString().c_str())) ;
+    chgt = true ;
   }
-  QString aDirName=LEDirName->text().trimmed();
-  if ( aDirName != _aDirName )
-  {
-    _aDirName = aDirName ;
-    aYACS->SetDirName(CORBA::string_dup(_aDirName.toStdString().c_str())) ;
-  }
+  // A.2. Le maillage initial
   QString aMeshFile=LEMeshFile->text().trimmed();
   if ( aMeshFile != _aMeshFile )
   {
+//     MESSAGE("modification de aMeshFile : "<<_aMeshFile.toStdString()<<" devient "<<aMeshFile.toStdString());
     _aMeshFile = aMeshFile ;
     aYACS->SetMeshFile(CORBA::string_dup(_aMeshFile.toStdString().c_str())) ;
+    chgt = true ;
+  }
+  // A.3. La convergence
+  valeur_i = SpinBoxMaxIter->value() ;
+  if ( valeur_i != _MaxIter )
+  {
+//     MESSAGE("modification de MaxIter : "<<_MaxIter<<" devient "<<valeur_i);
+    _MaxIter = valeur_i ;
+    aYACS->SetMaxIter(_MaxIter) ;
+    chgt = true ;
+  }
+  valeur_i = SpinBoxMaxNode->value() ;
+  if ( valeur_i != _MaxNode )
+  {
+//     MESSAGE("modification de MaxNode : "<<_MaxNode<<" devient "<<valeur_i);
+    _MaxNode = valeur_i ;
+    aYACS->SetMaxNode(_MaxNode) ;
+    chgt = true ;
+  }
+  valeur_i = SpinBoxMaxElem->value() ;
+  if ( valeur_i != _MaxElem )
+  {
+//     MESSAGE("modification de MaxElem : "<<_MaxElem<<" devient "<<valeur_i);
+    _MaxElem = valeur_i ;
+    aYACS->SetMaxElem(_MaxElem) ;
+    chgt = true ;
+  }
+// B. Si changement
+  if ( chgt )
+  {
+    myHomardGen->InvalideYACS(_Name.toStdString().c_str());
   }
 
+  HOMARD_UTILS::updateObjBrowser();
   return true ;
 }
index 4905a696e86489f2e0ab94e57f584f86728b3967..b1e9ebb5153530187a6417faec35f2bb875bf797 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 50905a8915be1d28556724a82fe109b64a4e0c85..178fc5d8f1b7a93d56abc1327ba511ea01062ee0 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -252,7 +252,6 @@ void MonEditZone::SetSphere()
   if ( _Zincr > 0) { SpinBox_Zcentre->setSingleStep(_Zincr); }
   else             { SpinBox_Zcentre->setSingleStep(1);}
 
-  SpinBox_Rayon->setMinimum(0.);
   SpinBox_Rayon->setValue(_ZoneRayon);
 }
 // ------------------------------------------------------------------------
@@ -292,7 +291,6 @@ void MonEditZone::SetCylinder()
   if ( _Zincr > 0) { SpinBox_Zbase->setSingleStep(_Zincr); }
   else             { SpinBox_Zbase->setSingleStep(1) ;}
 
-  SpinBox_Radius->setMinimum(0.);
   SpinBox_Radius->setValue(_ZoneRayon);
 
   if ( _Type == 5 )
@@ -352,9 +350,7 @@ void MonEditZone::SetPipe()
   if ( _Zincr > 0) { SpinBox_Zbase_p->setSingleStep(_Zincr); }
   else             { SpinBox_Zbase_p->setSingleStep(1) ;}
 
-  SpinBox_Radius_int->setMinimum(0.);
   SpinBox_Radius_int->setValue(_ZoneRayonInt);
-  SpinBox_Radius_ext->setMinimum(0.);
   SpinBox_Radius_ext->setValue(_ZoneRayon);
 
   if ( _Type == 7 )
index 4ae5308cc9f41cd80efd0fb2dcd243e05f0df598..4f3734e4bb9c180475d49df25706c9271e583dd2 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index f2c4ce3e5659fd3d0d59f5d20edc9d848d9d4bd5..c65800c6f923256dea2ff032495ba9b605724ba8 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -130,8 +130,8 @@ void MonIterInfo::PushOnOK()
 void MonIterInfo::PushOnHelp()
 //-------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_mesh_info.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_mesh_info.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // ------------------------------------------------------------------------
 void MonIterInfo::SetBlockSize()
index caebd2134a6b5ce81a9ce6aaadc057c990ec4e35..35c41acb6b38514b5739f20170bb3e9b409fd61b 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 62e891f4b4a796952e17e5571939fb58f3059a26..c18b00e755bfbecf45e057d3c3348e219fe26be3 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,6 +18,7 @@
 //
 
 #include "MonMeshInfo.h"
+#include "HOMARD.hxx"
 
 #include <QFileDialog>
 #include <QMessageBox>
@@ -115,11 +116,7 @@ bool MonMeshInfo::PushOnApply()
       return false;
     }
   }
-#ifndef WIN32
-  if (chdir(aDirName.toStdString().c_str()) != 0)
-#else
-  if (_chdir(aDirName.toStdString().c_str()) != 0)
-#endif
+  if (CHDIR(aDirName.toStdString().c_str()) != 0)
   {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_CASE_DIRECTORY_3") );
@@ -190,8 +187,8 @@ void MonMeshInfo::PushOnOK()
 void MonMeshInfo::PushOnHelp()
 //-------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // ---------------------------------
 void MonMeshInfo::SetNewCaseName()
@@ -207,9 +204,9 @@ void MonMeshInfo::SetNewCaseName()
     {
       if ( aCaseName == QString((MyCases)[i]) )
       {
-        num += 1 ;
-        aCaseName="";
-        break;
+        num ++ ;
+        aCaseName = "" ;
+        break ;
       }
    }
   }
@@ -228,7 +225,7 @@ void MonMeshInfo::SetFileName()
 // ------------------------------------------------------------------------
 {
   QString fileName0 = LEFileName->text().trimmed();
-  QString fileName = HOMARD_QT_COMMUN::PushNomFichier();
+  QString fileName = HOMARD_QT_COMMUN::PushNomFichier( false, QString("med") ) ;
   if (fileName.isEmpty()) fileName = fileName0 ;
   LEFileName->setText(fileName);
 }
index 0058d056e31e157e019fd0118f69f40ef684295d..e95f098e57f4d0b991a72caf9eaf8187c35a9a1d 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 6d98b287a08ed44f9d69738daf551492ca129613..ea6575f6e8bd65bd469b216b435ffc3d8030cbb5 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,6 +18,7 @@
 //
 
 #include "MonPursueIteration.h"
+#include "HOMARD.hxx"
 
 #include <QFileDialog>
 #include <QMessageBox>
@@ -53,7 +54,7 @@ MonPursueIteration::MonPursueIteration ( bool modal, HOMARD::HOMARD_Gen_var myHo
   SetNewCaseName() ;
   _Type = 1 ;
   GBIterationintoCase->setVisible(0);
-  spinBoxNumber->setVisible(0);
+  SpinBoxNumber->setVisible(0);
 
   adjustSize();
   MESSAGE("Fin du constructeur de MonPursueIteration");
@@ -107,11 +108,7 @@ bool MonPursueIteration::PushOnApply()
       return false;
     }
   }
-#ifndef WIN32
-  if (chdir(aDirName.toStdString().c_str()) != 0)
-#else
-  if (_chdir(aDirName.toStdString().c_str()) != 0)
-#endif
+  if (CHDIR(aDirName.toStdString().c_str()) != 0)
   {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_CASE_DIRECTORY_3") );
@@ -125,11 +122,7 @@ bool MonPursueIteration::PushOnApply()
                               QObject::tr("HOM_START_DIRECTORY_1") );
     return false;
   }
-#ifndef WIN32
-  if (chdir(aDirNameStart.toStdString().c_str()) != 0)
-#else
-  if (_chdir(aDirNameStart.toStdString().c_str()) != 0)
-#endif
+  if (CHDIR(aDirNameStart.toStdString().c_str()) != 0)
   {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_START_DIRECTORY_3") );
@@ -138,7 +131,7 @@ bool MonPursueIteration::PushOnApply()
 
 // 3. Enregistrement du numero d'iteration
   int Number ;
-  if ( _Type == 3 ) { Number = spinBoxNumber->value() ; }
+  if ( _Type == 3 ) { Number = SpinBoxNumber->value() ; }
 
 // 4. Creation du cas
   QString _aCaseName=LECaseName->text().trimmed();
@@ -221,8 +214,8 @@ void MonPursueIteration::PushOnOK()
 void MonPursueIteration::PushOnHelp()
 //-------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // ---------------------------------
 void MonPursueIteration::SetNewCaseName()
@@ -238,9 +231,9 @@ void MonPursueIteration::SetNewCaseName()
     {
       if ( aCaseName == QString((MyCases)[i]))
       {
-          num += 1;
-          aCaseName = "";
-          break;
+        num ++ ;
+        aCaseName = "" ;
+        break ;
       }
    }
   }
@@ -266,7 +259,7 @@ void MonPursueIteration::FromIteration()
 // ------------------------------------------------------------------------
 {
   GBIterationintoCase->setVisible(0);
-  spinBoxNumber->setVisible(0);
+  SpinBoxNumber->setVisible(0);
   _Type = 1 ;
   adjustSize();
 }
@@ -281,7 +274,7 @@ void MonPursueIteration::FromCase()
 void MonPursueIteration::CaseLastIteration()
 // ------------------------------------------------------------------------
 {
-  spinBoxNumber->setVisible(0);
+  SpinBoxNumber->setVisible(0);
   _Type = 2 ;
   adjustSize();
 }
@@ -289,7 +282,7 @@ void MonPursueIteration::CaseLastIteration()
 void MonPursueIteration::CaseNIteration()
 // ------------------------------------------------------------------------
 {
-  spinBoxNumber->setVisible(1);
+  SpinBoxNumber->setVisible(1);
   _Type = 3 ;
   adjustSize();
 }
index a6c5d7d99b63d5b6dfb805b34a801e67000b2d54..e07010992ceed34c60e15cb1d403dcd642c7fa37 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 565464ff5680df1b19f2df6970b711aee04d360f..ee87c56f0e22ccaef6e016fe77a6bfa2f73cc1bd 100644 (file)
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'PursueIteration.ui'
 **
-** Created: Mon Apr 8 11:14:52 2013
+** Created: Wed Jan 15 08:41:44 2014
 **      by: Qt User Interface Compiler version 4.6.3
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
@@ -49,7 +49,7 @@ public:
     QGridLayout *gridLayout;
     QRadioButton *RBCaseLastIteration;
     QRadioButton *RBCaseNIteration;
-    QSpinBox *spinBoxNumber;
+    QSpinBox *SpinBoxNumber;
     QGroupBox *GroupButtons;
     QGridLayout *gridLayout1;
     QPushButton *buttonHelp;
@@ -171,11 +171,11 @@ public:
 
         gridLayout->addWidget(RBCaseNIteration, 1, 0, 1, 1);
 
-        spinBoxNumber = new QSpinBox(GBIterationintoCase);
-        spinBoxNumber->setObjectName(QString::fromUtf8("spinBoxNumber"));
-        spinBoxNumber->setMaximum(1789);
+        SpinBoxNumber = new QSpinBox(GBIterationintoCase);
+        SpinBoxNumber->setObjectName(QString::fromUtf8("SpinBoxNumber"));
+        SpinBoxNumber->setMaximum(1789);
 
-        gridLayout->addWidget(spinBoxNumber, 1, 1, 1, 1);
+        gridLayout->addWidget(SpinBoxNumber, 1, 1, 1, 1);
 
 
         gridLayout_2->addWidget(GBIterationintoCase, 4, 0, 1, 2);
index cf2fbe23e12e1cda4e2f05886a6ca4ca408d6b12..ad3de2352dcd6e270026abc67148bab7a1bce028 100644 (file)
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="QSpinBox" name="spinBoxNumber">
+       <widget class="QSpinBox" name="SpinBoxNumber">
         <property name="maximum">
          <number>1789</number>
         </property>
index d720c9eec8865a99840b44c22797694a274f8a46..1d02926cb54adae48e3838ec65800acc0d99053e 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index 3eec2c4cffc04b72641dfd191a407a42b042b27a..3a3f3e3a2eabd684f978d89bc87f78c9d4d1754e 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -137,7 +138,8 @@ void HOMARD_Boundary_i::SetMeshFile( const char* MeshFile )
 {
   ASSERT( myHomardBoundary );
   myHomardBoundary->SetMeshFile( MeshFile );
-  _gen_i->PublishResultInSmesh(MeshFile, 0);
+  int PublisMeshIN = _gen_i->GetPublisMeshIN () ;
+  if ( PublisMeshIN != 0 ) { _gen_i->PublishResultInSmesh(MeshFile, 0); }
 }
 //=============================================================================
 char* HOMARD_Boundary_i::GetMeshFile()
@@ -170,6 +172,12 @@ void HOMARD_Boundary_i::SetConeA( double Xaxe, double Yaxe, double Zaxe, double
   myHomardBoundary->SetConeA( Xaxe, Yaxe, Zaxe, Angle, Xcentre, Ycentre, Zcentre );
 }
 //=============================================================================
+void HOMARD_Boundary_i::SetTorus( double X0, double X1, double X2, double X3, double X4, double X5, double X6, double X7 )
+{
+  ASSERT( myHomardBoundary );
+  myHomardBoundary->SetTorus( X0, X1, X2, X3, X4, X5, X6, X7 );
+}
+//=============================================================================
 HOMARD::double_array* HOMARD_Boundary_i::GetCoords()
 {
   ASSERT( myHomardBoundary );
index 791e586eaab3ed4b6455c08db3fafe850884be02..5d94d1721d3da00ae5019305e1fc043ade3b1c3b 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -83,6 +84,9 @@ public:
                                    double Xcentre2, double Ycentre2, double Zcentre2, double Rayon2);
   void                   SetConeA( double Xaxe, double Yaxe, double Zaxe, double Angle,
                                    double Xcentre, double Ycentre, double ZCentre);
+  void                   SetTorus( double Xcentre, double Ycentre, double ZCentre,
+                                      double Xaxe, double Yaxe, double Zaxe,
+                                      double rayonRev, double rayonPri );
 
   HOMARD::double_array*  GetCoords();
 
index 6515972fa5b1fd3edffea1f7b16461aa5484c704..5c227bb18218a8d04eb730dd4b5104f7a1795293 100755 (executable)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -125,17 +126,21 @@ void HOMARD_Cas_i::SetDirName( const char* NomDir )
   int codret ;
   // A. recuperation du nom ; on ne fait rien si c'est le meme
   char* oldrep = GetDirName() ;
-  if ( oldrep == NomDir ) { return ; }
+  if ( strcmp(oldrep,NomDir) == 0 )
+  {
+   return ;
+  }
   MESSAGE ( "SetDirName : passage de oldrep = "<< oldrep << " a NomDir = "<<NomDir);
   // B. controle de l'usage du repertoire
-  char* casename = _gen_i->VerifieDir(NomDir) ;
-  if ( std::string(casename).size() > 0 )
+  char* CaseName = GetName() ;
+  char* casenamedir = _gen_i->VerifieDir(NomDir) ;
+  if ( ( std::string(casenamedir).size() > 0 ) & ( strcmp(CaseName,casenamedir)!=0 ) )
   {
-    INFOS ( "Le repertoire " << NomDir << " est deja utilise pour le cas "<< casename );
+    INFOS ( "Le repertoire " << NomDir << " est deja utilise pour le cas "<< casenamedir );
     SALOME::ExceptionStruct es;
     es.type = SALOME::BAD_PARAM;
     std::string text ;
-    text = "The directory " + std::string(NomDir) + " is already used for the case " + std::string(casename) ;
+    text = "The directory " + std::string(NomDir) + " is already used for the case " + std::string(casenamedir) ;
     es.text = CORBA::string_dup(text.c_str());
     throw SALOME::SALOME_Exception(es);
   }
@@ -330,7 +335,7 @@ void HOMARD_Cas_i::AddBoundaryGroup( const char* BoundaryName, const char* Group
     it++ ;
 //     MESSAGE ("..  Group : "<< *it );
     if ( *it == Group )
-    { INFOS ("Le groupe " << Group << " est deja associe a la frontiere " << boun) ;
+    { INFOS ("Frontiere " << boun << " Un groupe est deja associe " << Group ) ;
       SALOME::ExceptionStruct es;
       es.type = SALOME::BAD_PARAM;
       es.text = "Invalid AddBoundaryGroup";
@@ -358,6 +363,13 @@ HOMARD::ListBoundaryGroupType* HOMARD_Cas_i::GetBoundaryGroup()
   return aResult._retn();
 }
 //=============================================================================
+void HOMARD_Cas_i::SupprBoundaryGroup()
+{
+  MESSAGE ("SupprBoundaryGroup");
+  ASSERT(myHomardCas );
+  myHomardCas->SupprBoundaryGroup();
+}
+//=============================================================================
 void HOMARD_Cas_i::SetPyram( CORBA::Long Pyram )
 {
   MESSAGE ("SetPyram, Pyram = " << Pyram );
@@ -463,7 +475,7 @@ void HOMARD_Cas_i::AddIteration( const char* NomIteration )
 // Creation d'un schema YACS
 // YACSName : nom du schema
 // ScriptFile : nom du fichier contenant le script de lancement du calcul
-// DirName : le repertoire de lancement des calculs du schéma
+// DirName : le repertoire de lancement des calculs du sch?ma
 // MeshFile : nom du fichier contenant le maillage pour le premier calcul
 //=============================================================================
 HOMARD::HOMARD_YACS_ptr HOMARD_Cas_i::CreateYACSSchema( const char* YACSName, const char* ScriptFile, const char* DirName, const char* MeshFile )
index a3f032a0648288d9db17384d7a089f5a8da99ce5..0880ae8739e754c9f136feafa1b4370c41854671 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -84,6 +85,7 @@ public:
 
   void                   AddBoundaryGroup( const char* Boundary, const char* Group);
   HOMARD::ListBoundaryGroupType*  GetBoundaryGroup();
+  void                   SupprBoundaryGroup( );
 
   void                   SetPyram( CORBA::Long Pyram );
   CORBA::Long            GetPyram();
index d38628bba389070adbdcb59905e32c5b39b0c0bc..f7f2dc6bbd5b5a7b5309ab00afd5ba535cbbab74 100755 (executable)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -104,8 +104,8 @@ Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
   _tag_hypo = 0 ;
   _tag_yacs = 0 ;
   _tag_zone = 0 ;
-  _Langue = "Francais" ;
-  _LangueShort = "fr" ;
+
+  SetPreferences( ) ;
 }
 //=================================
 /*!
@@ -628,6 +628,7 @@ void HOMARD_Gen_i::InvalideIterOption(const char* nomIter, CORBA::Long Option)
       if (!so->FindAttribute(anAttr, "AttributeComment")) continue;
       SALOMEDS::AttributeComment_var aCommentAttr = SALOMEDS::AttributeComment::_narrow(anAttr);
       std::string value (aCommentAttr->Value());
+      if(value == std::string("IterationHomard")) continue;
       if(value == std::string("HypoHomard")) continue;
       SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
       aStudyBuilder->RemoveObject(so);
@@ -721,6 +722,47 @@ void HOMARD_Gen_i::InvalideIterInfo(const char* nomIter)
   }
 }
 //=============================================================================
+void HOMARD_Gen_i::InvalideYACS(const char* YACSName)
+{
+  MESSAGE( "InvalideYACS : YACSName    = " << YACSName );
+  HOMARD::HOMARD_YACS_var myYACS = myContextMap[GetCurrentStudyID()]._mesYACSs[YACSName];
+  if (CORBA::is_nil(myYACS))
+  {
+      SALOME::ExceptionStruct es;
+      es.type = SALOME::BAD_PARAM;
+      es.text = "Invalid schema YACS";
+      throw SALOME::SALOME_Exception(es);
+      return ;
+  };
+  //
+  SALOMEDS::SObject_var aYACSSO = SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(myYACS)));
+  SALOMEDS::ChildIterator_var  aYACS = myCurrentStudy->NewChildIterator(aYACSSO);
+  for (; aYACS->More(); aYACS->Next())
+  {
+    SALOMEDS::SObject_var so = aYACS->Value();
+    SALOMEDS::GenericAttribute_var anAttr;
+    if (!so->FindAttribute(anAttr, "AttributeComment")) continue;
+    SALOMEDS::AttributeComment_var aCommentAttr = SALOMEDS::AttributeComment::_narrow(anAttr);
+    std::string value (aCommentAttr->Value());
+    if( value == std::string("xml") )
+    {
+      SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
+      aStudyBuilder->RemoveObject(so);
+    }
+  }
+  std::string nomFichier = myYACS->GetXMLFile();
+  std::string commande = "rm -rf " + std::string(nomFichier) ;
+  MESSAGE ( "commande = " << commande );
+  if ((system(commande.c_str())) != 0)
+  {
+    SALOME::ExceptionStruct es;
+    es.type = SALOME::BAD_PARAM;
+    es.text = "The XML file for the schema YACS cannot be removed." ;
+    throw SALOME::SALOME_Exception(es);
+    return ;
+  }
+}
+//=============================================================================
 void HOMARD_Gen_i::InvalideZone(const char* ZoneName)
 {
   MESSAGE( "InvalideZone : ZoneName    = " << ZoneName );
@@ -839,14 +881,11 @@ void HOMARD_Gen_i::AssociateIterHypo(const char* nomIter, const char* nomHypo)
   SALOMEDS::SObject_var aIterSO = SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(myIteration)));
   ASSERT(!CORBA::is_nil(aIterSO));
 
-  // Gestion de l'etude
+  // Gestion de l'arbre d'etudes
   SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
-
   aStudyBuilder->NewCommand();
-
   SALOMEDS::SObject_var aSubSO = aStudyBuilder->NewObject(aIterSO);
   aStudyBuilder->Addreference(aSubSO, aHypoSO);
-
   aStudyBuilder->CommitCommand();
 
   // Liens reciproques
@@ -1088,7 +1127,9 @@ void HOMARD_Gen_i::MeshInfo(const char* nomCas, const char* MeshName, const char
   IsValidStudy () ;
 
 // Creation du cas
-  HOMARD::HOMARD_Cas_ptr myCase = CreateCase0(nomCas, MeshName, MeshFile, 1, 0, 1) ;
+  int option = 1 ;
+  if ( _PublisMeshIN != 0 ) option = 2 ;
+  HOMARD::HOMARD_Cas_ptr myCase = CreateCase0(nomCas, MeshName, MeshFile, 1, 0, option) ;
   myCase->SetDirName(DirName) ;
 // Analyse
   myCase->MeshInfo(Qual, Diam, Conn, Tail, Inte) ;
@@ -1185,8 +1226,9 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* nomCas, const char*
 {
   INFOS ( "CreateCase : nomCas = " << nomCas << ", MeshName = " << MeshName << ", MeshFile = " << MeshFile );
 
-  // Par defaut, on ne publie pas le maillage
-  HOMARD::HOMARD_Cas_ptr myCase = CreateCase0(nomCas, MeshName, MeshFile, 0, 0, 1) ;
+  int option = 1 ;
+  if ( _PublisMeshIN != 0 ) option = 2 ;
+  HOMARD::HOMARD_Cas_ptr myCase = CreateCase0(nomCas, MeshName, MeshFile, 0, 0, option) ;
 
 // Valeurs par defaut des filtrages
   myCase->SetPyram(0);
@@ -1206,11 +1248,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
 
   // A. Decodage du point de reprise
   // A.1. Controle du repertoire de depart de l'iteration
-#ifndef WIN32
-  codret = chdir(DirNameStart) ;
-#else 
-  codret = _chdir(DirNameStart) ;
-#endif
+  codret = CHDIR(DirNameStart) ;
   if ( codret != 0 )
   {
     SALOME::ExceptionStruct es;
@@ -1241,7 +1279,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
     }
   }
   closedir(dp);
-#else 
+#else
   HANDLE hFind = INVALID_HANDLE_VALUE;
   WIN32_FIND_DATA ffd;
   hFind = FindFirstFile(DirNameStart, &ffd);
@@ -1259,7 +1297,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
       }
     }
     FindClose(hFind);
-  } 
+  }
 #endif
   MESSAGE ( "==> file_configuration   : " << file_configuration ) ;
   MESSAGE ( "==> file_maillage_homard : " << file_maillage_homard ) ;
@@ -1360,8 +1398,9 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
 
   // C. Creation effective du cas
 
-  // Par defaut, on ne publie pas le maillage
-  HOMARD::HOMARD_Cas_ptr myCase = CreateCase0(nomCas, MeshName, MeshFile, 1, NumeIter, 1) ;
+  int option = 1 ;
+  if ( _PublisMeshIN != 0 ) option = 2 ;
+  HOMARD::HOMARD_Cas_ptr myCase = CreateCase0(nomCas, MeshName, MeshFile, 1, NumeIter, option) ;
 
   // D. Parametrages lus dans le fichier de configuration
 
@@ -1381,7 +1420,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
   nomDirIterTotal = std::string(nomDirCase) + "/" + std::string(nomDirIter) ;
 #ifndef WIN32
   if (mkdir(nomDirIterTotal.c_str(), S_IRWXU|S_IRGRP|S_IXGRP) != 0)
-#else 
+#else
   if (_mkdir(nomDirIterTotal.c_str()) != 0)
 #endif
   {
@@ -1393,11 +1432,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
     throw SALOME::SALOME_Exception(es);
   }
   // E.3. Copie du maillage HOMARD au format MED
-#ifndef WIN32
-  codret = chdir(DirNameStart) ;
-#else
-  codret = _chdir(DirNameStart) ;
-#endif
+  codret = CHDIR(DirNameStart) ;
   std::string commande = "cp " + file_maillage_homard + " " + nomDirIterTotal ;
   MESSAGE ( "commande : " << commande ) ;
   codret = system(commande.c_str()) ;
@@ -1416,11 +1451,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCaseFromIteration(const char* nomCas,
   delete[] MeshName ;
   delete[] MeshFile ;
 
-#ifndef WIN32
-  chdir(nomDirWork.c_str());
-#else
-  _chdir(nomDirWork.c_str());
-#endif
+  CHDIR(nomDirWork.c_str());
   return HOMARD::HOMARD_Cas::_duplicate(myCase);
 }
 //=============================================================================
@@ -1479,11 +1510,7 @@ std::string HOMARD_Gen_i::CreateCase1(const char* DirNameStart, CORBA::Long Numb
   int NumeIterMax = -1 ;
 
   // A.1. Controle du repertoire de depart du cas
-#ifndef WIN32
-  codret = chdir(DirNameStart) ;
-#else
-  codret = _chdir(DirNameStart) ;
-#endif
+  codret = CHDIR(DirNameStart) ;
   if ( codret != 0 )
   {
     SALOME::ExceptionStruct es;
@@ -1513,11 +1540,11 @@ std::string HOMARD_Gen_i::CreateCase1(const char* DirNameStart, CORBA::Long Numb
 #endif
     if ( ( DirName_1 != "." ) && ( DirName_1 != ".." ) )
     {
-#ifndef WIN32
-      if ( chdir(DirName_1.c_str()) == 0 )
+      if ( CHDIR(DirName_1.c_str()) == 0 )
       {
 //      On cherche le fichier de configuration dans ce sous-repertoire
-        codret = chdir(DirNameStart);
+        codret = CHDIR(DirNameStart);
+#ifndef WIN32
         DIR *dp_1;
         struct dirent *dirp_1;
         dp_1  = opendir(DirName_1.c_str()) ;
@@ -1525,26 +1552,19 @@ std::string HOMARD_Gen_i::CreateCase1(const char* DirNameStart, CORBA::Long Numb
         {
           std::string file_name_1(dirp_1->d_name);
 #else
-     if ( _chdir(DirName_1.c_str()) == 0 )
-     {
-        codret = _chdir(DirNameStart);
         HANDLE hFind1 = INVALID_HANDLE_VALUE;
         WIN32_FIND_DATA ffd1;
         hFind1 = FindFirstFile(DirName_1.c_str(), &ffd1);
-        while (FindNextFile(hFind1, &ffd1) != 0) 
+        while (FindNextFile(hFind1, &ffd1) != 0)
         {
-          if (ffd1.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue; //skip directories          
+          if (ffd1.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue; //skip directories
           std::string file_name_1(ffd1.cFileName);
-#endif          
+#endif
           int bilan = file_name_1.find("HOMARD.Configuration.") ;
           if ( bilan != string::npos )
           {
   // Decodage du fichier pour trouver le numero d'iteration
-#ifndef WIN32
-            chdir(DirName_1.c_str()) ;
-#else
-            _chdir(DirName_1.c_str()) ;
-#endif
+            CHDIR(DirName_1.c_str()) ;
 
             std::ifstream fichier( file_name_1.c_str() );
             if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
@@ -1591,11 +1611,7 @@ std::string HOMARD_Gen_i::CreateCase1(const char* DirNameStart, CORBA::Long Numb
               es.text = CORBA::string_dup(text.c_str());
               throw SALOME::SALOME_Exception(es);
             }
-#ifndef WIN32
-            chdir(DirNameStart) ;
-#else
-            _chdir(DirNameStart) ;
-#endif
+            CHDIR(DirNameStart) ;
           }
           if ( existe ) { break ; }
         }
@@ -1610,12 +1626,10 @@ std::string HOMARD_Gen_i::CreateCase1(const char* DirNameStart, CORBA::Long Numb
   }
 #ifndef WIN32
   closedir(dp);
-  chdir(nomDirWork.c_str());  
 #else
-    FindClose(hFind);
-  }
-  _chdir(nomDirWork.c_str());
+  FindClose(hFind);
 #endif
+  CHDIR(nomDirWork.c_str());
 
   if ( ( Number >= 0 && ( !existe ) ) || ( Number < 0 && ( NumeIterMax == -1 ) ) )
   {
@@ -1877,6 +1891,14 @@ HOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration(const char* NomIterat
 // Lien avec l'iteration precedente
   myIterationParent->LinkNextIteration(NomIteration);
   myIteration->SetIterParentName(nomIterParent);
+  // Gestion de l'arbre d'etudes
+  SALOMEDS::SObject_var aIterSOParent = SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(myIterationParent)));
+  SALOMEDS::SObject_var aIterSO = SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(myIteration)));
+  SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
+  aStudyBuilder->NewCommand();
+  SALOMEDS::SObject_var aSubSO = aStudyBuilder->NewObject(aIterSO);
+  aStudyBuilder->Addreference(aSubSO, aIterSOParent);
+  aStudyBuilder->CommitCommand();
 
   return HOMARD::HOMARD_Iteration::_duplicate(myIteration);
 }
@@ -2032,6 +2054,35 @@ HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundaryConeR(const char* Bounda
   return HOMARD::HOMARD_Boundary::_duplicate(myBoundary) ;
 }
 //=============================================================================
+HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundaryTorus(const char* BoundaryName,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
+                                      CORBA::Double RayonRev, CORBA::Double RayonPri)
+{
+  INFOS ("CreateBoundaryTorus : BoundaryName  = " << BoundaryName ) ;
+//
+  SALOME::ExceptionStruct es;
+  int error = 0 ;
+  if ( ( RayonRev <= 0.0 ) || ( RayonPri <= 0.0 ) )
+  { es.text = "The radius must be positive." ;
+    error = 1 ; }
+  double daux = fabs(Xaxe) + fabs(Yaxe) + fabs(Zaxe) ;
+  if ( daux < 0.0000001 )
+  { es.text = "The axis must be a non 0 vector." ;
+    error = 2 ; }
+  if ( error != 0 )
+  {
+    es.type = SALOME::BAD_PARAM;
+    throw SALOME::SALOME_Exception(es);
+    return 0;
+  };
+//
+  HOMARD::HOMARD_Boundary_var myBoundary = CreateBoundary(BoundaryName, 5) ;
+  myBoundary->SetTorus( Xcentre, Ycentre, Zcentre, Xaxe, Yaxe, Zaxe, RayonRev, RayonPri ) ;
+
+  return HOMARD::HOMARD_Boundary::_duplicate(myBoundary) ;
+}
+//=============================================================================
 HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZone(const char* ZoneName, CORBA::Long ZoneType)
 {
   MESSAGE ("CreateZone : ZoneName  = " << ZoneName << ", ZoneType = " << ZoneType);
@@ -2361,7 +2412,44 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
   HOMARD::HOMARD_Iteration_var myIteration = myContextMap[GetCurrentStudyID()]._mesIterations[NomIteration];
   ASSERT(!CORBA::is_nil(myIteration));
 
-  // A.2. Numero de l'iteration
+  // A.2. Controle de la possibilite d'agir
+  // A.2.1. Etat de l'iteration
+  int etat = myIteration->GetState();
+  MESSAGE ( "etat = "<<etat );
+  // A.2.2. On ne calcule pas l'iteration initiale, ni une iteration deja calculee
+  if ( modeHOMARD == 1 )
+  {
+    if ( etat <= 0 )
+    {
+      SALOME::ExceptionStruct es;
+      es.type = SALOME::BAD_PARAM;
+      es.text = "This iteration is the first of the case and cannot be computed.";
+      throw SALOME::SALOME_Exception(es);
+      return 1 ;
+    }
+    else if ( ( etat == 2 ) & ( modeHOMARD == 1 ) )
+    {
+      SALOME::ExceptionStruct es;
+      es.type = SALOME::BAD_PARAM;
+      es.text = "This iteration is already computed.";
+      throw SALOME::SALOME_Exception(es);
+      return 1 ;
+    }
+  }
+  // A.2.3. On n'analyse pas une iteration non calculee
+  else
+  {
+    if ( etat == 1 )
+    {
+      SALOME::ExceptionStruct es;
+      es.type = SALOME::BAD_PARAM;
+      es.text = "This iteration is not computed.";
+      throw SALOME::SALOME_Exception(es);
+      return 1 ;
+    }
+  }
+
+  // A.3. Numero de l'iteration
   //     siterp1 : numero de l'iteration a traiter
   //     Si adaptation :
   //        siter   : numero de l'iteration parent, ou 0 si deja au debut mais cela ne servira pas !
@@ -2386,7 +2474,7 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
   else
   { siter = siterp1 ; }
 
-  // A.3. Le cas
+  // A.4. Le cas
   const char* nomCas = myIteration->GetCaseName();
   HOMARD::HOMARD_Cas_var myCase = myContextMap[GetCurrentStudyID()]._mesCas[nomCas];
   ASSERT(!CORBA::is_nil(myCase));
@@ -2419,11 +2507,7 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
 
    // D. On passe dans le repertoire de l'iteration a calculer
   MESSAGE ( ". On passe dans DirCompute = " << DirCompute );
-#ifndef WIN32
-  chdir(DirCompute);
-#else
-  _chdir(DirCompute);
-#endif
+  CHDIR(DirCompute);
 
   // E. Les donnees de l'execution HOMARD
   // E.1. L'objet du texte du fichier de configuration
@@ -2511,7 +2595,7 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
   // H.3 Message d'erreur
     if (codretexec != 0)
     {
-      std::string text ;
+      std::string text = "" ;
       // Message d'erreur en cas de probleme en adaptation
       if ( modeHOMARD == 1 )
       {
@@ -2534,10 +2618,7 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
           }
         }
       }
-      else
-      {
-        text = "Voir le fichier Liste.log.\n" ;
-      }
+      text += "\n\nSee the file " + LogFile + "\n" ;
       INFOS ( text ) ;
       SALOME::ExceptionStruct es;
       es.type = SALOME::BAD_PARAM;
@@ -2554,12 +2635,8 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena
   {
     delete myDriver;
     MESSAGE ( ". On retourne dans nomDirWork = " << nomDirWork );
-    
-#ifndef WIN32
-    chdir(nomDirWork.c_str());
-#else
-    _chdir(nomDirWork.c_str());
-#endif
+
+    CHDIR(nomDirWork.c_str());
   }
 
   return codretexec ;
@@ -2574,8 +2651,6 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
   // A. Prealable
   // A.1. Bases
   int codret = 0;
-  // Etat de l'iteration
-  int etat = myIteration->GetState();
   // Numero de l'iteration
   int NumeIter = myIteration->GetNumber();
   std::stringstream saux0 ;
@@ -2583,18 +2658,7 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
   std::string siter = saux0.str() ;
   if (NumeIter < 11) { siter = "0" + siter ; }
 
-  // A.2. On ne calcule pas l iteration initiale
-  if ( etat <= 0 )
-  {
-    MESSAGE ( "etat = "<<etat );
-    SALOME::ExceptionStruct es;
-    es.type = SALOME::BAD_PARAM;
-    es.text = "This iteration is the first of the case and cannot be computed.";
-    throw SALOME::SALOME_Exception(es);
-    return 1;
-  };
-
-  // A.3. On verifie qu il y a une hypothese (erreur improbable);
+  // A.2. On verifie qu il y a une hypothese (erreur improbable);
   const char* nomHypo = myIteration->GetHypoName();
   if (std::string(nomHypo) == std::string(""))
   {
@@ -2676,6 +2740,7 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
   int TypeAdap = (*ListTypes)[0];
   int TypeRaff = (*ListTypes)[1];
   int TypeDera = (*ListTypes)[2];
+//   MESSAGE ( ". TypeAdap = " << TypeAdap << ", TypeRaff = " << TypeRaff << ", TypeDera = " << TypeDera  );
 
   // E. Texte du fichier de configuration
   // E.1. Incontournables du texte
@@ -2738,12 +2803,8 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(HOMARD::HOMARD_Cas_var myCase, HOMARD::HOM
 char* HOMARD_Gen_i::CreateDirNameIter(const char* nomrep, CORBA::Long num )
 {
   MESSAGE ( "CreateDirNameIter : nomrep ="<< nomrep << ", num = "<<num);
-  // On verifie que le repertoire parent existe  
-#ifndef WIN32
-  int codret = chdir(nomrep) ;
-#else
-  int codret = _chdir(nomrep) ;
-#endif
+  // On verifie que le repertoire parent existe
+  int codret = CHDIR(nomrep) ;
   if ( codret != 0 )
   {
     SALOME::ExceptionStruct es;
@@ -2759,12 +2820,8 @@ char* HOMARD_Gen_i::CreateDirNameIter(const char* nomrep, CORBA::Long num )
   while ( a_chercher )
   {
     // On passe dans le repertoire parent
-    
-#ifndef WIN32
-  chdir(nomrep);
-#else
-  _chdir(nomrep);
-#endif
+
+    CHDIR(nomrep);
     // On recherche un nom sous la forme Iabc, avec abc representant le numero
     int jaux ;
     if      ( num <    100 ) { jaux = 2 ; }
@@ -2778,13 +2835,8 @@ char* HOMARD_Gen_i::CreateDirNameIter(const char* nomrep, CORBA::Long num )
     DirNameA << "I" << iaux.str();
     // Si on ne pas peut entrer dans le repertoire, on doit verifier
     // que c'est bien un probleme d'absence
-#ifndef WIN32
-    if ( chdir(DirNameA.str().c_str()) != 0 )
+    if ( CHDIR(DirNameA.str().c_str()) != 0 )
     {
-#else
-    if ( _chdir(DirNameA.str().c_str()) != 0 )
-    {
-#endif
       bool existe = false ;
 #ifndef WIN32
       DIR *dp;
@@ -2801,13 +2853,12 @@ char* HOMARD_Gen_i::CreateDirNameIter(const char* nomrep, CORBA::Long num )
         while (FindNextFile(hFind, &ffd) != 0) {
          if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue; //skip directories
          std::string file_name(ffd.cFileName);
-#endif        
+#endif
         if ( file_name == DirNameA.str() ) { existe = true ; }
       }
 #ifndef WIN32
       closedir(dp);
-#else 
-      }
+#else
       FindClose(hFind);
 #endif
       if ( !existe )
@@ -2822,11 +2873,7 @@ char* HOMARD_Gen_i::CreateDirNameIter(const char* nomrep, CORBA::Long num )
 
   MESSAGE ( "==> DirName = " << DirName);
   MESSAGE ( ". On retourne dans nomDirActuel = " << nomDirActuel );
-#ifndef WIN32
-  chdir(nomDirActuel.c_str());
-#else
-  _chdir(nomDirActuel.c_str());
-#endif
+  CHDIR(nomDirActuel.c_str());
   return CORBA::string_dup( DirName.c_str() );
 }
 //=============================================================================
@@ -2853,19 +2900,14 @@ char* HOMARD_Gen_i::ComputeDirManagement(HOMARD::HOMARD_Cas_var myCase, HOMARD::
   MESSAGE (". DirCompute = " << DirCompute.str() );
 
   // B.3.3. Si le sous-repertoire n'existe pas, on le cree
-#ifndef WIN32
-  if (chdir(DirCompute.str().c_str()) != 0)
+  if (CHDIR(DirCompute.str().c_str()) != 0)
   {
-//  Creation du repertoire car il n'existe pas :
+#ifndef WIN32
     if (mkdir(DirCompute.str().c_str(), S_IRWXU|S_IRGRP|S_IXGRP) != 0)
-    {
 #else
-  if (_chdir(DirCompute.str().c_str()) != 0)
-  {
-//  Creation du repertoire car il n'existe pas :
     if (_mkdir(DirCompute.str().c_str()) != 0)
-    {
 #endif
+    {
        // GERALD -- QMESSAGE BOX
        std::cerr << "Pb Creation du repertoire DirCompute = " << DirCompute.str() << std::endl;
        VERIFICATION("Pb a la creation du repertoire" == 0);
@@ -2921,7 +2963,7 @@ char* HOMARD_Gen_i::ComputeDirManagement(HOMARD::HOMARD_Cas_var myCase, HOMARD::
         {
           SALOME::ExceptionStruct es;
           es.type = SALOME::BAD_PARAM;
-          std::string text = "Directory : " + DirCompute.str() + "is not empty";
+          std::string text = "Directory : " + DirCompute.str() + " is not empty";
           es.text = CORBA::string_dup(text.c_str());
           throw SALOME::SALOME_Exception(es);
           VERIFICATION("Directory is not empty" == 0);
@@ -3114,6 +3156,11 @@ void HOMARD_Gen_i::DriverTexteBoundary(HOMARD::HOMARD_Cas_var myCase, HomardDriv
           myDriver->TexteBoundaryAn(BoundaryName, NumBoundaryAnalytical, BoundaryType, (*coor)[0], (*coor)[1], (*coor)[2], (*coor)[3], (*coor)[4], (*coor)[5], (*coor)[6], (*coor)[7]);
           if ( BoundaryOption % 3 != 0 ) { BoundaryOption = BoundaryOption*3 ; }
         }
+        else if (BoundaryType == 5) // Cas d un tore
+        {
+          myDriver->TexteBoundaryAn(BoundaryName, NumBoundaryAnalytical, BoundaryType, (*coor)[0], (*coor)[1], (*coor)[2], (*coor)[3], (*coor)[4], (*coor)[5], (*coor)[6], (*coor)[7]);
+          if ( BoundaryOption % 3 != 0 ) { BoundaryOption = BoundaryOption*3 ; }
+        }
       }
       // 2.2.3. Memorisation du traitement
       ListeBoundaryTraitees.push_back( BoundaryName );
@@ -3363,6 +3410,11 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishBoundaryInStudy(SALOMEDS::Study_ptr t
       icone = "conedxyz.png" ;
       break;
     }
+    case 5 :
+    { value = "BoundaryAnHomard" ;
+      icone = "toruspointvector.png" ;
+      break;
+    }
   }
   aResultSO = aStudyBuilder->NewObject(aSObject);
   PublishInStudyAttr(aStudyBuilder, aResultSO, theName, value.c_str(), icone.c_str(), _orb->object_to_string(theObject));
@@ -3635,6 +3687,7 @@ void HOMARD_Gen_i::PublishBoundaryUnderCase(const char* CaseName, const char* Bo
 
   SALOMEDS::SObject_var aSubSO = aStudyBuilder->NewObject(aCaseSO);
   aStudyBuilder->Addreference(aSubSO, aBoundarySO);
+//   aStudyBuilder->RemoveReference(aSubSO);
 
   aStudyBuilder->CommitCommand();
 
@@ -3698,10 +3751,7 @@ void HOMARD_Gen_i::PublishResultInSmesh(const char* NomFich, CORBA::Long Option)
         {
           MESSAGE ( "PublishResultInSmesh : le fichier " << NomFich << " est deja publie." );
           // Pour un fichier importe, on ne republie pas
-          if ( Option == 0 )
-          {
-            return;
-          }
+          if ( Option == 0 ) { return; }
           // Pour un fichier calcule, on commence par faire la depublication
           else
           {
@@ -3794,6 +3844,37 @@ void HOMARD_Gen_i::DeleteResultInSmesh(std::string NomFich, std::string MeshName
   return ;
 }
 //=============================================================================
+void HOMARD_Gen_i::PublishMeshIterInSmesh(const char* NomIter)
+{
+  MESSAGE( "PublishMeshIterInSmesh " << NomIter);
+  HOMARD::HOMARD_Iteration_var myIteration = myContextMap[GetCurrentStudyID()]._mesIterations[NomIter];
+
+  SALOMEDS::SObject_var aIterSO=SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(myIteration)));
+  if (CORBA::is_nil(myIteration))
+  {
+      SALOME::ExceptionStruct es;
+      es.type = SALOME::BAD_PARAM;
+      es.text = "Invalid iterationStudy Object";
+      throw SALOME::SALOME_Exception(es);
+      return ;
+  };
+  const char* MeshFile = myIteration->GetMeshFile() ;
+  const char* MeshName = myIteration->GetMeshName() ;
+  CORBA::Long Option = -1 ;
+  int etat = myIteration->GetState();
+// Iteration initiale
+  if ( etat <= 0 )      { Option = 0 ; }
+// ou iteration calculee
+  else if ( etat == 2 ) { Option = 1 ; }
+// Publication effective apres menage eventuel
+  if ( Option >= 0 )
+  {
+    DeleteResultInSmesh(MeshFile, MeshName) ;
+    PublishResultInSmesh(MeshFile, Option) ;
+  }
+
+}
+//=============================================================================
 void HOMARD_Gen_i::PublishFileUnderIteration(const char* NomIter, const char* NomFich, const char* Commentaire)
 {
 //   MESSAGE ("PublishFileUnderIteration pour l'iteration " << NomIter << " du fichier " << NomFich << " avec le commentaire " << Commentaire );
@@ -3912,9 +3993,17 @@ HOMARD::HOMARD_YACS_ptr HOMARD_Gen_i::CreateYACSSchema (const char* nomYACS, con
   myYACS->SetScriptFile( ScriptFile ) ;
   myYACS->SetCaseName( nomCas ) ;
   // D.2. Defaut
+  int defaut_i ;
   // D.2.1. Type constant
   myYACS->SetType( 1 ) ;
-  // D.2.2. Fichier de sauvegarde dans le repertoire du cas
+  // D.2.2. Convergence
+  defaut_i = GetYACSMaxIter() ;
+  myYACS->SetMaxIter( defaut_i ) ;
+  defaut_i = GetYACSMaxNode() ;
+  myYACS->SetMaxNode( defaut_i ) ;
+  defaut_i = GetYACSMaxElem() ;
+  myYACS->SetMaxElem( defaut_i ) ;
+  // D.3. Fichier de sauvegarde dans le repertoire du cas
   HOMARD::HOMARD_Cas_ptr caseyacs = GetCase(nomCas) ;
   std::string dirnamecase = caseyacs->GetDirName() ;
   std::string XMLFile ;
@@ -3958,6 +4047,10 @@ CORBA::Long HOMARD_Gen_i::YACSWriteOnFile(const char* nomYACS, const char* XMLFi
   std::string DirName = myYACS->GetDirName() ;
   std::string MeshFile = myYACS->GetMeshFile() ;
   std::string ScriptFile = myYACS->GetScriptFile() ;
+  // B.3. Les caracteristiques de convergence
+  int MaxIter = myYACS->GetMaxIter() ;
+  int MaxNode = myYACS->GetMaxNode() ;
+  int MaxElem = myYACS->GetMaxElem() ;
 
   // C. Le cas
   // C.1. L'objet cas
@@ -4077,7 +4170,10 @@ CORBA::Long HOMARD_Gen_i::YACSWriteOnFile(const char* nomYACS, const char* XMLFi
         texte_control += YACSDriverTexteBoundary( myCase, myDriver ) ;
         myDriver->TexteAdd(texte_control);
       }
-      // G.1.10. Les parametres
+      // G.1.10. Les tests de convergence
+      else if ( mot_cle == "Analyse_Test_Convergence" )
+      { myDriver->TexteAnalyse_Test_Convergence(MaxIter, MaxNode, MaxElem); }
+      // G.1.11. Les parametres
       else if ( mot_cle == "PARAMETRES" )
       { myDriver->TexteAddParametres(); }
       // G.1.n. La ligne est recopiee telle quelle
@@ -4146,7 +4242,7 @@ std::string HOMARD_Gen_i::YACSDriverTexteZone(HOMARD::HOMARD_Hypothesis_var myHy
     texte_control_0 = myDriver->Texte_Iter_1_Zone(ZoneType, pythonStructure, methode, ZoneName );
     texte_control += texte_control_0 ;
     // 5. Decalage
-    iaux += 1 ;
+    iaux ++ ;
   }
 
   return texte_control ;
@@ -4421,7 +4517,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
     }
     else if (line.substr(0, iterSignature.size()) == iterSignature) {
       // re-create iteration
-      MESSAGE ("Recreation de l iteration" );
+      MESSAGE ("Recreation de l'iteration" );
       HOMARD::HOMARD_Iteration_var aIter = newIteration();
       PortableServer::ServantBase_var aServant = GetServant(aIter);
       HOMARD_Iteration_i* aIterServant = dynamic_cast<HOMARD_Iteration_i*>(aServant.in());
@@ -4639,7 +4735,7 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
 
    std::string aScript = "\"\"\"\n";
    aScript += "Python script for HOMARD\n";
-   aScript += "Copyright EDF-R&D 2013\n";
+   aScript += "Copyright EDF-R&D 1996, 2011, 2014\n";
    aScript += "\"\"\"\n";
    aScript += "__revision__ = \"V1.2\"\n";
    aScript += "import HOMARD\n";
@@ -4852,30 +4948,179 @@ char* HOMARD_Gen_i::getVersion()
 #endif
 }
 //===============================================================================
-// Recuperation de la chaine de caracteres par rapport a l'apparition d'un texte
+// Recuperation de la chaine de caracteres par rapport a l'apparition d'un caractere
 // ligne : la ligne a manipuler
-// texte : le texte a reperer
-// option : 0 : la chaine avant le texte
-//          1 : la chaine apres le texte
-// Si le texte est absent, on retourne la chaine totale
+// caractere : le caractere a reperer
+// option : 0 : la chaine avant la premiere apparition du caractere
+//          1 : la chaine apres la premiere apparition du caractere
+//          2 : la chaine avant la derniere apparition du caractere
+//          3 : la chaine apres la derniere apparition du caractere
+// Si le caractere est absent, on retourne la chaine totale
 //===============================================================================
-std::string HOMARD_Gen_i::GetStringInTexte( const std::string ligne, const std::string texte, int option )
+std::string HOMARD_Gen_i::GetStringInTexte( const std::string ligne, const std::string caractere, int option )
 {
-//   MESSAGE("GetStringInTexte, recherche de '"<<texte<<"' dans '"<<ligne<<"'"<<", option = "<<option);
+//   MESSAGE("GetStringInTexte, recherche de '"<<caractere<<"' dans '"<<ligne<<"'"<<", option = "<<option);
 //
   std::string chaine = ligne ;
-  int position = ligne.find_first_of( texte ) ;
-  if ( position > 0 )
+  int position ;
+  if ( option < 2 ) { position = ligne.find_first_of( caractere ) ; }
+  else              { position = ligne.find_last_of( caractere ) ; }
+//   MESSAGE("position = "<<position);
+//   MESSAGE("a = "<<ligne.substr( 0, position ).c_str());
+//   MESSAGE("b = "<<ligne.substr( position+1 ).c_str());
+//
+  if ( position != std::string::npos )
   {
-    if ( option == 0 ) { chaine = ligne.substr( 0, position ) ; }
-    else               { chaine = ligne.substr( position+1 ) ; }
+    if ( ( option == 0 ) || ( option == 2 ) ) { chaine = ligne.substr( 0, position ) ; }
+    else                                      { chaine = ligne.substr( position+1 ) ; }
   }
   return chaine ;
 //
 }
-// //===============================================================================
-// // Langue de SALOME
-// //===============================================================================
+//=============================================================================
+//=============================================================================
+// Gestion des preferences
+//=============================================================================
+//=============================================================================
+// Decodage du fichier d'arcihvage des preferences
+//
+void HOMARD_Gen_i::SetPreferences( )
+{
+  MESSAGE ( "SetPreferences" );
+
+  std::string ligne, mot_cle, salome_version ;
+  bool ok = true ;
+
+  // A. Les valeurs par defaut ; elles doivent etre coherentes
+  std::string LanguageShort = "en" ;
+  int PublisMeshIN = 0 ;
+  int PublisMeshOUT = 0 ;
+  int YACSMaxIter = 0 ;
+  int YACSMaxNode = 0 ;
+  int YACSMaxElem = 0 ;
+  std::string YACSTypeTestchaine = "None" ;
+
+  // B. La version de salome
+  // Cela se presente sous la forme :
+  // [SALOME KERNEL] : 7.3.0
+  std::string File ;
+  File  = getenv("KERNEL_ROOT_DIR") ;
+  File += "/bin/salome/VERSION" ;
+  MESSAGE ( "File = "<<File ) ;
+  std::ifstream fichier0( File.c_str() ) ;
+  if ( fichier0 ) // ce test échoue si le fichier n'est pas ouvert
+  {
+    std::string ligne; // variable contenant chaque ligne lue
+    while ( std::getline( fichier0, ligne ) )
+    {
+      std::istringstream ligne_bis(ligne); // variable contenant chaque ligne sous forme de flux
+      ligne_bis >> mot_cle ;
+      if ( mot_cle == "[SALOME" )
+      {
+        salome_version = GetStringInTexte ( ligne, " ", 3 ) ;
+//         MESSAGE ( "salome_version = "<<salome_version<<"|||");
+        break ;
+      }
+    }
+  }
+  else { ok = false ; }
+
+  // B. Decodage du fichier de preferences
+  if ( ok )
+  {
+    std::string PrefFile ;
+    PrefFile  = getenv("HOME") ;
+    PrefFile += "/.config/salome/SalomeApprc." + salome_version ;
+    MESSAGE ( "PrefFile = "<<PrefFile ) ;
+
+    std::ifstream fichier( PrefFile.c_str() );
+    if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
+    {
+      bool section_langue = false ;
+      bool section_homard = false ;
+      while ( std::getline( fichier, ligne ) )
+      {
+        std::string chaine ;
+        // 1. Pour la ligne courante, on identifie le premier mot : le mot-cle eventuel
+        std::istringstream ligne_bis(ligne); // variable contenant chaque ligne sous forme de flux
+        ligne_bis >> mot_cle ;
+
+        // 2. Les sections
+        // 2.1. Debut d'une section
+  //       MESSAGE(mot_cle);
+        if ( mot_cle == "<section" )
+        { /*MESSAGE ( "Debut de la section : "<< ligne);*/
+          ligne_bis >> mot_cle ;
+          chaine = GetStringInTexte ( mot_cle, "\"", 1 ) ;
+          chaine = GetStringInTexte ( chaine,  "\"", 0 ) ;
+          if ( chaine == "language" ) { section_langue = true ; }
+          if ( chaine == "HOMARD" )   { section_homard = true ; }
+  //         MESSAGE ( "section_langue = "<<section_langue<<", section_homard = "<<section_homard);
+        }
+        // 2.2. Fin d'une section
+        else if ( mot_cle == "</section>" )
+        { /*MESSAGE ( "Fin de la section : "<< ligne<<", section_langue = "<<section_langue<<", section_homard = "<<section_homard);*/
+          section_langue = false ;
+          section_homard = false ; }
+
+        // 3. Parametres
+        // 3.1. La langue
+        else if ( section_langue || section_homard )
+        { MESSAGE ( "a decoder : "<< ligne);
+//        La valeur : entre les deux premieres quotes
+          chaine = GetStringInTexte ( ligne, "\"", 1 ) ;
+//           MESSAGE("chaine 1 = |"<<chaine<<"|");
+          chaine = GetStringInTexte ( chaine,  "\"", 0 ) ;
+//           MESSAGE("chaine = |"<<chaine<<"|");
+//        Le mot_cle : entre les deux dernieres quotes
+          std::string chaine2 = GetStringInTexte ( ligne, "\"", 2 ) ;
+//           MESSAGE("chaine2 1 = |"<<chaine2<<"|");
+          chaine2 = GetStringInTexte ( chaine2,  "\"", 3 ) ;
+//           MESSAGE("chaine2 = |"<<chaine2<<"|");
+          // 3.1. La langue
+          if ( section_langue )
+          { if ( chaine2 == "language" ) { LanguageShort = chaine ; } }
+          // 3.2. HOMARD
+          if ( section_homard )
+          {
+            std::istringstream chainebis( chaine ) ;
+            // 3.2.1. Les publications
+            if ( chaine2 == "publish_mesh_in" )  { chainebis >> PublisMeshIN ; }
+            if ( chaine2 == "publish_mesh_out" ) { chainebis >> PublisMeshOUT ; }
+            // 3.2.2. Les maximum pour YACS
+            if ( chaine2 == "yacs_max_iter" ) { chainebis >> YACSMaxIter ; }
+            if ( chaine2 == "yacs_max_node" ) { chainebis >> YACSMaxNode ; }
+            if ( chaine2 == "yacs_max_elem" ) { chainebis >> YACSMaxElem ; }
+            if ( chaine2 == "yacs_type_test" ) { YACSTypeTestchaine = chaine ; }
+          }
+        }
+      }
+    }
+  }
+
+  // C. Enregistrements
+  MESSAGE ("Enregistrement de LanguageShort = " << LanguageShort );
+  SetLanguageShort( LanguageShort.c_str() ) ;
+
+  MESSAGE ("Enregistrement de PublisMeshIN = " << PublisMeshIN<<", PublisMeshOUT = "<< PublisMeshOUT);
+  SetPublisMesh(PublisMeshIN, PublisMeshOUT) ;
+
+  MESSAGE ("Enregistrement de YACSMaxIter = " << YACSMaxIter<<", YACSMaxNode = "<< YACSMaxNode<<", YACSMaxElem = "<< YACSMaxElem);
+  SetYACSMaximum(YACSMaxIter, YACSMaxNode, YACSMaxElem) ;
+
+  MESSAGE ("Enregistrement de TypeTest = " << YACSTypeTestchaine.c_str() );
+  int YACSTypeTest ;
+  if ( ( YACSTypeTestchaine == "VTest > VRef" ) || ( YACSTypeTestchaine == "VTest &gt; VRef" ) )      { YACSTypeTest = 1 ; }
+  else if ( ( YACSTypeTestchaine == "VTest < VRef" ) || ( YACSTypeTestchaine == "VTest &lt; VRef" ) ) { YACSTypeTest = 2 ; }
+  else                                                                                                { YACSTypeTest = 0 ; }
+  MESSAGE ("==> TypeTest = " << YACSTypeTest );
+  SetYACSConvergenceType( YACSTypeTest ) ;
+
+  return ;
+}
+//===============================================================================
+// Langue de SALOME
+//===============================================================================
 void HOMARD_Gen_i::SetLanguageShort(const char* LanguageShort)
 {
 //   MESSAGE ("SetLanguageShort pour LanguageShort = " << LanguageShort );
@@ -4889,6 +5134,54 @@ char* HOMARD_Gen_i::GetLanguageShort()
 //   MESSAGE ("GetLanguageShort");
   return CORBA::string_dup( _LangueShort.c_str() );
 }
+//===============================================================================
+// Options de publications
+//===============================================================================
+void HOMARD_Gen_i::SetPublisMesh(CORBA::Long PublisMeshIN, CORBA::Long PublisMeshOUT)
+{
+  _PublisMeshIN  = PublisMeshIN  ;
+  _PublisMeshOUT = PublisMeshOUT ;
+  return ;
+}
+CORBA::Long HOMARD_Gen_i::GetPublisMeshIN()
+{
+  return _PublisMeshIN ;
+}
+CORBA::Long HOMARD_Gen_i::GetPublisMeshOUT()
+{
+  return _PublisMeshOUT ;
+}
+//===============================================================================
+// YACS - test de convergence
+//===============================================================================
+void HOMARD_Gen_i::SetYACSMaximum(CORBA::Long YACSMaxIter, CORBA::Long YACSMaxNode, CORBA::Long YACSMaxElem)
+{
+  _YACSMaxIter = YACSMaxIter ;
+  _YACSMaxNode = YACSMaxNode ;
+  _YACSMaxElem = YACSMaxElem ;
+  return ;
+}
+CORBA::Long HOMARD_Gen_i::GetYACSMaxIter()
+{
+  return _YACSMaxIter ;
+}
+CORBA::Long HOMARD_Gen_i::GetYACSMaxNode()
+{
+  return _YACSMaxNode ;
+}
+CORBA::Long HOMARD_Gen_i::GetYACSMaxElem()
+{
+  return _YACSMaxElem ;
+}
+void HOMARD_Gen_i::SetYACSConvergenceType(CORBA::Long YACSTypeTest)
+{
+  _YACSTypeTest = YACSTypeTest ;
+  return ;
+}
+CORBA::Long HOMARD_Gen_i::GetYACSConvergenceType()
+{
+  return _YACSTypeTest ;
+}
 
 //=============================================================================
 extern "C"
index 0800863c2658275cb6071df2afce5f25c569f113..dad762b67d56027f3fae24e32ed2df67d18b7361 100644 (file)
@@ -1,9 +1,9 @@
-// // Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -75,6 +75,10 @@ public:
   HOMARD::HOMARD_Boundary_ptr     CreateBoundaryConeA (const char* nomBoundary,
                                       CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis, CORBA::Double Angle,
                                       CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre);
+  HOMARD::HOMARD_Boundary_ptr     CreateBoundaryTorus (const char* nomBoundary,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
+                                      CORBA::Double RayonRev, CORBA::Double RayonPri);
 
   HOMARD::HOMARD_Cas_ptr          CreateCase (const char* nomCas, const char* MeshName, const char* FileName);
   HOMARD::HOMARD_Cas_ptr          CreateCaseFromIteration (const char* nomCas, const char* DirNameStart);
@@ -148,6 +152,7 @@ public:
   void                            InvalideIter(const char* nomIter);
   void                            InvalideIterOption(const char* nomIter, CORBA::Long Option);
   void                            InvalideIterInfo(const char* nomIter);
+  void                            InvalideYACS(const char* nomYACS);
   void                            InvalideZone(const char* nomZone);
 
   CORBA::Long                     DeleteBoundary(const char* nomBoundary);
@@ -187,6 +192,7 @@ public:
   void                            PublishCaseUnderYACS(const char* YACSName, const char* CaseName);
   void                            PublishResultInSmesh(const char* NomFich, CORBA::Long Option);
   void                            DeleteResultInSmesh(std::string NomFich, std::string MeshName);
+  void                            PublishMeshIterInSmesh(const char* NomIter);
 
 // YACS
   HOMARD::HOMARD_YACS_ptr         CreateYACSSchema (const char* YACSName, const char* nomCas, const char* ScriptFile, const char* DirName, const char* MeshFile);
@@ -195,9 +201,19 @@ public:
   std::string                     YACSDriverTexteZone(HOMARD::HOMARD_Hypothesis_var myHypo, YACSDriver* myDriver);
   std::string                     YACSDriverTexteBoundary(HOMARD::HOMARD_Cas_var myCase, YACSDriver* myDriver);
 
-// Divers
+// Preferences
+  void                            SetPreferences() ;
   void                            SetLanguageShort(const char* LanguageShort);
   char*                           GetLanguageShort();
+  void                            SetPublisMesh(CORBA::Long PublisMeshIN, CORBA::Long PublisMeshOUT);
+  CORBA::Long                     GetPublisMeshIN();
+  CORBA::Long                     GetPublisMeshOUT();
+  void                            SetYACSMaximum(CORBA::Long YACSMaxIter, CORBA::Long YACSMaxNode, CORBA::Long YACSMaxElem);
+  CORBA::Long                     GetYACSMaxIter();
+  CORBA::Long                     GetYACSMaxNode();
+  CORBA::Long                     GetYACSMaxElem();
+  void                            SetYACSConvergenceType(CORBA::Long YACSTypeTest);
+  CORBA::Long                     GetYACSConvergenceType();
 
 
   // ---------------------------------------------------------------
@@ -316,8 +332,17 @@ private:
   int _tag_hypo ;
   int _tag_yacs ;
   int _tag_zone ;
+
+// Preferences
   std::string _Langue ;
   std::string _LangueShort ;
+  int _PublisMeshIN ;
+  int _PublisMeshOUT ;
+  int _YACSMaxIter ;
+  int _YACSMaxNode ;
+  int _YACSMaxElem ;
+  int _YACSTypeTest ;
+ ;
 
 };
 
index e9d2f3d2479408c8e269fda6f8f6fa91b97abd3b..c9850946a42dad14b9146d293905340a748853ed 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -112,10 +113,22 @@ bool HOMARD_Hypothesis_i::Restore( const std::string& stream )
 // Caracteristiques
 //=============================================================================
 //=============================================================================
-void HOMARD_Hypothesis_i::SetAdapRefinUnRef( CORBA::Long TypeAdap,CORBA::Long TypeRaff, CORBA::Long TypeDera )
+void HOMARD_Hypothesis_i::SetUnifRefinUnRef( CORBA::Long TypeRaffDera )
 {
   ASSERT( myHomardHypothesis );
-  myHomardHypothesis->SetAdapType( TypeAdap );
+  VERIFICATION( (TypeRaffDera==1) || (TypeRaffDera==-1) );
+  int TypeRaff, TypeDera ;
+  if ( TypeRaffDera == 1 )
+  {
+    TypeRaff = 1 ;
+    TypeDera = 0 ;
+  }
+  else if ( TypeRaffDera == -1 )
+  {
+    TypeRaff = 0 ;
+    TypeDera = 1 ;
+  }
+  myHomardHypothesis->SetAdapType( -1 );
   myHomardHypothesis->SetRefinTypeDera( TypeRaff, TypeDera );
 }
 //=============================================================================
@@ -218,6 +231,12 @@ HOMARD::listeComposantsHypo* HOMARD_Hypothesis_i::GetComps()
 //=============================================================================
 void HOMARD_Hypothesis_i::SetRefinThr( CORBA::Long TypeThR, CORBA::Double ThreshR )
 {
+  myHomardHypothesis->SetAdapType( 1 );
+  if ( TypeThR > 0 )
+  {
+    int TypeDera = myHomardHypothesis->GetUnRefType() ;
+    myHomardHypothesis->SetRefinTypeDera( 1, TypeDera );
+  }
   myHomardHypothesis->SetRefinThr( TypeThR, ThreshR );
 }
 //=============================================================================
@@ -229,6 +248,12 @@ CORBA::Long HOMARD_Hypothesis_i::GetRefinThrType()
 //=============================================================================
 void HOMARD_Hypothesis_i::SetUnRefThr( CORBA::Long TypeThC, CORBA::Double ThreshC )
 {
+  myHomardHypothesis->SetAdapType( 1 );
+  if ( TypeThC > 0 )
+  {
+    int TypeRaff = myHomardHypothesis->GetRefinType() ;
+    myHomardHypothesis->SetRefinTypeDera( TypeRaff, 1 );
+  }
   myHomardHypothesis->SetUnRefThr( TypeThC, ThreshC );
 }
 //=============================================================================
@@ -414,8 +439,22 @@ HOMARD::listeIters* HOMARD_Hypothesis_i::GetIterations()
 //=============================================================================
 void HOMARD_Hypothesis_i::AddZone( const char* NomZone, CORBA::Long TypeUse )
 {
-  MESSAGE ("Dans AddZone pour " << NomZone) ;
+  MESSAGE ("Dans AddZone pour " << NomZone << " et TypeUse = " << TypeUse ) ;
   ASSERT( myHomardHypothesis );
+  VERIFICATION( (TypeUse==1) || (TypeUse==-1) );
+  myHomardHypothesis->SetAdapType( 0 );
+  int TypeRaff, TypeDera ;
+  if ( TypeUse == 1 )
+  {
+    TypeRaff = 1 ;
+    TypeDera = myHomardHypothesis->GetUnRefType() ;
+  }
+  else if ( TypeUse == -1 )
+  {
+    TypeRaff = myHomardHypothesis->GetRefinType() ;
+    TypeDera = 1 ;
+  }
+  myHomardHypothesis->SetRefinTypeDera( TypeRaff, TypeDera );
   char* NomHypo = GetName() ;
   return _gen_i->AssociateHypoZone(NomHypo, NomZone, TypeUse) ;
 }
index e60fe1f77169748256e8e3cb26c40784594f431e..d39a891284bb879d99d25a650cb9a9ceaf0df2b3 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -65,7 +66,7 @@ public:
   bool                   Restore( const std::string& stream );
 
 // Caracteristiques
-  void                   SetAdapRefinUnRef( CORBA::Long TypeAdap, CORBA::Long TypeRaff, CORBA::Long TypeDera );
+  void                   SetUnifRefinUnRef( CORBA::Long TypeRaffDera );
   HOMARD::listeTypes*    GetAdapRefinUnRef();
   CORBA::Long            GetAdapType();
   CORBA::Long            GetRefinType();
index 429f82d8708331646eff2dfb7f3d074e1a1ecf0e..c4534db0ab861ac20be271b1706209cd49e14f2c 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
index 7eecccf2b77c22a806def70d968c7ee0a85b3046..4d8d981fed4f2fd727516c4260932e8cc7bdcbd2 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
index b00cbf97b891b2dc439009d087d90fbc61df17a6..8aaff1fe36dddb6b94cc3f1529ae0c207025f4d1 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -124,6 +125,68 @@ CORBA::Long HOMARD_YACS_i::GetType()
   return  CORBA::Long( myHomardYACS->GetType() );
 }
 //=============================================================================
+//=============================================================================
+// Caracteristiques de la convergence
+//=============================================================================
+//=============================================================================
+void HOMARD_YACS_i::SetMaxIter( CORBA::Long MaxIter )
+{
+  ASSERT( myHomardYACS );
+  myHomardYACS->SetMaxIter( MaxIter );
+}
+//=============================================================================
+CORBA::Long HOMARD_YACS_i::GetMaxIter()
+{
+  ASSERT( myHomardYACS );
+  return  CORBA::Long( myHomardYACS->GetMaxIter() );
+}
+//=============================================================================
+void HOMARD_YACS_i::SetMaxNode( CORBA::Long MaxNode )
+{
+  ASSERT( myHomardYACS );
+  myHomardYACS->SetMaxNode( MaxNode );
+}
+//=============================================================================
+CORBA::Long HOMARD_YACS_i::GetMaxNode()
+{
+  ASSERT( myHomardYACS );
+  return  CORBA::Long( myHomardYACS->GetMaxNode() );
+}
+//=============================================================================
+void HOMARD_YACS_i::SetMaxElem( CORBA::Long MaxElem )
+{
+  ASSERT( myHomardYACS );
+  myHomardYACS->SetMaxElem( MaxElem );
+}
+//=============================================================================
+CORBA::Long HOMARD_YACS_i::GetMaxElem()
+{
+  ASSERT( myHomardYACS );
+  return  CORBA::Long( myHomardYACS->GetMaxElem() );
+}
+//=============================================================================
+void HOMARD_YACS_i::SetTestConvergence( CORBA::Long TypeTest, CORBA::Double VRef)
+{
+  ASSERT( myHomardYACS );
+  myHomardYACS->SetTestConvergence( TypeTest, VRef );
+}
+//=============================================================================
+CORBA::Long HOMARD_YACS_i::GetTestConvergenceType()
+{
+  ASSERT( myHomardYACS );
+  return  CORBA::Long( myHomardYACS->GetTestConvergenceType() );
+}
+//=============================================================================
+CORBA::Double HOMARD_YACS_i::GetTestConvergenceVRef()
+{
+  ASSERT( myHomardYACS );
+  return  CORBA::Long( myHomardYACS->GetTestConvergenceVRef() );
+}
+//=============================================================================
+//=============================================================================
+// Repertoire et fichiers
+//=============================================================================
+//=============================================================================
 void HOMARD_YACS_i::SetDirName( const char* NomDir )
 {
   ASSERT( myHomardYACS );
index c67cfab7325202646398f72b8f4f8e1427ee479f..528c125375c14eb4eab1ff72c25edf55248469cb 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
@@ -69,6 +70,17 @@ public:
   void                   SetType( CORBA::Long Type );
   CORBA::Long            GetType();
 
+  void                   SetMaxIter( CORBA::Long MaxIter );
+  CORBA::Long            GetMaxIter();
+  void                   SetMaxNode( CORBA::Long MaxNode );
+  CORBA::Long            GetMaxNode();
+  void                   SetMaxElem( CORBA::Long MaxElem );
+  CORBA::Long            GetMaxElem();
+
+  void                   SetTestConvergence( CORBA::Long TypeTest, CORBA::Double VRef );
+  CORBA::Long            GetTestConvergenceType();
+  CORBA::Double          GetTestConvergenceVRef();
+
   void                   SetDirName( const char* NomDir );
   char*                  GetDirName();
 
index f832d743bfd0b8c3f898b0dada0aadba02f3b1ed..4e5469542bc1413bef0552aba73b631702d8cad7 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
index 6f5abdf7fffc42ccfa97434d28b5362dc22fa136..3706769177ad2e465d9d3bf87db3cc25df3a9e86 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // Remarques :
 // L'ordre de description des fonctions est le meme dans tous les fichiers
 // HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
index a2cfcfc682db48a13728653f9e6d45af435911e6..73610a8a46910865a11cf09a691448d02199233b 100755 (executable)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 7b22b6df4ede3355688034920f44e9fd5b70b952..e37ddffdac4bdffe779132bde1752e83a0ced9ba 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 09aea6ec850ea57a2e263a05abc4cae7c8aa7718..49701ba65d06dd0aad5dfeb1863408f50d22c6c2 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 83d2fc58b6bd5dbf3b9c5d0114a582bac4c0927b..311f1fa6c7055b20a18910b28af2264a43cd683d 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index a12c7f3a7d6a392e2282a9889b78e8e674038d4b..0a1aab3df1499f5f925a378417fa839a2a61948c 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
index aeb4931652ab9ba15592edb601713f2a225b573a..2d204e85bc3b0e6daa373b9265a1b157a90071e9 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
index 19e572ba0ab6efb598ebca38bcda6baf0db68a65..481fba415bd2fc3dcf4be365e2466cccd21dc2db 100755 (executable)
@@ -1,12 +1,9 @@
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+# Copyright (C) 2007-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -41,6 +38,16 @@ SET(HOMARD_TEST_FILES
   test_3.00.med
   test_3.fr.med
   test_3.apad.02.bilan
+  test_11.py
+  test_11.apad.03.bilan
+  test_12.py
+  test_12.apad.02.bilan
+  test_13.py
+  test_13.apad.02.bilan
+  test_14.py
+  test_14.apad.03.bilan
+  test_15.py
+  test_15.apad.02.bilan
 )
 
 INSTALL(FILES ${HOMARD_TEST_FILES} DESTINATION ${SALOME_HOMARD_INSTALL_RES_DATA})
old mode 100644 (file)
new mode 100755 (executable)
index 873b9cb..f9027d9
@@ -1,10 +1,10 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 #
 """
 Python script for HOMARD
-Copyright EDF-R&D 2010, 2013
+Copyright EDF-R&D 2010, 2014
 Test test_1
 """
-__revision__ = "V2.1"
+__revision__ = "V2.2"
 
 #========================================================================
 Test_Name = "test_1"
@@ -34,14 +34,18 @@ import sys
 import HOMARD
 import salome
 #
+# ==================================
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des donnees du test
 Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
 Rep_Test = os.path.normpath(Rep_Test)
-Rep_Test_Resu = tempfile.mktemp()
-os.mkdir(Rep_Test_Resu)
-
 sys.path.append(Rep_Test)
-from test_util import remove_dir
+from test_util import test_results
+# Repertoire des resultats
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
+# ==================================
+
 
 salome.salome_init()
 import iparameters
@@ -53,7 +57,6 @@ ipar.append("AP_MODULES_LIST", "Homard")
 def homard_exec(theStudy):
   """
 Python script for HOMARD
-Copyright EDF-R&D 2010, 2013
   """
   error = 0
 #
@@ -75,7 +78,6 @@ Copyright EDF-R&D 2010, 2013
     HypoName_1 = "a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM"
     print "-------- Creation of the hypothesis", HypoName_1
     Hypo_1_1 = homard.CreateHypothesis(HypoName_1)
-    Hypo_1_1.SetAdapRefinUnRef(1, 1, 0)
     Hypo_1_1.SetField('RESU____ERRE_ELEM_SIGM__________')
     Hypo_1_1.SetUseComp(0)
     Hypo_1_1.AddComp('ERREST')
@@ -92,7 +94,6 @@ Copyright EDF-R&D 2010, 2013
     HypoName_2 = "Zones_1_et_2"
     print "-------- Creation of the hypothesis", HypoName_2
     Zones_1_et_2 = homard.CreateHypothesis(HypoName_2)
-    Zones_1_et_2.SetAdapRefinUnRef(0, 1, 0)
     Zones_1_et_2.AddZone('Zone_1_1', 1)
     Zones_1_et_2.AddZone('Zone_1_2', 1)
     print HypoName_2, " : zones utilisées :", Zones_1_et_2.GetZones()
@@ -108,7 +109,7 @@ Copyright EDF-R&D 2010, 2013
     print "-------- Creation of the case", CaseName
     MeshFile = os.path.join(Rep_Test, Test_Name + '.00.med')
     Case_test_1 = homard.CreateCase(CaseName, 'MAILL', MeshFile)
-    Case_test_1.SetDirName(Rep_Test_Resu)
+    Case_test_1.SetDirName(dircase)
     Case_test_1.SetConfType(1)
   #
   # Creation of the iterations
@@ -120,7 +121,7 @@ Copyright EDF-R&D 2010, 2013
     Iter_test_1_1.AssociateHypo(HypoName_1)
     print ". Hypothese :", HypoName_1
     Iter_test_1_1.SetMeshName('M1')
-    Iter_test_1_1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
+    Iter_test_1_1.SetMeshFile(os.path.join(dircase, 'maill.01.med'))
     Iter_test_1_1.SetFieldFile(os.path.join(Rep_Test, Test_Name + '.00.med'))
     Iter_test_1_1.SetTimeStepRank(1, 1)
     Iter_test_1_1.SetFieldInterpTimeStep('RESU____DEPL____________________', 1)
@@ -138,7 +139,7 @@ Copyright EDF-R&D 2010, 2013
     Iter_test_1_2.AssociateHypo(HypoName_1)
     print ". Hypothese :", HypoName_1
     Iter_test_1_2.SetMeshName('M2')
-    Iter_test_1_2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
+    Iter_test_1_2.SetMeshFile(os.path.join(dircase, 'maill.02.med'))
     Iter_test_1_2.SetFieldFile(os.path.join(Rep_Test, Test_Name + '.01.med'))
     Iter_test_1_2.SetTimeStepRank(1, 1)
     Iter_test_1_2.SetFieldInterpTimeStep('RESU____DEPL____________________', 1)
@@ -156,7 +157,7 @@ Copyright EDF-R&D 2010, 2013
     Iter_test_1_3.AssociateHypo(HypoName_2)
     print ". Hypothese :", HypoName_2
     Iter_test_1_3.SetMeshName('M3')
-    Iter_test_1_3.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.03.med'))
+    Iter_test_1_3.SetMeshFile(os.path.join(dircase, 'maill.03.med'))
     Iter_test_1_2.SetFieldFile(os.path.join(Rep_Test, Test_Name + '.02.med'))
     print ". Instants d'interpolation :", Iter_test_1_3.GetFieldInterpsTimeStepRank()
     error = Iter_test_1_3.Compute(1, 1)
@@ -168,7 +169,7 @@ Copyright EDF-R&D 2010, 2013
   # ===========================
     ScriptFile = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "en", "_downloads", "yacs_script.py")
     ScriptFile = os.path.normpath(ScriptFile)
-    DirName = Rep_Test_Resu
+    DirName = dircase
     YACS_test_1 = Case_test_1.CreateYACSSchema("YACS_test_1", ScriptFile, DirName, MeshFile)
     error = YACS_test_1.Write()
     if error :
@@ -184,7 +185,6 @@ Copyright EDF-R&D 2010, 2013
 homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
 assert homard is not None, "Impossible to load homard engine"
 homard.SetLanguageShort("fr")
-
 #
 # Exec of HOMARD-SALOME
 #
@@ -195,45 +195,10 @@ try :
 except Exception, e:
   raise Exception('Pb in homard_exec: '+e.message)
 #
-# Test of the result
-#
-test_file_suff = "apad.%02d.bilan" % n_iter_test_file
-rep_test_file = "I%02d" % n_iter_test_file
-#
-test_file = os.path.join(Rep_Test, Test_Name + "." + test_file_suff)
-mess_error_ref = "\nReference file: " + test_file
-try :
-  file = open (test_file, "r")
-  mess_ref = file.readlines()
-  file.close()
-except :
-  mess_error = mess_error_ref + "\nThis file does not exist.\n"
-  raise Exception(mess_error)
-#
-test_file = os.path.join(Rep_Test_Resu, rep_test_file, test_file_suff)
-if os.path.isfile (test_file) :
-  file = open (test_file, "r")
-  mess = file.readlines()
-  file.close()
-else :
-  mess_error  = "\nResult file: " + test_file
-  mess_error += "\nThis file does not exist.\n"
-  raise Exception(mess_error)
-
-nblign = len(mess_ref)
-if ( len(mess) != nblign ):
-  mess_error = mess_error_ref +  "\nResult file: " + test_file
-  mess_error += "\nThe number of lines of the files are not the same.\n"
-  raise Exception(mess_error)
-
-for num in range(nblign) :
-  if (( "creation" not in mess_ref[num] ) and ( mess_ref[num] != mess[num])) :
-    message_erreur = "\nRefe : " + mess_ref[num]
-    message_erreur += "Test : " + mess[num][:-1]
-    message_erreur += "\nThe test is different from the reference."
-    raise Exception(message_erreur)
+# Test of the results
 #
-remove_dir(Rep_Test_Resu)
+n_rep_test_file = n_iter_test_file
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
 #
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
diff --git a/tests/test_11.apad.03.bilan b/tests/test_11.apad.03.bilan
new file mode 100644 (file)
index 0000000..c9c8861
--- /dev/null
@@ -0,0 +1,72 @@
+
+
+ANALYSE DU MAILLAGE
+===================
+
+     Maillage apres adaptation                         
+     MAILL                                                                           
+     Date de creation : vendredi 21 mars 2014 a 13 h 35 mn 56 s         
+     Dimension : 3
+     Degre : 2
+     C'est un maillage obtenu apres      3 adaptations.
+     Le niveau minimum actif est   :     3
+     Le niveau maximum atteint est :     3
+
+         Direction    |       Unite       |  Minimum   |  Maximum
+     ---------------------------------------------------------------
+     X                | INCONNUE          |  0.0000    |  1.0000    
+     Y                | INCONNUE          |  0.0000    |  1.0000    
+     Z                | INCONNUE          |  0.0000    |  1.0000    
+
+
+   NOMBRE D'ENTITES DU CALCUL
+   ==========================
+
+
+     ************************************************************
+     *                      Noeuds                              *
+     ************************************************************
+     * Nombre total                                *       4913 *
+     * . dont sommets d'aretes                     *        729 *
+     * . dont milieux d'aretes                     *       4184 *
+     ************************************************************
+
+     ************************************************************
+     *                      Mailles-Points                      *
+     ************************************************************
+     * Nombre total                                *          2 *
+     ************************************************************
+
+     ************************************************************
+     *                      Segments                            *
+     ************************************************************
+     * Nombre total                                *          8 *
+     * . dont aretes isolees                       *          0 *
+     * . dont aretes de bord de regions 2D         *          0 *
+     * . dont aretes internes aux faces/volumes    *          8 *
+     ************************************************************
+
+     ************************************************************
+     *                      Triangles                           *
+     ************************************************************
+     * Nombre total                                *        768 *
+     * . dont triangles de regions 2D              *          0 *
+     * . dont triangles de bord                    *        768 *
+     * . dont triangles internes aux volumes       *          0 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *          0 *
+     * . du niveau   2                             *          0 *
+     * . du niveau   3                             *        768 *
+     ************************************************************
+
+     ************************************************************
+     *                      Tetraedres                          *
+     ************************************************************
+     * Nombre total                                *       3072 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *          0 *
+     * . du niveau   2                             *          0 *
+     * . du niveau   3                             *       3072 *
+     ************************************************************
diff --git a/tests/test_11.py b/tests/test_11.py
new file mode 100755 (executable)
index 0000000..eab14b5
--- /dev/null
@@ -0,0 +1,133 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+Python script for HOMARD
+Copyright EDF-R&D 2010, 2014
+Test test_11 associe au tutorial 1
+"""
+__revision__ = "V2.1"
+
+#========================================================================
+Test_Name = "test_11"
+n_iter_test_file = 3
+#========================================================================
+import os
+import tempfile
+import sys
+import HOMARD
+import salome
+#
+# ==================================
+pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des donnees du test
+Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
+Rep_Test = os.path.normpath(Rep_Test)
+sys.path.append(Rep_Test)
+from test_util import test_results
+# Repertoire des resultats
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+# ==================================
+gzip_gunzip(data_dir, 1, -1)
+# ==================================
+
+salome.salome_init()
+import iparameters
+ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
+ipar.append("AP_MODULES_LIST", "Homard")
+#
+#========================================================================
+#========================================================================
+def homard_exec(theStudy):
+  """
+Python script for HOMARD
+  """
+  #
+  homard.SetCurrentStudy(theStudy)
+  #
+  # Hypotheses
+  # ==========
+  Hypo_1 = homard.CreateHypothesis('Hypo_1')
+  Hypo_1.SetUnifRefinUnRef(1)
+  #
+  # Cas
+  # ===
+  Case_1 = homard.CreateCase('Case_1', 'MAILL', data_dir+'/tutorial_1.00.med')
+  Case_1.SetDirName(dircase)
+  Case_1.SetConfType(1)
+  #
+  # Iterations
+  # ==========
+  # Iteration "Iter_1_1"
+  Iter_1_1 = Case_1.NextIteration('Iter_1_1')
+  Iter_1_1.SetMeshName('MESH')
+  Iter_1_1.SetMeshFile(dircase+'/maill.01.med')
+  Iter_1_1.AssociateHypo('Hypo_1')
+  error = Iter_1_1.Compute(1, 2)
+
+  # Iteration "Iter_1_2"
+  Iter_1_2 = Iter_1_1.NextIteration('Iter_1_2')
+  Iter_1_2.SetMeshName('MESH')
+  Iter_1_2.SetMeshFile(dircase+'/maill.02.med')
+  Iter_1_2.AssociateHypo('Hypo_1')
+  error = Iter_1_2.Compute(1, 2)
+
+  # Iteration "Iter_1_3"
+  Iter_1_3 = Iter_1_2.NextIteration('Iter_1_3')
+  Iter_1_3.SetMeshName('MESH')
+  Iter_1_3.SetMeshFile(dircase+'/maill.03.med')
+  Iter_1_3.AssociateHypo('Hypo_1')
+  error = Iter_1_3.Compute(1, 2)
+  #
+  return error
+
+#========================================================================
+
+homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
+homard.SetLanguageShort("fr")
+#
+# Exec of HOMARD-SALOME
+#
+try :
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+#
+# Test of the results
+#
+n_rep_test_file = n_iter_test_file
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
+#
+# ==================================
+gzip_gunzip(data_dir, 1, 1)
+# ==================================
+#
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
+  iparameters.getSession().restoreVisualState(1)
+
diff --git a/tests/test_12.apad.02.bilan b/tests/test_12.apad.02.bilan
new file mode 100644 (file)
index 0000000..fd32dc5
--- /dev/null
@@ -0,0 +1,70 @@
+
+
+ANALYSE DU MAILLAGE
+===================
+
+     Maillage apres adaptation                         
+     MZERO                                                                           
+     Date de creation : vendredi 21 mars 2014 a 11 h 33 mn 28 s         
+     Dimension : 3
+     Degre : 2
+     C'est un maillage obtenu apres      2 adaptations.
+     Le niveau minimum actif est   :     1
+     Le niveau maximum atteint est :     2
+
+         Direction    |       Unite       |  Minimum   |  Maximum
+     ---------------------------------------------------------------
+     X                | INCONNUE          |  0.0000    |  1.0000    
+     Y                | INCONNUE          |  0.0000    |  1.0000    
+     Z                | INCONNUE          |  0.0000    |  1.0000    
+
+
+   NOMBRE D'ENTITES DU CALCUL
+   ==========================
+
+
+     ************************************************************
+     *                      Noeuds                              *
+     ************************************************************
+     * Nombre total                                *        231 *
+     * . dont sommets d'aretes                     *         43 *
+     * . dont milieux d'aretes                     *        188 *
+     ************************************************************
+
+     ************************************************************
+     *                      Mailles-Points                      *
+     ************************************************************
+     * Nombre total                                *          2 *
+     ************************************************************
+
+     ************************************************************
+     *                      Segments                            *
+     ************************************************************
+     * Nombre total                                *          3 *
+     * . dont aretes isolees                       *          0 *
+     * . dont aretes de bord de regions 2D         *          0 *
+     * . dont aretes internes aux faces/volumes    *          3 *
+     ************************************************************
+
+     ************************************************************
+     *                      Triangles                           *
+     ************************************************************
+     * Nombre total                                *         66 *
+     * . dont triangles de regions 2D              *          0 *
+     * . dont triangles de bord                    *         66 *
+     * . dont triangles internes aux volumes       *          0 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *         30 *
+     * . du niveau   2                             *         36 *
+     ************************************************************
+
+     ************************************************************
+     *                      Tetraedres                          *
+     ************************************************************
+     * Nombre total                                *        113 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *         23 *
+     * . du niveau   2                             *         90 *
+     ************************************************************
diff --git a/tests/test_12.py b/tests/test_12.py
new file mode 100755 (executable)
index 0000000..0164c33
--- /dev/null
@@ -0,0 +1,143 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+Python script for HOMARD
+Copyright EDF-R&D 2010, 2014
+Test test_11 associe au tutorial 2
+"""
+__revision__ = "V2.1"
+
+#========================================================================
+Test_Name = "test_12"
+n_iter_test_file = 2
+#========================================================================
+import os
+import tempfile
+import sys
+import HOMARD
+import salome
+#
+# ==================================
+pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des donnees du test
+Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
+Rep_Test = os.path.normpath(Rep_Test)
+sys.path.append(Rep_Test)
+from test_util import test_results
+# Repertoire des resultats
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+# ==================================
+gzip_gunzip(data_dir, 2, -1)
+# ==================================
+
+salome.salome_init()
+import iparameters
+ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
+ipar.append("AP_MODULES_LIST", "Homard")
+#
+#========================================================================
+#========================================================================
+def homard_exec(theStudy):
+  """
+Python script for HOMARD
+  """
+  #
+  homard.SetCurrentStudy(theStudy)
+  #
+  # Creation des zones
+  # ==================
+  # Box "Zone_0"
+  Zone_0 = homard.CreateZoneBox ('Zone_0', -0.1, 1.1, -0.1, 1.1, 0.9, 1.1)
+  #
+  # Sphere "Zone_1"
+  Zone_1 = homard.CreateZoneSphere ('Zone_1', 0., 0., 0., 1.05)
+  #
+  # Box "Zone_2"
+  Zone_2 = homard.CreateZoneBox ('Zone_2', -0.1, 0.51, -0.1, 0.51, -0.1, 0.51)
+  #
+  # Hypothese "Hypo_2"
+  # ==================
+  Hypo_2 = homard.CreateHypothesis('Hypo_2')
+  Hypo_2.AddZone('Zone_1', 1)
+  Hypo_2.AddZone('Zone_0', 1)
+  #
+  # Hypothese "Hypo_2_bis"
+  # ======================
+  Hypo_2_bis = homard.CreateHypothesis('Hypo_2_bis')
+  Hypo_2_bis.AddZone('Zone_0', -1)
+  Hypo_2_bis.AddZone('Zone_2', 1)
+  #
+  # Cas
+  # ===
+  Case_2 = homard.CreateCase('Case_2', 'MZERO', data_dir+'/tutorial_2.00.med')
+  Case_2.SetDirName(dircase)
+  #
+  # Iteration "Iter_2_1"
+  # ====================
+  Iter_2_1 = Case_2.NextIteration('Iter_2_1')
+  Iter_2_1.SetMeshName('M_1')
+  Iter_2_1.SetMeshFile(dircase+'/maill.01.med')
+  Iter_2_1.AssociateHypo('Hypo_2')
+  error = Iter_2_1.Compute(1, 2)
+  #
+  # Iteration "Iter_2_2"
+  # ====================
+  Iter_2_2 = Iter_2_1.NextIteration('Iter_2_2')
+  Iter_2_2.SetMeshName('M_2')
+  Iter_2_2.SetMeshFile(dircase+'/maill.02.med')
+  Iter_2_2.AssociateHypo('Hypo_2_bis')
+  error = Iter_2_2.Compute(1, 2)
+  #
+  return error
+
+#========================================================================
+
+homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
+homard.SetLanguageShort("fr")
+#
+# Exec of HOMARD-SALOME
+#
+try :
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+#
+# Test of the results
+#
+n_rep_test_file = n_iter_test_file
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
+#
+# ==================================
+gzip_gunzip(data_dir, 2, 1)
+# ==================================
+#
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
+  iparameters.getSession().restoreVisualState(1)
+
diff --git a/tests/test_13.apad.02.bilan b/tests/test_13.apad.02.bilan
new file mode 100644 (file)
index 0000000..62cc1e3
--- /dev/null
@@ -0,0 +1,97 @@
+
+
+ANALYSE DU MAILLAGE
+===================
+
+     Maillage apres adaptation                         
+     G_0                                                                             
+     Date de creation : vendredi 21 mars 2014 a 11 h 33 mn 32 s         
+     Dimension : 3
+     Degre : 2
+     C'est un maillage obtenu apres      2 adaptations.
+     Le niveau minimum actif est   :     0
+     Le niveau maximum atteint est :     2
+
+         Direction    |       Unite       |  Minimum   |  Maximum
+     ---------------------------------------------------------------
+     X                | INCONNUE          |  0.0000    | 0.60000    
+     Y                | INCONNUE          |  0.0000    | 0.30000    
+     Z                | INCONNUE          |  0.0000    | 0.20000    
+
+
+   NOMBRE D'ENTITES DU CALCUL
+   ==========================
+
+
+     ************************************************************
+     *                      Noeuds                              *
+     ************************************************************
+     * Nombre total                                *      14455 *
+     * . dont sommets d'aretes                     *       3839 *
+     * . dont milieux d'aretes                     *      10616 *
+     ************************************************************
+
+     ************************************************************
+     *                      Segments                            *
+     ************************************************************
+     * Nombre total                                *        764 *
+     * . dont aretes isolees                       *          0 *
+     * . dont aretes de bord de regions 2D         *          0 *
+     * . dont aretes internes aux faces/volumes    *        764 *
+     ************************************************************
+
+     ************************************************************
+     *                      Triangles                           *
+     ************************************************************
+     * Nombre total                                *        288 *
+     * . dont triangles de regions 2D              *          0 *
+     * . dont triangles de bord                    *        288 *
+     * . dont triangles internes aux volumes       *          0 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *        168 *
+     * . du niveau   2                             *        120 *
+     ************************************************************
+
+     ************************************************************
+     *                      Quadrangles                         *
+     ************************************************************
+     * Nombre total                                *       2534 *
+     * . dont quadrangles de regions 2D            *          0 *
+     * . dont quadrangles de bord                  *       2534 *
+     * . dont quadrangles internes aux volumes     *          0 *
+     ************************************************************
+     * . du niveau   0                             *        142 *
+     * . du niveau   1                             *       2296 *
+     * . du niveau   2                             *         96 *
+     ************************************************************
+
+     ************************************************************
+     *                      Tetraedres                          *
+     ************************************************************
+     * Nombre total                                *        256 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *         96 *
+     * . du niveau   2                             *        160 *
+     ************************************************************
+
+     ************************************************************
+     *                      Hexaedres                           *
+     ************************************************************
+     * Nombre total                                *       2230 *
+     ************************************************************
+     * . du niveau   0                             *         66 *
+     * . du niveau   1                             *       1972 *
+     * . du niveau   2                             *        192 *
+     ************************************************************
+
+     ************************************************************
+     *                      Pyramides                           *
+     ************************************************************
+     * Nombre total                                *        432 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *        120 *
+     * . du niveau   2                             *        312 *
+     ************************************************************
diff --git a/tests/test_13.py b/tests/test_13.py
new file mode 100755 (executable)
index 0000000..b75e25e
--- /dev/null
@@ -0,0 +1,172 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+Python script for HOMARD
+Copyright EDF-R&D 2010, 2014
+Test test_11 associe au tutorial 3
+"""
+__revision__ = "V2.1"
+
+#========================================================================
+Test_Name = "test_13"
+n_iter_test_file = 2
+#========================================================================
+import os
+import tempfile
+import sys
+import HOMARD
+import salome
+#
+# ==================================
+pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des donnees du test
+Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
+Rep_Test = os.path.normpath(Rep_Test)
+sys.path.append(Rep_Test)
+from test_util import test_results
+# Repertoire des resultats
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+# ==================================
+gzip_gunzip(data_dir, 3, -1)
+# ==================================
+
+salome.salome_init()
+import iparameters
+ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
+ipar.append("AP_MODULES_LIST", "Homard")
+#
+#========================================================================
+#========================================================================
+def homard_exec(theStudy):
+  """
+Python script for HOMARD
+  """
+  #
+  homard.SetCurrentStudy(theStudy)
+  #
+  # Hypothese "Hypo_0vers1"
+  # =======================
+  Hypo_0vers1 = homard.CreateHypothesis('Hypo_0vers1')
+  # Characterization of the field
+  Hypo_0vers1.SetField('SOLU_0__QIRE_ELEM_SIGM__________')
+  Hypo_0vers1.SetUseComp(0)
+  Hypo_0vers1.AddComp('ERREST          ')
+  Hypo_0vers1.SetRefinThr(3, 1.0)
+  Hypo_0vers1.SetTypeFieldInterp(2)
+  Hypo_0vers1.AddFieldInterp('SOLU_0__DEPL____________________')
+  Hypo_0vers1.AddFieldInterp('SOLU_0__ERRE_ELEM_SIGM__________')
+  #
+  # Hypothese "Hypo_1vers2"
+  # =======================
+  Hypo_1vers2 = homard.CreateHypothesis('Hypo_1vers2')
+  # Characterization of the field
+  Hypo_1vers2.SetField('SOLU_1__QIRE_ELEM_SIGM__________')
+  Hypo_1vers2.SetUseComp(0)
+  Hypo_1vers2.AddComp('ERREST          ')
+  Hypo_1vers2.SetRefinThr(3, 1.5)
+  Hypo_1vers2.SetUnRefThr(3, 6.)
+  Hypo_1vers2.SetTypeFieldInterp(2)
+  Hypo_1vers2.AddFieldInterp('SOLU_1__DEPL____________________')
+  Hypo_1vers2.AddFieldInterp('SOLU_1__QIRE_ELEM_SIGM__________')
+  #
+  # Hypothese "Hypo_1vers2_bis"
+  # ===========================
+  Hypo_1vers2_bis = homard.CreateHypothesis('Hypo_1vers2_bis')
+  # Characterization of the field
+  Hypo_1vers2_bis.SetField('SOLU_1__DEPL____________________')
+  Hypo_1vers2_bis.SetUseComp(1)
+  Hypo_1vers2_bis.AddComp('DX')
+  Hypo_1vers2_bis.AddComp('DY')
+  Hypo_1vers2_bis.AddComp('DZ')
+  Hypo_1vers2_bis.SetRefinThr(1, 0.0001)
+  Hypo_1vers2_bis.SetUnRefThr(1, 0.000001)
+  Hypo_1vers2_bis.SetTypeFieldInterp(0)
+  #
+  # Cas
+  # ===
+  Case_3 = homard.CreateCase('Case_3', 'G_0', data_dir+'/tutorial_3.00.med')
+  Case_3.SetDirName(dircase)
+  #
+  # Iteration "Iter_3_1"
+  # ====================
+  Iter_3_1 = Case_3.NextIteration('Iter_3_1')
+  Iter_3_1.SetMeshName('H_1')
+  Iter_3_1.SetMeshFile(dircase+'/maill.01.med')
+  Iter_3_1.SetFieldFile(data_dir+'/tutorial_3.00.med')
+  Iter_3_1.SetTimeStepRank( 1, 1)
+  Iter_3_1.AssociateHypo('Hypo_0vers1')
+  error = Iter_3_1.Compute(1, 2)
+  #
+  # Iteration "Iter_3_2"
+  # ====================
+  Iter_3_2 = Iter_3_1.NextIteration('Iter_3_2')
+  Iter_3_2.SetMeshName('H_2')
+  Iter_3_2.SetMeshFile(dircase+'/maill.02.med')
+  Iter_3_2.SetFieldFile(data_dir+'/tutorial_3.01.med')
+  Iter_3_2.SetTimeStepRank(1, 1)
+  Iter_3_2.AssociateHypo('Hypo_1vers2')
+  error = Iter_3_2.Compute(1, 2)
+  #
+  # Iteration "Iter_3_2_bis"
+  # ========================
+  Iter_3_2_bis = Iter_3_1.NextIteration('Iter_3_2_bis')
+  Iter_3_2_bis.SetMeshName('H_2_bis')
+  Iter_3_2_bis.SetMeshFile(dircase+'/maill.02.bis.med')
+  Iter_3_2_bis.SetFieldFile(data_dir+'/tutorial_3.01.med')
+  Iter_3_2_bis.SetTimeStepRank(1, 1)
+  Iter_3_2_bis.AssociateHypo('Hypo_1vers2_bis')
+  error = Iter_3_2_bis.Compute(1, 2)
+  #
+  return error
+
+#========================================================================
+
+homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
+homard.SetLanguageShort("fr")
+#
+# Exec of HOMARD-SALOME
+#
+try :
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+#
+# Test of the results
+#
+n_rep_test_file = 3
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
+#
+# ==================================
+gzip_gunzip(data_dir, 3, 1)
+# ==================================
+#
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
+  iparameters.getSession().restoreVisualState(1)
+
diff --git a/tests/test_14.apad.03.bilan b/tests/test_14.apad.03.bilan
new file mode 100644 (file)
index 0000000..e96ae90
--- /dev/null
@@ -0,0 +1,62 @@
+
+
+ANALYSE DU MAILLAGE
+===================
+
+     Maillage apres adaptation                         
+     PIQUAGE                                                                         
+     Date de creation : vendredi 21 mars 2014 a 11 h 35 mn 40 s         
+     Dimension : 3
+     Degre : 1
+     C'est un maillage obtenu apres      3 adaptations.
+     Le niveau minimum actif est   :     1
+     Le niveau maximum atteint est :     2
+
+         Direction    |       Unite       |  Minimum   |  Maximum
+     ---------------------------------------------------------------
+                      |                   | -230.00    |  136.45    
+                      |                   | -250.62    |  189.69    
+                      |                   | -285.21    |  155.03    
+
+
+   NOMBRE D'ENTITES DU CALCUL
+   ==========================
+
+
+     ************************************************************
+     *                      Noeuds                              *
+     ************************************************************
+     * Nombre total                                *      12825 *
+     ************************************************************
+
+     ************************************************************
+     *                      Segments                            *
+     ************************************************************
+     * Nombre total                                *        758 *
+     * . dont aretes isolees                       *          0 *
+     * . dont aretes de bord de regions 2D         *          0 *
+     * . dont aretes internes aux faces/volumes    *        758 *
+     ************************************************************
+
+     ************************************************************
+     *                      Triangles                           *
+     ************************************************************
+     * Nombre total                                *      20838 *
+     * . dont triangles de regions 2D              *          0 *
+     * . dont triangles de bord                    *      20560 *
+     * . dont triangles internes aux volumes       *        278 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *       3530 *
+     * . du niveau   2                             *      17308 *
+     ************************************************************
+
+     ************************************************************
+     *                      Tetraedres                          *
+     ************************************************************
+     * Nombre total                                *      43490 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *      18174 *
+     * . du niveau   2                             *      25316 *
+     ************************************************************
diff --git a/tests/test_14.py b/tests/test_14.py
new file mode 100755 (executable)
index 0000000..8a24a3b
--- /dev/null
@@ -0,0 +1,159 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+Python script for HOMARD
+Copyright EDF-R&D 2010, 2014
+Test test_11 associe au tutorial 4
+"""
+__revision__ = "V2.1"
+
+#========================================================================
+Test_Name = "test_14"
+n_iter_test_file = 3
+#========================================================================
+import os
+import tempfile
+import sys
+import HOMARD
+import salome
+#
+# ==================================
+pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des donnees du test
+Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
+Rep_Test = os.path.normpath(Rep_Test)
+sys.path.append(Rep_Test)
+from test_util import test_results
+# Repertoire des resultats
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+# ==================================
+gzip_gunzip(data_dir, 4, -1)
+# ==================================
+
+salome.salome_init()
+import iparameters
+ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
+ipar.append("AP_MODULES_LIST", "Homard")
+#
+#========================================================================
+#========================================================================
+def homard_exec(theStudy):
+  """
+Python script for HOMARD
+  """
+  #
+  homard.SetCurrentStudy(theStudy)
+#
+  # Frontieres
+  # ==========
+  Boun_4_1 = homard.CreateBoundaryDi('intersection', 'PIQUAGE', data_dir+'/tutorial_4.fr.med')
+  #
+  Boun_4_2 = homard.CreateBoundaryCylinder('cyl_1_ext', 0.0, 25., -25., 25., 50., 75., 100.)
+  #
+  Boun_4_3 = homard.CreateBoundaryCylinder('cyl_2_ext', 17.5, -2.5, -12.5, -100., -75., -25., 50.)
+  #
+  Boun_4_4 = homard.CreateBoundaryCylinder('cyl_1_int', 0.0, 25., -25., 25., 50., 75., 75.)
+  #
+  Boun_4_5 = homard.CreateBoundaryCylinder('cyl_2_int', 17.5, -2.5, -12.5, -100., -75., -25., 25.)
+  #
+  # Hypotheses
+  # ==========
+  # Creation of the hypothesis Hypo_4
+  Hypo_4 = homard.CreateHypothesis('Hypo_4')
+  Hypo_4.SetUnifRefinUnRef(1)
+  Hypo_4.AddGroup('T1_INT_I')
+  Hypo_4.AddGroup('T1_INT_O')
+  Hypo_4.AddGroup('T2_INT')
+  # Creation of the hypothesis Hypo_4_bis
+  Hypo_4_bis = homard.CreateHypothesis('Hypo_4_bis')
+  Hypo_4_bis.SetUnifRefinUnRef(1)
+  Hypo_4_bis.AddGroup('T1_EXT_I')
+  Hypo_4_bis.AddGroup('T1_EXT_O')
+  Hypo_4_bis.AddGroup('T2_EXT')
+  #
+  # Cas
+  # ===
+  Case_4 = homard.CreateCase('Case_4', 'PIQUAGE', data_dir+'/tutorial_4.00.med')
+  Case_4.SetDirName(dircase)
+  Case_4.AddBoundaryGroup( 'intersection', '' )
+  Case_4.AddBoundaryGroup( 'cyl_1_int', 'T1_INT_I' )
+  Case_4.AddBoundaryGroup( 'cyl_1_ext', 'T1_EXT_I' )
+  Case_4.AddBoundaryGroup( 'cyl_1_int', 'T1_INT_O' )
+  Case_4.AddBoundaryGroup( 'cyl_1_ext', 'T1_EXT_O' )
+  Case_4.AddBoundaryGroup( 'cyl_2_int', 'T2_INT' )
+  Case_4.AddBoundaryGroup( 'cyl_2_ext', 'T2_EXT' )
+  #
+  # Iterations
+  # ==========
+  # Iteration Iter_4_1 : raffinement selon les faces internes
+  Iter_4_1 = Case_4.NextIteration('Iter_4_1')
+  Iter_4_1.SetMeshName('PIQUAGE_1')
+  Iter_4_1.SetMeshFile(dircase+'/maill.01.med')
+  Iter_4_1.AssociateHypo('Hypo_4')
+  error = Iter_4_1.Compute(1, 2)
+  # Iteration Iter_4_2 : raffinement selon les faces externes
+  Iter_4_2 = Iter_4_1.NextIteration('Iter_4_2')
+  Iter_4_2.SetMeshName('PIQUAGE_2')
+  Iter_4_2.SetMeshFile(dircase+'/maill.02.med')
+  Iter_4_2.AssociateHypo('Hypo_4_bis')
+  error = Iter_4_2.Compute(1, 2)
+  # Iteration Iter_4_3 : second raffinement selon les faces externes
+  Iter_4_3 = Iter_4_2.NextIteration('Iter_4_3')
+  Iter_4_3.SetMeshName('PIQUAGE_3')
+  Iter_4_3.SetMeshFile(dircase+'/maill.03.med')
+  Iter_4_3.AssociateHypo('Hypo_4_bis')
+  error = Iter_4_3.Compute(1, 2)
+  #
+  return error
+
+#========================================================================
+
+homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
+homard.SetLanguageShort("fr")
+#
+# Exec of HOMARD-SALOME
+#
+try :
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+#
+# Test of the results
+#
+n_rep_test_file = n_iter_test_file
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
+#
+# ==================================
+gzip_gunzip(data_dir, 4, 1)
+# ==================================
+#
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
+  iparameters.getSession().restoreVisualState(1)
+
diff --git a/tests/test_15.apad.02.bilan b/tests/test_15.apad.02.bilan
new file mode 100644 (file)
index 0000000..5e5f91a
--- /dev/null
@@ -0,0 +1,58 @@
+
+
+ANALYSE DU MAILLAGE
+===================
+
+     Maillage apres adaptation                         
+     COEUR_2D                                                                        
+     Date de creation : vendredi 21 mars 2014 a 11 h 33 mn 45 s         
+     Dimension : 2
+     Degre : 1
+     C'est un maillage obtenu apres      2 adaptations.
+     Le niveau minimum actif est   :     0
+     Le niveau maximum atteint est :     2
+
+         Direction    |       Unite       |  Minimum   |  Maximum
+     ---------------------------------------------------------------
+                      |                   | -248.00    |  248.00    
+                      |                   | -248.00    |  248.00    
+
+
+   NOMBRE D'ENTITES DU CALCUL
+   ==========================
+
+
+     ************************************************************
+     *                      Noeuds                              *
+     ************************************************************
+     * Nombre total                                *       1542 *
+     ************************************************************
+
+     ************************************************************
+     *                      Segments                            *
+     ************************************************************
+     * Nombre total                                *        359 *
+     * . dont aretes isolees                       *          0 *
+     * . dont aretes de bord de regions 2D         *        240 *
+     * . dont aretes internes aux faces/volumes    *        119 *
+     ************************************************************
+
+     ************************************************************
+     *                      Triangles                           *
+     ************************************************************
+     * Nombre total                                *       2204 *
+     ************************************************************
+     * . du niveau   0                             *         88 *
+     * . du niveau   1                             *        980 *
+     * . du niveau   2                             *       1136 *
+     ************************************************************
+
+     ************************************************************
+     *                      Quadrangles                         *
+     ************************************************************
+     * Nombre total                                *        334 *
+     ************************************************************
+     * . du niveau   0                             *        162 *
+     * . du niveau   1                             *        172 *
+     * . du niveau   2                             *          0 *
+     ************************************************************
diff --git a/tests/test_15.py b/tests/test_15.py
new file mode 100755 (executable)
index 0000000..d75bb44
--- /dev/null
@@ -0,0 +1,143 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+Python script for HOMARD
+Copyright EDF-R&D 2010, 2014
+Test test_11 associe au tutorial 5
+"""
+__revision__ = "V2.1"
+
+#========================================================================
+Test_Name = "test_15"
+n_iter_test_file = 2
+#========================================================================
+import os
+import tempfile
+import sys
+import HOMARD
+import salome
+#
+# ==================================
+pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des donnees du test
+Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
+Rep_Test = os.path.normpath(Rep_Test)
+sys.path.append(Rep_Test)
+from test_util import test_results
+# Repertoire des resultats
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
+# Repertoire des donnees du tutorial
+data_dir = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "fr", "_downloads")
+data_dir = os.path.normpath(data_dir)
+sys.path.append(data_dir)
+from tutorial_util import gzip_gunzip
+# ==================================
+gzip_gunzip(data_dir, 5, -1)
+# ==================================
+
+salome.salome_init()
+import iparameters
+ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
+ipar.append("AP_MODULES_LIST", "Homard")
+#
+#========================================================================
+#========================================================================
+def homard_exec(theStudy):
+  """
+Python script for HOMARD
+  """
+  #
+  homard.SetCurrentStudy(theStudy)
+#
+  # Frontiere
+  # =========
+  # Creation of the discrete boundary Boun_5_1
+  Boun_5_1 = homard.CreateBoundaryDi('Boun_5_1', 'MAIL_EXT', data_dir+'/tutorial_5.fr.med')
+  #
+  # Creation des zones
+  # ==================
+  # Creation of the disk with hole enveloppe
+  enveloppe = homard.CreateZoneDiskWithHole( 'enveloppe', 0., 0., 250., 193., 1 )
+  # Creation of the rectangle quart_sup
+  quart_sup = homard.CreateZoneBox2D( 'quart_sup', 0., 250., 0., 250., 1 )
+  #
+  # Hypotheses
+  # ==========
+  # Creation of the hypothesis Hypo_5
+  Hypo_5 = homard.CreateHypothesis('Hypo_5')
+  Hypo_5.AddZone('enveloppe', 1)
+  # Creation of the hypothesis Hypo_5_bis
+  Hypo_5_bis = homard.CreateHypothesis('Hypo_5_bis')
+  Hypo_5_bis.AddZone('quart_sup', 1)
+  #
+  # Cas
+  # ===
+  Case_5 = homard.CreateCase('Case_5', 'COEUR_2D', data_dir+'/tutorial_5.00.med')
+  Case_5.SetDirName(dircase)
+  Case_5.SetConfType(3)
+  Case_5.AddBoundaryGroup('Boun_5_1', '')
+  #
+  # Iteration "Iter_5_1"
+  # ====================
+  Iter_5_1 = Case_5.NextIteration('Iter_5_1')
+  Iter_5_1.SetMeshName('COEUR_2D_01')
+  Iter_5_1.SetMeshFile(dircase+'/maill.01.med')
+  Iter_5_1.AssociateHypo('Hypo_5')
+  error = Iter_5_1.Compute(1, 2)
+  #
+  # Iteration "Iter_5_2"
+  # ====================
+  Iter_5_2 = Iter_5_1.NextIteration('Iter_5_2')
+  Iter_5_2.SetMeshName('COEUR_2D_02')
+  Iter_5_2.SetMeshFile(dircase+'/maill.02.med')
+  Iter_5_2.AssociateHypo('Hypo_5_bis')
+  error = Iter_5_2.Compute(1, 2)
+  #
+  return error
+
+#========================================================================
+
+homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+assert homard is not None, "Impossible to load homard engine"
+homard.SetLanguageShort("fr")
+#
+# Exec of HOMARD-SALOME
+#
+try :
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
+except Exception, e:
+  raise Exception('Pb in homard_exec: '+e.message)
+#
+# Test of the results
+#
+n_rep_test_file = n_iter_test_file
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
+#
+# ==================================
+gzip_gunzip(data_dir, 5, 1)
+# ==================================
+#
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
+  iparameters.getSession().restoreVisualState(1)
+
old mode 100644 (file)
new mode 100755 (executable)
index 987a5c9..df81982
@@ -1,10 +1,10 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 #
 """
 Python script for HOMARD
-Copyright EDF-R&D 2010, 2013
+Copyright EDF-R&D 2010, 2014
 Test test_2
 """
-__revision__ = "V2.1"
+__revision__ = "V2.2"
 
 #========================================================================
 Test_Name = "test_2"
@@ -34,14 +34,18 @@ import sys
 import HOMARD
 import salome
 #
+# ==================================
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
+# Repertoire des donnees du test
 Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
 Rep_Test = os.path.normpath(Rep_Test)
-Rep_Test_Resu = tempfile.mktemp()
-os.mkdir(Rep_Test_Resu)
-
 sys.path.append(Rep_Test)
-from test_util import remove_dir
+from test_util import test_results
+# Repertoire des resultats
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
+# ==================================
+
 
 salome.salome_init()
 import iparameters
@@ -53,7 +57,6 @@ ipar.append("AP_MODULES_LIST", "Homard")
 def homard_exec(theStudy):
   """
 Python script for HOMARD
-Copyright EDF-R&D 2010, 2013
   """
   error = 0
 #
@@ -72,7 +75,7 @@ Copyright EDF-R&D 2010, 2013
     HypoName_1 = "Hypo_" + Test_Name + "_1"
     print "-------- Creation of the hypothesis", HypoName_1
     Hypo_test_2_1 = homard.CreateHypothesis(HypoName_1)
-    Hypo_test_2_1.SetAdapRefinUnRef(-1, 1, 0)
+    Hypo_test_2_1.SetUnifRefinUnRef(1)
     Hypo_test_2_1.AddGroup('EG')
     Hypo_test_2_1.AddGroup('BANDE')
     print HypoName_1, " : zones utilisées :", Hypo_test_2_1.GetZones()
@@ -85,7 +88,7 @@ Copyright EDF-R&D 2010, 2013
     HypoName_2 = "Hypo_" + Test_Name + "_2"
     print "-------- Creation of the hypothesis", HypoName_2
     Hypo_test_2_2 = homard.CreateHypothesis(HypoName_2)
-    Hypo_test_2_2.SetAdapRefinUnRef(-1, 1, 0)
+    Hypo_test_2_2.SetUnifRefinUnRef(1)
     Hypo_test_2_2.AddGroup('M_D')
     print HypoName_2, " : zones utilisées :", Hypo_test_2_2.GetZones()
     print HypoName_2, " : champ utilisé :", Hypo_test_2_2.GetFieldName()
@@ -99,7 +102,7 @@ Copyright EDF-R&D 2010, 2013
     CaseName = "Case_" + Test_Name
     MeshFile = os.path.join(Rep_Test, Test_Name + '.00.med')
     Case_test_2 = homard.CreateCase(CaseName, 'PLAQUE_0', MeshFile)
-    Case_test_2.SetDirName(Rep_Test_Resu)
+    Case_test_2.SetDirName(dircase)
     Case_test_2.SetConfType(1)
     Case_test_2.AddBoundaryGroup('internal_boundary', '')
   #
@@ -109,7 +112,7 @@ Copyright EDF-R&D 2010, 2013
     IterName = "I_" + Test_Name + "_1"
     Iter_test_2_1 = Case_test_2.NextIteration(IterName)
     Iter_test_2_1.SetMeshName('PLAQUE_1')
-    Iter_test_2_1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
+    Iter_test_2_1.SetMeshFile(os.path.join(dircase, 'maill.01.med'))
     Iter_test_2_1.AssociateHypo(HypoName_1)
     error = Iter_test_2_1.Compute(1, 1)
     if error :
@@ -120,7 +123,7 @@ Copyright EDF-R&D 2010, 2013
     IterName = "I_" + Test_Name + "_2"
     Iter_test_2_2 = Iter_test_2_1.NextIteration(IterName)
     Iter_test_2_2.SetMeshName('PLAQUE_2')
-    Iter_test_2_2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
+    Iter_test_2_2.SetMeshFile(os.path.join(dircase, 'maill.02.med'))
     Iter_test_2_2.AssociateHypo(HypoName_1)
     error = Iter_test_2_2.Compute(1, 1)
     if error :
@@ -131,7 +134,7 @@ Copyright EDF-R&D 2010, 2013
     IterName = "I_" + Test_Name + "_3"
     Iter_test_2_3 = Iter_test_2_2.NextIteration(IterName)
     Iter_test_2_3.SetMeshName('PLAQUE_3')
-    Iter_test_2_3.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.03.med'))
+    Iter_test_2_3.SetMeshFile(os.path.join(dircase, 'maill.03.med'))
     Iter_test_2_3.AssociateHypo(HypoName_2)
     error = Iter_test_2_3.Compute(1, 1)
     if error :
@@ -142,10 +145,10 @@ Copyright EDF-R&D 2010, 2013
   # ===========================
     ScriptFile = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "en", "_downloads", "yacs_script.py")
     ScriptFile = os.path.normpath(ScriptFile)
-    DirName = Rep_Test_Resu
+    DirName = dircase
     YACS_test_2 = Case_test_2.CreateYACSSchema("YACS_test_2", ScriptFile, DirName, MeshFile)
     YACS_test_2.SetType(1)
-    filexml = os.path.join(Rep_Test_Resu, 'YACS_test_2.xml')
+    filexml = os.path.join(dircase, 'YACS_test_2.xml')
     error = YACS_test_2.WriteOnFile(filexml)
     if error :
       error = 4
@@ -169,47 +172,11 @@ try :
     raise Exception('Pb in homard_exec at iteration %d' %error_main )
 except Exception, e:
   raise Exception('Pb in homard_exec: '+e.message)
-
-#
-# Test of the result
-#
-test_file_suff = "apad.%02d.bilan" % n_iter_test_file
-rep_test_file = "I%02d" % n_iter_test_file
 #
-test_file = os.path.join(Rep_Test, Test_Name + "." + test_file_suff)
-mess_error_ref = "\nReference file: " + test_file
-try :
-  file = open (test_file, "r")
-  mess_ref = file.readlines()
-  file.close()
-except :
-  mess_error = mess_error_ref + "\nThis file does not exist.\n"
-  raise Exception(mess_error)
-#
-test_file = os.path.join(Rep_Test_Resu, rep_test_file, test_file_suff)
-if os.path.isfile (test_file) :
-  file = open (test_file, "r")
-  mess = file.readlines()
-  file.close()
-else :
-  mess_error  = "\nResult file: " + test_file
-  mess_error += "\nThis file does not exist.\n"
-  raise Exception(mess_error)
-
-nblign = len(mess_ref)
-if ( len(mess) != nblign ):
-  mess_error = mess_error_ref +  "\nResult file: " + test_file
-  mess_error += "\nThe number of lines of the files are not the same.\n"
-  raise Exception(mess_error)
-
-for num in range(nblign) :
-  if (( "creation" not in mess_ref[num] ) and ( mess_ref[num] != mess[num])) :
-    message_erreur = "\nRefe : " + mess_ref[num]
-    message_erreur += "Test : " + mess[num][:-1]
-    message_erreur += "\nThe test is different from the reference."
-    raise Exception(message_erreur)
+# Test of the results
 #
-remove_dir(Rep_Test_Resu)
+n_rep_test_file = n_iter_test_file
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
 #
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
old mode 100644 (file)
new mode 100755 (executable)
index 6507a58..936c1a2
@@ -1,10 +1,10 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -38,11 +38,11 @@ import salome
 pathHomard = os.getenv('HOMARD_ROOT_DIR')
 Rep_Test = os.path.join(pathHomard, "share", "salome", "resources", "homard")
 Rep_Test = os.path.normpath(Rep_Test)
-Rep_Test_Resu = tempfile.mktemp()
-os.mkdir(Rep_Test_Resu)
+dircase = tempfile.mktemp()
+os.mkdir(dircase)
 
 sys.path.append(Rep_Test)
-from test_util import remove_dir
+from test_util import test_results
 
 salome.salome_init()
 import iparameters
@@ -85,7 +85,7 @@ Copyright EDF-R&D 2010, 2013
     HypoName = "Hypo_" + Test_Name
     print "-------- Creation of the hypothesis", HypoName
     Hypo_test_3 = homard.CreateHypothesis(HypoName)
-    Hypo_test_3.SetAdapRefinUnRef(-1, 1, 0)
+    Hypo_test_3.SetUnifRefinUnRef(1)
     print HypoName, " : zones utilisées :", Hypo_test_3.GetZones()
     print HypoName, " : champ utilisé :", Hypo_test_3.GetFieldName()
     print HypoName, " : composantes utilisées :", Hypo_test_3.GetComps()
@@ -101,7 +101,7 @@ Copyright EDF-R&D 2010, 2013
         print "-------- Creation of the case", CaseName
         MeshFile = os.path.join(Rep_Test, Test_Name + '.00.med')
         Case_test_3 = homard.CreateCase(CaseName, 'MOYEU', MeshFile)
-        Case_test_3.SetDirName(Rep_Test_Resu)
+        Case_test_3.SetDirName(dircase)
         Case_test_3.SetConfType(1)
         Case_test_3.AddBoundaryGroup('courbes', '')
         Case_test_3.AddBoundaryGroup('cyl_ext', 'EXT')
@@ -116,7 +116,7 @@ Copyright EDF-R&D 2010, 2013
       print "-------- Creation of the iteration", IterName
       Iter_test_3_1 = Case_test_3.NextIteration(IterName)
       Iter_test_3_1.SetMeshName('MOYEU_1')
-      Iter_test_3_1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
+      Iter_test_3_1.SetMeshFile(os.path.join(dircase, 'maill.01.med'))
       Iter_test_3_1.AssociateHypo('Hypo_test_3')
       error = Iter_test_3_1.Compute(1, 1)
       if error :
@@ -128,7 +128,7 @@ Copyright EDF-R&D 2010, 2013
       print "-------- Creation of the iteration", IterName
       Iter_test_3_2 = Iter_test_3_1.NextIteration(IterName)
       Iter_test_3_2.SetMeshName('MOYEU_2')
-      Iter_test_3_2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
+      Iter_test_3_2.SetMeshFile(os.path.join(dircase, 'maill.02.med'))
       Iter_test_3_2.AssociateHypo('Hypo_test_3')
       error = Iter_test_3_2.Compute(1, 1)
       if error :
@@ -139,7 +139,7 @@ Copyright EDF-R&D 2010, 2013
   # ===========================
       ScriptFile = os.path.join(pathHomard, "share", "doc", "salome", "gui", "HOMARD", "en", "_downloads", "yacs_script.py")
       ScriptFile = os.path.normpath(ScriptFile)
-      DirName = Rep_Test_Resu
+      DirName = dircase
       YACSName = "YACS_" + Test_Name
       print "-------- Creation of the schema", YACSName
       YACS_test_3 = Case_test_3.CreateYACSSchema(YACSName, ScriptFile, DirName, MeshFile)
@@ -183,7 +183,7 @@ Copyright EDF-R&D 2010, 2013
           HypoName = "Hypo_test_3"
           print "-------- Creation of the hypothesis", HypoName
           Hypo_test_3 = homard.CreateHypothesis(HypoName)
-          Hypo_test_3.SetAdapRefinUnRef(-1, 1, 0)
+          Hypo_test_3.SetUnifRefinUnRef(1)
 #
     break
 #
@@ -204,45 +204,10 @@ try :
 except Exception, e:
   raise Exception('Pb in homard_exec: '+e.message)
 #
-# Test of the result
+# Test of the results
 #
-test_file_suff = "apad.%02d.bilan" % n_iter_test_file
-rep_test_file = "I%02d" % (n_iter_test_file*n_boucle)
-#
-test_file = os.path.join(Rep_Test, Test_Name + "." + test_file_suff)
-mess_error_ref = "\nReference file: " + test_file
-try :
-  file = open (test_file, "r")
-  mess_ref = file.readlines()
-  file.close()
-except :
-  mess_error = mess_error_ref + "\nThis file does not exist.\n"
-  raise Exception(mess_error)
-#
-test_file = os.path.join(Rep_Test_Resu, rep_test_file, test_file_suff)
-if os.path.isfile (test_file) :
-  file = open (test_file, "r")
-  mess = file.readlines()
-  file.close()
-else :
-  mess_error  = "\nResult file: " + test_file
-  mess_error += "\nThis file does not exist.\n"
-  raise Exception(mess_error)
-
-nblign = len(mess_ref)
-if ( len(mess) != nblign ):
-  mess_error = mess_error_ref +  "\nResult file: " + test_file
-  mess_error += "\nThe number of lines of the files are not the same.\n"
-  raise Exception(mess_error)
-
-for num in range(nblign) :
-  if (( "creation" not in mess_ref[num] ) and ( mess_ref[num] != mess[num])) :
-    message_erreur = "\nRefe : " + mess_ref[num]
-    message_erreur += "Test : " + mess[num][:-1]
-    message_erreur += "\nThe test is different from the reference."
-    raise Exception(message_erreur)
-#
-remove_dir(Rep_Test_Resu)
+n_rep_test_file = n_iter_test_file*n_boucle
+test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file)
 #
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
index 2e6b0f5571c85b55a34ae8983e6624cc28335368..596f7d548f80cf55404f5a9269d58325dde4fa85 100755 (executable)
@@ -1,10 +1,10 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+# Copyright (C) 2011-2014  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -46,3 +46,56 @@ Copyright EDF-R&D 2013
 #
 #========================================================================
 #========================================================================
+def test_results(Rep_Test, Test_Name, dircase, n_iter_test_file, n_rep_test_file) :
+  """
+Test of the result
+Rep_Test: repertoire des tests
+Test_Name: nom du test
+dircase: repertoire des resultats du test
+n_iter_test_file: numero de l'iteration a tester
+n_rep_test_file: numero du repertoire de l'iteration a tester
+Copyright EDF-R&D 2014
+  """
+  #
+  test_file_suff = "apad.%02d.bilan" % n_iter_test_file
+  rep_test_file = "I%02d" % n_rep_test_file
+  #
+  test_file = os.path.join(Rep_Test, Test_Name + "." + test_file_suff)
+  mess_error_ref = "\nReference file: " + test_file
+  try :
+    file = open (test_file, "r")
+    mess_ref = file.readlines()
+    file.close()
+  except :
+    mess_error = mess_error_ref + "\nThis file does not exist.\n"
+    raise Exception(mess_error)
+  #
+  test_file = os.path.join(dircase, rep_test_file, test_file_suff)
+  if os.path.isfile (test_file) :
+    file = open (test_file, "r")
+    mess = file.readlines()
+    file.close()
+  else :
+    mess_error  = "\nResult file: " + test_file
+    mess_error += "\nThis file does not exist.\n"
+    raise Exception(mess_error)
+
+  nblign = len(mess_ref)
+  if ( len(mess) != nblign ):
+    mess_error = mess_error_ref +  "\nResult file: " + test_file
+    mess_error += "\nThe number of lines of the files are not the same.\n"
+    raise Exception(mess_error)
+
+  for num in range(nblign) :
+    if (( "creation" not in mess_ref[num] ) and ( mess_ref[num] != mess[num])) :
+      message_erreur = "\nRefe : " + mess_ref[num]
+      message_erreur += "Test : " + mess[num][:-1]
+      message_erreur += "\nThe test is different from the reference."
+      raise Exception(message_erreur)
+  #
+  remove_dir(dircase)
+#
+  return
+#
+#========================================================================
+#========================================================================