Assalamualaikum warahmatullahi wabarakatuh, sebelumnya perkenalkan nama saya Aisyah Zahwa Sakinah dengan NPM 2306155306 dari kelas Metode Numerik-01. Pada blog ini, saya akan membahas bagaimana saya memahami prinsip dan algoritma PINN pada permasalahan Heat Conduction 1D dengan framework DAI5 serta 33 kriteria evaluasi framework DAI5.
Untuk memahaminya dengan lebih baik maka saya akan menjelaskan contoh permasalahan yang akan digunakan pada kasus kali ini, berikut adalah visualisasinya:

Permasalahan ini merupakan permasalahan Heat Conduction dengan boundary condition berupa:
- T1 = 100 C (suhu pada bagian kiri batang)
- T2 = 0 C (suhu pada bagian kanan batang)
Permasalahan ini kemudian akan saya selesaikan menggunakan PINN dan dengan pendekatan framework DAI5
Penjelasan Metode PINN
PINN adalah pendekatan kecerdasan buatan yang menggabungkan jaringan saraf tiruan (neural network) dengan hukum fisika untuk menyelesaikan persamaan diferensial, seperti persamaan panas pada heat conduction 1D. Berbeda dengan metode numerik tradisional seperti Finite Difference Method (FDM) atau Finite Element Method (FEM), PINN tidak memerlukan diskritisasi grid, melainkan menggunakan jaringan saraf untuk mengaproksimasi solusi, sambil memastikan solusi tersebut mematuhi hukum fisika melalui loss function. Dalam konteks heat conduction 1D, PINN mengaproksimasi distribusi suhu dalam kondisi steady-state) dengan memenuhi persamaan panas, kondisi batas, dan kondisi awal.
Prinsip Metode PINN
Prinsip kerja PINN melibatkan dua elemen utama: jaringan saraf dan hukum fisika. Jaringan saraf digunakan untuk mengaproksimasi solusi T(x,t) dengan input berupa koordinat spasial x dan waktu t, serta output berupa suhu T. Hukum fisika, seperti persamaan panas dimasukkan ke dalam proses pelatihan melalui loss function.
Seperti yang sudah saya sebutkan diatas, pada blog kali ini saya akan menggunakan bantuan Framework DAI5 untuk memahami prinsip dan algoritma metode PINN lebih lanjut. Saya akan mengawalinya dengan menjelaskan kembali konsep DAI5.
DAI5 adalah sebuah framework yang dirancang untuk mengintegrasikan pemahaman ilmiah dengan kesadaran spiritual dan keimanan, dengan tujuan memastikan bahwa proses analisis dan penyelesaian masalah dilakukan secara sadar, bertanggung jawab, dan bermanfaat bagi umat manusia. Nama DAI5 merujuk pada lima tahapan utama dalam proses berpikir:Deep Awareness of I, Intention, Initial Thinking, Idealization, dan Instruction Set. Setiap tahapan ini memiliki kriteria evaluasi yang mendetail sebanyak 33 kriteria untuk memastikan bahwa setiap langkah dalam proses analisis selaras dengan nilai-nilai keimanan, etika, dan kebermanfaatan.
Secara mendasar, DAI5 mengingatkan saya untuk selalu berada dalam kondisi conscious bahwa semua fenomena alam yang saya pelajari seperti perpindahan panas dalam heat conduction 1D adalah ciptaan Allah SWT yang penuh keteraturan. Dengan demikian, dalam menyelesaikan masalah ilmiah, saya harus mengedepankan kesadaran akan Sang Pencipta, niat yang tulus untuk kebaikan, pemahaman yang mendalam terhadap masalah, simplifikasi yang efektif, dan eksekusi yang terstruktur. Berikut adalah penjelasan masing-masing tahapan DAI5, yang telah diterapkan dalam konteks penggunaan PINN untuk heat conduction 1D:
- Deep Awareness of I
Tahap ini menekankan pentingnya kesadaran diri yang mendalam terhadap hubungan manusia dengan Allah SWT sebagai Sang Pencipta serta keterbatasan saya sebagai manusia dalam memahami ciptaan-Nya. Dalam menyelesaikan permasalahan Heat Conduction 1D, saya menyadari bahwa hukum fisika seperti Hukum Kesetimbangan Energi dan Hukum Fourier adalah bagian dari keteraturan alam yang telah ditetapkan oleh Allah SWT.
Penyelesaian permasalahan dengan metode numerik tradisional seperti Finite Difference Method (FDM) atau Finite Element Method (FEM) sering kali membutuhkan biaya komputasi tinggi dan diskritisasi grid yang rumit. Kesadaran ini mendorong saya untuk memanfaatkan PINN sebagai alat bantu saya (bukan pengganti pemikiran manusia) untuk memahami fenomena alam dengan lebih baik. Tahap ini juga melibatkan refleksi kritis terhadap dampak spiritual dan sosial dari solusi yang saya hasilkan seperti bagaimana distribusi suhu yang akurat dapat mendukung efisiensi energi dan keberlanjutan lingkungan.
- Intentionย
Tahap ini berfokus pada pentingnya memiliki niat yang jelas dan tulus dalam mencari ilmu yaitu untuk memberikan manfaat bagi umat manusia bukan hanya untuk prestasi atau kepentingan pribadi. Dalam proses penyelesaian permasalahan Heat Conduction 1D, saya memiliki niat menggunakan PINN untuk menghasilkan solusi distribusi suhu yang akurat. Solusi tersebut kemudian saya harap dapat diterapkan dalam desain sistem termal, efisiensi energi, atau material tahan panas.
Niat ini selaras dengan nilai-nilai kebaikan karena solusi tersebut dapat membantu masyarakat melalui teknologi yang lebih hemat energi dan ramah lingkungan. DAI5 menekankan bahwa niat ini harus relevan dengan kebutuhan dunia nyata, berkelanjutan, dan berkualitas tinggi seperti yang ditunjukkan oleh PINN yang mampu memberikan solusi akurat dengan jumlah epoch yang cukup (misalnya dalam perhitungan yang saya lakukan bahwa menggunakan 7000 epoch sudah mendekati hasil analitis sehingga sudah dapat dikatakan benar prediksinya).
- Initial Thinkingย
Tahap ini mengharuskan saya memahami masalah secara mendalam sebelum mencari solusi yaitu dengan memastikan bahwa pendekatan yang saya gunakan sesuai dengan hukum alam yang telah ditetapkan oleh Allah SWT. Saya kemudian mengidentifikasi persamaan panas (untuk kondisi steady-state) sebagai hukum dasar, serta menetapkan kondisi batas seperti yaitu suhu pada batang bagian kiri sebesar 100 Celcius dan suhu pada bagian kanan batang sebesar 0 Celcius.
Metode PINN memastikan solusi memenuhi hukum yang ada dengan menghitung turunan parsial melalui automatic differentiation dan memasukkannya ke dalam loss function. Tahap ini juga melibatkan analisis konteks fisik, sosial, dan teknis, serta penggunaan data yang valid untuk mendukung analisis, seperti data kondisi batas dan simulasi. Dengan demikian, PINN memungkinkan saya memahami masalah secara menyeluruh tanpa menyimpang dari prinsip-prinsip alam.
Dalam permasalahan Heat Conduction 1D digunakan persamaan panas berupa:
PINN digunakan untuk mengaproksimasi solusi T(x,t) T(x, t) T(x,t) dengan memanfaatkan data simulasi (jika ada) dan memastikan solusi memenuhi persamaan panas serta kondisi batas/awal.
- Idealization
Tahap ini melibatkan penyederhanaan masalah untuk melihat gambaran besar, sambil memastikan solusi tetap realistis dan sesuai dengan hukum fisika. Dalam menyelesaikan permasalahan Heat Conduction 1D, metode PINN menyederhanakan masalah dengan mengasumsikan konduksi panas hanya terjadi dalam satu dimensi dan kondisi steady-state sehingga persamaan panas menjadi lebih sederhana.
Berbeda dengan metode tradisional yang memerlukan diskritisasi grid, PINN bekerja berdasarkan kondisi batas dan persamaan fisikaย menghasilkan solusi yang mulus, kontinu, dan sesuai hukum fisika. Proses ini mencerminkan kreativitas dan inovasi karena PINN menawarkan pendekatan baru yang lebih efisien, sekaligus memastikan solusi dapat diterapkan dalam berbagai konteks (skalabilitas) dan tetap sederhana namun efektif (simplicity and elegance). Secara sederhana, metode PINN diintegrasikan dengan jaringan saraf dimana jaringan ini digunakan untuk mengaproksimasi solusi T(x,t) dengan input berupa koordinat spasial x dan waktu t, serta output berupa suhu T. Hukum fisika, seperti persamaan panas dimasukkan ke dalam proses pelatihan melalui loss function.
Loss function metode PINN terdiri dari:
– Loss Fisika: Memastikan solusi memenuhi persamaan panas, dihitung dengan menghitung turunan parsial menggunakan automatic differentiation. Berikut adalah penjabarannya:
– Loss Kondisi Batas/Awal : Memastikan solusi memenuhi kondisi batas dan kondisi awal (misalnya, T(x,0) = T0(x)) maka:
Sedangkan untuk kondisi batas seperti T(0,t) = T1, maka penjabarannya sebagai berikut:
– Loss Data (Jika Ada) : Memastikan solusi sesuai dengan data pengukuran, jika tersedia. Jika ada data simulasi atau pengukuran (misalnya, suhu pada titik tertentu), PINN meminimalkan selisih antara prediksi jaringan saraf dan data tersebut. Berikut adalah penjabarannya:
Pada hasil pengukuran ditampilkan total loss dari proses perhitung yang sebenarnya merupakan kombinasi dari semua komponen, berikut ada penjabarannya:
- Instruction Set
Tahap terakhir ini berfokus pada eksekusi solusi secara terstruktur dan bertanggung jawab. Metode PINN digunakan untuk menyelesaikan permasalahan Heat Conduction 1D, prosesnya meliputi:
- Mendefinisikan jaringan saraf (misalnya, dengan 1 neuron input, 2 lapisan tersembunyi, dan 1 neuron output)
- Menghitung loss function (loss fisika dan loss kondisi batas)
- Melatih jaringan saraf dengan optimizer seperti Adam
- Memvalidasi hasil dengan solusi analitik.ย
Setiap langkah dijelaskan dengan jelas, mencakup semua aspek penting, dan memastikan hasilnya dapat diinterpretasikan secara fisik (misalnya, profil suhu linier). PINN juga menggunakan pendekatan iteratif, dengan pelatihan berulang hingga solusi konvergen, dan meminimalkan kesalahan melalui optimasi loss function. Penjabaran Instruction Set ini sebenarnya dapat terlihat pada coding yang telah diberikan sebelumnya oleh Prof DAI, berikut ini codingnya saya tampilkan:
Coding Keseluruhan
import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
import tkinter as tk
from tkinter import ttk
# Define the PINN neural network
class PINN(nn.Module):
def __init__(self):
super(PINN, self).__init__()
self.net = nn.Sequential(
nn.Linear(1, 20),
nn.Tanh(),
nn.Linear(20, 20),
nn.Tanh(),
nn.Linear(20, 1)
)
def forward(self, x):
return self.net(x)
# Function to compute the loss
def compute_loss(model, x, T0, T1):
x = x.requires_grad_(True)
T = model(x)
# Compute derivatives
dT_dx = torch.autograd.grad(T, x, grad_outputs=torch.ones_like(T), create_graph=True)[0]
d2T_dx2 = torch.autograd.grad(dT_dx, x, grad_outputs=torch.ones_like(dT_dx), create_graph=True)[0]
# Physics loss (d^2T/dx^2 = 0)
physics_loss = torch.mean(d2T_dx2**2)
# Boundary conditions
T_left = model(torch.tensor([[0.0]]))
T_right = model(torch.tensor([[1.0]]))
bc_loss = (T_left - T0)**2 + (T_right - T1)**2
return physics_loss + bc_loss
# Training function
def train_pinn(T0, T1, epochs=1000):
model = PINN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
x = torch.linspace(0, 1, 100).reshape(-1, 1)
for epoch in range(epochs):
optimizer.zero_grad()
loss = compute_loss(model, x, T0, T1)
loss.backward()
optimizer.step()
if epoch % 100 == 0:
print(f"Epoch {epoch}, Loss: {loss.item():.6f}")
return model
# Function to plot results
def plot_results(model, T0, T1):
x = torch.linspace(0, 1, 100).reshape(-1, 1)
with torch.no_grad():
T_pred = model(x).numpy()
x = x.numpy()
T_analytical = T0 + (T1 - T0) * x
plt.figure(figsize=(8, 6))
plt.plot(x, T_pred, label="PINN Solution")
plt.plot(x, T_analytical, '--', label="Analytical Solution")
plt.xlabel("x")
plt.ylabel("Temperature")
plt.title("1D Steady-State Heat Conduction")
plt.legend()
plt.grid(True)
plt.show()
# GUI Application
class PINNApp:
def __init__(self, root):
self.root = root
self.root.title("PINN 1D Heat Conduction Solver")
# Labels and Entries
ttk.Label(root, text="T0 (Left Boundary, ยฐC):").grid(row=0, column=0, padx=5, pady=5)
self.T0_entry = ttk.Entry(root)
self.T0_entry.grid(row=0, column=1, padx=5, pady=5)
self.T0_entry.insert(0, "100")
ttk.Label(root, text="T1 (Right Boundary, ยฐC):").grid(row=1, column=0, padx=5, pady=5)
self.T1_entry = ttk.Entry(root)
self.T1_entry.grid(row=1, column=1, padx=5, pady=5)
self.T1_entry.insert(0, "0")
ttk.Label(root, text="Epochs:").grid(row=2, column=0, padx=5, pady=5)
self.epochs_entry = ttk.Entry(root)
self.epochs_entry.grid(row=2, column=1, padx=5, pady=5)
self.epochs_entry.insert(0, "1000")
# Solve Button
self.solve_button = ttk.Button(root, text="Solve & Plot", command=self.solve)
self.solve_button.grid(row=3, column=0, columnspan=2, pady=10)
def solve(self):
try:
T0 = float(self.T0_entry.get())
T1 = float(self.T1_entry.get())
epochs = int(self.epochs_entry.get())
model = train_pinn(T0, T1, epochs)
plot_results(model, T0, T1)
except ValueError:
tk.messagebox.showerror("Error", "Please enter valid numerical values.")
# Run the GUI
if __name__ == "__main__":
root = tk.Tk()
app = PINNApp(root)
root.mainloop()
Diatas ini merupakan coding yang kemudian akan saya jalankan di VS Code, setelah ini saya akan menjelaskan detail untuk setiap kodenya secara terpisah seperti dibawah ini:
- Import Library
import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
import tkinter as tk
from tkinter import ttk
Penjelasan Untuk masing-masing library yang saya gunakan:
- torch: Library utama PyTorch untuk komputasi tensor dan pembelajaran mesin, digunakan untuk membangun dan melatih jaringan saraf.
- torch.nn as nn: Modul PyTorch untuk mendefinisikan jaringan saraf, seperti lapisan linear (nn.Linear) dan fungsi aktivasi (nn.Tanh).
- numpy as np: Library untuk komputasi numerik, digunakan untuk mengelola array dan operasi matematika.
- matplotlib.pyplot as plt: Library untuk visualisasi data, digunakan untuk membuat grafik solusi PINN daan solusi analitik.
- tkinter as tk dan ttk: Library untuk membuat antarmuka grafis (GUI), memungkinkan pengguna memasukkan parameter seperti suhu batas dan jumlah epoch.
- Define the PINN neural network
# Define the PINN neural network
class PINN(nn.Module):
def __init__(self):
super(PINN, self).__init__()
self.net = nn.Sequential(
nn.Linear(1, 20),
nn.Tanh(),
nn.Linear(20, 20),
nn.Tanh(),
nn.Linear(20, 1)
)
def forward(self, x):
return self.net(x)
Penjelasan:
- Kelas PINN:
- Kelas ini mewarisi nn.Module, yang merupakan kelas dasar PyTorch untuk semua jaringan saraf.
- Jaringan saraf didefinisikan dalam metode __init__ menggunakan nn.Sequential, yang memungkinkan kita menyusun lapisan secara berurutan.
- Arsitektur Jaringan:
- Lapisan 1: nn.Linear(1, 20) – Lapisan linear dengan 1 neuron input (koordinat x) dan 20 neuron output.
- Aktivasi 1: nn.Tanh() – Fungsi aktivasi Tanh untuk menambahkan non-linearitas.
- Lapisan 2: nn.Linear(20, 20) – Lapisan linear dengan 20 neuron input dan 20 neuron output.
- Aktivasi 2: nn.Tanh() – Fungsi aktivasi Tanh lagi.
- Lapisan 3: nn.Linear(20, 1) – Lapisan linear dengan 20 neuron input dan 1 neuron output (suhu T(x)).
- Metode forward:
- Metode ini mendefinisikan alur data melalui jaringan saraf. Input x (koordinat spasial) dilewatkan melalui jaringan untuk menghasilkan output T(x), yaitu prediksi suhu.
- Fungsi Perhitungan Loss (compute_loss)
Function to compute the loss
def compute_loss(model, x, T0, T1):
x = x.requires_grad_(True)
T = model(x)
# Compute derivatives
dT_dx = torch.autograd.grad(T, x, grad_outputs=torch.ones_like(T), create_graph=True)[0]
d2T_dx2 = torch.autograd.grad(dT_dx, x, grad_outputs=torch.ones_like(dT_dx), create_graph=True)[0]
# Physics loss (d^2T/dx^2 = 0)
physics_loss = torch.mean(d2T_dx2**2)
# Boundary conditions
T_left = model(torch.tensor([[0.0]]))
T_right = model(torch.tensor([[1.0]]))
bc_loss = (T_left - T0)**2 + (T_right - T1)**2
return physics_loss + bc_loss
Penjelasan:
- Tujuan Fungsi:
- Fungsi ini menghitung total loss yang digunakan untuk melatih jaringan saraf, dengan memastikan solusi memenuhi hukum fisika dan kondisi batas.
- Parameter:
- model: Jaringan saraf PINN.
- x: Tensor berisi koordinat x (dalam rentang [0, 1]).
- T0: Suhu pada batas kiri (x=0 ).
- T1: Suhu pada batas kanan (x=1).
- Langkah-langkah:
- x = x.requires_grad_(True): Mengaktifkan pelacakan gradien pada tensor x, sehingga turunan dapat dihitung.
- T = model(x): Menghitung prediksi suhu T(x) dengan memasukkan x ke jaringan saraf.
- Menghitung Turunan:
- Turunan pertama dihitung menggunakan torch.autograd.grad.
- Turunan kedua dihitung dengan menghitung turunan dari dT_dx.
- Loss Fisika:
- Dalam kondisi steady-state, persamaan panas sebagai berikut:

