OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dt6law.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "vect01_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine dt6law (pm, eint, rk, re, geo, pid, mat, deltax, aire, vol, dtx)

Function/Subroutine Documentation

◆ dt6law()

subroutine dt6law ( pm,
eint,
rk,
re,
geo,
integer, dimension(*) pid,
integer, dimension(*) mat,
deltax,
aire,
vol,
dtx )

Definition at line 31 of file dt6law.F.

32C
33C CALCULATION OF ELEMENTARY DT FOR NEWTONIAN FLUID
34C
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "vect01_c.inc"
47#include "param_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 my_real :: pm(npropm,*), eint(*), rk(*), re(*),geo(npropg,*), deltax(*), aire(*), vol(*), dtx(*)
52 INTEGER PID(*),MAT(*)
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER :: I, MX
57 my_real :: rho0(mvsiz), vis(mvsiz), bulk(mvsiz),dpdm(mvsiz), espe(mvsiz), ssp(mvsiz), tmu(mvsiz), psh(mvsiz)
58C-----------------------------------------------
59 DO i=lft,llt
60 mx = mat(i)
61 rho0(i)=pm( 1,mx)
62 vis(i) =pm(24,mx)*rho0(i)
63 bulk(i) = pm(32,mx) ! reference bulk modulus
64 tmu(i) =pm(81,mx)
65 vis(i) = zero
66 END DO
67
68 IF(jtur/=0)THEN
69 DO i=lft,llt
70 tmu(i)=tmu(i)*rk(i)*rk(i) / max(em15,re(i))
71 vis(i)=vis(i)+tmu(i)
72 END DO
73 ENDIF
74
75 DO i=lft,llt
76 espe(i)=eint(i)
77 END DO
78
79 DO i=lft,llt
80 ! More precise estimator is to call EOSMAIN to compute BULK modulus updated for each element
81 ssp(i)=sqrt(bulk(i)/rho0(i)) ! G=0 with law6
82 END DO
83
84 IF(jsph==0)THEN
85 CALL dtel(ssp,pm,geo,pid,mat, rho0, vis, deltax, aire, vol, dtx)
86 ELSE
87 CALL dtsph(ssp,pm,geo,pid,mat, rho0, vis, deltax, vol, dtx)
88 ENDIF
89C-----------
90 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
Definition dtel.F:46
subroutine dtsph(ssp, pm, geo, pid, mat, rho0, vis, deltax, vol, dtx)
Definition dtsph.F:44
#define max(a, b)
Definition macros.h:21