OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
deltax22.F File Reference
#include "implicit_f.inc"
#include "param_c.inc"
#include "inter22.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine deltax22 (vol, veul, voln, deltax, iad22, ixs, lft, llt, jale, jeul)

Function/Subroutine Documentation

◆ deltax22()

subroutine deltax22 ( vol,
veul,
voln,
deltax,
iad22,
integer, dimension(nixs,*) ixs,
integer, intent(inout) lft,
integer, intent(inout) llt,
integer, intent(inout) jale,
integer, intent(inout) jeul )

Definition at line 32 of file deltax22.F.

36C-----------------------------------------------
37C D e s c r i p t i o n
38C-----------------------------------------------
39C Interface Type22 (/INTER/TYPE22) is an FSI coupling method based on cut cell method.
40C This experimental cut cell method is not completed, abandoned, and is not an official option.
41C
42C this subroutines update VOLN for cut cells.
43C Main cells have extended values of volume due
44C to secnd cell merging. This extension data is
45C stored in cut cell buffer and is now used here
46C to update VOLN(*)
47C-----------------------------------------------
48C M o d u l e s
49C-----------------------------------------------
51 USE i22tri_mod
52 USE elbufdef_mod
53C-----------------------------------------------
54C I m p l i c i t T y p e s
55C-----------------------------------------------
56#include "implicit_f.inc"
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "param_c.inc"
61#include "inter22.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 INTEGER, INTENT(INOUT) :: LFT
66 INTEGER, INTENT(INOUT) :: LLT
67 INTEGER, INTENT(INOUT) :: JALE
68 INTEGER, INTENT(INOUT) :: JEUL
69 my_real :: vol(*), veul(lveul,*), voln(*),deltax(*)
70 my_real :: iad22(*)
71 INTEGER :: IXS(NIXS,*)
72C-----------------------------------------------
73C L o c a l V a r i a b l e s
74C-----------------------------------------------
75 INTEGER :: I, II, IB, NCELL, IPOS, MCELL, NIN , NSecnds, IBV, ICELLv, NumSecnd,ISECND,NBCUT,K
76 my_real :: var, aream, volm, volsecnds, face0, face0m, volmast
77 TYPE(POLY_ENTITY),DIMENSION(:), POINTER :: pIsMain
78C-----------------------------------------------
79C P r e - C o n d i t i o n s
80C-----------------------------------------------
81 IF(int22==0)RETURN
82C-----------------------------------------------
83C S o u r c e L i n e s
84C-----------------------------------------------
85 nin = 1
86
87 IF(jeul+jale/=0)THEN
88 DO i=lft,llt
89
90 ib = nint(iad22(i))
91 IF(ib==0)cycle
92 ncell = brick_list(nin,ib)%NBCUT
93 pismain(1:9) => brick_list(nin,ib)%POLY(1:9)!%IsMain
94 mcell = brick_list(nin,ib)%MainID
95 IF(mcell == 0)THEN
96 deltax(i) = ep30 !don't take into account this time step, nothing is stored here since MCELL=0.
97 cycle
98 ENDIF
99
100 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
101 ! CHARACTERISTIC LENGTH !
102 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
103 nsecnds = brick_list(nin,ib)%SecndList%Num
104 volsecnds = sum(brick_list(nin,ib)%SecndList%VOL(1:nsecnds))
105 volm = brick_list(nin,ib)%Vnew_SCell
106 mcell = brick_list(nin,ib)%mainID
107 IF(mcell==0)mcell=1
108 volmast = brick_list(nin,ib)%POLY(mcell)%Vnew
109 nbcut = brick_list(nin,ib)%NBCUT
110 aream = maxval(brick_list(nin,ib)%POLY(mcell)%FACE(1:6)%Surf)
111 face0m = zero
112 DO k=1,nbcut
113 face0 = brick_list(nin,ib)%PCUT(k)%Scut(1)
114 face0m = max(face0m,face0)
115 ENDDO
116 aream = max(aream,face0m)
117
118 !---meth1:supercell dx with 50% of brick dx (smooth time step)
119 !DELTAX(I) = HALF * DELTAX(I)
120
121 !---meth2:supercell dx estimated with main cell dx (minorant)
122 !DELTAX(I) = VOLM/AREAM
123
124 !---meth3:isomorph supercell to equivalent brick(cube)
125 !DELTAX(I) = (VOLN(I))**THIRD
126
127 !---meth4:isomorph main cell only to equivalent brick(cube)
128 !DELTAX(I) = VOLM**THIRD
129
130 !---meth5: no specific treatment (FAST but only valid if time step scale factor <= 0.5 in engine file)
131 !DELTAX(I) = DELTAX(I)
132
133 !---meth6: use scale factor on solid element to compute target 0.5
134 !DELTAX(I) = DTFAC22*DELTAX(I)
135
136 !---meth7: Vol(main)/area_max
137 deltax(i) = volmast/aream
138
139 ENDDO
140 ENDIF
141
142C-----------------------------------------------
143 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
type(brick_entity), dimension(:,:), allocatable, target brick_list