]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_mater.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_mater.py
1 #@ MODIF sd_mater SD  DATE 06/05/2008   AUTEUR MARKOVIC D.MARKOVIC 
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_fonction import sd_fonction
24
25
26
27 class sd_mater_XDEP(AsBase):
28 #---------------------------
29     # on dirait une fonction, mais c'est plutot la concaténation de plusieurs fonctions
30     nomj = SDNom(fin=19)
31     PROL = AsVK24()
32     VALE = AsVR()
33
34
35 class sd_compor1(AsBase):
36 #-----------------------
37     nomj = SDNom(fin=19)
38     VALC = AsVC(SDNom(), )
39     VALK = AsVK8(SDNom(), )
40     VALR = AsVR(SDNom(), )
41
42
43     # parfois, THER_NL crée une sd_fonction pour BETA
44     def check_compor1_i_VALK(self, checker):
45         nom= self.nomj().strip()
46         if nom[8:16]=='.THER_NL' :
47             valk=list(self.VALK.get_stripped())
48             if valk :
49                 nbk2=self.VALK.lonuti
50                 nbr=self.VALR.lonuti
51                 nbc=self.VALC.lonuti
52                 nbk=nbk2-nbr-nbc
53                 k2=valk.index('BETA')
54                 k=k2-nbr-nbc
55                 nomfon=valk[nbr+nbc+nbk/2+k]
56                 sd2=sd_fonction(nomfon) ; sd2.check(checker)
57         if nom[8:16]=='.GLRC_DA' :
58             valk=list(self.VALK.get_stripped())
59             if valk :
60                 nbk2=self.VALK.lonuti
61                 nbr=self.VALR.lonuti
62                 nbc=self.VALC.lonuti
63                 nbk=nbk2-nbr-nbc
64                 for fon in ('FMEX1'  ,'FMEX2'  ,'FMEY1'  ,'FMEY2' , 
65                             'DFMEX1' ,'DFMEX2' ,'DFMEY1' ,'DFMEY2',
66                             'DDFMEX1','DDFMEX2','DDFMEY1','DDFMEY2'):
67                     k2=valk.index(fon)
68                     k=k2-nbr-nbc
69                     nomfon=valk[nbr+nbc+nbk/2+k]
70                     sd2=sd_fonction(nomfon) ; sd2.check(checker)
71
72
73 class sd_mater(AsBase):
74 #----------------------
75     nomj = SDNom(fin=8)
76     NOMRC = AsVK16(SDNom(nomj='.MATERIAU.NOMRC'), )
77     rdep = Facultatif(sd_mater_XDEP(SDNom(nomj='.&&RDEP')))  # à documenter
78     mzp  = Facultatif(sd_mater_XDEP(SDNom(nomj='.&&MZP' )))  # à documenter
79
80     # existence possible de la SD :
81     def exists(self):
82         return self.NOMRC.exists
83
84     # indirection vers les sd_compor1 de NOMRC :
85     def check_mater_i_NOMRC(self, checker):
86         lnom = self.NOMRC.get()
87         if not lnom: return
88         for nom in lnom:
89             if not nom.strip(): continue
90             nomc1=self.nomj()[:8]+'.'+nom
91             comp1 = sd_compor1(nomc1)
92
93             # parfois, comp1 est vide : ssls115g/DEFI_COQU_MULT
94             if comp1.VALK.get() : comp1.check(checker)
95