- Loss fisika dihitung sebagai rata-rata kuadrat dari persamaan panas diatas sehingga jaringan saraf belajar untuk membuatnya mendekati nol.
- Loss Kondisi Batas:
- T_left: Prediksi suhu pada x=0
- T_right: Prediksi suhu pada x=1
- Loss kondisi batas dihitung sebagai kuadrat selisih antara prediksi dan nilai sebenarnya:

- Total Loss:
- Total loss adalah penjumlahan loss fisika dan loss kondisi batas, yang akan diminimalkan selama pelatihan.
- Fungsi Training
# Training function
def train_pinn(T0, T1, epochs=1000):
model = PINN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
x = torch.linspace(0, 1, 100).reshape(-1, 1)
for epoch in range(epochs):
optimizer.zero_grad()
loss = compute_loss(model, x, T0, T1)
loss.backward()
optimizer.step()
if epoch % 100 == 0:
print(f"Epoch {epoch}, Loss: {loss.item():.6f}")
return model
Penjelasan:
Tujuan Fungsi:
- Fungsi ini melatih jaringan saraf PINN untuk menghasilkan solusi yang memenuhi persamaan panas dan kondisi batas.
Parameter:
- T0: Suhu pada batas kiri.
- T1: Suhu pada batas kanan.
- epochs: Jumlah iterasi pelatihan (default: 1000).
Langkah-langkah:
- model = PINN(): Membuat instance jaringan saraf PINN.
- optimizer = torch.optim.Adam(model.parameters(), lr=0.001): Menggunakan optimizer Adam dengan learning rate 0.001 untuk mengoptimalkan parameter jaringan saraf (weights dan biases).
- x = torch.linspace(0, 1, 100).reshape(-1, 1): Membuat 100 titik acak dalam rentang xโ[0,1] x \in [0, 1] xโ[0,1], yang akan digunakan untuk menghitung loss fisika.
- Loop Pelatihan:
- optimizer.zero_grad(): Mengatur gradien ke nol untuk iterasi baru.
- loss = compute_loss(model, x, T0, T1): Menghitung total loss.
- loss.backward(): Menghitung gradien loss terhadap parameter jaringan saraf.
- optimizer.step(): Memperbarui parameter jaringan saraf berdasarkan gradien.
- Setiap 100 epoch, nilai loss dicetak untuk memantau proses pelatihan.
- Output:
- Fungsi mengembalikan model yang telah dilatih.
- Fungsi Visualisasi/ Plot
# Function to plot results
def plot_results(model, T0, T1):
x = torch.linspace(0, 1, 100).reshape(-1, 1)
with torch.no_grad():
T_pred = model(x).numpy()
x = x.numpy()
T_analytical = T0 + (T1 - T0) * x
plt.figure(figsize=(8, 6))
plt.plot(x, T_pred, label="PINN Solution")
plt.plot(x, T_analytical, '--', label="Analytical Solution")
plt.xlabel("x")
plt.ylabel("Temperature")
plt.title("1D Steady-State Heat Conduction")
plt.legend()
plt.grid(True)
plt.show()
Penjelasan:
Tujuan Fungsi:
- Fungsi ini memvisualisasikan solusi PINN dan membandingkannya dengan solusi analitik.
Parameter:
- model: Jaringan saraf PINN yang telah dilatih.
- T0: Suhu pada batas kiri.
- T1: Suhu pada batas kanan.
Langkah-langkah:
- x = torch.linspace(0, 1, 100).reshape(-1, 1): Membuat 100 titik dalam rentang xโ[0,1] x \in [0, 1] xโ[0,1].
- with torch.no_grad(): Menonaktifkan pelacakan gradien untuk efisiensi, karena kita hanya ingin prediksi, bukan pelatihan.
- T_pred = model(x).numpy(): Menghitung prediksi suhu T(x) T(x) T(x) menggunakan model, lalu mengonversi ke array NumPy.
- x = x.numpy(): Mengonversi tensor x x x ke array NumPy untuk plotting.
- T_analytical = T0 + (T1 – T0) * x: Menghitung solusi analitik, yang dalam kondisi steady-state adalah profil suhu linier: T(x)=T0+(T1โT0)x T(x) = T_0 + (T_1 – T_0)x T(x)=T0โ+(T1โโT0โ)x.
- Plotting:
- Membuat grafik dengan ukuran 8×6 inci.
- Plot solusi PINN (T_pred) dengan garis solid.
- Plot solusi analitik (T_analytical) dengan garis putus-putus.
- Menambahkan label sumbu, judul, legenda, dan grid, lalu menampilkan grafik.
- Implementasi GUI
# GUI Application
class PINNApp:
def __init__(self, root):
self.root = root
self.root.title("PINN 1D Heat Conduction Solver")
# Labels and Entries
ttk.Label(root, text="T0 (Left Boundary, ยฐC):").grid(row=0, column=0, padx=5, pady=5)
self.T0_entry = ttk.Entry(root)
self.T0_entry.grid(row=0, column=1, padx=5, pady=5)
self.T0_entry.insert(0, "100")
ttk.Label(root, text="T1 (Right Boundary, ยฐC):").grid(row=1, column=0, padx=5, pady=5)
self.T1_entry = ttk.Entry(root)
self.T1_entry.grid(row=1, column=1, padx=5, pady=5)
self.T1_entry.insert(0, "0")
ttk.Label(root, text="Epochs:").grid(row=2, column=0, padx=5, pady=5)
self.epochs_entry = ttk.Entry(root)
self.epochs_entry.grid(row=2, column=1, padx=5, pady=5)
self.epochs_entry.insert(0, "1000")
# Solve Button
self.solve_button = ttk.Button(root, text="Solve & Plot", command=self.solve)
self.solve_button.grid(row=3, column=0, columnspan=2, pady=10)
def solve(self):
try:
T0 = float(self.T0_entry.get())
T1 = float(self.T1_entry.get())
epochs = int(self.epochs_entry.get())
model = train_pinn(T0, T1, epochs)
plot_results(model, T0, T1)
except ValueError:
tk.messagebox.showerror("Error", "Please enter valid numerical values.")
Penjelasan:
Kelas PINNApp:
- Kelas ini membuat antarmuka grafis (GUI) menggunakan Tkinter, memungkinkan pengguna memasukkan parameter dan menjalankan simulasi.
Metode __init__:
- Menginisialisasi jendela utama (root) dengan judul “PINN 1D Heat Conduction Solver”.
- Membuat tiga kolom input:
- T0 (Left Boundary): Kolom untuk memasukkan suhu pada batas kiri, dengan nilai default 100ยฐC.
- T1 (Right Boundary): Kolom untuk memasukkan suhu pada batas kanan, dengan nilai default 0ยฐC.
- Epochs: Kolom untuk memasukkan jumlah epoch, dengan nilai default 1000.
- Membuat tombol “Solve & Plot” yang memanggil metode solve saat diklik.
Metode solve:
- Mengambil nilai dari kolom input (T0, T1, epochs) dan mengonversinya ke tipe data yang sesuai (float untuk T0 dan T1, int untuk epochs).
- Memanggil fungsi train_pinn untuk melatih model dengan parameter yang diberikan.
- Memanggil fungsi plot_results untuk menampilkan grafik solusi.
- Jika terjadi kesalahan (misalnya, pengguna memasukkan nilai non-numerik), menampilkan pesan error menggunakan tk.messagebox.showerror.
- Run GUI
# Run the GUI
if __name__ == "__main__":
root = tk.Tk()
app = PINNApp(root)
root.mainloop()
Penjelasan:
Blok Utama:
- Membuat instance jendela utama Tkinter (tk.Tk()).
- Membuat instance aplikasi PINNApp dengan jendela utama sebagai argumen.
- Menjalankan loop utama Tkinter (root.mainloop()) untuk menampilkan GUI dan menangani interaksi pengguna.
Seperti yang telah dijelaskan sebelumnya, PINN memenuhi semua 33 kriteria DAI5 mulai dari kesadaran diri, niat untuk kebermanfaatan, pemahaman fundamental, simplifikasi efektif, hingga eksekusi terstruktur. DAI5 memastikan bahwa setiap langkah dalam penggunaan PINN tidak hanya berfokus pada aspek teknis, tetapi juga pada nilai-nilai spiritual, etika, dan kebermanfaatan, sehingga proses analisis menjadi bentuk ibadah untuk memahami ciptaan Allah SWT.
Saya disini kemudian akan melakukan evaluasi penggunaan DAI5 dalam memahami prinsip dan algoritma metode PINN dalam menyelesaikan permasalahan Heat Conduction 1D, berikut adalah penjabarannya:
Deep Awareness of I
Tahapan yang mengutamakan kesadaran mendalam antara manusia dengan Allah SWT, kesadaran ini dianggap sebagai dasar dalam menyelesaikan masalah teknis yang dalam kasus ini adalah Heat Conduction 1D pada sebuah batang
- Conscious of Purpose
PINN digunakan untuk memahami distribusi suhu dalam Heat Conduction 1D, dengan tujuan akhir memberikan manfaat praktis, seperti desain sistem termal. Kesadaran ini mencerminkan pemahaman bahwa fenomena perpindahan panas adalah ciptaan Allah SWT (Sang Pencipta), dan saya menggunakan PINN untuk mengungkap keteraturan-Nya, bukan hanya sebagai isu teknis, tetapi sebagai bagian dari kehendak-Nya. - Self-awareness
Dengan menggunakan metode PINN, saya menyadari keterbatasan metode tradisional seperti FDM dan FEM serta keterbatasan manusia dalam komputasi numerik. PINN memungkinkan saya membuat keputusan yang lebih objektif, seperti memilih pendekatan yang lebih efisien, sesuai dengan prinsip-prinsip alam. - Ethical Considerations
Penggunaan PINN dilakukan dengan mempertimbangkan nilai moral seperti memastikan solusi tidak menyimpang dari hukum fisika sehingga hasilnya dapat dipercaya dan bermanfaat bagi masyarakat tanpa menimbulkan dampak negatif. - Integration of CCIT (Cara Cerdas Ingat Tuhan)
Dalam setiap langkah penggunaan metode PINN, saya mengingat Allah SWT sebagai Sang Pencipta hukum fisika yang mendasari persamaan panas sehingga proses analisis menjadi bentuk ibadah untuk memahami ciptaan-Nya. - Critical Reflection
Metode PINN mendorong saya untuk merefleksikan dampak spiritual dan sosial dari solusi yang dihasilkan seperti bagaimana distribusi suhu yang akurat dapat meningkatkan efisiensi energi yang pada akhirnya mendukung keberlanjutan lingkungan. - Continuum of Awareness
Proses penggunaan PINN dilakukan dengan kesadaran berkelanjutan bahwa hukum fisika adalah ciptaan Allah SWT sehingga saya terus belajar dan mengambil keputusan yang selaras dengan nilai-nilai keimanan.
Intention (Niat)
Tahapan ini berkaitan dengan penekanan pentingnya niat yang jelas agar tujuan yang ingin dicapai dapat terlaksana dengan baik
- Clarity of Intent
Niat saya menggunakan metode PINN sangat jelas yaitu menghasilkan solusi akurat untuk Heat Conduction 1D guna mendukung aplikasi teknik, dengan tujuan akhir mengingat Allah SWT sebagai Sang Pencipta hukum alam. - Alignment of Objectives
Tujuan penggunaan metode PINN selaras dengan prinsip kebaikan yaitu memberikan manfaat bagi umat manusia melalui teknologi yang lebih efisien seperti desain sistem termal yang hemat energi. - Relevance of Intent
Niat saya menggunakan metode PINN juga ternyata relevan dengan kebutuhan dunia nyata seperti efisiensi energi dan keberlanjutan, yang merupakan kebutuhan global saat ini. - Sustainability Focus
Solusi permasalahan Heat Conduction 1D menggunakan metode PINN memperhatikan dampak jangka panjang seperti efisiensi energi yang mendukung lingkungan, masyarakat, dan ekonomi, sejalan dengan prinsip keberlanjutan. - Focus on Quality
Dengan menggunakan metode PINN maka solusi yang dihasilkan berkualitas tinggi, akurat, dan andal, seperti ditunjukkan oleh peningkatan akurasi dengan jumlah epoch yang lebih banyak (misalnya, dengan 7000 epoch maka sudah mendekati hasil jika dilakukan perhitungan dengan analitis seperti menggunakan kalkulus elementer).
Initial Thinking (about the problem)
Tahapan ini adalah proses memahami permasalahan secara detail dan mendalam sebelum dilakukan proses penyelesaian
- Problem Understanding
Metode PINN memungkinkan kita memahami masalah heat conduction 1D secara mendalam, dengan mengidentifikasi persamaan panas yaitu:
serta kondisi batas seperti:

