1 #@ MODIF sd_interf_dyna_clas 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.
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.
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 # ======================================================================
22 from SD.sd_maillage import sd_maillage
23 from SD.sd_nume_ddl import sd_nume_ddl
24 from SD.sd_util import *
27 class sd_interf_dyna_clas(AsBase):
28 #---------------------------------------
30 IDC_NOMS = AsObject(genr='N', xous='S', type='K', ltyp=8, )
31 IDC_DDAC = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', )
32 IDC_DY_FREQ = AsVR(lonmax=1, )
33 IDC_LINO = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', )
35 IDC_DESC = AsVI(lonmax=5, )
37 IDC_REFE = AsVK24(lonmax=3, )
40 def check_coherence_longueurs(self,checker):
41 noms=self.IDC_NOMS.get()
42 type=self.IDC_TYPE.get()
43 lino=self.IDC_LINO.get()
44 ddac=self.IDC_DDAC.get()
46 assert nb_intf > 0 , noms
47 assert len(type) == nb_intf, (nb_intf,type)
48 assert len(lino.keys()) == nb_intf, (nb_intf,lino)
49 assert len(ddac.keys()) == nb_intf, (nb_intf,ddac)
52 def check_REFE(self,checker):
53 refe=self.IDC_REFE.get()
54 sd2=sd_maillage(refe[0]) ; sd2.check(checker)
55 sd2=sd_nume_ddl(refe[1]) ; sd2.check(checker)
56 assert refe[2].strip() == '' , refe
59 def check_DESC(self,checker):
60 desc=self.IDC_DESC.get()
61 assert desc[0] == 1 , desc
62 assert desc[1] >2 and desc[1] <10 , desc
63 assert desc[2] >60 and desc[2] <300 , desc
64 assert desc[3] >0 and desc[3] <500 , desc
65 assert desc[4] >0 , desc
66 nomgd=sdu_nom_gd(desc[3]).strip()
67 assert nomgd == 'DEPL_R', (nomgd, desc)
70 def check_NOMS(self,checker):
71 # il n'y a rien à vérifier : un pointeur de noms contient
72 # toujours des noms "non blancs" et "tous différents"
76 def check_TYPE(self,checker):
77 type=self.IDC_TYPE.get()
79 assert t1.strip() in ('CRAIGB', 'MNEAL', 'CB_HARMO', 'AUCUN'), type
82 def check_LINO_DDAC(self,checker):
83 lino=self.IDC_LINO.get()
84 ddac=self.IDC_DDAC.get()
85 desc=self.IDC_DESC.get()
87 nb_intf=len(lino.keys())
89 for kintf in range(nb_intf) :
90 llino=lino.values()[kintf]
91 lddac=ddac.values()[kintf]
93 assert len(lddac)==nbno*nbec , (lino,ddac)
95 assert nuno > 0 , lino
98 def check_FREQ(self,checker):
99 freq=self.IDC_DY_FREQ.get()
100 assert freq[0] >=0 , freq
103 def check_DEFO(self,checker):
104 defo=self.IDC_DEFO.get()
105 desc=self.IDC_DESC.get()
107 nbnot=len(defo)/(nbec+2)
108 assert len(defo)==nbnot*(nbec+2), defo
109 for k in range(nbnot) :
110 assert defo[k] > 0 , defo
112 assert sdu_monotone(defo[nbnot:2*nbnot]) in (1,0) , (nbnot,nbec,defo)