OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s6cke3.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!|| s6cke3 ../engine/source/elements/thickshell/solide6c/s6cke3.F
25!||--- called by ------------------------------------------------------
26!|| imp_glob_k ../engine/source/implicit/imp_glob_k.F
27!|| imp_glob_k0 ../engine/source/implicit/imp_glob_k.F
28!||--- calls -----------------------------------------------------
29!|| assem_s6 ../engine/source/implicit/assem_s6.F
30!|| mmats ../engine/source/elements/solid/solide8z/mmats.F
31!|| mmstifs ../engine/source/elements/solid/solide8z/mmstifs.F
32!|| s6ccumg3 ../engine/source/elements/thickshell/solide6c/s6ccumg3.F
33!|| s6cderi3 ../engine/source/elements/thickshell/solide6c/s6cderi3.F
34!|| s6ckgeo3 ../engine/source/elements/thickshell/solide6c/s6ckgeo3.F
35!|| s6clke3 ../engine/source/elements/thickshell/solide6c/s6clke3.F
36!|| s6rcoork ../engine/source/elements/thickshell/solide6c/s6rcoork.F
37!|| s8eoff ../engine/source/elements/solid/solide8/s8eoff.F
38!|| s8zsigp3 ../engine/source/elements/solid/solide8z/s8zsigp3.F
39!||--- uses -----------------------------------------------------
40!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
41!|| element_mod ../common_source/modules/elements/element_mod.F90
42!||====================================================================
43 SUBROUTINE s6cke3(
44 1 PM, GEO, IXS, X,
45 2 ELBUF_STR,ETAG, IDDL, NDOF,
46 3 K_DIAG, K_LT, IADK, JDIK,
47 4 NEL, ICP, ICSIG, IPM,
48 5 IGEO, IKGEO, BUFMAT, NFT,
49 6 MTN, JHBE, ISORTH, ISORTHG,
50 7 ISMSTR)
51C-----------------------------------------------
52C M o d u l e s
53C-----------------------------------------------
54 USE elbufdef_mod
55 use element_mod , only : nixs
56C-----------------------------------------------
57C I m p l i c i t T y p e s
58C-----------------------------------------------
59#include "implicit_f.inc"
60C-----------------------------------------------
61C G l o b a l P a r a m e t e r s
62C-----------------------------------------------
63#include "mvsiz_p.inc"
64C-----------------------------------------------
65C C o m m o n B l o c k s
66C-----------------------------------------------
67#include "com04_c.inc"
68#include "param_c.inc"
69C-----------------------------------------------
70C D u m m y A r g u m e n t s
71C-----------------------------------------------
72 INTEGER, INTENT(IN) :: ISMSTR
73 INTEGER, INTENT(IN) :: NFT
74 INTEGER, INTENT(IN) :: MTN
75 INTEGER, INTENT(IN) :: JHBE
76 INTEGER, INTENT(IN) :: ISORTH
77 INTEGER, INTENT(INOUT) :: ISORTHG
78 INTEGER ICP, ICSIG, IKGEO, NEL
79 INTEGER ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*),
80 . ixs(nixs,*),ipm(npropmi,*),igeo(npropgi,*)
81C
83 . pm(npropm,*), geo(npropg,*), x(*),
84 . k11(9,mvsiz),k12(9,mvsiz),k13(9,mvsiz),k14(9,mvsiz),k15(9,mvsiz),
85 . k16(9,mvsiz),k22(9,mvsiz),k23(9,mvsiz),k24(9,mvsiz),k25(9,mvsiz),
86 . k26(9,mvsiz),k33(9,mvsiz),k34(9,mvsiz),k35(9,mvsiz),k36(9,mvsiz),
87 . k44(9,mvsiz),k45(9,mvsiz),k46(9,mvsiz),k55(9,mvsiz),k56(9,mvsiz),
88 . k66(9,mvsiz) ,offg(mvsiz) ,bufmat(*),k_diag(*) ,k_lt(*)
89 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
90C-----------------------------------------------
91C L o c a l V a r i a b l e s
92C-----------------------------------------------
93 INTEGER NF1, I, IS, IAD0
94 INTEGER IADBUF, IKORTH, IBID, IUN, NLAY
95 INTEGER MXT(MVSIZ), NGL(MVSIZ), NGEO(MVSIZ)
97 . voln(mvsiz),
98 . aj1(mvsiz) , aj2(mvsiz) , aj3(mvsiz) ,
99 . aj4(mvsiz) , aj5(mvsiz) , aj6(mvsiz)
100C----------------
101 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
102 . nc5(mvsiz), nc6(mvsiz)
103 my_real
104 . bid(1),
105 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
106 . x5(mvsiz), x6(mvsiz),
107 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
108 . y5(mvsiz), y6(mvsiz),
109 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
110 . z5(mvsiz), z6(mvsiz),
111 . pxc1(mvsiz),pxc2(mvsiz),pxc3(mvsiz),pxc4(mvsiz),
112 . pyc1(mvsiz),pyc2(mvsiz),pyc3(mvsiz),pyc4(mvsiz),
113 . pzc1(mvsiz),pzc2(mvsiz),pzc3(mvsiz),pzc4(mvsiz),
114 . px1h(mvsiz),px2h(mvsiz),px3h(mvsiz),
115 . py1h(mvsiz),py2h(mvsiz),py3h(mvsiz),
116 . pz1h(mvsiz),pz2h(mvsiz),pz3h(mvsiz)
117 my_real
118 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
119 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
120 . r31(mvsiz),r32(mvsiz),r33(mvsiz),gama(mvsiz,6)
121C 12
122 my_real
123 . volg(mvsiz),
124 . b1122(mvsiz),b1221(mvsiz),b2212(mvsiz),b1121(mvsiz),
125 . b1122h(mvsiz),b1221h(mvsiz),b2212h(mvsiz),b1121h(mvsiz),
126 . b1x(mvsiz,2),b1y(mvsiz,2),b2x(mvsiz,2),b2y(mvsiz,2),
127 . b1xh(mvsiz,2),b1yh(mvsiz,2),b2xh(mvsiz,2),b2yh(mvsiz,2),
128 . vzl(mvsiz),ji33(mvsiz)
129 TYPE(g_bufel_) ,POINTER :: GBUF
130 TYPE(L_BUFEL_) ,POINTER :: LBUF
131 my_real
132 . W_GAUSS(9,9),A_GAUSS(9,9)
133 DATA W_GAUSS /
134 1 2. ,0. ,0. ,
135 1 0. ,0. ,0. ,
136 1 0. ,0. ,0. ,
137 2 1. ,1. ,0. ,
138 2 0. ,0. ,0. ,
139 2 0. ,0. ,0. ,
140 3 0.555555555555556,0.888888888888889,0.555555555555556,
141 3 0. ,0. ,0. ,
142 3 0. ,0. ,0. ,
143 4 0.347854845137454,0.652145154862546,0.652145154862546,
144 4 0.347854845137454,0. ,0. ,
145 4 0. ,0. ,0. ,
146 5 0.236926885056189,0.478628670499366,0.568888888888889,
147 5 0.478628670499366,0.236926885056189,0. ,
148 5 0. ,0. ,0. ,
149 6 0.171324492379170,0.360761573048139,0.467913934572691,
150 6 0.467913934572691,0.360761573048139,0.171324492379170,
151 6 0. ,0. ,0. ,
152 7 0.129484966168870,0.279705391489277,0.381830050505119,
153 7 0.417959183673469,0.381830050505119,0.279705391489277,
154 7 0.129484966168870,0. ,0. ,
155 8 0.101228536290376,0.222381034453374,0.313706645877887,
156 8 0.362683783378362,0.362683783378362,0.313706645877887,
157 8 0.222381034453374,0.101228536290376,0. ,
158 9 0.081274388361574,0.180648160694857,0.260610696402935,
159 9 0.312347077040003,0.330239355001260,0.312347077040003,
160 9 0.260610696402935,0.180648160694857,0.081274388361574/
161 DATA a_gauss /
162 1 0. ,0. ,0. ,
163 1 0. ,0. ,0. ,
164 1 0. ,0. ,0. ,
165 2 -.577350269189626,0.577350269189626,0. ,
166 2 0. ,0. ,0. ,
167 2 0. ,0. ,0. ,
168 3 -.774596669241483,0. ,0.774596669241483,
169 3 0. ,0. ,0. ,
170 3 0. ,0. ,0. ,
171 4 -.861136311594053,-.339981043584856,0.339981043584856,
172 4 0.861136311594053,0. ,0. ,
173 4 0. ,0. ,0. ,
174 5 -.906179845938664,-.538469310105683,0. ,
175 5 0.538469310105683,0.906179845938664,0. ,
176 5 0. ,0. ,0. ,
177 6 -.932469514203152,-.661209386466265,-.238619186083197,
178 6 0.238619186083197,0.661209386466265,0.932469514203152,
179 6 0. ,0. ,0. ,
180 7 -.949107912342759,-.741531185599394,-.405845151377397,
181 7 0. ,0.405845151377397,0.741531185599394,
182 7 0.949107912342759,0. ,0. ,
183 8 -.960289856497536,-.796666477413627,-.525532409916329,
184 8 -.183434642495650,0.183434642495650,0.525532409916329,
185 8 0.796666477413627,0.960289856497536,0. ,
186 9 -.968160239507626,-.836031107326636,-.613371432700590,
187 9 -.324253423403809,0. ,0.324253423403809,
188 9 0.613371432700590,0.836031107326636,0.968160239507626/
189
190 my_real
191 . nu(mvsiz),nu1(mvsiz),hh(2,mvsiz),fac(mvsiz),c1,e0(mvsiz),
192 . dd(9,mvsiz),gg(mvsiz),dm(9,mvsiz),gm(9,mvsiz),dgm(9,mvsiz),
193 . dg(9,mvsiz),g33(9,mvsiz)
194C----HH(1,):lamda,HH(2,):G
195C-----------------------------------------------
196C S o u r c e L i n e s
197C-----------------------------------------------
198 gbuf => elbuf_str%GBUF
199 nlay = elbuf_str%NLAY
200 iad0 = 1
201 IF (isorth > 0) iad0 = 1 + 6*nel
202 isorthg = 0
203 ikorth=0
204C-----------
205 nf1=nft+1
206C-----------
207 CALL s6rcoork(
208 1 x, ixs(1,nf1),x1, x2,
209 2 x3, x4, x5, x6,
210 3 y1, y2, y3, y4,
211 4 y5, y6, z1, z2,
212 5 z3, z4, z5, z6,
213 6 gbuf%OFF, offg, gbuf%SMSTR,r11,
214 7 r12, r13, r21, r22,
215 8 r23, r31, r32, r33,
216 9 nc1, nc2, nc3, nc4,
217 a nc5, nc6, ngl, mxt,
218 b ngeo, k11, k12, k13,
219 c k14, k15, k16, k22,
220 d k23, k24, k25, k26,
221 e k33, k34, k35, k36,
222 f k44, k45, k46, k55,
223 g k56, k66, nel, ismstr)
224C
225C----------------------
226 DO i=1,nel
227 nu(i)=min(half,pm(21,mxt(i)))
228 c1 =pm(32,mxt(i))
229 e0(i) =three*(one-two*nu(i))*c1
230 ENDDO
231C
232 IF (icp==1) THEN
233 DO i=1,nel
234 nu1(i)=half
235 ENDDO
236 ELSEIF (icp==2) THEN
237 CALL s8zsigp3(1 ,nel ,gbuf%SIG,e0,gbuf%PLA,
238 2 fac ,gbuf%G_PLA,nel )
239 DO i=1,nel
240 nu1(i)=nu(i)+(half-nu(i))*fac(i)
241 ENDDO
242 ELSE
243 DO i=1,nel
244 nu1(i) =nu(i)
245 ENDDO
246 ENDIF
247 CALL s6cderi3(
248 1 offg, voln, ngl, x1,
249 2 x2, x3, x4, x5,
250 3 x6, y1, y2, y3,
251 4 y4, y5, y6, z1,
252 5 z2, z3, z4, z5,
253 6 z6, pxc1, pxc2, pxc3,
254 7 pxc4, pyc1, pyc2, pyc3,
255 8 pyc4, pzc1, pzc2, pzc3,
256 9 pzc4, px1h, px2h, px3h,
257 a py1h, py2h, py3h, pz1h,
258 b pz2h, pz3h, aj1, aj2,
259 c aj3, aj4, aj5, aj6,
260 d ji33, b1x, b1y, b2y,
261 e b2x, b1122, b1221, b2212,
262 f b1121, b1xh, b1yh, b2xh,
263 g b2yh, b1122h, b1221h, b2212h,
264 h b1121h, vzl, volg, gbuf%SMSTR,
265 i gbuf%OFF, nel, ismstr)
266 IF (mtn>=28) THEN
267 iadbuf = ipm(7,mxt(1))
268 ELSE
269 iadbuf = 0
270 ENDIF
271C
272 CALL mmats(1 ,nel ,pm ,mxt ,hh ,
273 . mtn ,ikorth ,ipm ,igeo ,gama ,
274 . bufmat(iadbuf) ,dm ,dgm ,gm ,
275 . jhbe ,gbuf%SIG ,bid ,nlay ,nel )
276C-----------Begin integrating points----
277 ibid=0
278 iun = 1
279 DO is=1,nlay
280 lbuf => elbuf_str%BUFLY(is)%LBUF(1,1,1)
281 DO i=1,nel
282 voln(i)=half*w_gauss(is,nlay)*(volg(i)+vzl(i)*a_gauss(is,nlay))
283 ENDDO
284 CALL mmstifs(
285 1 pm, mxt, hh, voln,
286 2 ibid, dd, gg, dg,
287 3 g33, dm, gm, dgm,
288 4 ikorth, lbuf%SIG,iun, iun,
289 5 is, nel, jhbe, mtn)
290 CALL s6clke3(
291 1 pxc1, pxc2, pxc3, pxc4,
292 2 pyc1, pyc2, pyc3, pyc4,
293 3 pzc1, pzc2, pzc3, pzc4,
294 4 px1h, px2h, px3h, py1h,
295 5 py2h, py3h, pz1h, pz2h,
296 6 pz3h, ji33, b1x, b1y,
297 7 b2y, b2x, b1122, b1221,
298 8 b2212, b1121, b1xh, b1yh,
299 9 b2xh, b2yh, b1122h, b1221h,
300 a b2212h, b1121h, dd, gg,
301 b voln, a_gauss(is,nlay),w_gauss(is,nlay),nu1,
302 c k11, k12, k13, k14,
303 d k15, k16, k22, k23,
304 e k24, k25, k26, k33,
305 f k34, k35, k36, k44,
306 g k45, k46, k55, k56,
307 h k66, nel)
308 ENDDO
309C----------------------------
310C geometrical stiffness (membrane only)
311C----------------------------
312 IF (ikgeo>0) THEN
313 CALL s6ckgeo3(
314 1 gbuf%SIG,volg, pxc1, pxc2,
315 2 pxc3, pxc4, pyc1, pyc2,
316 3 pyc3, pyc4, k11, k12,
317 4 k13, k14, k15, k16,
318 5 k22, k23, k24, k25,
319 6 k26, k33, k34, k35,
320 7 k36, k44, k45, k46,
321 8 k55, k56, k66, nel)
322 ENDIF
323C----------------------------
324C CONVECTE --> GLOBAL.
325C----------------------------
326 CALL s6ccumg3(
327 1 r11, r21, r31, r12,
328 2 r22, r32, r13, r23,
329 3 r33, k11, k12, k13,
330 4 k14, k15, k16, k22,
331 5 k23, k24, k25, k26,
332 6 k33, k34, k35, k36,
333 7 k44, k45, k46, k55,
334 8 k56, k66, x1, x2,
335 9 x3, x4, x5, x6,
336 a y1, y2, y3, y4,
337 b y5, y6, z1, z2,
338 c z3, z4, z5, z6,
339 d nel)
340
341 IF (neig>0) CALL s8eoff(
342 1 1, nel, ixs(1,nf1), etag, offg)
343 CALL assem_s6(
344 1 ixs(1,nf1),nel ,iddl ,ndof ,k_diag,
345 2 k_lt ,iadk ,jdik ,k11 ,k12 ,
346 3 k13 ,k14 ,k15 ,k16 ,k22 ,
347 4 k23 ,k24 ,k25 ,k26 ,k33 ,
348 5 k34 ,k35 ,k36 ,k44 ,k45 ,
349 6 k46 ,k55 ,k56 ,k66 ,offg )
350C
351 RETURN
352 END
subroutine assem_s6(ixs, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, off)
Definition assem_s6.F:40
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
subroutine mmats(jft, jlt, pm, mat, hh, mtn, iorth, ipm, igeo, gama, uparam, cc, cg, g33, jhbe, sig, eps, nppt, nel)
Definition mmats.F:45
subroutine mmstifs(pm, mat, hh, vol, icsig, dd, gg, dg, g33, dm, gm, dgm, iorth, sig, ir, is, it, nel, jhbe, mtn)
Definition mmstifs.F:44
subroutine s6ccumg3(r11, r21, r31, r12, r22, r32, r13, r23, r33, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, nel)
Definition s6ccumg3.F:46
subroutine s6cke3(pm, geo, ixs, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, icp, icsig, ipm, igeo, ikgeo, bufmat, nft, mtn, jhbe, isorth, isorthg, ismstr)
Definition s6cke3.F:51
subroutine s6ckgeo3(sig, vol, pxc1, pxc2, pxc3, pxc4, pyc1, pyc2, pyc3, pyc4, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, nel)
Definition s6ckgeo3.F:39
subroutine s6clke3(pxc1, pxc2, pxc3, pxc4, pyc1, pyc2, pyc3, pyc4, pzc1, pzc2, pzc3, pzc4, px1h, px2h, px3h, py1h, py2h, py3h, pz1h, pz2h, pz3h, ji33, b1x, b1y, b2y, b2x, b1122, b1221, b2212, b1121, b1xh, b1yh, b2xh, b2yh, b1122h, b1221h, b2212h, b1121h, dd, gg, vol, zi, wi, nu, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, nel)
Definition s6clke3.F:49
subroutine s6rcoork(x, ixs, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, offg, off, sav, r11, r12, r13, r21, r22, r23, r31, r32, r33, nc1, nc2, nc3, nc4, nc5, nc6, ngl, mxt, ngeo, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, nel, ismstr)
Definition s6rcoork.F:50
subroutine s8eoff(jft, jlt, ixs, etag, off)
Definition s8eoff.F:35
subroutine s8zsigp3(lft, llt, sig, e0, defp, fac, g_pla, nel)
Definition s8zsigp3.F:37
subroutine s6cderi3(nel, vol, geo, vzl, ngl, deltax, det, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6)
Definition s6cderi3.F:39