Anda di halaman 1dari 37

TUGAS KELOMPOK

KOMPUTASI NUKLIR
PEMBENTUKAN 244Cm
Dosen Pengampu : Dr.Ir.Alexander Agung, S.T., M.Sc

DISUSUN OLEH:
1. Fachrie Aulia Ramadhana (20/456309/TK/50439)
2. Dani Abdul Aziz N (20/456307/TK/50437)
3. Nail Huga Dhiaulhaq (20/460469/TK/51058)
4. Tiolita Maharani (20/460480/TK/51069)
5. Zumar Zidan Afif (20/463531/TK/51523)

PROGRAM STUDI TEKNIK NUKLIR


DEPARTEMEN TEKNIK NUKLIR DAN TEKNIK FISIKA
FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
2022
PROSES PEMBENTUKAN Cm-244

Cm-244 merupakan pemancar partikel alfa yang kuat dan sedang dipelajari
penggunaannya sebagai sumber daya pada generator termoelektrik radioisotop (radioisotope
thermoelectric generator) untuk pesawat luar angkasa. Di samping itu Cm-244 juga digunakan
pada alat Alpha Proton X-ray Spectrometer/APXS yang mengukur kelimpahan unsur-unsur kimia
pada batuan dan tanah pada planet Mars.
Curium diperoleh dari pengolahan bahan bakar bekas (Spent Fuel) reaktor nuklir yang
kemudian diolah secara kimiawi. Pembentukan Curium diperoleh dari serangkaian tangkapan
neutron pada bahan bakar. Gambar 1 menunjukkan skema transmutasi U-238 menjadi Cm-244.
Pada gambar tersebut, panah ke atas menunjukkan reaksi tangkapan neutron. Panah horizontal
menyatakan peluruhan beta dan tangkapan elektron serta panah diagonal menyatakan peluruhan
alfa. Angka-angka di sekitar tanda panah menunjukkan waktu paro. Huruf ‘m’ menyatakan
menit, ‘j’ menyatakan jam, ‘hr’ menyatakan tahun. Kita ingin mengetahui seberapa banyak Cm-
244 yang dihasilkan dari reaktor.

1. Susunan model matematis (persamaan diferensial) yang mendeskripsikan reaksi


pembentukan Cm-244.
2. Buatlah program komputer berdasarkan model matematis tersebut. Data tampang
lintang dapat dilihat pada tabel 1 dan data peluruhan dapat dilihat pada gambar 1.
3. Jalankan program yang dibuat dan simulasikan massa dan aktivitas Cm-244
sebagai fungsi waktu selama 1 tahun operasi reaktor. Sebagai basis perhitungan
adalah massa bahan bakar uranium dioksida berpengkayaan 4% dengan pengisian
awal sebesar 1 ton. Lakukan perhitungan untuk beberapa tingkat fluks neutron
sebagai berikut: 1013, 1014 , 1015, 1016 n cm−2 s−1.
I. Deskripsi Masalah
Pada laporan ini akan diselesaikan permasalahan tentang Curium-244. Curium-244
merupakan pemancar partikel alfa yang sangat kuat, sehingga digunakan untuk mengukur
kelimpahan unsur-unsur kimia pada batuan dan tanah planet Mars. Unsur ini juga sedang
dipelajari sebagai sumber daya pada generator termoelektrik radioisotop untuk pesawat luar
angkasa. Curium terbentuk dari serangkaian tangkapan neutron pada bahan bakar bekas (Spent
fuel) reaktor nuklir.Terdapat tiga permasalahan yang akan dibahas pada laporan ini, yaitu model
matematis (persamaan diferensial) yang mendeskripsikan reaksi pembentukan 244Cm, pembuatan
program komputer berdasarkan model matematis tersebut, dan menjalankan program yang telah
dibuat serta menyimulasikan massa dan aktivitas 244Cm sebagai fungsi waktu selama satu tahun
operasi reaktor.Perhitungan juga dilakukan untuk beberapa tingkat fluks, yaitu 1013, 1014, 1015,
1016 n cm-2 s-1.

II. Penyelesaian Masalah


ii.a. Parameter
Parameter-parameter yang diperlukan untuk menyelesaikan permasalahan ini berupa
konstanta peluruhan, tampang lintang tangkapan neutron (n,y), dan tampang lintang serapan
masing-masing nuklida. Sedangkan data yang tersedia adalah waktu paruh, tampang lintang
(n,y), dan tampang lintang fisi. Konstanta peluruhan dapat dihitung dari waktu paruh melalui
hubungan :
ln ⁡(2)
λ=
T 1/ 2
Sedangkan tampang lintang serapan dapat dihitung dengan :
σ a=σ f + σ y

ii.b. Persamaan Differensial


Untuk mengetahui berapa banyak Cm-244 yang dihasilkan dari reaksi peluruhan pada
reaktor diperlukan penyusunan persamaan diferensial yang dapat mendeskripsikan reaksi
pembentukan Cm-244. Pada permasalahan ini digunakan metode Runge Kuta 4 sebagai metode
numerik penyelesaiannya karena nilai fungsi pada keadaan awal diketahui.

Berdasarkan skema transmutasi U-238 menjadi Cm-244, dirumuskan persamaan-


persamaan diferensial sebagai berikut:

1. U-238
dN U −238
=λα (Pu−242) N Pu−242 −N U −238 −N U −238 σ γ (U −238) ϕ
dt
2. U-239
dN U −239
=N u−238 σ y(U −238) ϕ− λ β (U −238)−N U −239
dt
3. Np-239
dN Np−239
= λα (Am−243) N Am −243 + λ β (u −239) N U −239 −N Np−239 ( σ γ ( Np−23 9) ϕ+ λ β (Np−239) )
dt
4. Pu-239
dN Np−239
= λα (Cm−243) N Cm−243 + λ β (u−239) N NP−239 −N α−(Pu−239) −λα (Pu−239) N Pu−239
dt
−N Pu−239 ¿
5. Pu-240
dN Pu−231
=λα (Cm−244) N Cm−244 + σ γ (Pu−239) N Pu−239 ϕ−λ α (Pu−240) N Pu−240
dt
−N Pu−240 σ γ ( Pu−240) ϕ
6. Pu-241
dN PU −241
=N PU −240 σ γ (Pu−240) ϕ−λ β (Pu−241) N Pu−241−0,000023(λ α(Pu−241) N Pu−241 )−❑❑
dt
N Pu−241 (σ γ (Pu−241) + σ f (Pu−241) ϕ)

