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, EMPTY_LINE,COUNT,LAW6_OPT
88 my_real rho0, vis, bid, 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(33)=c2
144 pm(34)=c3
145 pm(35)=c4
146 pm(36)=c5
147 pm(37)=pmin
148
149 IF(rhor /= zero) THEN
150 mu = rho0/rhor-one
151 ELSE
152 mu = zero ! RHOR=0.0 => error 683 will be displayed in hm_read_mat.F
153 ENDIf
154
155 IF(mu < zero)THEN
156 pm(31) = -psh + c0+c1*mu + c3*mu**3+(c4+c5*mu)*e0
157 ELSE
158 pm(31) = -psh + c0+c1*mu + c2*mu**2+c3*mu**3+(c4+c5*mu)*e0
159 ENDIF
160
161 pm(80)=infinity
162
163 IF(ssl == zero)ssl= ep10
164 pm(46)=ssl
165 pm(95)=rpr
166
167 IF(ctm == zero)ctm=nineem2
168 IF(ct1 == zero)ct1=onep44
169 IF(ct2 == zero)ct2=onep92
170 IF(ct3 == zero)ct3=-zep373
171 IF(sk == zero)sk=one
172 IF(se == zero)se=onep3
173 IF(rpr == zero)rpr=seven_over_9
174 !PARAMETRES MUR TURBULENT
175 IF(ak == zero) ak=zep4187
176 IF(e == zero) e=ninep793
177 IF(a == zero) a=half
178 pm(47)=a*ak
179 pm(48)=e
180 pm(49)=a
181 pm(50)=b
182 yp0=elevenp5
183 DO i=1,100
184 yp1=log(e*yp0)/ak
185 IF(yp1 == yp0)EXIT
186 yp0=yp1
187 ENDDO
188 pm(51)=yp1
189 pm(79)=three100
190 ! FIN PARAMS MUR TURBULENT
191 pm(81)=ctm
192 pm(82)=ct1
193 pm(83)=ct2
194 pm(84)=ct3
195 pm(85)=sk
196 pm(86)=se
197 pm(95)=rpr
198 pm(87)=rk0/rho0
199!---------------------------------------------------------
200 matparam%IEOS = 18 ! linear EOS is used by default
201 ipm(4) = 18 ! keep this temporarily for output and fluid sections
202!---------------------------------------------------------
203 ! Material compatibility with /EOS option
204 CALL init_mat_keyword(matparam,"EOS")
205
206 ! EOS/Thermo keyword for pressure treatment in elements
207 CALL init_mat_keyword(matparam,"HYDRO_EOS")
208
209 CALL init_mat_keyword(matparam,"INCOMPRESSIBLE")
210
211 ! Properties compatibility
212 CALL init_mat_keyword(matparam,"SOLID_POROUS")
213 CALL init_mat_keyword(matparam,"SPH")
214
215 WRITE(iout,2001) trim(titr),mat_id,6
216 WRITE(iout,1001)
217
218 IF(is_encrypted)THEN
219 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
220 ELSE
221 WRITE(iout,2002)rho0,rhor
222 WRITE(iout,1300)vis
223 WRITE(iout,1501)pmin
224 ENDIF
225 WRITE(iout,1600)rk0,ssl,ctm,sk,se,rpr,ct1,ct2,ct3
226 WRITE(iout,1601)ak,e,a,b
227
228 pm(88)=psh
229c
230C---- Definition des variables internes (stockage elementaire)
231c
232 mtag6%G_RK = 1
233 mtag6%G_RE = 1
234 mtag6%L_RK = 1
235 mtag6%L_RE = 1
236 mtag6%L_VK = 1
237 mtag6%G_TEMP = 1
238 mtag6%L_TEMP = 1
239c
240 mtag17%G_RK = 1
241 mtag17%G_RE = 1
242 mtag17%L_RK = 1
243 mtag17%L_RE = 1
244 mtag17%L_VK = 1
245 mtag17%G_TEMP = 1
246 mtag17%L_TEMP = 1
247C--------------------------------
248 1001 FORMAT(
249 & 5x,' K-EPSILON TURBULENT FLUID ',/,
250 & 5x,' ------------------------- ',//)
251 1300 FORMAT(
252 & 5x,'VISCOSITY . . . . . . . . . . . . . . .=',1pg20.13)
253 1501 FORMAT(
254 & 5x,'PRESSURE CUTOFF . . . . . . . . . . . .=',1pg20.13//)
255 2001 FORMAT(/
256 & 5x,a,/,
257 & 5x,' MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
258 & 5x,' MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
259 2002 FORMAT(
260 & 5x,' INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/,
261 & 5x,' REFERENCE DENSITY . . . . . . . . . . .=',1pg20.13/)
262 1600 FORMAT(
263 & 5x,'RK0 INITIAL TURBULENT ENERGY. . . . . .=',1pg20.13/,
264 & 5x,'SSL SUBGRID SCALE LENGTH. . . . . . . .=',1pg20.13/,
265 & 5x,'CMU TURBULENT VISCOSITY COEFFICIENT . .=',1pg20.13/,
266 & 5x,'SK K DIFFUSION COEFFICIENT . . . . . .=',1pg20.13/,
267 & 5x,'SE EPSILON DIFFUSION COEFFICIENT . . .=',1pg20.13/,
268 & 5x,'PR/PRT LAM./TURB. PRANDT NUMBER RATIO .=',1pg20.13/,
269 & 5x,'CT1 EPSILON SOURCE COEFFICIENT C1 . . .=',1pg20.13/,
270 & 5x,'CT2 EPSILON SOURCE COEFFICIENT C2 . . .=',1pg20.13/,
271 & 5x,'CT3 EPSILON SOURCE COEFFICIENT C3 . . .=',1pg20.13/)
272 1601 FORMAT(
273 & 5x,'TURBULENT WALL COEFFICIENTS '/,
274 & 5x,'K LOGARITHMIQUE LAW COEFFICIENT. . . .=',1pg20.13/,
275 & 5x,'E LOGARITHMIQUE LAW COEFFICIENT. . . .=',1pg20.13/,
276 & 5x,'A K,EPSILON ECCENTRICITY . . . . . . .=',1pg20.13/,
277 & 5x,'B SOURCE FLAG. . . . . . . . . . . . .=',1pg20.13/)
278C--------------------------------
279 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