OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r8ke3.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!|| r8ke3 ../engine/source/elements/spring/r8ke3.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!|| r13mat3 ../engine/source/elements/spring/r13mat3.F
32!|| r2coork3 ../engine/source/elements/spring/r2coork3.F
33!|| r8chk3 ../engine/source/elements/spring/r8ke3.F
34!|| r8sumg3 ../engine/source/elements/spring/r8sumg3.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 r8ke3(JFT ,JLT ,NEL ,MTN ,PM ,
40 1 GEO ,IXR ,X ,ELBUF_TAB,NPF ,
41 2 TF ,SKEW ,OFFSET,FR_WAVE,IGEO ,
42 3 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
43 4 IADK ,JDIK )
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE elbufdef_mod
48 use element_mod , only : nixr
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C G l o b a l P a r a m e t e r s
55C-----------------------------------------------
56#include "mvsiz_p.inc"
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "com04_c.inc"
61#include "param_c.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 INTEGER IXR(NIXR,*), NPF(*),JFT,JLT,OFFSET,NEL ,MTN
66 INTEGER IGEO(*),
67 . ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*)
68
70 . geo(npropg,*),x(*),tf(*),skew(lskew,*),
71 . fr_wave(*),pm(*),ke11(36,mvsiz),ke12(36,mvsiz),ke22(36,mvsiz),
72 . off(mvsiz),k_diag(*) ,k_lt(*)
73C
74 TYPE (ELBUF_STRUCT_), TARGET:: ELBUF_TAB
75C-----------------------------------------------
76C L o c a l V a r i a b l e s
77C-----------------------------------------------
79 . kx(mvsiz) ,ky(mvsiz) ,kz(mvsiz),
80 . mx(mvsiz) ,my(mvsiz) ,mz(mvsiz),
81 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
82 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
83 . r31(mvsiz),r32(mvsiz),r33(mvsiz),al0(mvsiz),al(3,mvsiz)
84 INTEGER PID(MVSIZ),NGL(MVSIZ)
85 INTEGER
86 .
87 .
88 .
89 .
90 . i,ii(3)
91C
92 TYPE(g_bufel_) ,POINTER :: GBUF
93C-----------------------------------------------
94 GBUF => elbuf_tab%GBUF
95C
96C
97 DO i=1,3
98 ii(i) = (i-1)*nel + 1
99 ENDDO
100
101 CALL r2coork3(jft ,jlt ,x ,ixr ,pid ,
102 2 ngl ,r11 ,r12 ,r13 ,r21 ,
103 3 r22 ,r23 ,r31 ,r32 ,r33 ,
104 4 skew ,geo ,gbuf%OFF,off ,al ,
105 5 igeo )
106
107 DO i=jft,jlt
108 al0(i)=one
109 ENDDO
110
111 CALL r13mat3(jft ,jlt ,geo ,kx ,ky ,
112 2 kz ,mx ,my ,mz ,pid ,
113 3 al0 ,gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%TOTDEPL(ii(1)),
114 4 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
115 5 gbuf%TOTROT(ii(1)),gbuf%TOTROT(ii(2)),gbuf%TOTROT(ii(3)),tf ,npf ,
116 6 gbuf%POSX,gbuf%POSY,gbuf%POSZ,gbuf%POSXX,gbuf%POSYY,
117 7 gbuf%POSZZ,igeo )
118C-------------------------
119C STIFFNESS MATRIX
120C-------------------------
121 CALL r8sumg3 (jft ,jlt ,kx ,ky ,kz ,
122 2 mx ,my ,mz ,r11 ,r12 ,
123 3 r13 ,r21 ,r22 ,r23 ,r31 ,
124 4 r32 ,r33 ,ke11 ,ke12 ,ke22 )
125 CALL r8chk3(jft ,jlt ,ngl ,al ,off ,
126 1 kx ,ky ,kz ,mx ,my ,
127 2 mz ,r11 ,r12 ,r13 ,r21 ,
128 3 r22 ,r23 ,r31 ,r32 ,r33 )
129C ENDIF
130
131
132 IF (neig>0) CALL peoff(
133 1 nixr, jft, jlt, ixr, etag,
134 2 off )
135 CALL assem_p(nixr,6 ,
136 1 ixr ,nel ,iddl ,ndof ,k_diag ,
137 2 k_lt ,iadk ,jdik ,ke11 ,ke12 ,
138 3 ke22 ,off )
139C-----------------------------------------------
140 RETURN
141 END
142
143!||====================================================================
144!|| r8chk3 ../engine/source/elements/spring/r8ke3.F
145!||--- called by ------------------------------------------------------
146!|| r8ke3 ../engine/source/elements/spring/r8ke3.F
147!||====================================================================
148 SUBROUTINE r8chk3(JFT ,JLT ,NGL ,AL ,OFF ,
149 1 KX ,KY ,KZ ,MX ,MY ,
150 2 MZ ,R11 ,R12 ,R13 ,R21 ,
151 3 R22 ,R23 ,R31 ,R32 ,R33 )
152C-----------------------------------------------
153C I m p l i c i t T y p e s
154C-----------------------------------------------
155#include "implicit_f.inc"
156C-----------------------------------------------
157C C o m m o n B l o c k s
158C-----------------------------------------------
159#include "impl1_c.inc"
160#include "comlock.inc"
161#include "units_c.inc"
162#include "scr17_c.inc"
163C-----------------------------------------------
164C D u m m y A r g u m e n t s
165C-----------------------------------------------
166 INTEGER JFT, JLT
167 INTEGER NGL(*)
168 my_real
169 . AL(3,*),OFF(*),
170 . KX(*),KY(*),KZ(*),
171 . MX(*),MY(*),MZ(*),
172 . R11(*),R12(*),R13(*),
173 . r21(*),r22(*),r23(*),
174 . r31(*),r32(*),r33(*)
175C-----------------------------------------------
176C L o c a l V a r i a b l e s
177C-----------------------------------------------
178 INTEGER I
179 my_real
180 . SCAL,ALX,ALY,ALZ,SX,SY,SZ,S1,S2
181C-----------------------------------------------
182 IF (IMP_CHK > 0) THEN
183 SCAL = hundred
184 DO i=jft,jlt
185 IF(off(i)/=zero)THEN
186 alx = abs(al(1,i))*scal
187 aly = abs(al(2,i))*scal
188 alz = abs(al(2,i))*scal
189 s1 = ky(i)*alx-mz(i)
190 s2 = kz(i)*alx-my(i)
191 sx = max(s1,s2)
192 s1 = kx(i)*aly-mz(i)
193 s2 = kz(i)*aly-mx(i)
194 sy = max(s1,s2)
195 s1 = kx(i)*alz-my(i)
196 s2 = ky(i)*alz-mx(i)
197 sz = max(s1,s2)
198 IF(sx>zero.OR.sy>zero.OR.sz>zero)THEN
199#include "lockon.inc"
200 WRITE(iout ,2001) ngl(i)
201#include "lockoff.inc"
202 idel7nok = 1
203 imp_iw = imp_iw + 1
204 ENDIF
205 ENDIF
206 ENDDO
207 ENDIF
208C
209 RETURN
210 2001 FORMAT(/'***WARNING :SPRING TYPE8 NON-ZERO LENGTH : ELEMENT NB:',
211 . i8/)
212 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
#define max(a, b)
Definition macros.h:21
subroutine peoff(nixpl, jft, jlt, ixp, etag, off)
Definition peoff.F:35
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 r2coork3(jft, jlt, x, ncc, pid, ngl, r11, r12, r13, r21, r22, r23, r31, r32, r33, skew, geo, offg, off, al, igeo)
Definition r2coork3.F:35
subroutine r8ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
Definition r8ke3.F:44
subroutine r8chk3(jft, jlt, ngl, al, off, kx, ky, kz, mx, my, mz, r11, r12, r13, r21, r22, r23, r31, r32, r33)
Definition r8ke3.F:152
subroutine r8sumg3(jft, jlt, kx, ky, kz, mx, my, mz, r11, r12, r13, r21, r22, r23, r31, r32, r33, ke11, ke12, ke22)
Definition r8sumg3.F:32