smesh/src/Tools/blocFissure/gmu/insereFissureLongue.py

163 lines
7.1 KiB
Python
Raw Normal View History

2014-01-09 14:20:44 +00:00
# -*- coding: utf-8 -*-
2021-03-23 17:44:27 +03:00
# Copyright (C) 2014-2021 EDF R&D
2019-02-14 14:55:47 +03:00
#
# 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
#
2021-03-17 18:46:40 +01:00
"""procédure complète de construction d'une fissure longue"""
2014-01-09 14:20:44 +00:00
2021-01-26 15:12:35 +01:00
import os
2014-01-09 14:20:44 +00:00
import logging
2021-04-02 13:17:18 +02:00
2014-01-09 14:20:44 +00:00
import salome
2021-04-02 13:17:18 +02:00
2017-03-20 13:27:30 +01:00
from .geomsmesh import geomPublish
2014-01-09 14:20:44 +00:00
2021-04-02 13:17:18 +02:00
from . import initLog
2014-01-09 14:20:44 +00:00
2021-03-17 18:46:40 +01:00
from .insereFissureLongue_a import insereFissureLongue_a
from .insereFissureLongue_b import insereFissureLongue_b
from .insereFissureLongue_c import insereFissureLongue_c
from .insereFissureLongue_d import insereFissureLongue_d
2021-04-02 13:17:18 +02:00
from .insereFissureLongue_e import insereFissureLongue_e
from .insereFissureLongue_f import insereFissureLongue_f
from .insereFissureLongue_g import insereFissureLongue_g
2021-01-27 12:26:43 +01:00
2014-01-09 14:20:44 +00:00
# -----------------------------------------------------------------------------
2021-03-17 18:46:40 +01:00
def insereFissureLongue(geometriesSaines, \
2021-03-16 16:52:38 +01:00
shapesFissure, shapeFissureParams, \
maillageFissureParams, elementsDefaut, \
step=-1, mailleur="MeshGems", nro_cas=-1):
2021-03-17 18:46:40 +01:00
"""procedure complete fissure longue"""
2014-01-09 14:20:44 +00:00
logging.info('start')
logging.info("Usage du mailleur %s pour le cas n° %d", mailleur, nro_cas)
2014-01-09 14:20:44 +00:00
#geometrieSaine = geometriesSaines[0]
shapeDefaut = shapesFissure[0] # face de fissure, debordant
#tailleDefaut = shapesFissure[2]
wiretube = shapesFissure[4] # wire fond de fissure, debordant
planfiss = shapesFissure[7] # plan de fissure
pipefiss = shapesFissure[8] # pipe, debordant
profondeur = shapeFissureParams['profondeur']
rayonPipe = profondeur/4.0
nomRep = maillageFissureParams['nomRep']
nomFicSain = maillageFissureParams['nomFicSain']
nomFicFissure = maillageFissureParams['nomFicFissure']
#nbsegExt = maillageFissureParams['nbsegExt'] # 5
#nbsegGen = maillageFissureParams['nbsegGen'] # 25
#nbsegRad = maillageFissureParams['nbsegRad'] # 5
#scaleRad = maillageFissureParams['scaleRad'] # 4
#nbsegCercle = maillageFissureParams['nbsegCercle'] # 6
#nbsegFis = maillageFissureParams['nbsegFis'] # 20
#lensegEllipsoide = maillageFissureParams['lensegEllipso'] # 1.0
2021-01-26 15:12:35 +01:00
#fichierMaillageSain = os.path.join(nomRep, '{}.med'.format(nomFicSain))
fichierMaillageFissure = os.path.join(nomRep, '{}.med'.format(nomFicFissure))
2014-01-09 14:20:44 +00:00
facesDefaut = elementsDefaut[0]
#centreDefaut = elementsDefaut[1]
#normalDefaut = elementsDefaut[2]
#extrusionDefaut = elementsDefaut[3]
#dmoyen = elementsDefaut[4]
#bordsPartages = elementsDefaut[5]
#fillconts = elementsDefaut[6]
#idFilToCont = elementsDefaut[7]
maillageSain = elementsDefaut[8]
internalBoundary = elementsDefaut[9]
zoneDefaut = elementsDefaut[10]
zoneDefaut_skin = elementsDefaut[11]
zoneDefaut_internalFaces = elementsDefaut[12]
zoneDefaut_internalEdges = elementsDefaut[13]
facePorteFissure = shapeDefaut
WirePorteFondFissure = wiretube
fillingFaceExterne = facesDefaut[0]
logging.debug("fillingFaceExterne %s", fillingFaceExterne)
geomPublish(initLog.debug, fillingFaceExterne, "fillingFaceExterne")
2021-01-26 16:37:29 +01:00
2014-01-09 14:20:44 +00:00
# -----------------------------------------------------------------------------
# --- peau et face de fissure
2021-04-02 13:17:18 +02:00
edgesInside, centreFondFiss, tangentFondFiss, \
planBord1, planBord2 , \
facePeau, faceFiss, verticesOutCercles, verticesEdgePeauFiss, \
edgePeauFiss, demiCerclesPeau, \
groupEdgesBordPeau, groupsDemiCerclesPeau, groupEdgesFaceFissPipe = \
insereFissureLongue_a (facePorteFissure, WirePorteFondFissure, \
fillingFaceExterne, \
pipefiss, rayonPipe, \
mailleur )
2014-01-09 14:20:44 +00:00
# -----------------------------------------------------------------------------
# --- pipe de fond de fissure
2021-04-02 13:17:18 +02:00
pipeFondFiss, disques, rayons, \
demiCercles, generatrices, \
VerticesEndPipeFiss, bordsLibres, \
groupFaceFissInPipe, groupEdgeFondFiss, groupsDemiCerclesPipe, groupGenerFiss = \
insereFissureLongue_b (edgesInside, centreFondFiss, tangentFondFiss, \
planfiss, planBord1, planBord2, \
facePeau, verticesOutCercles, verticesEdgePeauFiss, \
fillingFaceExterne, rayonPipe, \
internalBoundary)
2014-01-09 14:20:44 +00:00
# --- maillage pipe fond fissure
2021-01-27 11:50:20 +01:00
meshFondFiss, groups_demiCercles, group_generFiss, nbSegGenLong, nbSegGenBout = \
2021-04-02 13:17:18 +02:00
insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCerclesPeau, generatrices, \
2021-01-27 11:50:20 +01:00
VerticesEndPipeFiss, verticesEdgePeauFiss, \
groupFaceFissInPipe, groupEdgeFondFiss, groupsDemiCerclesPipe, groupGenerFiss, \
profondeur, rayonPipe, \
nro_cas)
2014-01-09 14:20:44 +00:00
# --- maillage face de peau
2021-01-27 11:50:20 +01:00
meshFacePeau, groupEdgesPeauFiss = \
2021-04-02 13:17:18 +02:00
insereFissureLongue_d ( facePeau, edgePeauFiss, groupEdgesBordPeau, bordsLibres, \
2021-03-17 16:04:04 +01:00
groupsDemiCerclesPeau, groups_demiCercles, verticesOutCercles, \
nbSegGenLong, nbSegGenBout, profondeur, \
mailleur, nro_cas )
2014-01-09 14:20:44 +00:00
2021-01-27 11:50:20 +01:00
# --- maillage face de fissure
2014-01-09 14:20:44 +00:00
2021-01-27 11:50:20 +01:00
meshFaceFiss = \
2021-04-02 13:17:18 +02:00
insereFissureLongue_e ( faceFiss, edgePeauFiss, groupEdgesPeauFiss, group_generFiss, groupEdgesFaceFissPipe, \
2021-03-17 16:04:04 +01:00
profondeur, rayonPipe, \
mailleur, nro_cas )
2014-01-09 14:20:44 +00:00
2021-01-27 11:50:20 +01:00
# --- maillage meshBoiteDefaut
2014-01-09 14:20:44 +00:00
2021-01-27 11:50:20 +01:00
meshBoiteDefaut, group_faceFissInPipe, group_faceFissOutPipe = \
2021-04-02 13:17:18 +02:00
insereFissureLongue_f ( internalBoundary, meshFondFiss, meshFacePeau, meshFaceFiss, \
mailleur, nro_cas )
2021-01-27 11:50:20 +01:00
2014-01-09 14:20:44 +00:00
2021-04-02 13:17:18 +02:00
# --- maillage complet
maillageComplet = \
insereFissureLongue_g (nomFicFissure, fichierMaillageFissure, nomFicSain, maillageSain, \
meshBoiteDefaut, facePorteFissure, \
group_faceFissInPipe, group_faceFissOutPipe, \
zoneDefaut, zoneDefaut_skin, zoneDefaut_internalEdges, zoneDefaut_internalFaces, \
nro_cas)
2014-01-09 14:20:44 +00:00
if salome.sg.hasDesktop():
2017-06-13 13:01:10 +03:00
salome.sg.updateObjBrowser()
2014-01-09 14:20:44 +00:00
2021-01-26 15:12:35 +01:00
return maillageComplet