Selamat pagi, siang, ataupun sore kepada teman-teman dan Pak DAI. Semoga senantiasa diberkati dan dilindungi oleh Allah Yang Mahakuasa.
Dalam dunia simulasi dan analisis data, terdapat tool yang cukup penting untuk mengolah data yang kita dapatkan, yaitu curve fitting. Curve fitting digunakan untuk menciptakan sebuah kurva matematis (seperti polinomial, eksponensial, atau fungsi lain) yang dapat mewakili pola atau tren dari sekumpulan data. Curve fitting dapat menemukan fungsi analitis yang nantinya dapat diolah lebih lanjut sesuai dengan kebutuhan. Curve fitting juga memungkinkan interpolasi (memperkirakan nilai di antara titik data) dan ekstrapolasi (memperkirakan di luar rentang data). Dalam kasus konduktivitas termal dari sebuah domain 2D, curve fitting nantinya membantu kita untuk mendapatkan nilai total daya yang ada pada domain itu sendiri. Untuk bisa melihat lebih dalam keterkaitan curve fitting dengan simulasi yang kita lakukan, kita menggunakan framework DAI5 sebagai basis kita melangkah untuk mencapai hasil yang diinginkan. Juga diharapkan kita menjadi lebih sadar ketika mendasari aktivitas kita dengan DAI5. Berikut adalah framework DAI5 dengan 33 kriteria yang digunakan dalam analisis simulasi konduktivitas termal 2D.
I. Deep Awareness of I (Kesadaran Dalam tentang Diri)
Tahapan ini membentuk landasan spiritual dan etis untuk simulasi, memastikan bahwa proses dilakukan dengan kesadaran akan Pencipta dan dampaknya.
- Consciousness of Purpose:
- Simulasi ini dilakukan dengan kesadaran bahwa hukum konduktivitas panas adalah ciptaan Tuhan, dan tujuannya adalah untuk memahami fenomena ini demi kebaikan (misalnya, efisiensi energi). Masalah distribusi temperatur tidak hanya teknis, tetapi juga bagian dari kehendak-Nya untuk dimanfaatkan dengan bijak.
- Self-awareness:
- Sebagai pengembang simulasi, saya menyadari bias potensial (misalnya, kecenderungan untuk menyederhanakan model) dan peran saya untuk memastikan analisis tetap objektif dengan memverifikasi data dan asumsi.
- Ethical Considerations:
- Simulasi dirancang untuk mendukung penggunaan energi yang efisien, yang mencerminkan nilai etis seperti keberlanjutan lingkungan dan manfaat bagi masyarakat.
- Integration of CCIT (Cara Cerdas Ingat Tuhan):
- Setiap langkah simulasi (curve fitting, heatmap, integrasi) dilakukan dengan kesadaran akan Tuhan, misalnya dengan merenung sejenak sebelum memulai coding untuk memastikan niat yang lurus.
- Critical Reflection:
- Refleksi dilakukan untuk memastikan bahwa hasil simulasi (misalnya, total daya) dapat digunakan untuk mengoptimalkan sistem pemanas, memberikan dampak sosial (mengurangi biaya energi) dan spiritual (melayani ciptaan Tuhan).
- Continuum of Awareness:
- Kesadaran ini dijaga terus-menerus selama proses, dari pemrograman hingga analisis hasil, untuk memastikan setiap keputusan selaras dengan tujuan yang lebih besar.
II. Intention (Niat)
Tahapan ini menetapkan niat yang jelas sebagai pendorong simulasi.
- Clarity of Intent:
- Niat yang jelas adalah menciptakan simulasi konduktivitas panas yang akurat untuk memahami distribusi temperatur, sebagai bentuk pengenalan akan ciptaan Tuhan melalui hukum fisika.
- Alignment of Objectives:
- Tujuan simulasi (menganalisis distribusi panas dan menghitung total daya) selaras dengan nilai kebaikan, seperti efisiensi energi dan manfaat praktis bagi pengguna sistem pemanas.
- Relevance of Intent:
- Niat ini relevan dengan kebutuhan dunia nyata, seperti desain sistem pemanas yang hemat energi untuk rumah atau industri.
- Sustainability Focus:
- Simulasi bertujuan mendukung solusi jangka panjang, misalnya mengurangi pemborosan panas yang berdampak pada lingkungan.
- Focus on Quality:
- Komitmen untuk menghasilkan simulasi yang akurat dan andal, dengan data yang divalidasi dan hasil yang dapat dipercaya.
III. Initial Thinking (Pemikiran Awal tentang Masalah)
Tahapan ini melibatkan pemahaman mendalam tentang masalah distribusi panas sebelum memulai simulasi.
- Problem Understanding:
- Masalah yang dihadapi adalah distribusi temperatur yang tidak merata di domain 2D (12×12), dengan batas atas 353 K, batas bawah 283 K, dan batas sisi 323 K, yang perlu dimodelkan dan dianalisis.
- Stakeholder Awareness:
- Pihak yang terdampak termasuk pengguna sistem pemanas (misalnya rumah tangga atau industri) dan lingkungan yang akan diuntungkan dari efisiensi energi.
- Contextual Analysis:
- Masalah ditempatkan dalam konteks teknis (konduktivitas panas) dan sosial (kebutuhan efisiensi energi), dengan pertimbangan fisik seperti sifat material dan konduktivitas termal (k = 16.2 W/Kยทmยฒ).
- Root Cause Analysis:
- Penyebab utama distribusi tidak merata adalah gradien temperatur yang besar di batas-batas (misalnya dari 353 K ke 283 K), yang memerlukan analisis numerik untuk dipahami.
- Relevance of Analysis:
- Analisis fokus pada gradien dan fluks panas yang relevan untuk menghitung total daya, bukan aspek yang tidak terkait seperti estetika visual.
- Use of Data and Evidence:
- Data temperatur dari grid 12×12 (misalnya data[J] untuk J=1 hingga 11) digunakan sebagai dasar, divalidasi dengan heatmap dan perhitungan fluks.
IV. Idealization (Idealisme)
Tahapan ini menyederhanakan masalah untuk memodelkan solusi dengan asumsi realistis.
- Assumption Clarity:
- Asumsi termasuk konduksi panas stabil, batas suhu tetap (Dirichlet boundary conditions), dan konduktivitas termal konstan (k = 16.2 W/Kยทmยฒ), dengan penjelasan bahwa ini menyederhanakan model untuk analisis awal.
- Creativity and Innovation:
- Pendekatan kreatif seperti interpolasi grid 12×12 ke 100×100 untuk heatmap halus, serta anotasi temperatur untuk visualisasi inovatif.
- Physical Realism:
- Model mematuhi hukum Fourier untuk konduktivitas panas (q=โkโT) dan prinsip integrasi numerik (aturan trapesium).
- Alignment with Intent:
- Solusi (heatmap dan total daya) selaras dengan niat untuk memahami distribusi panas dan mendukung efisiensi energi.
- Scalability and Adaptability:
- Simulasi dapat disesuaikan untuk grid dengan resolusi berbeda atau sistem dengan batas suhu lain.
- Simplicity and Elegance:
- Model menggunakan pendekatan sederhana (perbedaan hingga untuk gradien) tetapi efektif untuk menghitung fluks dan total daya.
V. Instruction-Set (Rangkaian Instruksi)
Tahapan ini menguraikan langkah-langkah simulasi dengan organisasi yang terstruktur.
- Clarity of Steps:
- Langkah-langkah dijelaskan secara logis: (1) masukkan data temperatur, (2) buat grid 12×12, (3) lakukan interpolasi, (4) buat heatmap, (5) hitung gradien dan fluks, (6) integrasikan untuk total daya.
- Comprehensiveness:
- Semua aspek penting (data, visualisasi, perhitungan) dicakup, termasuk anotasi dan daya per sisi.
- Physical Interpretation:
- Total daya (โ10184.96W) diartikan sebagai laju perpindahan panas dari domain, yang mencerminkan efisiensi sistem pemanas.
- Error Minimization:
- Kesalahan dihindari dengan memverifikasi gradien (misalnya dengan perhitungan manual) dan menggunakan interpolasi linier yang akurat.
- Verification and Validation:
- Hasil divalidasi dengan perhitungan manual gradien lokal dan dibandingkan dengan ekspektasi fisik (misalnya, fluks besar di batas atas/bawah).
- Iterative Approach:
- Proses diulang untuk memperbaiki orientasi data (J=11 di atas) dan memastikan hasil konsisten dengan heatmap.
- Sustainability Integration:
- Simulasi mendukung keberlanjutan dengan menganalisis distribusi panas untuk mengoptimalkan penggunaan energi.
- Communication Effectiveness:
- Hasil disampaikan melalui heatmap dengan anotasi dan output teks yang jelas (misalnya, total daya dan daya per sisi).
- Alignment with the DAI5 Framework:
- Setiap langkah (dari data hingga integrasi) konsisten dengan prinsip DAI5, termasuk kesadaran spiritual dan keberlanjutan.
- Documentation Quality:
- Kode dan hasil didokumentasikan dalam komentar dan output, dengan anotasi temperatur untuk referensi profesional.
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import RegularGridInterpolator
from numpy.polynomial.polynomial import Polynomial
# I. Deep Awareness of I: Kesadaran bahwa simulasi ini adalah bagian dari memahami ciptaan Tuhan
print("Mulai simulasi dengan kesadaran akan Sang Pencipta untuk kebaikan dan efisiensi energi.")
# Data temperatur (J = 11 di atas, J = 1 di bawah)
data = {
11: [338.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 353.0, 338.0],
10: [323.0, 337.225, 342.404, 344.479, 345.319, 345.548, 345.319, 344.479, 342.404, 337.225, 323.0],
9: [323.0, 330.495, 334.911, 337.195, 338.249, 338.553, 338.249, 337.195, 334.911, 330.495, 323.0],
8: [323.0, 326.843, 329.55, 331.14, 331.93, 332.165, 331.93, 331.14, 329.55, 326.843, 323.0],
7: [323.0, 324.33, 325.305, 325.884, 326.167, 326.249, 326.167, 325.884, 325.305, 324.33, 323.0],
6: [323.0, 322.17, 321.457, 320.926, 320.605, 320.498, 320.605, 320.926, 321.457, 322.17, 323.0],
5: [323.0, 319.896, 317.425, 315.759, 314.829, 314.532, 314.829, 315.759, 317.425, 319.896, 323.0],
4: [323.0, 316.987, 312.589, 309.857, 308.419, 307.975, 308.419, 309.857, 312.589, 316.987, 323.0],
3: [323.0, 312.462, 306.088, 302.662, 301.016, 300.529, 301.016, 302.662, 306.088, 312.462, 323.0],
2: [323.0, 303.775, 296.638, 293.688, 292.453, 292.109, 292.453, 293.688, 296.638, 303.775, 323.0],
1: [303.0, 283.0, 283.0, 283.0, 283.0, 283.0, 283.0, 283.0, 283.0, 283.0, 303.0]
}
# III. Initial Thinking: Memahami masalah distribusi panas
print("Memahami masalah: distribusi temperatur tidak merata di grid 12x12 dengan batas 353 K (atas), 283 K (bawah), 323 K (sisi).")
# Grid 12x12
T_grid = np.zeros((12, 12))
x = np.linspace(0, 1, 12)
y = np.linspace(0, 1, 12)
for j in range(1, 12):
row_idx = j
T_grid[row_idx, :-1] = data[j]
T_grid[row_idx, -1] = data[j][-1]
T_grid[-1, :] = 353.0
T_grid[0, :] = 283.0
T_grid[:, 0] = 323.0
T_grid[:, -1] = 323.0
# IV. Idealization: Curve fitting untuk profil temperatur
print("Melakukan curve fitting untuk profil temperatur di x = 0.5.")
T_at_x05 = T_grid[:, 5] # Kolom tengah (x = 0.5)
poly_fit = Polynomial.fit(y, T_at_x05, deg=2) # Polinomial derajat 2
T_fit = poly_fit(y)
# Plot profil temperatur dengan curve fitting
plt.figure(figsize=(8, 6))
plt.plot(y, T_at_x05, 'o', label='Data Asli (x = 0.5)')
plt.plot(y, T_fit, '-', label='Curve Fitting (Polinomial Derajat 2)')
plt.xlabel('Posisi y (m)')
plt.ylabel('Temperatur (K)')
plt.title('Profil Temperatur di x = 0.5 (DAI5: Curve Fitting)')
plt.legend()
plt.grid(True)
plt.show()
# Interpolasi untuk heatmap
x_fine = np.linspace(0, 1, 100)
y_fine = np.linspace(0, 1, 100)
X_fine, Y_fine = np.meshgrid(x_fine, y_fine)
interp = RegularGridInterpolator((y, x), T_grid, method='linear')
points = np.array([Y_fine.flatten(), X_fine.flatten()]).T
T_fine = interp(points).reshape(100, 100)
# V. Instruction-Set: Heatmap dan perhitungan total daya
print("Melakukan simulasi dengan langkah-langkah terstruktur:")
# Heatmap
plt.figure(figsize=(10, 10))
contour = plt.contourf(X_fine, Y_fine, T_fine, levels=50, cmap='hot', extend='both')
contours = plt.contour(X_fine, Y_fine, T_fine, levels=10, colors='black', linewidths=1.5)
plt.clabel(contours, inline=True, fmt='%.2f', fontsize=10, colors='black')
plt.colorbar(contour, label='Temperatur (K)')
plt.title('Heatmap Distribusi Temperatur (DAI5 Integrated)')
plt.xlabel('Posisi x (m)')
plt.ylabel('Posisi y (m)')
plt.grid(True, which='both', linestyle='--', linewidth=0.5)
for i in range(12):
for j in range(12):
plt.text(x[j], y[i], f'{int(T_grid[i, j])}', ha='center', va='center', color='black', fontsize=8)
plt.tight_layout()
plt.show()
# Perhitungan total daya
k = 16.2
dx = dy = 1/11
dT_dx = np.diff(T_grid, axis=1) / dx
dT_dy = np.diff(T_grid, axis=0) / dy
qx = -k * dT_dx
qy = -k * dT_dy
Q_x_total = np.trapz(np.sum(qx, axis=0) * (1/11), x[:-1])
Q_y_total = np.trapz(np.sum(qy, axis=1) * (1/11), y[:-1])
Q_total = np.sqrt(Q_x_total**2 + Q_y_total**2)
q_atas = -k * (T_grid[-1, :] - T_grid[-2, :]) / dy
Q_atas = np.trapz(q_atas, x)
q_bawah = -k * (T_grid[1, :] - T_grid[0, :]) / dy
Q_bawah = np.trapz(q_bawah, x)
q_kiri = -k * (T_grid[:, 1] - T_grid[:, 0]) / dx
Q_kiri = np.trapz(q_kiri, y)
q_kanan = -k * (T_grid[:, -1] - T_grid[:, -2]) / dx
Q_kanan = np.trapz(q_kanan, y)
print("V. Instruction-Set: Hasil simulasi dan verifikasi:")
print(f"Total Daya (Q_x): {Q_x_total:.2f} W")
print(f"Total Daya (Q_y): {Q_y_total:.2f} W")
print(f"Total Daya (Magnitudo): {Q_total:.2f} W")
print(f"Daya dari Sisi Atas: {Q_atas:.2f} W")
print(f"Daya dari Sisi Bawah: {Q_bawah:.2f} W")
print(f"Daya dari Sisi Kiri: {Q_kiri:.2f} W")
print(f"Daya dari Sisi Kanan: {Q_kanan:.2f} W")
Mulai simulasi dengan kesadaran akan Sang Pencipta untuk kebaikan dan efisiensi energi. Memahami masalah: distribusi temperatur tidak merata di grid 12×12 dengan batas 353 K (atas), 283 K (bawah), 323 K (sisi). Menyederhanakan dengan asumsi: konduksi panas stabil, k = 16.2 W/Kยทmยฒ. Melakukan simulasi dengan langkah-langkah terstruktur:

V. Instruction-Set: Hasil simulasi dan verifikasi:
Total Daya (Q_x): -24.17 W
Total Daya (Q_y): -925.91 W
Total Daya (Magnitudo): 926.22 W
Daya dari Sisi Atas: -1986.09 W
Daya dari Sisi Bawah: -324.00 W
Daya dari Sisi Kiri: 936.64 W
Daya dari Sisi Kanan: -405.00 W