OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
deltax22.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!|| deltax22 ../engine/source/interfaces/int22/deltax22.F
25!||--- called by ------------------------------------------------------
26!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
27!||--- uses -----------------------------------------------------
28!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
29!|| element_mod ../common_source/modules/elements/element_mod.F90
30!|| i22bufbric_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
31!|| i22tri_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
32!||====================================================================
33 SUBROUTINE deltax22(
34 1 VOL, VEUL, VOLN, DELTAX,
35 2 IAD22, IXS, LFT, LLT,
36 3 JALE, JEUL)
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
146 END SUBROUTINE deltax22
#define my_real
Definition cppsort.cpp:32
subroutine deltax22(vol, veul, voln, deltax, iad22, ixs, lft, llt, jale, jeul)
Definition deltax22.F:37
#define max(a, b)
Definition macros.h:21
type(brick_entity), dimension(:,:), allocatable, target brick_list