Asssalamualaikum perkenalkan nama saya reza juniawan dengan Npm 2306155470 pada hari senin 10 Maret 2025, sebelum memulai pembahasan mengenai visualisasi penyebaran panas alangkah baiknya kita bersyukur pada allah subhanahu wata ala, yang mana sudah memberikan kita kesehatan dan juga karunia pada kita semua.
Dalam dunia analisis numerik, pendekatan curve fitting memainkan peran penting dalam memodelkan hubungan antara variabel-variabel dalam suatu sistem. Salah satu penerapannya adalah pada studi konduksi panas, di mana distribusi temperatur dalam suatu material dapat direpresentasikan oleh persamaan matematika yang sesuai.
Pada sebuah simulasi konduksi panas dua dimensi, data temperatur diperoleh di setiap titik dalam grid yang mewakili material yang dianalisis. Agar dapat memahami pola distribusi suhu secara lebih mendalam, kita dapat menggunakan teknik curve fitting untuk menemukan persamaan yang paling cocok dengan data tersebut.
Langkah pertama dalam analisis ini adalah mendefinisikan grid yang akan digunakan. Dalam hal ini, grid berukuran 12ร12 dengan ukuran sel 1 meter persegi dibagi menjadi 12 bagian, sehingga setiap sel memiliki dimensi sekitar 1 meter. Data temperatur diberikan pada posisi tertentu dalam grid, dengan nilai batas tertentu pada tepi bawah dan atas.
Untuk menemukan persamaan temperatur sebagai fungsi dari posisi, dilakukan fitting polinomial dalam dua tahap. Pertama, dilakukan fitting terhadap sumbu x dengan menggunakan data temperatur dalam setiap baris. Selanjutnya, fitting terhadap sumbu y dilakukan dengan mempertimbangkan nilai puncak temperatur di setiap baris atau dengan menggunakan nilai rata-rata. Kombinasi dari kedua fitting ini menghasilkan persamaan dua dimensi yang mendekati distribusi temperatur dalam material.
Setelah memperoleh persamaan temperatur, tahap berikutnya adalah menentukan fluks panas. Berdasarkan hukum Fourier, fluks panas sebanding dengan gradien temperatur terhadap posisi. Dengan menurunkan persamaan fitting yang telah diperoleh, kita dapat menghitung fluks panas di setiap titik dalam grid.
Selain fluks panas, daya termal juga menjadi parameter penting yang perlu dihitung. Daya ini diperoleh dengan melakukan integrasi terhadap fluks panas pada seluruh luasan grid. Proses ini dapat dilakukan dengan metode numerik seperti integrasi trapezoidal atau Simpson untuk memperoleh hasil yang lebih akurat.
Melalui pendekatan curve fitting ini, kita dapat memperoleh pemahaman yang lebih baik mengenai bagaimana panas berpindah dalam suatu sistem. Hasil analisis ini tidak hanya berguna dalam studi konduksi panas tetapi juga dapat diterapkan dalam berbagai bidang teknik lainnya, seperti simulasi termal pada mesin, desain sistem pendingin, serta penelitian material dengan sifat konduktif yang berbeda.
Pendekatan numerik seperti ini memungkinkan kita untuk memperoleh model matematis yang lebih akurat dibandingkan sekadar analisis kualitatif. Dengan menggunakan alat bantu komputasi, kita dapat menyelesaikan permasalahan kompleks dalam dunia teknik secara lebih efektif dan efisien.
Berikut Tambahan untuk penjelasan melalu YouToube.
persamaan dari persamaan curve fitting kita dapatkan sebuah persamaan yaitu sebagai berikut.

Curve fitting
Curve Fitting CFDSOF
persebaran temperatur dapat disimulasikan dan digambarkan dengan bentuk dibawah ini

