OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s16forc3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| s16forc3 ../engine/source/elements/thickshell/solide16/s16forc3.F
25!||--- called by ------------------------------------------------------
26!|| forint ../engine/source/elements/forint.F
27!||--- calls -----------------------------------------------------
28!|| mmain ../engine/source/materials/mat_share/mmain.F90
29!|| s16bilan ../engine/source/elements/thickshell/solide16/s16bilan.F
30!|| s16deri3 ../engine/source/elements/thickshell/solide16/s16deri3.F
31!|| s16rst ../engine/source/elements/thickshell/solide16/s16rst.f
32!|| s16sigp3 ../engine/source/elements/thickshell/solide16/s16sigp3.F
33!|| s16sigs3 ../engine/source/elements/thickshell/solide16/s16sigs3.F
34!|| s20coor3 ../engine/source/elements/solid/solide20/s20coor3.F
35!|| s20cumu3 ../engine/source/elements/solid/solide20/s20cumu3.F
36!|| s20cumu3p ../engine/source/elements/solid/solide20/s20cumu3p.F
37!|| s20defo3 ../engine/source/elements/solid/solide20/s20defo3.F
38!|| s20fint3 ../engine/source/elements/solid/solide20/s20fint3.F
39!|| s20tempcg ../engine/source/elements/solid/solide20/s20tempcg.F
40!|| s20therm ../engine/source/elements/solid/solide20/s20therm.F
41!|| sdlensh2 ../engine/source/elements/thickshell/solidec/sdlensh2.f
42!|| smalla3 ../engine/source/elements/solid/solide/smalla3.F
43!|| smallb3 ../engine/source/elements/solid/solide/smallb3.F
44!|| srho3 ../engine/source/elements/solid/solide/srho3.F
45!|| srota3 ../engine/source/elements/solid/solide/srota3.F
46!|| sstra3 ../engine/source/elements/solid/solide/sstra3.F
47!|| sxfillopt ../engine/source/elements/solid/solide10/sxfillopt.F
48!|| tshgeodel3 ../engine/source/elements/thickshell/solidec/tshgeodel3.F
49!||--- uses -----------------------------------------------------
50!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
51!|| dt_mod ../engine/source/modules/dt_mod.F
52!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
53!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
54!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
55!|| mmain_mod ../engine/source/materials/mat_share/mmain.F90
56!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
57!|| output_mod ../common_source/modules/output/output_mod.F90
58!|| sensor_mod ../common_source/modules/sensor_mod.F90
59!|| table_mod ../engine/share/modules/table_mod.F
60!|| timer_mod ../engine/source/system/timer_mod.F90
61!||====================================================================
62 SUBROUTINE s16forc3(TIMERS, OUTPUT, ELBUF_TAB,NG ,
63 1 PM ,GEO ,IXS ,X ,
64 2 A ,V ,MS ,W ,FLUX ,
65 3 FLU1 ,VEUL ,FV ,ALE_CONNECT ,IPARG ,
66 4 TF ,NPF ,BUFMAT ,PARTSAV ,NLOC_DMG,
67 5 DT2T ,NELTST ,ITYPTST,STIFN ,FSKY ,
68 6 IADS ,OFFSET ,EANI ,IPARTS ,
69 7 IXS16 ,IADS16 ,NEL ,FX ,
70 8 FY ,FZ ,VOLNP ,SIGS ,RX ,
71 9 RY ,RZ ,SX ,SY ,SZ ,
72 A TX ,TY ,TZ ,STIG ,STIN ,
73 B UL ,XX ,YY ,ZZ ,VX ,
74 C VY ,VZ ,VDXX ,VDYY ,VDZZ ,
75 D DNIDR ,DNIDS ,DNIDT ,PX ,PY ,
76 E PZ ,ICP ,ICSIG ,
77 F IPM ,ISTRAIN ,TEMP ,FTHE ,FTHESKY ,
78 G IEXPAN ,GRESAV ,GRTH ,IGRTH ,TABLE ,
79 H IGEO ,VOLN ,CONDN ,CONDNSKY,ITASK ,
80 I IOUTPRT ,MAT_ELEM,H3D_STRAIN ,DT ,SNPC ,
81 J STF ,SBUFMAT,SVIS,NSVOIS,IDTMINS,IRESP,
82 . IDEL7NG, IDEL7NOK, IDTMIN, MAXFUNC,
83 . IMON_MAT ,USERL_AVAIL, GLOB_THERM, impl_s,
84 V idyna,SENSORS)
85C-----------------------------------------------
86C M o d u l e s
87C-----------------------------------------------
88 USE timer_mod
89 USE output_mod, only : output_
90 USE mmain_mod
91 USE table_mod
92 USE mat_elem_mod
95 USE dt_mod
96 USE elbufdef_mod
97 use glob_therm_mod
98 USE sensor_mod
99C-----------------------------------------------
100C I m p l i c i t T y p e s
101C-----------------------------------------------
102#include "implicit_f.inc"
103C-----------------------------------------------
104C G l o b a l P a r a m e t e r s
105C-----------------------------------------------
106#include "mvsiz_p.inc"
107C-----------------------------------------------
108C C o m m o n B l o c k s
109C-----------------------------------------------
110#include "com01_c.inc"
111#include "com04_c.inc"
112#include "com08_c.inc"
113#include "vect01_c.inc"
114#include "parit_c.inc"
115#include "param_c.inc"
116C-----------------------------------------------
117C l o c a l P a r a m e t e r s
118C-----------------------------------------------
119 INTEGER NIPMAX,NPE
120 parameter(nipmax=81)
121 parameter(npe=16)
122C-----------------------------------------------
123C D u m m y A r g u m e n t s
124C-----------------------------------------------
125 TYPE(timer_), INTENT(INOUT) :: TIMERS
126 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
127 INTEGER,INTENT(IN) :: SNPC
128 INTEGER,INTENT(IN) :: STF
129 INTEGER, INTENT(IN) :: SBUFMAT
130 INTEGER, INTENT(IN) :: IDTMINS
131 INTEGER, INTENt(IN) :: NSVOIS
132 INTEGER ,INTENT(IN) :: IRESP
133 INTEGER ,INTENT(IN) :: IDEL7NG
134 INTEGER ,INTENT(INOUT) :: IDEL7NOK
135 integer,dimension(102) :: IDTMIN
136 INTEGER ,INTENT(IN) :: MAXFUNC
137 INTEGER, INTENT(IN) :: IMPL_S
138 INTEGER, INTENT(IN) :: IDYNA
139 INTEGER, INTENT(IN) :: USERL_AVAIL
140 INTEGER, INTENT(IN) :: IMON_MAT
141 INTEGER IXS(NIXS,*), IPARG(NPARG,NGROUP),NPF(*),
142 . iparts(*),ixs16(8,*),iads16(8,*),ipm(*),grth(*),igrth(*),
143 . igeo(*),iads(8,*),itask,ioutprt
144 INTEGER NELTST,ITYPTST,OFFSET,NEL,ICP,ICSIG,ISTRAIN,IEXPAN,NG,H3D_STRAIN
145 my_real
146 . DT2T
147 my_real
148 . pm(npropm,*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*),
149 . flux(6,*),flu1(*), veul(*), fv(*), tf(*),
150 . bufmat(*),partsav(*),stifn(*), fsky(*),eani(*)
151 my_real
152 . fx(mvsiz,npe),fy(mvsiz,npe),fz(mvsiz,npe),
153 . volnp(mvsiz,nipmax),sigs(mvsiz,nipmax),
154 . rx(mvsiz,nipmax) , ry(mvsiz,nipmax) , rz(mvsiz,nipmax) ,
155 . sx(mvsiz,nipmax) , sy(mvsiz,nipmax) , sz(mvsiz,nipmax) ,
156 . tx(mvsiz,nipmax) , ty(mvsiz,nipmax) , tz(mvsiz,nipmax) ,
157 . stig(mvsiz,npe),stin(mvsiz,npe),ul(mvsiz,npe),
158 . xx(mvsiz,npe), yy(mvsiz,npe), zz(mvsiz,npe),
159 . vx(mvsiz,npe), vy(mvsiz,npe), vz(mvsiz,npe),
160 . vdxx(mvsiz,npe), vdyy(mvsiz,npe), vdzz(mvsiz,npe),
161 . dnidr(mvsiz,npe),dnids(mvsiz,npe),dnidt(mvsiz,npe),
162 . px(mvsiz,npe,nipmax),py(mvsiz,npe,nipmax),pz(mvsiz,npe,nipmax),
163 . temp(*), fthe(*), fthesky(*), gresav(*),voln(mvsiz),condn(*),
164 . condnsky(*)
165 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
166 TYPE (TTABLE) TABLE(*)
167 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
168 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
169 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
170 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
171 TYPE(DT_), INTENT(INOUT) :: DT
172 type (glob_therm_) ,intent(inout) :: glob_therm
173 type (sensors_),INTENT(INOUT) :: SENSORS
174C-----------------------------------------------
175C L o c a l V a r i a b l e s
176C-----------------------------------------------
177 INTEGER I,J,N,LCO, NF1, IFLAG, IL, IR, IS, IT, NF2,L_PLA,IMAT,
178 . IP,NLAY,NPTT,NPTS,NPTR,ICO,IBID,IBIDON(1),MX,II(6),PID,CURRENT_LAYER
179
180 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),IPERM1(NPE),IPERM2(NPE)
181 my_real
182 . VD2(MVSIZ) , DVOL(MVSIZ),DELTAX(MVSIZ),
183 . VIS(MVSIZ) , QVIS(MVSIZ), CXX(MVSIZ) ,
184 . S1(MVSIZ) , S2(MVSIZ) , S3(MVSIZ) ,
185 . S4(MVSIZ) , S5(MVSIZ) , S6(MVSIZ) ,
186 . DXX(MVSIZ) , DYY(MVSIZ) , DZZ(MVSIZ) ,
187 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
188 . vdx(mvsiz),vdy(mvsiz),vdz(mvsiz),ssp_eq(mvsiz),
189 . aire(mvsiz),conde(mvsiz),condeg(mvsiz,npe),divde(mvsiz)
190
191 ! Variables utilisees en argument par les materiaux.
192 my_real
193 . sti(mvsiz), wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
194 ! Variables utilisees en argument par les materiaux si SPH uniquement.
195 my_real
196 . muvoid(mvsiz)
197
198 ! Variables void MMAIN
199 my_real
200 . sigy(mvsiz),et(mvsiz),gama(mvsiz,6),
201 . r1_free(mvsiz),r3_free(mvsiz),r4_free(mvsiz),
202 . tempel(mvsiz),die(mvsiz),them(mvsiz,npe),area(mvsiz),llsh(mvsiz)
203 my_real, dimension(mvsiz) :: fheat
204
205 ! Variables utilisees dans les routines solides uniquement (en arguments).
206 INTEGER NC(MVSIZ,NPE),NN_DEL,IPRES,SZ_IX
207 my_real
208 . OFF(MVSIZ) , RHOO(MVSIZ),NI(NPE,NIPMAX),
209 . SIGSM(MVSIZ),VOLSM(MVSIZ),
210 . DXY(MVSIZ),DYX(MVSIZ),
211 . DYZ(MVSIZ),DZY(MVSIZ),VOLG(MVSIZ),
212 . DZX(MVSIZ),DXZ(MVSIZ), WI,BID(MVSIZ),AA,BB, MBID(1),AMU(MVSIZ)
213 my_real VARNL(NEL)
214 DOUBLE PRECISION
215 . VOLDP(MVSIZ,NIPMAX)
216C-----------------------------------------------
217 TYPE(l_bufel_) ,POINTER :: LBUF
218 TYPE(G_BUFEL_) ,POINTER :: GBUF
219C-----------------------------------------------
220 my_real
221 . w_gauss(9,9),a_gauss(9,9),w_lobatto(9,9),a_lobatto(9,9),
222 . w_newton(9,9),a_newton(9,9)
223C-----------------------------------------------
224 DATA w_gauss /
225 1 2. ,0. ,0. ,
226 1 0. ,0. ,0. ,
227 1 0. ,0. ,0. ,
228 2 1. ,1. ,0. ,
229 2 0. ,0. ,0. ,
230 2 0. ,0. ,0. ,
231 3 0.555555555555556,0.888888888888889,0.555555555555556,
232 3 0. ,0. ,0. ,
233 3 0. ,0. ,0. ,
234 4 0.347854845137454,0.652145154862546,0.652145154862546,
235 4 0.347854845137454,0. ,0. ,
236 4 0. ,0. ,0. ,
237 5 0.236926885056189,0.478628670499366,0.568888888888889,
238 5 0.478628670499366,0.236926885056189,0. ,
239 5 0. ,0. ,0. ,
240 6 0.171324492379170,0.360761573048139,0.467913934572691,
241 6 0.467913934572691,0.360761573048139,0.171324492379170,
242 6 0. ,0. ,0. ,
243 7 0.129484966168870,0.279705391489277,0.381830050505119,
244 7 0.417959183673469,0.381830050505119,0.279705391489277,
245 7 0.129484966168870,0. ,0. ,
246 8 0.101228536290376,0.222381034453374,0.313706645877887,
247 8 0.362683783378362,0.362683783378362,0.313706645877887,
248 8 0.222381034453374,0.101228536290376,0. ,
249 9 0.081274388361574,0.180648160694857,0.260610696402935,
250 9 0.312347077040003,0.330239355001260,0.312347077040003,
251 9 0.260610696402935,0.180648160694857,0.081274388361574/
252 DATA a_gauss /
253 1 0. ,0. ,0. ,
254 1 0. ,0. ,0. ,
255 1 0. ,0. ,0. ,
256 2 -.577350269189626,0.577350269189626,0. ,
257 2 0. ,0. ,0. ,
258 2 0. ,0. ,0. ,
259 3 -.774596669241483,0. ,0.774596669241483,
260 3 0. ,0. ,0. ,
261 3 0. ,0. ,0. ,
262 4 -.861136311594053,-.339981043584856,0.339981043584856,
263 4 0.861136311594053,0. ,0. ,
264 4 0. ,0. ,0. ,
265 5 -.906179845938664,-.538469310105683,0. ,
266 5 0.538469310105683,0.906179845938664,0. ,
267 5 0. ,0. ,0. ,
268 6 -.932469514203152,-.661209386466265,-.238619186083197,
269 6 0.238619186083197,0.661209386466265,0.932469514203152,
270 6 0. ,0. ,0. ,
271 7 -.949107912342759,-.741531185599394,-.405845151377397,
272 7 0. ,0.405845151377397,0.741531185599394,
273 7 0.949107912342759,0. ,0. ,
274 8 -.960289856497536,-.796666477413627,-.525532409916329,
275 8 -.183434642495650,0.183434642495650,0.525532409916329,
276 8 0.796666477413627,0.960289856497536,0. ,
277 9 -.968160239507626,-.836031107326636,-.613371432700590,
278 9 -.324253423403809,0. ,0.324253423403809,
279 9 0.613371432700590,0.836031107326636,0.968160239507626/
280C-----
281 DATA w_lobatto /
282 1 2. ,0. ,0. ,
283 1 0. ,0. ,0. ,
284 1 0. ,0. ,0. ,
285 2 1. ,1. ,0. ,
286 2 0. ,0. ,0. ,
287 2 0. ,0. ,0. ,
288 3 0.333333333333333,1.333333333333333,0.333333333333333,
289 3 0. ,0. ,0. ,
290 3 0. ,0. ,0. ,
291 4 0.166666666666667,0.833333333333333,0.833333333333333,
292 4 0.166666666666667,0. ,0. ,
293 4 0. ,0. ,0. ,
294 5 0.1 ,0.544444444444444,0.711111111111111,
295 5 0.544444444444444,0.1 ,0. ,
296 5 0. ,0. ,0. ,
297 6 0.066666666666667,0.37847496 ,0.55485838 ,
298 6 0.55485838 ,0.37847496 ,0.066666666666667,
299 6 0. ,0. ,0. ,
300 7 0.04761904 ,0.27682604 ,0.43174538 ,
301 7 0.48761904 ,0.43174538 ,0.27682604 ,
302 7 0.04761904 ,0. ,0. ,
303 8 0.03571428 ,0.21070422 ,0.34112270 ,
304 8 0.41245880 ,0.41245880 ,0.34112270 ,
305 8 0.21070422 ,0.03571428 ,0. ,
306 9 0.027777777777778,0.1654953616 ,0.2745387126 ,
307 9 0.3464285110 ,0.3715192744 ,0.3464285110 ,
308 9 0.2745387126 ,0.1654953616 ,0.027777777777778/
309 DATA a_lobatto /
310 1 0. ,0. ,0. ,
311 1 0. ,0. ,0. ,
312 1 0. ,0. ,0. ,
313 2 -1. ,1. ,0. ,
314 2 0. ,0. ,0. ,
315 2 0. ,0. ,0. ,
316 3 -1. ,0. ,1. ,
317 3 0. ,0. ,0. ,
318 3 0. ,0. ,0. ,
319 4 -1. ,-.44721360 ,0.44721360 ,
320 4 1. ,0. ,0. ,
321 4 0. ,0. ,0. ,
322 5 -1. ,-.65465367 ,0. ,
323 5 0.65465367 , 1. ,0. ,
324 5 0. ,0. ,0. ,
325 6 -1. ,-.76505532 ,-.28523152 ,
326 6 0.28523152 ,0.76505532 , 1. ,
327 6 0. ,0. ,0. ,
328 7 -1. ,-.83022390 ,-.46884879 ,
329 7 0. ,0.46884879 ,0.83022390 ,
330 7 1. ,0. ,0. ,
331 8 -1. ,-.87174015 ,-.59170018 ,
332 8 -.20929922 ,0.20929922 ,0.59170018 ,
333 8 0.87174015 , 1. ,0. ,
334 9 -1. ,-.8997579954 ,-.6771862795 ,
335 9 -.3631174638 ,0. ,0.3631174638 ,
336 9 0.6771862795 ,0.8997579954 , 1. /
337C-----
338C-----
339 DATA w_newton /
340 1 2. ,0. ,0. ,
341 1 0. ,0. ,0. ,
342 1 0. ,0. ,0. ,
343 2 1. ,1. ,0. ,
344 2 0. ,0. ,0. ,
345 2 0. ,0. ,0. ,
346 3 0.5 ,1. ,0.5 ,
347 3 0. ,0. ,0. ,
348 3 0. ,0. ,0. ,
349 4 0.166666666666667,0.833333333333333,0.833333333333333,
350 4 0.166666666666667,0. ,0. ,
351 4 0. ,0. ,0. ,
352 5 0.25 ,0.5 ,0.5 ,
353 5 0.5 ,0.25 ,0. ,
354 5 0. ,0. ,0. ,
355 6 0.066666666666667,0.37847496 ,0.55485838 ,
356 6 0.55485838 ,0.37847496 ,0.066666666666667,
357 6 0. ,0. ,0. ,
358 7 0.04761904 ,0.27682604 ,0.43174538 ,
359 7 0.48761904 ,0.43174538 ,0.27682604 ,
360 7 0.04761904 ,0. ,0. ,
361 8 0.03571428 ,0.21070422 ,0.34112270 ,
362 8 0.41245880 ,0.41245880 ,0.34112270 ,
363 8 0.21070422 ,0.03571428 ,0. ,
364 9 0.027777777777778,0.1654953616 ,0.2745387126 ,
365 9 0.3464285110 ,0.3715192744 ,0.3464285110 ,
366 9 0.2745387126 ,0.1654953616 ,0.027777777777778/
367 DATA a_newton /
368 1 0. ,0. ,0. ,
369 1 0. ,0. ,0. ,
370 1 0. ,0. ,0. ,
371 2 -1. ,1. ,0. ,
372 2 0. ,0. ,0. ,
373 2 0. ,0. ,0. ,
374 3 -1. ,0. ,1. ,
375 3 0. ,0. ,0. ,
376 3 0. ,0. ,0. ,
377 4 -1. ,-.44721360 ,0.44721360 ,
378 4 1. ,0. ,0. ,
379 4 0. ,0. ,0. ,
380 5 -1. ,-.5 ,0. ,
381 5 0.5 , 1. ,0. ,
382 5 0. ,0. ,0. ,
383 6 -1. ,-.76505532 ,-.28523152 ,
384 6 0.28523152 ,0.76505532 , 1. ,
385 6 0. ,0. ,0. ,
386 7 -1. ,-.83022390 ,-.46884879 ,
387 7 0. ,0.46884879 ,0.83022390 ,
388 7 1. ,0. ,0. ,
389 8 -1. ,-.87174015 ,-.59170018 ,
390 8 -.20929922 ,0.20929922 ,0.59170018 ,
391 8 0.87174015 , 1. ,0. ,
392 9 -1. ,-.8997579954 ,-.6771862795 ,
393 9 -.3631174638 ,0. ,0.3631174638 ,
394 9 0.6771862795 ,0.8997579954 , 1. /
395C-----
396 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8/
397 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,6,7,8,5/
398C-----------------------------------------------
399C S o u r c e L i n e s
400C=======================================================================
401 gbuf =>elbuf_tab(ng)%GBUF
402 nptr = elbuf_tab(ng)%NPTR
403 npts = elbuf_tab(ng)%NPTS
404 nptt = elbuf_tab(ng)%NPTT
405 nlay = elbuf_tab(ng)%NLAY
406 is = 1
407 isorth = 0
408 tempel(:) = zero
409 fheat(:) = zero
410 nf1 = nft+1
411 nf2 = nf1-(numels8+numels10+numels20)
412 IF (nptr*npts*nptt*nlay > nipmax) stop 933
413 ibid = 0
414 ibidon(1)= 0
415 sz_ix=numelq+numels+nsvois
416!
417 DO i=1,6
418 ii(i) = nel*(i-1)
419 ENDDO
420!
421 CALL s20coor3(
422 1 x, ixs(1,nf1), ixs16(1,nf2),v,
423 2 w, iperm1, iperm2, npe,
424 3 xx, yy, zz, vx,
425 4 vy, vz, vdxx, vdyy,
426 5 vdzz, vdx, vdy, vdz,
427 6 vd2, vis, gbuf%OFF, off,
428 7 gbuf%SMSTR, nc, ngl, mxt,
429 8 ngeo, fx, fy, fz,
430 9 stig, gbuf%SIG, gbuf%EINT, gbuf%RHO,
431 a gbuf%QVIS, gbuf%PLA, gbuf%EPSD, gbuf%G_PLA,
432 b gbuf%G_EPSD, nel, condeg, jale,
433 c ismstr, jeul, jlag)
434
435 nn_del = 0
436 pid = ngeo(1)
437 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
438 . nn_del=8
439 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=16
440 ipres = mat_elem%MAT_PARAM(mxt(1))%IPRES
441C
442 DO n=1,npe
443 DO i=1,nel
444 ul(i,n) = zero
445 ENDDO
446 ENDDO
447 IF (jthe < 0) them(1:nel,1:npe) = zero
448 DO i=1,nel
449 volg(i) = zero
450 ENDDO
451C-----------------------------
452C POINTS D' INTEGRATION - SIGS
453C-----------------------------
454 DO it=1,nptt
455 DO ir=1,nptr
456 DO i=1,nel
457 sigsm(i) = zero
458 volsm(i) = zero
459 ENDDO
460C-----------
461 DO il=1,nlay
462 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
463 ip = ir + ( (il-1) + (it-1)*nlay )*nptr
464 IF (iint == 1) THEN
465 !---GAUSS
466 wi = w_gauss(ir,nptr)*w_gauss(il,nlay)*w_gauss(it,nptt)
467 CALL s16rst(
468 1 a_gauss(ir,nptr),a_gauss(il,nlay),a_gauss(it,nptt),ni(1,ip),
469 2 dnidr ,dnids ,dnidt )
470
471 CALL s16deri3(
472 1 ngl, off, a_gauss(ir,nptr),a_gauss(il,nlay),
473 2 a_gauss(it,nptt),wi, dnidr, dnids,
474 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
475 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
476 5 ty(1,ip), tz(1,ip), xx, yy,
477 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
478 7 volnp(1,ip), deltax, stin, ni(1,ip),
479 8 volg, ul, ir, il,
480 9 it, voldp(1,ip), nel)
481 ELSEIF (iint == 2) THEN
482 !---LOBATTO
483 wi = w_gauss(ir,nptr)*w_lobatto(il,nlay)*w_gauss(it,nptt)
484 CALL s16rst(
485 1 a_gauss(ir,nptr),a_lobatto(il,nlay),a_gauss(it,nptt),ni(1,ip),
486 2 dnidr ,dnids ,dnidt )
487
488 CALL s16deri3(
489 1 ngl, off, a_gauss(ir,nptr), a_lobatto(il,nlay),
490 2 a_gauss(it,nptt), wi, dnidr, dnids,
491 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
492 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
493 5 ty(1,ip), tz(1,ip), xx, yy,
494 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
495 7 volnp(1,ip), deltax, stin, ni(1,ip),
496 8 volg, ul, ir, il,
497 9 it, voldp(1,ip), nel)
498 ENDIF
499 !--------------------------
500 ! SOUS INTEGRATION DE SIGS
501 !-------------------------
502 DO i=1,nel
503 aa = one / sqrt(sx(i,ip)*sx(i,ip) + sy(i,ip)*sy(i,ip) +sz(i,ip)*sz(i,ip))
504 sx(i,ip) = sx(i,ip) * aa
505 sy(i,ip) = sy(i,ip) * aa
506 sz(i,ip) = sz(i,ip) * aa
507 rx(i,ip) = sy(i,ip) * tz(i,ip) - sz(i,ip) * ty(i,ip)
508 ry(i,ip) = sz(i,ip) * tx(i,ip) - sx(i,ip) * tz(i,ip)
509 rz(i,ip) = sx(i,ip) * ty(i,ip) - sy(i,ip) * tx(i,ip)
510 aa = one / sqrt(rx(i,ip)*rx(i,ip)+ry(i,ip)*ry(i,ip)+rz(i,ip)*rz(i,ip))
511 rx(i,ip) = rx(i,ip) * aa
512 ry(i,ip) = ry(i,ip) * aa
513 rz(i,ip) = rz(i,ip) * aa
514 tx(i,ip) = ry(i,ip) * sz(i,ip) - rz(i,ip) * sy(i,ip)
515 ty(i,ip) = rz(i,ip) * sx(i,ip) - rx(i,ip) * sz(i,ip)
516 tz(i,ip) = rx(i,ip) * sy(i,ip) - ry(i,ip) * sx(i,ip)
517 sigs(i,ip) = sx(i,ip)*sx(i,ip)*lbuf%SIG(ii(1)+i)
518 . +sy(i,ip)*sy(i,ip)*lbuf%SIG(ii(2)+i)
519 . +sz(i,ip)*sz(i,ip)*lbuf%SIG(ii(3)+i)
520 . +sx(i,ip)*sy(i,ip)*lbuf%SIG(ii(4)+i)*two
521 . +sy(i,ip)*sz(i,ip)*lbuf%SIG(ii(5)+i)*two
522 . +sz(i,ip)*sx(i,ip)*lbuf%SIG(ii(6)+i)*two
523 sigsm(i) = sigsm(i) + sigs(i,ip)*lbuf%VOL(i)
524 volsm(i) = volsm(i) + lbuf%VOL(i)
525 enddo!next I
526 enddo!next ILAY
527 DO i=1,nel
528 sigsm(i) = sigsm(i) / volsm(i)
529 ENDDO
530 DO il=1,nlay
531 ip = ir + ( (il-1) + (it-1)*nlay ) * nptr
532 DO i = 1,nel
533 sigs(i,ip) = sigs(i,ip)-sigsm(i)
534 ENDDO
535 enddo!IL=1,NLAY
536 enddo!IR=1,NPTR
537 enddo!IT=1,NPTT
538C-------------------------
539 DO i=1,nel
540 aa = max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
541 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
542 bb = max(ul(i,9) ,ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
543 . ul(i,15),ul(i,16))
544 aa = aa*thirty2
545 bb = bb*thirty2*third
546 deltax(i) = sqrt(two*volg(i)/max(aa,bb))
547 ENDDO
548 IF (icp == 1 .OR. icp == 2 .AND. ipres==1 ) THEN
549 CALL s16sigp3(1,nel,nel,nptr,nlay,
550 . nptt,icp,mtn,npe,nipmax,
551 . px, py, pz, vx, vy, vz,
552 . w_gauss,gbuf%PLA,pm,mxt,gbuf%SIG,dt1,
553 . elbuf_tab(ng))
554 ENDIF
555 !-----------------------------
556 ! POINTS D' INTEGRATION - MMAIN
557 !-----------------------------
558 DO it=1,nptt
559 DO ir=1,nptr
560 DO il=1,nlay
561C
562 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
563 ip = ir + ( (il-1) + (it-1)*nlay )*nptr
564c
565 CALL s20defo3(
566 1 npe, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
567 2 vx, vy, vz, dxx,
568 3 dxy, dxz, dyx, dyy,
569 4 dyz, dzx, dzy, dzz,
570 5 d4, d5, d6, wxx,
571 6 wyy, wzz, lbuf%RHO, rhoo,
572 7 volnp(1,ip),voln, nel)
573C
574 IF(dt1/=zero .AND. ipres==1 )CALL s16sigs3(
575 1 dxx, dyy, dzz, d4,
576 2 d5, d6, rx(1,ip), ry(1,ip),
577 3 rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
578 4 tx(1,ip), ty(1,ip), tz(1,ip), gbuf%EINT,
579 5 lbuf%VOL, sigs(1,ip), mxt, pm,
580 6 dt1, lbuf%VOL0DP,nel)
581C
582 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
583 CALL srho3(
584 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
585 2 divde, flux(1,nf1),flu1(nf1), voln,
586 3 dvol, ngl, mxt, off,
587 4 0, gbuf%TAG22, voldp(1,ip),lbuf%VOL0DP,
588 5 amu, gbuf%OFF, nel, mtn,
589 6 jale, ismstr, jeul, jlag)
590
591 CALL srota3(
592 1 lbuf%SIG,s1, s2, s3,
593 2 s4, s5, s6, wxx,
594 3 wyy, wzz, nel, mtn,
595 4 ismstr)
596 !-----------------------------
597 ! SMALL STRAIN
598 !-----------------------------
599 CALL smalla3(
600 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
601 2 wyy, wzz, nel, ismstr,
602 3 jlag)
603C
604C for heat transfert
605C
606 IF (jthe < 0 ) THEN
607 CALL s20tempcg(1,nel,npe, nc,ni(1,ip), temp,tempel)
608 ENDIF
609
610 current_layer=il
611 !------------------------------------------------------
612 ! CALCUL DES CONTRAINTES SUIVANT LOIS CONSTITUTIVES
613 !------------------------------------------------------
614 CALL mmain(timers, output,
615 1 elbuf_tab, ng, pm, geo,
616 2 ale_connect, ixs, iparg,
617 3 v, tf, npf, bufmat,
618 4 sti, x, dt2t, neltst,
619 5 ityptst, offset, nel, w,
620 6 off, ngeo, mxt, ngl,
621 7 voln, vd2, dvol, deltax,
622 8 vis, qvis, cxx, s1,
623 9 s2, s3, s4, s5,
624 a s6, dxx, dyy, dzz,
625 b d4, d5, d6, wxx,
626 c wyy, wzz, rx(1,ip), ry(1,ip),
627 d rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
628 e vdx, vdy, vdz, muvoid,
629 f ssp_eq, aire, sigy, et,
630 g r1_free, lbuf%PLA, r3_free, amu,
631 h dxx, dxy, dxz, dyx,
632 i dyy, dyz, dzx, dzy,
633 j dzz, ipm, gama, bid,
634 k bid, bid, bid, bid,
635 l bid, bid, istrain, tempel,
636 m die, iexpan, current_layer,mbid,
637 n mbid, ir, is, it,
638 o table, bid, bid, bid,
639 p bid, iparg(1,ng), igeo, conde,
640 q itask, nloc_dmg, varnl, mat_elem,
641 r h3d_strain, jplasol, jsph, mvsiz,
642 * snpc, stf, sbufmat, glob_therm,
643 * svis, sz_ix, iresp,
644 * n2d, th_strain, ngroup, tt,
645 . dt1, ntable, numelq, nummat,
646 . numgeo, numnod, numels,
647 . idel7nok, idtmin, maxfunc,
648 . imon_mat, userl_avail, impl_s,
649 . idyna, dt, fheat , sensors, opt_mtn=mtn, opt_jcvt=jcvt,
650 . opt_isorth=isorth,opt_isorthg=isorthg)
651c
652 IF (istrain == 1)THEN
653 CALL sstra3(
654 1 dxx, dyy, dzz, d4,
655 2 d5, d6, lbuf%STRA,wxx,
656 3 wyy, wzz, off, nel,
657 4 jcvt)
658 ENDIF
659 !-----------------------------
660 ! SMALL STRAIN
661 !-----------------------------
662 CALL smallb3(
663 1 gbuf%OFF,off, nel, ismstr)
664 !-------------------------
665 ! ASSEMBLE
666 !-------------------------
667 !----------------------------
668 ! INTERNAL FORCES
669 !----------------------------
670 IF (iint == 1) THEN
671 wi = w_gauss(ir,nptr)*w_gauss(il,nlay)*w_gauss(it,nptt)
672 ELSEIF (iint == 2) THEN
673 wi = w_gauss(ir,nptr)*w_lobatto(il,nlay)*w_gauss(it,nptt)
674 ENDIF
675C
676 l_pla = elbuf_tab(ng)%BUFLY(il)%L_PLA
677 CALL s20fint3(
678 1 npe, lbuf%SIG, px(1,1,ip),py(1,1,ip),
679 2 pz(1,1,ip),ssp_eq, fx, fy,
680 3 fz, voln, qvis, stig,
681 4 stin, lbuf%EINT, lbuf%RHO, lbuf%QVIS,
682 5 lbuf%PLA, lbuf%EPSD, gbuf%EPSD, gbuf%SIG,
683 6 gbuf%EINT, gbuf%RHO, gbuf%QVIS, gbuf%PLA,
684 7 wi, volg, lbuf%VOL, gbuf%VOL,
685 8 l_pla, nel, conde, deltax,
686 9 condeg, israt, svis ,glob_therm%NODADT_THERM,
687 a gbuf%WPLA, lbuf%WPLA, gbuf%G_WPLA )
688 !-------------------------
689 ! finite element heat transfert
690 !--------------------------
691
692 IF (jthe < 0) THEN
693 imat = mxt(1)
694 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
695 CALL s20therm(
696 1 npe, pm, imat, nc,
697 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
698 3 ni(1,ip), dt1, temp, tempel,
699 4 fheat, them, gbuf%OFF, lbuf%OFF,
700 5 nel ,glob_therm%THEACCFACT)
701 ELSE
702 CALL s20therm(
703 1 npe, pm, imat, nc,
704 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
705 3 ni(1,ip), dt1, temp, tempel,
706 4 die, them, gbuf%OFF, lbuf%OFF,
707 5 nel ,glob_therm%THEACCFACT)
708 END IF
709 ENDIF
710 ENDDO ! IL=1,NLAY
711 ENDDO ! IR=1,NPTR
712 ENDDO ! IT=1,NPTT
713C
714 IF ( nn_del> 0) THEN
715 CALL sdlensh2(volg,llsh,area ,
716 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
717 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
718 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
719 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
720 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
721 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
722 CALL tshgeodel3(ngl,gbuf%OFF,volg,area,gbuf%VOL,
723 . llsh,geo(1,pid),nn_del,dt ,nel )
724 ENDIF
725 !--------------------------
726 ! BILANS PAR MATERIAU
727 !--------------------------
728 iflag=mod(ncycle,ncpri)
729 IF(ioutprt>0)THEN
730 CALL s16bilan(partsav,gbuf%EINT,gbuf%RHO,volg ,gbuf%VOL,
731 . vx ,vy ,vz ,iparts ,gresav ,
732 . grth ,igrth ,iexpan ,gbuf%EINTTH, gbuf%FILL,
733 . xx ,yy ,zz ,itask ,iparg(1,ng),
734 . gbuf%OFF,sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
735 ENDIF
736C
737c-----------------------------
738 IF(nfilsol/=0) CALL sxfillopt(
739 1 npe, gbuf%FILL,stig, fx,
740 2 fy, fz, nel)
741c-----------------------------
742 IF (iparit == 0)THEN
743 CALL s20cumu3(
744 1 gbuf%OFF,a, nc, stifn,
745 2 stig, fx, fy, fz,
746 3 iperm1, iperm2, npe, them,
747 4 fthe, condn, condeg, nel,
748 5 jthe, glob_therm%NODADT_THERM)
749 ELSE
750 CALL s20cumu3p(
751 1 gbuf%OFF, stig, fsky, fsky,
752 2 iads(1,nf1), fx, fy, fz,
753 3 iads16(1,nf2),nc, iperm1, iperm2,
754 4 npe, them, fthesky, condnsky,
755 5 condeg, nel, nft, jthe,
756 6 glob_therm%NODADT_THERM)
757 ENDIF
758C-----------
759 RETURN
760 END
761
762
763C 12
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
subroutine mmain(pm, elbuf_str, ix, nix, x, geo, iparg, nel, skew, bufmat, ipart, ipartel, nummat, matparam, imat, ipm, ngl, pid, npf, tf, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, rx, ry, rz, sx, sy, sz, gama, voln, dvol, s1, s2, s3, s4, s5, s6, dxx, dyy, dzz, d4, d5, d6, wxx, wyy, wzz)
Definition mmain.F:43
subroutine s16bilan(partsav, eintg, rhog, volg, vol0g, vx, vy, vz, iparts, gresav, grth, igrth, iexpan, eintth, fill, x, y, z, itask, iparg, offg, sensors, nel, g_wpla, wpla)
Definition s16bilan.F:38
subroutine s16forc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, ixs16, iads16, nel, fx, fy, fz, volnp, sigs, rx, ry, rz, sx, sy, sz, tx, ty, tz, stig, stin, ul, xx, yy, zz, vx, vy, vz, vdxx, vdyy, vdzz, dnidr, dnids, dnidt, px, py, pz, icp, icsig, ipm, istrain, temp, fthe, fthesky, iexpan, gresav, grth, igrth, table, igeo, voln, condn, condnsky, itask, ioutprt, mat_elem, h3d_strain, dt, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, idel7ng, idel7nok, idtmin, maxfunc, imon_mat, userl_avail, glob_therm, impl_s, idyna, sensors)
Definition s16forc3.F:85
subroutine s16sigp3(lft, llt, nel, nptr, nlay, nptt, icp, mtn, npe, nipmax, px, py, pz, vx, vy, vz, w_gauss, defp, pm, mxt, sig, dt1, elbuf_str)
Definition s16sigp3.F:36
subroutine s16sigs3(dxx, dyy, dzz, d4, d5, d6, rx, ry, rz, sx, sy, sz, tx, ty, tz, eint, vol0, sigs, mxt, pm, dt1, vol0dp, nel)
Definition s16sigs3.F:35
subroutine s20cumu3(offg, a, nc, stifn, stig, fx, fy, fz, iperm1, iperm2, npe, them, fthe, condn, condeg, nel, jthe, nodadt_therm)
Definition s20cumu3.F:35
subroutine s20cumu3p(offg, stig, fsky, fskyv, iads, fx, fy, fz, iadsp, nc, iperm1, iperm2, npe, them, fthesky, condnsky, condeg, nel, nft, jthe, nodadt_therm)
Definition s20cumu3p.F:36
subroutine s20defo3(npe, px, py, pz, vx, vy, vz, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, rho, rhoo, volnp, voln, nel)
Definition s20defo3.F:37
subroutine s20fint3(npe, sig, px, py, pz, ssp_eq, fx, fy, fz, vol, qvis, stig, stin, eint, rho, q, eplas, epsd, epsdg, sigg, eintg, rhog, qg, eplasg, wi, volg, vol0, vol0g, g_pla, nel, conde, deltax, condeg, israt, svis, nodadt_therm, g_wpla, l_wpla, g_wpla_flag)
Definition s20fint3.F:40
subroutine s20tempcg(jft, jlt, npe, nc, ni, temp, tempel)
Definition s20tempcg.F:30
subroutine s20therm(npe, pm, imat, nc, vol, px, py, pz, ni, dt1, tempnc, tempel, heat, fphi, offg, off, nel, theaccfact)
Definition s20therm.F:35
subroutine sdlensh2(voln, llsh, area, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
Definition sdlensh2.F:37
subroutine smalla3(sav, offg, off, wxx, wyy, wzz, nel, ismstr, jlag)
Definition smalla3.F:35
subroutine smallb3(offg, off, nel, ismstr)
Definition smallb3.F:44
subroutine srota3(sig, s1, s2, s3, s4, s5, s6, wxx, wyy, wzz, nel, mtn, ismstr)
Definition srota3.F:43
subroutine sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
Definition sstra3.F:46
subroutine s20coor3(x, v, ixs, ixs20, xx, yy, zz, vx, vy, vz, nc, ngl, mxt, ngeo, mass, dtelem, sti, sigg, eintg, rhog, qg, temp0, temp, nel, nintemp)
Definition s20coor3.F:38
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
Definition srho3.F:31
subroutine s16rst(r, s, t, ni, dnidr, dnids, dnidt)
Definition s16deri3.F:495
subroutine s16deri3(ngl, off, r, s, t, w, dnidr, dnids, dnidt, dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, dydt, dzdt, xx, yy, zz, px, py, pz, vol, deltax, kxx, ni, volg, ul, voldp)
Definition s16deri3.F:37
subroutine sxfillopt(npe, fill, sti, fx, fy, fz, nel)
Definition sxfillopt.F:33
subroutine tshgeodel3(ngl, offg, volg, area, volg0, l_sh, geo, nnod, dt, nel)
Definition tshgeodel3.F:36