Salome HOME
Plugin blocFissure, bug EDF 12976, regression on some tests, a first correction
authorPaul RASCLE <paul.rascle@edf.fr>
Thu, 12 May 2016 13:19:52 +0000 (15:19 +0200)
committerPaul RASCLE <paul.rascle@edf.fr>
Thu, 12 May 2016 13:19:52 +0000 (15:19 +0200)
src/Tools/blocFissure/gmu/casStandard.py
src/Tools/blocFissure/gmu/construitFissureGenerale.py
src/Tools/blocFissure/gmu/mailleAretesEtJonction.py
src/Tools/blocFissure/ihm/fissureGenerale.ui
src/Tools/blocFissure/ihm/fissureGenerale_plugin.py

index cffd6aac83121a92049366a6f9ca086cd95932cb..e52b700130229425cdaf76b9f882d846e9425e97 100644 (file)
@@ -48,7 +48,7 @@ class casStandard(fissureGenerique):
     if self.dicoParams.has_key('reptrav'):
       self.reptrav = self.dicoParams['reptrav']
     else:
-      reptrav = '.'  
+      self.reptrav = '.'  
     self.numeroCas = numeroCas
     if self.numeroCas != 0:
       self.nomCas = self.nomProbleme +"_%d"%(self.numeroCas)
@@ -62,6 +62,8 @@ class casStandard(fissureGenerique):
       step = self.dicoParams['step']
     else:
       step = -1 # exécuter toutes les étapes
+    if not self.dicoParams.has_key('aretesVives'):
+      self.dicoParams['aretesVives'] = 0
     if self.numeroCas == 0: # valeur par défaut : exécution immédiate, sinon execution différée dans le cas d'une liste de problèmes
       self.executeProbleme(step)
     
@@ -121,7 +123,8 @@ class casStandard(fissureGenerique):
                                       nomFicFissure    = self.nomCas,
                                       nbsegRad         = self.dicoParams['nbSegRad'],
                                       nbsegCercle      = self.dicoParams['nbSegCercle'],
-                                      areteFaceFissure = self.dicoParams['areteFaceFissure'])
+                                      areteFaceFissure = self.dicoParams['areteFaceFissure'],
+                                      aretesVives      = self.dicoParams['aretesVives'])
 
   # ---------------------------------------------------------------------------
   def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams):
index f75c2742b5482481cc21d9b80e6b8394b6b9c49a..c02c09803896c00a1c6dd72193426bc93d783d35 100644 (file)
@@ -81,6 +81,9 @@ def construitFissureGenerale(maillagesSains,
   nbsegRad          = maillageFissureParams['nbsegRad']      # nombre de couches selon un rayon du pipe
   nbsegCercle       = maillageFissureParams['nbsegCercle']   # nombre de secteur dans un cercle du pipe
   areteFaceFissure  = maillageFissureParams['areteFaceFissure']
+  lgAretesVives     = 0
+  if maillageFissureParams.has_key('aretesVives'):
+    lgAretesVives   = maillageFissureParams['aretesVives']
 
   pointIn_x = 0.0
   pointIn_y = 0.0
@@ -121,6 +124,9 @@ def construitFissureGenerale(maillagesSains,
   #edgeFondExt              = elementsDefaut[14]
   centreFondFiss           = elementsDefaut[15]
   #tgtCentre                = elementsDefaut[16]
+  if lgAretesVives == 0:
+     lgAretesVives = dmoyen
+
 
   O, OX, OY, OZ = triedreBase()
 
@@ -246,7 +252,7 @@ def construitFissureGenerale(maillagesSains,
   
   # --- edges de bord, faces défaut à respecter
   
-  (internalBoundary, bordsLibres, grpAretesVives) = mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, dmoyen)
+  (internalBoundary, bordsLibres, grpAretesVives) = mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives)
 
   # --- maillage faces de fissure
   
index 179124308406918a1b1cf30e57c645d7a8ffc223..e8f9d81974613477e1edd26e81fefc5de62e63ea 100644 (file)
@@ -8,7 +8,7 @@ import SMESH
 
 from putName import putName
   
-def mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, dmoyen):
+def mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives):
   """
   edges de bord, faces défaut à respecter
   """
@@ -36,7 +36,7 @@ def mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, dmoyen):
     aretesVivesC = geompy.MakeCompound(aretesVivesCoupees)
     meshAretesVives = smesh.Mesh(aretesVivesC)
     algo1d = meshAretesVives.Segment()
-    hypo1d = algo1d.LocalLength(dmoyen,[],1e-07)
+    hypo1d = algo1d.LocalLength(lgAretesVives,[],1e-07)
     putName(algo1d.GetSubMesh(), "aretesVives")
     putName(algo1d, "algo1d_aretesVives")
     putName(hypo1d, "hypo1d_aretesVives")
