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

Function/Subroutine Documentation

◆ hm_read_mat34()

subroutine hm_read_mat34 ( 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,
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,
intent(inout) pm,
type(matparam_struct_), intent(inout) matparam )

Definition at line 36 of file hm_read_mat34.F.

40C-----------------------------------------------
41C D e s c r i p t i o n
42C-----------------------------------------------
43C READ MAT LAW33 WITH HM READER ( TO BE COMPLETED )
44C
45C DUMMY ARGUMENTS DESCRIPTION:
46C ===================
47C
48C NAME DESCRIPTION
49C
50C IPM MATERIAL ARRAY(INTEGER)
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, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
80 my_real, DIMENSION(100) ,INTENT(INOUT) :: parmat
81 my_real, DIMENSION(MAXUPARAM) ,INTENT(INOUT) :: uparam
82 INTEGER, DIMENSION(MAXFUNC) ,INTENT(INOUT) :: IFUNC
83 INTEGER, INTENT(INOUT) :: ISRATE,IMATVIS,NFUNC,MAXFUNC,MAXUPARAM,NUPARAM,NUVAR
84 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
85 INTEGER,INTENT(IN) :: MAT_ID
86 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
87 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
88 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
89C-----------------------------------------------
90C L o c a l V a r i a b l e s
91C-----------------------------------------------
92 my_real :: bulk,young
93 my_real :: g0,gi,beta
94 my_real :: p0,phi,gama0
95 my_real :: rhor,rho0
96 LOGICAL :: IS_ENCRYPTED,IS_AVAILABLE
97C-----------------------------------------------
98C S o u r c e L i n e s
99C-----------------------------------------------
100 israte=0
101 imatvis=1
102 is_encrypted = .false.
103 is_available = .false.
104
105
106 CALL hm_option_is_encrypted(is_encrypted)
107
108 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv('Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
110
111 CALL hm_get_floatv('MAT_BULK' ,bulk ,is_available, lsubmodel, unitab)
112
113
114 CALL hm_get_floatv('MAT_G0' ,g0 ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv('MAT_GI' ,gi ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv('mat_decay' ,BETA ,IS_AVAILABLE, LSUBMODEL, UNITAB)
117
118 CALL HM_GET_FLOATV('mat_p0' ,P0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 CALL HM_GET_FLOATV('mat_phi' ,PHI ,IS_AVAILABLE, LSUBMODEL, UNITAB)
120 CALL HM_GET_FLOATV('mat_gama0' ,GAMA0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
121
122 !GAMA0 = GAMA0 * FAC_L * FAC_L * FAC_L
123
124
125 IF (RHOR==ZERO) RHOR=RHO0
126
127 NUPARAM=7
128 NFUNC=0
129 NUVAR=8
130
131 UPARAM(1)=BULK
132 UPARAM(2)=G0
133 UPARAM(3)=GI
134 UPARAM(4)=BETA
135 UPARAM(5)=P0
136 UPARAM(6)=PHI
137 UPARAM(7)=GAMA0
138
139 YOUNG = (NINE*BULK*G0)/(THREE*BULK + G0)
140
141 PARMAT(1) = BULK
142! PARMAT(1) = TWO*GI
143 PARMAT(2) = YOUNG
144C Formulation for solid elements time step computation.
145 PARMAT(16) = 2
146 PARMAT(17) = TWO*G0/(BULK + FOUR_OVER_3*G0)
147
148 PM(1) = RHOR
149 PM(89) = RHO0
150 PM(12) = SQRT(MAX(ZERO, G0)) !done by default in lecmuser.F for law34
151 PM(22) = G0
152 PM(27) = SQRT(YOUNG/RHO0) ! Sound speed
153c
154 ! MATPARAM keywords
155 CALL INIT_MAT_KEYWORD(MATPARAM,"HOOK")
156c
157 ! Properties compatibility
158 CALL INIT_MAT_KEYWORD(MATPARAM,"SHELL_ISOTROPIC")
159 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ISOTROPIC")
160 CALL INIT_MAT_KEYWORD(MATPARAM,"SPH")
161 CALL INIT_MAT_KEYWORD(MATPARAM,"TRUSS")
162 CALL INIT_MAT_KEYWORD(MATPARAM,"BEAM_INTEGRATED")
163c
164 WRITE(IOUT,1001) TRIM(TITR),MAT_ID,34
165 WRITE(IOUT,1000)
166
167 IF(IS_ENCRYPTED)THEN
168 WRITE(IOUT,'(5x,a,//)')'confidential data'
169 ELSE
170 WRITE(IOUT,1002) RHO0
171 WRITE(IOUT,1100) BULK,G0,GI,BETA,P0,PHI,GAMA0
172 ENDIF
173
174 RETURN
175
176 1000 FORMAT
177 & (5X,14H VISCOELASTIC,/,
178 & 5X,14H ------------,//)
179 1001 FORMAT(/
180 & 5X,A,/,
181 & 5X, 'material number . . . . . . . . . . . .=',I10/,
182 & 5X, 'material law. . . . . . . . . . . . . .=',I10/)
183 1002 FORMAT(
184 & 5X, 'initial density . . . . . . . . . . . .=',1PG20.13/)
185 1100 FORMAT
186 & (5X, 'bulk modulus. . . . . . . . . . . . . .=',1PG20.13/
187 & ,5X, 'shear modulus(short time). . . . . . .=',1PG20.13/
188 & ,5X, 'shear modulus(long time) . . . . . . .=',1PG20.13/
189 & ,5X, 'decay constant. . . . . . . . . . . . .=',1PG20.13//
190 & ,5X, 'initial foam pressure . . . . . . . . .=',1PG20.13/
191 & ,5X, 'ratio of foam to polymer density. . . .=',1PG20.13/
192 & ,5X, 'initial volumetric strain. . . .. . . .=',1PG20.13//)
193
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
integer, parameter nchartitle