OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3dt3.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "com08_c.inc"
#include "scr02_c.inc"
#include "scr07_c.inc"
#include "scr17_c.inc"
#include "scr18_c.inc"
#include "sms_c.inc"
#include "units_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine c3dt3 (jft, jlt, pm, off, dt2t, neltst, ityptst, sti, stir, offg, ssp, viscmx, ismstr, nft, iofc, alpe, mstg, dmeltg, jsms, ptg, shf, igtyp, igmat, g, a1, a11r, g_dt, dtel, aldt, thk0, area, ngl, imat, mtn, nel, zoffset)

Function/Subroutine Documentation

◆ c3dt3()

subroutine c3dt3 ( integer jft,
integer jlt,
pm,
off,
dt2t,
integer neltst,
integer ityptst,
sti,
stir,
offg,
ssp,
viscmx,
integer ismstr,
integer nft,
integer iofc,
alpe,
mstg,
dmeltg,
integer jsms,
ptg,
shf,
integer igtyp,
integer igmat,
g,
a1,
a11r,
integer, intent(in) g_dt,
intent(inout) dtel,
aldt,
thk0,
area,
integer, dimension(mvsiz) ngl,
integer imat,
integer mtn,
integer, intent(in) nel,
intent(in) zoffset )

Definition at line 31 of file c3dt3.F.

