OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s4ke3.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!|| s4ke3 ../engine/source/elements/solid/solide4/s4ke3.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_s4 ../engine/source/implicit/assem_s4.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!|| s4coork ../engine/source/elements/solid/solide4/s4coork.F
34!|| s4cumg3 ../engine/source/elements/solid/solide4/s4cumg3.F
35!|| s4derit3 ../engine/source/elements/solid/solide4/s4derit3.F
36!|| s4kgeo3 ../engine/source/elements/solid/solide4/s4kgeo3.F
37!|| s8eoff ../engine/source/elements/solid/solide8/s8eoff.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 s4ke3(
45 1 PM, GEO, IXS, X,
46 2 GBUF, ETAG, IDDL, NDOF,
47 3 K_DIAG, K_LT, IADK, JDIK,
48 4 NEL, IPM, IGEO, IKGEO,
49 5 BUFMAT, NFT, MTN, ISMSTR,
50 6 JHBE, IREP, ISORTH, IFORMDT)
51 use element_mod , only : nixs
52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE elbufdef_mod
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) :: IFORMDT
73 INTEGER, INTENT(IN) :: NFT
74 INTEGER, INTENT(IN) :: MTN
75 INTEGER, INTENT(IN) :: ISMSTR
76 INTEGER, INTENT(IN) :: JHBE
77 INTEGER, INTENT(IN) :: IREP
78 INTEGER, INTENT(IN) :: ISORTH
79 INTEGER IXS(NIXS,*), 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) ,
87 . k22(9,mvsiz) ,k23(9,mvsiz) ,k24(9,mvsiz) ,k33(9,mvsiz) ,
88 . k34(9,mvsiz) ,k44(9,mvsiz) , off(mvsiz) ,bufmat(*) ,
89 . k_diag(*) ,k_lt(*)
90 TYPE(g_bufel_) :: GBUF
91C-----------------------------------------------
92C L o c a l V a r i a b l e s
93C-----------------------------------------------
94 INTEGER NF1, I,IBID,IBID1
95 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),IADBUF,IKORTH
97 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
98 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
99 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz) ,
100 . e1x(mvsiz) , e1y(mvsiz) , e1z(mvsiz) ,
101 . e2x(mvsiz) , e2y(mvsiz) , e2z(mvsiz) ,
102 . e3x(mvsiz) , e3y(mvsiz) , e3z(mvsiz) ,
103 . voln(mvsiz), deltax(mvsiz), bid(1)
104C----------------
105 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ)
106 my_real
107 . X1(MVSIZ), X2(MVSIZ), X3(MVSIZ), X4(MVSIZ),
108 . Y1(MVSIZ), Y2(MVSIZ), Y3(MVSIZ), Y4(MVSIZ),
109 . Z1(MVSIZ), Z2(MVSIZ), Z3(MVSIZ), Z4(MVSIZ),
110 . PX1(MVSIZ),PX2(MVSIZ),PX3(MVSIZ),PX4(MVSIZ),
111 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
112 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz)
113C 12
114 my_real
115 . hh(2,mvsiz),dd(9,mvsiz),gg(mvsiz),dm(9,mvsiz),gm(9,mvsiz),
116 . dgm(9,mvsiz),dg(9,mvsiz),g33(9,mvsiz),gama(mvsiz,6)
117C----HH(1,):lamda,HH(2,):G
118 DOUBLE PRECISION
119 . VOLDP(MVSIZ)
120C-----------------------------------------------
121C S o u r c e L i n e s
122C-----------------------------------------------
123 IF (isorth>0) THEN
124 ikorth=1
125 ELSE
126 ikorth=0
127 ENDIF
128C-----------
129 nf1=nft+1
130C-----------
131 CALL s4coork(
132 1 x, ixs(1,nf1),x1, x2,
133 2 x3, x4, y1, y2,
134 3 y3, y4, z1, z2,
135 4 z3, z4, gbuf%OFF, off,
136 5 gbuf%SMSTR,nc1, nc2, nc3,
137 6 nc4, ngl, mxt, ngeo,
138 7 k11, k12, k13, k14,
139 8 k22, k23, k24, k33,
140 9 k34, k44, nel, ismstr)
141 CALL s4derit3(
142 1 off, voln, ngl, deltax,
143 2 mxt, x1, x2, x3,
144 3 x4, y1, y2, y3,
145 4 y4, z1, z2, z3,
146 5 z4, px1, px2, px3,
147 6 px4, py1, py2, py3,
148 7 py4, pz1, pz2, pz3,
149 8 pz4, rx, ry, rz,
150 9 sx, sy, sz, tx,
151 a ty, tz, pm, voldp,
152 b nel, iformdt)
153 CALL sreploc3(
154 1 rx, ry, rz, sx,
155 2 sy, sz, tx, ty,
156 3 tz, e1x, e2x, e3x,
157 4 e1y, e2y, e3y, e1z,
158 5 e2z, e3z, nel)
159 IF (isorth == 0) THEN
160 DO i=1,nel
161 gama(i,1) = one
162 gama(i,2) = zero
163 gama(i,3) = zero
164 gama(i,4) = zero
165 gama(i,5) = one
166 gama(i,6) = zero
167 ENDDO
168 ELSE
169 CALL sorthdir3(
170 1 rx, ry, rz, sx,
171 2 sy, sz, tx, ty,
172 3 tz, e1x, e2x, e3x,
173 4 e1y, e2y, e3y, e1z,
174 5 e2z, e3z, gbuf%GAMA,gama,
175 6 nel, irep)
176 CALL morthlock3(1,nel ,gama,e1x,e2x,e3x,
177 + e1y,e2y ,e3y ,e1z,e2z,e3z)
178 ENDIF
179c
180 IF (mtn>=28) THEN
181 iadbuf = ipm(7,mxt(1))
182 ELSE
183 iadbuf = 1
184 ENDIF
185 CALL mmats(1 ,nel ,pm ,mxt ,hh ,
186 . mtn ,ikorth ,ipm ,igeo ,gama ,
187 . bufmat(iadbuf) ,dm ,dgm ,gm ,
188 . jhbe ,gbuf%SIG ,bid ,ibid1 ,nel )
189 ibid = 0
190 ibid1 = 1
191 CALL mmstifs(
192 1 pm, mxt, hh, voln,
193 2 ibid, dd, gg, dg,
194 3 g33, dm, gm, dgm,
195 4 ikorth, gbuf%SIG,ibid1, ibid1,
196 5 ibid1, nel, jhbe, mtn)
197 CALL s4cumg3(
198 1 px1, px2, px3, px4,
199 2 py1, py2, py3, py4,
200 3 pz1, pz2, pz3, pz4,
201 4 k11, k12, k13, k14,
202 5 k22, k23, k24, k33,
203 6 k34, k44, dd, gg,
204 7 dg, g33, ikorth, nel)
205C----------------------------
206C geometrical stiffness (membrane only)
207C----------------------------
208 IF (ikgeo>0) THEN
209 CALL s4kgeo3(
210 1 gbuf%SIG,voln, px1, px2,
211 2 px3, px4, py1, py2,
212 3 py3, py4, pz1, pz2,
213 4 pz3, pz4, k11, k12,
214 5 k13, k14, k22, k23,
215 6 k24, k33, k34, k44,
216 7 nel)
217 ENDIF
218
219 IF (neig>0) CALL s8eoff(
220 1 1, nel, ixs(1,nf1), etag, off)
221 CALL assem_s4(
222 1 ixs(1,nf1),nel ,iddl ,ndof ,k_diag,
223 2 k_lt ,iadk ,jdik ,k11 ,k12 ,
224 3 k13 ,k14 ,k22 ,k23 ,k24 ,
225 4 k33 ,k34 ,k44 ,off )
226C
227 RETURN
228 END
subroutine assem_s4(ixs, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, off)
Definition assem_s4.F:38
#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 s4coork(x, ixs, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, offg, off, sav, nc1, nc2, nc3, nc4, ngl, mxt, ngeo, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, nel, ismstr)
Definition s4coork.F:40
subroutine s4cumg3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, dd, gg, dg, g33, iksup, nel)
Definition s4cumg3.F:41
subroutine s4derit3(off, det, ngl, deltax, mxt, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, rx, ry, rz, sx, sy, sz, tx, ty, tz, pm, voldp, nel, iformdt)
Definition s4derit3.F:43
subroutine s4ke3(pm, geo, ixs, x, gbuf, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, irep, isorth, iformdt)
Definition s4ke3.F:51
subroutine s4kgeo3(sig, vol, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, nel)
Definition s4kgeo3.F:38
subroutine s8eoff(jft, jlt, ixs, etag, off)
Definition s8eoff.F:35
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 sreploc3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition sreploc3.F:32