| 1 |
gezelter |
3120 |
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 |
|
|
|