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

Go to the source code of this file.

Functions/Subroutines

subroutine q4deri2 (offg, off, ksi, eta, wi, yavg, y12, y34, y13, y24, y14, y23, z12, z34, z13, z24, z14, z23, py1, py2, py3, py4, pz1, pz2, pz3, pz4, pyc1, pyc2, pzc1, pzc2, byz1, byz2, byz3, byz4, bzy1, bzy2, bzy3, bzy4, airn, voln, nu, nel, jhbe)

Function/Subroutine Documentation

◆ q4deri2()

subroutine q4deri2 ( offg,
off,
ksi,
eta,
wi,
yavg,
y12,
y34,
y13,
y24,
y14,
y23,
z12,
z34,
z13,
z24,
z14,
z23,
py1,
py2,
py3,
py4,
pz1,
pz2,
pz3,
pz4,
pyc1,
pyc2,
pzc1,
pzc2,
byz1,
byz2,
byz3,
byz4,
bzy1,
bzy2,
bzy3,
bzy4,
airn,
voln,
nu,
integer, intent(in) nel,
integer, intent(in) jhbe )

Definition at line 29 of file q4deri2.F.

41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C G l o b a l P a r a m e t e r s
47C-----------------------------------------------
48#include "mvsiz_p.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "com01_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 INTEGER, INTENT(IN) :: NEL
57 INTEGER, INTENT(IN) :: JHBE
58C REAL
60 . offg(*),off(*),ksi,eta,wi,yavg(*),
61 . y12(*),y34(*),y13(*),y24(*),y14(*),y23(*),
62 . z12(*),z34(*),z13(*),z24(*),z14(*),z23(*),
63 . py1(*),py2(*),py3(*),py4(*),
64 . pz1(*),pz2(*),pz3(*),pz4(*),
65 . pzc1(*),pzc2(*),pyc1(*),pyc2(*),
66 . byz1(*),byz2(*),byz3(*),byz4(*),
67 . bzy1(*),bzy2(*),bzy3(*),bzy4(*),
68 . airn(*),voln(*),nu(*)
69C-----------------------------------------------
70c FUNCTION:
71c ARGUMENTS: (I: input, O: output, IO: input & output, W: workspace)
72c TYPE NAME FUNCTION
73c I OFFG - ELEMENT D/A FLAG, OVERALL
74c IO OFF - ELEMENT D/A FLAG, OF POINT
75c I KSI,ETA,WI - NATURAL COORDINATES, WEIGHT
76c O YAVG(*) - SUMMERY OF "Y" OF THE FOUR NODES
77c I Y12(*)~Z23(*) - DIFFERENCE: Yi-Yj, Zi-Zj
78c O PY1(*)~PZ4(*) - SHAPE DERIVATIVES (dNi/dY, dNi/dZ)
79c O AIRN(*) - W*|J|
80c O VOLN(*) - W*|J| FOR PLAIN CASE; r'*W*|J| FOR AXISYMMETRIC CASE
81c O RX(*)~TZ(*) - JACOBIAN MATRIX [J]
82C-----------------------------------------------
83C L o c a l V a r i a b l e s
84C-----------------------------------------------
85 INTEGER I
86C REAL
88 . dndk1,dndk2,dndk3,dndk4,
89 . dnde1,dnde2,dnde3,dnde4,
90 . dydk(mvsiz),dyde(mvsiz),dzdk(mvsiz),dzde(mvsiz),
91 . det(mvsiz),yh(mvsiz),zh(mvsiz)
93 . qn1,qn2,qn3,qn4,yd,deti,nu1
94C-----------------------------------------------
95C S o u r c e L i n e s
96C-----------------------------------------------
97C 4.*(dNi/dK, dNi/dE)
98 dndk1 = eta - one
99 dndk3 = eta + one
100 dndk2 = - dndk1
101 dndk4 = - dndk3
102 dnde1 = ksi - one
103 dnde3 = ksi + one
104 dnde2 = - dnde3
105 dnde4 = - dnde1
106C
107 DO i=1,nel
108C 4.*(dY/dK, dY/dE, dZ/dK, dZ/dE)
109 dydk(i) = (y14(i)-y23(i))*eta-y13(i)+y24(i)
110 dyde(i) = (y12(i)+y34(i))*ksi-y13(i)-y24(i)
111 dzdk(i) = (z14(i)-z23(i))*eta-z13(i)+z24(i)
112 dzde(i) = (z12(i)+z34(i))*eta-z13(i)-z24(i)
113C 8.*|J|
114 det(i) = (y34(i)*z12(i)-y12(i)*z34(i))*ksi +
115 . (y23(i)*z14(i)-y14(i)*z23(i))*eta +
116 . y13(i)*z24(i)-y24(i)*z13(i)
117C W*|J|
118 voln(i) = one_over_8*det(i)*wi
119 airn(i) = voln(i)
120C dNi/dY, dNi/dZ
121C------add something later for DET=~ zero-----
122 deti=half/det(i)
123 py1(i) = deti*(dzde(i)*dndk1-dzdk(i)*dnde1)
124 py2(i) = deti*(dzde(i)*dndk2-dzdk(i)*dnde2)
125 py3(i) = deti*(dzde(i)*dndk3-dzdk(i)*dnde3)
126 py4(i) = deti*(dzde(i)*dndk4-dzdk(i)*dnde4)
127 pz1(i) = deti*(dydk(i)*dnde1-dyde(i)*dndk1)
128 pz2(i) = deti*(dydk(i)*dnde2-dyde(i)*dndk2)
129 pz3(i) = deti*(dydk(i)*dnde3-dyde(i)*dndk3)
130 pz4(i) = deti*(dydk(i)*dnde4-dyde(i)*dndk4)
131 ENDDO
132C
133 IF(n2d==1) THEN
134 IF(jhbe==17) THEN
135 DO i=1,nel
136 voln(i) = fourth*yavg(i)*voln(i)
137 ENDDO
138 ENDIF
139 ENDIF
140C
141 DO i=1,nel
142 off(i) = offg(i)
143 IF(voln(i)<=zero .AND. off(i)/=zero) THEN
144 voln(i) = em20
145 off(i) =zero
146 ENDIF
147 ENDDO
148C----Assumed strain
149 DO i=1,nel
150 byz1(i) = -nu(i)*(pz1(i) - pzc1(i))
151 byz2(i) = -nu(i)*(pz2(i) - pzc2(i))
152 byz3(i) = -nu(i)*(pz3(i) + pzc1(i))
153 byz4(i) = -nu(i)*(pz4(i) + pzc2(i))
154 bzy1(i) = -nu(i)*(py1(i) - pyc1(i))
155 bzy2(i) = -nu(i)*(py2(i) - pyc2(i))
156 bzy3(i) = -nu(i)*(py3(i) + pyc1(i))
157 bzy4(i) = -nu(i)*(py4(i) + pyc2(i))
158 ENDDO
159 DO i=1,nel
160 nu1 = one-nu(i)
161 py1(i) = pyc1(i) + nu1*(py1(i) - pyc1(i))
162 py2(i) = pyc2(i) + nu1*(py2(i) - pyc2(i))
163 py3(i) =-pyc1(i) + nu1*(py3(i) + pyc1(i))
164 py4(i) =-pyc2(i) + nu1*(py4(i) + pyc2(i))
165 pz1(i) = pzc1(i) + nu1*(pz1(i) - pzc1(i))
166 pz2(i) = pzc2(i) + nu1*(pz2(i) - pzc2(i))
167 pz3(i) =-pzc1(i) + nu1*(pz3(i) + pzc1(i))
168 pz4(i) =-pzc2(i) + nu1*(pz4(i) + pzc2(i))
169 ENDDO
170C
171 RETURN
#define my_real
Definition cppsort.cpp:32