]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_spectre.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_spectre.py
1 #@ MODIF sd_spectre SD  DATE 19/06/2007   AUTEUR PELLET J.PELLET 
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_titre import sd_titre
23 from SD.sd_modele import sd_modele
24 from SD.sd_cara_elem import sd_cara_elem
25 from SD.sd_fonction import sd_fonction
26
27
28 types_possibles=[  # liste des divers types de spectres :
29         'SPEC_LONG_COR_1',
30         'SPEC_LONG_COR_2',
31         'SPEC_LONG_COR_3',
32         'SPEC_LONG_COR_4',
33         'SPEC_CORR_CONV_1',
34         'SPEC_CORR_CONV_2',
35         'SPEC_FONC_FORME',
36         'SPEC_EXCI_POINT',]
37
38 class sd_spectre(sd_titre):
39 #------------------------------------
40     nomj = SDNom(fin=19)
41
42     VAIN = AsVI()
43     VATE = AsVK16()
44
45     VARE = Facultatif(AsVR())
46     VAVF = Facultatif(AsVK8(lonmax=1))
47     NNOE = Facultatif(AsVK8())
48
49
50     def u_type(self) :
51         vate=self.VATE.get()
52         type=vate[0].strip()
53         assert type  in  types_possibles
54         return type
55
56
57     def u_nbno(self) :
58         vain=self.VAIN.get()
59         intesp =vain[1]
60         nbno   =vain[2]
61         return (intesp,nbno)
62
63
64     def check_VAIN(self,checker):
65     #-------------------------------
66         vain=self.VAIN.get()
67         itype=vain[0]
68         assert itype in (1,2,3,4,11,21) , vain
69
70         type = self.u_type()
71         if itype==1 : assert type in ('SPEC_LONG_COR_1', 'SPEC_CORR_CONV_1')  ,vain
72         if itype==2 : assert type in ('SPEC_LONG_COR_2', 'SPEC_CORR_CONV_2')  ,vain
73         if itype==3 : assert type in ('SPEC_LONG_COR_3',)   ,vain
74         if itype==4 : assert type in ('SPEC_LONG_COR_4',)   ,vain
75         if itype==11 : assert type in ('SPEC_FONC_FORME',)  ,vain
76         if itype==21 : assert type in ('SPEC_EXCI_POINT',)  ,vain
77
78         if type in ('SPEC_EXCI_POINT','SPEC_FONC_FORME') :
79             assert len(vain)==3, vain
80             assert vain[1] in (0,1) ,vain
81             assert vain[2] >=0 ,vain
82         else :
83             assert len(vain)==1, vain
84
85
86
87     def check_VARE(self,checker):
88     #-------------------------------
89         vare=self.VARE.get()
90         type = self.u_type()
91
92         if type == 'SPEC_FONC_FORME' :
93             assert not vare
94             return
95
96         elif type == 'SPEC_EXCI_POINT' :
97             intesp, nbno= self.u_nbno()
98             if intesp==0 :
99                 assert len(vare)==nbno, vare
100             else :
101                 assert len(vare)==1, vare
102
103         else :
104             assert len(vare)==12, vare
105
106
107
108     def check_VATE(self,checker):
109     #-------------------------------
110         vate=self.VATE.get_stripped()
111         type = self.u_type()
112
113         if type == 'SPEC_EXCI_POINT' :
114         #---------------------------------
115             intesp, nbno= self.u_nbno()
116             if intesp==0 :
117                 assert len(vate)==4+nbno, vate
118             else :
119                 assert len(vate)==5, vate
120             sd2=sd_cara_elem(vate[1]) ; sd2.check()
121             sd2=sd_modele(vate[2]) ; sd2.check()
122             if vate[3]=='GRAPPE_2' :
123                 assert vate[4] in ('ASC_CEN','ASC_EXC','DES_CEN','DES_EXC')
124             else :
125                 for x in vate[4:] :
126                     assert x in ('FORCE','MOMENT')
127
128         elif type == 'SPEC_FONC_FORME' :
129         #---------------------------------
130             intesp, nbno= self.u_nbno()
131             if intesp==0 :
132                 nbfonc=len(vate)-4
133                 assert nbfonc>0, vate
134             else :
135                 assert len(vate)==5, vate
136             sd2=sd_cara_elem(vate[1]) ; sd2.check()
137             sd2=sd_modele(vate[2]) ; sd2.check()
138             if vate[3]=='GRAPPE_1' :
139                 assert vate[4] in ('DEBIT_180','DEBIT_300')
140             else :
141                 for x in vate[4:] :
142                     sd2=sd_fonction(x) ; sd2.check()
143
144         elif type == 'SPEC_LONG_COR_1' :
145         #---------------------------------
146             sd2=sd_fonction(vate[2]) ; sd2.check()
147             assert vate[3] == 'VISC_CINE'
148
149         elif type == 'SPEC_LONG_COR_2' :
150         #---------------------------------
151             sd2=sd_fonction(vate[2]) ; sd2.check()
152             assert vate[5] == 'BETA'
153
154         elif type == 'SPEC_LONG_COR_3' :
155         #---------------------------------
156             sd2=sd_fonction(vate[2]) ; sd2.check()
157             assert vate[7] == 'BETA_2'
158
159         elif type == 'SPEC_LONG_COR_4' :
160         #---------------------------------
161             sd2=sd_fonction(vate[2]) ; sd2.check()
162             assert vate[5] == 'GAMMA'
163
164         elif type == 'SPEC_CORR_CONV_1' :
165         #---------------------------------
166             assert vate[9] == 'COEF_VITE_FLUI_O'
167             assert vate[10] in ('GENERALE', 'CORCOS', 'AU_YANG')
168
169         elif type == 'SPEC_CORR_CONV_2' :
170         #---------------------------------
171             sd2=sd_fonction(vate[1]) ; sd2.check()
172             assert vate[4] in ('GENERALE', 'CORCOS', 'AU_YANG')
173             assert vate[6] == 'COEF_VITE_FLUI_O'
174
175
176
177     def check_VAVF(self,checker):
178     #-------------------------------
179         vavf=self.VAVF.get_stripped()
180         type = self.u_type()
181
182         if type in ('SPEC_FONC_FORME', 'SPEC_EXCI_POINT') :
183             assert not vavf
184         else :
185             sd2=sd_fonction(vavf[0]) ; sd2.check()
186
187
188
189     def check_NNOE(self,checker):
190     #-------------------------------
191         nnoe=self.NNOE.get()
192         type = self.u_type()
193
194         if type in ('SPEC_FONC_FORME', 'SPEC_EXCI_POINT') :
195             intesp, nbno= self.u_nbno()
196             assert len(nnoe) == nbno
197         else :
198             assert not nnoe