OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ffint3.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/.
23C new subroutine for simplified flow (euler equation
24C can be used also for Navier stocks equation
25!||====================================================================
26!|| ffint3 ../engine/source/elements/solid/solide/ffint3.F
27!||--- called by ------------------------------------------------------
28!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
29!||--- uses -----------------------------------------------------
30!|| ale_mod ../common_source/modules/ale/ale_mod.F
31!||====================================================================
32 SUBROUTINE ffint3(
33 1 SIG, DFE, PX1, PX2,
34 2 PX3, PX4, PY1, PY2,
35 3 PY3, PY4, PZ1, PZ2,
36 4 PZ3, PZ4, F11, F21,
37 5 F31, F12, F22, F32,
38 6 F13, F23, F33, F14,
39 7 F24, F34, F15, F25,
40 8 F35, F16, F26, F36,
41 9 F17, F27, F37, F18,
42 A F28, F38, VOL, QVIS,
43 B N1X, N2X, N3X, N4X,
44 C N5X, N6X, N1Y, N2Y,
45 D N3Y, N4Y, N5Y, N6Y,
46 E N1Z, N2Z, N3Z, N4Z,
47 F N5Z, N6Z, NEL)
48C-----------------------------------------------
49C M o d u l e s
50C-----------------------------------------------
51 USE ale_mod
52C-----------------------------------------------
53C I m p l i c i t T y p e s
54C-----------------------------------------------
55#include "implicit_f.inc"
56C-----------------------------------------------
57C G l o b a l P a r a m e t e r s
58C-----------------------------------------------
59#include "mvsiz_p.inc"
60C-----------------------------------------------
61C C o m m o n B l o c k s
62C-----------------------------------------------
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER, INTENT(IN) :: NEL
67 my_real
68 . SIG(MVSIZ,6),
69 . PX1(*), PX2(*), PX3(*), PX4(*),
70 . PY1(*), PY2(*), PY3(*), PY4(*),
71 . PZ1(*), PZ2(*), PZ3(*), PZ4(*),
72 . F11(*),F21(*),F31(*),F12(*),F22(*),F32(*),
73 . F13(*),F23(*),F33(*),F14(*),F24(*),F34(*),
74 . F15(*),F25(*),F35(*),F16(*),F26(*),F36(*),
75 . F17(*),F27(*),F37(*),F18(*),F28(*),F38(*),
76 . VOL(*),QVIS(*) ,DFE(MVSIZ,3)
77 my_real
78 . N1X(*), N2X(*), N3X(*), N4X(*), N5X(*), N6X(*),
79 . N1Y(*), N2Y(*), N3Y(*), N4Y(*), N5Y(*), N6Y(*),
80 . N1Z(*), N2Z(*), N3Z(*), N4Z(*), N5Z(*), N6Z(*)
81C-----------------------------------------------
82C L o c a l V a r i a b l e s
83C-----------------------------------------------
84 INTEGER I, J
85 my_real
86 . S1(MVSIZ), S2(MVSIZ), S3(MVSIZ),
87 . S4(MVSIZ), S5(MVSIZ), S6(MVSIZ),
88 . FINT,FINTD,P(MVSIZ)
89C-----------------------------------------------
90 IF(ALE%GLOBAL%ICAA == 0)then
91 DO i=1,nel
92 s1(i)=(sig(i,1)-qvis(i))*vol(i)
93 s2(i)=(sig(i,2)-qvis(i))*vol(i)
94 s3(i)=(sig(i,3)-qvis(i))*vol(i)
95 s4(i)=(sig(i,4))*vol(i)
96 s5(i)=(sig(i,5))*vol(i)
97 s6(i)=(sig(i,6))*vol(i)
98 ENDDO
99 ELSE
100 DO i=1,nel
101 s1(i)=sig(i,1)-qvis(i)
102 s2(i)=sig(i,2)-qvis(i)
103 s3(i)=sig(i,3)-qvis(i)
104 p(i)=(s1(i)+s2(i)+s3(i))/three
105 s1(i)=(s1(i)-p(i))*vol(i)
106 s2(i)=(s2(i)-p(i))*vol(i)
107 s3(i)=(s3(i)-p(i))*vol(i)
108 s4(i)=sig(i,4)*vol(i)
109 s5(i)=sig(i,5)*vol(i)
110 s6(i)=sig(i,6)*vol(i)
111 p(i)=p(i)*0.125
112
113 ENDDO
114 DO i=1,nel
115 f11(i)=f11(i)-p(i)*(n1x(i) +n4x(i) +n6x(i))
116 f21(i)=f21(i)-p(i)*(n1y(i) +n4y(i) +n6y(i))
117 f31(i)=f31(i)-p(i)*(n1z(i) +n4z(i) +n6z(i))
118 f12(i)=f12(i)-p(i)*(n1x(i) +n4x(i)+n5x(i) )
119 f22(i)=f22(i)-p(i)*(n1y(i) +n4y(i)+n5y(i) )
120 f32(i)=f32(i)-p(i)*(n1z(i) +n4z(i)+n5z(i) )
121 f13(i)=f13(i)-p(i)*(n1x(i)+n2x(i) +n5x(i) )
122 f23(i)=f23(i)-p(i)*(n1y(i)+n2y(i) +n5y(i) )
123 f33(i)=f33(i)-p(i)*(n1z(i)+n2z(i) +n5z(i) )
124 f14(i)=f14(i)-p(i)*(n1x(i)+n2x(i) +n6x(i))
125 f24(i)=f24(i)-p(i)*(n1y(i)+n2y(i) +n6y(i))
126 f34(i)=f34(i)-p(i)*(n1z(i)+n2z(i) +n6z(i))
127 f15(i)=f15(i)-p(i)*( +n3x(i)+n4x(i) +n6x(i))
128 f25(i)=f25(i)-p(i)*( +n3y(i)+n4y(i) +n6y(i))
129 f35(i)=f35(i)-p(i)*( +n3z(i)+n4z(i) +n6z(i))
130 f16(i)=f16(i)-p(i)*( +n3x(i)+n4x(i)+n5x(i) )
131 f26(i)=f26(i)-p(i)*( +n3y(i)+n4y(i)+n5y(i) )
132 f36(i)=f36(i)-p(i)*( +n3z(i)+n4z(i)+n5z(i) )
133 f17(i)=f17(i)-p(i)*( +n2x(i)+n3x(i) +n5x(i) )
134 f27(i)=f27(i)-p(i)*( +n2y(i)+n3y(i) +n5y(i) )
135 f37(i)=f37(i)-p(i)*( +n2z(i)+n3z(i) +n5z(i) )
136 f18(i)=f18(i)-p(i)*( +n2x(i)+n3x(i) +n6x(i))
137 f28(i)=f28(i)-p(i)*( +n2y(i)+n3y(i) +n6y(i))
138 f38(i)=f38(i)-p(i)*( +n2z(i)+n3z(i) +n6z(i))
139 ENDDO
140 ENDIF
141C
142 DO i=1,nel
143 fint=s1(i)*px1(i)+s4(i)*py1(i)+s6(i)*pz1(i)
144 f11(i)=f11(i) - fint - dfe(i,1)
145 f17(i)=f17(i) + fint - dfe(i,1)
146C
147 fint=s2(i)*py1(i)+s4(i)*px1(i)+s5(i)*pz1(i)
148 f21(i)=f21(i)-fint - dfe(i,2)
149 f27(i)=f27(i)+fint - dfe(i,2)
150C
151 fint=s3(i)*pz1(i)+s6(i)*px1(i)+s5(i)*py1(i)
152 f31(i)=f31(i) - fint - dfe(i,3)
153 f37(i)=f37(i) + fint - dfe(i,3)
154C
155 fint=s1(i)*px2(i)+s4(i)*py2(i)+s6(i)*pz2(i)
156 f12(i)=f12(i) - fint - dfe(i,1)
157 f18(i)=f18(i) + fint - dfe(i,1)
158C
159 fint=s2(i)*py2(i)+s4(i)*px2(i)+s5(i)*pz2(i)
160 f22(i)=f22(i)-fint - dfe(i,2)
161 f28(i)=f28(i)+fint - dfe(i,2)
162C
163 fint=s3(i)*pz2(i)+s6(i)*px2(i)+s5(i)*py2(i)
164 f32(i)=f32(i) - fint - dfe(i,3)
165 f38(i)=f38(i) + fint - dfe(i,3)
166C
167 fint=s1(i)*px3(i)+s4(i)*py3(i)+s6(i)*pz3(i)
168 f13(i)=f13(i)-fint - dfe(i,1)
169 f15(i)=f15(i)+fint - dfe(i,1)
170C
171 fint=s2(i)*py3(i)+s4(i)*px3(i)+s5(i)*pz3(i)
172 f23(i)=f23(i)-fint - dfe(i,2)
173 f25(i)=f25(i)+fint - dfe(i,2)
174cc
175 fint=s3(i)*pz3(i)+s6(i)*px3(i)+s5(i)*py3(i)
176 f33(i)=f33(i)-fint - dfe(i,3)
177 f35(i)=f35(i)+fint - dfe(i,3)
178C
179 fint=s1(i)*px4(i)+s4(i)*py4(i)+s6(i)*pz4(i)
180 f14(i)=f14(i)-fint - dfe(i,1)
181 f16(i)=f16(i)+fint - dfe(i,1)
182cc
183 fint=s2(i)*py4(i)+s4(i)*px4(i)+s5(i)*pz4(i)
184 f24(i)=f24(i)-fint - dfe(i,2)
185 f26(i)=f26(i)+fint - dfe(i,2)
186c
187 fint=s3(i)*pz4(i)+s6(i)*px4(i)+s5(i)*py4(i)
188 f34(i)=f34(i)-fint - dfe(i,3)
189 f36(i)=f36(i)+fint - dfe(i,3)
190 ENDDO
191C
192 RETURN
193 END SUBROUTINE ffint3
194
subroutine ffint3(sig, dfe, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, vol, qvis, n1x, n2x, n3x, n4x, n5x, n6x, n1y, n2y, n3y, n4y, n5y, n6y, n1z, n2z, n3z, n4z, n5z, n6z, nel)
Definition ffint3.F:48