7. Pu-242
dN PU −242
=N PU −241 σ γ (Pu−241) ϕ+ 0.16( N ¿¿ Am−242 ¿¿)− λα (Pu−242) N Pu−242 −N Pu−242 ¿
dt
σ γ (Pu−242) ϕ
8. Pu-243
dN PU −243
=N PU −242 σ γ (Pu−242) ϕ−λ β (Pu−243) N Pu−243
dt
9. Am-241
dN Am−241
=λ β (PU −241) N Pu−241 −λα (Am−241) N Am−241 −N Am−241 ¿
dt
σ f (Am−241) ¿ ϕ
10. Am-242
dN Am−242
=0,888 (N ¿ ¿ Am−241 σ γ (Am−241) ϕ)+ λ Am−241m N Am−241m−0,16(N ¿¿ Am−242)¿ ¿
dt
−0,84 (λ β (Am −242) N Am−242 )−N Am−242 (σ γ ( Am−242)+ σ f ( Am−242) ) ϕ
11. Am-242m
dN Am−242m
=0,112(N ¿ ¿ Am−241 σ γ ( Am−241) ϕ)−N Am−242 m (σ γ (Am−242 m) +σ f (Am−242 m) ) ϕ¿
dt
−λN Am−242 m
12. Am-243
dN Am−243
= λ β( PU −243) N Pu−243 + N ( Am−242) σ γ ( Am−242) ϕ + N Am−242m σ γ (Am −242 m) ϕ
dt
−λ α ( Am−243) N Am−243 −N Am−243 σ γ (Am−243) ϕ
13. Am-244
dN Am−241
=N Am−243 σ γ ( Am−243) ϕ−λ β (Am−244) N Am−244 −N Am−244 ¿
dt
σ f (Am−244) ¿ ϕ
14. Cm-242
dN Cm−242
=0,84 (λ β (Am−242) N Am−242 )−λα (Cm−242) N Cm−242−N Cm−242 ¿
dt
σ f (Cm−242) ¿ ϕ
15. Cm-243
dN Am−243
=N Cm−242 σ γ (Cm−242) ϕ−λα (Cm−243) N Cm−243−N Cm−243 ¿
dt
σ f (Cm−243) ¿ ϕ
16. Cm-244
dN Cm−244
=N Cm−243 σ γ (Cm−243) ϕ+ λ β ( Am−244) N Am −244 − λα (Cm−244) N Cm−244 −¿
dt
N Cm−244¿ ¿ (σ γ (Cm−244)+ σ f (Cm−244) )ϕ

III. Tampilkan Program 244Cm


Subprogram ini bertujuan untuk menampilkan plot massa dan aktivitas dari Cm-244 sebagai
fungsi terhadap waktu.

III.1. Algoritma
a.Dari jumlah partikel, hitung massa dan aktivitas.
1
m= N M
N A Cm244 r ,Cm244
A=λCm 244 N Cm244
b.Konversi massa dalam gram, aktivitas dalam Ci, dan waktu dalam tahun.
c.Tampilkan plot.
d.Konversi satuan waktu menjadi tahun.
e.Siapkan nilai untuk masing-masing radionuklida.
f.Tampilkan plot untuk masing-masing radionuklida.

III.2. Flowchart
IV. Implementasi Program
 Untuk fluks 1013 cm-2 s-1
def rk4(f, a, b, y0, h):
"""
Args:
f : fungsi yang akan diintegralkan dengan argumen t,y
a : batas bawah variabel t
b : batas atas variabel t
y0 : syarat awal
dt : time step / langkah
Returns:
array waktu dan array solusi yang sesuai pada array waktu
"""
m = len(y0) # banyaknya persamaan
n = int((b-a)/h) # banyaknya time step
Y = np.zeros((n+1,m)) # inisialisasi array 2 dimensi
T = np.zeros(n+1)
# Syarat awal
T[0] = a
Y[0,:] = y0 # syarat awal untuk array Y
# Jalankan n langkah
for i in range(n):
k1 = h * f(T[i], Y[i,:])
k2 = h * (f((T[i]+h/2), (Y[i,:]+k1/2)))
k3 = h * (f((T[i]+h/2), (Y[i,:]+k2/2)))
k4 = h * (f((T[i]+h), (Y[i,:]+k3)))
k = (k1+2*k2+2*k3+k4)/6
Y[i+1,:] = Y[i,:] + k
T[i+1]= T[i]+h
return T,Y

import numpy as np
import math
import matplotlib.pyplot as plt

#Pendefinisian Variabel
# 0 : U238; 1 : U239; 2 : Np239; 3 : Pu239; 4 : Pu240; 5 : Pu241;
6 : Pu242; 7 : Pu243;
# 8 : Am241; 9 : Am242; 10 : Am242m; 11 : Am243; 12 : Am244; 13 : Cm242;
14 : Cm243; 15 : Cm244

#Sigma Gamma dan Sigma f


sigmag = np.array([2.64*10**-24, 0, 45.02*10**-24, 271.5*10**-24,
289.3*10**-24,
363.1*10**-24, 19.88*10**-24, 0, 684.3*10**-24,
330.2*10**-24,
1141*10**-24, 79.26*10**-24, 1000*10**-24, 19.3*10**-24,
131.4*10**-24, 15.24*10**-24])
sigmaf = np.array([0, 0, 0, 747.4*10**-24, 0, 1012*10**-24, 0, 0,
3.12*10**-24,
2421*10**-24, 6401*10**-24, 0, 2301*10**-24, 4.67*10**-
24,
587.4*10**-24, 1022*10**-24])
#Konstanta Peluruhan
lambdan = np.array([np.log(2)/(4.51*(10**9)*365*24*60*60),
np.log(2)/(23.5*60),
np.log(2)/(2.35*60*60), np.log(2)/(24400*365*24*60*60),
np.log(2)/(6580*365*24*60*60),
np.log(2)/(13.2*365*24*60*60),
np.log(2)/(3.79*(10**5)*365*24*60*60), np.log(2)/(4.98*60*60),
np.log(2)/(458*365*24*60*60), np.log(2)/(16*60*60),
np.log(2)/(152*365*24*60*60),
np.log(2)/(7950*365*24*60*60), np.log(2)/(10.1*60*60),
np.log(2)/(163*60*60), np.log(2)/(32*365*24*60*60),
np.log(2)/(17.6*365*24*60*60)])

