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, IG
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!|| i22bufbric_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
116!|| i22tri_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
117!|| message_mod ../engine/share/message_module/message_mod.F
118!|| tri7box ../engine/share/modules/tri7box.F
119!||====================================================================
120 SUBROUTINE i22ass2(JLT ,IX1 ,IX2 ,IX3 ,IX4 ,ITAB ,
121 2 NSVG ,H1 ,H2 ,H3 ,H4 ,STIF ,
122 3 FX1 ,FY1 ,FZ1 ,FX2 ,FY2 ,FZ2 ,
123 4 FX3 ,FY3 ,FZ3 ,FX4 ,FY4 ,FZ4 ,
124 5 FXI ,FYI ,FZI ,FSKYI ,ISKY ,NISKYFI,
125 6 NIN ,NOINT ,INTTH ,PHI ,FTHESKYI,PHI1 ,
126 7 PHI2 ,PHI3 ,PHI4 ,CB_LOC ,CE_LOC ,IRECT ,
127 8 IXS)
128C-----------------------------------------------
129C M o d u l e s
130C-----------------------------------------------
131 USE tri7box
132 USE i22tri_mod
133 USE i22bufbric_mod
134 USE message_mod
135C-----------------------------------------------
136C I m p l i c i t T y p e s
137C-----------------------------------------------
138#include "implicit_f.inc"
139#include "comlock.inc"
140C-----------------------------------------------
141C G l o b a l P a r a m e t e r s
142C-----------------------------------------------
143#include "mvsiz_p.inc"
144C-----------------------------------------------
145C C o m m o n B l o c k s
146C-----------------------------------------------
147#include "parit_c.inc"
148#include "com01_c.inc"
149#include "inter22.inc"
150C-----------------------------------------------
151C D u m m y A r g u m e n t s
152C-----------------------------------------------
153 INTEGER JLT,NISKYFI,NIN,NOINT,INTTH,
154 . ISKY(*),ITAB(*),CB_LOC(MVSIZ),CE_LOC(MVSIZ),
155 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),NSVG(MVSIZ),
156 . IRECT(4,*),IXS(NIXS,*)
157 my_real
158 . H1(MVSIZ),H2(MVSIZ),H3(MVSIZ),H4(MVSIZ),STIF(MVSIZ),
159 . FX1(MVSIZ),FY1(MVSIZ),FZ1(MVSIZ),
160 . FX2(MVSIZ),FY2(MVSIZ),FZ2(MVSIZ),
161 . FX3(MVSIZ),FY3(MVSIZ),FZ3(MVSIZ),
162 . FX4(MVSIZ),FY4(MVSIZ),FZ4(MVSIZ),
163 . FXI(MVSIZ),FYI(MVSIZ),FZI(MVSIZ),
164 . FSKYI(LSKYI,NFSKYI),FTHESKYI(LSKYI),PHI(MVSIZ),
165 . PHI1(*),PHI2(*) ,PHI3(*) ,PHI4(*)
166C-----------------------------------------------
167C L o c a l V a r i a b l e s
168C-----------------------------------------------
169 INTEGER I, J1, IG, NISKYL1, NISKYL,IGP,IGM,IDR,NISKYFIL, K
170C
171 niskyl1 = 0
172 niskyl1 = niskyl1 + 4*jlt
173C-----------------------------------------------
174C P r e - C o n d i t i o n
175C-----------------------------------------------
176 IF(int22==0)RETURN
177C-----------------------------------------------
178C S o u r c e L i n e s
179C-----------------------------------------------
180#include "lockon.inc"
181 niskyl = nisky ;
182 nisky = nisky + niskyl1
183 niskyfil = niskyfi
184 niskyfi = niskyfi
185#include "lockoff.inc"
186C
187 IF (niskyl+niskyl1 > lskyi) THEN
188 !CALL ANCMSG(MSGID=26,ANMODE=ANINFO)
189 print *, "** ERROR INTER22 : force assembly issue with PARITH/ON option"
190 CALL arret(2)
191 ENDIF
192 IF (niskyfil > nlskyfi(nin)) THEN
193 CALL ancmsg(msgid=26,anmode=aninfo)
194 CALL arret(2)
195 ENDIF
196C
197 IF(intth == 0 ) THEN
198 DO i=1,jlt
199 niskyl = niskyl + 1
200 fskyi(niskyl,1) = fx1(i)
201 fskyi(niskyl,2) = fy1(i)
202 fskyi(niskyl,3) = fz1(i)
203 fskyi(niskyl,4) = zero
204 isky(niskyl) = ix1(i)
205 if(ibug22_fcontass==-1)then
206 k = abs(ce_loc(i))
207 print *, " assembly iparit2 - node_id : ", itab(ix1(i))
208 print *, " +--BRIQUE : ", ixs(11,brick_list(nin,cb_loc(i))%ID)
209 print *, " +--FACETTE: ", itab(irect(1:4,k))
210 print *, " +--NCYCLE: ", ncycle
211 write(*,fmt='(A,3E30.16)') " +--Fxyz1: ", fx1(i),fy1(i),fz1(i)
212 endif
213 ENDDO
214 DO i=1,jlt
215 niskyl = niskyl + 1
216 fskyi(niskyl,1) = fx2(i)
217 fskyi(niskyl,2) = fy2(i)
218 fskyi(niskyl,3) = fz2(i)
219 fskyi(niskyl,4) = zero
220 isky(niskyl) = ix2(i)
221 if(ibug22_fcontass==-1)then
222 print *, " assembly iparit2 - node_id : ", itab(ix2(i))
223 write(*,fmt='(A,3E30.16)') " +--Fxyz2: ", fx2(i),fy2(i),fz2(i)
224 endif
225 ENDDO
226 DO i=1,jlt
227 niskyl = niskyl + 1
228 fskyi(niskyl,1) = fx3(i)
229 fskyi(niskyl,2) = fy3(i)
230 fskyi(niskyl,3) = fz3(i)
231 fskyi(niskyl,4) = zero
232 isky(niskyl) = ix3(i)
233 if(ibug22_fcontass==-1)then
234 print *, " assembly iparit2 - node_id : ", itab(ix3(i))
235 write(*,fmt='(A,3E30.16)') " +--Fxyz3: ", fx3(i),fy3(i),fz3(i)
236 endif
237 ENDDO
238 DO i=1,jlt
239 niskyl = niskyl + 1
240 fskyi(niskyl,1) = fx4(i)
241 fskyi(niskyl,2) = fy4(i)
242 fskyi(niskyl,3) = fz4(i)
243 fskyi(niskyl,4) = zero
244 isky(niskyl) = ix4(i)
245 if(ibug22_fcontass==-1)then
246 print *, " assembly iparit2 - node_id : ", itab(ix4(i))
247 write(*,fmt='(A,3E30.16)') " +--Fxyz4: ", fx4(i),fy4(i),fz4(i)
248 endif
249 ENDDO
250
251 !### Thermique ###!
252 ELSE
253 !not planned yet
254 endif!(INTTH == 0 )
255C
256 RETURN
257 END
258C
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:889
subroutine arret(nn)
Definition arret.F:87