ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

| DAI5 eBook Free Download | CFDSOF | VisualFOAM | PT CCIT Group Indonesia : Indonesia leading CFD services company with Inhouse CFD Technology |

Pengerjaan Tugas Simulasi 2 – Muhammad Atha Zaidane Hamman

Assalamualaikum warrohmatullohi wabarokaatuh. Sebelumnya terima kasih karena sudah melihat sedikit blog saya. selamat membaca dan semoga berkah dan bermanfaat kepada semuanya.

Metode numerik merupakan pendekatan komputasi yang digunakan untuk menyelesaikan masalah matematika yang sulit diselesaikan secara analitis. Salah satu aplikasi penting metode numerik adalah dalam Computational Fluid Dynamics (CFD), khususnya dalam simulasi perpindahan panas. Dalam pembelajaran sebelumnya, saya telah mempelajari bagaimana metode numerik diterapkan untuk menyelesaikan masalah perpindahan panas dalam suatu domain 1D menggunakan pendekatan iteratif. Pada kesempatan hari ini saya telah mencoba menyelesaikan masalah perpindahan panas dalam suatu domain 2D.

Diagram Suhu Persegi
80ยฐC
100ยฐC
30ยฐC
30ยฐC
Lebar = 1m
Tinggi = 1m

Pada kasus kali ini saya telah melakukan simulasi dari kasus, plat rata dengan lebar dan tinggi 1m. Pada sisi kiri dan kanan memiliki suhu 30 derajat celcius, sisi atas 80 derajat celcius, dan sisi bawah 100 derajat celcius. Link dari video pengerjaan saya tersebut :

Untuk menyelesaikan permasalahan ini, selain menggunakan applikasi kita bisa juga menggunakan metode iteratif Gauss-Seidel berdasarkan persamaan Laplace, yang menyatakan keseimbangan suhu pada suatu titik berdasarkan nilai-nilai tetangganya.

Implementasi numerik dilakukan dengan membagi domain menjadi grid diskret dengan ukuran 12×12 seperti pada aplikasi. Setiap titik dalam grid diperbarui nilainya berdasarkan rata-rata dari keempat titik di sekitarnya hingga mencapai kondisi konvergen. Kriteria konvergensi ditentukan dengan melihat perubahan suhu antar iterasi yang harus lebih kecil dari nilai toleransi tertentu, misalnya 10โปโถ.

Dengan menggunakan pemrograman Python, saya berhasil memahami bagaimana iterasi Gauss-Seidel bekerja dalam memperbarui suhu hingga mencapai kestabilan. Penggunaan pustaka seperti NumPy dan Matplotlib membantu dalam komputasi numerik serta visualisasi hasil, yang memungkinkan analisis pola distribusi suhu dalam domain.

Coding dari penyelesaian ter sebut adalah :

import numpy as np
import matplotlib.pyplot as plt

# ==========================================================
# 1. PARAMETER & INISIALISASI
# ==========================================================
Nx = 13  # Jumlah titik grid arah x (untuk 12 sel, butuh 13 titik)
Ny = 13  # Jumlah titik grid arah y
Lx = 1.0 # Panjang domain (m) arah x
Ly = 1.0 # Panjang domain (m) arah y

dx = Lx / (Nx - 1)
dy = Ly / (Ny - 1)

# Kode ini adalah contoh steady-state conduction:
# Persamaan Laplace: โˆ‚ยฒT/โˆ‚xยฒ + โˆ‚ยฒT/โˆ‚yยฒ = 0

# Buat array 2D untuk suhu, inisialisasi semua nol (atau terserah)
T = np.zeros((Ny, Nx))

# ==========================================================
# 2. KONDISI BATAS (Dirichlet)
# ==========================================================
# Asumsi:
#   - Bawah (row=0)  = W1 = 30ยฐC
#   - Atas  (row=Ny-1) = W1 = 30ยฐC
#   - Kiri  (col=0) = W3 = 100ยฐC
#   - Kanan (col=Nx-1) = W4 = 80ยฐC

T[0, :]    = 100.0   # Sisi bawah
T[-1, :]   = 80.0   # Sisi atas
T[:, 0]    = 30.0  # Sisi kiri
T[:, -1]   = 30.0   # Sisi kanan

# ==========================================================
# 3. ITERASI SAMPAI KONVERGEN (Gauss-Seidel / Jacobi)
# ==========================================================
tol = 1e-6  # Toleransi error
error = 1.0