39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43#include "comlock.inc"
44C-----------------------------------------------
45C G l o b a l P a r a m e t e r s
46C-----------------------------------------------
47#include "mvsiz_p.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "param_c.inc"
52#include "com08_c.inc"
53#include "scr02_c.inc"
54#include "scr07_c.inc"
55#include "scr17_c.inc"
56#include "scr18_c.inc"
57#include "sms_c.inc"
58#include "units_c.inc"
59C-----------------------------------------------
60C D u m m y A r g u m e n t s
61C-----------------------------------------------
62 INTEGER JFT, JLT,NELTST,ITYPTST,ISMSTR,NFT,IOFC, JSMS,IGTYP,
63 . IGMAT,IMAT,MTN
64 INTEGER NGL(MVSIZ)
66 . pm(npropm,*), off(*),sti(*),stir(*),offg(*),ssp(mvsiz),
67 . viscmx(mvsiz),dt2t, mstg(*), dmeltg(*), ptg(3,*),shf(*), g(mvsiz),
68 . a11r(mvsiz),a1(mvsiz),aldt(mvsiz),thk0(mvsiz),area(mvsiz),alpe(mvsiz)
69 INTEGER,INTENT(IN) :: G_DT, NEL
70 my_real,DIMENSION(JLT), INTENT(INOUT) :: dtel
71 my_real,DIMENSION(NEL),INTENT(IN) :: zoffset
72C-----------------------------------------------
73C L o c a l V a r i a b l e s
74C-----------------------------------------------
75 INTEGER INDX(MVSIZ),I, II, NINDX,IDT
76 my_real dt(mvsiz)
77 my_real athk, mmin,fac
78C=======================================================================
79 DO i=jft,jlt
80 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
81 aldt(i) = aldt(i)*viscmx(i) / sqrt(alpe(i))
82 ENDDO
83c---------------------------------------------------
84C
85 IF (nodadt/=0) THEN
86 IF(igtyp == 52 .OR.
87 . ((igtyp == 11 .OR. igtyp == 17 .OR. igtyp == 51)
88 . .AND. igmat > 0 )) THEN
89 DO i=jft,jlt
90 IF (off(i)==zero) THEN
91 sti(i) = zero
92 stir(i) = zero
93 ELSE
94 athk = area(i) * thk0(i)
95 sti(i) = athk * a1(i) / aldt(i)**2
96 fac =a11r(i)*area(i)/ aldt(i)**2
97 stir(i) = fac*(one_over_12* thk0(i)**3 + thk0(i)*zoffset(i)*zoffset(i)
98 . + thk0(i)*half * shf(i) * area(i) * g(i)/a1(i))
99 ENDIF
100 ENDDO
101 ELSE
102 DO i=jft,jlt
103 a1(i) = pm(24,imat)
104 g(i) = pm(22,imat)
105 ENDDO
106 IF (mtn == 58 .or. mtn == 158) CALL cssp2a11(pm ,imat ,ssp ,a1 ,jlt )
107 DO i=jft,jlt
108 IF (off(i)==zero) THEN
109 sti(i) = zero
110 stir(i) = zero
111 ELSE
112 athk = area(i) * thk0(i)
113 sti(i) = athk * a1(i) / aldt(i)**2
114 stir(i) = sti(i) * (thk0(i) * thk0(i) * one_over_12
115 . + half * shf(i) * area(i) * g(i)/a1(i))
116c STI(I) = 0.5 * ATHK * A1(I) / ALDT(I)**2
117c STIR(I) = STI(I) * (THK0(I) * THK0(I) / 12.
118c . + AREA(I) /9.)
119 ENDIF
120 ENDDO
121 ENDIF
122C
123 ELSEIF(idtmins == 2)THEN
124 IF(igtyp == 52 .OR.
125 . ((igtyp == 11 .OR. igtyp == 17 .OR. igtyp == 51)
126 . .AND. igmat > 0 )) THEN
127 DO i=jft,jlt
128 IF (off(i)==zero) THEN
129 sti(i) = zero
130 stir(i) = zero
131 ELSE
132 athk = area(i) * thk0(i)
133 sti(i) = athk * a1(i) / aldt(i)**2
134 fac = a11r(i)*area(i)/ aldt(i)**2
135 stir(i) = fac * (one_over_12* (thk0(i)**3) + thk0(i)*zoffset(i)*zoffset(i)
136 . + half * thk0(i)*shf(i) * area(i) * g(i)/a1(i))
137 ENDIF
138 END DO
139 ELSE
140 DO i=jft,jlt
141 a1(i) = pm(24,imat)
142 g(i) = pm(22,imat)
143 ENDDO
144 DO i=jft,jlt
145 IF (off(i)==zero) THEN
146 sti(i) = zero
147 stir(i) = zero
148 ELSE
149 athk = area(i) * thk0(i)
150 sti(i) = athk * a1(i) / aldt(i)**2
151 stir(i) = sti(i) * (thk0(i) * thk0(i) * one_over_12
152 . + half * shf(i) * area(i) * g(i)/a1(i))
153 ENDIF
154 END DO
155 ENDIF
156C
157 IF(jsms /= 0)THEN
158 DO i=jft,jlt
159 IF(offg(i) < zero .OR. off(i) == zero) cycle
160c
161 mmin=mstg(i)*min(ptg(1,i),ptg(2,i),ptg(3,i))
162c
163c dmelc = 2*dmelc !!
164c w^2 < 2k / (m+dmelc+dmelc/2) < 2k / (m+dmelc)
165c dt = 2/w = sqrt( 2*(m+dmelc)/k)
166 dmeltg(i)=max(dmeltg(i),
167 . (dtmins/dtfacs)**2 * sti(i) - two*mmin)
168 dt(i) = dtfacs*
169 . sqrt((two*mmin+dmeltg(i))/max(em20,sti(i)))
170 IF(dt(i)<dt2t)THEN
171 dt2t = dt(i)
172 neltst = ngl(i)
173 ityptst = 7
174 END IF
175 END DO
176 ENDIF
177C
178 ENDIF
179C
180 DO i=jft,jlt
181 dt(i)=dtfac1(7)*aldt(i)/ssp(i)
182 END DO
183 IF(g_dt/=zero)THEN
184 DO i=jft,jlt
185 dtel(i) = dt(i)
186 ENDDO
187 ENDIF
188C
189 IF (idtmin(7)==0) RETURN
190C
191 nindx=iofc
192 IF(idtmin(7)==1)THEN
193 DO 100 i=jft,jlt
194 IF(dt(i)>dtmin1(7).OR.off(i)<one
195 . .OR.offg(i)==two.OR.offg(i)<zero) GO TO 100
196 tstop = tt
197C
198#include "lockon.inc"
199 WRITE(iout,1000) ngl(i)
200 WRITE(istdo,1000) ngl(i)
201#include "lockoff.inc"
202 100 CONTINUE
203 ELSEIF(idtmin(7)==2)THEN
204 DO 120 i=jft,jlt
205 IF(dt(i)>dtmin1(7).OR.off(i)<one
206 . .OR.offg(i)<zero) GO TO 120
207 off(i)=zero
208
209 ii=i+nft
210 nindx=nindx+1
211 indx(nindx)=i
212 idel7nok = 1
213C
214#include "lockon.inc"
215 WRITE(iout,1200) ngl(i)
216 WRITE(istdo,1300) ngl(i),tt
217#include "lockoff.inc"
218 120 CONTINUE
219 iofc = nindx
220 ELSEIF(ismstr==2.AND.idtmin(7)==3)THEN
221 DO 140 i=jft,jlt
222 IF(dt(i)>dtmin1(7).OR.
223 . off(i)<one.OR.offg(i)==two.OR.offg(i)<zero) GO TO 140
224 offg(i)=two
225C
226#include "lockon.inc"
227 WRITE(iout,1400) ngl(i)
228 WRITE(istdo,1400) ngl(i)
229#include "lockoff.inc"
230 140 CONTINUE
231 ELSEIF(idtmin(7)==5)THEN
232 DO 150 i=jft,jlt
233 IF(dt(i)>dtmin1(7).OR.off(i)<one.
234 . or.offg(i)==two.OR.offg(i)<zero) GO TO 150
235 mstop = 2
236C
237#include "lockon.inc"
238 WRITE(iout,1000) ngl(i)
239 WRITE(istdo,1000) ngl(i)
240#include "lockoff.inc"
241 150 CONTINUE
242 ENDIF
243C
244 IF(nodadt/=0.OR.(idtmins==2.AND.jsms/=0))RETURN
245C
246C- VECTOR
247 idt=0
248 DO i=jft,jlt
249 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t) idt=1
250 ENDDO
251C- NON VECTOR
252 IF(idt==1)THEN
253 DO i=jft,jlt
254 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t)THEN
255 dt2t = dt(i)
256 neltst = ngl(i)
257 ityptst = 7
258 ENDIF
259 ENDDO
260 ENDIF
261C
262 IF(idtmins==2)RETURN
263C
264 DO i=jft,jlt
265 sti(i) = area(i) * thk0(i) * a1(i) / aldt(i)**2
266 sti(i) = zep81 * zep81 * sti(i) * off(i)
267 stir(i)= zero
268 ENDDO
269C-----------
270 1000 FORMAT(1x,'-- MINIMUM TIME STEP 3N SHELL ELEMENT NUMBER ',i10)
271 1200 FORMAT(1x,'-- DELETE 3N SHELL ELEMENT NUMBER ',i10)
272 1300 FORMAT(1x,'-- DELETE 3N SHELL ELEMENT :',i10,' AT TIME :',g11.4)
273 1400 FORMAT(1x,'-- CONSTANT TIME STEP 3N SHELL ELEMENT NUMBER ',i10)
274C-----------
275 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine cssp2a11(pm, imat, ssp, a11, nel)
Definition cssp2a11.F:32
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
Definition dtel.F:46
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21