1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2014-2021 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 """fissureGenerique"""
24 from blocFissure import gmu
25 from .initEtude import initEtude
26 from .getStatsMaillageFissure import getStatsMaillageFissure
28 class fissureGenerique(object):
29 """classe générique problème fissure:
31 génération géométrie et maillage sain
32 définition et positionnement d'une fissure
33 génération d'un bloc défaut inséré dans le maillage sain
36 nomProbleme = "fissureGenerique"
39 shapeFissureParams = dict()
40 maillageFissureParams = dict()
42 def __init__(self, numeroCas):
44 self.numeroCas = numeroCas
45 self.nomCas = self.nomProbleme +"_%d"%(self.numeroCas)
46 self.fissureLongue = False
47 self.referencesMaillageFissure = None
49 def setParamGeometrieSaine(self):
50 """setParamGeometrieSaine"""
51 self.geomParams = dict()
53 def genereGeometrieSaine(self, geomParams):
54 """genereGeometrieSaine"""
55 geometriesSaines = [None]
56 return geometriesSaines
58 def setParamMaillageSain(self):
59 """setParamMaillageSain"""
60 self.meshParams = dict()
62 def genereMaillageSain(self, geometriesSaines, meshParams):
63 """genereMaillageSain"""
64 maillagesSains = [None]
67 def setParamShapeFissure(self):
68 """setParamShapeFissure"""
69 self.shapeFissureParams = dict()
71 def genereShapeFissure(self, geometriesSaines, geomParams, shapeFissureParams, mailleur="MeshGems"):
72 """genereShapeFissure"""
73 shapesFissure = [None]
76 def setParamMaillageFissure(self):
77 """setParamMaillageFissure"""
78 self.maillageFissureParams = dict()
80 def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams):
81 """genereZoneDefaut"""
82 elementsDefaut = [None]
85 def genereMaillageFissure(self, geometriesSaines, maillagesSains, \
86 shapesFissure, shapeFissureParams, \
87 maillageFissureParams, elementsDefaut, step, \
89 """genereMaillageFissure"""
90 maillageFissure = None
91 return maillageFissure
93 def setReferencesMaillageFissure(self):
94 """setReferencesMaillageFissure"""
95 referencesMaillageFissure = dict()
96 return referencesMaillageFissure
98 def mailleur2d3d(self):
99 """Le mailleur : NETGEN ou MeshGems"""
100 #mailleur = "MeshGems"
104 # ---------------------------------------------------------------------------
106 def executeProbleme(self, step=-1):
107 """executeProbleme"""
108 texte = " --- fissureGenerique.executeProbleme pour '{}', step = {}".format(self.nomCas,step)
113 self.setParamGeometrieSaine()
114 geometriesSaines = self.genereGeometrieSaine(self.geomParams)
118 self.setParamMaillageSain()
119 maillagesSains = self.genereMaillageSain(geometriesSaines, self.meshParams)
123 self.setParamShapeFissure()
124 mailleur = self.mailleur2d3d()
125 shapesFissure = self.genereShapeFissure(geometriesSaines, self.geomParams, self.shapeFissureParams, mailleur)
129 self.setParamMaillageFissure()
130 elementsDefaut = self.genereZoneDefaut(geometriesSaines, maillagesSains, \
131 shapesFissure, self.shapeFissureParams, self.maillageFissureParams)
135 maillageFissure = self.genereMaillageFissure(geometriesSaines, maillagesSains, \
136 shapesFissure, self.shapeFissureParams, self.maillageFissureParams, \
137 elementsDefaut, step, mailleur)
139 self.setReferencesMaillageFissure()
140 ok_maillage = getStatsMaillageFissure(maillageFissure, self.referencesMaillageFissure, self.maillageFissureParams)