#Pendefinisian Persamaan Diferensial


fluks = 10**13
def fsys(t, y):
numEq = 16
dy = np.zeros(numEq)
dy[0] = lambdan[7]*y[7] - y[0] - y[0]*sigmag[0]*fluks
dy[1] = y[0]*sigmag[0]*fluks - lambdan[0] - y[1]
dy[2] = lambdan[11] + lambdan[1]*y[1] - y[1]*(sigmag[2]*fluks +
lambdan[3])
dy[3] = lambdan[14]*y[14] + lambdan[1]*y[2] - y[3] - lambdan[3]*y[3] -
y[3]*(sigmag[3] + sigmaf[3]*fluks)
dy[4] = lambdan[15]*y[15] + y[3]*sigmag[3]*fluks - lambdan[4]*y[4] -
y[4]*sigmag[4]*fluks
dy[5] = y[4]*sigmag[4]*fluks - lambdan[5]*y[5] -
0.000023*y[5]*lambdan[5] - y[5]*sigmag[5]*fluks
dy[6] = y[5]*sigmag[5]*fluks + 0.16*y[9] - lambdan[6]*y[6] -
y[6]*sigmag[6]*fluks
dy[7] = y[6]*sigmag[6]*fluks - lambdan[7]*y[7]
dy[8] = lambdan[5]*y[5] - lambdan[8]*y[8] - y[8]*sigmag[8]*fluks
dy[9] = 0.888*y[8]*sigmag[8]*fluks + lambdan[9]*y[9] - 0.16*y[9] -
0.84*lambdan[9]*y[9] - y[9]*sigmag[9]*fluks
dy[10] = 0.112*y[8]*sigmag[8]*fluks - y[9]*sigmag[9]*fluks
+sigmaf[10]*fluks- lambdan[10]*y[10]
dy[11] = lambdan[7]*y[7] + y[9]*fluks + y[10]*sigmag[10]*fluks -
lambdan[11]*y[11] - y[11]*sigmag[11]*fluks
dy[12] = y[11]*sigmag[11]*fluks - lambdan[12]*y[12] -
y[12]*sigmag[12]*fluks+sigmaf[12]*fluks
dy[13] = 0.84*lambdan[9]*y[9] - lambdan[13]*y[13] -
y[13]*sigmag[13]*fluks+sigmaf[13]*fluks
dy[14] = y[13]*sigmag[13]*fluks - lambdan[14]*y[14] -
y[14]*sigmag[14]*fluks+sigmaf[14]*fluks
dy[15] = y[14]*sigmag[14]*fluks + lambdan[15]*y[15] - lambdan[15]*y[15]
-y[15]*(sigmag[15]+sigmaf[15])*fluks
return dy

#Menghitung densitas atom U238 dalam UO2


avogadro = 6.022e23 # Bilangan Avogadro
pengkayaan = 0.04 # Besar pengkayaan 4%
mUO2 = 10**6 # Massa bahan bakar Uranium Dioksida sebesar 1 ton
mrU = 1/(pengkayaan/235 + (1-pengkayaan)/238) # Massa relatif Uranium
mrUO2 = mrU + 2*16 # Massa relatif total
mU = mrU*mUO2/mrUO2 # Massa Uranium
mU238 = (1-pengkayaan)/mU # Massa Uranium-238
nU238 = mU238 * avogadro/238 # Jumlah partikel Uranium-238

t0 = 0.0 # batas awal


tn = 1.0*365*24 # batas akhir
y0 = np.array([nU238, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0]) # syarat batas awal
h = 1 # lebar langkah

t,y = rk4(fsys, t0, tn, y0, h)


# Tampilkan hasil aktivitas
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)

ax[0][0].plot(t/24,y[:,0]*lambdan[0])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Aktivitas")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*lambdan[1])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Aktivitas")
ax[1][0].set_title("U239")

ax[2][0].plot(t/24,y[:,2]*lambdan[2])
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Aktivitas")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*lambdan[3])
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Aktivitas")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*lambdan[4])
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Aktivitas")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*lambdan[5])
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Aktivitas")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*lambdan[6])
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Aktivitas")
ax[6][0].set_title("Pu242")
ax[7][0].plot(t/24,y[:,7]*lambdan[7])
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Aktivitas")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*lambdan[8])
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Aktivitas")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*lambdan[9])
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Aktivitas")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*lambdan[10])
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Aktivitas")
ax[2][1].set_title("Am242m")

ax[3][1].plot(t/24,y[:,11]*lambdan[11])
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Aktivitas")
ax[3][1].set_title("Am243")

ax[4][1].plot(t/24,y[:,12]*lambdan[12])
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Aktivitas")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*lambdan[13])
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Aktivitas")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*lambdan[14])
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Aktivitas")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*lambdan[15])
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Aktivitas")
ax[7][1].set_title("Cm244")

#grafik massa
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)
ax[0][0].plot(t/24,y[:,0]*238/avogadro)
ax[0][0].plot(t/24,y[:,15]*lambdan[15])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Massa(gram)")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*239/avogadro)
ax[1][0].plot(t/24,y[:,15]*lambdan[15])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Massa(gram)")
ax[1][0].set_title("U239")

ax[2][0].plot(t/24,y[:,2]*239/avogadro)
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Massa(gram)")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*239/avogadro)
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Massa(gram)")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*240/avogadro)
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Massa(gram)")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*241/avogadro)
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Massa(gram)")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*242/avogadro)
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Massa(gram)")
ax[6][0].set_title("Pu242")

ax[7][0].plot(t/24,y[:,7]*243/avogadro)
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Massa(gram)")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*241/avogadro)
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Massa(gram)")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*242/avogadro)
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Massa(gram)")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*242/avogadro)
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Massa(gram)")
ax[2][1].set_title("Am242m")
ax[3][1].plot(t/24,y[:,11]*243/avogadro)
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Massa(gram)")
ax[3][1].set_title("Am243")

