OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_fail_snconnect.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!|| hm_read_fail_snconnect ../starter/source/materials/fail/snconnect/hm_read_fail_snconnect.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_fail ../starter/source/materials/fail/hm_read_fail.F
27!||--- calls -----------------------------------------------------
28!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
29!|| hm_get_floatv_dim ../starter/source/devtools/hm_reader/hm_get_floatv_dim.F
30!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
31!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
32!||--- uses -----------------------------------------------------
33!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
34!|| submodel_mod ../starter/share/modules1/submodel_mod.F
35!||====================================================================
37 . FAIL ,MAT_ID ,FAIL_ID ,IRUPT ,
38 . LSUBMODEL,UNITAB )
39C-----------------------------------------------
40c ROUTINE DESCRIPTION :
41c Read SNCONNECT cohesive failure model parameters
42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE fail_param_mod
46 USE unitab_mod
47 USE submodel_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "units_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER ,INTENT(IN) :: FAIL_ID ! failure model ID
61 INTEGER ,INTENT(IN) :: MAT_ID ! material law ID
62 INTEGER ,INTENT(IN) :: IRUPT ! failure model type number
63 TYPE(unit_type_) ,INTENT(IN) :: UNITAB ! table of input units
64 TYPE(submodel_data),INTENT(IN) :: LSUBMODEL(*) ! submodel table
65 TYPE(fail_param_) ,INTENT(INOUT) :: FAIL ! failure model data structure
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER :: ID_0N,ID_0S,ID_FN,ID_FS,ISOLID,NFAIL,ISYM
70 my_real :: A2, B2 , A3, B3,XSCALE0,XSCALEF,AREASCALE,
71 . xscale0_unit,xscalef_unit
72C-----------------------------------------------
73 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
74C=======================================================================
75 is_encrypted = .false.
76 is_available = .false.
77C--------------------------------------------------
78C (IS OPTION CRYPTED)
79C--------------------------------------------------
80 CALL hm_option_is_encrypted(is_encrypted)
81C--------------------------------------------------
82C EXTRACT DATA
83C--------------------------------------------------
84Card1
85 CALL hm_get_floatv ('Alpha_0' ,a2 ,is_available,lsubmodel,unitab)
86 CALL hm_get_floatv ('Beta_0' ,b2 ,is_available,lsubmodel,unitab)
87 CALL hm_get_floatv ('Alpha_f' ,a3 ,is_available,lsubmodel,unitab)
88 CALL hm_get_floatv ('Beta_f' ,b3 ,is_available,lsubmodel,unitab)
89 CALL hm_get_intv ('Ifail_so',isolid,is_available,lsubmodel)
90 CALL hm_get_intv ('ISYM' ,isym ,is_available,lsubmodel)
91Card2
92 CALL hm_get_intv ('fct_IDON' ,id_0n ,is_available,lsubmodel)
93 CALL hm_get_intv ('fct_IDOS' ,id_0s ,is_available,lsubmodel)
94 CALL hm_get_intv ('fct_IDFN' ,id_fn ,is_available,lsubmodel)
95 CALL hm_get_intv ('fct_IDFS' ,id_fs ,is_available,lsubmodel)
96 CALL hm_get_floatv ('XSCALE_0' ,xscale0 ,is_available,lsubmodel,unitab)
97 CALL hm_get_floatv ('XSCALE_F' ,xscalef ,is_available,lsubmodel,unitab)
98 CALL hm_get_floatv ('AREA_scale',areascale ,is_available,lsubmodel,unitab)
99C--------------------------------------------
100 IF (xscale0 == zero) THEN
101 CALL hm_get_floatv_dim('XSCALE0' ,xscale0_unit ,is_available, lsubmodel, unitab)
102 xscale0 = one * xscale0_unit
103 ENDIF
104
105 IF (xscalef == zero)THEN
106 CALL hm_get_floatv_dim('XSCALEF' ,xscalef_unit ,is_available, lsubmodel, unitab)
107 xscalef = one * xscalef_unit
108 ENDIF
109C--------------------------------------------
110 nfail = 1
111 IF (isolid == 0) THEN
112 isolid = 1
113 ELSE IF (isolid == 2) THEN
114 nfail = 4 ! all Gauss points must fail
115 END IF
116 IF (b2 == zero) b2 = one
117 IF (b3 == zero) b3 = one
118c-----------------------------------------------------
119 fail%KEYWORD = 'SNCONNECT'
120 fail%IRUPT = irupt
121 fail%FAIL_ID = fail_id
122 fail%NUPARAM = 9
123 fail%NIPARAM = 0
124 fail%NUVAR = 3
125 fail%NFUNC = 4
126 fail%NTABLE = 0
127 fail%NMOD = 0
128c
129 ALLOCATE (fail%UPARAM(fail%NUPARAM))
130 ALLOCATE (fail%IPARAM(fail%NIPARAM))
131 ALLOCATE (fail%IFUNC (fail%NFUNC))
132 ALLOCATE (fail%TABLE (fail%NTABLE))
133c
134 fail%UPARAM(1) = a2
135 fail%UPARAM(2) = b2
136 fail%UPARAM(3) = a3
137 fail%UPARAM(4) = b3
138 fail%UPARAM(5) = nfail
139 fail%UPARAM(6) = xscale0
140 fail%UPARAM(7) = xscalef
141 fail%UPARAM(8) = isym
142 fail%UPARAM(9) = areascale
143c
144 fail%IFUNC(1) = id_0n
145 fail%IFUNC(2) = id_0s
146 fail%IFUNC(3) = id_fn
147 fail%IFUNC(4) = id_fs
148c-----------------------------------------------------------------------
149 IF(is_encrypted)THEN
150 WRITE(iout, 1000)
151 ELSE
152 WRITE(iout, 1100) a2,b2,a3,b3,isolid,isym,
153 . id_0n,id_0s,id_fn,id_fs,xscale0,xscalef
154 ENDIF
155C-----------
156 RETURN
157C-----------
158 1000 FORMAT(
159 & 5x,' CRYPTED DATA IN FAILURE MODEL '/,
160 & 5x,' ----------------------------- '/)
161 1100 FORMAT(
162 & 5x,' SNCONNECT '/,
163 & 5x,' ------------------------ '/,
164 & 5x,'CONSTANT ALPHA INITIAL . . . . . . . . .=',1pg20.13/,
165 & 5x,'CONSTANT BETA INITIAL. . . . . . . . . .=',1pg20.13/,
166 & 5x,'CONSTANT ALPHA FINAL . . . . . . . . . .=',1pg20.13/,
167 & 5x,'CONSTANT BETA FINAL . .. . . . . . . . .=',1pg20.13/,
168 & 5x,'ISOLID FLAG . . . . . . . . . . . . . .=',i10/,
169 & 5x,'RUPTURE DEACTIVATION FLAG IN COMPRESSION=',i10/,
170 & 5x,'FUCNCTION ID INITIAL NORMAL. . . . . . .=',i10/,
171 & 5x,'FUCNCTION ID INITIAL TANGENTIAL . . . .=',i10/,
172 & 5x,'FUCNCTION ID FINAL NORMAL . . . . . . .=',i10/,
173 & 5x,'FUCNCTION ID FINAL TANGENTIAL . . . . .=',i10/,
174 & 5x,'ABSCISSA SCALE FOR INITIAL CURVES . . .=',1pg20.13/,
175 & 5x,'ABSCISSA SCALE FOR FINAL CURVES . . . .=',1pg20.13)
176C-----------
177 RETURN
178 END
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_read_fail_snconnect(fail, mat_id, fail_id, irupt, lsubmodel, unitab)