OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cdt3.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "mvsiz_p.inc"
#include "com01_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 cdt3 (jft, jlt, ym, off, dt2t, neltst, ityptst, sti, stir, offg, dtc, ndt, dt2c, ixc, ssp, viscmx, px1, px2, py1, py2, vol0, vol00, rho, aldt, alpe, indxof, ngl, ismstr, iofc, msc, dmelc, jsms, g_dt, dtel)

Function/Subroutine Documentation

◆ cdt3()

subroutine cdt3 ( integer jft,
integer jlt,
ym,
off,
dt2t,
integer neltst,
integer ityptst,
sti,
stir,
offg,
dtc,
integer, dimension(*) ndt,
dt2c,
integer, dimension(nixc,*) ixc,
ssp,
viscmx,
px1,
px2,
py1,
py2,
vol0,
vol00,
rho,
aldt,
alpe,
integer, dimension(mvsiz) indxof,
integer, dimension(mvsiz) ngl,
integer ismstr,
integer iofc,
msc,
dmelc,
integer jsms,
integer, intent(in) g_dt,
dimension(jft:jlt), intent(inout) dtel )

Definition at line 29 of file cdt3.F.

36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40#include "comlock.inc"
41C-----------------------------------------------
42C G l o b a l P a r a m e t e r s
43C-----------------------------------------------
44#include "mvsiz_p.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "com01_c.inc"
49#include "com08_c.inc"
50#include "scr02_c.inc"
51#include "scr07_c.inc"
52#include "scr17_c.inc"
53#include "scr18_c.inc"
54#include "sms_c.inc"
55#include "units_c.inc"
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER NDT(*),IXC(NIXC,*),INDXOF(MVSIZ),NGL(MVSIZ),
60 . JFT, JLT,NELTST,ITYPTST,NINDX,ISMSTR,IOFC, JSMS
62 . ym(*), off(*),sti(*),stir(*),offg(*),dtc(*),
63 . ssp(*), dt2c(*),viscmx(*),vol0(*),vol00(*),
64 . px1(*), px2(*), py1(*), py2(*), rho(*), aldt(*), alpe(*),
65 . dt2t,
66 . msc(*), dmelc(*)
67 my_real,INTENT(INOUT) :: dtel(jft:jlt)
68 INTEGER,INTENT(IN) :: G_DT
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER J, I, II,IDT
74 . dt(mvsiz)
75 my_real divm,mas
76C=======================================================================
77 IF(idtmins == 2 .AND. jsms /= 0)THEN
78 DO i=jft,jlt
79 IF(offg(i) < zero .OR. off(i) == zero) cycle
80c
81c dmelc = 2*dmelc !!
82c w^2 < 2k / (m+dmelc+dmelc/3) < 2k / (m+dmelc)
83c dt = 2/w = sqrt( 2*(m+dmelc)/k)
84 dmelc(i)=max(dmelc(i),
85 . (dtmins/dtfacs)**2 * sti(i) - two*msc(i))
86 dt(i) = dtfacs*
87 . sqrt((two*msc(i)+dmelc(i))/max(em20,sti(i)))
88 IF(dt(i)<dt2t)THEN
89 dt2t = dt(i)
90 neltst = ngl(i)
91 ityptst = 3
92 END IF
93 END DO
94C
95 IF(idtmin(3)/=0)THEN
96 DO i=jft,jlt
97 mas = vol00(i)*rho(i)
98 dt(i) = dtfac1(3)*sqrt(half*mas/max(em20,sti(i)))
99 ENDDO
100 END IF
101C
102 ELSEIF(idt1sh==1.OR.idtmins==2)THEN
103 DO i=jft,jlt
104 mas = vol00(i)*rho(i)
105 dt(i) = dtfac1(3)*sqrt(half*mas/max(em20,sti(i)))
106 ENDDO
107 ELSE
108 DO i=jft,jlt
109 aldt(i)=aldt(i)*viscmx(i)
110 . / sqrt(alpe(i))
111 dt(i)=dtfac1(3)*aldt(i)/ssp(i)
112 ENDDO
113 ENDIF
114
115C------------------------------
116 IF(nodadt == 0)THEN
117 IF(idtmin(3) == 0)RETURN
118 ENDIF
119C------------------------------
120 IF(g_dt /= zero)THEN
121 DO i=jft,jlt
122 dtel(i) = dt(i)
123 ENDDO
124 ENDIF
125C------------------------------
126 IF(idtmin(3) == 1)THEN
127 nindx=iofc
128 DO i=jft,jlt
129 IF(dt(i) > dtmin1(3) .OR. off(i) < one .OR. offg(i) == two .OR. offg(i) < zero) cycle
130 nindx=nindx+1
131 indxof(nindx)=i
132 ENDDO
133C
134 DO j=iofc+1,nindx
135 i = indxof(j)
136 tstop = tt
137#include "lockon.inc"
138 WRITE(iout,1000) ngl(i)
139 WRITE(istdo,1000) ngl(i)
140#include "lockoff.inc"
141 ENDDO
142 nindx=iofc
143 ELSEIF(idtmin(3)==2)THEN
144 nindx=iofc
145 DO i=jft,jlt
146 IF(dt(i)>dtmin1(3).OR.off(i)<one .OR.offg(i)<zero) cycle
147 nindx=nindx+1
148 indxof(nindx)=i
149 ENDDO
150C
151 DO j=iofc+1,nindx
152 i = indxof(j)
153 off(i)=0.
154 idel7nok = 1
155#include "lockon.inc"
156 WRITE(iout,1200) ngl(i)
157 WRITE(istdo,1300) ngl(i),tt
158#include "lockoff.inc"
159 ENDDO
160 iofc = nindx
161 ELSEIF(idtmin(3)==3.AND.ismstr==2)THEN
162 nindx=iofc
163 DO i=jft,jlt
164 IF(dt(i)>dtmin1(3).OR.off(i)<one.OR.offg(i)==two.OR.offg(i)<zero)cycle
165 nindx=nindx+1
166 indxof(nindx)=i
167 ENDDO
168C
169 DO j=iofc+1,nindx
170 i = indxof(j)
171 offg(i)=2.
172#include "lockon.inc"
173 WRITE(iout,1400) ngl(i)
174 WRITE(istdo,1400) ngl(i)
175#include "lockoff.inc"
176 ENDDO
177 nindx=iofc
178 ELSEIF(idtmin(3)==5)THEN
179 nindx=iofc
180 DO i=jft,jlt
181 IF(dt(i)>dtmin1(3).OR.off(i)<one.OR.offg(i)==two.OR.offg(i)<zero)cycle
182 nindx=nindx+1
183 indxof(nindx)=i
184 ENDDO
185C
186 DO j=iofc+1,nindx
187 i = indxof(j)
188 mstop = 2
189#include "lockon.inc"
190 WRITE(iout,1000) ngl(i)
191 WRITE(istdo,1000) ngl(i)
192#include "lockoff.inc"
193 ENDDO
194 nindx=iofc
195 ENDIF
196C
197 IF (nodadt/=0.OR.(idtmins==2.AND.jsms/=0)) RETURN
198C-------------------------------------------------------------------
199C- VECTOR
200 idt=0
201 DO i=jft,jlt
202 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t)idt=1
203 ENDDO
204C- NON VECTOR
205 IF(idt==1)THEN
206 DO i=jft,jlt
207 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t)THEN
208 dt2t = dt(i)
209 neltst = ngl(i)
210 ityptst = 3
211 ENDIF
212 ENDDO
213 ENDIF
214C
215 IF (idtmins==2) RETURN
216C-------------------------------------------------------------------
217 IF(idt1sh==1)THEN
218 DO i=jft,jlt
219 sti(i) = sti(i) * off(i)
220 stir(i)= zero
221 ENDDO
222 ELSE
223 DO i=jft,jlt
224 divm=max(aldt(i)*aldt(i),em20)
225 sti(i) = half * vol0(i) * ym(i) / divm
226 sti(i) = zep81 * sti(i) * off(i)
227 stir(i)= zero
228 ENDDO
229 ENDIF
230C-------------------------------------------------------------------
231 1000 FORMAT(1x,'-- MINIMUM TIME STEP SHELL ELEMENT NUMBER ',i10)
232 1200 FORMAT(1x,'-- DELETE OF SHELL ELEMENT NUMBER ',i10)
233 1300 FORMAT(1x,'-- DELETE OF SHELL ELEMENT :',i10,' AT TIME :',g11.4)
234 1400 FORMAT(1x,'-- CONSTANT TIME STEP FOR SHELL ELEMENT NUMBER ',i10)
235C-------------------------------------------------------------------
236 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
Definition dtel.F:46
#define max(a, b)
Definition macros.h:21