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

Go to the source code of this file.

Functions/Subroutines

subroutine sesa20 (pm, eint, rho, temp, z, qold, sesame, sound, xk, voln, mat, c, dv2, pold, ssp, rho0, p01, nel)

Function/Subroutine Documentation

◆ sesa20()

subroutine sesa20 ( pm,
eint,
rho,
temp,
z,
qold,
sesame,
sound,
xk,
voln,
integer, dimension(*) mat,
c,
dv2,
pold,
ssp,
rho0,
p01,
integer, intent(in) nel )

Definition at line 31 of file sesa20.F.

37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C G l o b a l P a r a m e t e r s
43C-----------------------------------------------
44#include "mvsiz_p.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "param_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER, INTENT(IN) :: NEL
54 . pm(npropm,*), eint(*), rho(*), temp(*), z(*), qold(*),
55 . sesame(*), sound(*), xk(*), voln(mvsiz), c(*), dv2(*), pold(*), ssp(*),
56 . rho0(*), p01(*)
57 INTEGER MAT(*)
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I, MX, NR, NT, IDR, IDT, IDP, IDE, IDQ
63 . dpdm(mvsiz),
64 . espe(mvsiz), e01(mvsiz),
65 . dtde, dpdr, sph, rl, tl, zl, dxdr, zz, deltat, xlamb,
66 . stefan, opac, rossel, xkr
67 real*8 ne, na, atom
68C-----------------------------------------------
69 DATA na /6.0225e+23/
70C---------------------------------
71 DO i=1,nel
72 zl = zero
73 dxdr = zero
74 mx = mat(i)
75 dpdm(i) = four_over_3 * pm(22,mx)
76 e01(i) =eint(i)-(pold(i)+qold(i))*dv2(i)
77 e01(i) = max(zero,e01(i))
78 espe(i)=e01(i)/max(em30,voln(i)*rho(i))
79 nr = nint(pm(25,mx))
80 nt = nint(pm(26,mx))
81 idr = nint(pm(27,mx))
82 idt = idr + nr
83 idp = idt + nt
84 ide = idp + nr * nt
85
86 CALL mintp_re(sesame(idr),nr,sesame(idt),nt,sesame(ide),rho(i),temp(i),espe(i),dtde)
87 dtde = max(zero,dtde)
88 CALL mintp_rt(sesame(idr),nr,sesame(idt),nt,sesame(idp),rho(i),temp(i),p01(i),dpdr)
89
90 dpdm(i)=dpdm(i)+rho0(i)*dpdr
91 sph = rho(i)/max(em15,dtde)
92 !------------------------------------
93 ! IONISATION
94 !------------------------------------
95 nr = nint(pm(28,mx))
96 nt = nint(pm(29,mx))
97 idr = nint(pm(30,mx))
98 idt = idr + nr
99 idq = idt + nt
100 rl = log10(rho(i))
101 tl = log10(temp(i))
102 CALL mintp_rt(sesame(idr),nr,sesame(idt),nt,sesame(idq),rl,tl,zl,dxdr)
103 IF(zl <= -20)THEN
104 !machine epsilon
105 z(i)=em20
106 ELSEIF(zl >= 20)THEN
107 !machine infinity
108 z(i)=ep20
109 ELSE
110 z(i)=exp(zl*log(ten)) !TEN**ZL
111 ENDIF
112
113 !(CONDUNCTIVITE MAX POUR CALCUL DE DT)
114 zz = max(em10,z(i))
115 deltat= threep44 * zep26 * log(zz) / zz
116 IF(deltat > zero)THEN
117 deltat= one / ( one + deltat)
118 ELSE
119 deltat= zero
120 ENDIF
121 atom = pm(37,mx)
122 ne = rho(i)*na*zz/atom
123 xlamb = pm(36,mx)*temp(i)**three_half/sqrt(ne)
124 xlamb = max(one,xlamb)
125 xlamb = max(em10, log(xlamb))
126 xk(i) = zep4*deltat*pm(35,mx) * temp(i)**twop5 / (zz*xlamb)
127 stefan = pm(51,mx)
128 IF(stefan > zero.AND.temp(i) >= ep04)THEN
129 nr = nint(pm(48,mx))
130 nt = nint(pm(49,mx))
131 idr = nint(pm(50,mx))
132 idt = idr + nr
133 idq = idt + nt
134 rl = log10(rho(i))
135 tl = log10(temp(i))
136 CALL mintp_rt(sesame(idr),nr,sesame(idt),nt,sesame(idq),rl,tl,opac,dxdr)
137 opac = ten**opac
138 rossel = one / ( rho(i) * opac)
139 xkr = sixteen * stefan * temp(i)**3 * rossel * third
140 xk(i) = xk(i) + xkr
141 ENDIF
142 xk(i) = min(xk(i),pm(51,mx))
143 ENDDO
144
145 !------------------------------------
146 ! VITESSE DU SON
147 !------------------------------------
148 DO i=1,nel
149 ssp(i)=sqrt(abs(dpdm(i))/rho0(i))
150 sound(i) = ssp(i)
151 ENDDO
152C
153 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine mintp_re(xx, nx, yy, ny, zz, x, y, z, dydz)
Definition mintp_re.F:34
subroutine mintp_rt(xx, nx, yy, ny, zz, x, y, z, dzdx)
Definition mintp_rt.F:35
subroutine sesame(iflag, nel, pm, off, eint, rho, rho0, espe, dvol, mat, pnew, dpdm, dpde, theta, bufmat)
Definition sesame.F:35