ax[4][1].plot(t/24,y[:,12]*244/avogadro)
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Massa(gram)")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*242/avogadro)
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Massa(gram)")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*243/avogadro)
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Massa(gram)")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*244/avogadro)
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Massa(gram)")
ax[7][1].set_title("Cm244")
plt.show

 Untuk fluks 1014 cm-2 s-1

def rk4(f, a, b, y0, h):


"""
Args:
f : fungsi yang akan diintegralkan dengan argumen t,y
a : batas bawah variabel t
b : batas atas variabel t
y0 : syarat awal
dt : time step / langkah
Returns:
array waktu dan array solusi yang sesuai pada array waktu
"""
m = len(y0) # banyaknya persamaan
n = int((b-a)/h) # banyaknya time step
Y = np.zeros((n+1,m)) # inisialisasi array 2 dimensi
T = np.zeros(n+1)
# Syarat awal
T[0] = a
Y[0,:] = y0 # syarat awal untuk array Y
# Jalankan n langkah
for i in range(n):
k1 = h * f(T[i], Y[i,:])
k2 = h * (f((T[i]+h/2), (Y[i,:]+k1/2)))
k3 = h * (f((T[i]+h/2), (Y[i,:]+k2/2)))
k4 = h * (f((T[i]+h), (Y[i,:]+k3)))
k = (k1+2*k2+2*k3+k4)/6
Y[i+1,:] = Y[i,:] + k
T[i+1]= T[i]+h
return T,Y

import numpy as np
import math
import matplotlib.pyplot as plt

#Pendefinisian Variabel
# 0 : U238; 1 : U239; 2 : Np239; 3 : Pu239; 4 : Pu240; 5 : Pu241;
6 : Pu242; 7 : Pu243;
# 8 : Am241; 9 : Am242; 10 : Am242m; 11 : Am243; 12 : Am244; 13 : Cm242;
14 : Cm243; 15 : Cm244

#Sigma Gamma dan Sigma f


sigmag = np.array([2.64*10**-24, 0, 45.02*10**-24, 271.5*10**-24,
289.3*10**-24,
363.1*10**-24, 19.88*10**-24, 0, 684.3*10**-24,
330.2*10**-24,
1141*10**-24, 79.26*10**-24, 1000*10**-24, 19.3*10**-24,
131.4*10**-24, 15.24*10**-24])
sigmaf = np.array([0, 0, 0, 747.4*10**-24, 0, 1012*10**-24, 0, 0,
3.12*10**-24,
2421*10**-24, 6401*10**-24, 0, 2301*10**-24, 4.67*10**-
24,
587.4*10**-24, 1022*10**-24])

#Konstanta Peluruhan
lambdan = np.array([np.log(2)/(4.51*(10**9)*365*24*60*60),
np.log(2)/(23.5*60),
np.log(2)/(2.35*60*60), np.log(2)/(24400*365*24*60*60),
np.log(2)/(6580*365*24*60*60),
np.log(2)/(13.2*365*24*60*60),
np.log(2)/(3.79*(10**5)*365*24*60*60), np.log(2)/(4.98*60*60),
np.log(2)/(458*365*24*60*60), np.log(2)/(16*60*60),
np.log(2)/(152*365*24*60*60),
np.log(2)/(7950*365*24*60*60), np.log(2)/(10.1*60*60),
np.log(2)/(163*60*60), np.log(2)/(32*365*24*60*60),
np.log(2)/(17.6*365*24*60*60)])

#Pendefinisian Persamaan Diferensial


fluks = 10**14
def fsys(t, y):
numEq = 16
dy = np.zeros(numEq)
dy[0] = lambdan[7]*y[7] - y[0] - y[0]*sigmag[0]*fluks
dy[1] = y[0]*sigmag[0]*fluks - lambdan[0] - y[1]
dy[2] = lambdan[11] + lambdan[1]*y[1] - y[1]*(sigmag[2]*fluks +
lambdan[3])
dy[3] = lambdan[14]*y[14] + lambdan[1]*y[2] - y[3] - lambdan[3]*y[3] -
y[3]*(sigmag[3] + sigmaf[3]*fluks)
dy[4] = lambdan[15]*y[15] + y[3]*sigmag[3]*fluks - lambdan[4]*y[4] -
y[4]*sigmag[4]*fluks
dy[5] = y[4]*sigmag[4]*fluks - lambdan[5]*y[5] -
0.000023*y[5]*lambdan[5] - y[5]*sigmag[5]*fluks
dy[6] = y[5]*sigmag[5]*fluks + 0.16*y[9] - lambdan[6]*y[6] -
y[6]*sigmag[6]*fluks
dy[7] = y[6]*sigmag[6]*fluks - lambdan[7]*y[7]
dy[8] = lambdan[5]*y[5] - lambdan[8]*y[8] - y[8]*sigmag[8]*fluks
dy[9] = 0.888*y[8]*sigmag[8]*fluks + lambdan[9]*y[9] - 0.16*y[9] -
0.84*lambdan[9]*y[9] - y[9]*sigmag[9]*fluks
dy[10] = 0.112*y[8]*sigmag[8]*fluks - y[9]*sigmag[9]*fluks
+sigmaf[10]*fluks- lambdan[10]*y[10]
dy[11] = lambdan[7]*y[7] + y[9]*fluks + y[10]*sigmag[10]*fluks -
lambdan[11]*y[11] - y[11]*sigmag[11]*fluks
dy[12] = y[11]*sigmag[11]*fluks - lambdan[12]*y[12] -
y[12]*sigmag[12]*fluks+sigmaf[12]*fluks
dy[13] = 0.84*lambdan[9]*y[9] - lambdan[13]*y[13] -
y[13]*sigmag[13]*fluks+sigmaf[13]*fluks
dy[14] = y[13]*sigmag[13]*fluks - lambdan[14]*y[14] -
y[14]*sigmag[14]*fluks+sigmaf[14]*fluks
dy[15] = y[14]*sigmag[14]*fluks + lambdan[15]*y[15] - lambdan[15]*y[15]
-y[15]*(sigmag[15]+sigmaf[15])*fluks
return dy

#Menghitung densitas atom U238 dalam UO2


