1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2014-2020 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
23 from blocFissure import gmu
24 from blocFissure.gmu.initEtude import initEtude
25 from blocFissure.gmu.getStatsMaillageFissure import getStatsMaillageFissure
27 class fissureGenerique():
29 classe générique problème fissure:
30 génération géométrie et maillage sain
31 définition et positionnement d'une fissure
32 génération d'un bloc défaut inséré dans le maillage sain
35 nomProbleme = "generique"
37 def __init__(self, numeroCas):
39 self.numeroCas = numeroCas
40 self.nomCas = self.nomProbleme +"_%d"%(self.numeroCas)
41 self.fissureLongue = False
43 def setParamGeometrieSaine(self):
46 def genereGeometrieSaine(self, geomParams):
47 geometriesSaines = [None]
48 return geometriesSaines
50 def setParamMaillageSain(self):
53 def genereMaillageSain(self, geometriesSaines, meshParams):
54 maillagesSains = [None]
57 def setParamShapeFissure(self):
58 self.shapeFissureParams = {}
60 def genereShapeFissure(self, geometriesSaines, geomParams, shapeFissureParams):
61 shapesFissure = [None]
64 def setParamMaillageFissure(self):
65 self.maillageFissureParams = {}
67 def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, maillageFissureParams):
68 elementsDefaut = [None]
71 def genereMaillageFissure(self, geometriesSaines, maillagesSains, shapesFissure,
72 maillageFissureParams, elementsDefaut, step):
73 maillageFissure = None
74 return maillageFissure
76 def setReferencesMaillageFissure(self):
77 referencesMaillageFissure = {}
78 return referencesMaillageFissure
80 # ---------------------------------------------------------------------------
82 def executeProbleme(self, step=-1):
83 logging.info(" --- executeProbleme %s", self.nomCas)
87 self.setParamGeometrieSaine()
88 geometriesSaines = self.genereGeometrieSaine(self.geomParams)
92 self.setParamMaillageSain()
93 maillagesSains = self.genereMaillageSain(geometriesSaines, self.meshParams)
97 self.setParamShapeFissure()
98 shapesFissure = self.genereShapeFissure(geometriesSaines, self.geomParams, self.shapeFissureParams)
102 self.setParamMaillageFissure()
103 elementsDefaut = self.genereZoneDefaut(geometriesSaines, maillagesSains, shapesFissure, self.shapeFissureParams, self.maillageFissureParams)
107 maillageFissure = self.genereMaillageFissure(geometriesSaines, maillagesSains,
108 shapesFissure, self.shapeFissureParams,
109 self.maillageFissureParams, elementsDefaut, step)
111 self.setReferencesMaillageFissure()
112 mesures = getStatsMaillageFissure(maillageFissure, self.referencesMaillageFissure, self.maillageFissureParams)