Salome HOME
bos #20646 [CEA] Fix error in polyhedron per solid on pentahedron
[modules/smesh.git] / src / Tools / blocFissure / gmu / fissureGenerique.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2014-2020  EDF R&D
3 #
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.
8 #
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.
13 #
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
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20
21 import logging
22
23 from blocFissure import gmu
24 from blocFissure.gmu.initEtude import initEtude
25 from blocFissure.gmu.getStatsMaillageFissure import getStatsMaillageFissure
26
27 class fissureGenerique():
28   """
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
33   """
34
35   nomProbleme = "generique"
36
37   def __init__(self, numeroCas):
38     initEtude()
39     self.numeroCas = numeroCas
40     self.nomCas = self.nomProbleme +"_%d"%(self.numeroCas)
41     self.fissureLongue = False
42
43   def setParamGeometrieSaine(self):
44     self.geomParams = {}
45
46   def genereGeometrieSaine(self, geomParams):
47     geometriesSaines = [None]
48     return geometriesSaines
49
50   def setParamMaillageSain(self):
51     self.meshParams = {}
52
53   def genereMaillageSain(self, geometriesSaines, meshParams):
54     maillagesSains = [None]
55     return maillagesSains
56
57   def setParamShapeFissure(self):
58     self.shapeFissureParams = {}
59
60   def genereShapeFissure(self, geometriesSaines, geomParams, shapeFissureParams):
61     shapesFissure = [None]
62     return shapesFissure
63
64   def setParamMaillageFissure(self):
65     self.maillageFissureParams = {}
66
67   def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, maillageFissureParams):
68     elementsDefaut = [None]
69     return elementsDefaut
70
71   def genereMaillageFissure(self, geometriesSaines, maillagesSains, shapesFissure,
72                             maillageFissureParams, elementsDefaut, step):
73     maillageFissure = None
74     return maillageFissure
75
76   def setReferencesMaillageFissure(self):
77     referencesMaillageFissure = {}
78     return referencesMaillageFissure
79
80 # ---------------------------------------------------------------------------
81
82   def executeProbleme(self, step=-1):
83     logging.info(" --- executeProbleme %s", self.nomCas)
84     if step == 0:
85       return
86
87     self.setParamGeometrieSaine()
88     geometriesSaines = self.genereGeometrieSaine(self.geomParams)
89     if step == 1:
90       return
91
92     self.setParamMaillageSain()
93     maillagesSains = self.genereMaillageSain(geometriesSaines, self.meshParams)
94     if step == 2:
95       return
96
97     self.setParamShapeFissure()
98     shapesFissure = self.genereShapeFissure(geometriesSaines, self.geomParams, self.shapeFissureParams)
99     if step == 3:
100       return
101
102     self.setParamMaillageFissure()
103     elementsDefaut = self.genereZoneDefaut(geometriesSaines, maillagesSains, shapesFissure, self.shapeFissureParams, self.maillageFissureParams)
104     if step == 4:
105       return
106
107     maillageFissure = self.genereMaillageFissure(geometriesSaines, maillagesSains,
108                                                  shapesFissure, self.shapeFissureParams,
109                                                  self.maillageFissureParams, elementsDefaut, step)
110
111     self.setReferencesMaillageFissure()
112     mesures = getStatsMaillageFissure(maillageFissure, self.referencesMaillageFissure, self.maillageFissureParams)
113
114
115
116
117
118