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.
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_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 *
29 class sd_mode_cycl(AsBase):
30 #--------------------------
32 CYCL_TYPE = AsVK8(lonmax=1, )
34 CYCL_NBSC = AsVI(lonmax=1, )
36 CYCL_REFE = AsVK24(lonmax=3, )
37 CYCL_DESC = AsVI(lonmax=4, )
39 CYCL_NUIN = AsVI(lonmax=3, )
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)
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
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
66 def check_NBSC(self,checker) :
67 nbsc=self.CYCL_NBSC.get()
68 assert nbsc[0] > 0 , nbsc
71 def check_TYPE(self,checker) :
72 type=self.CYCL_TYPE.get_stripped()
73 assert type[0] in ('MNEAL', 'CRAIGB', 'CB_HARMO', 'AUCUN') ,type
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)
81 def check_DIAM(self,checker) :
82 diam=self.CYCL_DIAM.get()
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])
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