avogadro = 6.022e23 # Bilangan Avogadro
pengkayaan = 0.04 # Besar pengkayaan 4%
mUO2 = 10**6 # Massa bahan bakar Uranium Dioksida sebesar 1 ton
mrU = 1/(pengkayaan/235 + (1-pengkayaan)/238) # Massa relatif Uranium
mrUO2 = mrU + 2*16 # Massa relatif total
mU = mrU*mUO2/mrUO2 # Massa Uranium
mU238 = (1-pengkayaan)/mU # Massa Uranium-238
nU238 = mU238 * avogadro/238 # Jumlah partikel Uranium-238

t0 = 0.0 # batas awal


tn = 1.0*365*24 # batas akhir
y0 = np.array([nU238, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0]) # syarat batas awal
h = 1 # lebar langkah

t,y = rk4(fsys, t0, tn, y0, h)


# Tampilkan hasil aktivitas
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)

ax[0][0].plot(t/24,y[:,0]*lambdan[0])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Aktivitas")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*lambdan[1])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Aktivitas")
ax[1][0].set_title("U239")
ax[2][0].plot(t/24,y[:,2]*lambdan[2])
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Aktivitas")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*lambdan[3])
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Aktivitas")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*lambdan[4])
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Aktivitas")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*lambdan[5])
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Aktivitas")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*lambdan[6])
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Aktivitas")
ax[6][0].set_title("Pu242")

ax[7][0].plot(t/24,y[:,7]*lambdan[7])
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Aktivitas")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*lambdan[8])
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Aktivitas")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*lambdan[9])
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Aktivitas")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*lambdan[10])
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Aktivitas")
ax[2][1].set_title("Am242m")

ax[3][1].plot(t/24,y[:,11]*lambdan[11])
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Aktivitas")
ax[3][1].set_title("Am243")

ax[4][1].plot(t/24,y[:,12]*lambdan[12])
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Aktivitas")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*lambdan[13])
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Aktivitas")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*lambdan[14])
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Aktivitas")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*lambdan[15])
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Aktivitas")
ax[7][1].set_title("Cm244")

#grafik massa
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)

ax[0][0].plot(t/24,y[:,0]*238/avogadro)
ax[0][0].plot(t/24,y[:,15]*lambdan[15])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Massa(gram)")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*239/avogadro)
ax[1][0].plot(t/24,y[:,15]*lambdan[15])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Massa(gram)")
ax[1][0].set_title("U239")

ax[2][0].plot(t/24,y[:,2]*239/avogadro)
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Massa(gram)")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*239/avogadro)
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Massa(gram)")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*240/avogadro)
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Massa(gram)")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*241/avogadro)
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Massa(gram)")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*242/avogadro)
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Massa(gram)")
ax[6][0].set_title("Pu242")

ax[7][0].plot(t/24,y[:,7]*243/avogadro)
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Massa(gram)")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*241/avogadro)
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Massa(gram)")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*242/avogadro)
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Massa(gram)")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*242/avogadro)
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Massa(gram)")
ax[2][1].set_title("Am242m")

ax[3][1].plot(t/24,y[:,11]*243/avogadro)
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Massa(gram)")
ax[3][1].set_title("Am243")

ax[4][1].plot(t/24,y[:,12]*244/avogadro)
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Massa(gram)")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*242/avogadro)
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Massa(gram)")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*243/avogadro)
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Massa(gram)")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*244/avogadro)
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Massa(gram)")
ax[7][1].set_title("Cm244")
plt.show
 Untuk fluks 1015 cm-2 s-1

def rk4(f, a, b, y0, h):


"""
Args:
f : fungsi yang akan diintegralkan dengan argumen t,y
a : batas bawah variabel t
b : batas atas variabel t
y0 : syarat awal
dt : time step / langkah
Returns:
array waktu dan array solusi yang sesuai pada array waktu
"""
m = len(y0) # banyaknya persamaan
n = int((b-a)/h) # banyaknya time step
Y = np.zeros((n+1,m)) # inisialisasi array 2 dimensi
T = np.zeros(n+1)
# Syarat awal
T[0] = a
Y[0,:] = y0 # syarat awal untuk array Y
# Jalankan n langkah
for i in range(n):
k1 = h * f(T[i], Y[i,:])
k2 = h * (f((T[i]+h/2), (Y[i,:]+k1/2)))
k3 = h * (f((T[i]+h/2), (Y[i,:]+k2/2)))
k4 = h * (f((T[i]+h), (Y[i,:]+k3)))
k = (k1+2*k2+2*k3+k4)/6
Y[i+1,:] = Y[i,:] + k
T[i+1]= T[i]+h
return T,Y

import numpy as np
import math
import matplotlib.pyplot as plt

#Pendefinisian Variabel
# 0 : U238; 1 : U239; 2 : Np239; 3 : Pu239; 4 : Pu240; 5 : Pu241;
6 : Pu242; 7 : Pu243;
# 8 : Am241; 9 : Am242; 10 : Am242m; 11 : Am243; 12 : Am244; 13 : Cm242;
14 : Cm243; 15 : Cm244

#Sigma Gamma dan Sigma f


sigmag = np.array([2.64*10**-24, 0, 45.02*10**-24, 271.5*10**-24,
289.3*10**-24,
363.1*10**-24, 19.88*10**-24, 0, 684.3*10**-24,
330.2*10**-24,
1141*10**-24, 79.26*10**-24, 1000*10**-24, 19.3*10**-24,
131.4*10**-24, 15.24*10**-24])
sigmaf = np.array([0, 0, 0, 747.4*10**-24, 0, 1012*10**-24, 0, 0,
3.12*10**-24,
2421*10**-24, 6401*10**-24, 0, 2301*10**-24, 4.67*10**-
24,
587.4*10**-24, 1022*10**-24])

#Konstanta Peluruhan
lambdan = np.array([np.log(2)/(4.51*(10**9)*365*24*60*60),
np.log(2)/(23.5*60),
np.log(2)/(2.35*60*60), np.log(2)/(24400*365*24*60*60),
np.log(2)/(6580*365*24*60*60),
np.log(2)/(13.2*365*24*60*60),
np.log(2)/(3.79*(10**5)*365*24*60*60), np.log(2)/(4.98*60*60),
np.log(2)/(458*365*24*60*60), np.log(2)/(16*60*60),
np.log(2)/(152*365*24*60*60),
np.log(2)/(7950*365*24*60*60), np.log(2)/(10.1*60*60),
np.log(2)/(163*60*60), np.log(2)/(32*365*24*60*60),
np.log(2)/(17.6*365*24*60*60)])

