OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
q4deric2.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| q4deric2 ../engine/source/elements/solid_2d/quad4/q4deric2.F
25!||--- called by ------------------------------------------------------
26!|| q4forc2 ../engine/source/elements/solid_2d/quad4/q4forc2.F
27!|| q4ke2 ../engine/source/elements/solid_2d/quad4/q4ke2.F
28!||====================================================================
29 SUBROUTINE q4deric2(
30 1 Y1, Y2, Y3, Y4,
31 2 Z1, Z2, Z3, Z4,
32 3 Y12, Y34, Y13, Y24,
33 4 Y14, Y23, Z12, Z34,
34 5 Z13, Z24, Z14, Z23,
35 6 PYC1, PYC2, PZC1, PZC2,
36 7 AIRE, VOLU, YAVG, RX,
37 8 RY, RZ, SX, SY,
38 9 SZ, NEL, JHBE)
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C G l o b a l P a r a m e t e r s
45C-----------------------------------------------
46#include "mvsiz_p.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "com01_c.inc"
51C-----------------------------------------------
52C D u m m y A r g u m e n t s
53C-----------------------------------------------
54 INTEGER, INTENT(IN) :: NEL
55 INTEGER, INTENT(IN) :: JHBE
56C REAL
57 my_real
58 . Y1(*),Y2(*),Y3(*),Y4(*),Z1(*),Z2(*),Z3(*),Z4(*),
59 . Y12(*),Y34(*),Y13(*),Y24(*),Y14(*),Y23(*),
60 . Z12(*),Z34(*),Z13(*),Z24(*),Z14(*),Z23(*),
61 . PYC1(*),PYC2(*),PZC1(*),PZC2(*),AIRE(*),VOLU(*),
62 . RX(MVSIZ) , RY(MVSIZ) , RZ(MVSIZ) ,
63 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,yavg(*)
64C-----------------------------------------------
65c FUNCTION:
66c ARGUMENTS: (I: input, O: output, IO: input & output, W: workspace)
67c TYPE NAME FUNCTION
68c I Y1(*)~Z4(*) - NODAL COORDINATES
69c O Y12(*)~Z23(*) - DIFFERENCE: Yi-Yj, Zi-Zj
70c O PYC1(*)~PZC2(*) - SHAPE DERIVATIVES AT ELEMENT CENTER
71c I AIRE(*) - ELEMENT AREA
72c I/O VOL(*) - ELEMENT VOL
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER I
77C REAL
78C-----------------------------------------------
79C S o u r c e L i n e s
80C-----------------------------------------------
81 DO I=1,nel
82 y12(i) = y1(i) - y2(i)
83 y34(i) = y3(i) - y4(i)
84 y13(i) = y1(i) - y3(i)
85 y24(i) = y2(i) - y4(i)
86 y14(i) = y1(i) - y4(i)
87 y23(i) = y2(i) - y3(i)
88 z12(i) = z1(i) - z2(i)
89 z34(i) = z3(i) - z4(i)
90 z13(i) = z1(i) - z3(i)
91 z24(i) = z2(i) - z4(i)
92 z14(i) = z1(i) - z4(i)
93 z23(i) = z2(i) - z3(i)
94 END DO
95C
96 DO i=1,nel
97C dNi/dY, dNi/dZ, A=4.*|J|
98 pyc1(i) = half*(z2(i)-z4(i))/aire(i)
99 pyc2(i) = half*(z3(i)-z1(i))/aire(i)
100 pzc1(i) = half*(y4(i)-y2(i))/aire(i)
101 pzc2(i) = half*(y1(i)-y3(i))/aire(i)
102 ENDDO
103C COMPUTE VOLUME/(2*PI) FOR AXISYMMETRIC CASE
104 IF(n2d==1.AND.jhbe==17) THEN
105 DO i=1,nel
106 volu(i) = fourth*yavg(i)*aire(i)
107 ENDDO
108 ENDIF
109 DO i=1,nel
110 rx(i) = one
111 ry(i) = zero
112 rz(i) = zero
113 sx(i) = zero
114 sy(i) =half*(y2(i)+y3(i)-y1(i)-y4(i))
115 sz(i) =half*(z2(i)+z3(i)-z1(i)-z4(i))
116 END DO
117C
118 RETURN
119 END
120
subroutine q4deric2(y1, y2, y3, y4, z1, z2, z3, z4, y12, y34, y13, y24, y14, y23, z12, z34, z13, z24, z14, z23, pyc1, pyc2, pzc1, pzc2, aire, volu, yavg, rx, ry, rz, sx, sy, sz, nel, jhbe)
Definition q4deric2.F:39