]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_mode_cycl.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_mode_cycl.py
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.
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_util import *
26
27
28 class sd_mode_cycl(AsBase):
29 #--------------------------
30     nomj = SDNom(fin=8)
31     CYCL_TYPE = AsVK8(lonmax=1, )
32     CYCL_CMODE = AsVC()
33     CYCL_NBSC = AsVI(lonmax=1, )
34     CYCL_DIAM = AsVI()
35     CYCL_REFE = AsVK24(lonmax=3, )
36     CYCL_DESC = AsVI(lonmax=4, )
37     CYCL_FREQ = AsVR()
38     CYCL_NUIN = AsVI(lonmax=3, )
39
40
41     def u_dime(self) :
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)
50
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
56
57
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
63
64
65     def check_NBSC(self,checker) :
66         nbsc=self.CYCL_NBSC.get()
67         assert nbsc[0] > 0 , nbsc
68
69
70     def check_TYPE(self,checker) :
71         type=self.CYCL_TYPE.get_stripped()
72         assert type[0] in ('MNEAL', 'CRAIGB', 'CB_HARMO', 'AUCUN') ,type
73
74
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)
78
79
80     def check_DIAM(self,checker) :
81         diam=self.CYCL_DIAM.get()
82         nb_diam=len(diam)/2
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])
86
87
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
93
94