OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat84.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_mat84 (uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, itable, maxtabl, ntable, pm, ipm, matparam)

Function/Subroutine Documentation

◆ hm_read_mat84()

subroutine hm_read_mat84 ( dimension(maxuparam), intent(inout) uparam,
integer, intent(inout) maxuparam,
integer, intent(inout) nuparam,
integer, intent(inout) israte,
integer, intent(inout) imatvis,
integer, intent(inout) nuvar,
integer, dimension(maxfunc), intent(inout) ifunc,
integer, intent(inout) maxfunc,
integer, intent(inout) nfunc,
dimension(100), intent(inout) parmat,
type (unit_type_), intent(in) unitab,
integer, intent(in) mat_id,
character(len=nchartitle), intent(in) titr,
type(mlaw_tag_), intent(inout) mtag,
type(submodel_data), dimension(*), intent(in) lsubmodel,
integer, dimension(maxtabl), intent(inout) itable,
integer, intent(in) maxtabl,
integer, intent(inout) ntable,
dimension(npropm), intent(inout) pm,
integer, dimension(npropmi), intent(inout) ipm,
type(matparam_struct_), intent(inout) matparam )

Definition at line 36 of file hm_read_mat84.F.

41C-----------------------------------------------
42C D e s c r i p t i o n
43C-----------------------------------------------
44C READ MAT LAW84
45C
46C DUMMY ARGUMENTS DESCRIPTION:
47C ===================
48C
49C NAME DESCRIPTION
50C
51C PM MATERIAL ARRAY(REAL)
52C UNITAB UNITS ARRAY
53C MAT_ID MATERIAL ID(INTEGER)
54C TITR MATERIAL TITLE
55C LSUBMODEL SUBMODEL STRUCTURE
56C
57C-----------------------------------------------
58C M o d u l e s
59C-----------------------------------------------
60 USE unitab_mod
61 USE elbuftag_mod
62 USE message_mod
63 USE submodel_mod
64 USE matparam_def_mod
66C-----------------------------------------------
67C I m p l i c i t T y p e s
68C-----------------------------------------------
69#include "implicit_f.inc"
70C-----------------------------------------------
71C C o m m o n B l o c k s
72C-----------------------------------------------
73#include "units_c.inc"
74#include "param_c.inc"
75C-----------------------------------------------
76C D u m m y A r g u m e n t s
77C-----------------------------------------------
78 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
79 my_real, INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
80 INTEGER, INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
81 . ,NTABLE,ITABLE(MAXTABL)
82 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
83 INTEGER,INTENT(IN) :: MAT_ID,MAXTABL
84 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
85 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
86 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
87C-----------------------------------------------
88C L o c a l V a r i a b l e s
89C-----------------------------------------------
90 INTEGER I,ILAW
92 . young,yield,p12,p22,p33,qvoce,bvoce,nu,
93 . g12,g22,g33,k0,alpha,an,eps0,nn,cepsp,deps0,
94 . eta,cp,tini,tref,tmelt,mtemp,depsad,
95 . afrac,bfrac,gama,cfrac,nfrac
96 my_real :: rho0, rhor
97 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
98C-----------------------------------------------
99C S o u r c e L i n e s
100C-----------------------------------------------
101 is_encrypted = .false.
102 is_available = .false.
103!
104 mtag%G_TEMP = 1
105 mtag%L_TEMP = 1
106 mtag%G_EPSD = 1
107 mtag%L_EPSD = 1
108 mtag%G_PLA = 1
109 mtag%L_PLA = 1
110!
111 israte=0
112 imatvis=0
113 ilaw=84
114C
115 CALL hm_option_is_encrypted(is_encrypted)
116 !line+1
117 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
118 !line-2
119 CALL hm_get_floatv('MAT_E' ,young ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv('MAT_NU' ,nu ,is_available, lsubmodel, unitab)
121 !line-3
122 CALL hm_get_floatv('Fcut' ,p12 ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv('MAT_CAP_END' ,p22 ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv('MAT_PC' ,p33 ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv('MAT_PR' ,qvoce ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv('MAT_T0' ,bvoce ,is_available, lsubmodel, unitab)
127 !line-4
128 CALL hm_get_floatv('MAT_c2_t' ,g12 ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv('MAT_A2' ,g22 ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv('MAT_c1_c' ,g33 ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv('MAT_NUt' ,k0 ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv('MAT_VOL' ,alpha ,is_available, lsubmodel, unitab)
133 !line-5
134 CALL hm_get_floatv('FScale11' ,an ,is_available, lsubmodel, unitab)
135 CALL hm_get_floatv('FScale22' ,eps0 ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv('FScale33' ,nn ,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv('FScale12' ,cepsp ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv('FScale23' ,deps0 ,is_available, lsubmodel, unitab)
139 !line-6
140 CALL hm_get_floatv('scale1' ,eta ,is_available, lsubmodel, unitab)
141 CALL hm_get_floatv('scale2' ,cp ,is_available, lsubmodel, unitab)
142 CALL hm_get_floatv('scale3' ,tini ,is_available, lsubmodel, unitab)
143 CALL hm_get_floatv('scale4' ,tref ,is_available, lsubmodel, unitab)
144 CALL hm_get_floatv('scale5' ,tmelt ,is_available, lsubmodel, unitab)
145 !line-7
146 CALL hm_get_floatv('FScale11_2' ,mtemp ,is_available, lsubmodel, unitab)
147 CALL hm_get_floatv('FScale22_2' ,depsad ,is_available, lsubmodel, unitab)
148 !unit
149 !========== DEFAULT VALUES=============!
150 rhor=rho0
151 IF(rhor==zero)rhor=rho0
152 pm(1) =rhor
153 pm(89)=rho0
154!
155 afrac=zero
156 nfrac=zero
157 bfrac=zero
158 cfrac=zero
159 gama=zero
160
161C
162 IF(p12 == zero )p12 = -half
163 IF(g12 == zero )g12 = p12
164C
165 IF(p22 == zero )p22 = one
166 IF(g22 == zero )g22 = p22
167C
168 IF(p33 == zero )p33 = three
169 IF(g33 == zero )g33 = p33
170C
171 IF (deps0 == zero) deps0 = infinity ! no strain rate effect
172c
173 uparam(1) = young
174 uparam(2) = nu
175
176 uparam(3) = p12
177 uparam(4) = p22
178 uparam(5) = p33
179 uparam(6) = g12
180 uparam(7) = g22
181 uparam(8) = g33
182
183 uparam(9) = qvoce
184 uparam(10)= bvoce
185 uparam(11)= k0
186 uparam(12)= alpha
187
188 uparam(13)= an
189 uparam(14)= eps0
190 uparam(15)= nn
191 uparam(16)= cepsp
192 uparam(17)= deps0
193
194 uparam(18)= eta
195 uparam(19)= cp
196 uparam(20)= tini
197 uparam(21)= tref
198 uparam(22)= tmelt
199 uparam(23)= mtemp
200 uparam(24)= depsad
201
202 uparam(25) =afrac
203 uparam(26) =bfrac
204 uparam(27) =gama
205 uparam(28) =cfrac
206 uparam(29) =nfrac
207C
208 nuvar = 4
209 nuparam = 29
210 parmat(1) = young/three/(one - two*nu)
211 parmat(2) = young
212 parmat(3) = nu
213C Formulation for solid elements time step computation.
214 parmat(16) = 2
215 parmat(17) = (one - two*nu)/(one - nu) ! == TWO*G/(C1+FOUR_OVER_3*G)
216C
217C------------------------------
218 ! activate heat source calculation in material
219 matparam%HEAT_FLAG = 1
220!
221 ! MATPARAM keywords
222 CALL init_mat_keyword(matparam,"HOOK")
223 CALL init_mat_keyword(matparam,"ORTHOTROPIC")
224 ! Properties compatibility
225 CALL init_mat_keyword(matparam,"SOLID_ORTHOTROPIC")
226C------------------------------
227 WRITE(iout,1001) trim(titr),mat_id,ilaw
228 WRITE(iout,1000)
229 IF(is_encrypted)THEN
230 WRITE(iout,'(5x,a,//)')'confidential data'
231 ELSE
232 WRITE(IOUT,1002)RHO0
233 WRITE(IOUT,1100) YOUNG,NU,P12,P22,P33,G12,G22,G33
234 WRITE(IOUT,1200) QVOCE,BVOCE,K0,ALPHA
235 WRITE(IOUT,1300) AN,NN,EPS0,CEPSP,DEPS0
236 WRITE(IOUT,1400) ETA,CP,TINI,TREF,TMELT,MTEMP,DEPSAD
237 ENDIF
238C
239c-----------
240 1000 FORMAT
241 & (5X,20H ------------------ ,/,
242 & 5X,20H ------------------ ,//)
243 1001 FORMAT(
244 & 5X,A,/,
245 & 5X,'material number . . . . . . . . . . . .=',I10/,
246 & 5X,'material law. . . . . . . . . . . . . .=',I10/)
247 1002 FORMAT(
248 & 5X,'initial density . . . . . . . . . . . .=',1PG20.13/)
249 1100 FORMAT(
250 & 5X,'young''s modulus. . . . . . . . . . . . . . =',E12.4/
251 & 5X,'poisson''s ratio . . . . . . . . . . . . . . =',E12.4/
252 & 5X,'yield PARAMETER p12 . . . . . . . . . . . . =',E12.4/
253 & 5X,'yield PARAMETER p22. . . . . . . . . . . . . =',E12.4/
254 & 5X,'yield PARAMETER p33. . . . . . . . . . . . . =',E12.4/
255 & 5X,'flow rule PARAMETER g12 . . . . . . . . . . .=',E12.4/
256 & 5X,'flow rule PARAMETER g22. . . . . . . . . . . =',E12.4/
257 & 5X,'flow rule PARAMETER g33. . . . . . . . . . . =',E12.4)
258 1200 FORMAT(
259 & 5X,'yield voce PARAMETER q. . . . . . . . . . . .=',E12.4/
260 & 5X,'yield voce PARAMETER b . . . . . . . . . . . =',E12.4/
261 & 5X,'yield voce PARAMETER k0. . . . . . . . . . . =',E12.4/
262 & 5X,'yield global PARAMETER alpha . . . . . . . . =',E12.4)
263 1300 FORMAT(//
264 & 5X,'yield swift PARAMETER a. . . . . . . . . . . =',E12.4/
265 & 5X,'yield swift exponent n . . . . . . . . . . . =',E12.4/
266 & 5X,'yield swift reference strain . . . . . . . . =',E12.4/
267 & 5X,'strain rate coeffiicient c . . . . . . . . . =',E12.4/
268 & 5X,'reference strain rate . .. . . . . . . . . . =',E12.4)
269 1400 FORMAT(//
270 & 5X,'taylor-quninney coefficient . . . . . . . . .=',E12.4/
271 & 5X,'specific heat. . . . . . . . . . . . . . . . =',E12.4/
272 & 5X,'initial temperature. . . . . . . . . . . . . =',E12.4/
273 & 5X,'reference temperature . . . . . . . . . . . .=',E12.4/
274 & 5X,'melting temperature . . . . . . . . . . . . .=',E12.4/
275 & 5X,'temperature exponent. . . . . . . . . . . . .=',E12.4/
276 & 5X,'optimization strain rate coefficient . . . . =',E12.4)
277c-----------
278 RETURN
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle