X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2FCasTests%2Ffissure_Coude.py;h=8975ce95b0a4aa0d6e0b7a4d0f850035d33a5fb5;hb=42c23b637c033e8695a798b13360df7602e79426;hp=6f87ec6b461436a5a12d9801eab13613c51450fc;hpb=072a73120b6db7bba2389aa7ada0cde20e22ee57;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/CasTests/fissure_Coude.py b/src/Tools/blocFissure/CasTests/fissure_Coude.py index 6f87ec6b4..8975ce95b 100644 --- a/src/Tools/blocFissure/CasTests/fissure_Coude.py +++ b/src/Tools/blocFissure/CasTests/fissure_Coude.py @@ -1,4 +1,25 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2014-2020 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 +# +"""Fissure dans un coude""" + +import os from blocFissure import gmu from blocFissure.gmu.geomsmesh import geompy, smesh @@ -22,12 +43,19 @@ from blocFissure.gmu.insereFissureLongue import insereFissureLongue O, OX, OY, OZ = triedreBase() class fissure_Coude(fissureGenerique): - """ - problème de fissure du Coude : version de base + """problème de fissure du Coude : version de base + maillage hexa """ - nomProbleme = "tuyau_Coude" + nomProbleme = "fissure_Coude" + geomParams = dict() + meshParams = dict() + shapeFissureParams = dict() + maillageFissureParams = dict() + referencesMaillageFissure = dict() + circonferentielle = False + longitudinale = False # --------------------------------------------------------------------------- def setParamGeometrieSaine(self): @@ -140,10 +168,11 @@ class fissure_Coude(fissureGenerique): # --- peau tube exterieur (PEAUEXT) - cercle1 = geompy.MakeCircle(centre, OZ, de/2.) - extru1 = geompy.MakePrismVecH(cercle1, OZ, l_tube_p1) - revol1 = geompy.MakeRevolution(cercle1, axe, angleCoude*math.pi/180.0) - rot1 = geompy.MakeRotation(cercle1, axe, angleCoude*math.pi/180.0) + Disk_3 = geompy.MakeDiskPntVecR(centre, OZ, de/2. +epais) + couronne1 = geompy.MakeCut(Disk_3, Disk_1) + extru1 = geompy.MakePrismVecH(couronne1, OZ, l_tube_p1) + revol1 = geompy.MakeRevolution(couronne1, axe, angleCoude*math.pi/180.0) + rot1 = geompy.MakeRotation(couronne1, axe, angleCoude*math.pi/180.0) extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2) externe = geompy.MakeFuse(extru1, revol1) externe = geompy.MakeFuse(extru2, externe) @@ -237,16 +266,16 @@ class fissure_Coude(fissureGenerique): smesh.SetName(algo1d_long_p2, "algo1d_long_p2") smesh.SetName(hypo1d_long_p2, "hypo1d_long_p2") - isDone = maillageSain.Compute() + _ = maillageSain.GroupOnGeom(P1,'P1',SMESH.NODE) + _ = maillageSain.GroupOnGeom(P2,'P2',SMESH.NODE) + _ = maillageSain.GroupOnGeom(EXTUBE,'EXTUBE',SMESH.FACE) + _ = maillageSain.GroupOnGeom(BORDTU,'BORDTU',SMESH.EDGE) + _ = maillageSain.GroupOnGeom(CLGV,'CLGV',SMESH.FACE) + _ = maillageSain.GroupOnGeom(PEAUINT,'PEAUINT',SMESH.FACE) + _ = maillageSain.GroupOnGeom(PEAUEXT,'PEAUEXT',SMESH.FACE) + _ = maillageSain.GroupOnGeom(COUDE,'COUDSAIN',SMESH.VOLUME) - mp1 = maillageSain.GroupOnGeom(P1,'P1',SMESH.NODE) - mp2 = maillageSain.GroupOnGeom(P2,'P2',SMESH.NODE) - ext = maillageSain.GroupOnGeom(EXTUBE,'EXTUBE',SMESH.FACE) - btu = maillageSain.GroupOnGeom(BORDTU,'BORDTU',SMESH.EDGE) - clg = maillageSain.GroupOnGeom(CLGV,'CLGV',SMESH.FACE) - pei = maillageSain.GroupOnGeom(PEAUINT,'PEAUINT',SMESH.FACE) - pex = maillageSain.GroupOnGeom(PEAUEXT,'PEAUEXT',SMESH.FACE) - cou = maillageSain.GroupOnGeom(COUDE,'COUDSAIN',SMESH.VOLUME) + _ = maillageSain.Compute() return [maillageSain, True] # True : maillage hexa @@ -273,14 +302,15 @@ class fissure_Coude(fissureGenerique): externe = True) # --------------------------------------------------------------------------- - def genereShapeFissure( self, geometriesSaines, geomParams, shapeFissureParams): + def genereShapeFissure( self, geometriesSaines, geomParams, shapeFissureParams, \ + mailleur="MeshGems"): logging.info("genereShapeFissure %s", self.nomCas) logging.info("shapeFissureParams %s", shapeFissureParams) - angleCoude = geomParams['angleCoude'] + #angleCoude = geomParams['angleCoude'] r_cintr = geomParams['r_cintr'] l_tube_p1 = geomParams['l_tube_p1'] - l_tube_p2 = geomParams['l_tube_p2'] + #l_tube_p2 = geomParams['l_tube_p2'] epais = geomParams['epais'] de = geomParams['de'] @@ -294,17 +324,12 @@ class fissure_Coude(fissureGenerique): azimut = -azimut # axe inverse / ASCOUF axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1) - + if not lgInfluence: lgInfluence = profondeur - if longueur > 2*profondeur: - self.fissureLongue=True - else: - self.fissureLongue=False + self.fissureLongue = bool(longueur > 2*profondeur) - self.circonferentielle = False - self.longitudinale = False if self.fissureLongue and (abs(orientation) < 45) : self.longitudinale = True elif self.fissureLongue: @@ -452,15 +477,16 @@ class fissure_Coude(fissureGenerique): else: pass - coordsNoeudsFissure = genereMeshCalculZoneDefaut(facefiss, 5 ,10) + mailleur = self.mailleur2d3d() + coordsNoeudsFissure = genereMeshCalculZoneDefaut(facefiss, 5 ,10, mailleur) return [facefiss, centre, lgInfluence, coordsNoeudsFissure, wiretube, facetubel, facetuber, planfiss, pipefiss] # --------------------------------------------------------------------------- def setParamMaillageFissure(self): - self.maillageFissureParams = dict(nomRep = '.', + self.maillageFissureParams = dict(nomRep = os.curdir, nomFicSain = self.nomCas, - nomFicFissure = 'fissure_' + self.nomCas, + nomFicFissure = self.nomCas + "_fissure", nbsegExt = 5, nbsegGen = 25, nbsegRad = 5, @@ -476,21 +502,26 @@ class fissure_Coude(fissureGenerique): # --------------------------------------------------------------------------- def genereMaillageFissure(self, geometriesSaines, maillagesSains, - shapesFissure, shapeFissureParams, - maillageFissureParams, elementsDefaut, step): - maillageFissure = insereFissureLongue(geometriesSaines, maillagesSains, - shapesFissure, shapeFissureParams, - maillageFissureParams, elementsDefaut, step) + shapesFissure, shapeFissureParams, \ + maillageFissureParams, elementsDefaut, step, \ + mailleur="MeshGems"): + + mailleur = self.mailleur2d3d() + maillageFissure = insereFissureLongue(geometriesSaines, \ + shapesFissure, shapeFissureParams, \ + maillageFissureParams, elementsDefaut, \ + step, mailleur) return maillageFissure # --------------------------------------------------------------------------- def setReferencesMaillageFissure(self): - self.referencesMaillageFissure = dict(Entity_Node = 77491, - Entity_Quad_Edge = 1006, - Entity_Quad_Triangle = 2412, - Entity_Quad_Quadrangle = 6710, - Entity_Quad_Tetra = 20853, - Entity_Quad_Hexa = 8656, - Entity_Quad_Penta = 1176, - Entity_Quad_Pyramid = 1232) - + self.referencesMaillageFissure = dict( \ + Entity_Quad_Quadrangle = 6710, \ + Entity_Quad_Hexa = 8656, \ + Entity_Node = 76807, \ + Entity_Quad_Edge = 1006, \ + Entity_Quad_Triangle = 2342, \ + Entity_Quad_Tetra = 20392, \ + Entity_Quad_Pyramid = 1232, \ + Entity_Quad_Penta = 1176 \ + )