OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
qrdefo2.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 qrdefo2 (v, 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, r22, r23, r32, r33, nel, jcvt)

Function/Subroutine Documentation

◆ qrdefo2()

subroutine qrdefo2 ( v,
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,
r22,
r23,
r32,
r33,
integer, intent(in) nel,
integer, intent(in) jcvt )

Definition at line 28 of file qrdefo2.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
54 INTEGER, INTENT(IN) :: JCVT
55C REAL
57 . v(3,*),
58 . y1(*),y2(*),y3(*),y4(*),z1(*),z2(*),z3(*),z4(*),
59 . vy1(*),vy2(*),vy3(*),vy4(*),vz1(*),vz2(*),vz3(*),vz4(*),
60 . py1(*), py2(*), pz1(*), pz2(*),
61 . wyz(*), dyz(*), dzy(*),
62 . eyy(*),ezz(*), ett(*), eyz(*), eyt(*), ezt(*),
63 . rx(*),ry(*), rz(*), sx(*), sy(*), sz(*), tx(*), ty(*), tz(*),
64 . voln(*),aire(*),airem(*),
65 . r22(*),r23(*),r32(*),r33(*)
66C
67 INTEGER NC1(*), NC2(*), NC3(*), NC4(*)
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71#include "com01_c.inc"
72#include "com08_c.inc"
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER I
77C REAL
79 . vy13(mvsiz), vy24(mvsiz), vz13(mvsiz),vz24(mvsiz),
80 . ym1(mvsiz), ym2(mvsiz), ym3(mvsiz), ym4(mvsiz),
81 . zm1(mvsiz), zm2(mvsiz), zm3(mvsiz), zm4(mvsiz),
82 . yavg(mvsiz),a1(mvsiz) , a2(mvsiz), zavg(mvsiz),
83 . vyg(mvsiz),vy,vz,y,z
84C-----------------------------------------------
85C
86C JCVT/=0 Lagrangian case only
87 DO i=1,nel
88 vy1(i)=v(2,nc1(i))
89 vz1(i)=v(3,nc1(i))
90 vy2(i)=v(2,nc2(i))
91 vz2(i)=v(3,nc2(i))
92 vy3(i)=v(2,nc3(i))
93 vz3(i)=v(3,nc3(i))
94 vy4(i)=v(2,nc4(i))
95 vz4(i)=v(3,nc4(i))
96 END DO
97C
98 DO i=1,nel
99 vy=r22(i)*vy1(i)+r32(i)*vz1(i)
100 vz=r23(i)*vy1(i)+r33(i)*vz1(i)
101 vy1(i)=vy
102 vz1(i)=vz
103 vy=r22(i)*vy2(i)+r32(i)*vz2(i)
104 vz=r23(i)*vy2(i)+r33(i)*vz2(i)
105 vy2(i)=vy
106 vz2(i)=vz
107 vy=r22(i)*vy3(i)+r32(i)*vz3(i)
108 vz=r23(i)*vy3(i)+r33(i)*vz3(i)
109 vy3(i)=vy
110 vz3(i)=vz
111 vy=r22(i)*vy4(i)+r32(i)*vz4(i)
112 vz=r23(i)*vy4(i)+r33(i)*vz4(i)
113 vy4(i)=vy
114 vz4(i)=vz
115 END DO
116C
117 DO i=1,nel
118 py1(i)=half*(z2(i)-z4(i))
119 py2(i)=half*(z3(i)-z1(i))
120 pz1(i)=half*(y4(i)-y2(i))
121 pz2(i)=half*(y1(i)-y3(i))
122 END DO
123C
124 DO i=1,nel
125 a1(i) =y2(i)*(z3(i)-z4(i))+y3(i)*(z4(i)-z2(i))+
126 & y4(i)*(z2(i)-z3(i))
127 a2(i) =y2(i)*(z4(i)-z1(i))+y4(i)*(z1(i)-z2(i))+
128 & y1(i)*(z2(i)-z4(i))
129 airem(i)=(a1(i)+a2(i))*half
130C AUTRE FORMULE AIREM(I)=2.*(PZ2(I)*PY1(I)-PZ1(I)*PY2(I))
131 END DO
132C
133 IF(n2d==1)THEN
134 DO i=1,nel
135 y =y1(i)+y2(i)+y3(i)+y4(i)
136 z =z1(i)+z2(i)+z3(i)+z4(i)
137 yavg(i) =r22(i)*y+r23(i)*z
138 END DO
139 END IF
140C
141 DO i=1,nel
142 vy13(i)=vy1(i)-vy3(i)
143 vy24(i)=vy2(i)-vy4(i)
144 vz13(i)=vz1(i)-vz3(i)
145 vz24(i)=vz2(i)-vz4(i)
146 END DO
147C
148 DO i=1,nel
149 IF(airem(i)>zero) THEN
150 eyy(i)=(py1(i)*vy13(i)+py2(i)*vy24(i))/airem(i)
151 ezz(i)=(pz1(i)*vz13(i)+pz2(i)*vz24(i))/airem(i)
152 ett(i)=zero
153 dzy(i)=(py1(i)*vz13(i)+py2(i)*vz24(i))/airem(i)
154 dyz(i)=(pz1(i)*vy13(i)+pz2(i)*vy24(i))/airem(i)
155 eyt(i)=zero
156 ezt(i)=zero
157 ELSE
158 eyy(i)=zero
159 ezz(i)=zero
160 ett(i)=zero
161 dzy(i)=zero
162 dyz(i)=zero
163 eyt(i)=zero
164 ezt(i)=zero
165 END IF
166 END DO
167C
168 IF(n2d==1) THEN
169 DO i=1,nel
170 IF (yavg(i)>zero)THEN
171 vy=vy1(i)+vy2(i)+vy3(i)+vy4(i)
172 vz=vz1(i)+vz2(i)+vz3(i)+vz4(i)
173 vyg(i) =r22(i)*vy+r23(i)*vz
174 ett(i)=vyg(i)/yavg(i)
175 END IF
176 END DO
177 ENDIF
178C
179C correction due to rotation of the skew:
180 DO i=1,nel
181 eyz(i) = dyz(i)+dzy(i)
182 . -dt1*(eyy(i)*dyz(i)+dzy(i)*ezz(i))
183 eyy(i) = eyy(i)
184 . -0.5*dt1*(eyy(i)*eyy(i)+dzy(i)*dzy(i))
185 ezz(i) = ezz(i)
186 . -0.5*dt1*(ezz(i)*ezz(i)+dyz(i)*dyz(i))
187 ett(i) = ett(i)
188C pas de rotation => pas de terme . -0.5*DT1*ETT(I)*ETT(I)
189 wyz(i)= zero
190 ENDDO
191C---------------------------------------
192C REPERE LOCAL POUR MATERIAUX NON ISOTROPES
193C---------------------------------------
194 DO 90 i=1,nel
195 rx(i)=one
196 ry(i)=zero
197 rz(i)=zero
198 sx(i)=zero
199 sy(i)=-pz1(i)-pz2(i)
200 sz(i)=+py1(i)+py2(i)
201 tx(i)=zero
202 ty(i)=+pz1(i)-pz2(i)
203 tz(i)=-py1(i)+py2(i)
204 90 CONTINUE
205C
206 RETURN
#define my_real
Definition cppsort.cpp:32