OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cdefo3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "impl1_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine cdefo3 (jft, jlt, vl1, vl2, vl3, vl4, dt1c, px1, px2, py1, py2, area, exx, eyy, exy, exz, eyz, x2, x3, x4, y2, y3, y4, z2, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ihbe)
subroutine cdefot3 (jft, jlt, px1, px2, py1, py2, vx13, vx24, vy13, vy24, f_def)

Function/Subroutine Documentation

◆ cdefo3()

subroutine cdefo3 ( integer jft,
integer jlt,
vl1,
vl2,
vl3,
vl4,
dt1c,
px1,
px2,
py1,
py2,
area,
exx,
eyy,
exy,
exz,
eyz,
x2,
x3,
x4,
y2,
y3,
y4,
z2,
vx1,
vx2,
vx3,
vx4,
vy1,
vy2,
vy3,
vy4,
vz1,
vz2,
vz3,
vz4,
e1x,
e1y,
e1z,
e2x,
e2y,
e2z,
e3x,
e3y,
e3z,
integer ihbe )

Definition at line 29 of file cdefo3.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "impl1_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER JFT, JLT,IHBE
51C REAL
53 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),dt1c(*),
54 . px1(mvsiz), px2(mvsiz), py1(mvsiz), py2(mvsiz),
55 . exx(mvsiz), area(mvsiz),
56 . eyy(mvsiz), exy(mvsiz), exz(mvsiz), eyz(mvsiz),
57 . x2(mvsiz), x3(mvsiz), x4(mvsiz),
58 . y2(mvsiz), y3(mvsiz), y4(mvsiz), z2(mvsiz),
59 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
60 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
61 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
62 . vx13(mvsiz), vx24(mvsiz), vy13(mvsiz), vy24(mvsiz),
63 . vz13(mvsiz), vz24(mvsiz),
64 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), e2x(mvsiz),
65 . e2y(mvsiz), e2z(mvsiz), e3x(mvsiz), e3y(mvsiz), e3z(mvsiz)
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER I, J
71 . zz2(mvsiz), exzz2(mvsiz), eyzz2(mvsiz), exz2py2(mvsiz),
72 . exz2py1(mvsiz), eyz2px2(mvsiz), eyz2px1(mvsiz),zzz(mvsiz),
73 . exz2(mvsiz),eyz2(mvsiz),
74 . dt1v4, tmp1a(mvsiz), tmp2a(mvsiz), tmp3a(mvsiz),
75 . tmp1b(mvsiz), tmp2b(mvsiz), tmp3b(mvsiz),gzx(mvsiz),
76 . gzy(mvsiz)
77C=======================================================================
78C
79 DO i=jft,jlt
80 vx1(i)=e1x(i)*vl1(i,1)+e1y(i)*vl1(i,2)+e1z(i)*vl1(i,3)
81 vx2(i)=e1x(i)*vl2(i,1)+e1y(i)*vl2(i,2)+e1z(i)*vl2(i,3)
82 vx3(i)=e1x(i)*vl3(i,1)+e1y(i)*vl3(i,2)+e1z(i)*vl3(i,3)
83 vx4(i)=e1x(i)*vl4(i,1)+e1y(i)*vl4(i,2)+e1z(i)*vl4(i,3)
84C
85 vy4(i)=e2x(i)*vl4(i,1)+e2y(i)*vl4(i,2)+e2z(i)*vl4(i,3)
86 vy3(i)=e2x(i)*vl3(i,1)+e2y(i)*vl3(i,2)+e2z(i)*vl3(i,3)
87 vy2(i)=e2x(i)*vl2(i,1)+e2y(i)*vl2(i,2)+e2z(i)*vl2(i,3)
88 vy1(i)=e2x(i)*vl1(i,1)+e2y(i)*vl1(i,2)+e2z(i)*vl1(i,3)
89C
90 vz1(i)=e3x(i)*vl1(i,1)+e3y(i)*vl1(i,2)+e3z(i)*vl1(i,3)
91 vz2(i)=e3x(i)*vl2(i,1)+e3y(i)*vl2(i,2)+e3z(i)*vl2(i,3)
92 vz3(i)=e3x(i)*vl3(i,1)+e3y(i)*vl3(i,2)+e3z(i)*vl3(i,3)
93 vz4(i)=e3x(i)*vl4(i,1)+e3y(i)*vl4(i,2)+e3z(i)*vl4(i,3)
94C
95 vz13(i)=vz1(i)-vz3(i)
96 vz24(i)=vz2(i)-vz4(i)
97C
98 eyz(i)=py1(i)*vz13(i)+py2(i)*vz24(i)
99 exz(i)=px1(i)*vz13(i)+px2(i)*vz24(i)
100C
101 ENDDO
102C
103 IF(ihbe<=1)THEN
104 DO i=jft,jlt
105C z2 mis a zero pour non equilibre des foreces et moments d'hourglass
106 z2(i) = zero
107 dt1v4 = fourth*dt1c(i)
108 IF(impl_s>0) dt1v4=zero
109 tmp2a(i)=py2(i)+py1(i)
110 tmp3a(i)=sign(max(abs(tmp2a(i)),em20),tmp2a(i))
111 tmp1a(i)=dt1v4*(vz13(i)-vz24(i))*(vz13(i)-vz24(i))/tmp3a(i)
112 vx13(i)=vx1(i)-vx3(i)
113 vx24(i)=vx2(i)-vx4(i)
114 vx13(i)=vx13(i)-tmp1a(i)
115 vx24(i)=vx24(i)+tmp1a(i)
116C
117 exx(i)=px1(i)*vx13(i)+px2(i)*vx24(i)
118 exy(i)=py1(i)*vx13(i)+py2(i)*vx24(i)
119C
120 tmp1b(i)=px2(i)-px1(i)
121 tmp3b(i)=sign(max(abs(tmp1b(i)),em20),tmp1b(i))
122 tmp2b(i)=dt1v4*(vz13(i)+vz24(i))*(vz13(i)+vz24(i))/tmp3b(i)
123 vy13(i)=vy1(i)-vy3(i)
124 vy24(i)=vy2(i)-vy4(i)
125 vy13(i)=vy13(i)+tmp2b(i)
126 vy24(i)=vy24(i)+tmp2b(i)
127C
128 exy(i)=exy(i)+px1(i)*vy13(i)+px2(i)*vy24(i)
129 eyy(i)=py1(i)*vy13(i)+py2(i)*vy24(i)
130 ENDDO
131C
132 ELSEIF(ihbe==2.OR.ihbe==3)THEN
133C
134 DO i=jft,jlt
135 dt1v4 = half*dt1c(i)
136 IF(impl_s>0) dt1v4=zero
137C
138 gzx(i) = exz(i)/area(i)
139 exzz2(i)= gzx(i)*z2(i)
140 exz2(i) = gzx(i)*gzx(i)*dt1v4
141 vx3(i)=vx3(i) -exz2(i)*x3(i)-vx1(i)
142 vx2(i)=vx2(i)+exzz2(i)-exz2(i)*x2(i)-vx1(i)
143 vx4(i)=vx4(i)+exzz2(i)-exz2(i)*x4(i)-vx1(i)
144 vx1(i)=zero
145C
146 gzy(i) = eyz(i)/area(i)
147 eyzz2(i)= gzy(i)*z2(i)
148 eyz2(i) = gzy(i)*gzy(i)*dt1v4
149 vy3(i)=vy3(i) -eyz2(i)*y3(i)-vy1(i)
150 vy2(i)=vy2(i)+eyzz2(i)-eyz2(i)*y2(i)-vy1(i)
151 vy4(i)=vy4(i)+eyzz2(i)-eyz2(i)*y4(i)-vy1(i)
152 vy1(i)=zero
153C
154 zzz(i)= (exz2(i)+eyz2(i))*z2(i)
155 vz3(i)=vz3(i)-gzy(i)*y3(i)-gzx(i)*x3(i) -vz1(i)
156 vz2(i)=vz2(i)-gzy(i)*y2(i)-gzx(i)*x2(i)-zzz(i)-vz1(i)
157 vz4(i)=vz4(i)-gzy(i)*y4(i)-gzx(i)*x4(i)-zzz(i)-vz1(i)
158 vz1(i)=zero
159C
160 vx13(i)=-vx3(i)
161 vx24(i)=vx2(i)-vx4(i)
162C
163 exx(i)=px1(i)*vx13(i)+px2(i)*vx24(i)
164 exy(i)=py1(i)*vx13(i)+py2(i)*vx24(i)
165C
166 vy13(i)=-vy3(i)
167 vy24(i)=vy2(i)-vy4(i)
168C
169 exy(i)=exy(i)+px1(i)*vy13(i)+px2(i)*vy24(i)
170 eyy(i)=py1(i)*vy13(i)+py2(i)*vy24(i)
171 ENDDO
172C
173 ELSEIF(ihbe==4)THEN
174C old
175 DO i=jft,jlt
176 dt1v4 = half*dt1c(i)
177 IF(impl_s>0) dt1v4=zero
178c wraping z1=z3=0 z4=z2 => modif des vitesses pour l'hourglass membrane
179 zz2(i)=half*z2(i)
180C
181 gzx(i) = exz(i)/area(i)
182 exzz2(i) = gzx(i)*zz2(i)
183 exz2(i) = gzx(i)*gzx(i)*dt1v4
184 exz2py2(i) = exz2(i)*py2(i)
185 exz2py1(i) = exz2(i)*py1(i)
186 vx1(i)=vx1(i)-exzz2(i)-exz2py2(i)
187 vx3(i)=vx3(i)-exzz2(i)+exz2py2(i)
188 vx2(i)=vx2(i)+exzz2(i)+exz2py1(i)
189 vx4(i)=vx4(i)+exzz2(i)-exz2py1(i)
190C
191 gzy(i) = eyz(i)/area(i)
192 eyzz2(i) = gzy(i)*zz2(i)
193 eyz2(i) = gzy(i)*gzy(i)*dt1v4
194 eyz2px2(i) = eyz2(i)*px2(i)
195 eyz2px1(i) = eyz2(i)*px1(i)
196 vy1(i)=vy1(i)-eyzz2(i)+eyz2px2(i)
197 vy3(i)=vy3(i)-eyzz2(i)-eyz2px2(i)
198 vy2(i)=vy2(i)+eyzz2(i)-eyz2px1(i)
199 vy4(i)=vy4(i)+eyzz2(i)+eyz2px1(i)
200C
201 vx13(i)=vx1(i)-vx3(i)
202 vx24(i)=vx2(i)-vx4(i)
203C
204 exx(i)=px1(i)*vx13(i)+px2(i)*vx24(i)
205 exy(i)=py1(i)*vx13(i)+py2(i)*vx24(i)
206C
207 vy13(i)=vy1(i)-vy3(i)
208 vy24(i)=vy2(i)-vy4(i)
209C
210 exy(i)=exy(i)+px1(i)*vy13(i)+px2(i)*vy24(i)
211 eyy(i)=py1(i)*vy13(i)+py2(i)*vy24(i)
212 ENDDO
213 ENDIF
214c-----------
215 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21

