OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
chsti3.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "mvsiz_p.inc"
#include "com04_c.inc"
#include "com06_c.inc"
#include "param_c.inc"
#include "remesh_c.inc"
#include "scr02_c.inc"
#include "scr14_c.inc"
#include "scr16_c.inc"
#include "scr17_c.inc"
#include "sms_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine chsti3 (jft, jlt, thk, hour, off, px1, px2, py1, py2, sigy, ixc, dt1c, ssp, rho, sti, z2, eani, stir, shf, thk0, thk02, viscmx, g, a11, h1, h2, h3, ym, nu, alpe, vhx, vhy, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, srh3, igtyp, igmat, a11r, nel)

Function/Subroutine Documentation

◆ chsti3()

subroutine chsti3 ( integer jft,
integer jlt,
thk,
hour,
off,
px1,
px2,
py1,
py2,
sigy,
integer, dimension(nixc,*) ixc,
dt1c,
ssp,
rho,
sti,
z2,
eani,
stir,
shf,
thk0,
thk02,
viscmx,
g,
a11,
h1,
h2,
h3,
ym,
nu,
alpe,
vhx,
vhy,
vx1,
vx2,
vx3,
vx4,
vy1,
vy2,
vy3,
vy4,
vz1,
vz2,
vz3,
vz4,
area,
h11,
h12,
h13,
h21,
h22,
h23,
h31,
h32,
h33,
b11,
b12,
b13,
b14,
b21,
b22,
b23,
b24,
rx1,
rx2,
rx3,
rx4,
ry1,
ry2,
ry3,
ry4,
integer, dimension(*) ipartc,
partsav,
integer ihbe,
integer nft,
integer ismstr,
srh3,
integer igtyp,
integer igmat,
a11r,
integer nel )

Definition at line 29 of file chsti3.F.

