OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s20forc3.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!|| s20forc3 ../engine/source/elements/solid/solide20/s20forc3.F
25!||--- called by ------------------------------------------------------
26!|| forint ../engine/source/elements/forint.F
27!||--- calls -----------------------------------------------------
28!|| mmain ../engine/source/materials/mat_share/mmain.F90
29!|| s20bilan ../engine/source/elements/solid/solide20/s20bilan.F
30!|| s20coor3 ../engine/source/elements/solid/solide20/s20coor3.F
31!|| s20cumu3 ../engine/source/elements/solid/solide20/s20cumu3.F
32!|| s20cumu3p ../engine/source/elements/solid/solide20/s20cumu3p.F
33!|| s20defo3 ../engine/source/elements/solid/solide20/s20defo3.F
34!|| s20deri3 ../engine/source/elements/solid/solide20/s20deri3.F
35!|| s20fint3 ../engine/source/elements/solid/solide20/s20fint3.F
36!|| s20rst ../engine/source/elements/solid/solide20/s20rst.F
37!|| s20tempcg ../engine/source/elements/solid/solide20/s20tempcg.F
38!|| s20therm ../engine/source/elements/solid/solide20/s20therm.F
39!|| sdlen8 ../engine/source/elements/solid/solidez/sdlen8.F
40!|| sdlenmax ../engine/source/elements/solid/solide/sdlenmax.F
41!|| sgeodel3 ../engine/source/elements/solid/solide/sgeodel3.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!||--- uses -----------------------------------------------------
49!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
50!|| dt_mod ../engine/source/modules/dt_mod.F
51!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
52!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
53!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
54!|| mmain_mod ../engine/source/materials/mat_share/mmain.F90
55!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
56!|| output_mod ../common_source/modules/output/output_mod.F90
57!|| sensor_mod ../common_source/modules/sensor_mod.F90
58!|| table_mod ../engine/share/modules/table_mod.F
59!|| timer_mod ../engine/source/system/timer_mod.F90
60!||====================================================================
61 SUBROUTINE s20forc3(TIMERS,OUTPUT,
62 1 ELBUF_TAB, NG, PM, GEO,
63 2 IXS, X, A, V,
64 3 MS, W, FLUX, FLU1,
65 4 VEUL, FV, ALE_CONNECT,IPARG,
66 5 TF, NPF, BUFMAT, PARTSAV,
67 6 NLOC_DMG, DT2T, NELTST, ITYPTST,
68 7 STIFN, FSKY, IADS, OFFSET,
69 8 EANI, IPARTS, IXS20, IADS20,
70 9 NEL, FX, FY, FZ,
71 A VOLNP, RX, RY, RZ,
72 B SX, SY, SZ, TX,
73 C TY, TZ, STIG, STIN,
74 D UL, XX, YY, ZZ,
75 E VX, VY, VZ, VDXX,
76 F VDYY, VDZZ, DNIDR, DNIDS,
77 G DNIDT, PX, PY, PZ,
78 H IPM, ISTRAIN, TEMP, FTHE,
79 I FTHESKY, IEXPAN, GRESAV, GRTH,
80 J IGRTH, TABLE, IGEO, VOLN,
81 K CONDN, CONDNSKY, ITASK, IOUTPRT,
82 L MAT_ELEM, H3D_STRAIN, DT, IDEL7NOK,
83 M SNPC, STF, SBUFMAT, SVIS,
84 N IDTMINS, NSVOIS, IRESP, IDEL7NG,
85 O IDTMIN, MAXFUNC, IMON_MAT, USERL_AVAIL,
86 . GLOB_THERM, impl_s, idyna, SENSORS)
87C-----------------------------------------------
88C M o d u l e s
89C-----------------------------------------------
90 USE timer_mod
91 USE output_mod, only : output_
92 USE mmain_mod
93 USE table_mod
94 USE mat_elem_mod
97 USE dt_mod
98 USE elbufdef_mod
99 use glob_therm_mod
100 USE sensor_mod
101C-----------------------------------------------
102C I m p l i c i t T y p e s
103C-----------------------------------------------
104#include "implicit_f.inc"
105C-----------------------------------------------
106C G l o b a l P a r a m e t e r s
107C-----------------------------------------------
108#include "mvsiz_p.inc"
109C-----------------------------------------------
110C C o m m o n B l o c k s
111C-----------------------------------------------
112#include "com01_c.inc"
113#include "com04_c.inc"
114#include "com08_c.inc"
115#include "vect01_c.inc"
116#include "parit_c.inc"
117#include "param_c.inc"
118C-----------------------------------------------
119C L o c a l P a r a m e t e r s
120C-----------------------------------------------
121 INTEGER NIPMAX,NPE
122 parameter(nipmax=81)
123 parameter(npe=20)
124C-----------------------------------------------
125C D u m m y A r g u m e n t s
126C-----------------------------------------------
127 TYPE(timer_) ,INTENT(INOUT) :: TIMERS
128 TYPE(OUTPUT_) ,INTENT(INOUT) :: OUTPUT
129 INTEGER ,INTENT(IN) :: IDEL7NG
130 INTEGER ,INTENT(INOUT) :: IDEL7NOK
131 integer,dimension(102) :: IDTMIN
132 INTEGER ,INTENT(IN) :: MAXFUNC
133 INTEGER, INTENT(IN) :: SNPC
134 INTEGER, INTENT(IN) :: STF
135 INTEGER, INTENT(IN) :: SBUFMAT
136 INTEGER, INTENT(IN) :: IDTMINS
137 INTEGER, INTENT(IN) :: NSVOIS
138 INTEGER ,INTENT(IN) :: IRESP
139 INTEGER, INTENT(IN) :: IMPL_S
140 INTEGER, INTENT(IN) :: IDYNA
141 INTEGER, INTENT(IN) :: USERL_AVAIL
142 INTEGER, INTENT(IN) :: IMON_MAT
143 INTEGER IXS(NIXS,*), IPARG(NPARG,NGROUP),NPF(*),
144 . IADS(8,*),IPARTS(*),IXS20(12,*),IADS20(12,*),IPM(*),
145 . GRTH(*),IGRTH(*),IGEO(*),ITASK,IOUTPRT
146 INTEGER NELTST,ITYPTST,OFFSET,NEL,ISTRAIN,
147 . iexpan,ng,h3d_strain
148 my_real
149 . dt2t
150 my_real
151 . pm(*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*), flux(6,*),flu1(*),
152 . veul(*), fv(*), tf(*),temp(*), fthe(*),fthesky(*),gresav(*),
153 . bufmat(*),partsav(*),stifn(*), fsky(*),eani(*),voln(mvsiz)
154 my_real
155 . fx(mvsiz,npe),fy(mvsiz,npe),fz(mvsiz,npe),volnp(mvsiz,nipmax),
156 . rx(mvsiz,nipmax) , ry(mvsiz,nipmax) , rz(mvsiz,nipmax) ,
157 . sx(mvsiz,nipmax) , sy(mvsiz,nipmax) , sz(mvsiz,nipmax) ,
158 . tx(mvsiz,nipmax),ty(mvsiz,nipmax),tz(mvsiz,nipmax),
159 . stig(mvsiz,npe),stin(mvsiz,npe),ul(mvsiz,npe),
160 . xx(mvsiz,npe), yy(mvsiz,npe), zz(mvsiz,npe),
161 . vx(mvsiz,npe),vy(mvsiz,npe),vz(mvsiz,npe),
162 . vdxx(mvsiz,npe), vdyy(mvsiz,npe), vdzz(mvsiz,npe),
163 . dnidr(mvsiz,npe),dnids(mvsiz,npe),dnidt(mvsiz,npe),
164 . px(mvsiz,npe,nipmax),py(mvsiz,npe,nipmax),pz(mvsiz,npe,nipmax),
165 . condn(*),condnsky(*)
166 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
167 TYPE (TTABLE) TABLE(*)
168 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
169 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
170 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
171 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
172 TYPE(DT_), INTENT(INOUT) :: DT
173 type (glob_therm_) ,intent(inout) :: glob_therm
174 type (sensors_),INTENT(INOUT) :: SENSORS
175C-----------------------------------------------
176C L o c a l V a r i a b l e s
177C-----------------------------------------------
178 INTEGER I,N,NF1,NF2,ILAY,IP,IR,IS,IT,NPTT,NPTS,NPTR,IFLAG,IBID
179 INTEGER IBIDON(1),ITET,NN_DEL,PID,IMAT
180
181 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ), IPERM1(NPE),
182 .IPERM2(NPE)
183 INTEGER SZ_BID,SZ_IX
184 my_real
185 . VD2(MVSIZ) , DVOL(MVSIZ),DELTAX(MVSIZ),
186 . VIS(MVSIZ) , QVIS(MVSIZ), CXX(MVSIZ) ,
187 . S1(MVSIZ) , S2(MVSIZ) , S3(MVSIZ) ,
188 . S4(MVSIZ) , S5(MVSIZ) , S6(MVSIZ) ,
189 . DXX(MVSIZ) , DYY(MVSIZ) , DZZ(MVSIZ) ,
190 . D4(MVSIZ) , D5(MVSIZ) , D6(MVSIZ) ,
191 . vdx(mvsiz),vdy(mvsiz),vdz(mvsiz),ssp_eq(mvsiz),
192 . aire(mvsiz),conde(mvsiz),condeg(mvsiz,npe),amu(mvsiz),divde(mvsiz)
193
194 ! Variables utilisees en argument par les materiaux.
195 my_real
196 . sti(mvsiz), wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
197
198 ! Variables utilisees en argument par les materiaux si SPH uniquement.
199 my_real
200 . muvoid(mvsiz)
201
202 ! Variables void MMAIN
203 my_real
204 . sigy(mvsiz),et(mvsiz),gama(mvsiz,6),
205 . r1_free(mvsiz),r3_free(mvsiz),r4_free(mvsiz),
206 . tempel(mvsiz),die(mvsiz),them(mvsiz,npe)
207 my_real, dimension(mvsiz) :: fheat
208
209 ! Variables utilisees dans les routines solides uniquement (en arguments).
210 INTEGER NC(MVSIZ,NPE)
211 my_real
212 . OFF(MVSIZ) , RHOO(MVSIZ),NI(NPE,NIPMAX),
213 . DXY(MVSIZ),DYX(MVSIZ),
214 . DYZ(MVSIZ),DZY(MVSIZ),VOLG(MVSIZ),
215 . DZX(MVSIZ),DXZ(MVSIZ),BID(MVSIZ),AA,WI,BB, MBID(1),LL8(MVSIZ),L_MAX(MVSIZ)
216 my_real VARNL(NEL)
217 DOUBLE PRECISION
218 . VOLDP(MVSIZ,NIPMAX)
219C-----------------------------------------------
220 TYPE(l_bufel_) ,POINTER :: LBUF
221 TYPE(G_BUFEL_) ,POINTER :: GBUF
222 TYPE(BUF_MAT_) ,POINTER :: MBUF
223c------------------------------------------------------------
224 my_real
225 . w_gauss(9,9),a_gauss(9,9)
226 DATA w_gauss /
227c---
228 1 2.d0 ,0.d0 ,0.d0 ,
229 1 0.d0 ,0.d0 ,0.d0 ,
230 1 0.d0 ,0.d0 ,0.d0 ,
231 2 1.d0 ,1.d0 ,0.d0 ,
232 2 0.d0 ,0.d0 ,0.d0 ,
233 2 0.d0 ,0.d0 ,0.d0 ,
234 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
235 3 0.d0 ,0.d0 ,0.d0 ,
236 3 0.d0 ,0.d0 ,0.d0 ,
237 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
238 4 0.347854845137454d0,0.d0 ,0.d0 ,
239 4 0.d0 ,0.d0 ,0.d0 ,
240 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
241 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
242 5 0.d0 ,0.d0 ,0.d0 ,
243 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
244 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
245 6 0.d0 ,0.d0 ,0.d0 ,
246 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
247 7 0.417959183673469d0,0.381830050505119d0,0.279705391489277d0,
248 7 0.129484966168870d0,0.d0 ,0.d0 ,
249 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
250 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
251 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
252 9 0.081274388361574d0,0.180648160694857d0,0.260610696402935d0,
253 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
254 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
255c------------------------------------------------------------
256 DATA a_gauss /
257 1 0.d0 ,0.d0 ,0.d0 ,
258 1 0.d0 ,0.d0 ,0.d0 ,
259 1 0.d0 ,0.d0 ,0.d0 ,
260 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
261 2 0.d0 ,0.d0 ,0.d0 ,
262 2 0.d0 ,0.d0 ,0.d0 ,
263 3 -.774596669241483d0,0.d0 ,0.774596669241483d0,
264 3 0.d0 ,0.d0 ,0.d0 ,
265 3 0.d0 ,0.d0 ,0.d0 ,
266 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
267 4 0.861136311594053d0,0.d0 ,0.d0 ,
268 4 0.d0 ,0.d0 ,0.d0 ,
269 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
270 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
271 5 0.d0 ,0.d0 ,0.d0 ,
272 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
273 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
274 6 0.d0 ,0.d0 ,0.d0 ,
275 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
276 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
277 7 0.949107912342759d0,0.d0 ,0.d0 ,
278 8 -.960289856497536d0,-.796666477413627d0,-.525532409916329d0,
279 8 -.183434642495650d0,0.183434642495650d0,0.525532409916329d0,
280 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
281 9 -.968160239507626d0,-.836031107326636d0,-.613371432700590d0,
282 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
283 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0/
284C
285c------------------------------------------------------------
286C Variables utilisees en argument par les materiaux.
287 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
288 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
289C-----------------------------------------------
290C S o u r c e L i n e s
291C=======================================================================
292 gbuf => elbuf_tab(ng)%GBUF
293c
294 bid = zero
295 sz_bid = mvsiz
296 sz_ix=numelq+numels+nsvois
297 ibid = 0
298 ibidon = 0
299 tempel(:) = zero
300 fheat(:) = zero
301 nf1 = nft+1
302 nf2 = nf1-(numels8+numels10)
303C
304 CALL s20coor3(
305 1 x, ixs(1,nf1), ixs20(1,nf2),v,
306 2 w, iperm1, iperm2, npe,
307 3 xx, yy, zz, vx,
308 4 vy, vz, vdxx, vdyy,
309 5 vdzz, vdx, vdy, vdz,
310 6 vd2, vis, gbuf%OFF, off,
311 7 gbuf%SMSTR, nc, ngl, mxt,
312 8 ngeo, fx, fy, fz,
313 9 stig, gbuf%SIG, gbuf%EINT, gbuf%RHO,
314 a gbuf%QVIS, gbuf%PLA, gbuf%EPSD, gbuf%G_PLA,
315 b gbuf%G_EPSD, nel, condeg, jale,
316 c ismstr, jeul, jlag)
317C
318 nn_del = 0
319 pid = ngeo(1)
320 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
321 . nn_del=20
322 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=20
323c
324 DO n=1,npe
325 DO i=1,nel
326 ul(i,n) = zero
327 ENDDO
328 ENDDO
329 DO i=1,nel
330 volg(i) = zero
331 ENDDO
332 IF(jthe < 0) them(1:nel,1:npe) = zero
333C
334C-----------------------------
335C POINTS D' INTEGRATION
336C-----------------------------
337 nptr = elbuf_tab(ng)%NPTR
338 npts = elbuf_tab(ng)%NPTS
339 nptt = elbuf_tab(ng)%NPTT
340C-------------
341 ilay = 1
342 DO it=1,nptt
343 DO is=1,npts
344 DO ir=1,nptr
345 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
346
347
348 ip = ir + ( (is-1) + (it-1)*npts )*nptr
349 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
350c
351 CALL s20rst(
352 1 a_gauss(ir,nptr),a_gauss(is,npts),a_gauss(it,nptt),ni(1,ip),
353 2 dnidr ,dnids ,dnidt )
354C
355 CALL s20deri3(
356 1 ngl, off, a_gauss(ir,nptr),a_gauss(is,npts),
357 2 a_gauss(it,nptt),wi, dnidr, dnids,
358 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
359 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
360 5 ty(1,ip), tz(1,ip), xx, yy,
361 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
362 7 volnp(1,ip), deltax, stin, ni(1,ip),
363 8 volg, ul, ir, is,
364 9 it, voldp(1,ip), nel)
365C
366 ENDDO
367 ENDDO
368 ENDDO
369C-------------
370C
371 DO i=1,nel
372 aa = max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
373 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
374 bb = max(ul(i,9) ,ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
375 . ul(i,15),ul(i,16),ul(i,17),ul(i,18),ul(i,19),ul(i,20))
376 aa = aa*sixty4
377 bb = bb*eighty16/seven
378 deltax(i) = sqrt(two*volg(i)/max(aa,bb))
379 ENDDO
380C
381C-------------
382 ilay = 1
383 DO it=1,nptt
384 DO is=1,npts
385 DO ir=1,nptr
386
387 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
388 ip = ir + ( (is-1) + (it-1)*npts )*nptr
389 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
390C--------
391 CALL s20defo3(
392 1 npe, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
393 2 vx, vy, vz, dxx,
394 3 dxy, dxz, dyx, dyy,
395 4 dyz, dzx, dzy, dzz,
396 5 d4, d5, d6, wxx,
397 6 wyy, wzz, lbuf%RHO, rhoo,
398 7 volnp(1,ip),voln, nel)
399C
400 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
401 CALL srho3(
402 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
403 2 divde, flux(1,nf1),flu1(nf1), voln,
404 3 dvol, ngl, mxt, off,
405 4 0, gbuf%TAG22, voldp(1,ip),lbuf%VOL0DP,
406 5 amu, gbuf%OFF, nel, mtn,
407 6 jale, ismstr, jeul, jlag)
408
409 CALL srota3(
410 1 lbuf%SIG,s1, s2, s3,
411 2 s4, s5, s6, wxx,
412 3 wyy, wzz, nel, mtn,
413 4 ismstr)
414C-----------------------------
415C SMALL STRAIN
416C-----------------------------
417 CALL smalla3(
418 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
419 2 wyy, wzz, nel, ismstr,
420 3 jlag)
421C
422C for heat transfert
423C
424 IF (jthe < 0 ) THEN
425 CALL s20tempcg(1,nel,npe, nc,ni(1,ip),temp,tempel)
426 ENDIF
427C------------------------------------------------------
428C CALCUL DES CONTRAINTES SUIVANT LOIS CONSTITUTIVES
429C------------------------------------------------------
430 CALL mmain(timers, output,
431 1 elbuf_tab, ng, pm, geo,
432 2 ale_connect, ixs, iparg,
433 3 v, tf, npf, bufmat,
434 4 sti, x, dt2t, neltst,
435 5 ityptst, offset, nel, w,
436 6 off, ngeo, mxt, ngl,
437 7 voln, vd2, dvol, deltax,
438 8 vis, qvis, cxx, s1,
439 9 s2, s3, s4, s5,
440 a s6, dxx, dyy, dzz,
441 b d4, d5, d6, wxx,
442 c wyy, wzz, rx(1,ip), ry(1,ip),
443 d rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
444 e vdx, vdy, vdz, muvoid,
445 f ssp_eq, aire, sigy, et,
446 g r1_free, lbuf%PLA, r3_free, amu,
447 h bid, bid, bid, bid,
448 i bid, bid, bid, bid,
449 j bid, ipm, gama, bid,
450 k bid, bid, bid, bid,
451 l bid, bid, istrain, tempel,
452 m die, iexpan, ilay, mbid,
453 n mbid, ir, is, it,
454 o table, bid, bid, bid,
455 p bid, iparg(1,ng), igeo, conde,
456 q itask, nloc_dmg, varnl, mat_elem ,
457 r h3d_strain, jplasol, jsph, sz_bid,
458 * snpc, stf, sbufmat, glob_therm,
459 * svis, sz_ix, iresp,
460 * n2d, th_strain, ngroup, tt,
461 . dt1, ntable, numelq, nummat,
462 . numgeo, numnod, numels,
463 . idel7nok, idtmin, maxfunc,
464 . imon_mat, userl_avail, impl_s,
465 . idyna, dt, fheat ,sensors)
466c
467 IF (istrain == 1) THEN
468 CALL sstra3(
469 1 dxx, dyy, dzz, d4,
470 2 d5, d6, lbuf%STRA,wxx,
471 3 wyy, wzz, off, nel,
472 4 jcvt)
473 ENDIF
474
475C-----------------------------
476C SMALL STRAIN
477C-----------------------------
478 CALL smallb3(
479 1 gbuf%OFF,off, nel, ismstr)
480C----------------------------
481C INTERNAL FORCES
482C----------------------------
483c
484 CALL s20fint3(
485 1 npe, lbuf%SIG, px(1,1,ip),py(1,1,ip),
486 2 pz(1,1,ip),ssp_eq, fx, fy,
487 3 fz, voln, qvis, stig,
488 4 stin, lbuf%EINT, lbuf%RHO, lbuf%QVIS,
489 5 lbuf%PLA, lbuf%EPSD, gbuf%EPSD, gbuf%SIG,
490 6 gbuf%EINT, gbuf%RHO, gbuf%QVIS, gbuf%PLA,
491 7 wi, volg, lbuf%VOL, gbuf%VOL,
492 8 gbuf%G_PLA,nel, conde, deltax,
493 9 condeg, israt ,svis ,glob_therm%NODADT_THERM,
494 1 gbuf%WPLA, lbuf%WPLA,gbuf%G_WPLA)
495C
496C-------------------------
497c finite element heat transfert
498C--------------------------
499 IF (jthe < 0) THEN
500 imat = mxt(1)
501 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
502 CALL s20therm(
503 1 npe, pm, imat, nc,
504 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
505 3 ni(1,ip), dt1, temp, tempel,
506 4 fheat, them, gbuf%OFF, lbuf%OFF,
507 5 nel ,glob_therm%THEACCFACT)
508 ELSE
509 CALL s20therm(
510 1 npe, pm, imat, nc,
511 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
512 3 ni(1,ip), dt1, temp, tempel,
513 4 die , them, gbuf%OFF, lbuf%OFF,
514 5 nel ,glob_therm%THEACCFACT)
515 END IF
516 ENDIF
517
518 ENDDO
519 ENDDO
520 ENDDO
521C
522 IF ( nn_del> 0) THEN
523 CALL sdlen8(ll8,volg,ixs(1,nf1),
524 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
525 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
526 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
527 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
528 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
529 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
530 CALL sdlenmax(l_max,
531 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
532 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
533 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
534 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
535 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
536 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
537 CALL sgeodel3(ngl,gbuf%OFF,volg,ll8,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
538
539 END IF !( NN_DEL> 0) THEN
540C--------------------------
541C BILANS PAR MATERIAU
542C--------------------------
543 iflag=mod(ncycle,ncpri)
544 IF (ioutprt>0)THEN
545 CALL s20bilan(partsav,gbuf%EINT,gbuf%RHO,volg,
546 . vx, vy, vz,iparts,gbuf%VOL,
547 . gresav,grth,igrth,iexpan,gbuf%EINTTH,
548 . gbuf%FILL, xx, yy, zz,itask,iparg(1,ng),
549 . gbuf%OFF,sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
550 ENDIF
551C
552c-----------------------------
553 IF(nfilsol/=0) CALL sxfillopt(
554 1 npe, gbuf%FILL,stig, fx,
555 2 fy, fz, nel)
556c-----------------------------
557 IF (iparit == 0)THEN
558 CALL s20cumu3(
559 1 gbuf%OFF,a, nc, stifn,
560 2 stig, fx, fy, fz,
561 3 iperm1, iperm2, npe, them,
562 4 fthe, condn, condeg, nel,
563 5 jthe, glob_therm%NODADT_THERM)
564 ELSE
565 CALL s20cumu3p(
566 1 gbuf%OFF, stig, fsky, fsky,
567 2 iads(1,nf1), fx, fy, fz,
568 3 iads20(1,nf2),nc, iperm1, iperm2,
569 4 npe, them, fthesky, condnsky,
570 5 condeg, nel, nft, jthe,
571 6 glob_therm%NODADT_THERM)
572 ENDIF
573C-----------
574 RETURN
575 END
#define my_real
Definition cppsort.cpp:32
#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 s20bilan(partsav, eintg, rhog, volg, vx, vy, vz, iparts, vol0g, gresav, grth, igrth, iexpan, eintth, fill, x, y, z, itask, iparg, offg, sensors, nel, g_wpla, wpla)
Definition s20bilan.F:38
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 s20forc3(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, ixs20, iads20, nel, fx, fy, fz, volnp, 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, ipm, istrain, temp, fthe, fthesky, iexpan, gresav, grth, igrth, table, igeo, voln, condn, condnsky, itask, ioutprt, mat_elem, h3d_strain, dt, idel7nok, snpc, stf, sbufmat, svis, idtmins, nsvois, iresp, idel7ng, idtmin, maxfunc, imon_mat, userl_avail, glob_therm, impl_s, idyna, sensors)
Definition s20forc3.F:87
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 sdlen8(deltax, volg, ixs, 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 sdlen8.F:40
subroutine sdlenmax(lm_max, 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 sdlenmax.F:40
subroutine sgeodel3(ngl, offg, volg, deltax, volg0, geo, l_max, dt, nel, idel7nok)
Definition sgeodel3.F:42
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 s20deri3(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, deltax2, ip, nip, ul, volg, voldp)
Definition s20deri3.F:38
subroutine s20rst(r, s, t, ni, dnidr, dnids, dnidt)
Definition s20deri3.F:505
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
Definition srho3.F:31
subroutine sxfillopt(npe, fill, sti, fx, fy, fz, nel)
Definition sxfillopt.F:33