OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat49.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_mat49 (lsubmodel, mtag, unitab, ipm, pm, mat_id, titr, israte, matparam)

Function/Subroutine Documentation

◆ hm_read_mat49()

subroutine hm_read_mat49 ( type(submodel_data), dimension(nsubmod), intent(in) lsubmodel,
type(mlaw_tag_), intent(inout) mtag,
type(unit_type_), intent(in) unitab,
integer, dimension(npropmi), intent(inout) ipm,
intent(inout) pm,
integer, intent(inout) mat_id,
character(len=nchartitle), intent(in) titr,
integer, intent(inout) israte,
type(matparam_struct_), intent(inout) matparam )

Definition at line 38 of file hm_read_mat49.F.

41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE elbuftag_mod
45 USE message_mod
46 USE submodel_mod
47 USE matparam_def_mod
48 USE unitab_mod
50C-----------------------------------------------
51C ROUTINE DESCRIPTION :
52C ===================
53C READ MAT LAW49 WITH HM READER
54C-----------------------------------------------
55C DUMMY ARGUMENTS DESCRIPTION:
56C ===================
57C UNITAB UNITS ARRAY
58C MAT_ID MATERIAL ID(INTEGER)
59C TITR MATERIAL TITLE
60C LSUBMODEL SUBMODEL STRUCTURE
61C-----------------------------------------------
62C I m p l i c i t T y p e s
63C-----------------------------------------------
64#include "implicit_f.inc"
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68#include "units_c.inc"
69#include "param_c.inc"
70C-----------------------------------------------
71C D u m m y A r g u m e n t s
72C-----------------------------------------------
73 INTEGER, INTENT(INOUT) :: MAT_ID
74 INTEGER, INTENT(INOUT) :: ISRATE
75 INTEGER, DIMENSION(NPROPMI) ,INTENT(INOUT) :: IPM
76 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
77 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
78 TYPE(UNIT_TYPE_), INTENT(in) :: UNITAB
79 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD),INTENT(IN) :: LSUBMODEL
80 TYPE(MLAW_TAG_), INTENT(INOUT) :: MTAG
81 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
82C-----------------------------------------------
83C L o c a l V a r i a b l e s
84C-----------------------------------------------
85 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
86 INTEGER IEOS, COUNT
88 . young,nu,sig0,cb,cn,sigm,epsm,t0,tmelt,pmin,
89 . sph,cb1,cb2,ch,cf,g0,bulk,
90 .
91 .
92 .
93 . psh,rho0,rhor
94 CHARACTER*32 :: MTL_MSG
95C-----------------------------------------------
96C S o u r c e L i n e s
97C-----------------------------------------------
98 count = 0
99 ieos = 0
100 bulk=zero
101
102 bulk = zero
103 psh = zero
104
105 is_encrypted=.false.
106 is_available=.false.
107
108 mtl_msg = ''
109
110 CALL hm_option_is_encrypted(is_encrypted)
111
112 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv('Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
114
115 CALL hm_get_floatv('MAT_E0' ,young ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv('MAT_NU' ,nu ,is_available, lsubmodel, unitab)
117
118 CALL hm_get_floatv('MAT_SIGY' ,sig0 ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv('MAT_BETA' ,cb ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv('MAT_HARD' ,cn ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv('MAT_EPS' ,epsm ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv('MAT_SIG' ,sigm ,is_available, lsubmodel, unitab)
123
124 CALL hm_get_floatv('MAT_T0' ,t0 ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv('MAT_TMELT' ,tmelt ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv('MAT_SPHEAT' ,sph ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv('MAT_PC' ,pmin ,is_available, lsubmodel, unitab)
128
129 CALL hm_get_floatv('MAT_B1' ,cb1 ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv('MAT_B2' ,cb2 ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv('h' ,ch ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv('MAT_F' ,cf ,is_available, lsubmodel, unitab)
133
134 CALL hm_get_intv ('Line_count' ,count ,is_available, lsubmodel)
135
136 !Default EoS
137 ieos = 18 ! Linear EOS is used by default
138 matparam%IEOS = ieos
139 ipm(4) = ieos ! keep this temporarily for output and fluid sections
140
141 IF (pmin==zero) pmin=-ep20
142 IF (rhor==zero) rhor=rho0
143 pm(1) = rhor
144 pm(89)= rho0
145
146 IF(cf < zero) THEN
147 CALL ancmsg(msgid=1513,msgtype=msgerror,anmode=aninfo,i1 = mat_id,c1 = titr)
148 ENDIF
149
150 IF(nu<zero.OR.nu>=half)THEN
151 mtl_msg = "LAW49 (STEINBERG GUINAN)"
152 CALL ancmsg(msgid=1514,msgtype=msgerror,anmode=aninfo,i1=mat_id,c1=mtl_msg,c2=titr)
153 ENDIF
154
155 IF(epsm==zero) epsm = ep20
156 IF(sigm==zero) sigm = ep20
157 IF(tmelt==zero)tmelt = ep20
158 IF(pmin==zero) pmin =-ep20
159 IF(t0==zero) t0 = three100
160 g0 = young /two / (one+nu)
161 bulk=young/(three*(one - two*nu))
162
163 pm(20) = young
164 pm(21) = nu
165 pm(22) = g0
166 pm(24) = nu * young / (one-nu*nu)
167 pm(32) = bulk
168 pm(37) = pmin
169 pm(38) = sig0
170 pm(39) = cb
171 pm(40) = cn
172 pm(41) = epsm
173 pm(42) = sigm
174 pm(43) = cb1
175 pm(44) = cb2
176 pm(45) = ch
177 pm(46) = tmelt
178 pm(69) = sph
179 pm(77) = cf
180 pm(78) = t0
181 pm(79) = t0
182 pm(80) = tmelt
183
184 !Formulation for solid elements time step computation.
185 ipm(252)= 2
186 pm(105) = two*g0/(bulk+four_over_3*g0) ! =(1-2*Nu)/(1-Nu)
187
188 ! MATPARAM keywords
189 CALL init_mat_keyword(matparam,"INCOMPRESSIBLE")
190
191 ! Material compatibility with /EOS option
192 CALL init_mat_keyword(matparam,"EOS")
193
194 ! EOS/Thermo keyword for pressure treatment in elements
195 CALL init_mat_keyword(matparam,"HYDRO_EOS")
196
197 ! Properties compatibility
198 CALL init_mat_keyword(matparam,"SOLID_ISOTROPIC")
199 CALL init_mat_keyword(matparam,"SPH")
200
201 WRITE(iout,1000)
202 IF(is_encrypted)THEN
203 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
204 ELSE
205 WRITE(iout,2001) titr,mat_id,49
206 WRITE(iout,2002) rho0,rhor
207 WRITE(iout,1100)young,sig0,nu,cb,cn,sigm,epsm,t0,tmelt,sph,pmin,cb1,cb2,ch,cf
208 ENDIF
209
210 mtag%G_PLA = 1
211 mtag%G_TEMP = 1
212
213 mtag%L_PLA = 1
214 mtag%L_TEMP = 1
215 mtag%L_EPSD = 1
216C--------------------------------
217 1000 FORMAT(
218 & 5x,' STEINBERG-GUINAN CONSTITUTIVE LAW ',/,
219 & 5x,' ---------------------------------- ',//)
220 1100 FORMAT(
221 & 5x,'INITIAL YOUNG MODULUS . . . . . . . . .=',1pg20.13/
222 & 5x,'INITIAL YIELD STRESS. . . . . . . . . .=',1pg20.13/
223 & 5x,'POISSON RATIO . . . . . . . . . . . . .=',1pg20.13/
224 & 5x,'HARDENING COEFFICIENT . . . . . . . . .=',1pg20.13/
225 & 5x,'HARDENING EXPONENT. . . . . . . . . . .=',1pg20.13/
226 & 5x,'MAXIMUM STRESS. . . . . . . . . . . . .=',1pg20.13/
227 & 5x,'MAXIMUM STRAIN. . . . . . . . . . . . .=',1pg20.13/
228 & 5x,'INITIAL TEMPERATURE . . . . . . . . . .=',1pg20.13/
229 & 5x,'MELTING TEMPERATURE . . . . . . . . . .=',1pg20.13/
230 & 5x,'SPECIFIC HEAT . . . . . . . . . . . . .=',1pg20.13/
231 & 5x,'MINIMAL PRESSURE. . . . . . . . . . . .=',1pg20.13/
232 & 5x,'B1 COEFFICIENT. . . . . . . . . . . . .=',1pg20.13/
233 & 5x,'b2 coefficient. . . . . . . . . . . . .=',1PG20.13/
234 & 5X,'h coefficient . . . . . . . . . . . . .=',1PG20.13/
235 & 5X,'f coefficient . . . . . . . . . . . . .=',1PG20.13//)
236C-----------
237 2001 FORMAT(/
238 & 5X,A,/,
239 & 5X,' material number . . . . . . . . . . . .=',I10/,
240 & 5X,' material law. . . . . . . . . . . . . .=',I10/)
241 2002 FORMAT(
242 & 5X,' initial density . . . . . . . . . . . .=',1PG20.13/,
243 & 5X,' reference density . . . . . . . . . . .=',1PG20.13/)
244 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895