42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46#include "comlock.inc"
47C-----------------------------------------------
48C G l o b a l P a r a m e t e r s
49C-----------------------------------------------
50#include "mvsiz_p.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "com04_c.inc"
55#include "com06_c.inc"
56#include "param_c.inc"
57#include "remesh_c.inc"
58#include "scr02_c.inc"
59#include "scr14_c.inc"
60#include "scr16_c.inc"
61#include "scr17_c.inc"
62#include "sms_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER IXC(NIXC,*),IPARTC(*), JFT, JLT,
67 . IHBE ,NFT ,ISMSTR,IGTYP,IGMAT,NEL
68C REAL
70 . thk(*), hour(nel,5), off(*),eani(*),partsav(npsav,*),
71 . px1(*), px2(*), py1(*), py2(*), sigy(*),dt1c(*),stir(*),
72 . ssp(mvsiz), rho(mvsiz),sti(mvsiz),z2(mvsiz), shf(mvsiz),
73 . thk0(mvsiz),viscmx(mvsiz), alpe(mvsiz), a11r(*)
74C REAL
76 . b11(mvsiz), b12(mvsiz), b13(mvsiz), b14(mvsiz),
77 . b21(mvsiz), b22(mvsiz), b23(mvsiz), b24(mvsiz),
78 . h11(mvsiz), h12(mvsiz), h13(mvsiz), h14(mvsiz),
79 . h21(mvsiz), h22(mvsiz), h23(mvsiz), h24(mvsiz),
80 . h31(mvsiz), h32(mvsiz), h33(mvsiz), h34(mvsiz),
81 . rx1(mvsiz), rx2(mvsiz), rx3(mvsiz), rx4(mvsiz),
82 . ry1(mvsiz), ry2(mvsiz), ry3(mvsiz), ry4(mvsiz),
83 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
84 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
85 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
86 . area(mvsiz),vhx(mvsiz),
87 . h1(mvsiz), h2(mvsiz), h3(mvsiz), vhy(mvsiz),
88 . ym(mvsiz), nu(mvsiz), thk02(mvsiz),srh3(*)
89C-----------------------------------------------
90C L o c a l V a r i a b l e s
91C-----------------------------------------------
92 INTEGER I, MX, J
93C REAL
95 . gama1(mvsiz), gama2(mvsiz), gama3(mvsiz), gama4(mvsiz),
96 . h3l(mvsiz), h3q(mvsiz),
97 . hg1(mvsiz), hg2(mvsiz) ,hp1(mvsiz), hp2(mvsiz) ,
98 . g(mvsiz) , b1(mvsiz), b2(mvsiz),
99 . a11(mvsiz) ,ehou(mvsiz),
100 . px1v, px2v, py1v, py2v, ssphvl,zz2,vv,
101 . shfpr3, fac, bb, hour1(mvsiz), hour2(mvsiz), hour3(mvsiz),
102 . ehourt, px1vp,px2vp,py1vp,py2vp, fmax(mvsiz),
103 . hour1p,hour2p,hour3p,fmax1,fmaxp1,fmax2,fmaxp2,fmaxp,
104 . scale(mvsiz)
105C-----------------------------------------------
106C
107 ehourt = zero
108C
109 IF(ismstr/=3.AND.ihbe/=0)THEN
110 DO i=jft,jlt
111 px1v = px1(i)*vhx(i)
112 px2v = px2(i)*vhx(i)
113 py1v = py1(i)*vhy(i)
114 py2v = py2(i)*vhy(i)
115 gama1(i)= off(i)*( one - px1v-py1v)
116 gama3(i)= off(i)*( one + px1v+py1v)
117 gama2(i)= off(i)*(-one - px2v-py2v)
118 gama4(i)= off(i)*(-one + px2v+py2v)
119 ENDDO
120 ELSE
121 DO i=jft,jlt
122 gama1(i)= off(i)
123 gama3(i)= off(i)
124 gama2(i)= -off(i)
125 gama4(i)= -off(i)
126 ENDDO
127 ENDIF
128C
129 DO i=jft,jlt
130 hp1(i) =h1(i)
131 hp2(i) =h2(i)
132 h3(i) =srh3(i)
133 shfpr3 = shf(i)/(three*(one+nu(i)))
134 fac = fourth*rho(i)*thk02(i)
135 h3l(i) = h3(i)*zep072169*fac*area(i)
136 h3q(i) = h3(i)*h3l(i)*hundred
137 h3l(i) = h3l(i)*ssp(i)
138C
139 fac = ym(i)*thk0(i)*dt1c(i)*one_over_8
140 h1(i) = hp1(i) * fac
141 b1(i) = px1(i)*px1(i)+py1(i)*py1(i)
142 b2(i) = px2(i)*px2(i)+py2(i)*py2(i)
143 h2(i) = hp2(i) * fac*thk02(i)*shfpr3/(b1(i)+b2(i))
144 ENDDO
145C-----------------------------------
146C TRIANGLES
147C-----------------------------------
148 DO i=jft,jlt
149 IF(ixc(4,i)==ixc(5,i))THEN
150 h3q(i)=zero
151 h3l(i)=zero
152 h1(i)=zero
153 h2(i)=zero
154 ENDIF
155 ENDDO
156C-----------------------------------
157C STIFFNESS - DT
158C-----------------------------------
159 DO i=jft,jlt
160 scale(i) = zero
161 ENDDO
162 IF(nodadt/=0.OR.idt1sh==1.OR.idtmins==2)THEN
163 DO i=jft,jlt
164 scale(i) = +max(gama1(i)*gama1(i),gama2(i)*gama2(i),
165 . gama3(i)*gama3(i),gama4(i)*gama4(i)) *
166 . dt1c(i)*max(h1(i),h2(i),h3l(i)) /
167 . max(dt1c(i)*dt1c(i),em20)
168 sti(i)=sti(i) + scale(i)
169 ENDDO
170C
171 !!IF(IDTMINS==2)IGMAT = 1
172 IF(igtyp == 52 .OR.
173 . ((igtyp == 11 .OR. igtyp == 17 .OR. igtyp == 51)
174 . .AND. igmat > 0)) THEN
175 IF(nadmesh==0)THEN
176 DO i=jft,jlt
177 IF (off(i)==zero) THEN
178 sti(i) = zero
179 stir(i) = zero
180 ELSE
181 vv = viscmx(i) * viscmx(i) * alpe(i)
182 fac = max(b1(i),b2(i))/(area(i) * vv)
183 sti(i) = sti(i) + fac * thk0(i) * a11(i)
184 stir(i) = fac * a11r(i)*thk0(i)*thk02(i)*one_over_12 +
185 . fac * a11(i) *thk0(i)*area(i) *one_over_9 +
186 . scale(i)*(thk02(i)* one_over_12 + area(i)*one_over_9)
187 ENDIF
188 ENDDO
189 ELSE
190 DO i=jft,jlt
191 IF (off(i)==zero) THEN
192 sti(i) = zero
193 stir(i) = zero
194 ELSE
195 vv = viscmx(i) * viscmx(i) * alpe(i)
196 fac = max(b1(i),b2(i))/(area(i) * vv)
197 sti(i) = sti(i) + fac * thk0(i) * a11(i)
198 stir(i) = fac * a11r(i)*thk0(i)*thk02(i)* one_over_12 +
199 . scale(i)*thk02(i)* one_over_12
200 ENDIF
201 ENDDO
202 END IF
203 ELSE ! IGTYP
204 IF(nadmesh==0)THEN
205 DO i=jft,jlt
206 IF (off(i)==zero) THEN
207 sti(i) = zero
208 stir(i) = zero
209 ELSE
210 vv = viscmx(i) * viscmx(i) * alpe(i)
211 sti(i) = sti(i) + max(b1(i),b2(i))
212 . * thk0(i) * a11(i) / (area(i) * vv)
213 stir(i) = sti(i) * (thk02(i)* one_over_12 + area(i) * one_over_9)
214c .. + 0.5 * SHF(I) * AREA(I) * G(I)/A11(I))
215 ENDIF
216 ENDDO
217 ELSE
218 DO i=jft,jlt
219 IF (off(i)==zero) THEN
220 sti(i) = zero
221 stir(i) = zero
222 ELSE
223 vv = viscmx(i) * viscmx(i) * alpe(i)
224 sti(i) = sti(i) + max(b1(i),b2(i))
225 . * thk0(i) * a11(i) / (area(i) * vv)
226 stir(i) = sti(i) * thk02(i)* one_over_12
227 ENDIF
228 ENDDO
229 END IF
230 endif! igtyp
231 ENDIF !
232C-----------------------------------
233C ANTI-HOURGLASS MEMBRANE FORCES
234C-----------------------------------
235 DO i=jft,jlt
236 hg1(i)=vx1(i)*gama1(i)+vx2(i)*gama2(i)
237 . +vx3(i)*gama3(i)+vx4(i)*gama4(i)
238 hg2(i)=vy1(i)*gama1(i)+vy2(i)*gama2(i)
239 . +vy3(i)*gama3(i)+vy4(i)*gama4(i)
240 ENDDO
241
242 DO i=jft,jlt
243 hour(i,1)=hour(i,1)+hg1(i)*h1(i)
244 hour(i,2)=hour(i,2)+hg2(i)*h1(i)
245 fmax(i) = half*sigy(i)*thk0(i)*sqrt(area(i))*hp1(i)
246 hour(i,1)=sign( min( abs(hour(i,1)),fmax(i) ) , hour(i,1))
247 hour(i,2)=sign( min( abs(hour(i,2)),fmax(i) ) , hour(i,2))
248 hour1(i)=hour(i,1)
249 h11(i)=hour1(i)*gama1(i)
250 h12(i)=hour1(i)*gama2(i)
251 h13(i)=hour1(i)*gama3(i)
252 h14(i)=hour1(i)*gama4(i)
253 hour2(i)=hour(i,2)
254 h21(i)=hour2(i)*gama1(i)
255 h22(i)=hour2(i)*gama2(i)
256 h23(i)=hour2(i)*gama3(i)
257 h24(i)=hour2(i)*gama4(i)
258 ehou(i) = hour1(i)*hg1(i) + hour2(i)*hg2(i)
259 ENDDO
260C
261C----------------------------------
262C ANTI-HOURGLASS BENDING FORCES
263C----------------------------------
264 DO i=jft,jlt
265 hg1(i)=vz1(i)*gama1(i)+vz2(i)*gama2(i)
266 . +vz3(i)*gama3(i)+vz4(i)*gama4(i)
267 ENDDO
268 DO i=jft,jlt
269 hour(i,3)=hour(i,3)+hg1(i)*h2(i)
270 fmax(i) = fourth*sigy(i)*thk0(i)*thk0(i)*hp2(i)
271 hour(i,3)=sign( min( abs(hour(i,3)),fmax(i) ) , hour(i,3))
272 hour3(i) =hour(i,3)
273 h31(i)=hour3(i)*gama1(i)
274 h32(i)=hour3(i)*gama2(i)
275 h33(i)=hour3(i)*gama3(i)
276 h34(i)=hour3(i)*gama4(i)
277 ehou(i) = ehou(i) + hour3(i)*hg1(i)
278 ENDDO
279C
280C------------------------
281C ANTI-HOURGLASS MOMENTS
282C------------------------
283 DO i=jft,jlt
284 hg1(i)=rx1(i)-rx2(i)+rx3(i)-rx4(i)
285 hg2(i)=ry1(i)-ry2(i)+ry3(i)-ry4(i)
286 ENDDO
287C
288 DO i=jft,jlt
289 hour(i,4)=hg1(i)*(h3l(i)+h3q(i)*abs(hg1(i)))
290 hour(i,5)=hg2(i)*(h3l(i)+h3q(i)*abs(hg2(i)))
291 ehou(i) = ehou(i) + hour(i,4)*hg1(i) + hour(i,5)*hg2(i)
292 ehou(i) = dt1c(i) * ehou(i)*off(i)
293 ehourt = ehourt + ehou(i)
294 b11(i)= hour(i,4)*off(i)
295 b12(i)=-hour(i,4)*off(i)
296 b13(i)= hour(i,4)*off(i)
297 b14(i)=-hour(i,4)*off(i)
298 b21(i)= hour(i,5)*off(i)
299 b22(i)=-hour(i,5)*off(i)
300 b23(i)= hour(i,5)*off(i)
301 b24(i)=-hour(i,5)*off(i)
302 ENDDO
303C
304 DO i=jft,jlt
305 mx = ipartc(i)
306 partsav(8,mx)=partsav(8,mx) + ehou(i)
307 ENDDO
308C
309!$OMP ATOMIC
310 ehour = ehour + ehourt
311C
312 DO i=jft,jlt
313 eani(nft+numels+i) = eani(nft+numels+i)+ehou(i)
314 ENDDO
315C
316 RETURN
#define my_real
Definition cppsort.cpp:32
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