# Metode Gauss-Seidel (kita update T langsung di array T)
while error > tol:
    error = 0.0

    # Simpan salinan untuk hitung selisih error nanti
    T_old = T.copy()

    # Loop semua titik interior (1..Ny-2, 1..Nx-2)
    for i in range(1, Ny - 1):
        for j in range(1, Nx - 1):
            # Gauss-Seidel update:
            # T[i,j] = (1/4) * (T[i+1,j] + T[i-1,j] + T[i,j+1] + T[i,j-1])
            # Karena persamaan Laplace 2D (steady-state conduction)
            T[i, j] = 0.25 * (
                T[i+1, j] +
                T[i-1, j] +
                T[i, j+1] +
                T[i, j-1]
            )

    # Hitung error = nilai maksimum perbedaan antara iterasi lama dan baru
    error = np.max(np.abs(T - T_old))

# ==========================================================
# 4. VISUALISASI
# ==========================================================
x = np.linspace(0, Lx, Nx)
y = np.linspace(0, Ly, Ny)
X, Y = np.meshgrid(x, y)

plt.figure(figsize=(6,5))
contour = plt.contourf(X, Y, T, levels=50, cmap='hot')
plt.colorbar(contour, label='Temperature (ยฐC)')
plt.title('Steady-State Conduction 2D')
plt.xlabel('x (m)')
plt.ylabel('y (m)')
plt.show()

diatas adalah diagram hasil dari coding tersebut

Kode Python di atas menyelesaikan persamaan Laplace 2D untuk perpindahan panas konduksi steady-state pada pelat datar berbentuk persegi dengan kondisi batas tetap (Dirichlet boundary conditions) menggunakan metode iteratif Gauss-Seidel.

Pertama, kita mendefinisikan grid diskritisasi dengan ukuran 13 ร— 13 titik (untuk merepresentasikan 12 sel dalam domain) dan menghitung jarak antar titik dalam arah xxx dan yyy menggunakan parameter panjang domain LxL_xLxโ€‹ dan LyL_yLyโ€‹. Array T dibuat sebagai matriks suhu dalam domain, yang diinisialisasi dengan nilai nol kecuali pada keempat sisi domain yang diberikan suhu tetap: 30ยฐC di kanan dan kiri, 100ยฐC di sisi bawah, dan 80ยฐC di sisi atas.

Selanjutnya, kita menggunakan metode iteratif Gauss-Seidel untuk menyelesaikan persamaan Laplace โˆ‡2T=0\nabla^2 T = 0โˆ‡2T=0, yang berarti suhu di setiap titik dalam domain diperbarui sebagai rata-rata dari empat titik tetangganya (atas, bawah, kiri, kanan). Proses ini dilakukan dalam loop while hingga perbedaan antara nilai suhu dari iterasi sebelumnya dan saat ini (error) lebih kecil dari toleransi 10โˆ’610^{-6}10โˆ’6, menandakan konvergensi.

Setelah iterasi selesai, hasil distribusi suhu divisualisasikan menggunakan kontur warna (heatmap) dengan matplotlib, di mana suhu tinggi diwakili oleh warna merah (panas) dan suhu rendah oleh warna kuning atau putih (dingin). Akhirnya, plot ini menampilkan distribusi suhu dalam pelat dan menunjukkan bagaimana panas menyebar dari sisi dengan suhu tinggi ke sisi dengan suhu rendah, mengikuti prinsip konduksi termal tanpa sumber panas internal.

Dari pembelajaran dan pengerjaan ini, saya menyadari bahwa metode numerik sangat berguna dalam menyelesaikan permasalahan teknik yang kompleks, termasuk perpindahan panas dan dinamika fluida. Pemahaman mengenai metode numerik dan penerapannya dalam CFD dapat membantu dalam analisis dan optimasi berbagai sistem teknik, seperti desain termal dan analisis pendinginan. Oleh karena itu, penguasaan metode numerik menjadi aspek penting dalam bidang rekayasa dan sains terapan.

Selain itu, penerapan metode numerik tidak hanya terbatas pada perpindahan panas, tetapi juga dapat digunakan dalam simulasi aliran fluida, analisis struktur, dan berbagai bidang rekayasa lainnya. Dengan kemajuan teknologi komputasi, metode numerik kini semakin dioptimalkan dengan pemanfaatan high-performance computing (HPC) untuk menangani masalah yang lebih kompleks. Hal ini membuka peluang besar bagi para insinyur dan ilmuwan untuk mengembangkan solusi inovatif dalam berbagai industri, termasuk energi, transportasi, dan manufaktur.

Terimakasih telah meluangkan waktu untuk membaca sedikit ressume dari apa yang telah saya pelajari. Selamat menunaikan ibadah puasa bagi yang melaksanakan. Sekian dari saya, bila ada salah mohon maaf sebesar besarnya, karena manusia tempatnya salah dan lupa.

Wassalamualaikum warrohmatullohi wabarokaatuh


Leave a Reply

Your email address will not be published. Required fields are marked *