OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i22assembly.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!|| i22ass0 ../engine/source/interfaces/int22/i22assembly.F
25!||--- called by ------------------------------------------------------
26!|| i22for3 ../engine/source/interfaces/int22/i22for3.F
27!||--- uses -----------------------------------------------------
28!|| tri7box ../engine/share/modules/tri7box.F
29!||====================================================================
30 SUBROUTINE i22ass0(JLT ,IX1 ,IX2 ,IX3 ,IX4 ,
31 2 NSVG ,H1 ,H2 ,H3 ,H4 ,STIF ,
32 3 FX1 ,FY1 ,FZ1 ,FX2 ,FY2 ,FZ2 ,
33 4 FX3 ,FY3 ,FZ3 ,FX4 ,FY4 ,FZ4 ,
34 5 FXI ,FYI ,FZI ,A ,STIFN ,NIN ,
35 6 INTTH ,PHI ,FTHE ,PHI1 , PHI2 ,PHI3 ,
36 7 PHI4 )
37C-----------------------------------------------
38C D e s c r i p t i o n
39C-----------------------------------------------
40C Interface Type22 (/INTER/TYPE22) is an FSI coupling method based on cut cell method.
41C This experimental cut cell method is not completed, abandoned, and is not an official option.
42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE tri7box
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50C-----------------------------------------------
51C G l o b a l P a r a m e t e r s
52C-----------------------------------------------
53#include "mvsiz_p.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER JLT, NIN,INTTH,
58 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),NSVG(MVSIZ)
59 my_real
60 . H1(MVSIZ),H2(MVSIZ),H3(MVSIZ),H4(MVSIZ),STIF(MVSIZ),
61 . FX1(MVSIZ),FY1(MVSIZ),FZ1(MVSIZ),
62 . FX2(MVSIZ),FY2(MVSIZ),FZ2(MVSIZ),
63 . fx3(mvsiz),fy3(mvsiz),fz3(mvsiz),
64 . fx4(mvsiz),fy4(mvsiz),fz4(mvsiz),
65 . fxi(mvsiz),fyi(mvsiz),fzi(mvsiz),
66 . a(3,*), stifn(*),phi(*), fthe(*),
67 . phi1(*), phi2(*), phi3(*), phi4(*)
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER I, J1
72C
73C-----------------------------------------------
74C S o u r c e L i n e s
75C-----------------------------------------------
76 DO I=1,jlt
77 j1=ix1(i)
78 a(1,j1)=a(1,j1)+fx1(i)
79 a(2,j1)=a(2,j1)+fy1(i)
80 a(3,j1)=a(3,j1)+fz1(i)
81! STIFN(J1) = STIFN(J1) + STIF(I)*ABS(H1(I))
82C
83 j1=ix2(i)
84 a(1,j1)=a(1,j1)+fx2(i)
85 a(2,j1)=a(2,j1)+fy2(i)
86 a(3,j1)=a(3,j1)+fz2(i)
87! STIFN(J1) = STIFN(J1) + STIF(I)*ABS(H2(I))
88C
89 j1=ix3(i)
90 a(1,j1)=a(1,j1)+fx3(i)
91 a(2,j1)=a(2,j1)+fy3(i)
92 a(3,j1)=a(3,j1)+fz3(i)
93! STIFN(J1) = STIFN(J1) + STIF(I)*ABS(H3(I))
94C
95 j1=ix4(i)
96 a(1,j1)=a(1,j1)+fx4(i)
97 a(2,j1)=a(2,j1)+fy4(i)
98 a(3,j1)=a(3,j1)+fz4(i)
99! STIFN(J1) = STIFN(J1) + STIF(I)*ABS(H4(I))
100 ENDDO
101
102C
103 RETURN
104 END
105
106
107!||====================================================================
108!|| i22ass2 ../engine/source/interfaces/int22/i22assembly.F
109!||--- called by ------------------------------------------------------
110!|| i22for3 ../engine/source/interfaces/int22/i22for3.F
111!||--- calls -----------------------------------------------------
112!|| ancmsg ../engine/source/output/message/message.F
113!|| arret ../engine/source/system/arret.F
114!||--- uses -----------------------------------------------------
115!|| element_mod ../common_source/modules/elements/element_mod.F90
116!|| i22bufbric_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
117!|| i22tri_mod ../common_source/modules/interfaces/cut-cell-search_mod.f
118!|| message_mod ../engine/share/message_module/message_mod.F
119!|| tri7box ../engine/share/modules/tri7box.F
120!||====================================================================
121 SUBROUTINE i22ass2(JLT ,IX1 ,IX2 ,IX3 ,IX4 ,ITAB ,
122 2 NSVG ,H1 ,H2 ,H3 ,H4 ,STIF ,
123 3 FX1 ,FY1 ,FZ1 ,FX2 ,FY2 ,FZ2 ,
124 4 FX3 ,FY3 ,FZ3 ,FX4 ,FY4 ,FZ4 ,
125 5 FXI ,FYI ,FZI ,FSKYI ,ISKY ,NISKYFI,
126 6 NIN ,NOINT ,INTTH ,PHI ,FTHESKYI,PHI1 ,
127 7 PHI2 ,PHI3 ,PHI4 ,CB_LOC ,CE_LOC ,IRECT ,
128 8 IXS)
129C-----------------------------------------------
130C M o d u l e s
131C-----------------------------------------------
132 USE tri7box
133 USE i22tri_mod
134 USE i22bufbric_mod
135 USE message_mod
136 use element_mod , only : nixs
137C-----------------------------------------------
138C I m p l i c i t T y p e s
139C-----------------------------------------------
140#include "implicit_f.inc"
141#include "comlock.inc"
142C-----------------------------------------------
143C G l o b a l P a r a m e t e r s
144C-----------------------------------------------
145#include "mvsiz_p.inc"
146C-----------------------------------------------
147C C o m m o n B l o c k s
148C-----------------------------------------------
149#include "parit_c.inc"
150#include "com01_c.inc"
151#include "inter22.inc"
152C-----------------------------------------------
153C D u m m y A r g u m e n t s
154C-----------------------------------------------
155 INTEGER JLT,NISKYFI,NIN,NOINT,INTTH,
156 . ISKY(*),ITAB(*),CB_LOC(MVSIZ),CE_LOC(MVSIZ),
157 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),NSVG(MVSIZ),
158 . IRECT(4,*),IXS(NIXS,*)
159 my_real
160 . H1(MVSIZ),H2(MVSIZ),H3(MVSIZ),H4(MVSIZ),STIF(MVSIZ),
161 . FX1(MVSIZ),FY1(MVSIZ),FZ1(MVSIZ),
162 . FX2(MVSIZ),FY2(MVSIZ),FZ2(MVSIZ),
163 . FX3(MVSIZ),FY3(MVSIZ),FZ3(MVSIZ),
164 . FX4(MVSIZ),FY4(MVSIZ),FZ4(MVSIZ),
165 . FXI(MVSIZ),FYI(MVSIZ),FZI(MVSIZ),
166 . FSKYI(LSKYI,NFSKYI),FTHESKYI(LSKYI),PHI(MVSIZ),
167 . PHI1(*),PHI2(*) ,PHI3(*) ,PHI4(*)
168C-----------------------------------------------
169C L o c a l V a r i a b l e s
170C-----------------------------------------------
171 INTEGER I, NISKYL1, NISKYL,NISKYFIL, K
172C
173 niskyl1 = 0
174 niskyl1 = niskyl1 + 4*jlt
175C-----------------------------------------------
176C P r e - C o n d i t i o n
177C-----------------------------------------------
178 IF(int22==0)RETURN
179C-----------------------------------------------
180C S o u r c e L i n e s
181C-----------------------------------------------
182#include "lockon.inc"
183 niskyl = nisky ;
184 nisky = nisky + niskyl1
185 niskyfil = niskyfi
186 niskyfi = niskyfi
187#include "lockoff.inc"
188C
189 IF (niskyl+niskyl1 > lskyi) THEN
190 !CALL ANCMSG(MSGID=26,ANMODE=ANINFO)
191 print *, "** ERROR INTER22 : force assembly issue with PARITH/ON option"
192 CALL arret(2)
193 ENDIF
194 IF (niskyfil > nlskyfi(nin)) THEN
195 CALL ancmsg(msgid=26,anmode=aninfo)
196 CALL arret(2)
197 ENDIF
198C
199 IF(intth == 0 ) THEN
200 DO i=1,jlt
201 niskyl = niskyl + 1
202 fskyi(niskyl,1) = fx1(i)
203 fskyi(niskyl,2) = fy1(i)
204 fskyi(niskyl,3) = fz1(i)
205 fskyi(niskyl,4) = zero
206 isky(niskyl) = ix1(i)
207 if(ibug22_fcontass==-1)then
208 k = abs(ce_loc(i))
209 print *, " assembly iparit2 - node_id : ", itab(ix1(i))
210 print *, " +--BRIQUE : ", ixs(11,brick_list(nin,cb_loc(i))%ID)
211 print *, " +--FACETTE: ", itab(irect(1:4,k))
212 print *, " +--NCYCLE: ", ncycle
213 write(*,fmt='(A,3E30.16)') " +--Fxyz1: ", fx1(i),fy1(i),fz1(i)
214 endif
215 ENDDO
216 DO i=1,jlt
217 niskyl = niskyl + 1
218 fskyi(niskyl,1) = fx2(i)
219 fskyi(niskyl,2) = fy2(i)
220 fskyi(niskyl,3) = fz2(i)
221 fskyi(niskyl,4) = zero
222 isky(niskyl) = ix2(i)
223 if(ibug22_fcontass==-1)then
224 print *, " assembly iparit2 - node_id : ", itab(ix2(i))
225 write(*,fmt='(A,3E30.16)') " +--Fxyz2: ", fx2(i),fy2(i),fz2(i)
226 endif
227 ENDDO
228 DO i=1,jlt
229 niskyl = niskyl + 1
230 fskyi(niskyl,1) = fx3(i)
231 fskyi(niskyl,2) = fy3(i)
232 fskyi(niskyl,3) = fz3(i)
233 fskyi(niskyl,4) = zero
234 isky(niskyl) = ix3(i)
235 if(ibug22_fcontass==-1)then
236 print *, " assembly iparit2 - node_id : ", itab(ix3(i))
237 write(*,fmt='(A,3E30.16)') " +--Fxyz3: ", fx3(i),fy3(i),fz3(i)
238 endif
239 ENDDO
240 DO i=1,jlt
241 niskyl = niskyl + 1
242 fskyi(niskyl,1) = fx4(i)
243 fskyi(niskyl,2) = fy4(i)
244 fskyi(niskyl,3) = fz4(i)
245 fskyi(niskyl,4) = zero
246 isky(niskyl) = ix4(i)
247 if(ibug22_fcontass==-1)then
248 print *, " assembly iparit2 - node_id : ", itab(ix4(i))
249 write(*,fmt='(A,3E30.16)') " +--Fxyz4: ", fx4(i),fy4(i),fz4(i)
250 endif
251 ENDDO
252
253 !### Thermique ###!
254 ELSE
255 !not planned yet
256 endif!(INTTH == 0 )
257C
258 RETURN
259 END
260C
subroutine i22ass2(jlt, ix1, ix2, ix3, ix4, itab, nsvg, h1, h2, h3, h4, stif, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, fskyi, isky, niskyfi, nin, noint, intth, phi, ftheskyi, phi1, phi2, phi3, phi4, cb_loc, ce_loc, irect, ixs)
subroutine i22ass0(jlt, ix1, ix2, ix3, ix4, nsvg, h1, h2, h3, h4, stif, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, a, stifn, nin, intth, phi, fthe, phi1, phi2, phi3, phi4)
Definition i22assembly.F:37
type(brick_entity), dimension(:,:), allocatable, target brick_list
integer, dimension(:), allocatable nlskyfi
Definition tri7box.F:512
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895
subroutine arret(nn)
Definition arret.F:86