ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

| AI.DAI5 | DAI5 eBook Free Download | CFDSOF | VisualFOAM | PT CCIT Group Indonesia | 8N8 |

Memahami Perpindahan Panas dengan 33 Kriteria DAI5: Curve Fitting, Heatmap, dan Pendekatan Numerik – Rafi Radityatama Prasetyo 2306155376 – Metode Numerik 01 (Part 2)

Memahami Perpindahan Panas dengan 33 Kriteria DAI5: Curve Fitting, Heatmap, dan Pendekatan Numerik – Rafi Radityatama Prasetyo 2306155376 – Metode Numerik 01 (Part 2)

Bismillahirrahmanirrahim
Assalamu’alaikum Warahmatullahi Wabarakatuh

Melanjutkan pembahasan sebelumnya, saya, Rafi Radityatama Prasetyo (NPM 2306155376), akan kembali mengeksplorasi bagaimana curve fitting digunakan dalam analisis numerik serta bagaimana metode ini dievaluasi menggunakan framework DAI5. Dengan pendekatan ini, kita dapat semakin memahami keterkaitan antara ilmu teknik dengan nilai spiritual, etika, dan manfaatnya dalam kehidupan.

25. Comprehensiveness, simulasi ini mempertimbangkan semua aspek penting, termasuk kalor dan gradien temperatur, untuk memastikan perhitungan yang akurat. Dengan mempertimbangkan faktor-faktor ini, model yang dihasilkan dapat merepresentasikan perpindahan panas secara lebih realistis.
26. Physical Interpretation, untuk memahami hasil simulasi dengan lebih baik, data divisualisasikan dalam bentuk curve fitting plot dan heatmap, yang membantu melihat pola distribusi suhu dengan jelas. Setelah sebelumnya dijelaskan bagaimana proses curve fitting plot dilakukan, berikut ini adalah kode yang digunakan untuk mengimplementasikan metode tersebut.

import numpy as np
import matplotlib.pyplot as plt

# Full temperature data (J1 to J12)
temp_data = [
    [303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303],  # J1 (hidden)
    [303, 337.778, 351.284, 357.243, 359.911, 360.687, 359.911, 357.243, 351.284, 337.778, 303, 303],  # J2
    [303, 323.828, 337.116, 344.778, 348.713, 349.926, 348.713, 344.778, 337.116, 323.828, 303, 303],  # J3
    [303, 317.419, 328.575, 336.038, 340.24, 341.59, 340.24, 336.038, 328.575, 317.419, 303, 303],  # J4
    [303, 314.273, 323.728, 330.561, 334.617, 335.955, 334.617, 330.561, 323.728, 314.273, 303, 303],  # J5
    [303, 312.945, 321.503, 327.861, 331.713, 332.997, 331.713, 327.861, 321.503, 312.945, 303, 303],  # J6
    [303, 313.006, 321.477, 327.668, 331.377, 332.607, 331.378, 327.668, 321.477, 313.006, 303, 303],  # J7
    [303, 314.603, 323.73, 329.958, 333.522, 334.678, 333.522, 329.958, 323.73, 314.603, 303, 303],  # J8
    [303, 318.676, 328.881, 334.911, 338.075, 339.062, 338.075, 334.911, 328.881, 318.676, 303, 303],  # J9
    [303, 328.221, 338.208, 342.732, 344.806, 345.419, 344.806, 342.732, 338.208, 328.221, 303, 303],  # J10
    [328, 353, 353, 353, 353, 353, 353, 353, 353, 353, 328, 328],  # J11
    [303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303]   # J12 (hidden)
]

# Extract inner rows (J2 to J11) for visualization
temp_inner = np.array(temp_data[1:-1])  # Exclude J1 and J12

# Create heatmap with yellow background
plt.figure(figsize=(10, 8), facecolor='yellow')
plt.imshow(temp_inner, cmap='RdYlBu_r', interpolation='bicubic', vmin=303, vmax=360.687, extent=[0, 1, 0.0833, 0.9167])
plt.colorbar(label='Temperature (K)', ticks=np.arange(310, 361, 10))
plt.title('Energi Panas (W)', pad=20)
plt.xlabel('X (m)')
plt.ylabel('Y (m)')
plt.xticks(np.arange(0, 1.1, 0.2))
plt.yticks(np.arange(0.1, 1.0, 0.2))

# Overlay values (temperature differences from 303 K)
for i in range(0, 10, 2):
    for j in range(0, 12, 2):
        value = temp_inner[i, j] - 303 if temp_inner[i, j] > 303 else 0.0
        plt.text(j * 0.0833, (i + 1) * 0.0833, f'{value:.1f}', ha='center', va='center',
                 color='white', fontsize=10, bbox=dict(facecolor='black', alpha=0.5))

# Add table at the bottom
table_data = [
    ['Sisi Atas', '-241.43 W'],
    ['Sisi Bawah', '191.20 W'],
    ['Sisi Kiri', '-0.08 W'],
    ['Sisi Kanan', '-50.06 W'],
    ['Total (harus = 0)', '-100.28 W']
]
table = plt.table(cellText=table_data, loc='bottom', cellLoc='center', bbox=[0, -0.25, 1, 0.2])
table.auto_set_font_size(False)
table.set_fontsize(12)
table.scale(1.2, 1.2)

plt.tight_layout()
plt.savefig('heatmap_heat_energy_distribution_matched.png')  # Save the image
plt.show()