◆ cdefot3()

subroutine cdefot3 ( integer jft,
integer jlt,
px1,
px2,
py1,
py2,
vx13,
vx24,
vy13,
vy24,
f_def )

Definition at line 223 of file cdefo3.F.

226C-----------------------------------------------
227C I m p l i c i t T y p e s
228C-----------------------------------------------
229#include "implicit_f.inc"
230C-----------------------------------------------
231C G l o b a l P a r a m e t e r s
232C-----------------------------------------------
233#include "mvsiz_p.inc"
234C-----------------------------------------------
235C D u m m y A r g u m e n t s
236C-----------------------------------------------
237 INTEGER JFT, JLT
238 my_real
239 . px1(mvsiz), px2(mvsiz), py1(mvsiz), py2(mvsiz),
240 . vx13(mvsiz), vx24(mvsiz), vy13(mvsiz), vy24(mvsiz),
241 . f_def(mvsiz,8)
242C-----------------------------------------------
243C L o c a l V a r i a b l e s
244C-----------------------------------------------
245 INTEGER I, J
246 my_real
247 . s
248C=======================================================================
249 DO i=jft,jlt
250 f_def(i,1)=px1(i)*vx13(i)+px2(i)*vx24(i)
251 f_def(i,2)=py1(i)*vy13(i)+py2(i)*vy24(i)
252 f_def(i,3)=py1(i)*vx13(i)+py2(i)*vx24(i)
253 f_def(i,4)=px1(i)*vy13(i)+px2(i)*vy24(i)
254 ENDDO
255c-----------
256 RETURN