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 33 of file deltax22.F.

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