OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat190.F File Reference
#include "implicit_f.inc"
#include "param_c.inc"
#include "units_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_mat190 (nuvar, numtabl, maxtabl, itable, parmat, unitab, pm, lsubmodel, mat_id, titr, matparam, nvartmp, imatvis)

Function/Subroutine Documentation

◆ hm_read_mat190()

subroutine hm_read_mat190 ( integer, intent(inout) nuvar,
integer, intent(inout) numtabl,
integer, intent(in) maxtabl,
integer, dimension(maxtabl), intent(inout) itable,
intent(inout) parmat,
type (unit_type_), intent(in) unitab,
intent(inout) pm,
type(submodel_data), dimension(*), intent(in) lsubmodel,
integer, intent(in) mat_id,
character(len=nchartitle), intent(in) titr,
type (matparam_struct_), intent(inout) matparam,
integer, intent(inout) nvartmp,
integer, intent(inout) imatvis )

Definition at line 39 of file hm_read_mat190.F.

43C-----------------------------------------------
44C ROUTINE DESCRIPTION :
45C ===================
46C FOAM_DUBOIS path dependent foam material
47C isotropic material law for foam
48C-------------------------------------------------------------------------
49C-------------------------------------------------------------------------
50C DUMMY ARGUMENTS DESCRIPTION:
51C ===================
52C
53C NAME DESCRIPTION
54C-----------------------------------------------
55C IPM MATERIAL ARRAY(INTEGER)
56C PM MATERIAL ARRAY(REAL)
57C UNITAB UNITS ARRAY
58C ID MATERIAL ID(INTEGER)
59C TITR MATERIAL TITLE
60C LSUBMODEL SUBMODEL STRUCTURE
61C-----------------------------------------------
62C M o d u l e s
63C-----------------------------------------------
64 USE unitab_mod
65 USE elbuftag_mod
66 USE message_mod
67 USE submodel_mod
68 USE matparam_def_mod
69 USE table_mod
71C-----------------------------------------------
72C I m p l i c i t T y p e s
73C-----------------------------------------------
74#include "implicit_f.inc"
75C-----------------------------------------------
76C C o m m o n B l o c k s
77C-----------------------------------------------
78#include "param_c.inc"
79#include "units_c.inc"
80#include "com04_c.inc"
81C-----------------------------------------------
82C D u m m y A r g u m e n t s
83C-----------------------------------------------
84 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
85 INTEGER, INTENT(IN) :: MAT_ID,MAXTABL
86 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
87 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
88 INTEGER, INTENT(INOUT) :: NUVAR,NUMTABL,NVARTMP,IMATVIS
89 INTEGER, DIMENSION(MAXTABL) ,INTENT(INOUT) :: ITABLE
90 my_real, DIMENSION(100),INTENT(INOUT) :: parmat
91 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
92 TYPE (MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
93C-----------------------------------------------
94C L o c a l V a r i a b l e s
95C-----------------------------------------------
96 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
97 INTEGER :: I,ILAW
98 my_real :: rho0,nu,bulk,e,emod,g,a11,scal,hu, shape,
99 . scale_1_unit,xscale_1_unit,xfac(2)
100C=======================================================================
101 ilaw = 190
102 is_encrypted = .false.
103 is_available = .false.
104 imatvis = 2
105c
106 CALL hm_option_is_encrypted(is_encrypted)
107card1
108 ! Initial density
109 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
110card2
111 ! Initial young modulus
112 CALL hm_get_floatv('MAT_E' ,emod ,is_available, lsubmodel, unitab)
113 nu = zero
114card3
115 ! Unloading parameters
116 CALL hm_get_floatv('MAT_HU' ,hu ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv('MAT_SHAPE' ,shape ,is_available, lsubmodel, unitab)
118card4
119 ! Loading table
120 CALL hm_get_intv ('FUN_1' ,itable(1),is_available, lsubmodel)
121 CALL hm_get_floatv('XSCALE_1' ,xfac(1) ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv('SCALE_1' ,xfac(2) ,is_available, lsubmodel, unitab)
123c
124 ! Check scale factor units
125 CALL hm_get_floatv_dim('XSCALE_1' ,xscale_1_unit ,is_available, lsubmodel, unitab)
126 IF (xfac(1) == zero) xfac(1) = one * xscale_1_unit
127 CALL hm_get_floatv_dim('SCALE_1' ,scale_1_unit ,is_available, lsubmodel, unitab)
128 IF (xfac(2) == zero) xfac(2) = one * scale_1_unit
129c
130 ! Check default value and compute elastic parameters
131 e = emod
132 g = emod / two / (one+nu)
133 bulk = emod / three / (one-two * nu)
134 a11 = emod * (one - nu) / (one + nu) / (one-two * nu)
135 IF (hu == zero) hu = one
136c
137!--------------------------
138! Filling buffer tables
139!--------------------------
140 nuvar = 13 ! Number of User Element Variables and Curves
141 numtabl = 2 ! Number of tables
142 nvartmp = 18 ! Number of temporary variables
143 matparam%NUPARAM = 7 ! Number of real parameters
144c
145 ! Allocate and fill real parameters table
146 ALLOCATE(matparam%UPARAM(matparam%NUPARAM))
147 matparam%UPARAM(1) = emod
148 matparam%UPARAM(2) = bulk
149 matparam%UPARAM(3) = g
150 matparam%UPARAM(4) = xfac(1)
151 matparam%UPARAM(5) = xfac(2)
152 matparam%UPARAM(6) = hu
153 matparam%UPARAM(7) = shape
154c
155 ! PM table
156 pm(1) = rho0
157 pm(89) = rho0
158c
159 ! PARMAT table
160 parmat(1) = bulk
161 parmat(2) = e
162 parmat(3) = nu
163 parmat(16) = 2
164 parmat(17) = (one - two*nu)/(one - nu)
165c
166 ! Material settings
167 CALL init_mat_keyword(matparam,"TOTAL")
168 CALL init_mat_keyword(matparam,"COMPRESSIBLE")
169c
170 ! Properties compatibility
171 CALL init_mat_keyword(matparam,"SOLID_ISOTROPIC")
172c
173!--------------------------
174! Parameters printout
175!--------------------------
176 WRITE(iout,900) trim(titr),mat_id,ilaw
177 WRITE(iout,1000)
178 IF(is_encrypted)THEN
179 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
180 ELSE
181 WRITE(iout,1050) rho0
182 WRITE(iout,1110) e,bulk,g
183 WRITE(iout,1150) hu,shape
184 WRITE(iout,1200) itable(1),xfac(1),xfac(2)
185 ENDIF
186 900 FORMAT(/
187 & 5x,a,/,
188 & 5x,'MATERIAL NUMBER . . . . . . . . . . . . . . . =',i10/,
189 & 5x,'MATERIAL LAW. . . . . . . . . . . . . . . . . =',i10/)
190 1000 FORMAT(/
191 & 5x,'-----------------------------------------------',/
192 & 5x,' MATERIAL MODEL: ISOTROPIC PATH DEPENDENT FOAM ',/,
193 & 5x,'-----------------------------------------------',/)
194 1050 FORMAT(/
195 & 5x,'INITIAL DENSITY. . . . . . . . . . . . . . . .=',1pg20.13/)
196 1110 FORMAT(/
197 & 5x,'INITIAL YOUNG MODULUS E. . . . . . . . . . . .=',1pg20.13/
198 & 5x,'INITIAL BULK MODULUS K . . . . . . . . . . . .=',1pg20.13/
199 & 5x,'INITIAL SHEAR MODULUS G. . . . . . . . . . . .=',1pg20.13/)
200 1150 FORMAT(/
201 & 5x,'HYSTERETIC UNLOADING FACTOR HU . . . . . . . .=',1pg20.13/
202 & 5x,'SHAPE FACTOR FOR UNLOADING . . . . . . . . . .=',1pg20.13/)
203 1200 FORMAT(/
204 & 5x,'LOADING TABLE IDENTIFIER . . . . . . . . . . .=',i10/
205 & 5x,'REFERENCE STRAIN RATE (SCALE FACTOR) . . . . .=',1pg20.13/
206 & 5x,'LOADING STRESS SCALE FACTOR. . . . . . . . . .=',1pg20.13/)
207c
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, 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