OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ig3dinit3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com04_c.inc"
#include "param_c.inc"
#include "scr12_c.inc"
#include "scr17_c.inc"
#include "scry_c.inc"
#include "vect01_c.inc"
#include "ige3d_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine ig3dinit3 (elbuf_str, ms, kxig3d, ixig3d, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, ipartig3d, mss, ipart, sigsp, nsigi, in, vr, ipm, nsigs, vnige, bnige, ptsol, bufmat, npf, tf, fail_ini, nctrl, msig3d, knot, nctrlmax, wige, px, py, pz, knotlocpc, knotlocel, mat_param)

Function/Subroutine Documentation

◆ ig3dinit3()

subroutine ig3dinit3 ( type(elbuf_struct_), target elbuf_str,
ms,
integer, dimension(nixig3d,*) kxig3d,
integer, dimension(*) ixig3d,
pm,
x,
type(detonators_struct_) detonators,
geo,
veul,
type(t_ale_connectivity), intent(inout) ale_connectivity,
integer, dimension(*) iparg,
dtelem,
sigi,
integer nel,
skew,
integer, dimension(npropgi,*) igeo,
stifn,
partsav,
v,
integer, dimension(*) ipartig3d,
mss,
integer, dimension(lipart1,*) ipart,
sigsp,
integer nsigi,
in,
vr,
integer, dimension(npropmi,*) ipm,
integer nsigs,
vnige,
bnige,
integer, dimension(*) ptsol,
bufmat,
integer, dimension(*) npf,
tf,
integer, dimension(*) fail_ini,
integer nctrl,
msig3d,
knot,
integer nctrlmax,
wige,
integer px,
integer py,
integer pz,
knotlocpc,
knotlocel,
type (matparam_struct_), dimension(nummat), intent(inout) mat_param )

Definition at line 39 of file ig3dinit3.F.