- Stakeholder Awareness
Saya mempertimbangkan semua pihak yang terdampak, seperti insinyur yang akan menggunakan solusi ini untuk desain sistem termal serta masyarakat yang akan merasakan manfaatnya. - Contextual Analysis
Metode PINN diterapkan dalam konteks fisik (persamaan panas), sosial (manfaat bagi masyarakat), dan teknis (efisiensi komputasi), memastikan solusi relevan dengan kebutuhan. - Root Cause Analysis
Metode PINN mengidentifikasi penyebab utama masalah seperti keterbatasan metode tradisional (biaya komputasi tinggi, diskritisasi grid), dan menawarkan solusi dengan pendekatan berbasis jaringan sara - Relevance of Analysis
Analisis menggunakan metode PINN relevan dan aplikatif karena solusi distribusi suhu dapat langsung diterapkan dalam desain teknik. - Use of Data and Evidence
Penyelesaian permasalahan dengan metode PINN menggunakan data yang valid, seperti kondisi batas dan data simulasi, untuk mendukung analisis, memastikan solusi akurat dan sesuai hukum fisika.
Idealization
Tahapan ini berkaitan dengan penyederhanaan permasalahan dimana saya menggunakan contoh Heat Conduction 1D pada sebuah batang
- Assumption Clarity
Metode PINN menjelaskan asumsi dengan jelas, seperti kondisi steady-state dan konduksi panas hanya dalam satu dimensi serta relevansinya dengan hukum fisika. - Creativity and Innovation
Metode PINN adalah solusi kreatif yang menggabungkan jaringan saraf dengan hukum fisika, menawarkan pendekatan baru yang lebih efisien dibandingkan metode tradisional. - Physical Realism
Solusi dari hasil penggunaan metode PINN sesuai dengan hukum fisika, seperti Hukum Kesetimbangan Energi dan Hukum Fourier, memastikan hasilnya realistis dan dapat dipercaya. - Alignment with Intent
Solusi permasalahan dengan metode PINN sebagai penyelesaian selaras dengan niat awal yaitu memberikan manfaat melalui distribusi suhu yang akurat untuk aplikasi teknik. - Scalability and Adaptability
Metode PINN dapat diterapkan pada berbagai konteks, seperti heat conduction 2D atau masalah PDE lainnya, menunjukkan skalabilitas dan adaptabilitasnya. - Simplicity and Elegance
Metode PINN menawarkan solusi yang sederhana namun efektif, tanpa memerlukan diskritisasi grid, dengan hasil yang mulus dan sesuai hukum fisika.
Instruction-Set
Tahapan berupa penerapan solusi penyelesaian permasalahan terkait Heat Conduction 1D dalam bentuk langkah-langkah yang terorganisasi
- Clarity of Steps
Proses penyelesain menggunakan metode PINN dijelaskan dengan jelas: definisi jaringan saraf, perhitungan loss function, pelatihan dengan optimizer, dan validasi hasil, sehingga mudah diikuti. - Comprehensiveness
Metode PINN mencakup semua aspek penting, seperti loss fisika, loss kondisi batas, dan validasi dengan solusi analitik, tanpa ada bagian yang terlewat. - Physical Interpretation
Solusi penyelesaian permasalahan menggunakan metode PINN dapat diinterpretasikan secara fisik, seperti profil suhu linier yang sesuai dengan Hukum Kesetimbangan Energi, memberikan makna yang jelas dalam konteks fisika.
Berikut adalah hasil prediksi menggunakan PINN:
- Epochs 1000

