| 1 |
program nanodecay |
| 2 |
|
| 3 |
implicit none |
| 4 |
real(kind=8) :: k, R, g, T0, pi, kappa, u, t, M |
| 5 |
real(kind=8) :: BigK, BigG, rho, c, cp, umin, umax, u2, du |
| 6 |
real(kind=8) :: rhop, sum, numer, denom, Tf0, hpTime |
| 7 |
real(kind=8) :: rlist(5) |
| 8 |
integer :: i, j, kk, nu, gi |
| 9 |
logical :: hpFound |
| 10 |
|
| 11 |
! fixed quantities: |
| 12 |
pi = 4.0d0 * datan(1.0d0) |
| 13 |
! initial particle temperature |
| 14 |
!T0 = 950.0 |
| 15 |
! fluid phase temperature |
| 16 |
!Tf0 = 300.0 |
| 17 |
! |
| 18 |
! specific heat of particle (J g^-1 K^-1) |
| 19 |
cp = 0.129 |
| 20 |
! density of particle (g m^-3) |
| 21 |
rhop = 19.3 * 1e6 |
| 22 |
! thermal conductivity of fluid (W m^-1 K^-1) |
| 23 |
BigK = 0.6 |
| 24 |
! density of fluid |
| 25 |
rho = 1.0e6 |
| 26 |
! specific heat of fluid (J g^-1 K^-1) |
| 27 |
c = 4.184 |
| 28 |
|
| 29 |
! derived quantities |
| 30 |
! |
| 31 |
kappa = BigK / (rho * c) |
| 32 |
|
| 33 |
|
| 34 |
umin = 0.001 |
| 35 |
umax = 1000.0 |
| 36 |
|
| 37 |
nu = 10000 |
| 38 |
du = (umax-umin)/real(nu) |
| 39 |
|
| 40 |
rlist(1) = 25.0 |
| 41 |
rlist(2) = 75.0 |
| 42 |
rlist(3) = 130.0 |
| 43 |
rlist(4) = 200.0 |
| 44 |
rlist(5) = 250.0 |
| 45 |
|
| 46 |
|
| 47 |
do gi = 50, 200, 10 |
| 48 |
! interfacial conductance (W m^-2 K^-1) |
| 49 |
BigG = real(gi)*1e6 |
| 50 |
g = BigG / BigK |
| 51 |
|
| 52 |
|
| 53 |
do i = 1, 5 |
| 54 |
|
| 55 |
! radius of particle (in m) |
| 56 |
R = rlist(i)*1e-10 |
| 57 |
! mass of particle |
| 58 |
M = 4.0*pi*R*R*R*rhop/3.0 |
| 59 |
|
| 60 |
k = 4.0 * pi * R*R*R * rho * c / (M * cp) |
| 61 |
|
| 62 |
hpFound = .false. |
| 63 |
do j = 0, 1000, 1 |
| 64 |
! time in s |
| 65 |
t = real(j)*1e-12 |
| 66 |
|
| 67 |
sum = 0.0 |
| 68 |
|
| 69 |
do kk = 0, nu |
| 70 |
|
| 71 |
u = umin + (umax-umin)*real(kk)/nu |
| 72 |
u2 = u*u |
| 73 |
|
| 74 |
numer = exp(-kappa * u2 * t / (R*R)) * u2 |
| 75 |
denom = (u2*(1.0+ R*g) - k*R*g)**2 + (u2*u - k*R*g*u)**2 |
| 76 |
|
| 77 |
sum = sum + du*numer/denom |
| 78 |
|
| 79 |
enddo |
| 80 |
sum = sum*2.0*k*R*R*g*g/pi |
| 81 |
|
| 82 |
if ((sum .lt. 0.5d0).and.(.not.hpFound)) then |
| 83 |
hpFound = .true. |
| 84 |
hpTime = real(j) |
| 85 |
endif |
| 86 |
enddo |
| 87 |
write(*,*) rlist(i), hpTime |
| 88 |
enddo |
| 89 |
|
| 90 |
write(*,*) '&' |
| 91 |
enddo |
| 92 |
|
| 93 |
end program nanodecay |
| 94 |
|
| 95 |
|
| 96 |
|
| 97 |
|
| 98 |
|
| 99 |
|
| 100 |
|
| 101 |
|