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