OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i24buce.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "com01_c.inc"
#include "task_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i24buce (x, v, irect, nsv, stfn, nmn, nrtm, nsn, cand_e, cand_n, gap, noint, ii_stok, ncontact, bminma, marge, curv_max, pmax_gap, vmaxdt, nb_n_b, eshift, ild, nin, stf, gap_s, nsnr, ncont, gap_m, itask, bgapsmx, i_mem, pene_old, itab, nbinflg, mbinflg, ilev, msegtyp, edge_l2, iedge, iseadd, isedge, cand_t, flagremnode, kremnod, remnod, cand_a, renum, nsnrold, irtse, is2se, nsne, dgapload, intheat, idt_therm, nodadt_therm)

Function/Subroutine Documentation

◆ i24buce()

subroutine i24buce ( x,
v,
integer, dimension(4,*) irect,
integer, dimension(*) nsv,
stfn,
integer nmn,
integer nrtm,
integer nsn,
integer, dimension(*) cand_e,
integer, dimension(*) cand_n,
gap,
integer noint,
integer ii_stok,
integer ncontact,
bminma,
marge,
curv_max,
pmax_gap,
vmaxdt,
integer nb_n_b,
integer eshift,
integer ild,
integer nin,
stf,
gap_s,
integer nsnr,
integer ncont,
gap_m,
integer itask,
bgapsmx,
integer i_mem,
pene_old,
integer, dimension(*) itab,
integer, dimension(*) nbinflg,
integer, dimension(*) mbinflg,
integer ilev,
integer, dimension(*) msegtyp,
edge_l2,
integer iedge,
integer, dimension(*) iseadd,
integer, dimension(*) isedge,
integer, dimension(*) cand_t,
integer flagremnode,
integer, dimension(*) kremnod,
integer, dimension(*) remnod,
integer, dimension(*) cand_a,
integer, dimension(*) renum,
integer nsnrold,
integer, dimension(5,*) irtse,
integer, dimension(2,*) is2se,
integer nsne,
intent(in) dgapload,
integer, intent(in) intheat,
integer, intent(in) idt_therm,
integer, intent(in) nodadt_therm )

Definition at line 33 of file i24buce.F.