- Epochs 3000

- Epoch 7000

PINN ini dibatasi dengan hukum fisikanya sehingga akan berbading dengan boundary conditionnya. Seharusnya di kiri 100 derajat C, epoch 1000 hasilnya masih 20 derajat. Kemudian dinaikanย dan ternyata hasilnya semakin dekat maka belajarnya benar. Kalau makin dekat boundary condition, maka hasilnya sudah dapat diterima. Tinggal kita tetapkan aja berapa banyak errornya.
- Error Minimization
Metode PINN dirancang untuk meminimalkan kesalahan melalui optimasi loss function, dengan akurasi yang meningkat seiring jumlah epochย - Verification and Validation
Metode PINN memverifikasi dan memvalidasi solusi dengan membandingkannya dengan solusi analitik, memastikan hasilnya akurat dan dapat dipercaya.
Jika dibandingkan antara prediksi dengan Epochs 1000 dan 7000 terlihat bawah hasil degan epoch 7000 sudah mendekati hasil analitik serta memiliki loss yang lebih kecil. Berikut penjabarannya:
- Epochs 1000

- Epochs 7000

- Iterative Approach
Metode PINN menggunakan pendekatan iteratif, dengan pelatihan berulang hingga solusi konvergen, memungkinkan perbaikan berkelanjutan jika diperlukan. - Sustainability Integration
Solusi permasalahan menggunakan metode PINN mendukung keberlanjutan lingkungan, sosial, dan ekonomi, seperti efisiensi energi dalam desain sistem termal. - Communication Effectiveness
Proses dan hasil penyelesaiannya menggunakan metode PINN disampaikan dengan cara yang mudah dipahami, seperti visualisasi grafik yang membandingkan solusi PINN dengan solusi analitik. - Alignment with the DAI5 Framework
Metode PINN selaras dengan langkah-langkah DAI5, dari kesadaran diri hingga eksekusi terstruktur, memastikan prosesnya konsisten dengan nilai-nilai keimanan. - Documentation Quality
Proses penyelesaian permasalahan dengan metode PINN didokumentasikan dengan jelas, lengkap, dan profesional, seperti langkah-langkah algoritma dan hasil validasi, memudahkan pemahaman dan replikasi.
Demikian pembahasan saya pada blog kali ini, terima kasih telah membaca. Semoga semua informasi yang telah saya jabarkan sebelumnya dapat bermanfaat.