1 #@ MODIF sd_mode_cycl SD DATE 23/10/2007 AUTEUR BODEL C.BODEL
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_util import *
28 class sd_mode_cycl(AsBase):
29 #--------------------------
31 CYCL_TYPE = AsVK8(lonmax=1, )
33 CYCL_NBSC = AsVI(lonmax=1, )
35 CYCL_REFE = AsVK24(lonmax=3, )
36 CYCL_DESC = AsVI(lonmax=4, )
38 CYCL_NUIN = AsVI(lonmax=3, )
42 desc=self.CYCL_DESC.get()
43 nb_mod = desc[0] ; assert nb_mod > 0
44 nb_ddl = desc[1] ; assert nb_ddl > 0
45 nb_ddli = desc[2] ; assert nb_ddli >= 0
46 nb_freq = desc[3] ; assert nb_freq > 0
47 nb_diam=self.CYCL_DIAM.lonmax / 2 ; assert nb_diam > 0
48 assert self.CYCL_DIAM.lonmax == 2*nb_diam
49 return (nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam)
51 def check_REFE(self,checker) :
52 refe=self.CYCL_REFE.get_stripped()
53 sd2=sd_maillage(refe[0]); sd2.check
54 sd2=sd_interf_dyna_clas(refe[1]); sd2.check
55 sd2=sd_base_modale(refe[2]); sd2.check
58 def check_NUIN(self,checker) :
59 nuin=self.CYCL_NUIN.get()
60 assert nuin[0] > 0 , nuin
61 assert nuin[1] > 0 , nuin
62 assert nuin[2] >= 0 , nuin
65 def check_NBSC(self,checker) :
66 nbsc=self.CYCL_NBSC.get()
67 assert nbsc[0] > 0 , nbsc
70 def check_TYPE(self,checker) :
71 type=self.CYCL_TYPE.get_stripped()
72 assert type[0] in ('MNEAL', 'CRAIGB', 'CB_HARMO', 'AUCUN') ,type
75 def check_CMODE(self,checker) :
76 nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime()
77 assert self.CYCL_CMODE.lonmax== nb_diam*nb_freq*(nb_mod+nb_ddl+nb_ddli)
80 def check_DIAM(self,checker) :
81 diam=self.CYCL_DIAM.get()
83 for x in diam[:nb_diam] : assert x >= 0 , diam
84 for x in diam[nb_diam:] : assert x > 0 , diam
85 sdu_tous_differents(self.CYCL_DIAM,checker,diam[:nb_diam])
88 def check_FREQ(self,checker) :
89 nb_mod, nb_ddl, nb_ddli, nb_freq, nb_diam = self.u_dime()
90 freq=self.CYCL_FREQ.get()
91 assert len(freq) == nb_diam*nb_freq ,(self.CYCL_DESC.get(),len(freq))
92 for x in freq : assert x >= 0 , freq