OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat63.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_mat63 (uparam, maxuparam, nuparam, nuvar, parmat, mat_id, pm, titr, unitab, lsubmodel, mtag, matparam)

Function/Subroutine Documentation

◆ hm_read_mat63()

subroutine hm_read_mat63 ( intent(inout) uparam,
integer, intent(in) maxuparam,
integer, intent(inout) nuparam,
integer, intent(inout) nuvar,
intent(inout) parmat,
integer, intent(in) mat_id,
intent(inout) pm,
character(len=nchartitle), intent(in) titr,
type(unit_type_), intent(in) unitab,
type(submodel_data), dimension(*), intent(in) lsubmodel,
type(mlaw_tag_), intent(inout) mtag,
type(matparam_struct_), intent(inout) matparam )

Definition at line 38 of file hm_read_mat63.F.

41C-----------------------------------------------
42C ROUTINE DESCRIPTION :
43C ===================
44C READ MAT LAW63 WITH HM READER
45C-----------------------------------------------
46C DUMMY ARGUMENTS DESCRIPTION:
47C ===================
48C UNITAB UNITS ARRAY
49C MAT_ID MATERIAL ID(INTEGER)
50C TITR MATERIAL TITLE
51C LSUBMODEL SUBMODEL STRUCTURE
52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE elbuftag_mod
56 USE message_mod
57 USE submodel_mod
58 USE matparam_def_mod
60 USE unitab_mod
62C-----------------------------------------------
63C I m p l i c i t T y p e s
64C-----------------------------------------------
65#include "implicit_f.inc"
66C-----------------------------------------------
67C C o m m o n B l o c k s
68C-----------------------------------------------
69#include "units_c.inc"
70#include "param_c.inc"
71C-----------------------------------------------
72C D u m m y A r g u m e n t s
73C-----------------------------------------------
74 INTEGER, INTENT(IN) :: MAT_ID,MAXUPARAM
75 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
76 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
77 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
78 INTEGER, INTENT(INOUT) :: NUPARAM,NUVAR
79 my_real, DIMENSION(MAXUPARAM) ,INTENT(INOUT) :: uparam
80 my_real, DIMENSION(100),INTENT(INOUT) :: parmat
81 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
82 TYPE(MLAW_TAG_), INTENT(INOUT) :: MTAG
83 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
84C-----------------------------------------------
85C L o c a l V a r i a b l e s
86C-----------------------------------------------
87 my_real
88 . e,nu,cp,a, b, q,c,d,p, ahs,bhs,m,n,k1,k2,dh,vm0,eps0,
89 . c1,g,temp,hl,coef,rho0,rhor
90 INTEGER ILAW
91 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
92C=======================================================================
93 is_encrypted = .false.
94 is_available = .false.
95c
96 ilaw = 63
97c------------------------------------------
98 CALL hm_option_is_encrypted(is_encrypted)
99c------------------------------------------
100C
101 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
102 CALL hm_get_floatv('Refer_Rho',rhor ,is_available, lsubmodel, unitab)
103Card1
104 CALL hm_get_floatv('MAT_E' ,e ,is_available, lsubmodel, unitab)
105 CALL hm_get_floatv('MAT_NU' ,nu ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv('CP' ,cp ,is_available, lsubmodel, unitab)
107Card2
108 CALL hm_get_floatv('MAT_A' ,a ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv('MAT_B' ,b ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv('Q' ,q ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv('MAT_C' ,c ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv('MAT_D' ,d ,is_available, lsubmodel, unitab)
113Card3
114 CALL hm_get_floatv('MAT_P0' ,p ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv('A_HS' ,ahs ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv('B_HS' ,bhs ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv('MAT_M' ,m ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv('MAT_N' ,n ,is_available, lsubmodel, unitab)
119Card4
120 CALL hm_get_floatv('K1' ,k1 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv('K2' ,k2 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv('delta_H' ,dh ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv('Kvm' ,vm0 ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv('Epsilon_0',eps0 ,is_available, lsubmodel, unitab)
125Card5
126 CALL hm_get_floatv('MAT_T0' ,temp ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv('MAT_HL' ,hl ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv('MAT_ETA' ,coef ,is_available, lsubmodel, unitab)
129C
130c-----------------------------------------------------------------------
131c Default values
132c-----------------------------------------------------------------------
133 IF(coef <= zero .OR. coef > one) coef = one
134 IF(vm0 == zero .OR. vm0 >= one) vm0=em20
135 IF (cp == zero) THEN
136 cp = zero
137 ELSE
138 cp = one/cp
139 ENDIF
140C
141 IF (b == 0) b = -one
142 IF ((b+1)/b>=p) THEN
143 CALL ancmsg(msgid=301,
144 . msgtype=msgerror,
145 . anmode=aninfo,
146 . i1=63,
147 . i2=mat_id,
148 . c1=titr)
149 END IF
150c-----------------------------------------------------------------------
151 g = half*e/(one+nu)
152 c1 = e/three/(one - two*nu)
153c-----------------------------------------------------------------------
154 uparam(1) = e
155 uparam(2) = e/(one - nu*nu)
156 uparam(3) = nu*uparam(2)
157 uparam(4) = g
158 uparam(5) = nu
159 uparam(6) = a
160 uparam(7) = b
161 uparam(8) = q
162 uparam(9) = c
163 uparam(10) = d
164 uparam(11) = p
165 uparam(12) = ahs
166 uparam(13) = bhs
167 uparam(14) = m
168 uparam(15) = n
169 uparam(16) = k1
170 uparam(17) = k2
171 uparam(18) = dh
172 uparam(19) = vm0
173 uparam(20) = eps0
174 uparam(21) = cp
175 uparam(22) = temp
176 uparam(23) = hl
177 uparam(24) = coef
178c-----------------------------------------------------------------------
179 nuparam = 24
180 nuvar = 4
181c-----------------------------------------------------------------------
182 parmat(1) = c1
183 parmat(2) = e
184 parmat(3) = nu
185C Formulation for solid elements time step computation.
186 parmat(16) = 2
187 parmat(17) = (one - two*nu)/(one - nu) ! == TWO*G/(C1+FOUR_OVER_3*G)
188c-----------------------------------------------------------------------
189 pm(1) = rhor
190 pm(89) = rho0
191 mtag%G_PLA = 1
192 mtag%L_PLA = 1
193c-----------------------------------------------------------------------
194 ! Properties compatibility
195 CALL init_mat_keyword(matparam,"SHELL_ISOTROPIC")
196c-----------------------------------------------------------------------
197c--------------------------------------------------
198c Starter output
199c--------------------------------------------------
200 WRITE(iout,1000) trim(titr),mat_id,ilaw
201 WRITE(iout,1100)
202 IF (is_encrypted) THEN
203 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
204 ELSE
205 WRITE(iout,1200) rho0
206 WRITE(iout,1300) e,nu,one/cp
207 WRITE(iout,1400) a,b,q,c,d
208 WRITE(iout,1500) p,ahs,bhs,m,n
209 WRITE(iout,1600) k1,k2,dh,vm0,eps0
210 WRITE(iout,1700) temp,hl,coef
211 ENDIF
212c-----------------------------------------------------------------------
213 1000 FORMAT(/
214 & 5x,a,/,
215 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . . . .=',i10/,
216 & 5x,'MATERIAL LAW . . . . . . . . . . . . . . . .=',i10/)
217 1100 FORMAT
218 &(5x,'MATERIAL : TRIP-STEELS PLASTIC LAW',/,
219 & 5x,'-----------------------------------',/)
220 1200 FORMAT(
221 & 5x,'INITIAL DENSITY . . . . . . . . . . . . . .=',1pg20.13/)
222 1300 FORMAT(
223 & 5x,'YOUNG''S MODULUS . . . . . . . . . . . . . .=',1pg20.13/,
224 & 5x,'POISSON''S RATIO . . . . . . . . . . . . . .=',1pg20.13/,
225 & 5x,'THERMAL MASSIC CAPACITY . . . . . . . . . .=',1pg20.13/)
226 1400 FORMAT(
227 & 5x,'PARAMETER 1 (A) . . . . . . . . . . . . . .=',1pg20.13/,
228 & 5x,'PARAMETER 2 (B) . . . . . . . . . . . . . .=',1pg20.13/,
229 & 5x,'PARAMETER 3 (Q) . . . . . . . . . . . . . .=',1pg20.13/,
230 & 5x,'PARAMETER 4 (C) . . . . . . . . . . . . . .=',1pg20.13/,
231 & 5x,'PARAMETER 5 (D) . . . . . . . . . . . . . .=',1pg20.13/)
232 1500 FORMAT(
233 & 5x,'PARAMETER 6 (P) . . . . . . . . . . . . . .=',1pg20.13/,
234 & 5x,'PARAMETER 7 (AHS) . . . . . . . . . . . . .=',1pg20.13/,
235 & 5x,'PARAMETER 8 (BHS) . . . . . . . . . . . . .=',1pg20.13/,
236 & 5x,'PARAMETER 9 (M) . . . . . . . . . . . . . .=',1pg20.13/,
237 & 5x,'PARAMETER 10 (N) . . . . . . . . . . . . . .=',1pg20.13/)
238 1600 FORMAT(
239 & 5x,'PARAMETER 11 (K1) . . . . . . . . . . . . .=',1pg20.13/,
240 & 5x,'PARAMETER 12 (K2). . . . . . . . . . . . . .=',1pg20.13/,
241 & 5x,'PARAMETER 13 (DH). . . . . . . . . . . . . .=',1pg20.13/,
242 & 5x,'INITIAL MARTENSITE VOLUME FRACTION . . . . .=',1pg20.13/,
243 & 5x,'INITIAL PLASTIC STRAIN . . . . . . . . . . .=',1pg20.13/)
244 1700 FORMAT(
245 & 5x,'INITIAL TEMPERATURE . . . . . . . . . . . .=',1pg20.13/
246 & 5x,'LATENT HEAT OF MARTENSITE . . . . . . . . .=',1pg20.13/
247 & 5x,'TAYLOR-QUINNEY COEFFICIENT . . . . . . . . .=',1pg20.13/)
#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 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:889