Salome HOME
PN bug
[tools/eficas.git] / Exemples / eficas / cas.py
1 # -*- coding: utf-8 -*-
2 # MODIF  DATE 16/01/2002   AUTEUR DURAND C.DURAND 
3 # TITRE TEST DE NON REGRESSION DE L IHM EFICAS - DERIVE DE SDND102A
4 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5 # ======================================================================
6 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7 #              SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
8 #              REDISTRIBUTION OF THIS FILE.
9 # ======================================================================
10 # Ce cas test est gere en configuration dans la base ASTER, il sert de
11 # modele pour prononcer la recette de l IHM d EFICAS : l objectif est de
12 # pouvoir recreer ce test a l identique dans EFICAS a partir d une page
13 # blanche.
14 # On a donc essaye d y placer toutes les commandes un peu particulieres
15 # du langage de commandes d ASTER
16 #
17 # Il s agit en fait du test SDND102A auquel on a ajoute :
18 #      la definition d un parametre (VAL)
19 #      l inclusion d un fichier (INCLUDE)
20 #      une poursuite (POURSUITE)
21 # Il contient ainsi :
22 # des parametres, des formules, des macros, des mots cles facteurs repetes
23 # (y compris conditionnes par des regles : calc_fonction / COMB),
24 # des blocs  (mode_iter_simult,calc_char_seisme), un defi_valeur, un parametre.
25 #
26 #
27 # Il faudra y associer quelques recommandations pour la recette :
28 # - verifier qu en ouvrant le .com0, il demande bien a browser le .comm puis, en cascade, le .11
29 # - verifier qu on peut bien supprimer une commande, un mot cle simple et facteur
30 # - verifier les acces a la doc
31 #
32
33 DEBUT(CODE=_F( NOM = 'EFICA01A'),
34     #  PAR_LOT='NON'
35          )
36
37 MAILLAGE=LIRE_MAILLAGE( )
38
39 MAILLA2=LIRE_MAILLAGE(  UNITE=19 )
40
41 MODELE=AFFE_MODELE(  MAILLAGE=MAILLAGE,
42                      AFFE=(
43               _F(  PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
44                    GROUP_MA = 'RESSORT'),
45               _F(  PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
46                    GROUP_NO = 'MASSES')    )
47                     )
48
49 BICHOC=AFFE_MODELE(  MAILLAGE=MAILLA2,
50                      AFFE=(
51               _F(  PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
52                    GROUP_MA = 'RESSORTS'),
53               _F(  PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
54                    GROUP_NO = ( 'MASSES1', 'MASSES2',)))
55                     )
56
57 VAL = 98696.0
58
59 CARA_ELE=AFFE_CARA_ELEM(  MODELE=MODELE,
60                           DISCRET=(
61            _F(  CARA = 'K_T_D_L',  REPERE = 'GLOBAL', GROUP_MA = 'RESSORT',
62                 VALE = (VAL, 0., 0., )),
63            _F(  CARA = 'M_T_D_N',  GROUP_NO = 'MASSES', VALE = 25.0))
64                          )
65
66 CARA_BIC=AFFE_CARA_ELEM(  MODELE=BICHOC,
67                           DISCRET=(
68            _F(  CARA = 'K_T_D_L',  REPERE = 'GLOBAL', GROUP_MA = 'RESSORTS',
69                 VALE = (VAL, 0., 0., )),
70            _F(  CARA = 'M_T_D_N',  GROUP_NO = 'MASSES1', VALE = 25.0),
71            _F(  CARA = 'M_T_D_N',  GROUP_NO = 'MASSES2', VALE = 25.0))
72                          )
73
74
75 CON_LIM=AFFE_CHAR_MECA(  MODELE=MODELE,DDL_IMPO=(
76               _F(  GROUP_NO = 'ENCASTRE',  DX = 0.,  DY = 0.,  DZ = 0.),
77               _F(  GROUP_NO = 'MASSES',              DY = 0.,  DZ = 0.))
78                        )
79
80 CL_BICHO=AFFE_CHAR_MECA(  MODELE=BICHOC,DDL_IMPO=(
81               _F(  GROUP_NO = 'ENCBICHO',     DX = 0.,  DY = 0.,  DZ = 0.),
82               _F(  GROUP_NO = ( 'MASSES1', 'MASSES2',), DY = 0.,  DZ = 0.))
83                        )
84
85 MACRO_MATR_ASSE(  MODELE=MODELE,
86                   CHARGE=CON_LIM,
87                   CARA_ELEM=CARA_ELE,
88                   NUME_DDL=CO("NUMEDDL"),
89                   MATR_ASSE=(
90                  _F(  MATRICE = CO("RIGIDITE"),  OPTION = 'RIGI_MECA'),
91                  _F(  MATRICE = CO("MASSE"),     OPTION = 'MASS_MECA'))
92                )
93
94 MACRO_MATR_ASSE(  MODELE=BICHOC,
95                   CHARGE=CL_BICHO,
96                   CARA_ELEM=CARA_BIC,
97                   NUME_DDL=CO("NUMDDLC"),
98                   MATR_ASSE=(
99                  _F(  MATRICE = CO("RIGI_BIC"),  OPTION = 'RIGI_MECA'),
100                  _F(  MATRICE = CO("MASS_BIC"),  OPTION = 'MASS_MECA'))
101                )
102
103 MODE_MEC=MODE_ITER_SIMULT(  MATR_A=RIGIDITE,   MATR_B=MASSE )
104
105 MODE_MEC=NORM_MODE(reuse=MODE_MEC,  MODE=MODE_MEC,   NORME='MASS_GENE' )
106
107 MODE_BIC=MODE_ITER_SIMULT(  MATR_A=RIGI_BIC,   MATR_B=MASS_BIC,
108                   METHODE='JACOBI',
109                   OPTION='SANS',
110                   CALC_FREQ=_F(  OPTION = 'BANDE',  FREQ = (1., 10., ))
111                             )
112
113 MODE_BIC=NORM_MODE(reuse=MODE_BIC,  MODE=MODE_BIC,   NORME='MASS_GENE' )
114
115 MODE_STA=MODE_STATIQUE(  MATR_RIGI=RIGIDITE,   MATR_MASS=MASSE,
116                           MODE_STAT=_F(  TOUT = 'OUI', AVEC_CMP = 'DX') )
117
118 MSTA_BIC=MODE_STATIQUE(  MATR_RIGI=RIGI_BIC,   MATR_MASS=MASS_BIC,
119                           MODE_STAT=_F(  TOUT = 'OUI', AVEC_CMP = 'DX') )
120
121
122 L_INST=DEFI_LIST_REEL(  DEBUT=0.,
123                            INTERVALLE=_F(  JUSQU_A = 1., PAS = 0.0001) )
124
125 OMEGAA=DEFI_VALEUR( R8=EVAL("""2.*PI*10.""") )
126
127 ACCE1 = FORMULE(REEL="""(REEL:INST) = SIN(OMEGAA*INST) """)
128 ACCELER1=CALC_FONC_INTERP( FONCTION=ACCE1, LIST_PARA=L_INST,
129                                PROL_DROITE='LINEAIRE',
130                               PROL_GAUCHE='LINEAIRE',
131                                NOM_RESU='ACCE'       )
132
133 ACCE2 = FORMULE(REEL="""(REEL:INST) =- SIN(OMEGAA*INST) """)
134 ACCELER2=CALC_FONC_INTERP( FONCTION=ACCE2, LIST_PARA=L_INST,
135                                PROL_DROITE='LINEAIRE',
136                               PROL_GAUCHE='LINEAIRE',
137                                NOM_RESU='ACCE'       )
138
139 VITE1 = FORMULE(REEL="""(REEL:INST) =-COS(OMEGAA*INST)/OMEGAA """)
140 VITESSE1=CALC_FONC_INTERP( FONCTION=VITE1, LIST_PARA=L_INST,
141                        PROL_DROITE='LINEAIRE',
142                       PROL_GAUCHE='LINEAIRE',
143                       NOM_RESU='VITE'       )
144
145 DEPL1 = FORMULE(REEL="""(REEL:INST) =-SIN(OMEGAA*INST)/(OMEGAA**2) """)
146 DEPLACE1=CALC_FONC_INTERP( FONCTION=DEPL1, LIST_PARA=L_INST,
147                        PROL_DROITE='LINEAIRE',
148                       PROL_GAUCHE='LINEAIRE',
149                       NOM_RESU='DEPL'       )
150
151 VITE2 = FORMULE(REEL="""(REEL:INST) =COS(OMEGAA*INST)/OMEGAA """)
152 VITESSE2=CALC_FONC_INTERP( FONCTION=VITE2, LIST_PARA=L_INST,
153                        PROL_DROITE='LINEAIRE',
154                       PROL_GAUCHE='LINEAIRE',
155                       NOM_RESU='VITE'       )
156
157 INCLUDE(   UNITE=11,   INFO=1 )
158
159 MUR=DEFI_OBSTACLE(   TYPE='PLAN_Z' )
160
161 TRAN_GE1=DYNA_TRAN_MODAL(  MASS_GENE=MASS_GEN,   RIGI_GENE=RIGI_GEN,
162                 METHODE='EULER',
163                 AMOR_REDUIT=0.07, 
164                 MODE_STAT=MODE_STA,
165                 EXCIT=_F(
166                        VECT_GENE = VECT_X,
167                        ACCE = ACCELER1,
168                        VITE = VITESSE1,
169                        DEPL = DEPLACE1,
170                        MULT_APPUI = 'OUI',
171                        DIRECTION = ( 1., 0., 0.,),
172                        NOEUD = 'NO1'),
173                 CHOC=_F(  GROUP_NO_1 = 'MASSES',
174                       OBSTACLE = MUR,
175                       INTITULE = 'NO2/MUR',
176                       ORIG_OBST = ( -1., 0., 0., ),
177                       NORM_OBST = (  0., 0., 1., ),
178                       JEU = 1.1005,
179                       RIGI_NOR = 5.76E7,
180                       AMOR_NOR = 0.,
181                       RIGI_TAN = 0.,
182                       COULOMB = 0.0),
183                 INCREMENT=_F( INST_INIT = 0.,  INST_FIN = 1.,  PAS = 0.0002),
184                 ARCHIVAGE=_F(  PAS_ARCH = 8)
185                           )
186
187
188 MULT_X1=CALC_CHAR_SEISME(  MATR_MASS=MASS_BIC,  DIRECTION=( 1., 0., 0.,),
189                            MODE_STAT=MSTA_BIC,  NOEUD='NO1' )
190
191 MULT_X2=CALC_CHAR_SEISME(  MATR_MASS=MASS_BIC,  DIRECTION=( 1., 0., 0.,),
192                            MODE_STAT=MSTA_BIC,  NOEUD='NO11' )
193
194 MACRO_PROJ_BASE(BASE=MODE_BIC,
195                 MATR_ASSE_GENE=(
196                 _F( MATRICE = CO("MGEN_BIC"), MATR_ASSE = MASS_BIC),
197                 _F( MATRICE = CO("RGEN_BIC"), MATR_ASSE = RIGI_BIC)),
198                 VECT_ASSE_GENE=(
199                 _F( VECTEUR = CO("VECT_X1"),  VECT_ASSE = MULT_X1),
200                 _F( VECTEUR = CO("VECT_X2"),  VECT_ASSE = MULT_X2))
201                )
202
203
204 GRILLE=DEFI_OBSTACLE(   TYPE='BI_PLAN_Z' )
205
206
207 FIN()