]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA10/SD/sd_modele_gene.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA10 / SD / sd_modele_gene.py
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.
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_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 *
27
28
29
30 class sd_modele_gene(AsBase):
31 #-----------------------------
32     nomj = SDNom(fin=14)
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, )
41
42
43
44     def check_dimensions(self,checker) :
45         nb_struc=self.MODG_SSME.nmaxoc
46         nb_liaison=self.MODG_LIDF.nmaxoc
47
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
51
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
58
59
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
65
66
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
73
74
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
80
81
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
87
88
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
95
96
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
106
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
111
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
116