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,nu
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)
subroutine init_mat_keyword(matparam, keyword)
#define max(a, b)
Definition macros.h:21
integer, parameter nchartitle