]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA10/SD/sd_mode_cycl.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA10 / SD / sd_mode_cycl.py
1 #@ MODIF sd_mode_cycl 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_maillage import sd_maillage
23 from SD.sd_interf_dyna_clas import sd_interf_dyna_clas
24 #from SD.sd_base_modale import sd_base_modale
25 from SD.sd_mode_meca import sd_mode_meca
26 from SD.sd_util import *
27
28
29 class sd_mode_cycl(AsBase):
30 #--------------------------
31     nomj = SDNom(fin=8)
32     CYCL_TYPE = AsVK8(lonmax=1, )
33     CYCL_CMODE = AsVC()
34     CYCL_NBSC = AsVI(lonmax=1, )
35     CYCL_DIAM = AsVI()
36     CYCL_REFE = AsVK24(lonmax=3, )
37     CYCL_DESC = AsVI(lonmax=4, )
38     CYCL_FREQ = AsVR()
39     CYCL_NUIN = AsVI(lonmax=3, )
40
41
42     def u_dime(self) :
43         desc=self.CYCL_DESC.get()
44         nb_mod  = desc[0] ; assert nb_mod   >  0
45         nb_ddl  = desc[1] ; assert nb_ddl   >  0
46         nb_ddli = desc[2] ; assert nb_ddli  >= 0
47         nb_freq = desc[3] ; assert nb_freq  >  0
48         nb_diam=self.CYCL_DIAM.lonmax / 2  ; assert nb_diam > 0
49         assert self.CYCL_DIAM.lonmax == 2*nb_diam
50         return (nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam)
51
52     def check_REFE(self,checker) :
53         refe=self.CYCL_REFE.get_stripped()
54         sd2=sd_maillage(refe[0]); sd2.check
55         sd2=sd_interf_dyna_clas(refe[1]); sd2.check
56 #        sd2=sd_base_modale(refe[2]); sd2.check
57         sd2=sd_mode_meca(refe[2]); sd2.check
58
59     def check_NUIN(self,checker) :
60         nuin=self.CYCL_NUIN.get()
61         assert nuin[0] >  0 , nuin
62         assert nuin[1] >  0 , nuin
63         assert nuin[2] >= 0 , nuin
64
65
66     def check_NBSC(self,checker) :
67         nbsc=self.CYCL_NBSC.get()
68         assert nbsc[0] > 0 , nbsc
69
70
71     def check_TYPE(self,checker) :
72         type=self.CYCL_TYPE.get_stripped()
73         assert type[0] in ('MNEAL', 'CRAIGB', 'CB_HARMO', 'AUCUN') ,type
74
75
76     def check_CMODE(self,checker) :
77         nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime()
78         assert self.CYCL_CMODE.lonmax== nb_diam*nb_freq*(nb_mod+nb_ddl+nb_ddli)
79
80
81     def check_DIAM(self,checker) :
82         diam=self.CYCL_DIAM.get()
83         nb_diam=len(diam)/2
84         for x in diam[:nb_diam] : assert x >= 0 , diam
85         for x in diam[nb_diam:] : assert x >  0 , diam
86         sdu_tous_differents(self.CYCL_DIAM,checker,diam[:nb_diam])
87
88
89     def check_FREQ(self,checker) :
90         nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime()
91         freq=self.CYCL_FREQ.get()
92         assert len(freq) == nb_diam*nb_freq ,(self.CYCL_DESC.get(),len(freq))
93         for x in freq : assert x >= 0 , freq
94
95