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

Go to the source code of this file.

Functions/Subroutines

subroutine fdefo3 (px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, vxr, vyr, vzr, dd, nel, jhbe, jcvt, isrot)

Function/Subroutine Documentation

◆ fdefo3()

subroutine fdefo3 ( px1,
px2,
px3,
px4,
py1,
py2,
py3,
py4,
pz1,
pz2,
pz3,
pz4,
vx1,
vx2,
vx3,
vx4,
vx5,
vx6,
vx7,
vx8,
vy1,
vy2,
vy3,
vy4,
vy5,
vy6,
vy7,
vy8,
vz1,
vz2,
vz3,
vz4,
vz5,
vz6,
vz7,
vz8,
dxx,
dxy,
dxz,
dyx,
dyy,
dyz,
dzx,
dzy,
dzz,
d4,
d5,
d6,
wxx,
wyy,
wzz,
vxr,
vyr,
vzr,
dd,
integer, intent(in) nel,
integer, intent(in) jhbe,
integer, intent(in) jcvt,
integer, intent(in) isrot )

Definition at line 28 of file fdefo3.F.

44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48C-----------------------------------------------
49C G l o b a l P a r a m e t e r s
50C-----------------------------------------------
51#include "mvsiz_p.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "com08_c.inc"
56#include "impl1_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(IN) :: NEL
61 INTEGER, INTENT(IN) :: JHBE
62 INTEGER, INTENT(IN) :: JCVT
63 INTEGER, INTENT(IN) :: ISROT
65 . vx1(*), vx2(*), vx3(*), vx4(*),
66 . vx5(*), vx6(*), vx7(*), vx8(*),
67 . vy1(*), vy2(*), vy3(*), vy4(*),
68 . vy5(*), vy6(*), vy7(*), vy8(*),
69 . vz1(*), vz2(*), vz3(*), vz4(*),
70 . vz5(*), vz6(*), vz7(*), vz8(*),
71 . px1(*), px2(*), px3(*), px4(*),
72 . py1(*), py2(*), py3(*), py4(*),
73 . pz1(*), pz2(*), pz3(*), pz4(*),
74 . dxx(*), dxy(*), dxz(*),
75 . dyx(*), dyy(*), dyz(*),
76 . dzx(*), dzy(*), dzz(*), d4(*), d5(*), d6(*),
77 . wxx(*), wyy(*), wzz(*), dd(*)
79 . vxr(*),vyr(*),vzr(*)
80C-----------------------------------------------
81C L o c a l V a r i a b l e s
82C-----------------------------------------------
83 INTEGER I, J
85 . vx17(mvsiz), vy17(mvsiz), vz17(mvsiz),
86 . vx28(mvsiz), vy28(mvsiz), vz28(mvsiz),
87 . vx35(mvsiz), vy35(mvsiz), vz35(mvsiz),
88 . vx46(mvsiz), vy46(mvsiz), vz46(mvsiz),
89 . dt1d2, dt1d
90 my_real
91 . pxx2,pyy2,pzz2,pxx2p,pyy2p,pzz2p
93 . aaa,bbb
94C-----------------------------------------------
95 DO i=1,nel
96 vx17(i)=vx1(i)-vx7(i)
97 vx28(i)=vx2(i)-vx8(i)
98 vx35(i)=vx3(i)-vx5(i)
99 vx46(i)=vx4(i)-vx6(i)
100 vy17(i)=vy1(i)-vy7(i)
101 vy28(i)=vy2(i)-vy8(i)
102 vy35(i)=vy3(i)-vy5(i)
103 vy46(i)=vy4(i)-vy6(i)
104 vz17(i)=vz1(i)-vz7(i)
105 vz28(i)=vz2(i)-vz8(i)
106 vz35(i)=vz3(i)-vz5(i)
107 vz46(i)=vz4(i)-vz6(i)
108 ENDDO
109C
110 DO i=1,nel
111 dxx(i)=px1(i)*vx17(i)+px2(i)*vx28(i)+
112 . px3(i)*vx35(i)+px4(i)*vx46(i)
113 dyy(i)=py1(i)*vy17(i)+py2(i)*vy28(i)+
114 . py3(i)*vy35(i)+py4(i)*vy46(i)
115 dzz(i)=pz1(i)*vz17(i)+pz2(i)*vz28(i)+
116 . pz3(i)*vz35(i)+pz4(i)*vz46(i)
117 dxy(i)=py1(i)*vx17(i)+py2(i)*vx28(i)+
118 . py3(i)*vx35(i)+py4(i)*vx46(i)
119 dxz(i)=pz1(i)*vx17(i)+pz2(i)*vx28(i)+
120 . pz3(i)*vx35(i)+pz4(i)*vx46(i)
121 dyx(i)=px1(i)*vy17(i)+px2(i)*vy28(i)+
122 . px3(i)*vy35(i)+px4(i)*vy46(i)
123 dyz(i)=pz1(i)*vy17(i)+pz2(i)*vy28(i)+
124 . pz3(i)*vy35(i)+pz4(i)*vy46(i)
125 dzx(i)=px1(i)*vz17(i)+px2(i)*vz28(i)+
126 . px3(i)*vz35(i)+px4(i)*vz46(i)
127 dzy(i)=py1(i)*vz17(i)+py2(i)*vz28(i)+
128 . py3(i)*vz35(i)+py4(i)*vz46(i)
129 ENDDO
130C
131C
132 dt1d2=half*dt1
133 IF (iscau>0)dt1d2=dt1
134C
135 IF (jcvt > 0) THEN
136 IF (impl_s==0.OR.idyna > 0) THEN
137 DO i=1,nel
138 dxx(i) = dxx(i)
139 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
140 dyy(i) = dyy(i)
141 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
142 dzz(i) = dzz(i)
143 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
144 aaa = dt1d2*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
145 dxy(i) = dxy(i) - aaa
146 dyx(i) = dyx(i) - aaa
147 d4(i) = dxy(i)+dyx(i)
148 aaa = dt1d2*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
149 dyz(i) = dyz(i) - aaa
150 dzy(i) = dzy(i) - aaa
151 d5(i) = dyz(i)+dzy(i)
152 aaa = dt1d2*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
153 dxz(i) = dxz(i) - aaa
154 dzx(i) = dzx(i) - aaa
155 d6(i) = dxz(i)+dzx(i)
156 wxx(i)=zero
157 wyy(i)=zero
158 wzz(i)=zero
159 ENDDO
160C-------implicit static---------
161 ELSEIF (iline>0.AND.iscau==0) THEN
162 DO i=1,nel
163 d4(i) = dxy(i)+dyx(i)
164 d5(i) = dyz(i)+dzy(i)
165 d6(i) = dxz(i)+dzx(i)
166 wxx(i)=zero
167 wyy(i)=zero
168 wzz(i)=zero
169 ENDDO
170 ELSE
171 dt1d=two*dt1d2
172 DO i=1,nel
173 d4(i) = dxy(i)+dyx(i)
174 . -dt1d*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
175 d5(i) = dyz(i)+dzy(i)
176 . -dt1d*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
177 d6(i) = dxz(i)+dzx(i)
178 . -dt1d*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
179 dxx(i) = dxx(i)
180 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
181 dyy(i) = dyy(i)
182 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
183 dzz(i) = dzz(i)
184 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
185 wxx(i)=zero
186 wyy(i)=zero
187 wzz(i)=zero
188 ENDDO
189 ENDIF ! IF (IMPL_S==0.OR.IDYNA>0)
190C
191 ELSEIF (jhbe >= 2) THEN
192 DO i=1,nel
193 dxx(i) = dxx(i)
194 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
195 dyy(i) = dyy(i)
196 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
197 dzz(i) = dzz(i)
198 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
199 aaa = dt1d2*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
200 dxy(i) = dxy(i) - aaa
201 dyx(i) = dyx(i) - aaa
202 d4(i) = dxy(i)+dyx(i)
203 aaa = dt1d2*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
204 dyz(i) = dyz(i) - aaa
205 dzy(i) = dzy(i) - aaa
206 d5(i) = dyz(i)+dzy(i)
207 aaa = dt1d2*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
208 dxz(i) = dxz(i) - aaa
209 dzx(i) = dzx(i) - aaa
210 d6(i) = dxz(i)+dzx(i)
211 pxx2 = px1(i)*px1(i)+px2(i)*px2(i)
212 . +px3(i)*px3(i)+px4(i)*px4(i)
213 pyy2 = py1(i)*py1(i)+py2(i)*py2(i)
214 . +py3(i)*py3(i)+py4(i)*py4(i)
215 pzz2 = pz1(i)*pz1(i)+pz2(i)*pz2(i)
216 . +pz3(i)*pz3(i)+pz4(i)*pz4(i)
217 wzz(i)=dt1*(pyy2*dyx(i)-pxx2*dxy(i))/(pxx2+pyy2)
218 wxx(i)=dt1*(pzz2*dzy(i)-pyy2*dyz(i))/(pyy2+pzz2)
219 wyy(i)=dt1*(pxx2*dxz(i)-pzz2*dzx(i))/(pzz2+pxx2)
220 ENDDO
221C
222 ELSE
223 DO i=1,nel
224 d4(i) = dxy(i)+dyx(i)
225 d5(i) = dyz(i)+dzy(i)
226 d6(i) = dxz(i)+dzx(i)
227 dxx(i) = dxx(i)
228 dyy(i) = dyy(i)
229 dzz(i) = dzz(i)
230 wzz(i)=dt1d2*(dyx(i)-dxy(i))
231 wyy(i)=dt1d2*(dxz(i)-dzx(i))
232 wxx(i)=dt1d2*(dzy(i)-dyz(i))
233 ENDDO
234 ENDIF
235C
236
237 IF(isrot > 0)THEN
238 DO i=1,nel
239 dxy(i)=dxy(i) + vzr(i)
240 dyx(i)=dyx(i) - vzr(i)
241 dyz(i)=dyz(i) + vxr(i)
242 dzy(i)=dzy(i) - vxr(i)
243 dzx(i)=dzx(i) + vyr(i)
244 dxz(i)=dxz(i) - vyr(i)
245 ENDDO
246 aaa = 0.
247 bbb = dt1 - aaa*dt1
248 DO i=1,nel
249 wxx(i)=aaa*wxx(i) + bbb*vxr(i)
250 wyy(i)=aaa*wyy(i) + bbb*vyr(i)
251 wzz(i)=aaa*wzz(i) + bbb*vzr(i)
252 ENDDO
253 ENDIF
254C pour le calcul du pas du temps
255 DO i=1, nel
256 dd(i) = - dxx(i)- dyy(i) - dzz(i)
257 ENDDO
258C
259 RETURN
#define my_real
Definition cppsort.cpp:32