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

Go to the source code of this file.

Functions/Subroutines

subroutine qdefo2 (v, w, y1, y2, y3, y4, z1, z2, z3, z4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, py1, py2, pz1, pz2, wyz, dyz, dzy, eyy, ezz, ett, eyz, eyt, ezt, rx, ry, rz, sx, sy, sz, tx, ty, tz, voln, aire, airem, nc1, nc2, nc3, nc4, nel)

Function/Subroutine Documentation

◆ qdefo2()

subroutine qdefo2 ( v,
w,
y1,
y2,
y3,
y4,
z1,
z2,
z3,
z4,
vy1,
vy2,
vy3,
vy4,
vz1,
vz2,
vz3,
vz4,
py1,
py2,
pz1,
pz2,
wyz,
dyz,
dzy,
eyy,
ezz,
ett,
eyz,
eyt,
ezt,
rx,
ry,
rz,
sx,
sy,
sz,
tx,
ty,
tz,
voln,
aire,
airem,
integer, dimension(*) nc1,
integer, dimension(*) nc2,
integer, dimension(*) nc3,
integer, dimension(*) nc4,
integer, intent(in) nel )

Definition at line 29 of file qdefo2.F.

42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C G l o b a l P a r a m e t e r s
48C-----------------------------------------------
49#include "mvsiz_p.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER, INTENT(IN) :: NEL
55 . v(3,*), w(3,*),
56 . y1(*),y2(*),y3(*),y4(*),z1(*),z2(*),z3(*),z4(*),
57 . vy1(*),vy2(*),vy3(*),vy4(*),vz1(*),vz2(*),vz3(*),vz4(*),
58 . py1(*), py2(*), pz1(*), pz2(*),
59 . wyz(*), dyz(*), dzy(*),
60 . eyy(*),ezz(*), ett(*), eyz(*), eyt(*), ezt(*),
61 . rx(*),ry(*), rz(*), sx(*), sy(*), sz(*), tx(*), ty(*), tz(*),
62 . voln(*),aire(*),airem(*)
63C
64 INTEGER NC1(*), NC2(*), NC3(*), NC4(*)
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68#include "com01_c.inc"
69#include "com08_c.inc"
70C-----------------------------------------------
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER I
75 . vy13(mvsiz), vy24(mvsiz), vz13(mvsiz),vz24(mvsiz),
76 . ym1(mvsiz), ym2(mvsiz), ym3(mvsiz), ym4(mvsiz),
77 . zm1(mvsiz), zm2(mvsiz), zm3(mvsiz), zm4(mvsiz), dth,
78 . yavg(mvsiz),a1(mvsiz) , a2(mvsiz)
79C-----------------------------------------------
80 dth=half*dt1
81
82 DO i=1,nel
83 !from qforc2 subroutine : &W = &V
84 !from bforc2 subroutine : &W /= &V
85 vy1(i)=w(2,nc1(i))
86 vz1(i)=w(3,nc1(i))
87 vy2(i)=w(2,nc2(i))
88 vz2(i)=w(3,nc2(i))
89 vy3(i)=w(2,nc3(i))
90 vz3(i)=w(3,nc3(i))
91 vy4(i)=w(2,nc4(i))
92 vz4(i)=w(3,nc4(i))
93 ENDDO
94
95 DO i=1,nel
96 ym1(i)=y1(i)-dth*vy1(i)
97 ym2(i)=y2(i)-dth*vy2(i)
98 ym3(i)=y3(i)-dth*vy3(i)
99 ym4(i)=y4(i)-dth*vy4(i)
100 zm1(i)=z1(i)-dth*vz1(i)
101 zm2(i)=z2(i)-dth*vz2(i)
102 zm3(i)=z3(i)-dth*vz3(i)
103 zm4(i)=z4(i)-dth*vz4(i)
104 ENDDO
105
106 DO i=1,nel
107 vy1(i)=v(2,nc1(i))
108 vz1(i)=v(3,nc1(i))
109 vy2(i)=v(2,nc2(i))
110 vz2(i)=v(3,nc2(i))
111 vy3(i)=v(2,nc3(i))
112 vz3(i)=v(3,nc3(i))
113 vy4(i)=v(2,nc4(i))
114 vz4(i)=v(3,nc4(i))
115 ENDDO
116
117 DO i=1,nel
118 py1(i)=half*(zm2(i)-zm4(i))
119 py2(i)=half*(zm3(i)-zm1(i))
120 pz1(i)=half*(ym4(i)-ym2(i))
121 pz2(i)=half*(ym1(i)-ym3(i))
122 ENDDO
123
124 DO i=1,nel
125 a1(i) =ym2(i)*(zm3(i)-zm4(i))+ym3(i)*(zm4(i)-zm2(i))+ym4(i)*(zm2(i)-zm3(i))
126 a2(i) =ym2(i)*(zm4(i)-zm1(i))+ym4(i)*(zm1(i)-zm2(i))+ym1(i)*(zm2(i)-zm4(i))
127 airem(i)=(a1(i)+a2(i))*half
128 !AUTRE FORMULE AIREM(I)=2.*(PZ2(I)*PY1(I)-PZ1(I)*PY2(I))
129 yavg(i) =ym1(i)+ym2(i)+ym3(i)+ym4(i)
130 ENDDO
131
132 DO i=1,nel
133 vy13(i)=vy1(i)-vy3(i)
134 vy24(i)=vy2(i)-vy4(i)
135 vz13(i)=vz1(i)-vz3(i)
136 vz24(i)=vz2(i)-vz4(i)
137 ENDDO
138
139 DO i=1,nel
140 IF(airem(i)>zero) THEN
141 eyy(i)=(py1(i)*vy13(i)+py2(i)*vy24(i))/airem(i)
142 ezz(i)=(pz1(i)*vz13(i)+pz2(i)*vz24(i))/airem(i)
143 ett(i)=zero
144 dzy(i)=(py1(i)*vz13(i)+py2(i)*vz24(i))/airem(i)
145 dyz(i)=(pz1(i)*vy13(i)+pz2(i)*vy24(i))/airem(i)
146 eyt(i)=zero
147 ezt(i)=zero
148 ELSE
149 eyy(i)=zero
150 ezz(i)=zero
151 ett(i)=zero
152 dzy(i)=zero
153 dyz(i)=zero
154 eyt(i)=zero
155 ezt(i)=zero
156 END IF
157 ENDDO
158
159 IF(n2d==1) THEN
160 DO i=1,nel
161 IF (yavg(i)<=zero) cycle
162 ett(i)=(vy1(i)+vy2(i)+vy3(i)+vy4(i))/yavg(i)
163 ENDDO
164 ENDIF
165
166 DO i=1,nel
167 eyz(i)= dzy(i)+dyz(i)
168 wyz(i)=half*dt1*(dzy(i)-dyz(i))
169 ENDDO
170C---------------------------------------
171C DERIVEES POUR LE CALCUL DES FORCES
172C---------------------------------------
173 DO i=1,nel
174 py1(i)=half*(z2(i)-z4(i))
175 py2(i)=half*(z3(i)-z1(i))
176 pz1(i)=half*(y4(i)-y2(i))
177 pz2(i)=half*(y1(i)-y3(i))
178 ENDDO
179C---------------------------------------
180C REPERE LOCAL POUR MATERIAUX NON ISOTROPES
181C---------------------------------------
182 DO i=1,nel
183 rx(i)=one
184 ry(i)=zero
185 rz(i)=zero
186 sx(i)=zero
187 sy(i)=-pz1(i)-pz2(i)
188 sz(i)=+py1(i)+py2(i)
189 tx(i)=zero
190 ty(i)=+pz1(i)-pz2(i)
191 tz(i)=-py1(i)+py2(i)
192 ENDDO
193
194 RETURN
#define my_real
Definition cppsort.cpp:32