index 5a6d1f027c464b486c773753e722070f78d6ddf5..bdf1e36c1ab168cfd4a4b1a1aa30f91b14a6e0f5 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>666</width>
-    <height>589</height>
+    <width>663</width>
+    <height>624</height>
    </rect>
   </property>
   <property name="windowTitle">
           </property>
           <layout class="QHBoxLayout" name="horizontalLayout_11">
            <item>
-            <widget class="QLabel" name="label_9">
-             <property name="text">
-              <string>aretes face fissure</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QDoubleSpinBox" name="dsb_areteFaceFissure">
-             <property name="toolTip">
-              <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Faces externes de la zone à remailler.&lt;/p&gt;&lt;p&gt;Mailage en triangles : valeur cible des arêtes.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-             </property>
-             <property name="decimals">
-              <number>5</number>
-             </property>
-             <property name="maximum">
-              <double>1000000.000000000000000</double>
-             </property>
-            </widget>
+            <layout class="QGridLayout" name="gridLayout_6">
+             <item row="0" column="0">
+              <widget class="QLabel" name="label_9">
+               <property name="text">
+                <string>triangles face fissure</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="1">
+              <widget class="QDoubleSpinBox" name="dsb_areteFaceFissure">
+               <property name="toolTip">
+                <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Faces externes de la zone à remailler.&lt;/p&gt;&lt;p&gt;Maillage en triangles : valeur cible des arêtes des triangles.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+               </property>
+               <property name="decimals">
+                <number>5</number>
+               </property>
+               <property name="maximum">
+                <double>1000000.000000000000000</double>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="0">
+              <widget class="QLabel" name="label_11">
+               <property name="text">
+                <string>aretes vives</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="1">
+              <widget class="QDoubleSpinBox" name="dsb_aretesVives">
+               <property name="toolTip">
+                <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Arêtes vives de la zone à remailler.&lt;/p&gt;&lt;p&gt;Longueur des segments sur ces arêtes.&lt;/p&gt;&lt;p&gt;Ce paramètre est &lt;span style=&quot; font-weight:600; font-style:italic; color:#2631c1;&quot;&gt;optionnel&lt;/span&gt; : laissé à 0,&lt;/p&gt;&lt;p&gt;il est est ajusté automatiquement.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+               </property>
+               <property name="decimals">
+                <number>5</number>
+               </property>
+               <property name="maximum">
+                <double>100000.000000000000000</double>
+               </property>
+              </widget>
+             </item>
+            </layout>
            </item>
            <item>
             <spacer name="horizontalSpacer_5">
      <item row="1" column="1">
       <widget class="QLineEdit" name="le_nomres">
        <property name="toolTip">
-        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom des résultats.&lt;/p&gt;&lt;p&gt;Le fichier maillage résultat sera rangé dans le répertoire de travail, sous le nom fissure_&lt;span style=&quot; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Nom&lt;/span&gt;.med&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom des résultats.&lt;/p&gt;&lt;p&gt;Le fichier maillage résultat sera rangé dans le répertoire de travail, sous le nom &lt;span style=&quot; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Nom&lt;/span&gt;.med&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
        </property>
       </widget>
      </item>
index e9645a8fe234ca08f7db81651105f32af3c05ec7..89ac32c6e38d6924790fbaca9326cba0bedf4593 100644 (file)
@@ -98,6 +98,7 @@ def fissureGeneraleDlg(context):
         nbSegRad          = 5,
         nbSegCercle       = 32,
         areteFaceFissure  = 10,
+        areteVives        = 0,
         reptrav           = '.',
         nomres            = 'casStandard_fissure.med',
         verbosite         = 0)
@@ -115,6 +116,10 @@ def fissureGeneraleDlg(context):
       self.ui.sb_couronnes.setValue(dico['nbSegRad'])
       self.ui.sb_secteurs.setValue(dico['nbSegCercle'])
       self.ui.dsb_areteFaceFissure.setValue(dico['areteFaceFissure'])
+      if dico.has_key('aretesVives'):
+        self.ui.dsb_aretesVives.setValue(dico['aretesVives'])
+      else:
+        self.ui.dsb_aretesVives.setValue(0)
       self.ui.le_reptrav.setText(os.path.abspath(dico['reptrav']))
       self.ui.le_nomres.setText(os.path.split(dico['nomres'])[1])
       self.ui.cb_log.setCurrentIndex(dico['verbosite'])
@@ -324,6 +329,7 @@ def fissureGeneraleDlg(context):
                   nbSegRad         = self.ui.sb_couronnes.value(),
                   nbSegCercle      = self.ui.sb_secteurs.value(),
                   areteFaceFissure = self.ui.dsb_areteFaceFissure.value(),
+                  aretesVives      = self.ui.dsb_aretesVives.value(),
                   reptrav          = str(self.ui.le_reptrav.text()),
                   nomres           = str(self.ui.le_nomres.text()),
                   verbosite        = self.ui.cb_log.currentIndex()