OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
imp_k_eig.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!|| imp_k_eig ../engine/stub/imp_k_eig.F
25!||--- calls -----------------------------------------------------
26!|| imp_glob_k ../engine/source/implicit/imp_glob_k.F
27!|| my_barrier ../engine/source/system/machine.F
28!|| pr_infok ../engine/source/implicit/imp_solv.F
29!|| upd_fr_k ../engine/source/mpi/implicit/imp_fri.F
30!|| upd_glob_k ../engine/source/implicit/upd_glob_k.F
31!||--- uses -----------------------------------------------------
32!|| drape_mod ../engine/share/modules/drape_mod.F
33!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
34!|| element_mod ../common_source/modules/elements/element_mod.F90
35!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
36!|| stack_mod ../engine/share/modules/stack_mod.F
37!||====================================================================
38 SUBROUTINE imp_k_eig(NDDL0 , NNZK0 , DIAG_K , LT_K , LSIZE ,
39 . PM , GEO , IPM , IGEO , ELBUF ,
40 . IXS , IXQ , IXC , IXT , IXP ,
41 . IXR , IXTG , IXTG1 , IPARG ,
42 . TF , NPC , FR_WAVE, W16 , BUFMAT,
43 . THKE , BUFGEO , RBY ,
44 . SKEW , X , WA , IDDL , NDOF ,
45 . IADK , JDIK , ICODT , ICODR , ISKEW ,
46 . IBFV , VEL , LPBY , NPBY , ITAB ,
47 . WEIGHT , MS , IN , NRBYAC , IRBYAC,
48 . NSC , IKINW , NMC , IPARI , INTBUF_TAB,
49 . D_IMP , LB , NINT2 , IINT2 ,
50 . IKC , ITASK , EIGIPM , EIGIBUF, NDDL ,
51 . INLOC , IAD_ELEM, FR_ELEM,IRBE3 ,LRBE3 ,
52 . FRBE3 ,IRBE2 , LRBE2 , ELBUF_TAB, STACK,
53 . DRAPE_SH4N, DRAPE_SH3N , DRAPEG )
54C-----------------------------------------------
55C M o d u l e s
56C-----------------------------------------------
57 USE elbufdef_mod
58 USE intbufdef_mod
59 USE stack_mod
60 USE drape_mod
61 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
62C-----------------------------------------------
63C I m p l i c i t T y p e s
64C-----------------------------------------------
65#include "implicit_f.inc"
66C-----------------------------------------------
67C C o m m o n B l o c k s
68C-----------------------------------------------
69#include "com01_c.inc"
70#include "com04_c.inc"
71#include "task_c.inc"
72#include "timeri_c.inc"
73#include "param_c.inc"
74#include "units_c.inc"
75#include "impl1_c.inc"
76C-----------------------------------------------
77C D u m m y A r g u m e n t s
78C-----------------------------------------------
79 INTEGER NDDL0, NNZK0, LSIZE(*), IPM(NPROPMI,*),IGEO(NPROPGI,*),
80 . IXS(*), IXQ(NIXQ,*), IXC(NIXC,*), IXT(NIXT,*),
81 . IXP(NIXP,*), IXR(NIXR,*), IXTG(NIXTG,*),
82 . IXTG1(4,*), IPARG(NPARG,*),
83 . NPC(*), IDDL(*), NDOF(*), IADK(*),JDIK(*),
84 . ICODT(*), ICODR(*), ISKEW(*), IBFV(NIFV,*),
85 . LPBY(*), NPBY(NNPBY,*), ITAB(*),
86 . WEIGHT(*), NRBYAC, IRBYAC(*), NSC(*), IKINW(*), NMC,
87 . IPARI(NPARI,*), NINT2, IINT2(*), IKC(*),
88 . ITASK, EIGIPM(*), EIGIBUF(*), NDDL, INLOC(*),
89 . IAD_ELEM(2,*), FR_ELEM(*),IRBE3(*),LRBE3(*),IRBE2(*),
90 . LRBE2(*)
91 my_real
92 . DIAG_K(*), LT_K(*), PM(NPROPM,*), GEO(NPROPG,*),
93 . ELBUF(*), TF(*), W16(*), BUFMAT(*),
94 . thke(*), bufgeo(*),rby(*),
95 . skew(lskew,*), x(3,*), wa(*), vel(lfxvelr,*), ms(*),
96 . in(*), d_imp(3,*), lb(*), fr_wave(*),frbe3(*)
97 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
98 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
99 TYPE (STACK_PLY) :: STACK
100 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
101 TYPE (DRAPEG_) :: DRAPEG
102C-----------------------------------------------
103C L o c a l V a r i a b l e s
104C-----------------------------------------------
105 INTEGER NNZK, I, L1, L2, L3, LI1, LI2, LI3, LI4, LI5,
106 . li6, li7, li8, etag(numnod), nn, ibid1, ibid2, nt_rw,
107 . nmc2, li9, li10, li11, li12, nnmax, nkmax,ibid3,li13,
108 . li14,li15
109 my_real
110 . rbid
111C=======================================================================
112 DO i=1,numnod
113 etag(i)=0
114 ENDDO
115 nn=eigipm(10)
116 DO i=1,nn
117 etag(eigibuf(i))=1
118 ENDDO
119 DO i=1,nddl0
120 lb(i)=zero
121 ENDDO
122C No imposed velocity (or rigid wall) in modal analysis
123 nfxvel=0
124 nt_rw=0
125C
126 nddl = nddl0
127 nnzk = nnzk0
128 DO i=1,nddl
129 diag_k(i)=zero
130 ENDDO
131 DO i=1,nnzk
132 lt_k(i)=zero
133 ENDDO
134 nmc2=lsize(11)
135 l1 = 1+nixs*numels
136 l2 = l1+6*numels10
137 l3 = l2+12*numels20
138 li1 =1
139 li2 = li1+lsize(4)
140 li3 = li2+lsize(5)
141 li4 = li3+lsize(1)
142 li5 = li4+lsize(3)
143 li6 = li5+lsize(7)
144 li7 = li6+lsize(2)
145 li8 = li7+lsize(6)
146 li9 = li8+nint2
147 li10 = li9+lsize(8)
148 li11 = li10+(lsize(8)-nrbyac)*lsize(9)
149 li12 = li11+nrbyac*lsize(10)
150 li13 = li12+4*lsize(11)
151 li14 = li13+lsize(14)
152 li15 = li14+lsize(15)
153C
154 ngdone = 1
155 CALL imp_glob_k(
156 1 pm ,geo ,ipm ,igeo ,elbuf ,
157 2 ixs ,ixq ,ixc ,ixt ,ixp ,
158 3 ixr ,ixtg ,ixtg1 ,ixs(l1) ,
159 4 ixs(l2) ,ixs(l3) ,iparg ,tf ,npc ,
160 5 fr_wave ,w16 ,bufmat ,thke ,bufgeo ,
161 6 rby ,skew ,x ,
162 7 wa ,iddl ,ndof ,diag_k ,lt_k ,
163 8 iadk ,jdik ,ikg ,etag ,elbuf_tab ,
164 9 stack ,drape_sh4n, drape_sh3n ,drapeg )
165C /---------------/
166 CALL my_barrier
167C /---------------/
168 CALL upd_glob_k(
169 1 icodt ,icodr ,iskew ,ibfv ,npc ,
170 2 tf ,vel ,rbid ,
171 3 rby ,x ,skew ,lpby ,npby ,
172 4 itab ,weight ,ms ,in ,nrbyac ,
173 5 irbyac ,nsc ,ikinw(li1),nmc ,ikinw(li2),
174 6 ikinw(li3),ikinw(li4),nint2 ,iint2 ,ikinw(li8),
175 7 ikinw(li5),ikinw(li6),ikinw(li7),ipari ,intbuf_tab,
176 8 nddl ,nnzk ,iadk ,jdik ,
177 9 diag_k ,lt_k ,ndof ,iddl ,ikc ,
178 a d_imp ,lb ,ibid1 ,ibid2 ,rbid ,
179 b nmc2 ,ikinw(li12),nt_rw ,rbid ,ibid3 ,
180 c irbe3 ,lrbe3 ,frbe3 ,ikinw(li13),irbe2 ,
181 d lrbe2 ,ikinw(li14),ikinw(li15))
182 IF (nspmd>1) THEN
183 CALL upd_fr_k(
184 1 iadk ,jdik ,ndof ,ikc ,iddl ,
185 2 inloc ,fr_elem ,iad_elem ,nddl )
186 ENDIF
187C
188 nnmax=lsize(9)
189 nkmax=lsize(10)
190 CALL pr_infok(nddl0, nnzk0, nddl, nnzk, max(nnmax,nkmax))
191C------------
192 RETURN
193 END
194
subroutine upd_fr_k(iadk, jdik, ndof, ikc, iddl, inloc, fr_elem, iad_elem, nddl)
Definition imp_fri.F:4097
subroutine imp_glob_k(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
Definition imp_glob_k.F:63
subroutine imp_k_eig(nddl0, nnzk0, diag_k, lt_k, lsize, pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, iadk, jdik, icodt, icodr, iskew, ibfv, vel, lpby, npby, itab, weight, ms, in, nrbyac, irbyac, nsc, ikinw, nmc, ipari, intbuf_tab, d_imp, lb, nint2, iint2, ikc, itask, eigipm, eigibuf, nddl, inloc, iad_elem, fr_elem, irbe3, lrbe3, frbe3, irbe2, lrbe2, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
Definition imp_k_eig.F:54
subroutine pr_infok(nddl0, nnzk0, nddl, nnzk, nnmax)
Definition imp_solv.F:2145
#define max(a, b)
Definition macros.h:21
subroutine my_barrier
Definition machine.F:31
subroutine upd_glob_k(icodt, icodr, iskew, ibfv, npc, tf, vel, xframe, rby, x, skew, lpby, npby, itab, weight, ms, in, nrbyac, irbyac, nsc, isij, nmc, imij, nss, iss, nint2, iint2, nsc2, isij2, nss2, iss2, ipari, intbuf_tab, nddl, nnz, iadk, jdik, diag_k, lt_k, ndof, iddl, ikc, ud, b, nkud, ikud, bkud, nmc2, imij2, nt_rw, rd, lj, irbe3, lrbe3, frbe3, iss3, irbe2, lrbe2, isb2, nsrb2)
Definition upd_glob_k.F:66