#Pendefinisian Persamaan Diferensial


fluks = 10**15
def fsys(t, y):
numEq = 16
dy = np.zeros(numEq)
dy[0] = lambdan[7]*y[7] - y[0] - y[0]*sigmag[0]*fluks
dy[1] = y[0]*sigmag[0]*fluks - lambdan[0] - y[1]
dy[2] = lambdan[11] + lambdan[1]*y[1] - y[1]*(sigmag[2]*fluks +
lambdan[3])
dy[3] = lambdan[14]*y[14] + lambdan[1]*y[2] - y[3] - lambdan[3]*y[3] -
y[3]*(sigmag[3] + sigmaf[3]*fluks)
dy[4] = lambdan[15]*y[15] + y[3]*sigmag[3]*fluks - lambdan[4]*y[4] -
y[4]*sigmag[4]*fluks
dy[5] = y[4]*sigmag[4]*fluks - lambdan[5]*y[5] -
0.000023*y[5]*lambdan[5] - y[5]*sigmag[5]*fluks
dy[6] = y[5]*sigmag[5]*fluks + 0.16*y[9] - lambdan[6]*y[6] -
y[6]*sigmag[6]*fluks
dy[7] = y[6]*sigmag[6]*fluks - lambdan[7]*y[7]
dy[8] = lambdan[5]*y[5] - lambdan[8]*y[8] - y[8]*sigmag[8]*fluks
dy[9] = 0.888*y[8]*sigmag[8]*fluks + lambdan[9]*y[9] - 0.16*y[9] -
0.84*lambdan[9]*y[9] - y[9]*sigmag[9]*fluks
dy[10] = 0.112*y[8]*sigmag[8]*fluks - y[9]*sigmag[9]*fluks
+sigmaf[10]*fluks- lambdan[10]*y[10]
dy[11] = lambdan[7]*y[7] + y[9]*fluks + y[10]*sigmag[10]*fluks -
lambdan[11]*y[11] - y[11]*sigmag[11]*fluks
dy[12] = y[11]*sigmag[11]*fluks - lambdan[12]*y[12] -
y[12]*sigmag[12]*fluks+sigmaf[12]*fluks
dy[13] = 0.84*lambdan[9]*y[9] - lambdan[13]*y[13] -
y[13]*sigmag[13]*fluks+sigmaf[13]*fluks
dy[14] = y[13]*sigmag[13]*fluks - lambdan[14]*y[14] -
y[14]*sigmag[14]*fluks+sigmaf[14]*fluks
dy[15] = y[14]*sigmag[14]*fluks + lambdan[15]*y[15] - lambdan[15]*y[15]
-y[15]*(sigmag[15]+sigmaf[15])*fluks
return dy

#Menghitung densitas atom U238 dalam UO2


avogadro = 6.022e23 # Bilangan Avogadro
pengkayaan = 0.04 # Besar pengkayaan 4%
mUO2 = 10**6 # Massa bahan bakar Uranium Dioksida sebesar 1 ton
mrU = 1/(pengkayaan/235 + (1-pengkayaan)/238) # Massa relatif Uranium
mrUO2 = mrU + 2*16 # Massa relatif total
mU = mrU*mUO2/mrUO2 # Massa Uranium
mU238 = (1-pengkayaan)/mU # Massa Uranium-238
nU238 = mU238 * avogadro/238 # Jumlah partikel Uranium-238

t0 = 0.0 # batas awal


tn = 1.0*365*24 # batas akhir
y0 = np.array([nU238, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0]) # syarat batas awal
h = 1 # lebar langkah

t,y = rk4(fsys, t0, tn, y0, h)


# Tampilkan hasil aktivitas
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)

ax[0][0].plot(t/24,y[:,0]*lambdan[0])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Aktivitas")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*lambdan[1])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Aktivitas")
ax[1][0].set_title("U239")

ax[2][0].plot(t/24,y[:,2]*lambdan[2])
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Aktivitas")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*lambdan[3])
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Aktivitas")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*lambdan[4])
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Aktivitas")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*lambdan[5])
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Aktivitas")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*lambdan[6])
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Aktivitas")
ax[6][0].set_title("Pu242")
ax[7][0].plot(t/24,y[:,7]*lambdan[7])
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Aktivitas")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*lambdan[8])
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Aktivitas")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*lambdan[9])
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Aktivitas")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*lambdan[10])
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Aktivitas")
ax[2][1].set_title("Am242m")

ax[3][1].plot(t/24,y[:,11]*lambdan[11])
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Aktivitas")
ax[3][1].set_title("Am243")

ax[4][1].plot(t/24,y[:,12]*lambdan[12])
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Aktivitas")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*lambdan[13])
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Aktivitas")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*lambdan[14])
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Aktivitas")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*lambdan[15])
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Aktivitas")
ax[7][1].set_title("Cm244")

#grafik massa
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)

ax[0][0].plot(t/24,y[:,0]*238/avogadro)
ax[0][0].plot(t/24,y[:,15]*lambdan[15])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Massa(gram)")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*239/avogadro)
ax[1][0].plot(t/24,y[:,15]*lambdan[15])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Massa(gram)")
ax[1][0].set_title("U239")

ax[2][0].plot(t/24,y[:,2]*239/avogadro)
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Massa(gram)")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*239/avogadro)
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Massa(gram)")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*240/avogadro)
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Massa(gram)")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*241/avogadro)
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Massa(gram)")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*242/avogadro)
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Massa(gram)")
ax[6][0].set_title("Pu242")

ax[7][0].plot(t/24,y[:,7]*243/avogadro)
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Massa(gram)")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*241/avogadro)
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Massa(gram)")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*242/avogadro)
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Massa(gram)")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*242/avogadro)
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Massa(gram)")
ax[2][1].set_title("Am242m")

ax[3][1].plot(t/24,y[:,11]*243/avogadro)
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Massa(gram)")
ax[3][1].set_title("Am243")