49C-----------------------------------------------
50C M o d u l e s
51C-----------------------------------------------
52 USE elbufdef_mod
53 USE message_mod
57 USE matparam_def_mod
58C-----------------------------------------------
59C I m p l i c i t T y p e s
60C-----------------------------------------------
61#include "implicit_f.inc"
62C-----------------------------------------------
63C G l o b a l P a r a m e t e r s
64C-----------------------------------------------
65#include "mvsiz_p.inc"
66C-----------------------------------------------
67C C o m m o n B l o c k s
68C-----------------------------------------------
69#include "com04_c.inc"
70#include "param_c.inc"
71#include "scr12_c.inc"
72#include "scr17_c.inc"
73#include "scry_c.inc"
74#include "vect01_c.inc"
75#include "ige3d_c.inc"
76C-----------------------------------------------
77C D u m m y A r g u m e n t s
78C-----------------------------------------------
79 INTEGER IXIG3D(*), IPARG(*),
80 . NEL, IPART(LIPART1,*),
81 . IGEO(NPROPGI,*), IPM(NPROPMI,*), PTSOL(*), NSIGI, NSIGS,
82 . NPF(*),FAIL_INI(*),KXIG3D(NIXIG3D,*),NCTRL,NCTRLMAX,
83 . IPARTIG3D(*),PX,PY,PZ
85 . ms(*), x(3,*), geo(npropg,*),pm(npropm,*),
86 . veul(lveul,*), dtelem(*),sigi(nsigs,*),skew(lskew,*),stifn(*),
87 . partsav(20,*), v(3,*), mss(8,*), knotlocpc(deg_max,3,*),
88 . knotlocel(2,3,*), sigsp(nsigi,*) , in(*), vr(3,*),
89 . vnige(nctrlmax,*), bnige(nctrlmax,*),bufmat(*), tf(*),
90 . msig3d(numelig3d,nctrlmax),knot(*),wige(*)
91 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
92 TYPE(DETONATORS_STRUCT_)::DETONATORS
93 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
94 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
95C-----------------------------------------------
96C L o c a l V a r i a b l e s
97C-----------------------------------------------
98 INTEGER I,J,K,N,NF1,IBID,JHBE,IGTYP,IREP,NCC,NUVAR,IP,NREFSTA,
99 . IPID,NPTR,NPTS,NPTT,NLAY,ITEL
100 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),
101 . IPROP(MVSIZ) ,IMAT(MVSIZ) ,IAD_KNOT,
102 . EL_ID(MVSIZ),N1,N2,N3,NKNOT1,NKNOT2,NKNOT3,
103 . IDX(MVSIZ),IDY(MVSIZ),IDZ(MVSIZ),
104 . IDX2(MVSIZ),IDY2(MVSIZ),IDZ2(MVSIZ)
105 CHARACTER(LEN=NCHARTITLE)::TITR1
106 my_real
107 . bid, fv, v8loc(51,mvsiz), volu(mvsiz), dtx(mvsiz),dtx0(mvsiz),
108 . mass(nctrl,nel),inn(mvsiz,8),xx(nctrl,mvsiz),
109 . yy(nctrl,mvsiz),zz(nctrl,mvsiz),ww(nctrl,mvsiz),
110 . vx(nctrl,mvsiz),vy(nctrl,mvsiz), vz(nctrl,mvsiz),vrx(mvsiz,8),
111 . vry(mvsiz,8),vrz(mvsiz,8),sti(mvsiz),stir(mvsiz),viscm(mvsiz),
112 . viscr(mvsiz),
113 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
114 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
115 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
116 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
117 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,sx(mvsiz) ,
118 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
119 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
120 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
121 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
122 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz),
123 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
124 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
125 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
126 . kx ,ky ,kz, zr, zs, zt
127
128 my_real
129 . volo(mvsiz),dte(mvsiz),pgauss,detjac
130 my_real
131 . r(nctrl),drdxi(3,nctrl),knotlocx(px+1,nctrl,mvsiz),
132 . knotlocy(py+1,nctrl,mvsiz),knotlocz(pz+1,nctrl,mvsiz),
133 . knotlocelx(2,mvsiz),
134 . knotlocely(2,mvsiz),knotlocelz(2,mvsiz)
135 my_real
136 . tbid(mvsiz), tbid2(8,mvsiz) ! probably need to change the shape and the name
137C-----------------------------------------------
138 TYPE(G_BUFEL_) ,POINTER :: GBUF
139 TYPE(L_BUFEL_) ,POINTER :: LBUF
140 TYPE(BUF_MAT_) ,POINTER :: MBUF
141C-----------------------------------------------
142 double precision
143 . w_gauss(9,9),a_gauss(9,9)
144 DATA w_gauss /
145 1 2.d0 ,0.d0 ,0.d0 ,
146 1 0.d0 ,0.d0 ,0.d0 ,
147 1 0.d0 ,0.d0 ,0.d0 ,
148 2 1.d0 ,1.d0 ,0.d0 ,
149 2 0.d0 ,0.d0 ,0.d0 ,
150 2 0.d0 ,0.d0 ,0.d0 ,
151 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
152 3 0.d0 ,0.d0 ,0.d0 ,
153 3 0.d0 ,0.d0 ,0.d0 ,
154 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
155 4 0.347854845137454d0,0.d0 ,0.d0 ,
156 4 0.d0 ,0.d0 ,0.d0 ,
157 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
158 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
159 5 0.d0 ,0.d0 ,0.d0 ,
160 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
161 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
162 6 0.d0 ,0.d0 ,0.d0 ,
163 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
164 7 0.417959183673469d0,0.381830050505119d0,0.279705391489277d0,
165 7 0.129484966168870d0,0.d0 ,0.d0 ,
166 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
167 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
168 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
169 9 0.081274388361574d0,0.180648160694857d0,0.260610696402935d0,
170 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
171 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
172 DATA a_gauss /
173 1 0.d0 ,0.d0 ,0.d0 ,
174 1 0.d0 ,0.d0 ,0.d0 ,
175 1 0.d0 ,0.d0 ,0.d0 ,
176 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
177 2 0.d0 ,0.d0 ,0.d0 ,
178 2 0.d0 ,0.d0 ,0.d0 ,
179 3 -.774596669241483d0,0.d0 ,0.774596669241483d0,
180 3 0.d0 ,0.d0 ,0.d0 ,
181 3 0.d0 ,0.d0 ,0.d0 ,
182 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
183 4 0.861136311594053d0,0.d0 ,0.d0 ,
184 4 0.d0 ,0.d0 ,0.d0 ,
185 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
186 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
187 5 0.d0 ,0.d0 ,0.d0 ,
188 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
189 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
190 6 0.d0 ,0.d0 ,0.d0 ,
191 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
192 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
193 7 0.949107912342759d0,0.d0 ,0.d0 ,
194 8 -.960289856497536d0,-.796666477413627d0,-.525532409916329d0,
195 8 -.183434642495650d0,0.183434642495650d0,0.525532409916329d0,
196 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
197 9 -.968160239507626d0,-.836031107326636d0,-.613371432700590d0,
198 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
199 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0/
200C
201C=======================================================================
202C S o u r c e L i n e s
203C=======================================================================
204C
205 gbuf => elbuf_str%GBUF
206 bid = zero
207 ibid = 0
208 igtyp = iparg(38)
209 mass = zero
210 knotlocx = zero
211 knotlocy = zero
212 knotlocz = zero
213 knotlocelx = zero
214 knotlocely = zero
215 knotlocelz = zero
216 DO i=lft,llt
217 tbid(i)=zero
218 DO j=1,nctrl
219 mass(j,i) = zero
220 ENDDO
221 DO j=1,8
222 tbid2(j,i)=zero
223 ENDDO
224 ENDDO
225C
226 nf1=nft+1
227C-----------------------------------------------
228 DO i=lft,llt
229 DO j=1,nctrl ! Ixi ... certainly outside Numnod
230 xx(j,i)=x(1,ixig3d(kxig3d(4,i+nft)+j-1))
231 yy(j,i)=x(2,ixig3d(kxig3d(4,i+nft)+j-1))
232 zz(j,i)=x(3,ixig3d(kxig3d(4,i+nft)+j-1))
233 vx(j,i)=v(1,ixig3d(kxig3d(4,i+nft)+j-1))
234 vy(j,i)=v(2,ixig3d(kxig3d(4,i+nft)+j-1))
235 vz(j,i)=v(3,ixig3d(kxig3d(4,i+nft)+j-1))
236 ww(j,i)=1!WIGE(IXIG3D(KXIG3D(4,I+NFT)+J-1))
237 DO k=1,px+1
238 knotlocx(k,j,i)=knotlocpc(k,1,(kxig3d(2,i+nft)-1)*numnod+ixig3d(kxig3d(4,i+nft)+j-1))
239 ENDDO
240 DO k=1,py+1
241 knotlocy(k,j,i)=knotlocpc(k,2,(kxig3d(2,i+nft)-1)*numnod+ixig3d(kxig3d(4,i+nft)+j-1))
242 ENDDO
243 DO k=1,pz+1
244 knotlocz(k,j,i)=knotlocpc(k,3,(kxig3d(2,i+nft)-1)*numnod+ixig3d(kxig3d(4,i+nft)+j-1))
245 ENDDO
246 ENDDO
247 el_id(i)=kxig3d(5,i+nft)
248 idx(i) = kxig3d(6,i+nft)
249 idy(i) = kxig3d(7,i+nft)
250 idz(i) = kxig3d(8,i+nft)
251 idx2(i) = kxig3d(9,i+nft)
252 idy2(i) = kxig3d(10,i+nft)
253 idz2(i) = kxig3d(11,i+nft)
254 knotlocelx(1,i) = knotlocel(1,1,i+nft)
255 knotlocely(1,i) = knotlocel(1,2,i+nft)
256 knotlocelz(1,i) = knotlocel(1,3,i+nft)
257 knotlocelx(2,i) = knotlocel(2,1,i+nft)
258 knotlocely(2,i) = knotlocel(2,2,i+nft)
259 knotlocelz(2,i) = knotlocel(2,3,i+nft)
260 ENDDO
261 ipid = iparg(62)
262 iad_knot = igeo(40,ipid)
263 n1 = igeo(44,ipid)
264 n2 = igeo(45,ipid)
265 n3 = igeo(46,ipid)
266 nknot1 = n1+px
267 nknot2 = n2+py
268 nknot3 = n3+pz
269C-----------------------------------------------
270 DO i=lft,llt
271 iprop(i)=kxig3d(2,i+nft)
272 imat(i) =kxig3d(1,i+nft)
273 ENDDO
274C----------------------------------------
275C INITIALISATION
276C----------------------------------------
277 IF(igtyp == 47) THEN
278
279 DO itel=lft,llt
280 gbuf%VOL(itel)=zero
281 ENDDO
282
283 CALL sczero3(gbuf%RHO,gbuf%SIG,gbuf%EINT,nel)
284
285 n=0
286
287 DO i=1,px
288 DO j=1,py
289 DO k=1,pz
290
291 lbuf => elbuf_str%BUFLY(1)%LBUF(i,j,k)
292 mbuf => elbuf_str%BUFLY(1)%MAT(i,j,k)
293 n=n+1
294
295 DO itel=lft,llt
296
297 lbuf%RHO(itel) = pm(89,imat(itel))
298 zr = a_gauss(i,px)
299 zs = a_gauss(j,py)
300 zt = a_gauss(k,pz)
301 pgauss=w_gauss(i,px)*w_gauss(j,py)*w_gauss(k,pz)
302
303c CALL IG3DDERIV(
304c 1 ITEL ,N ,XX(:,ITEL) ,YY(:,ITEL),
305c 2 ZZ(:,ITEL),WW(:,ITEL) ,IDX(ITEL) ,IDY(ITEL) ,
306c 3 IDZ(ITEL) ,DRDXI ,R ,DETJAC ,
307c 4 NCTRL ,ZR ,ZS ,ZT ,
308c 5 KNOT(IAD_KNOT+1),KNOT(IAD_KNOT+NKNOT1+1),KNOT(IAD_KNOT+NKNOT1+NKNOT2+1),PX-1,
309c 6 PY-1 ,PZ-1 ,1)
310
311 CALL ig3donederiv(
312 1 itel ,n ,xx(:,itel) ,yy(:,itel),
313 2 zz(:,itel),ww(:,itel) ,idx(itel) ,idy(itel) ,
314 3 idz(itel) ,knotlocx(:,:,itel) ,knotlocy(:,:,itel),knotlocz(:,:,itel) ,
315 4 drdxi ,r ,detjac ,nctrl ,
316 5 zr ,zs ,zt ,knot(iad_knot+1),
317 6 knot(iad_knot+nknot1+1),knot(iad_knot+nknot1+nknot2+1),px-1,
318 7 py-1 ,pz-1 ,1 ,
319 8 idx2(itel),idy2(itel) ,idz2(itel) ,
320 9 knotlocelx(:,itel),knotlocely(:,itel),knotlocelz(:,itel))
321
322 lbuf%VOL(itel)= pgauss*detjac
323
324 IF (px*py*pz/=1) THEN
325 gbuf%VOL(itel)=gbuf%VOL(itel) + lbuf%VOL(itel)
326 ENDIF
327
328C----------------------------------------
329C initialization of the masses
330C----------------------------------------
331
332 CALL ig3dmass3(
333 1 lbuf%RHO,ms ,partsav ,xx ,yy ,
334 2 zz ,vx ,vy ,vz ,ipartig3d(nf1),
335 3 msig3d ,lbuf%VOL,tbid ,tbid2 ,bid ,
336 4 bid ,bid ,tbid ,tbid ,tbid ,
337 5 tbid2 ,tbid ,bid ,bid ,nctrl ,
338 6 kxig3d ,ixig3d ,r ,detjac ,pgauss ,
339 7 itel)
340
341 ENDDO
342
343 CALL matini(pm ,ixig3d ,sixig3d ,x ,
344 1 geo ,ale_connectivity ,detonators,iparg ,
345 2 sigi ,nel ,skew ,igeo ,
346 3 ipart ,ipartig3d ,
347 4 imat ,ipm ,nsigs ,numsol ,ptsol ,
348 5 ibid ,ngl ,npf ,tf ,bufmat ,
349 6 gbuf ,lbuf ,mbuf ,elbuf_str,ibid ,
350 7 tbid ,tbid ,tbid ,mat_param )
351
352C------------------------------------------
353C calculation of the elementary dt
354C------------------------------------------
355 CALL dtmain(geo ,pm ,ipm ,iprop ,imat ,fv ,
356 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat,
357 . tbid ,tbid ,tbid ,tbid ,igeo ,igtyp)
358
359 ENDDO
360 ENDDO
361 ENDDO
362
363 IF (px*py*pz/=1) THEN
364
365 DO i=1,px
366 DO j=1,py
367 DO k=1,pz
368
369 lbuf => elbuf_str%BUFLY(1)%LBUF(i,j,k)
370
371 CALL svalue0(
372 1 lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx ,
373 2 gbuf%RHO,gbuf%VOL,gbuf%OFF,gbuf%SIG,gbuf%EINT,dtx0,
374 3 nel )
375
376 ENDDO
377 ENDDO
378 ENDDO
379 ENDIF
380
381C------------------------------------------
382C assembly of nodal volumes and nodal modules
383C (for interface stiffnesses)
384C------------------------------------------
385 IF(i7stifs/=0)THEN
386 CALL bulkige3(gbuf%VOL ,nctrl ,imat ,pm ,
387 2 vnige(1,nf1),bnige(1,nf1),px ,
388 3 py ,pz ,nctrlmax )
389 ENDIF
390
391 ENDIF
392
393C------------------------------------------
394
395 RETURN
subroutine bulkige3(volu, nctrl, mat, pm, vnige, bnige, px, py, pz, nctrlmax)
Definition bulkigeo3.F:31
#define my_real
Definition cppsort.cpp:32
subroutine dtmain(geo, pm, ipm, pid, mat, fv, eint, temp, deltax, rk, re, bufmat, ddeltax, aire, vol, dtx, igeo, igtyp)
Definition dtmain.F:68
subroutine ig3dmass3(rho, ms, partsav, x, y, z, vx, vy, vz, ipart, msig3d, volu, msnf, mssf, in, vr, ins, wma, rhocp, mcp, mcps, mssa, rhof, frac, nctrl, kxig3d, ixig3d, r, detjac, pgauss, i)
Definition ig3dmass3.F:37
subroutine matini(pm, ix, nix, x, geo, ale_connectivity, detonators, iparg, sigi, nel, skew, igeo, ipart, ipartel, mat, ipm, nsig, nums, pt, ipt, ngl, npf, tf, bufmat, gbuf, lbuf, mbuf, elbuf_str, iloadp, facload, ddeltax, tempel, mat_param)
Definition matini.F:83
integer, parameter nchartitle
subroutine sczero3(rhog, sigg, eintg, nel)
Definition scinit3.F:535
subroutine svalue0(rho, vol, off, sig, eint, dtx, rhog, volg, offg, sigg, eintg, dtxg, nel)
Definition scinit3.F:490
subroutine ig3donederiv(itel, n, xxi, yyi, zzi, wwi, idx, idy, idz, knotlocx, knotlocy, knotlocz, drdx, r, detjac, nctrl, gaussx, gaussy, gaussz, kx, ky, kz, px, py, pz, boolg, idx2, idy2, idz2, knotlocelx, knotlocely, knotlocelz)