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