OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i22cor3.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!|| i22cor3 ../engine/source/interfaces/int22/i22cor3.F
25!||--- called by ------------------------------------------------------
26!|| i22mainf ../engine/source/interfaces/int22/i22mainf.F
27!||--- uses -----------------------------------------------------
28!|| i22bufbric_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
29!|| i22edge_mod ../common_source/modules/interfaces/cut-cell-buffer_mod.F
30!|| i22tri_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
31!|| tri7box ../engine/share/modules/tri7box.F
32!||====================================================================
33 SUBROUTINE i22cor3(
34 1 JLT ,X ,IRECT ,NSV ,CAND_E ,
35 2 CAND_B ,STF ,STFN ,X1 ,X2 ,
36 3 X3 ,X4 ,Y1 ,Y2 ,Y3 ,
37 4 Y4 ,Z1 ,Z2 ,Z3 ,Z4 ,
38 5 XI ,YI ,ZI ,STIF ,IX1 ,
39 6 IX2 ,IX3 ,IX4 ,NSVG ,IGAP ,
40 7 GAP ,GAP_S ,GAP_M ,GAPV ,MS ,
41 8 VXI ,VYI ,
42 A VZI ,MSI ,NSN ,V ,KINET ,
43 B KINI ,ITY ,NIN ,IGSTI ,KMIN ,
44 C KMAX ,GAPMAX ,GAPMIN ,IADM ,INDEX ,
45 D INTTH ,TEMP ,CAND__E,CAND__B ,
46 E TEMPI ,PHI ,AREAS ,IELEC ,AREASI ,
47 F IELECI ,NODNX_SMS ,NSMS ,GAP_S_L ,GAP_M_L,
48 G BUFBRIC ,JTASK)
49C-----------------------------------------------
50C D e s c r i p t i o n
51C-----------------------------------------------
52C Interface Type22 (/INTER/TYPE22) is an FSI coupling method based on cut cell method.
53C This experimental cut cell method is not completed, abandoned, and is not an official option.
54C
55C-----------------------------------------------
56C M o d u l e s
57C-----------------------------------------------
58 USE tri7box
60 USE i22tri_mod
61 USE i22edge_mod
62C-----------------------------------------------
63C I m p l i c i t T y p e s
64C-----------------------------------------------
65#include "implicit_f.inc"
66C-----------------------------------------------
67C G l o b a l P a r a m e t e r s
68C-----------------------------------------------
69#include "mvsiz_p.inc"
70C-----------------------------------------------
71C C o m m o n B l o c k s
72C-----------------------------------------------
73#include "comlock.inc"
74C-----------------------------------------------
75C D u m m y A r g u m e n t s
76C-----------------------------------------------
77 INTEGER IRECT(4,*), NSV(*), CAND_E(*), CAND_B(*),KINET(*),KINI(*),
78 . JLT,IDT, NOINT,IGAP ,NSN, ITY, NIN, IGSTI,
79 . IADM,INTTH, CAND__E(*), CAND__B(*)
80 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
81 . NSVG(MVSIZ),IELEC(*),IELECI(MVSIZ), NSMS(MVSIZ),
82 . NODNX_SMS(*), BUFBRIC(*), JTASK,INDEX(*)
83 my_real
84 . GAP, X(3,*), STF(*), STFN(*),GAP_S(*),GAP_M(*),
85 . MS(*), V(3,*), TEMP(*),AREAS(*),PHI(*),
86 . TEMPI(*),AREASI(*),GAP_S_L(*),GAP_M_L(*)
87 my_real
88 . X1(MVSIZ), X2(MVSIZ), X3(MVSIZ), X4(MVSIZ),
89 . Y1(MVSIZ), Y2(MVSIZ), Y3(MVSIZ), Y4(MVSIZ),
90 . Z1(MVSIZ), Z2(MVSIZ), Z3(MVSIZ), Z4(MVSIZ),
91 . XI(MVSIZ), YI(MVSIZ), ZI(MVSIZ), STIF(MVSIZ),
92 . gapv(mvsiz),
93 . vxi(mvsiz), vyi(mvsiz), vzi(mvsiz), msi(mvsiz),
94 . kmin, kmax, gapmax, gapmin,scut
95C-----------------------------------------------
96C L o c a l V a r i a b l e s
97C-----------------------------------------------
98 INTEGER I ,J ,IL, EI, NN, IG,JFT, IX, BI, NI
99C-----------------------------------------------
100C S o u r c e L i n e s
101C-----------------------------------------------
102C -------------------------------------------------------------
103C DEFINITION OF GLOBAL ARRAY FOR SHELLS (LOCAL + REMOTE ONES)
104C -------------------------------------------------------------
105C IRECT_L( 1: 4, :) : Four Node ITAB( ID) : global id to manage unicity with XREM
106C IRECT_L( 5: 8, :) : X-coordinates
107C IRECT_L( 9:12, :) : Y-coordinates
108C IRECT_L(13:16, :) : Z-coordinates
109C IRECT_L(17:19, :) : Minimum X,Y,Z
110C IRECT_L(20:22, :) : Maximum X,Y,Z
111C IRECT_L(23 , :) : Stiffness
112C IRECT_L(24:26, :) : Lagrangian Velocity (mean)
113C IRECT_L( :,1+4*ESHIFT:4*ESHIFT+NRTM_T) : element data on current Thread
114C IRECT_L( :,NRTM+1:NRTM + NSNR) : remotes elements data
115C-----------------------------------------------
116C
117C-----------------------------------------------
118C S o u r c e L i n e s
119C-----------------------------------------------
120
121 !candidates retaines from each nodes
122 !INDEX is index array for current thread
123 DO i=1,jlt
124 cand_e(i) = cand__e(index(i))
125 cand_b(i) = cand__b(index(i))
126 ENDDO
127
128
129 DO i=1,jlt
130 bi = cand_b(i) !up to i22intersect() : cand_b is related to couple I. It corresponds to brick IID = bufbric(cand_b(i))
131 !after that cand_b(i) is replaced by address in brick_list
132 ei = iabs(cand_e(i))
133 ni=bi
134
135 !-------------------------------!
136 !RETRIEVING FACES COORDINATES !
137 !-------------------------------!
138
139 ix=irect(1,ei)
140 ix1(i)=ix
141 x1(i)=x(1,ix)
142 y1(i)=x(2,ix)
143 z1(i)=x(3,ix)
144
145 ix=irect(2,ei)
146 ix2(i)=ix
147 x2(i)=x(1,ix)
148 y2(i)=x(2,ix)
149 z2(i)=x(3,ix)
150
151 ix=irect(3,ei)
152 ix3(i)=ix
153 x3(i)=x(1,ix)
154 y3(i)=x(2,ix)
155 z3(i)=x(3,ix)
156
157 ix=irect(4,ei)
158 ix4(i)=ix
159 x4(i)=x(1,ix)
160 y4(i)=x(2,ix)
161 z4(i)=x(3,ix)
162
163 stif(i) = zero
164
165 END DO
166
167 RETURN
168 END
169C
subroutine i22cor3(jlt, x, irect, nsv, cand_e, cand_b, stf, stfn, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, ix1, ix2, ix3, ix4, nsvg, igap, gap, gap_s, gap_m, gapv, ms, vxi, vyi, vzi, msi, nsn, v, kinet, kini, ity, nin, igsti, kmin, kmax, gapmax, gapmin, iadm, index, intth, temp, cand__e, cand__b, tempi, phi, areas, ielec, areasi, ieleci, nodnx_sms, nsms, gap_s_l, gap_m_l, bufbric, jtask)
Definition i22cor3.F:49