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