]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_xfem.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_xfem.py
1 #@ MODIF sd_xfem SD  DATE 14/10/2008   AUTEUR GENIAUT S.GENIAUT 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
10 #
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 #
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
20
21 from SD import *
22
23 from SD.sd_cham_no   import sd_cham_no
24 from SD.sd_cham_elem import sd_cham_elem
25 from SD.sd_carte     import sd_carte
26 from SD.sd_util      import *
27
28
29
30 #-------------------------------
31 #       I. sd fiss_xfem
32 #-------------------------------
33
34 class sd_fiss_xfem(AsBase):
35     nomj = SDNom(fin=8)
36
37 # I.1) objets relatifs aux level sets
38
39     LNNO   = sd_cham_no()
40     LTNO   = sd_cham_no()
41     GRLNNO = sd_cham_no()
42     GRLTNO = sd_cham_no()
43     BASLOC = sd_cham_no()
44     FONDFISS        = Facultatif(AsVR())
45     BASEFOND        = Facultatif(AsVR())
46     FONDMULT        = Facultatif(AsVI())
47     CARAFOND        = AsVR(lonmax=12,)
48
49 # I.2) objets relatifs à l'enrichissement
50
51     GROUP_MA_ENRI   = AsVI()
52     GROUP_NO_ENRI   = AsVI()
53     STNO   = sd_cham_no()
54     STNOR  = sd_cham_no()
55
56     MAILFISS_CTIP  = Facultatif(AsVI(SDNom(nomj='.MAILFISS  .CTIP')))
57     MAILFISS_HEAV  = Facultatif(AsVI(SDNom(nomj='.MAILFISS  .HEAV')))
58     MAILFISS_HECT  = Facultatif(AsVI(SDNom(nomj='.MAILFISS  .HECT')))
59     MAILFISS_INDIC = AsVI(SDNom(nomj='.MAILFISS .INDIC'), lonmax=6, )
60     LISNOH         = Facultatif(AsVI())
61
62 # I.3) objets relatifs à la propagation
63
64     PRO_MES_EL  = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.MES_EL')))
65     PRO_NORMAL  = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.NORMAL')))
66
67 # I.4) objets relatifs au contact
68
69     BASCO  = Facultatif(sd_cham_no())
70     LISCO  = Facultatif(AsVR(SDNom(nomj='.LISCO')))
71     LISEQ  = Facultatif(AsVI(SDNom(nomj='.LISEQ')))
72     LISRL  = Facultatif(AsVI(SDNom(nomj='.LISRL')))
73
74
75 # 1.5) vérifications d'existence :
76
77     def check_existence(self,checker) :
78         sdu_ensemble((self.FONDFISS, self.FONDMULT))
79         sdu_ensemble((self.LISRL, self.LISCO))
80         sdu_ensemble((self.PRO_MES_EL.CELD, self.PRO_NORMAL.CELD))
81
82
83 #-------------------------------
84 #       II. sd modele
85 #-------------------------------
86
87 class sd_modele_xfem(AsBase):
88     nomj = SDNom(fin=8)
89
90 # II.1) objets relatifs aux sous-éléments
91
92     TOPOSE_PIN  = sd_cham_elem(SDNom(nomj='.TOPOSE.PIN'))
93     TOPOSE_CNS  = sd_cham_elem(SDNom(nomj='.TOPOSE.CNS'))
94     TOPOSE_HEA  = sd_cham_elem(SDNom(nomj='.TOPOSE.HEA'))
95     TOPOSE_LON  = sd_cham_elem(SDNom(nomj='.TOPOSE.LON'))
96     TOPOSE_CRI  = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CRI')))
97
98 # II.2) objets relatifs aux facettes de contact
99
100     TOPOFAC_PI  = sd_cham_elem(SDNom(nomj='.TOPOFAC.PI'))
101     TOPOFAC_AI  = sd_cham_elem(SDNom(nomj='.TOPOFAC.AI'))
102     TOPOFAC_CF  = sd_cham_elem(SDNom(nomj='.TOPOFAC.CF'))
103     TOPOFAC_LO  = sd_cham_elem(SDNom(nomj='.TOPOFAC.LO'))
104     TOPOFAC_BA  = sd_cham_elem(SDNom(nomj='.TOPOFAC.BA'))
105
106     TOPOFAC_GM  = sd_cham_elem(SDNom(nomj='.TOPOFAC.GM'))
107     TOPOFAC_GE  = sd_cham_elem(SDNom(nomj='.TOPOFAC.GE'))
108     TOPOFAC_OE  = sd_cham_elem(SDNom(nomj='.TOPOFAC.OE'))
109     TOPOFAC_OM  = sd_cham_elem(SDNom(nomj='.TOPOFAC.OM'))
110
111 # II.3) objets concaténés relatifs aux level sets
112
113     LNNO   = sd_cham_no()
114     LTNO   = sd_cham_no()
115     BASLOC = sd_cham_no()
116     STNO   = sd_cham_no()
117
118 # II.4) autres objets
119
120     XFEM_CONT   = AsVI(lonmax=1) # contact ou pas
121     FISS   = AsVK8()             # noms des fissures
122     NFIS   = AsVI(lonmax=1,)     # nombre de fissures
123     XMAFIS = sd_carte()          # pour chaque maille : nom de la fissure
124
125
126
127 #----------------------------------
128 #       III. sd charge de contact
129 #----------------------------------
130
131 class sd_contact_xfem(AsBase):
132 #-------------------------------
133     nomj = SDNom(fin=16)
134
135     CARACF  = AsVR()
136     ECPDON  = AsVI()
137     METHCO  = AsVI()
138
139     XFIMAI  = AsVK8()
140     XNRELL  = AsVK24()
141     XNBASC  = AsVK24()