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-----------------------------------------------
42 INTEGER I
43C REAL
44 my_real
45 . DN_R(8), DN_S(8), DN_T(8), INVJ(9),
46 . x1,x2,x3,x4,x5,x6,x7,x8,
47 . y1,y2,y3,y4,y5,y6,y7,y8,
48 . z1,z2,z3,z4,z5,z6,z7,z8,
49 . a11, a12, a13,
50 . a21, a22, a23,
51 . a31, a32, a33,
52 . ksi,eta,zeta, bb(6,24)
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER J,JJ,L,M,LM
57C REAL
58 my_real
59 . B(6,24),C(6,6),UM,UP,
60 . a1a1,a1a2,a1a3,a2a1,a2a2,a2a3,
61 . a1b1,a1b2,a1b3,a2b1,a2b2,a2b3,
62 . b1a1,b1a2,b1a3,b2a1,b2a2,b2a3,
63 . b1b1,b1b2,b1b3,b2b1,b2b2,b2b3,
64 . c1a1,c1a2,c1a3,c2a1,c2a2,c2a3,
65 . c1b1,c1b2,c1b3,c2b1,c2b2,c2b3,
66 . ca11,ca21,ca31,ca12,ca22,ca32,ca13,ca23,ca33
67C
68C-----------------------------------------------
69 DO j=1,8
70 jj = 3*(j-1)
71 b(1,jj+1) = a11 *dn_t(j)
72 b(1,jj+2) = a12 *dn_t(j)
73 b(1,jj+3) = a13 *dn_t(j)
74 b(2,jj+1) = a21 *dn_r(j)
75 b(2,jj+2) = a22 *dn_r(j)
76 b(2,jj+3) = a23 *dn_r(j)
77 b(3,jj+1) = a31 *dn_s(j)
78 b(3,jj+2) = a32 *dn_s(j)
79 b(3,jj+3) = a33 *dn_s(j)
80 ENDDO
81! sortir cette partie car independante du PG
82 a1a1 = (x2 +x3 -x1 -x4 )*fourth
83 a1a2 = (y2 +y3 -y1 -y4 )*fourth
84 a1a3 = (z2 +z3 -z1 -z4 )*fourth
85 a2a1 = (x4 +x3 -x1 -x2 )*fourth
86 a2a2 = (y4 +y3 -y1 -y2 )*fourth
87 a2a3 = (z4 +z3 -z1 -z2 )*fourth
88 a1b1 = (x6 +x7 -x5 -x8 )*fourth
89 a1b2 = (y6 +y7 -y5 -y8 )*fourth
90 a1b3 = (z6 +z7 -z5 -z8 )*fourth
91 a2b1 = (x8 +x7 -x5 -x6 )*fourth
92 a2b2 = (y8 +y7 -y5 -y6 )*fourth
93 a2b3 = (z8 +z7 -z5 -z6 )*fourth
94!
95 um = (one-zeta)/eight
96 up = (one+zeta)/eight
97 b(4,1) = -um*(a1a1+a2a1)
98 b(4,2) = -um*(a1a2+a2a2)
99 b(4,3) = -um*(a1a3+a2a3)
100 b(4,4) = um*(a2a1-a1a1)
101 b(4,5) = um*(a2a2-a1a2)
102 b(4,6) = um*(a2a3-a1a3)
103 b(4,7) = um*(a2a1+a1a1)
104 b(4,8) = um*(a2a2+a1a2)
105 b(4,9) = um*(a2a3+a1a3)
106 b(4,10)= um*(a1a1-a2a1)
107 b(4,11)= um*(a1a2-a2a2)
108 b(4,12)= um*(a1a3-a2a3)
109 b(4,13) =-up*(a1b1+a2b1)
110 b(4,14) =-up*(a1b2+a2b2)
111 b(4,15) =-up*(a1b3+a2b3)
112 b(4,16) = up*(a2b1-a1b1)
113 b(4,17) = up*(a2b2-a1b2)
114 b(4,18) = up*(a2b3-a1b3)
115 b(4,19) = up*(a2b1+a1b1)
116 b(4,20) = up*(a2b2+a1b2)
117 b(4,21) = up*(a2b3+a1b3)
118 b(4,22) = up*(a1b1-a2b1)
119 b(4,23) = up*(a1b2-a2b2)
120 b(4,24) = up*(a1b3-a2b3)
121
122! sortir cette partie car independante du PG
123 b1a1 = (x2 +x6 -x1 -x5 )*fourth
124 b1a2 = (y2 +y6 -y1 -y5 )*fourth
125 b1a3 = (z2 +z6 -z1 -z5 )*fourth
126 b2a1 = (x5 +x6 -x1 -x2 )*fourth
127 b2a2 = (y5 +y6 -y1 -y2 )*fourth
128 b2a3 = (z5 +z6 -z1 -z2 )*fourth
129 b1b1 = (x3 +x7 -x4 -x8 )*fourth
130 b1b2 = (y3 +y7 -y4 -y8 )*fourth
131 b1b3 = (z3 +z7 -z4 -z8 )*fourth
132 b2b1 = (x7 +x8 -x3 -x4 )*fourth
133 b2b2 = (y7 +y8 -y3 -y4 )*fourth
134 b2b3 = (z7 +z8 -z3 -z4 )*fourth
135!
136 um = (one-eta)/eight
137 up = (one+eta)/eight
138 b(5,1) = -um*(b1a1+b2a1)
139 b(5,2) = -um*(b1a2+b2a2)
140 b(5,3) = -um*(b1a3+b2a3)
141 b(5,4) = um*(b2a1-b1a1)
142 b(5,5) = um*(b2a2-b1a2)
143 b(5,6) = um*(b2a3-b1a3)
144 b(5,7) = up*(b2b1-b1b1)
145 b(5,8) = up*(b2b2-b1b2)
146 b(5,9) = up*(b2b3-b1b3)
147 b(5,10)= -up*(b1b1+b2b1)
148 b(5,11)= -up*(b1b2+b2b2)
149 b(5,12)= -up*(b1b3+b2b3)
150 b(5,13)= um*(b1a1-b2a1)
151 b(5,14)= um*(b1a2-b2a2)
152 b(5,15)= um*(b1a3-b2a3)
153 b(5,16)= um*(b1a1+b2a1)
154 b(5,17)= um*(b1a2+b2a2)
155 b(5,18)= um*(b1a3+b2a3)
156 b(5,19)= up*(b1b1+b2b1)
157 b(5,20)= up*(b1b2+b2b2)
158 b(5,21)= up*(b1b3+b2b3)
159 b(5,22)= up*(b1b1-b2b1)
160 b(5,23)= up*(b1b2-b2b2)
161 b(5,24)= up*(b1b3-b2b3)
162
163! sortir cette partie car independante du PG
164 c1a1 = (x4 +x8 -x1 -x5 )*fourth
165 c1a2 = (y4 +y8 -y1 -y5 )*fourth
166 c1a3 = (z4 +z8 -z1 -z5 )*fourth
167 c2a1 = (x5 +x8 -x1 -x4 )*fourth
168 c2a2 = (y5 +y8 -y1 -y4 )*fourth
169 c2a3 = (z5 +z8 -z1 -z4 )*fourth
170 c1b1 = (x3 +x7 -x2 -x6 )*fourth
171 c1b2 = (y3 +y7 -y2 -y6 )*fourth
172 c1b3 = (z3 +z7 -z2 -z6 )*fourth
173 c2b1 = (x6 +x7 -x2 -x3 )*fourth
174 c2b2 = (y6 +y7 -y2 -y3 )*fourth
175 c2b3 = (z6 +z7 -z2 -z3 )*fourth
176!
177 um = (one-ksi)/eight
178 up = (one+ksi)/eight
179 b(6,1) = -um*(c1a1+c2a1)
180 b(6,2) = -um*(c1a2+c2a2)
181 b(6,3) = -um*(c1a3+c2a3)
182 b(6,4) = -up*(c1b1+c2b1)
183 b(6,5) = -up*(c1b2+c2b2)
184 b(6,6) = -up*(c1b3+c2b3)
185 b(6,7) = up*(c2b1-c1b1)
186 b(6,8) = up*(c2b2-c1b2)
187 b(6,9) = up*(c2b3-c1b3)
188 b(6,10)= um*(c2a1-c1a1)
189 b(6,11)= um*(c2a2-c1a2)
190 b(6,12)= um*(c2a3-c1a3)
191 b(6,13)= um*(c1a1-c2a1)
192 b(6,14)= um*(c1a2-c2a2)
193 b(6,15)= um*(c1a3-c2a3)
194 b(6,16)= up*(c1b1-c2b1)
195 b(6,17)= up*(c1b2-c2b2)
196 b(6,18)= up*(c1b3-c2b3)
197 b(6,19)= up*(c1b1+c2b1)
198 b(6,20)= up*(c1b2+c2b2)
199 b(6,21)= up*(c1b3+c2b3)
200 b(6,22)= um*(c1a1+c2a1)
201 b(6,23)= um*(c1a2+c2a2)
202 b(6,24)= um*(c1a3+c2a3)
203
204 ca11 = invj(3)
205 ca21 = invj(1)
206 ca31 = invj(2)
207 ca12 = invj(6)
208 ca22 = invj(4)
209 ca32 = invj(5)
210 ca13 = invj(9)
211 ca23 = invj(7)
212 ca33 = invj(8)
213
214 c(1,1) = ca11*ca11
215 c(2,1) = ca12*ca12
216 c(3,1) = ca13*ca13
217 c(4,1) = two*ca11*ca12
218 c(5,1) = two*ca11*ca13
219 c(6,1) = two*ca12*ca13
220 c(1,2) = ca21*ca21
221 c(2,2) = ca22*ca22
222 c(3,2) = ca23*ca23
223 c(4,2) = two*ca21*ca22
224 c(5,2) = two*ca21*ca23
225 c(6,2) = two*ca22*ca23
226 c(1,3) = ca31*ca31
227 c(2,3) = ca32*ca32
228 c(3,3) = ca33*ca33
229 c(4,3) = two*ca31*ca32
230 c(5,3) = two*ca31*ca33
231 c(6,3) = two*ca32*ca33
232 c(1,4) = ca11*ca21
233 c(2,4) = ca12*ca22
234 c(3,4) = ca13*ca23
235 c(4,4) = ca12*ca21+ca11*ca22
236 c(5,4) = ca13*ca21+ca11*ca23
237 c(6,4) = ca12*ca23+ca13*ca22
238 c(1,5) = ca11*ca31
239 c(2,5) = ca12*ca32
240 c(3,5) = ca13*ca33
241 c(4,5) = ca12*ca31+ca11*ca32
242 c(5,5) = ca13*ca31+ca11*ca33
243 c(6,5) = ca12*ca33+ca13*ca32
244 c(1,6) = ca21*ca31
245 c(2,6) = ca22*ca32
246 c(3,6) = ca23*ca33
247 c(4,6) = ca22*ca31+ca21*ca32
248 c(5,6) = ca23*ca31+ca21*ca33
249 c(6,6) = ca23*ca32+ca22*ca33
250
251 DO l=1,6
252 DO m=1,24
253 bb(l,m) = zero
254 DO lm=1,6
255 bb(l,m) = bb(l,m)+c(l,lm)*b(lm,m)
256 ENDDO
257 ENDDO
258 ENDDO
259C
260 RETURN
261 END
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