OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat06_keps.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_mat06_keps (lsubmodel, mtag6, unitab, ipm, pm, mat_id, titr, israte, ityp, mtag17, matparam)

Function/Subroutine Documentation

◆ hm_read_mat06_keps()

subroutine hm_read_mat06_keps ( type(submodel_data), dimension(*), intent(in) lsubmodel,
type(mlaw_tag_), intent(inout) mtag6,
type (unit_type_), intent(in) unitab,
integer, dimension(npropmi), intent(inout) ipm,
intent(inout) pm,
integer, intent(inout) mat_id,
character(len=nchartitle), intent(in) titr,
integer, intent(inout) israte,
integer, intent(in) ityp,
type(mlaw_tag_), intent(inout) mtag17,
type(matparam_struct_), intent(inout) matparam )

Definition at line 37 of file hm_read_mat06_keps.F.

41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE unitab_mod
45 USE elbuftag_mod !MAXEOS
46 USE message_mod
47 USE submodel_mod
48 USE matparam_def_mod
50C-----------------------------------------------
51C ROUTINE DESCRIPTION :
52C ===================
53C READ MAT LAW21 WITH HM READER
54C-----------------------------------------------
55C DUMMY ARGUMENTS DESCRIPTION:
56C ===================
57C UNITAB UNITS ARRAY
58C MAT_ID MATERIAL ID(INTEGER)
59C TITR MATERIAL TITLE
60C LSUBMODEL SUBMODEL STRUCTURE
61C-----------------------------------------------
62C I m p l i c i t T y p e s
63C-----------------------------------------------
64#include "implicit_f.inc"
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68#include "units_c.inc"
69#include "param_c.inc"
70C-----------------------------------------------
71C D u m m y A r g u m e n t s
72C-----------------------------------------------
73 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
74 INTEGER, INTENT(INOUT) :: MAT_ID
75 INTEGER, INTENT(INOUT) :: ISRATE
76 INTEGER, DIMENSION(NPROPMI) ,INTENT(INOUT) :: IPM
77 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
78 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
79 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
80 TYPE(MLAW_TAG_), INTENT(INOUT) :: MTAG6,MTAG17
81 INTEGER,INTENT(IN) :: ITYP
82 TYPE(MATPARAM_STRUCT_),INTENT(INOUT) :: MATPARAM
83C-----------------------------------------------
84C L o c a l V a r i a b l e s
85C-----------------------------------------------
86 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
87 INTEGER JTUR, I,COUNT,LAW6_OPT
88 my_real rho0, vis, psh, c0, c1, c2, c3, c4, c5, pmin, e0, rk0,
89 . ssl, ctm, sk, se, rpr, ct1, ct2, ct3, ak, e, a, b, yp0, yp1,
90 . mu,rhor
91C-----------------------------------------------
92C S o u r c e L i n e s
93C-----------------------------------------------
94 count = 0
95 jtur=pm(70)
96!---
97 CALL hm_option_is_encrypted(is_encrypted)
98!
99 CALL hm_get_intv ('Line_count' ,count ,is_available,lsubmodel)
100 count=count+2
101
102 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv('Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
104
105 CALL hm_get_intv ('Law6_opt' ,law6_opt ,is_available,lsubmodel)
106 !1,2,3 (3=K-EPS)
107
108 CALL hm_get_floatv('DAMP1' ,vis ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv('MAT_PC' ,pmin ,is_available, lsubmodel, unitab)
110
111 IF (pmin == zero) pmin=-infinity
112 IF (rhor == zero) rhor=rho0
113
114 CALL hm_get_floatv('RHO0_K0' ,rk0 ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv('SSL' ,ssl ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv('C_MU' ,ctm ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv('SIG_k' ,sk ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv('SIG_EPS' ,se ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv('P_R_ON_P_RT' ,rpr ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv('C_1' ,ct1 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv('C_2' ,ct2 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv('C_3' ,ct3 ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv('KAPPA' ,ak ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv('E' ,e ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv('ALPHA' ,a ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv('GSI_T' ,b ,is_available, lsubmodel, unitab)
127
128 e0 = zero
129 c0 = zero
130 c1 = zero
131 c2 = zero
132 c3 = zero
133 c4 = zero
134 c5 = zero
135 psh = zero
136
137 pm(1) = rhor
138 pm(89)= rho0
139 pm(23)=e0
140 pm(24)=vis
141 pm(104)=c0 - psh
142 pm(32)=c1
143 pm(37)=pmin
144
145 ! allocate EoS data structure
146 matparam%IEOS = 1
147 matparam%EOS%NUPARAM = 7
148 matparam%EOS%NIPARAM = 0
149 matparam%EOS%NFUNC = 0
150 matparam%EOS%NTABLE = 0
151 CALL matparam%EOS%CONSTRUCT() !allocations
152 matparam%EOS%UPARAM(1) = c0-psh
153 matparam%EOS%UPARAM(2) = c1
154 matparam%EOS%UPARAM(3) = c2
155 matparam%EOS%UPARAM(4) = c3
156 matparam%EOS%UPARAM(5) = c4
157 matparam%EOS%UPARAM(6) = c5
158 matparam%EOS%UPARAM(7) = zero
159 matparam%EOS%PSH = psh
160 matparam%EOS%E0 = e0
161
162 IF(rhor /= zero) THEN
163 mu = rho0/rhor-one
164 ELSE
165 mu = zero ! RHOR=0.0 => error 683 will be displayed in hm_read_mat.F
166 ENDIf
167
168 IF(mu < zero)THEN
169 pm(31) = -psh + c0+c1*mu + c3*mu**3+(c4+c5*mu)*e0
170 ELSE
171 pm(31) = -psh + c0+c1*mu + c2*mu**2+c3*mu**3+(c4+c5*mu)*e0
172 ENDIF
173
174 pm(80)=infinity
175
176 IF(ssl == zero)ssl= ep10
177 pm(46)=ssl
178 pm(95)=rpr
179
180 IF(ctm == zero)ctm=nineem2
181 IF(ct1 == zero)ct1=onep44
182 IF(ct2 == zero)ct2=onep92
183 IF(ct3 == zero)ct3=-zep373
184 IF(sk == zero)sk=one
185 IF(se == zero)se=onep3
186 IF(rpr == zero)rpr=seven_over_9
187 !PARAMETRES MUR TURBULENT
188 IF(ak == zero) ak=zep4187
189 IF(e == zero) e=ninep793
190 IF(a == zero) a=half
191 pm(47)=a*ak
192 pm(48)=e
193 pm(49)=a
194 pm(50)=b
195 yp0=elevenp5
196 DO i=1,100
197 yp1=log(e*yp0)/ak
198 IF(yp1 == yp0)EXIT
199 yp0=yp1
200 ENDDO
201 pm(51)=yp1
202 pm(79)=three100
203 ! FIN PARAMS MUR TURBULENT
204 pm(81)=ctm
205 pm(82)=ct1
206 pm(83)=ct2
207 pm(84)=ct3
208 pm(85)=sk
209 pm(86)=se
210 pm(95)=rpr
211 pm(87)=rk0/rho0
212!---------------------------------------------------------
213 matparam%IEOS = 18 ! linear EOS is used by default
214 ipm(4) = 18 ! keep this temporarily for output and fluid sections
215!---------------------------------------------------------
216 ! Material compatibility with /EOS option
217 CALL init_mat_keyword(matparam,"EOS")
218
219 ! EOS/Thermo keyword for pressure treatment in elements
220 CALL init_mat_keyword(matparam,"hydro_eos")
221
222 CALL INIT_MAT_KEYWORD(MATPARAM,"incompressible")
223
224 ! Properties compatibility
225 CALL INIT_MAT_KEYWORD(MATPARAM,"solid_porous")
226 CALL INIT_MAT_KEYWORD(MATPARAM,"sph")
227
228 WRITE(IOUT,2001) TRIM(TITR),MAT_ID,6
229 WRITE(IOUT,1001)
230
231 IF(IS_ENCRYPTED)THEN
232 WRITE(IOUT,'(5X,A,//)')'CONFIDENTIAL DATA'
233 ELSE
234 WRITE(IOUT,2002)RHO0,RHOR
235 WRITE(IOUT,1300)VIS
236 WRITE(IOUT,1501)PMIN
237 ENDIF
238 WRITE(IOUT,1600)RK0,SSL,CTM,SK,SE,RPR,CT1,CT2,CT3
239 WRITE(IOUT,1601)AK,E,A,B
240
241 PM(88)=PSH
242c
243C---- Definition of internal variables (Elementary storage)
244c
245 MTAG6%G_RK = 1
246 MTAG6%G_RE = 1
247 MTAG6%L_RK = 1
248 MTAG6%L_RE = 1
249 MTAG6%L_VK = 1
250 MTAG6%G_TEMP = 1
251 MTAG6%L_TEMP = 1
252c
253 MTAG17%G_RK = 1
254 MTAG17%G_RE = 1
255 MTAG17%L_RK = 1
256 MTAG17%L_RE = 1
257 MTAG17%L_VK = 1
258 MTAG17%G_TEMP = 1
259 MTAG17%L_TEMP = 1
260C--------------------------------
261 1001 FORMAT(
262 & 5X,' K-EPSILON TURBULENT FLUID ',/,
263 & 5X,' ------------------------- ',//)
264 1300 FORMAT(
265 & 5X,'VISCOSITY . . . . . . . . . . . . . . .=',1PG20.13)
266 1501 FORMAT(
267 & 5X,'PRESSURE CUTOFF . . . . . . . . . . . .=',1PG20.13//)
268 2001 FORMAT(/
269 & 5X,A,/,
270 & 5X,' MATERIAL NUMBER . . . . . . . . . . . .=',I10/,
271 & 5X,' MATERIAL LAW. . . . . . . . . . . . . .=',I10/)
272 2002 FORMAT(
273 & 5X,' INITIAL DENSITY . . . . . . . . . . . .=',1PG20.13/,
274 & 5X,' REFERENCE DENSITY . . . . . . . . . . .=',1PG20.13/)
275 1600 FORMAT(
276 & 5X,'RK0 INITIAL TURBULENT ENERGY. . . . . .=',1PG20.13/,
277 & 5X,'SSL SUBGRID SCALE LENGTH. . . . . . . .=',1PG20.13/,
278 & 5X,'CMU TURBULENT VISCOSITY COEFFICIENT . .=',1PG20.13/,
279 & 5X,'SK K DIFFUSION COEFFICIENT . . . . . .=',1PG20.13/,
280 & 5X,'SE EPSILON DIFFUSION COEFFICIENT . . .=',1PG20.13/,
281 & 5X,'PR/PRT LAM./TURB. PRANDT NUMBER RATIO .=',1PG20.13/,
282 & 5X,'CT1 EPSILON SOURCE COEFFICIENT C1 . . .=',1PG20.13/,
283 & 5X,'CT2 EPSILON SOURCE COEFFICIENT C2 . . .=',1PG20.13/,
284 & 5X,'CT3 EPSILON SOURCE COEFFICIENT C3 . . .=',1PG20.13/)
285 1601 FORMAT(
286 & 5X,'TURBULENT WALL COEFFICIENTS '/,
287 & 5X,'K LOGARITHMIQUE LAW COEFFICIENT. . . .=',1PG20.13/,
288 & 5X,'E LOGARITHMIQUE LAW COEFFICIENT. . . .=',1PG20.13/,
289 & 5X,'A K,EPSILON ECCENTRICITY . . . . . . .=',1PG20.13/,
290 & 5X,'B SOURCE FLAG. . . . . . . . . . . . .=',1PG20.13/)
291C--------------------------------
292 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, 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