OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s8sansb.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
25!||====================================================================
26!|| s8sansb ../engine/source/elements/solid/solide8s/s8sansb.F
27!||--- called by ------------------------------------------------------
28!|| s8slke3 ../engine/source/elements/solid/solide8s/s8slke3.F
29!||====================================================================
30 SUBROUTINE s8sansb(
31 . X1,X2,X3,X4,X5,X6,X7,X8,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,
32 . Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8, INVJ,KSI,ETA,ZETA,
33 . A11,A12,A13,A21,A22,A23,A31,A32,A33,
34 . DN_R, DN_S, DN_T,BB)
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42C REAL
44 . dn_r(8), dn_s(8), dn_t(8), invj(9),
45 . x1,x2,x3,x4,x5,x6,x7,x8,
46 . y1,y2,y3,y4,y5,y6,y7,y8,
47 . z1,z2,z3,z4,z5,z6,z7,z8,
48 . a11, a12, a13,
49 . a21, a22, a23,
50 . a31, a32, a33,
51 . ksi,eta,zeta, bb(6,24)
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER J,JJ,L,M,LM
56C REAL
57 my_real
58 . B(6,24),C(6,6),UM,UP,
59 . a1a1,a1a2,a1a3,a2a1,a2a2,a2a3,
60 . a1b1,a1b2,a1b3,a2b1,a2b2,a2b3,
61 . b1a1,b1a2,b1a3,b2a1,b2a2,b2a3,
62 . b1b1,b1b2,b1b3,b2b1,b2b2,b2b3,
63 . c1a1,c1a2,c1a3,c2a1,c2a2,c2a3,
64 . c1b1,c1b2,c1b3,c2b1,c2b2,c2b3,
65 . ca11,ca21,ca31,ca12,ca22,ca32,ca13,ca23,ca33
66C
67C-----------------------------------------------
68 DO j=1,8
69 jj = 3*(j-1)
70 b(1,jj+1) = a11 *dn_t(j)
71 b(1,jj+2) = a12 *dn_t(j)
72 b(1,jj+3) = a13 *dn_t(j)
73 b(2,jj+1) = a21 *dn_r(j)
74 b(2,jj+2) = a22 *dn_r(j)
75 b(2,jj+3) = a23 *dn_r(j)
76 b(3,jj+1) = a31 *dn_s(j)
77 b(3,jj+2) = a32 *dn_s(j)
78 b(3,jj+3) = a33 *dn_s(j)
79 ENDDO
80! remove this part as it is independent of the PG
81 a1a1 = (x2 +x3 -x1 -x4 )*fourth
82 a1a2 = (y2 +y3 -y1 -y4 )*fourth
83 a1a3 = (z2 +z3 -z1 -z4 )*fourth
84 a2a1 = (x4 +x3 -x1 -x2 )*fourth
85 a2a2 = (y4 +y3 -y1 -y2 )*fourth
86 a2a3 = (z4 +z3 -z1 -z2 )*fourth
87 a1b1 = (x6 +x7 -x5 -x8 )*fourth
88 a1b2 = (y6 +y7 -y5 -y8 )*fourth
89 a1b3 = (z6 +z7 -z5 -z8 )*fourth
90 a2b1 = (x8 +x7 -x5 -x6 )*fourth
91 a2b2 = (y8 +y7 -y5 -y6 )*fourth
92 a2b3 = (z8 +z7 -z5 -z6 )*fourth
93!
94 um = (one-zeta)/eight
95 up = (one+zeta)/eight
96 b(4,1) = -um*(a1a1+a2a1)
97 b(4,2) = -um*(a1a2+a2a2)
98 b(4,3) = -um*(a1a3+a2a3)
99 b(4,4) = um*(a2a1-a1a1)
100 b(4,5) = um*(a2a2-a1a2)
101 b(4,6) = um*(a2a3-a1a3)
102 b(4,7) = um*(a2a1+a1a1)
103 b(4,8) = um*(a2a2+a1a2)
104 b(4,9) = um*(a2a3+a1a3)
105 b(4,10)= um*(a1a1-a2a1)
106 b(4,11)= um*(a1a2-a2a2)
107 b(4,12)= um*(a1a3-a2a3)
108 b(4,13) =-up*(a1b1+a2b1)
109 b(4,14) =-up*(a1b2+a2b2)
110 b(4,15) =-up*(a1b3+a2b3)
111 b(4,16) = up*(a2b1-a1b1)
112 b(4,17) = up*(a2b2-a1b2)
113 b(4,18) = up*(a2b3-a1b3)
114 b(4,19) = up*(a2b1+a1b1)
115 b(4,20) = up*(a2b2+a1b2)
116 b(4,21) = up*(a2b3+a1b3)
117 b(4,22) = up*(a1b1-a2b1)
118 b(4,23) = up*(a1b2-a2b2)
119 b(4,24) = up*(a1b3-a2b3)
120
121! remove this part as it is independent of the PG
122 b1a1 = (x2 +x6 -x1 -x5 )*fourth
123 b1a2 = (y2 +y6 -y1 -y5 )*fourth
124 b1a3 = (z2 +z6 -z1 -z5 )*fourth
125 b2a1 = (x5 +x6 -x1 -x2 )*fourth
126 b2a2 = (y5 +y6 -y1 -y2 )*fourth
127 b2a3 = (z5 +z6 -z1 -z2 )*fourth
128 b1b1 = (x3 +x7 -x4 -x8 )*fourth
129 b1b2 = (y3 +y7 -y4 -y8 )*fourth
130 b1b3 = (z3 +z7 -z4 -z8 )*fourth
131 b2b1 = (x7 +x8 -x3 -x4 )*fourth
132 b2b2 = (y7 +y8 -y3 -y4 )*fourth
133 b2b3 = (z7 +z8 -z3 -z4 )*fourth
134!
135 um = (one-eta)/eight
136 up = (one+eta)/eight
137 b(5,1) = -um*(b1a1+b2a1)
138 b(5,2) = -um*(b1a2+b2a2)
139 b(5,3) = -um*(b1a3+b2a3)
140 b(5,4) = um*(b2a1-b1a1)
141 b(5,5) = um*(b2a2-b1a2)
142 b(5,6) = um*(b2a3-b1a3)
143 b(5,7) = up*(b2b1-b1b1)
144 b(5,8) = up*(b2b2-b1b2)
145 b(5,9) = up*(b2b3-b1b3)
146 b(5,10)= -up*(b1b1+b2b1)
147 b(5,11)= -up*(b1b2+b2b2)
148 b(5,12)= -up*(b1b3+b2b3)
149 b(5,13)= um*(b1a1-b2a1)
150 b(5,14)= um*(b1a2-b2a2)
151 b(5,15)= um*(b1a3-b2a3)
152 b(5,16)= um*(b1a1+b2a1)
153 b(5,17)= um*(b1a2+b2a2)
154 b(5,18)= um*(b1a3+b2a3)
155 b(5,19)= up*(b1b1+b2b1)
156 b(5,20)= up*(b1b2+b2b2)
157 b(5,21)= up*(b1b3+b2b3)
158 b(5,22)= up*(b1b1-b2b1)
159 b(5,23)= up*(b1b2-b2b2)
160 b(5,24)= up*(b1b3-b2b3)
161
162! remove this part as it is independent of the PG
163 c1a1 = (x4 +x8 -x1 -x5 )*fourth
164 c1a2 = (y4 +y8 -y1 -y5 )*fourth
165 c1a3 = (z4 +z8 -z1 -z5 )*fourth
166 c2a1 = (x5 +x8 -x1 -x4 )*fourth
167 c2a2 = (y5 +y8 -y1 -y4 )*fourth
168 c2a3 = (z5 +z8 -z1 -z4 )*fourth
169 c1b1 = (x3 +x7 -x2 -x6 )*fourth
170 c1b2 = (y3 +y7 -y2 -y6 )*fourth
171 c1b3 = (z3 +z7 -z2 -z6 )*fourth
172 c2b1 = (x6 +x7 -x2 -x3 )*fourth
173 c2b2 = (y6 +y7 -y2 -y3 )*fourth
174 c2b3 = (z6 +z7 -z2 -z3 )*fourth
175!
176 um = (one-ksi)/eight
177 up = (one+ksi)/eight
178 b(6,1) = -um*(c1a1+c2a1)
179 b(6,2) = -um*(c1a2+c2a2)
180 b(6,3) = -um*(c1a3+c2a3)
181 b(6,4) = -up*(c1b1+c2b1)
182 b(6,5) = -up*(c1b2+c2b2)
183 b(6,6) = -up*(c1b3+c2b3)
184 b(6,7) = up*(c2b1-c1b1)
185 b(6,8) = up*(c2b2-c1b2)
186 b(6,9) = up*(c2b3-c1b3)
187 b(6,10)= um*(c2a1-c1a1)
188 b(6,11)= um*(c2a2-c1a2)
189 b(6,12)= um*(c2a3-c1a3)
190 b(6,13)= um*(c1a1-c2a1)
191 b(6,14)= um*(c1a2-c2a2)
192 b(6,15)= um*(c1a3-c2a3)
193 b(6,16)= up*(c1b1-c2b1)
194 b(6,17)= up*(c1b2-c2b2)
195 b(6,18)= up*(c1b3-c2b3)
196 b(6,19)= up*(c1b1+c2b1)
197 b(6,20)= up*(c1b2+c2b2)
198 b(6,21)= up*(c1b3+c2b3)
199 b(6,22)= um*(c1a1+c2a1)
200 b(6,23)= um*(c1a2+c2a2)
201 b(6,24)= um*(c1a3+c2a3)
202
203 ca11 = invj(3)
204 ca21 = invj(1)
205 ca31 = invj(2)
206 ca12 = invj(6)
207 ca22 = invj(4)
208 ca32 = invj(5)
209 ca13 = invj(9)
210 ca23 = invj(7)
211 ca33 = invj(8)
212
213 c(1,1) = ca11*ca11
214 c(2,1) = ca12*ca12
215 c(3,1) = ca13*ca13
216 c(4,1) = two*ca11*ca12
217 c(5,1) = two*ca11*ca13
218 c(6,1) = two*ca12*ca13
219 c(1,2) = ca21*ca21
220 c(2,2) = ca22*ca22
221 c(3,2) = ca23*ca23
222 c(4,2) = two*ca21*ca22
223 c(5,2) = two*ca21*ca23
224 c(6,2) = two*ca22*ca23
225 c(1,3) = ca31*ca31
226 c(2,3) = ca32*ca32
227 c(3,3) = ca33*ca33
228 c(4,3) = two*ca31*ca32
229 c(5,3) = two*ca31*ca33
230 c(6,3) = two*ca32*ca33
231 c(1,4) = ca11*ca21
232 c(2,4) = ca12*ca22
233 c(3,4) = ca13*ca23
234 c(4,4) = ca12*ca21+ca11*ca22
235 c(5,4) = ca13*ca21+ca11*ca23
236 c(6,4) = ca12*ca23+ca13*ca22
237 c(1,5) = ca11*ca31
238 c(2,5) = ca12*ca32
239 c(3,5) = ca13*ca33
240 c(4,5) = ca12*ca31+ca11*ca32
241 c(5,5) = ca13*ca31+ca11*ca33
242 c(6,5) = ca12*ca33+ca13*ca32
243 c(1,6) = ca21*ca31
244 c(2,6) = ca22*ca32
245 c(3,6) = ca23*ca33
246 c(4,6) = ca22*ca31+ca21*ca32
247 c(5,6) = ca23*ca31+ca21*ca33
248 c(6,6) = ca23*ca32+ca22*ca33
249
250 DO l=1,6
251 DO m=1,24
252 bb(l,m) = zero
253 DO lm=1,6
254 bb(l,m) = bb(l,m)+c(l,lm)*b(lm,m)
255 ENDDO
256 ENDDO
257 ENDDO
258C
259 RETURN
260 END
#define my_real
Definition cppsort.cpp:32
subroutine s8sansb(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, invj, ksi, eta, zeta, a11, a12, a13, a21, a22, a23, a31, a32, a33, dn_r, dn_s, dn_t, bb)
Definition s8sansb.F:35