ax[4][1].plot(t/24,y[:,12]*244/avogadro)
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Massa(gram)")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*242/avogadro)
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Massa(gram)")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*243/avogadro)
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Massa(gram)")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*244/avogadro)
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Massa(gram)")
ax[7][1].set_title("Cm244")
plt.show

 Untuk fluks 1016 cm-2 s-1

def rk4(f, a, b, y0, h):


"""
Args:
f : fungsi yang akan diintegralkan dengan argumen t,y
a : batas bawah variabel t
b : batas atas variabel t
y0 : syarat awal
dt : time step / langkah
Returns:
array waktu dan array solusi yang sesuai pada array waktu
"""
m = len(y0) # banyaknya persamaan
n = int((b-a)/h) # banyaknya time step
Y = np.zeros((n+1,m)) # inisialisasi array 2 dimensi
T = np.zeros(n+1)
# Syarat awal
T[0] = a
Y[0,:] = y0 # syarat awal untuk array Y
# Jalankan n langkah
for i in range(n):
k1 = h * f(T[i], Y[i,:])
k2 = h * (f((T[i]+h/2), (Y[i,:]+k1/2)))
k3 = h * (f((T[i]+h/2), (Y[i,:]+k2/2)))
k4 = h * (f((T[i]+h), (Y[i,:]+k3)))
k = (k1+2*k2+2*k3+k4)/6
Y[i+1,:] = Y[i,:] + k
T[i+1]= T[i]+h
return T,Y

import numpy as np
import math
import matplotlib.pyplot as plt

#Pendefinisian Variabel
# 0 : U238; 1 : U239; 2 : Np239; 3 : Pu239; 4 : Pu240; 5 : Pu241;
6 : Pu242; 7 : Pu243;
# 8 : Am241; 9 : Am242; 10 : Am242m; 11 : Am243; 12 : Am244; 13 : Cm242;
14 : Cm243; 15 : Cm244

#Sigma Gamma dan Sigma f


sigmag = np.array([2.64*10**-24, 0, 45.02*10**-24, 271.5*10**-24,
289.3*10**-24,
363.1*10**-24, 19.88*10**-24, 0, 684.3*10**-24,
330.2*10**-24,
1141*10**-24, 79.26*10**-24, 1000*10**-24, 19.3*10**-24,
131.4*10**-24, 15.24*10**-24])
sigmaf = np.array([0, 0, 0, 747.4*10**-24, 0, 1012*10**-24, 0, 0,
3.12*10**-24,
2421*10**-24, 6401*10**-24, 0, 2301*10**-24, 4.67*10**-
24,
587.4*10**-24, 1022*10**-24])

#Konstanta Peluruhan
lambdan = np.array([np.log(2)/(4.51*(10**9)*365*24*60*60),
np.log(2)/(23.5*60),
np.log(2)/(2.35*60*60), np.log(2)/(24400*365*24*60*60),
np.log(2)/(6580*365*24*60*60),
np.log(2)/(13.2*365*24*60*60),
np.log(2)/(3.79*(10**5)*365*24*60*60), np.log(2)/(4.98*60*60),
np.log(2)/(458*365*24*60*60), np.log(2)/(16*60*60),
np.log(2)/(152*365*24*60*60),
np.log(2)/(7950*365*24*60*60), np.log(2)/(10.1*60*60),
np.log(2)/(163*60*60), np.log(2)/(32*365*24*60*60),
np.log(2)/(17.6*365*24*60*60)])

#Pendefinisian Persamaan Diferensial


fluks = 10**16
def fsys(t, y):
numEq = 16
dy = np.zeros(numEq)
dy[0] = lambdan[7]*y[7] - y[0] - y[0]*sigmag[0]*fluks
dy[1] = y[0]*sigmag[0]*fluks - lambdan[0] - y[1]
dy[2] = lambdan[11] + lambdan[1]*y[1] - y[1]*(sigmag[2]*fluks +
lambdan[3])
dy[3] = lambdan[14]*y[14] + lambdan[1]*y[2] - y[3] - lambdan[3]*y[3] -
y[3]*(sigmag[3] + sigmaf[3]*fluks)
dy[4] = lambdan[15]*y[15] + y[3]*sigmag[3]*fluks - lambdan[4]*y[4] -
y[4]*sigmag[4]*fluks
dy[5] = y[4]*sigmag[4]*fluks - lambdan[5]*y[5] -
0.000023*y[5]*lambdan[5] - y[5]*sigmag[5]*fluks
dy[6] = y[5]*sigmag[5]*fluks + 0.16*y[9] - lambdan[6]*y[6] -
y[6]*sigmag[6]*fluks
dy[7] = y[6]*sigmag[6]*fluks - lambdan[7]*y[7]
dy[8] = lambdan[5]*y[5] - lambdan[8]*y[8] - y[8]*sigmag[8]*fluks
dy[9] = 0.888*y[8]*sigmag[8]*fluks + lambdan[9]*y[9] - 0.16*y[9] -
0.84*lambdan[9]*y[9] - y[9]*sigmag[9]*fluks
dy[10] = 0.112*y[8]*sigmag[8]*fluks - y[9]*sigmag[9]*fluks
+sigmaf[10]*fluks- lambdan[10]*y[10]
dy[11] = lambdan[7]*y[7] + y[9]*fluks + y[10]*sigmag[10]*fluks -
lambdan[11]*y[11] - y[11]*sigmag[11]*fluks
dy[12] = y[11]*sigmag[11]*fluks - lambdan[12]*y[12] -
y[12]*sigmag[12]*fluks+sigmaf[12]*fluks
dy[13] = 0.84*lambdan[9]*y[9] - lambdan[13]*y[13] -
y[13]*sigmag[13]*fluks+sigmaf[13]*fluks
dy[14] = y[13]*sigmag[13]*fluks - lambdan[14]*y[14] -
y[14]*sigmag[14]*fluks+sigmaf[14]*fluks
dy[15] = y[14]*sigmag[14]*fluks + lambdan[15]*y[15] - lambdan[15]*y[15]
-y[15]*(sigmag[15]+sigmaf[15])*fluks
return dy

#Menghitung densitas atom U238 dalam UO2


