1 #@ MODIF sd_modele_gene SD DATE 10/07/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_interf_dyna_clas import sd_interf_dyna_clas
23 from SD.sd_base_modale import sd_base_modale
24 from SD.sd_macr_elem_dyna import sd_macr_elem_dyna
25 from SD.sd_util import *
29 class sd_modele_gene(AsBase):
30 #-----------------------------
32 MODG_LIPR = AsVI(SDNom(nomj='.MODG.LIPR'), )
33 MODG_LIDF = AsColl(SDNom(nomj='.MODG.LIDF'), acces='NU', stockage='DISPERSE', modelong='CONSTANT', type='K', ltyp=8, )
34 MODG_SSTR = AsColl(SDNom(nomj='.MODG.SSTR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, )
35 MODG_SSOR = AsColl(SDNom(nomj='.MODG.SSOR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, )
36 MODG_SSNO = AsPn(SDNom(nomj='.MODG.SSNO'), ltyp=8, )
37 MODG_SSME = AsColl(SDNom(nomj='.MODG.SSME'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, )
38 MODG_DESC = AsVI(SDNom(nomj='.MODG.DESC'), lonmax=3, )
39 MODG_LIMA = AsColl(SDNom(nomj='.MODG.LIMA'), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='R', ltyp=8, )
43 def check_dimensions(self,checker) :
44 nb_struc=self.MODG_SSME.nmaxoc
45 nb_liaison=self.MODG_LIDF.nmaxoc
47 assert self.MODG_LIPR.lonmax == 9*nb_liaison
48 assert self.MODG_LIMA.nmaxoc == 3*nb_liaison
49 assert self.MODG_LIMA.nutioc == 3*nb_liaison
51 assert self.MODG_SSNO.nomuti == nb_struc
52 assert self.MODG_SSNO.nommax == nb_struc
53 assert self.MODG_SSOR.nmaxoc == nb_struc
54 assert self.MODG_SSOR.nutioc == nb_struc
55 assert self.MODG_SSTR.nmaxoc == nb_struc
56 assert self.MODG_SSTR.nutioc == nb_struc
59 def check_SSME(self,checker) :
60 nb_struc=self.MODG_SSME.nmaxoc
61 ssme=self.MODG_SSME.get()
62 for k in range(nb_struc) :
63 sd2=sd_macr_elem_dyna(ssme[k+1][0].strip()); sd2.check
66 def check_DESC(self,checker) :
67 desc=self.MODG_DESC.get()
68 nomgd=sdu_nom_gd(desc[2])
69 assert nomgd == 'DEPL_R', (nomgd, desc)
70 assert desc[0] > 2 and desc[0] < 15 , desc
71 assert desc[1] > 2*30 and desc[1] < 15*30 , desc
74 def check_SSOR(self,checker) :
75 nb_struc=self.MODG_SSME.nmaxoc
76 ssor=self.MODG_SSOR.get()
77 for k in range(nb_struc) :
78 assert len(ssor[k+1]) == 3 , ssor
81 def check_SSTR(self,checker) :
82 nb_struc=self.MODG_SSME.nmaxoc
83 sstr=self.MODG_SSTR.get()
84 for k in range(nb_struc) :
85 assert len(sstr[k+1]) == 3 , sstr
88 def check_LIDF(self,checker) :
89 lidf=self.MODG_LIDF.get()
90 nb_liaison=self.MODG_LIDF.nmaxoc
91 for k in range(nb_liaison) :
92 assert len(lidf[k+1]) == 5 , lidf
93 assert lidf[k+1][4].strip() in ('OUI', 'NON') , lidf
96 def check_LIPR_LIMA(self,checker) :
97 lipr=self.MODG_LIPR.get()
98 lima=self.MODG_LIMA.get()
99 nb_liaison=self.MODG_LIDF.nmaxoc
100 for k in range(nb_liaison) :
101 mat1_nlig=lipr[9*k+0] ; assert mat1_nlig > 0
102 mat1_ncol=lipr[9*k+1] ; assert mat1_ncol > 0
103 mat1_nume=lipr[9*k+2] ; assert mat1_nume == 3*k +1 , (mat1_nume, k)
104 assert len(lima[3*k+1]) == mat1_nlig*mat1_ncol
106 mat2_nlig=lipr[9*k+3] ; assert mat2_nlig > 0
107 mat2_ncol=lipr[9*k+4] ; assert mat2_ncol > 0
108 mat2_nume=lipr[9*k+5] ; assert mat2_nume == 3*k +2 , (mat2_nume, k)
109 assert len(lima[3*k+2]) == mat2_nlig*mat2_ncol
111 mat3_nlig=lipr[9*k+6] ; assert mat3_nlig > 0
112 mat3_ncol=lipr[9*k+7] ; assert mat3_ncol > 0
113 mat3_nume=lipr[9*k+8] ; assert mat3_nume == 3*k +3 , (mat3_nume, k)
114 assert len(lima[3*k+3]) == mat3_nlig*mat3_ncol