1# -*- coding: utf-8 -*-
2# TITRE TEST META_LEMA_ANI 3D UTILISANT SIMU_POINT_MAT similaire aux tests COMP001xxx
3
4
5# COPYRIGHT (C) 1991 - 2013  EDF R&D                WWW.CODE-ASTER.ORG
6#
7# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10# (AT YOUR OPTION) ANY LATER VERSION.
11#
12# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16#
17# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
18# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
19# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20
21
22
23DEBUT(CODE=_F(NIV_PUB_WEB='INTERNET',VISU_EFICAS='NON'),DEBUG=_F(SDVERI='NON'),
24IGNORE_ALARM='CALCULEL_28', IMPR_MACRO='OUI',
25)
26# SDVERI='NON' car la verification est trop couteuse en CPU
27
28import os
29#os.system("CXXFLAGS='-g' mfront --obuild meta_lema_ani.mfront --interface=aster --debug")
30os.system("mfront --obuild meta_lema_ani.mfront --interface=aster")
31os.system("mv src/libAsterBehaviour.so meta_lema_ani.so")
32
33
34# def des materiaux
35MATA = [None]*2
36MATF = [None]*2
37compor=[None]*2
38#unite en Pa
39C_Pa = 1.e+6
40RYOUNG=80000
41RNU=0.35
42# unites Pa
43#MATA[0]=DEFI_MATERIAU(ELAS_META=_F(E = 80000.*C_Pa,
44                               #NU = 0.35,
45                               #F_ALPHA = 0.,
46                               #C_ALPHA = 0.,
47                               #PHASE_REFE = 'FROID',
48                               #EPSF_EPSC_TREF = 0.,),
49                   #META_LEMA_ANI=_F(
50                            #F1_A=2.40*C_Pa,    F2_A=0.20*C_Pa,     C_A=9.40*C_Pa,
51                            #F1_M=0.0,    F2_M=0.80E-04, C_M=0.99E-04,
52                            #F1_N=4.40,    F2_N=3.0,     C_N=6.1,
53                            #F1_Q=19900., F2_Q=21000.,  C_Q=6200.,
54                            #F_MRR_RR=1.,                 C_MRR_RR=1.,
55                            #F_MTT_TT=1.,                 C_MTT_TT=1.,
56                            #F_MZZ_ZZ=1.,                 C_MZZ_ZZ=1.,
57                            #F_MRT_RT=0.75,               C_MRT_RT=0.75,
58                            #F_MRZ_RZ=0.75,               C_MRZ_RZ=0.75,
59                            #F_MTZ_TZ=0.75,               C_MTZ_TZ=0.75,),),
60
61## unites Pa
62#MATA[1]=DEFI_MATERIAU(ELAS_META=_F(E = 80000.,
63                               #NU = 0.35,
64                               #F_ALPHA = 0.,
65                               #C_ALPHA = 0.,
66                               #PHASE_REFE = 'FROID',
67                               #EPSF_EPSC_TREF = 0.,),
68                   #META_LEMA_ANI=_F(
69                            #F1_A=2.40,    F2_A=0.20,     C_A=9.40,
70                            #F1_M=0.0,    F2_M=0.80E-04, C_M=0.99E-04,
71                            #F1_N=4.40,    F2_N=3.0,     C_N=6.1,
72                            #F1_Q=19900., F2_Q=21000.,  C_Q=6200.,
73                            #F_MRR_RR=1.,                 C_MRR_RR=1.,
74                            #F_MTT_TT=1.,                 C_MTT_TT=1.,
75                            #F_MZZ_ZZ=1.,                 C_MZZ_ZZ=1.,
76                            #F_MRT_RT=0.75,               C_MRT_RT=0.75,
77                            #F_MRZ_RZ=0.75,               C_MRZ_RZ=0.75,
78                            #F_MTZ_TZ=0.75,               C_MTZ_TZ=0.75,),),
79#compor[0]='META_LEMA_ANI'
80
81C_Pa=1.e6
82MATF[0]=DEFI_MATERIAU(
83                  ELAS=_F( E=80000.*C_Pa, NU=0.35, ALPHA=0.),
84
85                  UMAT=_F( NB_VALE=26,
86                           C1  =80000.*C_Pa,
87                           C2  =0.35,
88                           C3  =2.40*C_Pa,       ## F1_A=2.40,
89                           C4  =0.20*C_Pa,       ## F2_A=0.20,
90                           C5  =9.40*C_Pa,       ## C_A=9.40,
91                           C6  =0.0,        ## F1_M=0.0,
92                           C7  =0.80E-04,   ## F2_M=0.80E-04,
93                           C8  =0.99E-04,   ## C_M=0.99E-04,
94                           C9  =4.40,       ## F1_N=4.40,
95                           C10 =3.0,        ## F2_N=3.0,
96                           C11 =6.1,        ## C_N=6.1,
97                           C12 =19900.,     ## F1_Q=19900.,
98                           C13 =21000.,     ## F2_Q=21000.,
99                           C14 =6200.,      ## C_Q=6200.,
100                           C15 =1.,         ## F_MRR_RR
101                           C16 =1.,         ## F_MTT_TT
102                           C17 =1.,         ## F_MZZ_ZZ
103                           C18 =0.75,       ## F_MRT_RT
104                           C19 =0.75,       ## F_MTZ_TZ
105                           C20 =0.75,       ## F_MRZ_RZ
106                           C21 =1.,         ## C_MRR_RR
107                           C22 =1.,         ## C_MTT_TT
108                           C23 =1.,         ## C_MZZ_ZZ
109                           C24 =0.75,       ## C_MRT_RT
110                           C25 =0.75,       ## C_MRZ_RZ
111                           C26 =0.75,       ## C_MTZ_TZ
112                            ),)
113
114
115MATF[1]=DEFI_MATERIAU(
116                  ELAS=_F( E=80000., NU=0.35, ALPHA=0.),
117
118                  UMAT=_F( NB_VALE=26,
119                           C1  =80000.,
120                           C2  =0.35,
121                           C3  =2.40,       ## F1_A=2.40,
122                           C4  =0.20,       ## F2_A=0.20,
123                           C5  =9.40,       ## C_A=9.40,
124                           C6  =0.0,        ## F1_M=0.0,
125                           C7  =0.80E-04,   ## F2_M=0.80E-04,
126                           C8  =0.99E-04,   ## C_M=0.99E-04,
127                           C9  =4.40,       ## F1_N=4.40,
128                           C10 =3.0,        ## F2_N=3.0,
129                           C11 =6.1,        ## C_N=6.1,
130                           C12 =19900.,     ## F1_Q=19900.,
131                           C13 =21000.,     ## F2_Q=21000.,
132                           C14 =6200.,      ## C_Q=6200.,
133                           C15 =1.,         ## F_MRR_RR
134                           C16 =1.,         ## F_MTT_TT
135                           C17 =1.,         ## F_MZZ_ZZ
136                           C18 =0.75,       ## F_MRT_RT
137                           C19 =0.75,       ## F_MTZ_TZ
138                           C20 =0.75,       ## F_MRZ_RZ
139                           C21 =1.,         ## C_MRR_RR
140                           C22 =1.,         ## C_MTT_TT
141                           C23 =1.,         ## C_MZZ_ZZ
142                           C24 =0.75,       ## C_MRT_RT
143                           C25 =0.75,       ## C_MRZ_RZ
144                           C26 =0.75,       ## C_MTZ_TZ
145                            ),)
146
147compor[1]='MFRONT'
148
149##################################################################################
150#Discretisation du calcul. nbequi = nombre de calculs "equivalents" : Pa, Rot
151Ncal = 4
152N_pas = 2*[5] + [5, 10]
153nbequi=2
154# les differents calculs effectues
155label_cal=['_Pa_','_rot_'] + 2* ['_N']
156#pointeur materiau
157P_imat = [0] + [1] + (Ncal-2)*[1]
158
159#parametres vitesse de sollicitation
160vitesse = 1.e-2
161t_0 = 5.e-2/(8.0*vitesse)
162# calibrage des deformations maximum dans l'extension 93
163calibrage = 5.0e-1;
164
165# liste d'archivage
166temps_ar=DEFI_LIST_REEL( VALE =[t_0*i for i in range(9)],)
167
168# angles utilises pour la rotation : non permise pour META_LEMA_ANI en attendant que m soit en repere cartesien
169angle2=30.
170angle0=0.
171angles=[angle0,angle2] + (Ncal-2)*[angle0]
172
173## les precisions sur chaque TEST_RESU
174prec_ecart=[[1.E-10, 1.E-10, 0.02,     1.E-10],
175            [1.E-10, 1.E-10, 0.02,   1.E-10],
176            [1.E-10, 1.E-10, 1.E-10,  1.E-10]]
177vale_calc=[
178  [0.0E+00,             0.0E+00,             0.0190015638553,     0.0E+00],
179  [0.00    ,            0.0,                 0.0112942150369,     0.0E+00],
180  [0.0E+00,             0.0E+00,             0.0E+00,             0.0E+00],
181    ]
182
183
184prec_tgt=2.e-2
185prec_zero=[1.E-10, 0.01, 0.01]
186
187
188# coefficients pour ch_param2 pour calculer l'erreur sur le cas "Pa"
189coef_para=[1.,C_Pa,C_Pa]
190CALIB_E=RYOUNG
191CALIB_NU=RNU
192
193# utilitaires divers : calcul de l'erreur, renommage
194INCLUDE(UNITE=91)
195
196# definition de la temperature imposee et des phase metallurgiques
197
198TEMP=DEFI_CONSTANTE(VALE=700.)
199
200phase1=DEFI_CONSTANTE(VALE=1)
201
202phase0=DEFI_CONSTANTE(VALE=0)
203
204# definition du chargement 3D
205
206INCLUDE(UNITE=93)
207
208tempsar=DEFI_LIST_REEL( VALE =[t_0*i for i in range(9)],)
209
210
211
212###################################################################################
213#  TEST 3D MFRONT
214##################################################################################
215
216# les quantites extraites du calcul
217ch_param=['V7','VMIS','TRACE','SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ']
218ch_param2=['V7','VMIS','TRACE']
219# resultats
220RESM=[None]*Ncal
221R_SI=[None]*len(ch_param)
222
223#Boucle sur l'ensemble des calculs
224for i in range(Ncal):
225        N = N_pas[i]
226        imat = P_imat[i]
227        temps=DEFI_LIST_REEL(DEBUT=0.0,
228                     INTERVALLE=(_F(JUSQU_A=t_0,NOMBRE=N,),
229                                 _F(JUSQU_A=2.0*t_0,NOMBRE=N,),
230                                 _F(JUSQU_A=3.0*t_0,NOMBRE=N,),
231                                 _F(JUSQU_A=4.0*t_0,NOMBRE=N,),
232                                 _F(JUSQU_A=5.0*t_0,NOMBRE=N,),
233                                 _F(JUSQU_A=6.0*t_0,NOMBRE=N,),
234                                 _F(JUSQU_A=7.0*t_0,NOMBRE=N,),
235                                 _F(JUSQU_A=8.0*t_0,NOMBRE=N,),),);
236
237#       Resout le pb a deformation imposee
238        RESM[i]=SIMU_POINT_MAT(
239
240                COMPORTEMENT=_F(RELATION='MFRONT',
241                        LIBRAIRIE='meta_lema_ani.so',
242                        NOM_ROUTINE='astermetalemani',
243                        NB_VARI=14,
244                        ),
245
246                   ANGLE=angles[i],
247                   #SUPPORT='ELEMENT',
248                   AFFE_VARC=(
249                          _F(V1=phase1,V2=phase0,V3=phase0,V4=phase0,NOM_VARC='M_ZIRC',),
250                          _F(VALE_FONC=TEMP,
251                              VALE_REF=700.,
252                              NOM_VARC='TEMP',),),
253                   NEWTON=_F(MATRICE='TANGENTE',
254                             REAC_ITER=1,),
255                   CONVERGENCE=_F(ITER_GLOB_MAXI=50,),
256                   MATER      = MATF[imat],
257                   INCREMENT=_F(LIST_INST=temps),
258                   ARCHIVAGE = _F(LIST_INST = tempsar),
259                   EPSI_IMPOSE=_F(EPXX=eps_def[0], EPYY=eps_def[1], EPZZ=eps_def[2],
260                                  EPXY=eps_def[3], EPXZ=eps_def[4], EPYZ=eps_def[5]),
261                        );
262        DETRUIRE(CONCEPT=_F(NOM=temps))
263        #IMPR_TABLE(TABLE=RESF[i])
264#       DETRUIRE(CONCEPT=_F(NOM=DEFLIST))
265# On renomme les composantes en fonction de  l'ordre de discretisation
266        R_SI=RENOMME(i,N_pas,label_cal,ch_param,RESM,R_SI)
267
268# TEST_RESU sur les erreurs relatives
269TEST_ECART(ch_param2,label_cal,N_pas,Ncal,nbequi,R_SI,prec_ecart,vale_calc,prec_zero,coef_para)
270
271###############################################################################
272# impressions
273for i in range(len(ch_param)):
274       IMPR_TABLE(TABLE=R_SI[i])
275       DETRUIRE(CONCEPT=_F(NOM=R_SI[i]))
276
277
278
279
280
281
282FIN();
283#
284