avogadro = 6.022e23 # Bilangan Avogadro
pengkayaan = 0.04 # Besar pengkayaan 4%
mUO2 = 10**6 # Massa bahan bakar Uranium Dioksida sebesar 1 ton
mrU = 1/(pengkayaan/235 + (1-pengkayaan)/238) # Massa relatif Uranium
mrUO2 = mrU + 2*16 # Massa relatif total
mU = mrU*mUO2/mrUO2 # Massa Uranium
mU238 = (1-pengkayaan)/mU # Massa Uranium-238
nU238 = mU238 * avogadro/238 # Jumlah partikel Uranium-238

t0 = 0.0 # batas awal


tn = 1.0*365*24 # batas akhir
y0 = np.array([nU238, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0]) # syarat batas awal
h = 1 # lebar langkah

t,y = rk4(fsys, t0, tn, y0, h)


# Tampilkan hasil aktivitas
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)

ax[0][0].plot(t/24,y[:,0]*lambdan[0])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Aktivitas")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*lambdan[1])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Aktivitas")
ax[1][0].set_title("U239")

ax[2][0].plot(t/24,y[:,2]*lambdan[2])
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Aktivitas")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*lambdan[3])
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Aktivitas")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*lambdan[4])
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Aktivitas")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*lambdan[5])
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Aktivitas")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*lambdan[6])
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Aktivitas")
ax[6][0].set_title("Pu242")

ax[7][0].plot(t/24,y[:,7]*lambdan[7])
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Aktivitas")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*lambdan[8])
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Aktivitas")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*lambdan[9])
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Aktivitas")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*lambdan[10])
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Aktivitas")
ax[2][1].set_title("Am242m")

ax[3][1].plot(t/24,y[:,11]*lambdan[11])
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Aktivitas")
ax[3][1].set_title("Am243")
ax[4][1].plot(t/24,y[:,12]*lambdan[12])
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Aktivitas")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*lambdan[13])
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Aktivitas")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*lambdan[14])
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Aktivitas")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*lambdan[15])
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Aktivitas")
ax[7][1].set_title("Cm244")

#grafik massa
fig, ax = plt.subplots(8, 2,figsize=(10,30))
fig.subplots_adjust(hspace=0.5)

ax[0][0].plot(t/24,y[:,0]*238/avogadro)
ax[0][0].plot(t/24,y[:,15]*lambdan[15])
ax[0][0].set_xlabel("Waktu(hari) ")
ax[0][0].set_ylabel("Massa(gram)")
ax[0][0].set_title("U238")

ax[1][0].plot(t/24,y[:,1]*239/avogadro)
ax[1][0].plot(t/24,y[:,15]*lambdan[15])
ax[1][0].set_xlabel("Waktu(hari) ")
ax[1][0].set_ylabel("Massa(gram)")
ax[1][0].set_title("U239")

ax[2][0].plot(t/24,y[:,2]*239/avogadro)
ax[2][0].set_xlabel("Waktu(hari) ")
ax[2][0].set_ylabel("Massa(gram)")
ax[2][0].set_title("Np239")

ax[3][0].plot(t/24,y[:,3]*239/avogadro)
ax[3][0].set_xlabel("Waktu(hari) ")
ax[3][0].set_ylabel("Massa(gram)")
ax[3][0].set_title("Pu239")

ax[4][0].plot(t/24,y[:,4]*240/avogadro)
ax[4][0].set_xlabel("Waktu(hari) ")
ax[4][0].set_ylabel("Massa(gram)")
ax[4][0].set_title("Pu240")

ax[5][0].plot(t/24,y[:,5]*241/avogadro)
ax[5][0].set_xlabel("Waktu(hari) ")
ax[5][0].set_ylabel("Massa(gram)")
ax[5][0].set_title("Pu241")

ax[6][0].plot(t/24,y[:,6]*242/avogadro)
ax[6][0].set_xlabel("Waktu(hari) ")
ax[6][0].set_ylabel("Massa(gram)")
ax[6][0].set_title("Pu242")

ax[7][0].plot(t/24,y[:,7]*243/avogadro)
ax[7][0].set_xlabel("Waktu(hari) ")
ax[7][0].set_ylabel("Massa(gram)")
ax[7][0].set_title("Pu243")

ax[0][1].plot(t/24,y[:,8]*241/avogadro)
ax[0][1].set_xlabel("Waktu(hari) ")
ax[0][1].set_ylabel("Massa(gram)")
ax[0][1].set_title("Am241")

ax[1][1].plot(t/24,y[:,9]*242/avogadro)
ax[1][1].set_xlabel("Waktu(hari) ")
ax[1][1].set_ylabel("Massa(gram)")
ax[1][1].set_title("Am242")

ax[2][1].plot(t/24,y[:,10]*242/avogadro)
ax[2][1].set_xlabel("Waktu(hari) ")
ax[2][1].set_ylabel("Massa(gram)")
ax[2][1].set_title("Am242m")

ax[3][1].plot(t/24,y[:,11]*243/avogadro)
ax[3][1].set_xlabel("Waktu(hari) ")
ax[3][1].set_ylabel("Massa(gram)")
ax[3][1].set_title("Am243")

ax[4][1].plot(t/24,y[:,12]*244/avogadro)
ax[4][1].set_xlabel("Waktu(hari) ")
ax[4][1].set_ylabel("Massa(gram)")
ax[4][1].set_title("Am244")

ax[5][1].plot(t/24,y[:,13]*242/avogadro)
ax[5][1].set_xlabel("Waktu(hari) ")
ax[5][1].set_ylabel("Massa(gram)")
ax[5][1].set_title("Cm242")

ax[6][1].plot(t/24,y[:,14]*243/avogadro)
ax[6][1].set_xlabel("Waktu(hari) ")
ax[6][1].set_ylabel("Massa(gram)")
ax[6][1].set_title("Cm243")

ax[7][1].plot(t/24,y[:,15]*244/avogadro)
ax[7][1].set_xlabel("Waktu(hari) ")
ax[7][1].set_ylabel("Massa(gram)")
ax[7][1].set_title("Cm244")
plt.show
V. Hasil Plot Program
Fluks 1013
Fluks 1014
Fluks 1015
Fluks 1016

Anda mungkin juga menyukai