OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r13ke3.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!|| r13ke3 ../engine/source/elements/spring/r13ke3.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_p ../engine/source/implicit/assem_p.F
30!|| peoff ../engine/source/elements/beam/peoff.F
31!|| pkeg3 ../engine/source/elements/beam/pke3.F
32!|| r13mat3 ../engine/source/elements/spring/r13mat3.F
33!|| r13sumg3 ../engine/source/elements/spring/r13sumg3.F
34!|| r4coork3 ../engine/source/elements/spring/r4coork3.F
35!||--- uses -----------------------------------------------------
36!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
37!|| element_mod ../common_source/modules/elements/element_mod.F90
38!||====================================================================
39 SUBROUTINE r13ke3(JFT ,JLT ,NEL ,MTN ,PM ,
40 1 GEO ,IXR ,X ,ELBUF_TAB,NPF ,
41 2 TF ,SKEW ,OFFSET,FR_WAVE,IKGEO ,IGEO,
42 3 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
43 4 IADK ,JDIK )
44
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE elbufdef_mod
49 use element_mod , only : nixr
50C-----------------------------------------------
51C I m p l i c i t T y p e s
52C-----------------------------------------------
53#include "implicit_f.inc"
54C-----------------------------------------------
55C G l o b a l P a r a m e t e r s
56C-----------------------------------------------
57#include "mvsiz_p.inc"
58C-----------------------------------------------
59C C o m m o n B l o c k s
60C-----------------------------------------------
61#include "com04_c.inc"
62#include "param_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER IXR(NIXR,*), NPF(*),JFT,JLT,OFFSET,NEL,MTN,IKGEO
67 INTEGER IGEO(*),
68 . ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*)
69
70C REAL
72 . geo(npropg,*),x(*),tf(*),skew(lskew,*),
73 . fr_wave(*),pm(*),ke11(36,mvsiz),ke12(36,mvsiz),ke22(36,mvsiz),
74 . off(mvsiz),k_diag(*) ,k_lt(*)
75C
76 TYPE (ELBUF_STRUCT_), TARGET:: ELBUF_TAB
77C-----------------------------------------------
78C L o c a l V a r i a b l e s
79C-----------------------------------------------
80C REAL
82 . al(mvsiz),kx(mvsiz),ky(mvsiz) ,kz(mvsiz),
83 . mx(mvsiz) ,my(mvsiz) ,mz(mvsiz),
84 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
85 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
86 . r31(mvsiz),r32(mvsiz),r33(mvsiz)
87 INTEGER PID(MVSIZ),NGL(MVSIZ)
88 INTEGER
89 .
90 .
91 .
92 .
93 . i,ii(3)
94C
95 TYPE(g_bufel_) ,POINTER :: GBUF
96C-----------------------------------------------
97 GBUF => elbuf_tab%GBUF
98C
99C
100 DO i=1,3
101 ii(i) = (i-1)*nel + 1
102 ENDDO
103C
104C I0 = IXR(1,1)
105C IGTYP = NINT(GEO(12,I0))
106c NB1 =1
107c NB2 =NB1 + NEL
108c NB1 =NB1 + OFFSET
109c NEL3 = 3 * NEL
110c NEL4 = 4 * NEL
111c OFFSET3 = 3 * OFFSET
112c OFFSET4 = 4 * OFFSET
113C
114C=======================================================================
115C IF(IGTYP==13)THEN
116C=======================================================================
117c NB3 =NB2 + NEL3
118c NB4 =NB3 + NEL
119c NB5 =NB4 + NEL3
120c IF (SCODVER<101) THEN
121c NB6 =NB5 + NEL3
122c ELSE
123c NB6 =NB5 + 2*NEL3
124c END IF
125c NB7 =NB6 + NEL3
126c NB8 =NB7 + NEL3
127c NB9 =NB8 + NEL3
128c NB10=NB9 + NEL3
129c NB11=NB10 + NEL3
130c NB12=NB11 + NEL3
131c NB13=NB12 + NEL3
132c NB14=NB13 + NEL3
133c IF (SCODVER<101) THEN
134c NB15 = NB14 + NEL3
135c ELSE
136c NB15 = NB14 + 2*NEL3
137c END IF
138c NBFI = NB15 + NEL4*6
139c NB2A=NB2 + NEL
140c NB2B=NB2A + NEL
141c NB4A=NB4 + NEL
142c NB4B=NB4A + NEL
143c NB5A=NB5 + NEL
144c NB5B=NB5A + NEL
145c NB6A=NB6 + NEL
146c NB6B=NB6A + NEL
147c NB7A=NB7 + NEL
148c NB7B=NB7A + NEL
149c NB8A=NB8 + NEL
150c NB8B=NB8A + NEL
151c NB9A=NB9 + NEL
152c NB9B=NB9A + NEL
153c NB10A=NB10 + NEL
154c NB10B=NB10A + NEL
155c NB11A=NB11 + NEL
156c NB11B=NB11A+ NEL
157c NB12A=NB12 + NEL
158c NB12B=NB12A+ NEL
159c NB13A=NB13 + NEL
160c NB13B=NB13A+ NEL
161c NB15A=NB15 + NEL4
162c NB15B=NB15A+ NEL4
163c NB15C=NB15B+ NEL4
164c NB15D=NB15C+ NEL4
165c NB15E=NB15D+ NEL4
166c NB16 =NB15E+ NEL4
167c NBFI =NB16 + 6*NEL
168C
169c NB2 =NB2 + OFFSET
170c NB3 =NB3 + OFFSET
171c NB4 =NB4 + OFFSET
172c NB5 =NB5 + OFFSET
173c NB6 =NB6 + OFFSET
174c NB7 =NB7 + OFFSET
175c NB8 =NB8 + OFFSET
176c NB9 =NB9 + OFFSET
177c NB10=NB10 + OFFSET
178c NB11=NB11 + OFFSET
179c NB12=NB12 + OFFSET
180c NB13=NB13 + OFFSET
181c NB14=NB14 + OFFSET3
182c NB2A=NB2A + OFFSET
183c NB2B=NB2B + OFFSET
184c NB4A=NB4A + OFFSET
185c NB4B=NB4B + OFFSET
186c NB5A=NB5A + OFFSET
187c NB5B=NB5B + OFFSET
188c NB6A=NB6A + OFFSET
189c NB6B=NB6B + OFFSET
190c NB7A=NB7A + OFFSET
191c NB7B=NB7B + OFFSET
192c NB8A=NB8A + OFFSET
193c NB8B=NB8B + OFFSET
194c NB9A=NB9A + OFFSET
195c NB9B=NB9B + OFFSET
196c NB10A=NB10A + OFFSET
197c NB10B=NB10B + OFFSET
198c NB11A=NB11A+ OFFSET
199c NB11B=NB11B+ OFFSET
200c NB12A=NB12A+ OFFSET
201c NB12B=NB12B+ OFFSET
202c NB13A=NB13A+ OFFSET
203c NB13B=NB13B+ OFFSET
204c NB15 =NB15 + OFFSET4
205c NB15A=NB15A + OFFSET4
206c NB15B=NB15B + OFFSET4
207c NB15C=NB15C + OFFSET4
208c NB15D=NB15D + OFFSET4
209c NB15E=NB15E + OFFSET4
210C FX,FY,FZ -> NB2,NB2A,NB2B E -> NB3
211C DX,DY,DZ -> NB4,NB4A,NB4B OFF -> NB1
212C DPX,DPY,DPZ -> NB6,NB6A,NB6B DPX2,DPY2,DPZ2 -> NB7,NB7A,NB7B
213C FXEP,FYEP,FZEP -> NB12,NB12A,NB12B X0,Y0,Z0 -> NB5,NB5A,NB5B
214C XMOM,YMOM,ZMOM -> NB8,NB8A,NB8B RX,RY,RZ -> NB9,NB9A,NB9B
215C RPX,RPY,RPZ -> NB10,NB10A,NB10B XMEP,YMEP,ZMEP -> NB11,NB11A,NB11B
216C RPX2,RPY2,RPZ2 -> NB13,NB13A,NB13B
217C RLOC -> NB14
218 CALL r4coork3(jft ,jlt ,x ,ixr ,pid ,
219 2 ngl ,al ,r11 ,r12 ,r13 ,
220 3 r21 ,r22 ,r23 ,r31 ,r32 ,
221 4 r33 ,gbuf%SKEW,gbuf%OFF,off )
222 CALL r13mat3(jft ,jlt ,geo ,kx ,ky ,
223 2 kz ,mx ,my ,mz ,pid ,
224 3 gbuf%LENGTH(ii(1)),gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%TOTDEPL(ii(1)),
225 4 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
226 5 gbuf%TOTROT(ii(1)),gbuf%TOTROT(ii(2)),gbuf%TOTROT(ii(3)),tf ,npf ,
227 6 gbuf%POSX,gbuf%POSY,gbuf%POSZ,gbuf%POSXX,gbuf%POSYY,
228 7 gbuf%POSZZ,igeo )
229C-------------------------
230C STIFFNESS MATRIX
231C-------------------------
232 CALL r13sumg3(jft ,jlt ,al ,kx ,ky ,
233 2 kz ,mx ,my ,mz ,r11 ,
234 3 r12 ,r13 ,r21 ,r22 ,r23 ,
235 4 r31 ,r32 ,r33 ,ke11 ,ke12 ,
236 5 ke22 )
237 IF (ikgeo==1) CALL pkeg3(jft ,jlt ,
238 1 gbuf%FOR(ii(1)) ,al ,ke11 ,ke12 ,ke22 )
239
240
241 IF (neig>0) CALL peoff(
242 1 nixr, jft, jlt, ixr, etag,
243 2 off )
244 CALL assem_p(nixr,6 ,
245 1 ixr ,nel ,iddl ,ndof ,k_diag ,
246 2 k_lt ,iadk ,jdik ,ke11 ,ke12 ,
247 3 ke22 ,off )
248
249C-----------------------------------------------
250 RETURN
251 END
subroutine assem_p(nixpl, nd, ixp, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, kc11, kc12, kc22, off)
Definition assem_p.F:40
#define my_real
Definition cppsort.cpp:32
subroutine peoff(nixpl, jft, jlt, ixp, etag, off)
Definition peoff.F:35
subroutine pkeg3(jft, jlt, fx, al, ke11, ke12, ke22)
Definition pke3.F:131
subroutine r13ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, ikgeo, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
Definition r13ke3.F:44
subroutine r13mat3(jft, jlt, geo, kx, ky, kz, mx, my, mz, mgn, al0, fx, fy, fz, dx, dy, dz, xmom, ymom, zmom, rx, ry, rz, tf, npf, posx, posy, posz, posxx, posyy, poszz, igeo)
Definition r13mat3.F:38
subroutine r13sumg3(jft, jlt, al, kx, ky, kz, mx, my, mz, r11, r12, r13, r21, r22, r23, r31, r32, r33, ke11, ke12, ke22)
Definition r13sumg3.F:33
subroutine r4coork3(jft, jlt, x, ncc, pid, ngl, al, r11, r12, r13, r21, r22, r23, r31, r32, r33, rloc, offg, off)
Definition r4coork3.F:34