OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
seatbelt_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!|| seatbelt_mod ../common_source/modules/seatbelt_mod.F
25!||--- called by ------------------------------------------------------
26!|| c_seatbelts ../starter/source/restart/ddsplit/c_seatbelts.F
27!|| create_seatbelt ../starter/source/tools/seatbelts/create_seatbelt.F
28!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
29!|| hist2 ../engine/source/output/th/hist2.F
30!|| hm_read_retractor ../starter/source/tools/seatbelts/hm_read_retractor.F
31!|| hm_read_slipring ../starter/source/tools/seatbelts/hm_read_slipring.F
32!|| ini_seatbelt ../starter/source/tools/seatbelts/ini_seatbelt.F
33!|| init_seatbelt_rbodies ../starter/source/tools/seatbelts/init_seatbelt_rbodies.F90
34!|| kine_seatbelt_force ../engine/source/tools/seatbelts/kine_seatbelt_force.F
35!|| kine_seatbelt_vel ../engine/source/tools/seatbelts/kine_seatbelt_vel.F
36!|| lectur ../engine/source/input/lectur.F
37!|| material_flow ../engine/source/tools/seatbelts/material_flow.f
38!|| new_seatbelt ../starter/source/tools/seatbelts/new_seatbelt.F
39!|| r23l114def3 ../engine/source/elements/spring/r23l114def3.F
40!|| rdresb ../engine/source/output/restart/rdresb.F
41!|| resol ../engine/source/engine/resol.F
42!|| restalloc ../engine/source/output/restart/arralloc.F
43!|| rgrhead ../starter/source/elements/spring/rgrhead.F
44!|| rgrtails ../starter/source/elements/spring/rgrtails.F
45!|| rinit3 ../starter/source/elements/spring/rinit3.F
46!|| spmd_collect_seatbelt ../engine/source/mpi/output/spmd_collect_seatbelt.F
47!|| spmd_exch_a_seatbelt ../engine/source/mpi/seatbelts/spmd_exch_a_seatbelt.F
48!|| st_qaprint_seatbelts ../starter/source/output/qaprint/st_qaprint_seatbelts.F
49!|| update_slipring ../engine/source/tools/seatbelts/update_slipring.F
50!|| w_seatbelts ../starter/source/restart/ddsplit/w_seatbelts.F
51!|| wrrestp ../engine/source/output/restart/wrrestp.F
52!||--- uses -----------------------------------------------------
53!|| table_mod ../engine/share/modules/table_mod.F
54!||====================================================================
56C-----------------------------------------------
57C M o d u l e s
58C-----------------------------------------------
59 USE table_mod
60C-----------------------------------------------------------------------
61#include "my_real.inc"
62
63c=======================================================================
64c define structure for slipring
65c=======================================================================
66c
68 INTEGER update
69 INTEGER anchor_node
70 INTEGER node(3)
71 INTEGER orientation_node
72 INTEGER node_next(3)
73 INTEGER node2_prev
74 INTEGER strand_direction(2)
75 INTEGER locked
76 INTEGER n_remote_proc
77 my_real vector(6)
78 my_real orientation_angle
80 my_real material_flow_old
81 my_real dfs
82 my_real residual_length(2)
83 my_real current_length(2)
84 my_real ringslip
85 my_real beta
86 my_real gamma
87 my_real slip_force(3)
88 my_real prev_ref_length
89 my_real intvar_str1(8)
90 my_real intvar_str2(8)
92C
94 INTEGER id
95 INTEGER idg
96 INTEGER nfram
97 INTEGER ifunc(4)
98 INTEGER sensid
99 INTEGER FL_FLAG
100 INTEGER rbody
101 my_real dc
102 my_real a
103 my_real fric
104 my_real fac_d(3)
105 my_real frics
106 my_real fac_s(3)
107 TYPE(slipring_fram_struct),ALLOCATABLE,DIMENSION(:) :: fram
108 END TYPE slipring_struct
109C
110 TYPE(slipring_struct),ALLOCATABLE,DIMENSION(:) :: slipring
111
112c=======================================================================
113c define structure for retractor
114c=======================================================================
115c
117 INTEGER id
118 INTEGER idg
119 INTEGER update
120 INTEGER anchor_node
121 INTEGER node(2)
122 INTEGER node_next(2)
123 INTEGER strand_direction
124 INTEGER ifunc(3)
125 INTEGER isens(2)
126 INTEGER tens_typ
127 INTEGER locked
128 INTEGER locked_freeze
129 INTEGER pretens_activ
130 INTEGER INACTI_NNOD
131 INTEGER inacti_nnod_max
132 INTEGER, DIMENSION(:) , ALLOCATABLE :: inacti_node
133 INTEGER s_table(2)
134 TYPE(ttable), DIMENSION(2) :: table
135 INTEGER n_remote_proc
136 my_real vector(3)
137 my_real element_size
138 my_real force
140 my_real residual_length
141 my_real fac(4)
142 my_real pullout
143 my_real unlock_force
144 my_real lock_pull
145 my_real lock_offset
146 my_real lock_yield_force
147 my_real lock_pull_sav
148 my_real ringslip
149 my_real pretens_time
150 my_real pretens_pull
151 my_real pretens_pullmax
152 my_real ret_force
153 END TYPE retractor_struct
154
155 TYPE(retractor_struct),ALLOCATABLE,DIMENSION(:) :: retractor
156
157c=======================================================================
158c define structure for seatbelts (starter only)
159c=======================================================================
160c
162 INTEGER nfram
163 INTEGER nspring
164 INTEGER nshell
165 INTEGER nnod
166 INTEGER, DIMENSION(:) , ALLOCATABLE :: spring
168 my_real elem_size
169 END TYPE seatbelt_struct
170
171 TYPE(seatbelt_struct),ALLOCATABLE,DIMENSION(:) :: seatbelt_tab
173 INTEGER, DIMENSION(:) , ALLOCATABLE :: comn_1d2d
174
175c=======================================================================
176C define structure for remote anchor node
177c=======================================================================
179 INTEGER, DIMENSION(:) , ALLOCATABLE :: add_proc
180 INTEGER, DIMENSION(:) , ALLOCATABLE :: node
182
184C
186C
188 INTEGER id_proc
189 INTEGER add_proc
190 INTEGER nslipring
191 INTEGER nretractor
193C
194 TYPE(seatbelt_th_exch_struct),ALLOCATABLE,DIMENSION(:) :: seatbelt_th_exch
195C
196 my_real , DIMENSION(:,:), ALLOCATABLE:: th_slipring,th_retractor
197C
198c---------------
199 END MODULE seatbelt_mod
#define my_real
Definition cppsort.cpp:32
subroutine material_flow(dfs, dfs_old, aldp, slipring_strand, xk, off, al0, al02, lmin, update_flag, ring_slip, slipring_id, xl0, dl, dlold, exdp, eydp, ezdp, x1dp, x2dp, x3dp, adher, nc1, nc2, nc3, flag_slipring_update, add_node1, add_node2, vx1, vy1, vz1, vx2, vy2, vz2, vx3, vy3, vz3, xc, retractor_id, flag_retractor_update, sensor_tab, al0dp, fr_id, ddf, fx, fx2, aldp2, al0dp2, ex2dp, ey2dp, ez2dp, xl02, xk2, compt, index2, nsensor)
initmumps id
integer n_comn_1d2d
integer nseatbelt_th_proc
type(retractor_struct), dimension(:), allocatable retractor
type(seatbelt_struct), dimension(:), allocatable seatbelt_tab
type(seatbelt_remote_nodes_struct) anchor_remote_send
integer, dimension(:), allocatable comn_1d2d
type(seatbelt_remote_nodes_struct) anchor_remote
type(seatbelt_th_exch_struct), dimension(:), allocatable seatbelt_th_exch
type(slipring_struct), dimension(:), allocatable slipring
subroutine section(nnod, n1, n2, n3, nstrf, x, v, vr, fsav, fopta, secfcum, ms, in, ifram, xsec)
Definition section.F:34