From: nicolas Date: Tue, 23 Apr 2013 14:44:22 +0000 (+0000) Subject: Destruction d'un cas avec option de menage des maillages produits X-Git-Tag: V7_2_0 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=5aae94bcbe00ff78364b76ebb1bbefa37a5ffad8;p=modules%2Fhomard.git Destruction d'un cas avec option de menage des maillages produits --- diff --git a/doc/tui_create_boundary.rst b/doc/tui_create_boundary.rst index 10dbc624..a5ec233e 100644 --- a/doc/tui_create_boundary.rst +++ b/doc/tui_create_boundary.rst @@ -141,7 +141,7 @@ M | frontière dans l'ordre d'entrée dans le CreateBoundaryXXXX| | associé | +---------------------------------------------------------------+ -| .. index:: single: Delete | +| .. module:: Delete | | | | **Delete()** | | Detruit la frontière. | diff --git a/doc/tui_create_case.rst b/doc/tui_create_case.rst index 3e34369e..30d60423 100644 --- a/doc/tui_create_case.rst +++ b/doc/tui_create_case.rst @@ -157,12 +157,17 @@ M | - ``group`` : nom d'un groupe de faces placées sur la | | frontière | +---------------------------------------------------------------+ -| .. index:: single: Delete | +| .. module:: Delete | | | -| **Delete()** | -| Detruit le cas et toutes les itérations associées ainsi | -| que tous les maillages produits. Le fichier du maillage | -| initial associé est conservé. | +| **Delete(option)** | +| Detruit le cas et toutes les itérations associées. Le | +| fichier du maillage initial associé est conservé. | +| | +| - ``option`` : un entier précisant ce qui est fait des | +| fichiers de maillage associés | +| | +| * 0 : les fichiers sont conservés | +| * 1 : les fichiers sont détruits | | | | Retourne un entier : | | * 0 : destruction réussie | diff --git a/doc/tui_create_hypothese.rst b/doc/tui_create_hypothese.rst index d4e177f9..22d09fab 100644 --- a/doc/tui_create_hypothese.rst +++ b/doc/tui_create_hypothese.rst @@ -86,7 +86,7 @@ G | **GetUnRefType()** | | Retourne le type de déraffinement | +---------------------------------------------------------------+ -| .. index:: single: Delete | +| .. module:: Delete | | | | **Delete()** | | Detruit l'hypothèse | diff --git a/doc/tui_create_iteration.rst b/doc/tui_create_iteration.rst index facb35fe..882c8e60 100644 --- a/doc/tui_create_iteration.rst +++ b/doc/tui_create_iteration.rst @@ -77,7 +77,7 @@ G | | | * le maillage produit a le même nom que l'itération | +---------------------------------------------------------------+ -| .. index:: single: Compute | +| .. module:: Compute | | | | **Compute(option1, option2)** | | Calcule le maillage correspondant à l'itération | @@ -169,7 +169,7 @@ G | Retourne le nom du répertoire des résutats associé à | | l'itération | +---------------------------------------------------------------+ -| .. index:: single: Delete | +| .. module:: Delete | | | | **Delete(option)** | | Detruit l'itération et toutes ses filles éventuelles. | diff --git a/doc/tui_create_zone.rst b/doc/tui_create_zone.rst index 1441360e..235639d1 100644 --- a/doc/tui_create_zone.rst +++ b/doc/tui_create_zone.rst @@ -172,7 +172,7 @@ M | Retourne un tableau contenant les coordonnées de la zone | | dans l'ordre d'entrée dans le CreateZoneXXXX associé | +---------------------------------------------------------------+ -| .. index:: single: Delete | +| .. module:: Delete | | | | **Delete()** | | Detruit la zone | diff --git a/idl/HOMARD_Cas.idl b/idl/HOMARD_Cas.idl index c8aa506c..d7a1220e 100644 --- a/idl/HOMARD_Cas.idl +++ b/idl/HOMARD_Cas.idl @@ -48,7 +48,7 @@ module HOMARD void SetName(in string Name) raises (SALOME::SALOME_Exception); string GetName() raises (SALOME::SALOME_Exception); - long Delete() raises (SALOME::SALOME_Exception); + long Delete(in long Option) raises (SALOME::SALOME_Exception); string GetDumpPython() raises (SALOME::SALOME_Exception); diff --git a/idl/HOMARD_Gen.idl b/idl/HOMARD_Gen.idl index a931cca3..1252ae19 100644 --- a/idl/HOMARD_Gen.idl +++ b/idl/HOMARD_Gen.idl @@ -149,7 +149,8 @@ module HOMARD void InvalideZone (in string ZoneName) raises (SALOME::SALOME_Exception); long DeleteBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception); - long DeleteCase(in string CaseName) raises (SALOME::SALOME_Exception); + long DeleteCase(in string CaseName, in long Option) + raises (SALOME::SALOME_Exception); long DeleteHypo(in string HypoName) raises (SALOME::SALOME_Exception); long DeleteIteration(in string IterName, in long Option) raises (SALOME::SALOME_Exception); diff --git a/src/HOMARDGUI/HOMARDGUI.cxx b/src/HOMARDGUI/HOMARDGUI.cxx index addf6adf..c1bf1f33 100644 --- a/src/HOMARDGUI/HOMARDGUI.cxx +++ b/src/HOMARDGUI/HOMARDGUI.cxx @@ -377,7 +377,7 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID) if (HOMARD_UTILS::isCase(obj)) { try - { homardGen->DeleteCase(_ObjectName.toStdString().c_str()); } + { homardGen->DeleteCase(_ObjectName.toStdString().c_str(), 1); } catch( SALOME::SALOME_Exception& S_ex ) { QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), diff --git a/src/HOMARD_I/HOMARD_Cas_i.cxx b/src/HOMARD_I/HOMARD_Cas_i.cxx index 3660bfc3..8cb0b7b4 100755 --- a/src/HOMARD_I/HOMARD_Cas_i.cxx +++ b/src/HOMARD_I/HOMARD_Cas_i.cxx @@ -85,12 +85,12 @@ char* HOMARD_Cas_i::GetName() return CORBA::string_dup( myHomardCas->GetName().c_str() ); } //============================================================================= -CORBA::Long HOMARD_Cas_i::Delete() +CORBA::Long HOMARD_Cas_i::Delete( CORBA::Long Option ) { ASSERT( myHomardCas ); char* CaseName = GetName() ; - MESSAGE ( "Delete : destruction du cas " << CaseName ); - return _gen_i->DeleteCase(CaseName) ; + MESSAGE ( "Delete : destruction du cas " << CaseName << ", Option = " << Option ); + return _gen_i->DeleteCase(CaseName, Option) ; } //============================================================================= char* HOMARD_Cas_i::GetDumpPython() diff --git a/src/HOMARD_I/HOMARD_Cas_i.hxx b/src/HOMARD_I/HOMARD_Cas_i.hxx index 5d2526ad..8f729be8 100644 --- a/src/HOMARD_I/HOMARD_Cas_i.hxx +++ b/src/HOMARD_I/HOMARD_Cas_i.hxx @@ -56,7 +56,7 @@ public: void SetName( const char* Name ); char* GetName(); - CORBA::Long Delete(); + CORBA::Long Delete( CORBA::Long Option ); char* GetDumpPython(); diff --git a/src/HOMARD_I/HOMARD_Gen_i.cxx b/src/HOMARD_I/HOMARD_Gen_i.cxx index 20242f24..02407cd1 100755 --- a/src/HOMARD_I/HOMARD_Gen_i.cxx +++ b/src/HOMARD_I/HOMARD_Gen_i.cxx @@ -260,10 +260,10 @@ CORBA::Long HOMARD_Gen_i::DeleteBoundary(const char* BoundaryName) return 0 ; } //============================================================================= -CORBA::Long HOMARD_Gen_i::DeleteCase(const char* nomCas) +CORBA::Long HOMARD_Gen_i::DeleteCase(const char* nomCas, CORBA::Long Option) { // Pour detruire un cas - MESSAGE ( "DeleteCase : nomCas = " << nomCas ); + MESSAGE ( "DeleteCase : nomCas = " << nomCas << ", avec option = " << Option ); HOMARD::HOMARD_Cas_var myCase = myContextMap[GetCurrentStudyID()]._mesCas[nomCas]; if (CORBA::is_nil(myCase)) { @@ -276,8 +276,7 @@ CORBA::Long HOMARD_Gen_i::DeleteCase(const char* nomCas) // On commence par detruire toutes les iterations en partant de l'initiale et y compris elle CORBA::String_var nomIter = myCase->GetIter0Name(); CORBA::Long Option1 = 0 ; - CORBA::Long Option2 = 1 ; - if ( DeleteIterationOption(nomIter, Option1, Option2) != 0 ) + if ( DeleteIterationOption(nomIter, Option1, Option) != 0 ) { return 2; }; @@ -343,7 +342,6 @@ CORBA::Long HOMARD_Gen_i::DeleteIteration(const char* nomIter, CORBA::Long Optio { // Option = 0 : On ne supprime pas le fichier du maillage associe // Option = 1 : On supprime le fichier du maillage associe - // Option = 2 : On supprime le fichier du maillage associe, sauf si c'est la derniere iteration // Pour detruire une iteration courante MESSAGE ( "DeleteIteration : nomIter = " << nomIter << ", avec option = " << Option ); CORBA::Long Option1 = 1 ; @@ -392,8 +390,11 @@ CORBA::Long HOMARD_Gen_i::DeleteIterationOption(const char* nomIter, CORBA::Long // On arrive ici pour une iteration sans fille MESSAGE ( "Destruction effective de " << nomIter ); // On commence par invalider l'iteration pour faire le menage des dependances - // et eventeullement du maillage associe - InvalideIterOption(nomIter, Option2) ; + // et eventuellement du maillage associe + int option ; + if ( numero == 0 ) { option = 0 ; } + else { option = Option2 ; } + InvalideIterOption(nomIter, option) ; // Retrait dans la descendance de l'iteration parent if ( numero > 0 ) diff --git a/src/HOMARD_I/HOMARD_Gen_i.hxx b/src/HOMARD_I/HOMARD_Gen_i.hxx index 3fcf18a1..517629c0 100644 --- a/src/HOMARD_I/HOMARD_Gen_i.hxx +++ b/src/HOMARD_I/HOMARD_Gen_i.hxx @@ -145,7 +145,7 @@ public: void InvalideZone(const char* nomZone); CORBA::Long DeleteBoundary(const char* nomBoundary); - CORBA::Long DeleteCase(const char* nomCas); + CORBA::Long DeleteCase(const char* nomCas, CORBA::Long Option); CORBA::Long DeleteHypo(const char* nomHypothesis); CORBA::Long DeleteIteration(const char* nomIter, CORBA::Long Option); CORBA::Long DeleteIterationOption(const char* nomIter, CORBA::Long Option1, CORBA::Long Option2); diff --git a/tests/test_3.py b/tests/test_3.py index 0d7bd3d4..390d35e3 100644 --- a/tests/test_3.py +++ b/tests/test_3.py @@ -22,7 +22,7 @@ Python script for HOMARD Copyright EDF-R&D 2011, 2013 Test test_3 """ -__revision__ = "V1.6" +__revision__ = "V1.7" #======================================================================== Test_Name = "test_3" @@ -99,22 +99,22 @@ Copyright EDF-R&D 2010, 2013 Hypo = homard.CreateHypothesis('Hypo') Hypo.SetAdapRefinUnRef(-1, 1, 0) # -# Creation of the cases -# ===================== + for iaux in range (n_boucle+1) : +# # Creation of the case Case_1 - Case_1 = homard.CreateCase('Case_1', 'MOYEU', os.path.join(Rep_Test, Test_Name + '.00.med')) - Case_1.SetDirName(Rep_Test_Resu) - Case_1.SetConfType(1) - Case_1.AddBoundaryGroup('courbes', '') - Case_1.AddBoundaryGroup('cyl_ext', 'EXT') - Case_1.AddBoundaryGroup('cyl_int', 'INT') - Case_1.AddBoundaryGroup('sphere_1', 'END_1') - Case_1.AddBoundaryGroup('sphere_2', 'END_2') +# =========================== + if ( iaux <= 1 ) : + Case_1 = homard.CreateCase('Case_1', 'MOYEU', os.path.join(Rep_Test, Test_Name + '.00.med')) + Case_1.SetDirName(Rep_Test_Resu) + Case_1.SetConfType(1) + Case_1.AddBoundaryGroup('courbes', '') + Case_1.AddBoundaryGroup('cyl_ext', 'EXT') + Case_1.AddBoundaryGroup('cyl_int', 'INT') + Case_1.AddBoundaryGroup('sphere_1', 'END_1') + Case_1.AddBoundaryGroup('sphere_2', 'END_2') # # Creation and destruction of the iterations # ========================================== -# - for iaux in range (n_boucle+1) : # # Creation of the iteration Iter_1 Iter_1 = Case_1.NextIteration('Iter_1') @@ -137,7 +137,13 @@ Copyright EDF-R&D 2010, 2013 break # Destruction - if ( iaux < n_boucle ) : + # After the first loop, the case is deleted, except the final mesh files + if ( iaux == 0 ) : + error = Case_1.Delete(0) + if error : + break + # After the second loop, the iterations are deleted, with the final mesh files + elif ( iaux == 1 ) : # Recursive destruction of the iterations error = Iter_1.Delete(1) if error : @@ -175,7 +181,7 @@ except Exception, e: # Test of the result # test_file_suff = "apad.%02d.bilan" % n_iter_test_file -rep_test_file = "I%02d" % (n_iter_test_file*(n_boucle+1)) +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