OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
qinit2.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!|| qinit2 ../starter/source/elements/solid_2d/quad/qinit2.F
25!||--- called by ------------------------------------------------------
26!|| initia ../starter/source/elements/initia/initia.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| atheri ../starter/source/ale/atheri.F
30!|| aturi2 ../starter/source/ale/ale2d/aturi2.F
31!|| dtmain ../starter/source/materials/time_step/dtmain.F
32!|| edlen2 ../starter/source/ale/ale2d/edlen2.F
33!|| fretitl2 ../starter/source/starter/freform.F
34!|| matini ../starter/source/materials/mat_share/matini.F
35!|| qcoor2 ../starter/source/elements/solid_2d/quad/qcoor2.F
36!|| qdlen2 ../starter/source/elements/solid_2d/quad/qdlen2.F
37!|| qmasi2 ../starter/source/elements/solid_2d/quad/qmasi2.F
38!|| qmorth2 ../starter/source/elements/solid_2d/quad/qmorth2.f
39!|| qrcoor2 ../starter/source/elements/solid_2d/quad/qrcoor2.F
40!|| qvoli2 ../starter/source/elements/solid_2d/quad/qvoli2.F
41!||--- uses -----------------------------------------------------
42!|| detonators_mod ../starter/share/modules1/detonators_mod.F
43!|| message_mod ../starter/share/message_module/message_mod.F
44!||====================================================================
45 SUBROUTINE qinit2(ELBUF_STR ,MS ,IXQ ,PM ,X ,
46 . DETONATORS ,GEO ,VEUL ,ALE_CONNECTIVITY ,IPARG ,
47 . DTELEM ,SIGI ,IGEO ,
48 . NEL ,SKEW ,MSQ ,IPART ,IPARTQ ,
49 . IPM ,NSIGS ,
50 . WMA ,PTQUAD ,BUFMAT ,NPF ,TF ,
51 . IPARGG ,ILOADP ,FACLOAD ,PARTSAV ,V ,MAT_PARAM)
52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE elbufdef_mod
56 USE message_mod
60 USE matparam_def_mod
61 use element_mod , only : nixq
62C-----------------------------------------------
63C I m p l i c i t T y p e s
64C-----------------------------------------------
65#include "implicit_f.inc"
66C-----------------------------------------------
67C G l o b a l P a r a m e t e r s
68C-----------------------------------------------
69#include "mvsiz_p.inc"
70C-----------------------------------------------
71C C o m m o n B l o c k s
72C-----------------------------------------------
73#include "com04_c.inc"
74#include "param_c.inc"
75#include "scry_c.inc"
76#include "vect01_c.inc"
77#include "scr17_c.inc"
78C-----------------------------------------------
79C D u m m y A r g u m e n t s
80C-----------------------------------------------
81 INTEGER IXQ(NIXQ,*), IPARG(*),IGEO(NPROPGI,*),
82 . NEL,IPART(LIPART1,*),IPARTQ(*),IPM(NPROPMI,*), PTQUAD(*),
83 . NSIGS, NPF(*),IPARGG(*)
84 my_real
85 . MS(*), PM(NPROPM,*), X(*), GEO(NPROPG,*),
86 . VEUL(10,*), DTELEM(*),SIGI(NSIGS,*),SKEW(LSKEW,*),
87 . msq(*), bufmat(*), tf(*),wma(*),partsav(20,*),v(*)
88 TYPE(elbuf_struct_), TARGET :: ELBUF_STR
89 INTEGER,INTENT(IN) :: ILOADP(SIZLOADP,*)
90 my_real,INTENT(IN) :: facload(lfacload,*)
91 TYPE(detonators_struct_)::DETONATORS
92 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
93 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
94C-----------------------------------------------
95C L o c a l V a r i a b l e s
96C-----------------------------------------------
97 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ)
98 INTEGER NF1, I, IGTYP, IP, IBID, IPID1
99 my_real e1y(mvsiz),e1z(mvsiz),e2y(mvsiz),e2z(mvsiz),
100 . bid(1), dtx(mvsiz),
101 . sy(mvsiz) ,sz(mvsiz) ,ty(mvsiz) ,tz(mvsiz)
102 my_real fv
103 CHARACTER(LEN=NCHARTITLE)::TITR
104 TYPE(g_bufel_) ,POINTER :: GBUF
105 TYPE(l_bufel_), POINTER :: LBUF
106 TYPE(BUF_MAT_) ,POINTER :: MBUF
107 my_real Y1(MVSIZ), Y2(MVSIZ), Y3(MVSIZ), Y4(MVSIZ),
108 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
109 . aire(mvsiz), deltax(mvsiz)
110 my_real :: tempel(nel)
111 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ)
112C-----------------------------------------------
113C S o u r c e L i n e s
114C=======================================================================
115 gbuf => elbuf_str%GBUF
116 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
117 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
118c
119 igtyp = iparg(38)
120 jcvt = iparg(37)
121 ibid = 0
122 bid = zero
123 tempel(:) = zero
124 nf1 = nft+1
125c
126 IF(jcvt == 0)THEN
127 CALL qcoor2(x,ixq(1,nf1),ngl,mat,
128 . pid, ix1, ix2, ix3, ix4,
129 . y1, y2, y3, y4,
130 . z1, z2, z3, z4,
131 . sy, sz, ty, tz)
132 ELSE
133 CALL qrcoor2(x ,ixq(1,nf1),ngl ,mat ,
134 . pid, ix1, ix2, ix3, ix4,
135 . y1, y2, y3, y4,
136 . z1, z2, z3, z4,
137 . sy, sz, ty, tz,
138 . e1y, e1z, e2y, e2z)
139 END IF
140 IF (igtyp == 6) CALL qmorth2(pid ,geo ,igeo ,gbuf%GAMA, nel,
141 . sy ,sz ,ty ,tz ,
142 . e1y ,e1z , e2y, e2z)
143 CALL qvoli2(gbuf%VOL,ixq(1,nf1),
144 . ngl, aire,
145 . y1, y2, y3, y4,
146 . z1, z2, z3 ,z4)
147 CALL qdlen2(iparg(63),
148 . aire, deltax,
149 . y1, y2, y3, y4,
150 . z1, z2, z3, z4)
151 IF(jeul/=0) CALL edlen2(veul(1,nf1), aire, deltax)
152C
153 ip=0
154 CALL matini(pm ,ixq ,nixq ,x ,
155 . geo ,ale_connectivity ,detonators,iparg ,
156 . sigi ,nel ,skew ,igeo ,
157 . ipart ,ipartq ,
158 . mat ,ipm ,nsigs ,numquad ,ptquad ,
159 . ip ,ngl ,npf ,tf ,bufmat ,
160 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
161 . facload, deltax ,tempel ,mat_param )
162C----------------------------------------
163C initialization of thermal and turbulence
164C----------------------------------------
165 IF (jthe/=0) CALL atheri(mat,pm,gbuf%TEMP)
166 IF (jtur/=0) CALL aturi2(ipargg ,gbuf%RHO,pm,ixq,x,
167 . gbuf%RK,gbuf%RE, aire)
168C------------------------------------------
169C initialization of the mass matrix
170C------------------------------------------
171 IF (jlag+jale+jeul/=0)
172 . CALL qmasi2(pm,mat,ms,gbuf%VOL,msq(nf1),wma,ipartq(nft+1),partsav,
173 . ix1, ix2, ix3, ix4 ,x ,v)
174C-------------------------------------------
175C calculation of elementary timesteps (dt)
176C-------------------------------------------
177 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
178 . gbuf%EINT ,gbuf%TEMP ,gbuf%DELTAX ,gbuf%RK ,gbuf%RE ,bufmat, deltax, aire,
179 . gbuf%VOL, dtx, igeo,igtyp)
180c
181 DO i=lft,llt
182 IF(ixq(6,i+nft)/=0) THEN
183 IF (igtyp/=0 .AND. igtyp/=6 .AND.
184 . igtyp/=14.AND.igtyp/=15)THEN
185 ipid1=ixq(nixq-1,i+nft)
186 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid1),ltitr)
187 CALL ancmsg(msgid=226,
188 . msgtype=msgerror,
189 . anmode=aninfo_blind_1,
190 . i1=igeo(1,ipid1),
191 . c1=titr,
192 . i2=igtyp)
193 ENDIF
194 ENDIF
195 dtelem(nft+i)=dtx(i)
196 ENDDO
197C-----------
198 RETURN
199 END
subroutine atheri(mat, pm, temp)
Definition atheri.F:42
subroutine aturi2(iparg, rho, pm, ix, x, rk, re, aire)
Definition aturi2.F: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 edlen2(veul, aire, deltax)
Definition edlen2.F:31
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 qinit2(elbuf_str, ms, ixq, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, igeo, nel, skew, msq, ipart, ipartq, ipm, nsigs, wma, ptquad, bufmat, npf, tf, ipargg, iloadp, facload, partsav, v, mat_param)
Definition qinit2.F:52
subroutine qmasi2(pm, mat, ms, vol, msq, wma, ipart, partsav, ix1, ix2, ix3, ix4, x, v)
Definition qmasi2.F:33
subroutine qmorth2(pid, geo, igeo, gama, nel, ry, rz, sy, sz, e1y, e1z, e2y, e2z)
Definition qmorth2.F:37
subroutine qvoli2(volu, ixq, ngl, aire, y1, y2, y3, y4, z1, z2, z3, z4)
Definition qvoli2.F:40
subroutine qcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz)
Definition qcoor2.F:38
subroutine qdlen2(iparg, aire, deltax, y1, y2, y3, y4, z1, z2, z3, z4)
Definition qdlen2.F:39
subroutine qrcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz, e1y, e1z, e2y, e2z)
Definition qrcoor2.F:35
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895
subroutine fretitl2(titr, iasc, l)
Definition freform.F:799
program starter
Definition starter.F:39