OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat101.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_mat101 ../starter/source/materials/mat/mat101/hm_read_mat101.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_mat ../starter/source/materials/mat/hm_read_mat.F90
27!||--- calls -----------------------------------------------------
28!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.f
29!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
30!|| init_mat_keyword ../starter/source/materials/mat/init_mat_keyword.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../starter/share/message_module/message_mod.F
33!|| submodel_mod ../starter/share/modules1/submodel_mod.F
34!||====================================================================
35 SUBROUTINE hm_read_mat101 (
36 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,IFUNC ,
37 . MAXFUNC ,NFUNC ,PARMAT ,UNITAB ,IMATVIS ,
38 . PM ,LSUBMODEL,MAT_ID ,TITR ,MATPARAM )
39C----------------------------------------------------------------
40C MODULES
41C----------------------------------------------------------------
42 USE submodel_mod
43 USE unitab_mod
44 USE message_mod
45 USE matparam_def_mod
47C----------------------------------------------------------------
48C I M P L I C I T T Y P E S
49C----------------------------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "units_c.inc"
55#include "param_c.inc"
56C----------------------------------------------------------------
57C D U M M Y A R G U M E N T S
58C----------------------------------------------------------------
59 my_real, DIMENSION(MAXUPARAM) ,INTENT(INOUT) :: uparam
60 INTEGER, INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC
61 INTEGER, INTENT(INOUT) :: NUPARAM,NUVAR,IMATVIS,
62 . ifunc(maxfunc),nfunc
63 my_real, DIMENSION(100),INTENT(INOUT) :: parmat
64 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
65 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: PM
66 TYPE(submodel_data), DIMENSION(*),INTENT(IN) :: LSUBMODEL
67 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
68 TYPE(matparam_struct_) ,INTENT(INOUT) :: MATPARAM
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 my_real
73 . rho0,dr,deref,de1,dpoiss,dve1,dve2,dedot_ref,
74 . gamv_ref, alphap, dq, dv, dm, dc3, dc4, calphak1, calphak2, h0,
75 . des1_0, dc5, dc6, dc7, dc8, dc9, dc10, h1, des2_0, dc11, dc12,
76 . dc13, dc14, dc1, dc2, dlambda, rhoa, cv, theta0, beta0, btheta0,
77 . factor, temp_opt, thetai, thetag,stifint,
78 . c1,c2,c3,c4,c5,mu,lm,d,beta,facpl, scale1, scale2
79 CHARACTER(LEN=NCHARFIELD) ::STRING,KEYNET
80 CHARACTER(LEN=NCHARTITLE) :: KEY
81 INTEGER ILAW
82C
83 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
84C=======================================================================
85C=============================================
86 is_encrypted = .false.
87 is_available = .false.
88 ilaw = 101
89c------------------------------------------
90 CALL hm_option_is_encrypted(is_encrypted)
91c------------------------------------------
92card1 - Density
93 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
94card2
95 CALL hm_get_floatv('MAT_E' ,deref ,is_available, lsubmodel, unitab)
96 CALL hm_get_floatv('MAT_ALPHA1' ,de1 ,is_available, lsubmodel, unitab)
97 CALL hm_get_floatv('MAT_NU' ,dpoiss ,is_available, lsubmodel, unitab)
98 CALL hm_get_floatv('VE1' ,dve1 ,is_available, lsubmodel, unitab)
99card3
100 CALL hm_get_floatv('VE2' ,dve2 ,is_available, lsubmodel, unitab)
101 CALL hm_get_floatv('EPSILONref' ,dedot_ref ,is_available, lsubmodel, unitab)
102 CALL hm_get_floatv('GAMMA0' ,gamv_ref ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv('ALPHA_p' ,alphap ,is_available, lsubmodel, unitab)
104card4
105 CALL hm_get_floatv('DELTAH' ,dq ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv('MAT_VOL' ,dv ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv('MAT_M' ,dm ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv('MAT_C3' ,dc3 ,is_available, lsubmodel, unitab)
109card5
110 CALL hm_get_floatv('MAT_C4' ,dc4 ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv('ALPHAK1' ,calphak1 ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv('ALPHAK2' ,calphak2 ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv('MAT_HARD' ,h0 ,is_available, lsubmodel, unitab)
114card6
115 CALL hm_get_floatv('ZETA1i' ,des1_0 ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv('MAT_C5' ,dc5 ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv('MAT_C6' ,dc6 ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv('MAT_C7' ,dc7 ,is_available, lsubmodel, unitab)
119card7
120 CALL hm_get_floatv('MAT_C8' ,dc8 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv('MAT_C9' ,dc9 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv('MAT_C_10' ,dc10 ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv('MAT_HARD1' ,h1 ,is_available, lsubmodel, unitab)
124card8
125 CALL hm_get_floatv('ZETA2i' ,des2_0 ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv('MAT_C_11' ,dc11 ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv('MAT_C_12' ,dc12 ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv('MAT_C13' ,dc13 ,is_available, lsubmodel, unitab)
129card10
130 CALL hm_get_floatv('MAT_C14' ,dc14 ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv('MAT_C1' ,dc1 ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv('MAT_C2' ,dc2 ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv('LAMBDAL' ,dlambda ,is_available, lsubmodel, unitab)
134card11
135 CALL hm_get_floatv('MAT_RHO_REF' ,rhoa ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv('MAT_CV_REF' ,cv ,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv('MAT_TREF' ,theta0 ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv('ALPHA_TH' ,beta0 ,is_available, lsubmodel, unitab)
139card12
140 CALL hm_get_floatv('THETA_GLASS' ,thetag ,is_available, lsubmodel, unitab)
141 CALL hm_get_floatv('Omega' ,factor ,is_available, lsubmodel, unitab)
142 CALL hm_get_floatv('THETA_FLAG' ,temp_opt ,is_available, lsubmodel, unitab)
143 CALL hm_get_floatv('HEAT_T0' ,thetai ,is_available, lsubmodel, unitab)
144
145 dr = 8.314 ! J/K/mol
146
147 dr = dr * unitab%FAC_T_WORK* unitab%FAC_T_WORK / unitab%FAC_M_WORK /unitab%FAC_L_WORK / unitab%FAC_L_WORK
148 nuparam = 42
149C-----------------------------------------------
150C USER MATERIAL PARAMETERS DEFINITION
151C-----------------------------------------------
152
153 uparam(1) = deref
154 uparam(2) = de1
155 uparam(3) = dpoiss
156 uparam(4) = dve1
157 uparam(5) = dve2
158 uparam(6) = dedot_ref
159 uparam(7) = gamv_ref
160 uparam(8) = alphap
161 uparam(9) = dq
162 uparam(10) = dv
163 uparam(11) = dm
164 uparam(12) = dc3
165 uparam(13) = dc4
166 uparam(14) = calphak1
167 uparam(15) = calphak2
168 uparam(16) = h0
169 uparam(17) = des1_0
170 uparam(18) = dc5
171 uparam(19) = dc6
172 uparam(20) = dc7
173 uparam(21) = dc8
174 uparam(22) = dc9
175 uparam(23) = dc10
176 uparam(24) = h1
177 uparam(25) = des2_0
178 uparam(26) = dc11
179 uparam(27) = dc12
180 uparam(28) = dc13
181 uparam(29) = dc14
182 uparam(30) = dc1
183 uparam(31) = dc2
184 uparam(32) = dlambda
185 uparam(33) = rhoa
186 uparam(34) = cv
187 uparam(35) = theta0
188 uparam(36) = beta0
189 !UPARAM(37) = BTHETA0
190 uparam(38) = factor
191 uparam(39) = temp_opt
192 uparam(40) = thetai
193 uparam(41) = thetag
194 uparam(42) = dr
195C-------------------------------------------------
196C NUMBER OF USER ELEMENT VARIABLES AND CURVES
197C-------------------------------------------------
198C
199 nuvar = 42
200 nfunc = 0
201C used for interface (solid+shell)
202 stifint = deref*(1-dpoiss)/(1+dpoiss)/(1-2*dpoiss)
203 parmat(1) = stifint/three !RBULK
204 parmat(2) = stifint
205 parmat(3) = dpoiss
206c
207 ! PM table
208 pm(1) = rho0
209 pm(89) = rho0
210 pm(100) = parmat(1)
211 imatvis = 1
212c-----------------
213 CALL init_mat_keyword(matparam,"INCOMPRESSIBLE")
214 CALL init_mat_keyword(matparam,"TOTAL")
215 CALL init_mat_keyword(matparam,"HOOK")
216 ! Properties compatibility
217 CALL init_mat_keyword(matparam,"SOLID_ISOTROPIC")
218c-----------------------------------------------------------------------
219 WRITE(iout,900) trim(titr),mat_id,ilaw
220 WRITE(iout,1000)
221 IF (is_encrypted) THEN
222 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
223 ELSE
224 WRITE(iout,1050) rho0
225 WRITE(iout,1100) deref, de1, dpoiss, dve1, dve2, dedot_ref,
226 . gamv_ref, alphap, dq, dv, dm, dc3, dc4, calphak1, calphak2, h0,
227 . des1_0, dc5, dc6, dc7, dc8, dc9, dc10, h1, des2_0, dc11, dc12,
228 . dc13, dc14, dc1, dc2, dlambda, rhoa, cv, theta0, beta0,
229 . factor, temp_opt, thetai, thetag
230 ENDIF
231C
232 900 FORMAT(/
233 & 5x,a,/,
234 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
235 & 5x,'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
236 1000 FORMAT(
237 & 5x,' MATERIAL MODEL : VISCOPLASTIC MODEL - BOUVARD ',/,
238 & 5x,' --------------------------------------------- ',/)
239 1050 FORMAT(
240 & 5x,'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
241 1100 FORMAT(
242 & 5x,'DEREF . . . . . . . . . . . . . . . . .=',1pg20.13/
243 & 5x,'DE1 . . . . . . . . . . . . . . . . . .=',1pg20.13/
244 & 5x,'DPOISS. . . . . . . . . . . . . . . . .=',1pg20.13/
245 & 5x,'DVE1. . . . . . . . . . . . . . . . . .=',1pg20.13/
246 & 5x,'dve2. . . . . . . . . . . . . . . . . .=',1PG20.13/
247 & 5X,'dedot_ref . . . . . . . . . . . . . . .=',1PG20.13/
248 & 5X,'gamv_ref. . . . . . . . . . . . . . . .=',1PG20.13/
249 & 5X,'alphap. . . . . . . . . . . . . . . . .=',1PG20.13/
250 & 5X,'dq. . . . . . . . . . . . . . . . . . .=',1PG20.13/
251 & 5X,'dv. . . . . . . . . . . . . . . . . . .=',1PG20.13/
252 & 5X,'dm. . . . . . . . . . . . . . . . . . .=',1PG20.13/
253 & 5X,'dc3 . . . . . . . . . . . . . . . . . .=',1PG20.13/
254 & 5X,'dc4 . . . . . . . . . . . . . . . . . .=',1PG20.13/
255 & 5X,'calphak1. . . . . . . . . . . . . . . .=',1PG20.13/
256 & 5X,'calphak2. . . . . . . . . . . . . . . .=',1PG20.13/
257 & 5X,'h0. . . . . . . . . . . . . . . . . . .=',1PG20.13/
258 & 5X,'des1_0. . . . . . . . . . . . . . . . .=',1PG20.13/
259 & 5X,'dc5 . . . . . . . . . . . . . . . . . .=',1PG20.13/
260 & 5X,'dc6 . . . . . . . . . . . . . . . . . .=',1PG20.13/
261 & 5X,'dc7 . . . . . . . . . . . . . . . . . .=',1pg20.13/
262 & 5x,'DC8 . . . . . . . . . . . . . . . . . .=',1pg20.13/
263 & 5x,'DC9 . . . . . . . . . . . . . . . . . .=',1pg20.13/
264 & 5x,'DC10. . . . . . . . . . . . . . . . . .=',1pg20.13/
265 & 5x,'h1. . . . . . . . . . . . . . . . . . .=',1PG20.13/
266 & 5X,'des2_0. . . . . . . . . . . . . . . . .=',1PG20.13/
267 & 5X,'dc11. . . . . . . . . . . . . . . . . .=',1PG20.13/
268 & 5X,'dc12. . . . . . . . . . . . . . . . . .=',1PG20.13/
269 & 5X,'dc13. . . . . . . . . . . . . . . . . .=',1PG20.13/
270 & 5X,'dc14. . . . . . . . . . . . . . . . . .=',1PG20.13/
271 & 5X,'dc1 . . . . . . . . . . . . . . . . . .=',1PG20.13/
272 & 5X,'dc2 . . . . . . . . . . . . . . . . . .=',1PG20.13/
273 & 5X,'dlambda . . . . . . . . . . . . . . . .=',1PG20.13/
274 & 5X,'rhoa. . . . . . . . . . . . . . . . . .=',1PG20.13/
275 & 5X,'cv. . . . . . . . . . . . . . . . . . .=',1PG20.13/
276 & 5X,'theta0. . . . . . . . . . . . . . . . .=',1PG20.13/
277 & 5X,'beta0 . . . . . . . . . . . . . . . . .=',1PG20.13/
278 & 5X,'factor. . . . . . . . . . . . . . . . .=',1PG20.13/
279 & 5X,'temp_opt. . . . . . . . . . . . . . . .=',1PG20.13/
280 & 5X,'thetai. . . . . . . . . . . . . . . . .=',1PG20.13/
281 & 5X,'thetag. . . . . . . . . . . . . . . . .=',1PG20.13/)
282
283C
284 RETURN
285 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_read_mat101(uparam, maxuparam, nuparam, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, imatvis, pm, lsubmodel, mat_id, titr, matparam)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
integer, parameter ncharfield
program starter
Definition starter.F:39