45C============================================================================
46C M o d u l e s
47C-----------------------------------------------
48 USE tri7box
49 USE message_mod
50C-----------------------------------------------
51C I m p l i c i t T y p e s
52C-----------------------------------------------
53#include "implicit_f.inc"
54#include "comlock.inc"
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58#include "com01_c.inc"
59#include "task_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER NMN, NRTM, NSN, NOINT, NIN, NSNR
64 INTEGER IRECT(4,*),NSV(*),ITASK,ILEV,IEDGE,NSNE
65 INTEGER CAND_E(*),CAND_N(*),MSEGTYP(*)
66 INTEGER NCONTACT,ESHIFT,ILD,NB_N_B, NCONT,I_MEM,
67 . II_STOK,ITAB(*),NBINFLG(*),MBINFLG(*),ISEADD(*),
68 . ISEDGE(*),CAND_T(*),FLAGREMNODE,KREMNOD(*),REMNOD(*),
69 . CAND_A(*) ,RENUM(*),NSNROLD,IRTSE(5,*),IS2SE(2,*)
70C REAL
72 . gap,pmax_gap,vmaxdt,
73 . bminma(6),curv_max(nrtm),bgapsmx, marge
74 my_real , INTENT(IN) :: dgapload
76 . x(3,*), v(3,*), stfn(*),pene_old(5,nsn),
77 . stf(*), gap_s(*), gap_m(*),edge_l2(*)
78C-----------------------------------------------
79C L o c a l V a r i a b l e s
80C-----------------------------------------------
81 INTEGER I,
82 . ISZNSNR
83 INTEGER, INTENT(IN) :: INTHEAT
84 INTEGER, INTENT(IN) :: IDT_THERM
85 INTEGER, INTENT(IN) :: NODADT_THERM
86C REAL
88 . xyzm(6), aaa
89 INTEGER NBX,NBY,NBZ,NSNF,NSNL
90 INTEGER (KIND=8) :: NBX8,NBY8,NBZ8,RES8,LVOXEL8
91
92C-----------------------------------------------
93C S o u r c e L i n e s
94C-----------------------------------------------
95c save max penetration (pene-gap) at sorting time
96c in PENE_OLD(4,i) used to compute
97c DELTA_PMAX_GAP_L = MAX(DELTA_PMAX_GAP_L,PENE_OLD(3,I)-PENE_OLD(4,I))
98c in I24BUCE_CRIT at each cycle
99C-----------------------------------------------
100 nsnf = 1 + itask*nsn / nthread
101 nsnl = (itask+1)*nsn / nthread
102 pene_old(4,nsnf:nsnl) = pene_old(3,nsnf:nsnl)
103C-----------------------------------------------
104C
105Csorting of elements and nodes
106C
107C-----------------------------------------------
108C
109C----- BORNES DU DOMAINE DEJA CALCULEES
110C
111 xyzm(1) = bminma(4)
112 xyzm(2) = bminma(5)
113 xyzm(3) = bminma(6)
114 xyzm(4) = bminma(1)
115 xyzm(5) = bminma(2)
116 xyzm(6) = bminma(3)
117 i_mem = 0
118C
119 isznsnr = nsnr
120C=============================================================================
121c
122c Si MARGE - DELTA_PMAX_GAP - SOMME(Vrel*dt) < ZERO => RETRI
123c DELTA_PMAX_GAP = MAX((PENEmax(i)-GAP)-(PENEmax_Tri(i)-GAP)
124c
125C=============================================================================
126
127 IF( nmn /= 0) THEN
128 aaa = sqrt(nmn /
129 . ((bminma(1)-bminma(4))*(bminma(2)-bminma(5))
130 . +(bminma(2)-bminma(5))*(bminma(3)-bminma(6))
131 . +(bminma(3)-bminma(6))*(bminma(1)-bminma(4))))
132 ELSE
133 aaa = 0
134 ENDIF
135
136 aaa = 0.75*aaa
137
138 nbx = nint(aaa*(bminma(1)-bminma(4)))
139 nby = nint(aaa*(bminma(2)-bminma(5)))
140 nbz = nint(aaa*(bminma(3)-bminma(6)))
141 nbx = max(nbx,1)
142 nby = max(nby,1)
143 nbz = max(nbz,1)
144
145 nbx8=nbx
146 nby8=nby
147 nbz8=nbz
148 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
149 lvoxel8 = lvoxel
150
151 IF(res8 > lvoxel8) THEN
152 aaa = lvoxel
153 aaa = aaa/((nbx8+2)*(nby8+2)*(nbz8+2))
154 aaa = aaa**(third)
155 nbx = int((nbx+2)*aaa)-2
156 nby = int((nby+2)*aaa)-2
157 nbz = int((nbz+2)*aaa)-2
158 nbx = max(nbx,1)
159 nby = max(nby,1)
160 nbz = max(nbz,1)
161 ENDIF
162
163 nbx8=nbx
164 nby8=nby
165 nbz8=nbz
166 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
167
168 IF(res8 > lvoxel8) THEN
169 nbx = min(100,max(nbx8,1))
170 nby = min(100,max(nby8,1))
171 nbz = min(100,max(nbz8,1))
172 ENDIF
173c IF(MAX(NBX,NBY,NBZ) > 100) stop 678
174
175C complete initialization of VOXEL
176C (in // SMP there is possibility of processing redundancy but no pb)
177 DO i=inivoxel,(nbx+2)*(nby+2)*(nbz+2)
178 voxel1(i)=0
179 ENDDO
180 inivoxel = max(inivoxel,(nbx+2)*(nby+2)*(nbz+2)+1)
181
182c write(iout,*)'i24buce 2'
183 CALL i24trivox(
184 1 nsn ,nsnr ,isznsnr ,i_mem ,vmaxdt ,
185 2 irect ,x ,stf ,stfn ,xyzm ,
186 3 nsv ,ii_stok ,cand_n ,eshift ,cand_e ,
187 4 ncontact,noint ,v ,bgapsmx ,
188 5 voxel1 ,nbx ,nby ,nbz ,pmax_gap ,
189 6 nrtm ,gap_s ,gap_m ,marge ,curv_max ,
190 7 nin ,itask ,pene_old,itab ,nbinflg ,
191 8 mbinflg ,ilev ,msegtyp ,edge_l2 ,iedge ,
192 9 iseadd ,isedge ,cand_t ,flagremnode,kremnod,
193 a remnod ,cand_a ,renum ,nsnrold ,irtse ,
194 b is2se ,nsne ,dgapload,intheat,idt_therm,nodadt_therm)
195c write(iout,*)'i24buce 3'
196
197C
198C I_MEM = 2 ==> PAS ASSEZ DE MEMOIRE CANDIDATES
199
200c write(iout,*)'i24buce 4'
201C
202 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine i24trivox(nsn, nsnr, isznsnr, i_mem, vmaxdt, irect, x, stf, stfn, xyzm, nsv, ii_stok, cand_n, eshift, cand_e, mulnsn, noint, v, bgapsmx, voxel, nbx, nby, nbz, pmax_gap, nrtm, gap_s, gap_m, marge, curv_max, nin, itask, pene_old, itab, nbinflg, mbinflg, ilev, msegtyp, edge_l2, iedge, iseadd, isedge, cand_t, flagremnode, kremnod, remnod, cand_a, renum, nsnrold, irtse, is2se, nsne, dgapload, intheat, idt_therm, nodadt_therm)
Definition i24trivox.F:47
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
integer, dimension(lvoxel) voxel1
Definition tri7box.F:53
integer inivoxel
Definition tri7box.F:53
integer lvoxel
Definition tri7box.F:51