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 31 of file cdt3.F.

38 use element_mod , only : nixc
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 "com01_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 NDT(*),IXC(NIXC,*),INDXOF(MVSIZ),NGL(MVSIZ),
63 . JFT, JLT,NELTST,ITYPTST,NINDX,ISMSTR,IOFC, JSMS
65 . ym(*), off(*),sti(*),stir(*),offg(*),dtc(*),
66 . ssp(*), dt2c(*),viscmx(*),vol0(*),vol00(*),
67 . px1(*), px2(*), py1(*), py2(*), rho(*), aldt(*), alpe(*),
68 . dt2t,
69 . msc(*), dmelc(*)
70 my_real,INTENT(INOUT) :: dtel(jft:jlt)
71 INTEGER,INTENT(IN) :: G_DT
72C-----------------------------------------------
73C L o c a l V a r i a b l e s
74C-----------------------------------------------
75 INTEGER J, I, IDT
77 . dt(mvsiz)
78 my_real divm,mas
79C=======================================================================
80 IF(idtmins == 2 .AND. jsms /= 0)THEN
81 DO i=jft,jlt
82 IF(offg(i) < zero .OR. off(i) == zero) cycle
83c
84c dmelc = 2*dmelc !!
85c w^2 < 2k / (m+dmelc+dmelc/3) < 2k / (m+dmelc)
86c dt = 2/w = sqrt( 2*(m+dmelc)/k)
87 dmelc(i)=max(dmelc(i),
88 . (dtmins/dtfacs)**2 * sti(i) - two*msc(i))
89 dt(i) = dtfacs*
90 . sqrt((two*msc(i)+dmelc(i))/max(em20,sti(i)))
91 IF(dt(i)<dt2t)THEN
92 dt2t = dt(i)
93 neltst = ngl(i)
94 ityptst = 3
95 END IF
96 END DO
97C
98 IF(idtmin(3)/=0)THEN
99 DO i=jft,jlt
100 mas = vol00(i)*rho(i)
101 dt(i) = dtfac1(3)*sqrt(half*mas/max(em20,sti(i)))
102 ENDDO
103 END IF
104C
105 ELSEIF(idt1sh==1.OR.idtmins==2)THEN
106 DO i=jft,jlt
107 mas = vol00(i)*rho(i)
108 dt(i) = dtfac1(3)*sqrt(half*mas/max(em20,sti(i)))
109 ENDDO
110 ELSE
111 DO i=jft,jlt
112 aldt(i)=aldt(i)*viscmx(i)
113 . / sqrt(alpe(i))
114 dt(i)=dtfac1(3)*aldt(i)/ssp(i)
115 ENDDO
116 ENDIF
117
118C------------------------------
119 IF(nodadt == 0)THEN
120 IF(idtmin(3) == 0)RETURN
121 ENDIF
122C------------------------------
123 IF(g_dt /= zero)THEN
124 DO i=jft,jlt
125 dtel(i) = dt(i)
126 ENDDO
127 ENDIF
128C------------------------------
129 IF(idtmin(3) == 1)THEN
130 nindx=iofc
131 DO i=jft,jlt
132 IF(dt(i) > dtmin1(3) .OR. off(i) < one .OR. offg(i) == two .OR. offg(i) < zero) cycle
133 nindx=nindx+1
134 indxof(nindx)=i
135 ENDDO
136C
137 DO j=iofc+1,nindx
138 i = indxof(j)
139 tstop = tt
140#include "lockon.inc"
141 WRITE(iout,1000) ngl(i)
142 WRITE(istdo,1000) ngl(i)
143#include "lockoff.inc"
144 ENDDO
145 nindx=iofc
146 ELSEIF(idtmin(3)==2)THEN
147 nindx=iofc
148 DO i=jft,jlt
149 IF(dt(i)>dtmin1(3).OR.off(i)<one .OR.offg(i)<zero) cycle
150 nindx=nindx+1
151 indxof(nindx)=i
152 ENDDO
153C
154 DO j=iofc+1,nindx
155 i = indxof(j)
156 off(i)=0.
157 idel7nok = 1
158#include "lockon.inc"
159 WRITE(iout,1200) ngl(i)
160 WRITE(istdo,1300) ngl(i),tt
161#include "lockoff.inc"
162 ENDDO
163 iofc = nindx
164 ELSEIF(idtmin(3)==3.AND.ismstr==2)THEN
165 nindx=iofc
166 DO i=jft,jlt
167 IF(dt(i)>dtmin1(3).OR.off(i)<one.OR.offg(i)==two.OR.offg(i)<zero)cycle
168 nindx=nindx+1
169 indxof(nindx)=i
170 ENDDO
171C
172 DO j=iofc+1,nindx
173 i = indxof(j)
174 offg(i)=2.
175#include "lockon.inc"
176 WRITE(iout,1400) ngl(i)
177 WRITE(istdo,1400) ngl(i)
178#include "lockoff.inc"
179 ENDDO
180 nindx=iofc
181 ELSEIF(idtmin(3)==5)THEN
182 nindx=iofc
183 DO i=jft,jlt
184 IF(dt(i)>dtmin1(3).OR.off(i)<one.OR.offg(i)==two.OR.offg(i)<zero)cycle
185 nindx=nindx+1
186 indxof(nindx)=i
187 ENDDO
188C
189 DO j=iofc+1,nindx
190 i = indxof(j)
191 mstop = 2
192#include "lockon.inc"
193 WRITE(iout,1000) ngl(i)
194 WRITE(istdo,1000) ngl(i)
195#include "lockoff.inc"
196 ENDDO
197 nindx=iofc
198 ENDIF
199C
200 IF (nodadt/=0.OR.(idtmins==2.AND.jsms/=0)) RETURN
201C-------------------------------------------------------------------
202C- VECTOR
203 idt=0
204 DO i=jft,jlt
205 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t)idt=1
206 ENDDO
207C- NON VECTOR
208 IF(idt==1)THEN
209 DO i=jft,jlt
210 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t)THEN
211 dt2t = dt(i)
212 neltst = ngl(i)
213 ityptst = 3
214 ENDIF
215 ENDDO
216 ENDIF
217C
218 IF (idtmins==2) RETURN
219C-------------------------------------------------------------------
220 IF(idt1sh==1)THEN
221 DO i=jft,jlt
222 sti(i) = sti(i) * off(i)
223 stir(i)= zero
224 ENDDO
225 ELSE
226 DO i=jft,jlt
227 divm=max(aldt(i)*aldt(i),em20)
228 sti(i) = half * vol0(i) * ym(i) / divm
229 sti(i) = zep81 * sti(i) * off(i)
230 stir(i)= zero
231 ENDDO
232 ENDIF
233C-------------------------------------------------------------------
234 1000 FORMAT(1x,'-- MINIMUM TIME STEP SHELL ELEMENT NUMBER ',i10)
235 1200 FORMAT(1x,'-- DELETE OF SHELL ELEMENT NUMBER ',i10)
236 1300 FORMAT(1x,'-- DELETE OF SHELL ELEMENT :',i10,' AT TIME :',g11.4)
237 1400 FORMAT(1x,'-- CONSTANT TIME STEP FOR SHELL ELEMENT NUMBER ',i10)
238C-------------------------------------------------------------------
239 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