]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_char_contact.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_char_contact.py
1 #@ MODIF sd_char_contact SD  DATE 01/04/2008   AUTEUR ABBAS M.ABBAS 
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 from SD.sd_champ import sd_champ
23 from SD.sd_xfem import sd_modele_xfem, sd_contact_xfem
24
25 class sd_char_contact(AsBase):
26     nomj      =SDNom(fin=16)
27
28     FORMCO    = Facultatif(AsVI())
29
30     def exists(self):
31         # retourne True si la SD semble exister.
32         return self.FORMCO.exists
33
34
35     def formulation_xfem(self):
36         if not self.exists() : return False
37         iform = self.FORMCO.get()[0]
38         return iform == 3
39
40     def contact_xfem_actif(self):
41         if not self.formulation_xfem() : return False
42         return self.XNBASC.exists
43
44     BAMACO    = Facultatif(AsVI())
45     BANOCO    = Facultatif(AsVI())
46     CARACF    = Facultatif(AsVR())
47     COMAFO    = Facultatif(AsVR())
48     JEUSUR    = Facultatif(AsVR())
49     CONVCO    = Facultatif(AsVI())
50     DIRNOR    = Facultatif(AsVR())
51     DIRAPP    = Facultatif(AsVR())
52     ECPDON    = Facultatif(AsVI())
53     CARFRO    = Facultatif(AsVR())
54     FROTE     = Facultatif(AsVR())
55     JEUCON    = Facultatif(AsVR())
56     JEUCOQ    = Facultatif(AsVR())
57     JEUPOU    = Facultatif(AsVR())
58     JFO1CO    = Facultatif(AsVK8())
59     JFO2CO    = Facultatif(AsVK8())
60     JFO3CO    = Facultatif(AsVK8())
61     JSUPCO    = Facultatif(AsVR())
62     MAESCL    = Facultatif(AsVI())
63     MAILCO    = Facultatif(AsVI())
64     MAMACO    = Facultatif(AsVI())
65     MANOCO    = Facultatif(AsVI())
66     METHCO    = Facultatif(AsVI())
67     NDIMCO    = Facultatif(AsVI())
68     NOESCL    = Facultatif(AsVR())
69     NOEUCO    = Facultatif(AsVI())
70     NOEUQU    = Facultatif(AsVI())
71     NOMACO    = Facultatif(AsVI())
72     NORLIS    = Facultatif(AsVI())
73     NOZOCO    = Facultatif(AsVI())
74     PBAMACO   = Facultatif(AsVI())
75     PBANOCO   = Facultatif(AsVI())
76     PENAL     = Facultatif(AsVR())
77     PMAMACO   = Facultatif(AsVI())
78     PMANOCO   = Facultatif(AsVI())
79     PNOEUQU   = Facultatif(AsVI())
80     PNOMACO   = Facultatif(AsVI())
81     PRANOCO   = Facultatif(AsVI())
82     PSSNOCO   = Facultatif(AsVI())
83     PSANOFR   = Facultatif(AsVI())
84     PSUMACO   = Facultatif(AsVI())
85     PSUNOCO   = Facultatif(AsVI())
86     PZONECO   = Facultatif(AsVI())
87     RANOCO    = Facultatif(AsVI())
88     SANSNQ    = Facultatif(AsVI())
89     SSNOCO    = Facultatif(AsVI())
90     SANOFR    = Facultatif(AsVI())
91     SYMECO    = Facultatif(AsVI())
92     TABFIN    = Facultatif(AsVR())
93     TANDEF    = Facultatif(AsVR())
94     TANPOU    = Facultatif(AsVR())
95     TOLECO    = Facultatif(AsVR())
96     xfem      = Facultatif(AsVI())
97     XFIMAI    = Facultatif(AsVK8())
98     XNBASC    = Facultatif(AsVK24())
99     XNRELL    = Facultatif(AsVK24())
100     TANINI    = Facultatif(AsVR())
101     NORMCO    = Facultatif(AsVR())
102     TANGCO    = Facultatif(AsVR())  
103     EXCLFR    = Facultatif(AsVR())  
104     MODELX    = Facultatif(AsVK8(lonmax=1,))
105
106     # si contact xfem :
107     xfem      = Facultatif(sd_contact_xfem(SDNom(nomj='')))
108
109
110     # indirection vers les champs de .XNBASC :
111     # Question à Mickael :
112     #   la fonction suivante ne serait-elle pas mieux placée dans la classe sd_contact_xfem ?
113     def check_char_contact_xfem_XNBASC(self, checker):
114         if not self.contact_xfem_actif() : return
115         lnom  = self.XNBASC.get()
116         nbnom = self.XNBASC.lonuti
117         for k in range(nbnom) :
118             nom = lnom[k]
119             if not nom.strip(): continue
120             sd2 = sd_champ(nom)
121             sd2.check(checker)
122
123
124     # indirection vers les champs de .XNRELL :
125     # On ne vérifie rien pour l'instant
126     # Question à Mickael :
127     #   la fonction suivante ne serait-elle pas mieux placée dans la classe sd_contact_xfem ?
128     def check_char_contact_xfem_XNRELL(self, checker):
129         if not self.contact_xfem_actif() : return
130         lnom  = self.XNRELL.get()
131         nbnom = self.XNRELL.lonuti
132         for k in range(nbnom) :
133             nom = lnom[k]
134             oo  = AsObject(SDNom(nomj=nom,debut=0),genr='V', xous='S', type=Parmi('I','R'))
135             oo.check(checker)
136
137
138     # Verification MODELE xfem
139     def check_char_contact_xfem_MODELX(self, checker):
140         if not self.contact_xfem_actif() : return
141         nom = self.MODELX.get()[0]
142         sd2 = sd_modele_xfem(nom)
143         sd2.check(checker)
144
145