OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s10ke3.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!|| s10ke3 ../engine/source/elements/solid/solide10/s10ke3.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_s10 ../engine/source/implicit/assem_s10.F
30!|| mmats ../engine/source/elements/solid/solide8z/mmats.F
31!|| mmstifs ../engine/source/elements/solid/solide8z/mmstifs.f
32!|| morthlock3 ../engine/source/elements/solid/solide4/morthlock3.F
33!|| s10coork ../engine/source/elements/solid/solide10/s10coork.F
34!|| s10cumg3 ../engine/source/elements/solid/solide10/s10cumg3.F
35!|| s10deri3 ../engine/source/elements/solid/solide10/s10deri3.F
36!|| s10eoff ../engine/source/elements/solid/solide10/s10eoff.F
37!|| s10kgeo3 ../engine/source/elements/solid/solide10/s10kgeo3.F
38!|| sorthdir3 ../engine/source/elements/solid/solide/sorthdir3.F
39!|| sreploc3 ../engine/source/elements/solid/solide/sreploc3.F
40!||--- uses -----------------------------------------------------
41!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
42!|| element_mod ../common_source/modules/elements/element_mod.F90
43!||====================================================================
44 SUBROUTINE s10ke3(
45 1 PM, GEO, IXS, IXS10,
46 2 X, ELBUF_STR,ETAG, IDDL,
47 3 NDOF, K_DIAG, K_LT, IADK,
48 4 JDIK, NEL, IPM, IGEO,
49 5 IKGEO, BUFMAT, NFT, MTN,
50 6 NPT, ISMSTR, JHBE, IREP,
51 7 ISORTH, JLAG)
52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE elbufdef_mod
56 use element_mod , only : nixs
57C-----------------------------------------------
58C I m p l i c i t T y p e s
59C-----------------------------------------------
60#include "implicit_f.inc"
61C-----------------------------------------------
62C G l o b a l P a r a m e t e r s
63C-----------------------------------------------
64#include "mvsiz_p.inc"
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68#include "com04_c.inc"
69#include "param_c.inc"
70C-----------------------------------------------
71C D u m m y A r g u m e n t s
72C-----------------------------------------------
73 INTEGER, INTENT(IN) :: JLAG
74 INTEGER, INTENT(IN) :: NFT
75 INTEGER, INTENT(IN) :: MTN
76 INTEGER, INTENT(IN) :: NPT
77 INTEGER, INTENT(IN) :: ISMSTR
78 INTEGER, INTENT(IN) :: JHBE
79 INTEGER, INTENT(IN) :: IREP
80 INTEGER, INTENT(IN) :: ISORTH
81 INTEGER IXS(NIXS,*),IXS10(6,*), IKGEO
82C
83 INTEGER NEL ,IPM(NPROPMI,*),IGEO(NPROPGI,*),
84 . etag(*),iddl(*) ,ndof(*) ,iadk(*) ,jdik(*)
85C
87 . pm(npropm,*), geo(npropg,*), x(*),
88 . k11(9,mvsiz),k12(9,mvsiz),k13(9,mvsiz),k14(9,mvsiz),k15(9,mvsiz),
89 . k16(9,mvsiz),k17(9,mvsiz),k18(9,mvsiz),k19(9,mvsiz),k10(9,mvsiz),
90 . k22(9,mvsiz),k23(9,mvsiz),k24(9,mvsiz),k25(9,mvsiz),k26(9,mvsiz),
91 . k27(9,mvsiz),k28(9,mvsiz),k29(9,mvsiz),k20(9,mvsiz),k33(9,mvsiz),
92 . k34(9,mvsiz),k35(9,mvsiz),k36(9,mvsiz),k37(9,mvsiz),k38(9,mvsiz),
93 . k39(9,mvsiz),k30(9,mvsiz),k44(9,mvsiz),k45(9,mvsiz),k46(9,mvsiz),
94 . k47(9,mvsiz),k48(9,mvsiz),k49(9,mvsiz),k40(9,mvsiz),k55(9,mvsiz),
95 . k56(9,mvsiz),k57(9,mvsiz),k58(9,mvsiz),k59(9,mvsiz),k50(9,mvsiz),
96 . k66(9,mvsiz),k67(9,mvsiz),k68(9,mvsiz),k69(9,mvsiz),k60(9,mvsiz),
97 . k77(9,mvsiz),k78(9,mvsiz),k79(9,mvsiz),k70(9,mvsiz),k88(9,mvsiz),
98 . k89(9,mvsiz),k80(9,mvsiz),k99(9,mvsiz),k90(9,mvsiz),k00(9,mvsiz),
99 . offg(mvsiz) ,bufmat(*),k_diag(*) ,k_lt(*)
100 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
101C-----------------------------------------------
102C L o c a l V a r i a b l e s
103C-----------------------------------------------
104 INTEGER NF1, IP, NF2, I,J
105 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ)
106 my_real
107 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
108 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
109 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz) ,
110 . e1x(mvsiz) , e1y(mvsiz) , e1z(mvsiz) ,
111 . e2x(mvsiz) , e2y(mvsiz) , e2z(mvsiz) ,
112 . e3x(mvsiz) , e3y(mvsiz) , e3z(mvsiz) ,
113 . voln(mvsiz), deltax(mvsiz), deltax2(mvsiz),volg(mvsiz)
114C----------------
115 INTEGER NC(MVSIZ,10),IADBUF,IKORTH,IBID,IUN
116 my_real
117 . VOLP(MVSIZ,5),
118 . XX(MVSIZ,10), YY(MVSIZ,10), ZZ(MVSIZ,10),
119 .
120 . PX(MVSIZ,10,5),PY(MVSIZ,10,5),PZ(MVSIZ,10,5),
121 . NX(MVSIZ,10,5),
122 . wip(5,5), alph(5,5), beta(5,5),bid(mvsiz)
123 DATA wip / 1. ,0. ,0. ,0. ,0. ,
124 2 0. ,0. ,0. ,0. ,0. ,
125 3 0. ,0. ,0. ,0. ,0. ,
126 4 0.25,0.25,0.25,0.25,0. ,
127 5 0.45,0.45,0.45,0.45,-0.8/
128C 12
129 my_real
130 . hh(2,mvsiz),dd(9,mvsiz),gg(mvsiz),dm(9,mvsiz),gm(9,mvsiz),
131 . dgm(9,mvsiz),dg(9,mvsiz),g33(9,mvsiz),gama(mvsiz,6)
132 TYPE(g_bufel_) ,POINTER :: GBUF
133 TYPE(L_BUFEL_) ,POINTER :: LBUF
134 DOUBLE PRECISION
135 . VOLDP(MVSIZ,5)
136C----HH(1,):lamda,HH(2,):G
137C-----------------------------------------------
138C S o u r c e L i n e s
139C-----------------------------------------------
140 gbuf => elbuf_str%GBUF
141 DO ip=1,3
142 DO j=1,5
143 alph(j,ip)=zero
144 beta(j,ip)=zero
145 END DO
146 END DO
147 alph(1,4)=zep5854102
148 alph(2,4)=zep5854102
149 alph(3,4)=zep5854102
150 alph(4,4)=zep5854102
151 alph(5,4)=zero
152 alph(1,5)=half
153 alph(2,5)=half
154 alph(3,5)=half
155 alph(4,5)=half
156 alph(5,5)=fourth
157 beta(1,4)=zep1381966
158 beta(2,4)=zep1381966
159 beta(3,4)=zep1381966
160 beta(4,4)=zep1381966
161 beta(5,4)=zero
162 beta(1,5)=one_over_6
163 beta(2,5)=one_over_6
164 beta(3,5)=one_over_6
165 beta(4,5)=one_over_6
166 beta(5,5)=fourth
167 IF (isorth>0) THEN
168 ikorth=1
169 ELSE
170 ikorth=0
171 ENDIF
172C-----------
173 nf1=nft+1
174 nf2=nf1-numels8
175C-----------
176 CALL s10coork(
177 1 x, ixs(1,nf1), ixs10(1,nf2),xx,
178 2 yy, zz, gbuf%OFF, offg,
179 3 gbuf%SMSTR, nc, ngl, mxt,
180 4 ngeo, k11, k12, k13,
181 5 k14, k15, k16, k17,
182 6 k18, k19, k10, k22,
183 7 k23, k24, k25, k26,
184 8 k27, k28, k29, k20,
185 9 k33, k34, k35, k36,
186 a k37, k38, k39, k30,
187 b k44, k45, k46, k47,
188 c k48, k49, k40, k55,
189 d k56, k57, k58, k59,
190 e k50, k66, k67, k68,
191 f k69, k60, k77, k78,
192 g k79, k70, k88, k89,
193 h k80, k99, k90, k00,
194 i nel, ismstr)
195C-----------
196 CALL s10deri3(
197 1 offg, volp, ngl, deltax,
198 2 deltax2, xx, yy, zz,
199 3 px, py, pz, nx,
200 4 rx, ry, rz, sx,
201 5 sy, sz, tx, ty,
202 6 tz, wip(1,npt), alph(1,npt),beta(1,npt),
203 7 voln, volg, voldp, nc,
204 8 gbuf%SMSTR, gbuf%OFF, nel, npt,
205 9 ismstr, jlag)
206 CALL sreploc3(
207 1 rx, ry, rz, sx,
208 2 sy, sz, tx, ty,
209 3 tz, e1x, e2x, e3x,
210 4 e1y, e2y, e3y, e1z,
211 5 e2z, e3z, nel)
212 IF (isorth == 0) THEN
213 DO i=1,nel
214 gama(i,1) = one
215 gama(i,2) = zero
216 gama(i,3) = zero
217 gama(i,4) = zero
218 gama(i,5) = one
219 gama(i,6) = zero
220 ENDDO
221 ELSE
222 CALL sorthdir3(
223 1 rx, ry, rz, sx,
224 2 sy, sz, tx, ty,
225 3 tz, e1x, e2x, e3x,
226 4 e1y, e2y, e3y, e1z,
227 5 e2z, e3z, gbuf%GAMA,gama,
228 6 nel, irep)
229 CALL morthlock3(1,nel ,gama,e1x,e2x,e3x,
230 + e1y,e2y ,e3y ,e1z,e2z,e3z)
231 ENDIF
232 IF (mtn>=28) THEN
233 iadbuf = ipm(7,mxt(1))
234 ELSE
235 iadbuf = 1
236 ENDIF
237 CALL mmats(1 ,nel ,pm ,mxt ,hh ,
238 . mtn ,ikorth ,ipm ,igeo ,gama ,
239 . bufmat(iadbuf) ,dm ,dgm ,gm ,
240 . jhbe ,gbuf%SIG ,bid ,npt ,nel )
241 ibid = 0
242C-----------------------------
243C POINTS D' INTEGRATION
244C-----------------------------
245 iun=1
246 DO ip=1,npt
247 lbuf => elbuf_str%BUFLY(1)%LBUF(ip,1,1)
248C
249 CALL mmstifs(
250 1 pm, mxt, hh, volp(1,ip),
251 2 ibid, dd, gg, dg,
252 3 g33, dm, gm, dgm,
253 4 ikorth, lbuf%SIG, iun, iun,
254 5 ip, nel, jhbe, mtn)
255 CALL s10cumg3(
256 1 px(1,1,ip),py(1,1,ip),pz(1,1,ip),dd,
257 2 gg, dg, g33, ikorth,
258 3 k11, k12, k13, k14,
259 4 k15, k16, k17, k18,
260 5 k19, k10, k22, k23,
261 6 k24, k25, k26, k27,
262 7 k28, k29, k20, k33,
263 8 k34, k35, k36, k37,
264 9 k38, k39, k30, k44,
265 a k45, k46, k47, k48,
266 b k49, k40, k55, k56,
267 c k57, k58, k59, k50,
268 d k66, k67, k68, k69,
269 e k60, k77, k78, k79,
270 f k70, k88, k89, k80,
271 g k99, k90, k00, nel)
272C----------------------------
273C geometrical stiffness
274C----------------------------
275 IF (ikgeo>0) THEN
276 CALL s10kgeo3(
277 1 lbuf%SIG, volp(1,ip),px(1,1,ip),py(1,1,ip),
278 2 pz(1,1,ip),k11, k12, k13,
279 3 k14, k15, k16, k17,
280 4 k18, k19, k10, k22,
281 5 k23, k24, k25, k26,
282 6 k27, k28, k29, k20,
283 7 k33, k34, k35, k36,
284 8 k37, k38, k39, k30,
285 9 k44, k45, k46, k47,
286 a k48, k49, k40, k55,
287 b k56, k57, k58, k59,
288 c k50, k66, k67, k68,
289 d k69, k60, k77, k78,
290 e k79, k70, k88, k89,
291 f k80, k99, k90, k00,
292 g nel)
293 ENDIF
294 ENDDO
295
296 IF (neig>0) CALL s10eoff(
297 1 1, nel, ixs(1,nf1),ixs10(1,nf2), etag, offg)
298 CALL assem_s10(
299 1 ixs(1,nf1),ixs10(1,nf2),nel,iddl ,ndof ,
300 2 k_diag,k_lt ,iadk ,jdik ,k11 ,
301 3 k12 ,k13 ,k14 ,k15 ,k16 ,
302 4 k17 ,k18 ,k19 ,k10 ,k22 ,
303 5 k23 ,k24 ,k25 ,k26 ,k27 ,
304 6 k28 ,k29 ,k20 ,k33 ,k34 ,
305 7 k35 ,k36 ,k37 ,k38 ,k39 ,
306 8 k30 ,k44 ,k45 ,k46 ,k47 ,
307 9 k48 ,k49 ,k40 ,k55 ,k56 ,
308 a k57 ,k58 ,k59 ,k50 ,k66 ,
309 b k67 ,k68 ,k69 ,k60 ,k77 ,
310 c k78 ,k79 ,k70 ,k88 ,k89 ,
311 d k80 ,k99 ,k90 ,k00 ,offg )
312C
313 RETURN
314 END
subroutine assem_s10(ixs, ixs10, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, off)
Definition assem_s10.F:50
#define my_real
Definition cppsort.cpp:32
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 morthlock3(lft, llt, gama, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition morthlock3.F:31
subroutine s10coork(x, ixs, ixs10, xx, yy, zz, offg, off, sav, nc, ngl, mxt, ngeo, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, nel, ismstr)
Definition s10coork.F:49
subroutine s10cumg3(px, py, pz, dd, gg, dg, g33, iksup, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, nel)
Definition s10cumg3.F:50
subroutine s10eoff(jft, jlt, ixs, ixs10, etag, off)
Definition s10eoff.F:31
subroutine s10ke3(pm, geo, ixs, ixs10, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, npt, ismstr, jhbe, irep, isorth, jlag)
Definition s10ke3.F:52
subroutine s10kgeo3(sig, vol, px, py, pz, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, nel)
Definition s10kgeo3.F:47
subroutine sorthdir3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, gama0, gama, nel, irep)
Definition sorthdir3.F:43
subroutine s10deri3(vol, ngl, xx, yy, zz, px, py, pz, nx, rx, ry, rz, sx, sy, sz, tx, ty, tz, volu, voln, elbuf_str, volg)
Definition s10deri3.F:39
subroutine sreploc3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition sreploc3.F:32