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