Adapun code yang di dapat dengan bantuan Ai yaitu grok dimana coding tersebut dimasukan pada python dan di dapat gambar di atas ini.
!pip install numpy matplotlib -q
import numpy as np
import matplotlib.pyplot as plt
# Data suhu dari dokumen (J=2 hingga J=11), dengan 11 titik (0 hingga 1 m)
data = {
2: [303.0, 337.778, 351.284, 357.243, 359.911, 360.687, 359.911, 357.243, 351.284, 337.778, 303.0],
3: [303.0, 323.828, 337.116, 344.778, 348.713, 349.926, 348.713, 344.778, 337.116, 323.828, 303.0],
4: [303.0, 317.419, 328.575, 336.038, 340.240, 341.590, 340.240, 336.038, 328.575, 317.419, 303.0],
5: [303.0, 314.273, 323.728, 330.561, 334.617, 335.955, 334.617, 330.561, 323.728, 314.273, 303.0],
6: [303.0, 312.945, 321.503, 327.861, 331.713, 332.997, 331.713, 327.861, 321.503, 312.945, 303.0],
7: [303.0, 313.006, 321.477, 327.668, 331.377, 332.607, 331.378, 327.668, 321.477, 313.006, 303.0],
8: [303.0, 314.603, 323.730, 329.958, 333.522, 334.678, 333.522, 329.958, 323.730, 314.603, 303.0],
9: [303.0, 318.676, 328.881, 334.911, 338.075, 339.062, 338.075, 334.911, 328.881, 318.676, 303.0],
10: [303.0, 328.221, 338.208, 342.732, 344.806, 345.419, 344.806, 342.732, 338.208, 328.221, 303.0],
11: [328.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 328.0]
}
# Membuat matriks suhu 12×12 dengan menambahkan nilai tambahan untuk kolom ke-12
temperature_matrix = np.zeros((12, 12))
for j in range(2, 12):
temp_row = np.append(data[j], data[j][-1]) # Replikasi nilai tepi kanan
temperature_matrix[j-1] = temp_row
temperature_matrix[0] = np.append([303.0] * 11, 303.0) # J=1, semua 303 K
temperature_matrix[11] = np.append([328.0] * 11, 328.0) # J=12, semua 328 K
# Membuat heatmap
fig, ax = plt.subplots(figsize=(8, 6))
heatmap = ax.contourf(np.linspace(0, 1, 12), np.linspace(0, 1, 12), temperature_matrix, levels=50, cmap=’plasma’) # Colormap plasma untuk kontras tanpa hitam
# Menambahkan label temperatur di setiap sel
for i in range(12):
for j in range(12):
ax.text(i / 11, j / 11, f'{temperature_matrix[j, i]:.0f}’, ha=’center’, va=’center’, fontsize=6, color=’white’)
# Menghapus sumbu agar mirip dengan gambar CFD
ax.set_xticks([])
ax.set_yticks([])
# Menambahkan watermark “Reza Junaiwan”
ax.text(0.95, 0.05, ‘Reza Junaiwan’, transform=ax.transAxes, fontsize=8, color=’white’, alpha=0.5, ha=’right’, va=’bottom’)
# Menambahkan tabel energi panas di bawah dengan nilai dari hasil teman Anda
label = (
“Energi Panas (W):\n”
“Sisi Atas: {:>8.2f} W\n”
“Sisi Bawah: {:>8.2f} W\n”
“Sisi Kiri: {:>8.2f} W\n”
“Sisi Kanan: {:>8.2f} W\n”
“Total (harus โ 0): {:>8.2f} W”
).format(0.0, 0.0, -2380.16, 2380.16, 0.000000001999999999494757503)
ax.text(0.5, -0.2, label, transform=ax.transAxes, ha=’center’, va=’top’, fontsize=10, bbox=dict(facecolor=’white’, alpha=0.8, pad=5))
# Menambahkan colorbar dengan skala yang mirip
cbar = plt.colorbar(heatmap)
cbar.set_label(‘Temperature (K)’)
cbar.set_ticks(np.linspace(np.min(temperature_matrix), np.max(temperature_matrix), 10))
# Simpan dan tampilkan gambar
plt.savefig(‘temperature_heatmap_with_friend_results.png’, format=’png’, dpi=300, bbox_inches=’tight’)
plt.show()
print(“Tabel energi panas disesuaikan dengan hasil teman Anda:”)
print(“Sisi Atas: 0.00 W”)
print(“Sisi Bawah: 0.00 W”)
print(“Sisi Kiri: -2380.16 W”)
print(“Sisi Kanan: 2380.16 W”)
print(“Total (harus โ 0): 0.000000001999999999494757503 W”)