OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat94.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_mat94 (uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, ipm, matparam)

Function/Subroutine Documentation

◆ hm_read_mat94()

subroutine hm_read_mat94 ( 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,
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_mat94.F.

40C-----------------------------------------------
41C D e s c r i p t i o n
42C-----------------------------------------------
43C READ MAT LAW92 WITH HM READER ( TO BE COMPLETED )
44C
45C DUMMY ARGUMENTS DESCRIPTION:
46C ===================
47C
48C NAME DESCRIPTION
49C
50C PM MATERIAL ARRAY(REAL)
51C UNITAB UNITS ARRAY
52C ID MATERIAL ID(INTEGER)
53C TITR MATERIAL TITLE
54C LSUBMODEL SUBMODEL STRUCTURE
55C
56C-----------------------------------------------
57C M o d u l e s
58C-----------------------------------------------
59 USE unitab_mod
60 USE elbuftag_mod
61 USE message_mod
62 USE submodel_mod
63 USE matparam_def_mod
65C-----------------------------------------------
66C I m p l i c i t T y p e s
67C-----------------------------------------------
68#include "implicit_f.inc"
69C-----------------------------------------------
70C C o m m o n B l o c k s
71C-----------------------------------------------
72#include "units_c.inc"
73#include "param_c.inc"
74C-----------------------------------------------
75C D u m m y A r g u m e n t s
76C-----------------------------------------------
77 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
78 my_real, INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
79 INTEGER, INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
80 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
81 INTEGER,INTENT(IN) :: MAT_ID
82 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
83 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
84 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
85C-----------------------------------------------
86C L o c a l V a r i a b l e s
87C-----------------------------------------------
88 INTEGER ID,IDAM,ILAW
89 my_real e,nu,g,mu,rbulk,c10,c20,c30,d1,d2,d3
90 CHARACTER(LEN=NCHARFIELD) :: STRING
91 my_real :: rho0, rhor
92 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
93C-----------------------------------------------
94C S o u r c e L i n e s
95C-----------------------------------------------
96 is_encrypted = .false.
97 is_available = .false.
98 idam = 0
99 israte = 0
100 imatvis = 1
101 nuvar = 0
102 ilaw = 94
103
104 CALL hm_option_is_encrypted(is_encrypted)
105 !line+1
106 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
107 !! CALL HM_GET_FLOATV('MAT_RHO' ,RHOR ,IS_AVAILABLE, LSUBMODEL, UNITAB)
108 !line-1 Is not active (Blank)
109 !CALL HM_GET_INTV ('Itype' ,ITEST ,IS_AVAILABLE, LSUBMODEL)
110 !CALL HM_GET_INTV ('MAT_FCT_IDI' ,IFUNC(1) ,IS_AVAILABLE, LSUBMODEL)
111 !CALL HM_GET_FLOATV('MAT_NU' ,NU ,IS_AVAILABLE, LSUBMODEL, UNITAB)
112 !line-2
113 CALL hm_get_floatv('LAW94_C01' ,c10 ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv('LAW94_C02' ,c20 ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv('LAW94_C03' ,c30 ,is_available, lsubmodel, unitab)
116 !line-3
117 CALL hm_get_floatv('LAW94_D1' ,d1 ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv('LAW94_D2' ,d2 ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv('LAW94_D3' ,d3 ,is_available, lsubmodel, unitab)
120 !========== DEFAULT VALUES=============!
121 rhor=zero
122 !!IF(RHOR==ZERO)RHOR=RHO0
123 pm(1) =rhor
124 pm(89)=rho0
125
126C
127C Uniaxial - itest = 1
128C equibiaxial - Itest = 2
129c Planar - Itest = 3
130C
131!the proposed one READ(LINE,FMT=FMT_A_I_F)STRING,IFUNC(1),NU
132CSTRING = UNIAXIAL
133CSTRING = EQUIBIAXIAL
134CSTRING = PLANAR
135
136C
137 g = zero
138 rbulk = zero
139 e = zero
140C I
141 IF(d2 /= zero ) d2 = one/d2
142 IF(d3 /= zero ) d3 = one/d3
143C
144 g = two*c10
145 IF(d1 == zero) THEN
146 d2 = zero
147 d3 = zero
148 nu = 0.495
149 rbulk = two_third*g*(one + nu)/(one-two*nu)
150 d1 = rbulk / two ! 1/D1
151 e = two*g*(one + nu)
152 ELSE
153 d1 = one/d1
154 rbulk= two*d1
155 nu = (three*rbulk -two*g)/(three*rbulk + g)/two
156 e = nine*rbulk*g/(three*rbulk + g)
157 ENDIF
158C
159 uparam(1) = g
160 uparam(2) = rbulk
161 uparam(3) = nu
162 uparam(4) = c10
163 uparam(5) = c20
164 uparam(6) = c30
165 uparam(7) = d1
166 uparam(8) = d2
167 uparam(9) = d3
168!! not used UPARAM(10) = ITEST
169C
170 nuparam = 9
171 IF(nuparam>maxuparam)THEN
172 WRITE(iout,*)' ** ERROR : NUPARAM GT MAXUPARAM'
173 WRITE(iout,*)' NUPARAM =',nuparam,
174 . ' MAXUPARAM =',maxuparam
175 ENDIF
176C
177 parmat(1) = rbulk
178 parmat(2) = e
179 parmat(3) = nu
180C
181C Formulation for solid elements time step computation.
182 parmat(16) = 2
183 parmat(17) = two*g/(rbulk + four_over_3*g)
184C
185 imatvis = 1
186 pm(100) = rbulk
187c-----------------
188 CALL init_mat_keyword(matparam,"INCOMPRESSIBLE")
189 CALL init_mat_keyword(matparam,"TOTAL")
190 CALL init_mat_keyword(matparam,"HOOK")
191 ! Properties compatibility
192 CALL init_mat_keyword(matparam,"SOLID_ISOTROPIC")
193c-----------------
194 !========== OUTPUT =============!
195
196 WRITE(iout,1010) trim(titr),mat_id,94
197 WRITE(iout,1000)
198 IF(is_encrypted)THEN
199 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
200 ELSE
201 WRITE(iout,1020)rho0
202! not used
203!! IF (IFUNC(1) > 0) THEN
204!! IF(ITEST == 1) THEN
205!! WRITE(IOUT,1300)IFUNC(1), NU
206!! ELSEIF(ITEST == 2) THEN
207!! WRITE(IOUT,1310)IFUNC(1), NU
208!! ELSEIF(ITEST == 3) THEN
209!! WRITE(IOUT,1320)IFUNC(1), NU
210!! ENDIF
211!! ELSE
212 WRITE(iout,1100)c10,c20,c30,d1,d2,d3
213 WRITE(iout,1200)g,rbulk, nu
214!! ENDIF
215 ENDIF
216C
217 1000 FORMAT(
218 & 5x,' YEOH LAW ',/,
219 & 5x,' ---------- ',//)
220 1010 FORMAT(/
221 & 5x,a,/,
222 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . . =',i10/,
223 & 5x,'MATERIAL LAW . . . . . . . . . . . . . . =',i10/)
224 1020 FORMAT(
225 & 5x,'INITIAL DENSITY . . . . . . . . . . . . .=',1pg20.13/)
226 1100 FORMAT(
227 & 5x,'C10 . . . . . . . . . . . . . . . . . . .=',1pg20.13/
228 & 5x,'c20 . . . . . . . . . . . . . . . . . . .=',1PG20.13/
229 & 5X,'c30 . . . . . . . . . . . . . . . . . . .=',1PG20.13/
230 & 5X,'1/d1 . . . . . . . . . . . . . . . . . .=',1PG20.13/
231 & 5X,'1/d2 . . . . . . . . . . . . . . . . . .=',1PG20.13/
232 & 5X,'1/d3 . . . . . . . . . . . . . . . . . .=',1PG20.13)
233 1200 FORMAT(
234 & 5X,'initial shear modulus . . . . . . . . . .=',1PG20.13/
235 & 5X,'bulk modulus. . . . . . . . . . . . . . .=',1PG20.13/
236 & 5X,'poisson ratio . . . . . . . . . . . . . .=',1PG20.13/)
237 1300 FORMAT(
238 & 5X,'uniaxial DATA test curve. . . . . . . . .=',I10/
239 & 5X,'poisson ratio . . . . . . . . . . . . . .=',1PG20.13///)
240 1310 FORMAT(
241 & 5X,'equibiaxial DATA test curve . . . . . . .=',I10/
242 & 5X,'poisson ratio . . . . . . . . . . . . . .=',1PG20.13///)
243 1320 FORMAT(
244 & 5X,'planar DATA test curve. . . . . . . . . .=',I10/
245 & 5X,'poisson ratio . . . . . . . . . . . . . .=',1PG20.13///)
246C
247 RETURN
#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
integer, parameter ncharfield