]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_modele_gene.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_modele_gene.py
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.
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_macr_elem_dyna import sd_macr_elem_dyna
25 from SD.sd_util import *
26
27
28
29 class sd_modele_gene(AsBase):
30 #-----------------------------
31     nomj = SDNom(fin=14)
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, )
40
41
42
43     def check_dimensions(self,checker) :
44         nb_struc=self.MODG_SSME.nmaxoc
45         nb_liaison=self.MODG_LIDF.nmaxoc
46
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
50
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
57
58
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
64
65
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
72
73
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
79
80
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
86
87
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
94
95
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
105
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
110
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
115