OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
monvol_struct_mod.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!|| monvol_struct_mod ../engine/share/modules/monvol_struct_mod.F
25!||--- called by ------------------------------------------------------
26!|| get_volume_area ../engine/source/airbag/get_volume_area.F90
27!|| init_global_frontier_monvol ../engine/source/airbag/init_global_monvol_frontier.F90
28!|| init_monvol_omp_structure ../engine/source/airbag/init_monvol_omp_structure.F90
29!|| monvol0 ../engine/source/airbag/monvol0.F
30!|| python_monvol ../engine/source/coupling/python/python_monvol.F90
31!|| radioss2 ../engine/source/engine/radioss2.F
32!|| rdresb ../engine/source/output/restart/rdresb.F
33!|| resol ../engine/source/engine/resol.F
34!|| resol_head ../engine/source/engine/resol_head.F
35!|| spmd_glob_minv ../engine/source/mpi/generic/spmd_glob_minv.F
36!|| volum0 ../engine/source/airbag/volum0.F
37!|| wrrestp ../engine/source/output/restart/wrrestp.F
38!||--- uses -----------------------------------------------------
39!|| precision_mod ../common_source/modules/precision_mod.F90
40!||====================================================================
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45 USE precision_mod, only : wp
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49 ! ---------
50 ! type for OMP accumulation
52 INTEGER :: node_number !< number of /= node
53 INTEGER :: total_contribution_number !< total number of contribution (if only shells = 4 * NODE_NUMBER)
54 INTEGER, DIMENSION(:), ALLOCATABLE :: node_id !< node id
55
56 INTEGER, DIMENSION(:), ALLOCATABLE :: contribution_number !< number of contribution per node
57 INTEGER, DIMENSION(:,:), ALLOCATABLE :: contribution_index !< index to the array CONTRIBUTION
58 real(kind=wp), DIMENSION(:,:), ALLOCATABLE :: contribution !< contribution array, the force are saved here
59 END TYPE monvol_omp_
60 ! ---------
61
63! Automatic surface hole filling
64 INTEGER :: nb_fill_tri
65 INTEGER, DIMENSION(:), ALLOCATABLE :: fill_tri
66 real(kind=wp), DIMENSION(:,:), ALLOCATABLE :: normal !< normal
67 real(kind=wp) :: volume, pressure, temperature, area
68 INTEGER :: uid !< unique id of the monitored volume
69 TYPE(monvol_omp_) :: omp_output
70 END TYPE monvol_struct_
71
72
73 CONTAINS
74!||====================================================================
75!|| monvol_deallocate ../engine/share/modules/monvol_struct_mod.F
76!||====================================================================
77 SUBROUTINE monvol_deallocate(NVOLU, T_MONVOL)
78C-----------------------------------------------
79C I m p l i c i t T y p e s
80C-----------------------------------------------
81#include "implicit_f.inc"
82C-----------------------------------------------
83C D u m m y A r g u m e n t s
84C-----------------------------------------------
85 INTEGER, INTENT(IN) :: nvolu
86 TYPE(monvol_struct_), DIMENSION(NVOLU), INTENT(INOUT) :: t_monvol
87C-----------------------------------------------
88C L o c a l V a r i a b l e s
89C-----------------------------------------------
90 INTEGER :: ii
91
92 DO ii = 1, nvolu
93 IF (ALLOCATED(t_monvol(ii)%FILL_TRI)) DEALLOCATE(t_monvol(ii)%FILL_TRI)
94 ENDDO
95 END SUBROUTINE monvol_deallocate
96 END
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine monvol_deallocate(nvolu, t_monvol)