Difference between revisions of "User:LuthfiShafwan"

From ccitonlinewiki
Jump to: navigation, search
(kasus distribusi tekanan pada geometri Oscillating Water Coloumn untuk 2 konfigurasi, 1 chamber 2 turbine dan 2 chamber 1 turbine)
(Metode Numerik untuk Analisis Efisiensi Energi pada Sistem Oscillating Water Column: Penerapan Framework DAI5)
 
(209 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= Introduction =
 
= Introduction =
[[File:IMG-20240516-WA0001.jpg|115px|thumb|right]]
+
[[File:IMG-20240516-WA0001.jpg|115px|border|right]]
 
Nama saya muhammad luthfi shafwan, mahasiswa S2 Teknik Mesin peminatan Teknologi dan Sumber Daya Maritim angkatan 2024
 
Nama saya muhammad luthfi shafwan, mahasiswa S2 Teknik Mesin peminatan Teknologi dan Sumber Daya Maritim angkatan 2024
  
Line 16: Line 16:
  
 
=Tugas 1=
 
=Tugas 1=
==kasus atas arahan==
 
Pada pertemuan kali ini, Pak Dai memberikan arahan kepada mahasiswa untuk melakukan diskusi mengenai FEM (Finite Element Method) satu dimensi melalui platform ChatGPT. Diskusi ini akan mencakup beberapa pertanyaan yang sesuai dengan arahan beliau, dengan output yang diharapkan dapat menghubungkan konsep FEM satu dimensi dengan langkah-langkah yang terdapat dalam kerangka DAI-5.
 
  
[https://drive.google.com/file/d/16igB5W7afo-zhgvOhsVQl6Hb307WD-rp/view?usp=sharing hasil diskusi dengan chatGPT]
+
==kasus distribusi tekanan pada geometri Oscillating Water Coloumn untuk 2 konfigurasi, 1 chamber 2 turbine dan 2 chamber 1 turbine==
 +
Pada pertemuan kali ini, Pak Dai memberikan arahan kepada mahasiswa untuk melakukan diskusi mengenai FEM (Finite Element Method) melalui platform ChatGPT. Diskusi ini akan mencakup beberapa pertanyaan yang sesuai dengan arahan beliau, dengan output yang diharapkan dapat menghubungkan konsep FEM dengan langkah-langkah yang terdapat dalam kerangka DAI-5. Kasus yang menjadi subjek diskusi melalui platform chatGPT kali ini adalah Finite Element Method (FEM) untuk Oscillating Water Column (OWC) dengan 2 konfigurasi (1 turbin 2 chamber dan 2 turbin 1 chamber)
 +
 
 +
[https://drive.google.com/file/d/1_4G3V7QCd-fyj4tSi_TzKQ5J11hBwm1R/view?usp=sharing hasil diskusi dengan ChatGPT mengenai FEM pada OWC dengan 2 konfigurasi]
 +
 
  
[[File:Carbon(2).png|500px|center]]
+
[[File:Carbon(3).png|500px|center]]
  
Berdasarkan 'code' diatas grafik akhir yang menjadi output perhitungan tersebut tertera pada gambar dibawah
 
  
[[File:Output 1.png|600px|center|border]]
+
[[File:Output(1).png|600px|center]]
  
==kasus distribusi tekanan pada geometri Oscillating Water Coloumn untuk 2 konfigurasi, 1 chamber 2 turbine dan 2 chamber 1 turbine==
+
Grafik diatas merupakan output dari code yang di generate oleh chatGPT mengenai kasus ini dengan anggapan gelombang normal, dapat dilihat bahwa pada grafik pertama yaitu '''konfigurasi 1 (1 Turbin, 2 Chamber)''': Grafik menunjukkan variasi nilai u(x) di sepanjang
Chat GPT, Luthfi
+
posisi x dalam domain. Distribusi ini mengikuti pola sinusoidal yang diberikan oleh sumber
Luthfi: halo, saya ingin mendiskusikan pendekatan numerik untuk Finite Element Method (FEM)
+
gaya gelombang. Sementara pada '''konfigurasi 2 (2 Turbin, 1 Chamber)''': Grafik menunjukkan bahwa nilai u(x) tetap konstan
pada geometri Oscillating Water Column (OWC) dengan dua konfigurasi (1 turbin 2 chamber dan 2
 
turbin 1 chamber)
 
ChatGPT: Halo! Tentu, kita bisa mendiskusikan pendekatan numerik menggunakan Finite Element
 
Method (FEM) untuk geometri Oscillating Water Column (OWC). Menarik sekali bahwa kita
 
memiliki dua konfigurasi yang berbeda – satu dengan 1 turbin dan 2 chamber dan satu lagi dengan
 
2 turbin dan 1 chamber. Pendekatan ini akan membantu kita memahami bagaimana konfigurasi
 
berbeda mempengaruhi distribusi solusi di sepanjang domain.
 
Luthfi: coba step-by-step dari dasar model matematis hingga implementasi FEM nya
 
ChatGPT: Baik, mari kita mulai dari dasar hingga implementasi FEM-nya. Berikut langkah-langkah
 
secara bertahap:
 
1. Pemahaman Model Matematis
 
Untuk sistem Oscillating Water Column (OWC), kita biasanya menggunakan model diferensial
 
parsial yang menggambarkan bagaimana energi gelombang bergerak dan mempengaruhi kolom air
 
dalam struktur. Dalam konteks ini, kita dapat memodelkan aliran atau perpindahan air di dalam
 
chamber menggunakan persamaan gelombang atau persamaan difusi sederhana (bergantung
 
pada pendekatan).
 
Dalam kasus ini, kita akan menggunakan persamaan diferensial linier untuk menggambarkan
 
perubahan nilai solusi (misalnya, tekanan atau kecepatan partikel air) di sepanjang domain.
 
Secara umum, persamaan diferensial sederhana yang bisa digunakan adalah:
 
−𝑘 𝑑2𝑢
 
𝑑𝑥2 = 𝑓(𝑥)
 
Di sini:
 
• 𝑘 adalah koefisien difusi, yang menggambarkan karakteristik medium (air dalam
 
chamber).
 
• 𝑢(𝑥) adalah nilai solusi yang ingin kita cari di setiap titik 𝑥 dalam domain.
 
• 𝑓(𝑥) adalah gaya eksternal yang diaplikasikan ke sistem (di sini berupa gelombang dengan
 
amplitudo tertentu).
 
2. Diskritisasi Domain (Mesh)
 
Untuk menyelesaikan persamaan ini dengan metode elemen hingga, kita perlu membagi domain
 
(panjang chamber) menjadi elemen-elemen kecil. Setiap elemen memiliki dua node, yang
 
merupakan titik di mana kita akan menghitung nilai solusi 𝑢(𝑥).
 
• Misalnya, jika panjang domain 𝐿 = 1.0 meter, kita bisa membaginya menjadi beberapa
 
elemen, seperti pada konfigurasi:
 
o 1 turbin, 2 chamber: 4 elemen
 
o 2 turbin, 1 chamber: 2 elemen
 
Pembagian ini menghasilkan mesh yang nantinya akan digunakan dalam proses perakitan matriks
 
kekakuan.
 
3. Pembentukan Matriks Kekakuan dan Vektor Beban
 
Setelah domain dibagi menjadi elemen-elemen, kita membuat matriks kekakuan lokal untuk
 
setiap elemen dan menyusun vektor beban yang mewakili gaya yang bekerja pada elemen
 
tersebut.
 
• Untuk setiap elemen, matriks kekakuan lokalnya adalah:
 
𝐾𝑒 = 𝑘
 
ℎ [ 1 −1
 
−1 1 ]
 
Di sini, ℎ adalah panjang setiap elemen, dan 𝑘 adalah koefisien difusi.
 
• Untuk vektor beban, kita mempertimbangkan gaya sinusoidal akibat gelombang:
 
𝑓(𝑥) = 𝐴sin(𝜔𝑥)
 
o A adalah amplitudo gelombang, dan ω adalah frekuensi sudut gelombang.
 
o Gaya ini kemudian dikonversi menjadi vektor beban lokal untuk setiap elemen, yang
 
akan dikombinasikan ke dalam vektor beban global.
 
4. Perakitan (Assembly) Matriks Kekakuan dan Vektor Beban Global
 
Setelah menentukan matriks kekakuan dan vektor beban untuk setiap elemen, kita menyusunnya
 
dalam matriks kekakuan global dan vektor beban global untuk keseluruhan domain. Proses
 
perakitan ini melibatkan menempatkan setiap matriks elemen ke dalam matriks global pada posisi
 
yang sesuai.
 
Dalam kode, ini dilakukan melalui loop yang iterasi tiap elemen, menambahkan kekakuan elemen
 
ke dalam matriks kekakuan global di indeks yang sesuai.
 
5. Penerapan Kondisi Batas
 
Dalam masalah ini, kita menerapkan kondisi batas Dirichlet di kedua ujung domain, yang berarti
 
nilai solusi pada kedua ujung domain ditetapkan ke nilai tertentu, dalam hal ini nol:
 
𝑢(0) = 0 dan 𝑢(𝐿) = 0
 
Ini dicapai dalam kode dengan mengubah matriks kekakuan dan vektor beban pada indeks kondisi
 
batas agar sesuai dengan kondisi yang ditetapkan.
 
6. Menyelesaikan Sistem Persamaan Linier
 
Setelah menyusun matriks kekakuan global 𝐾 dan vektor beban 𝐹, kita menyelesaikan persamaan
 
linier:
 
𝐾𝑈 = 𝐹
 
untuk mendapatkan vektor 𝑈, yang berisi nilai solusi di setiap node dalam domain.
 
7. Implementasi dalam Kode Python
 
Pada tahap ini, kita mengimplementasikan langkah-langkah di atas dalam kode Python. Berikut ini
 
adalah cara fungsi fem_simulation_wave di kode kamu melaksanakan langkah-langkah ini:
 
• Parameter Gelombang: A, omega, dan boundary_conditions ditetapkan berdasarkan
 
konfigurasi.
 
• Inisialisasi Matriks Kekakuan dan Vektor Beban: K dan F diinisialisasi sebagai matriks
 
dan vektor kosong.
 
• Perakitan Matriks Kekakuan dan Vektor Beban: Loop for pada elemen menghitung
 
matriks kekakuan lokal K_e dan gaya sinusoidal untuk vektor beban F_e, kemudian
 
menambahkannya ke matriks global K dan vektor F.
 
• Penerapan Kondisi Batas: Matriks dan vektor disesuaikan berdasarkan
 
boundary_conditions.
 
• Penyelesaian Sistem Persamaan: Menggunakan np.linalg.solve(K, F) untuk mendapatkan
 
solusi nodal 𝑈.
 
8. Plot Hasil untuk Dua Konfigurasi
 
Setelah mendapatkan solusi 𝑈 untuk setiap konfigurasi, kita membuat plot yang menampilkan
 
distribusi solusi di sepanjang domain untuk dua konfigurasi berbeda.
 
Luthfi: baik, bisakah kamu sajikan kode phyton untuk kasus ini?
 
ChatGPT: Tentu, berikut adalah kode Python lengkap untuk simulasi Finite Element Method (FEM)
 
pada sistem Oscillating Water Column (OWC) dengan dua konfigurasi: 1 Turbin, 2 Chamber dan 2
 
Turbin, 1 Chamber.
 
import numpy as np
 
import matplotlib.pyplot as plt
 
def fem_simulation_wave(n_elements, k, A, omega, boundary_conditions):
 
"""
 
Fungsi untuk simulasi FEM pada OWC dengan kondisi gelombang normal
 
Args:
 
- n_elements (int): Jumlah elemen (sesuai dengan chamber atau turbin)
 
- k (float): Koefisien difusi
 
- A (float): Amplitudo gelombang
 
- omega (float): Frekuensi sudut gelombang
 
- boundary_conditions (dict): Kondisi batas, format {index: value}
 
Returns:
 
- U (np.array): Solusi nodal
 
- x (np.array): Posisi node
 
"""
 
L = 1.0 # Panjang domain (asumsi 1 untuk simplifikasi)
 
h = L / n_elements # Panjang setiap elemen
 
n_nodes = n_elements + 1 # Jumlah node
 
# Matriks kekakuan dan vektor beban
 
K = np.zeros((n_nodes, n_nodes))
 
F = np.zeros(n_nodes)
 
# Matriks elemen kekakuan
 
K_e = (k / h) * np.array([[1, -1], [-1, 1]])
 
# Proses perakitan (assembly)
 
for e in range(n_elements):
 
n1, n2 = e, e + 1
 
# Tambahkan kekakuan elemen ke dalam matriks kekakuan global
 
K[n1, n1] += K_e[0, 0]
 
K[n1, n2] += K_e[0, 1]
 
K[n2, n1] += K_e[1, 0]
 
K[n2, n2] += K_e[1, 1]
 
# Hitung sumber term sinusoidal untuk gelombang normal
 
x_mid = (n1 * h + n2 * h) / 2 # Posisi tengah elemen
 
f_mid = A * np.sin(omega * x_mid)
 
# Vektor beban elemen
 
F_e = f_mid * h / 2 * np.array([1, 1])
 
# Tambahkan beban elemen ke dalam vektor beban global
 
F[n1] += F_e[0]
 
F[n2] += F_e[1]
 
# Terapkan kondisi batas
 
for index, value in boundary_conditions.items():
 
K[index, :] = 0
 
K[index, index] = 1
 
F[index] = value
 
# Selesaikan sistem persamaan linier KU = F
 
U = np.linalg.solve(K, F)
 
return U, np.linspace(0, L, n_nodes)
 
# Parameter gelombang normal
 
A = 1.0 # Amplitudo gelombang
 
omega = 2 * np.pi # Frekuensi sudut (sesuai dengan periode 1 detik)
 
# Konfigurasi 1: Satu Turbin, Dua Chamber
 
n_elements_1 = 4
 
k_1 = 1.0
 
boundary_conditions_1 = {0: 0, n_elements_1: 0} # Dirichlet di kedua ujung
 
U_1, x_1 = fem_simulation_wave(n_elements_1, k_1, A, omega, boundary_conditions_1)
 
# Konfigurasi 2: Dua Turbin, Satu Chamber
 
n_elements_2 = 2
 
k_2 = 1.0
 
boundary_conditions_2 = {0: 0, n_elements_2: 0} # Dirichlet di kedua ujung
 
U_2, x_2 = fem_simulation_wave(n_elements_2, k_2, A, omega, boundary_conditions_2)
 
# Plot hasil
 
plt.figure(figsize=(10, 5))
 
# Plot konfigurasi 1
 
plt.subplot(2, 1, 1)
 
plt.plot(x_1, U_1, marker='o', linestyle='-', color='b')
 
plt.title("Konfigurasi 1: 1 Turbin, 2 Chamber (Gelombang Normal)")
 
plt.xlabel("Posisi x (m)")
 
plt.ylabel("Nilai u(x)")
 
plt.grid(True)
 
# Plot konfigurasi 2
 
plt.subplot(2, 1, 2)
 
plt.plot(x_2, U_2, marker='o', linestyle='-', color='r')
 
plt.title("Konfigurasi 2: 2 Turbin, 1 Chamber (Gelombang Normal)")
 
plt.xlabel("Posisi x (m)")
 
plt.ylabel("Nilai u(x)")
 
plt.grid(True)
 
plt.tight_layout()
 
plt.show()
 
Penjelasan Kode
 
• Parameter Gelombang: A dan omega adalah parameter untuk simulasi gelombang normal.
 
• Konfigurasi 1 dan 2: Konfigurasi pertama menggunakan 4 elemen (1 turbin, 2 chamber)
 
dan konfigurasi kedua menggunakan 2 elemen (2 turbin, 1 chamber).
 
• Fungsi fem_simulation_wave: Ini adalah fungsi utama yang membangun matriks kekakuan,
 
vektor beban, dan menerapkan kondisi batas untuk menyelesaikan sistem persamaan
 
FEM.
 
• Plotting: Setelah solusi diperoleh untuk kedua konfigurasi, hasilnya di-plot untuk
 
visualisasi distribusi nilai 𝑢(𝑥) di sepanjang domain.
 
Luthfi: berikan saya grafik yang menjadi output dari code tersebut
 
ChatGPT: Inilah grafik hasil output dari kode Python yang diberikan. Grafik di atas menunjukkan
 
distribusi nilai 𝑢(𝑥) untuk kedua konfigurasi:
 
1. Konfigurasi 1 (1 Turbin, 2 Chamber): Grafik menunjukkan variasi nilai 𝑢(𝑥) di sepanjang
 
posisi 𝑥 dalam domain. Distribusi ini mengikuti pola sinusoidal yang diberikan oleh sumber
 
gaya gelombang.
 
2. Konfigurasi 2 (2 Turbin, 1 Chamber): Grafik menunjukkan bahwa nilai 𝑢(𝑥) tetap konstan
 
 
di sepanjang domain, mencerminkan perbedaan dalam konfigurasi elemen dan
 
di sepanjang domain, mencerminkan perbedaan dalam konfigurasi elemen dan
 
pengaruhnya terhadap solusi.
 
pengaruhnya terhadap solusi.
Luthfi: berarti seperti apa algoritma dalam implementasi FEM menggunakan PDE yang
 
didiskritisasi pada kasus OWC dengan 2 konfigurasi?
 
ChatGPT: Baik, berikut adalah algoritma implementasi Finite Element Method (FEM)
 
menggunakan persamaan diferensial parsial (PDE) yang didiskritisasi pada kasus Oscillating
 
Water Column (OWC) dengan dua konfigurasi. Algoritma ini mengikuti langkah-langkah diskritisasi
 
dan solusi yang dilakukan dalam kode, namun akan dijabarkan secara lebih sistematis:
 
Langkah-langkah Algoritma FEM untuk Kasus OWC dengan 2 Konfigurasi
 
1. Definisikan Parameter dan Kondisi Batas
 
o Tetapkan parameter sistem seperti:
 
▪ Panjang domain 𝐿 (misalnya, 𝐿 = 1 meter),
 
▪ Koefisien difusi 𝑘,
 
▪ Amplitudo gelombang 𝐴,
 
▪ Frekuensi sudut gelombang 𝜔.
 
o Tentukan jumlah elemen untuk masing-masing konfigurasi:
 
▪ Konfigurasi 1: 4 elemen (1 Turbin, 2 Chamber).
 
▪ Konfigurasi 2: 2 elemen (2 Turbin, 1 Chamber).
 
o Tetapkan kondisi batas Dirichlet di kedua ujung domain, di mana nilai 𝑢(𝑥) = 0
 
pada 𝑥 = 0 dan 𝑥 = 𝐿.
 
2. Diskritisasi Domain
 
o Bagi domain menjadi elemen-elemen kecil dengan panjang elemen ℎ = 𝐿
 
𝑛elements
 
.
 
o Hitung jumlah node 𝑛nodes = 𝑛elements + 1.
 
3. Inisialisasi Matriks Kekakuan dan Vektor Beban
 
o Inisialisasi matriks kekakuan global 𝐾 berukuran 𝑛nodes × 𝑛nodes dengan nilai nol.
 
o Inisialisasi vektor beban global 𝐹 dengan ukuran 𝑛nodes, yang juga berisi nilai nol.
 
4. Bentuk Matriks Kekakuan Lokal untuk Setiap Elemen
 
o Matriks kekakuan lokal untuk setiap elemen dihitung sebagai:
 
𝐾𝑒 = 𝑘
 
ℎ [ 1 −1
 
−1 1 ]
 
o Di sini, 𝑘 adalah koefisien difusi dan ℎ adalah panjang elemen.
 
5. Perakitan (Assembly) Matriks Kekakuan Global dan Vektor Beban Global
 
o Untuk setiap elemen 𝑒:
 
▪ Identifikasi dua node pada elemen: 𝑛1 dan 𝑛2.
 
▪ Tambahkan elemen 𝐾𝑒 ke matriks kekakuan global 𝐾 pada posisi yang
 
sesuai berdasarkan node 𝑛1 dan 𝑛2.
 
▪ Hitung gaya sinusoidal yang bekerja pada elemen tengah (sebagai gaya dari
 
gelombang):
 
𝑓mid = 𝐴sin(𝜔 ⋅ 𝑥mid)
 
di mana 𝑥mid adalah posisi tengah elemen.
 
▪ Bentuk vektor beban lokal 𝐹𝑒 sebagai:
 
𝐹𝑒 = 𝑓mid ⋅ ℎ
 
2 [1
 
1]
 
▪ Tambahkan elemen 𝐹𝑒 ke vektor beban global 𝐹 pada posisi yang sesuai.
 
6. Terapkan Kondisi Batas
 
o Modifikasi matriks kekakuan 𝐾 dan vektor beban 𝐹 sesuai dengan kondisi batas
 
Dirichlet:
 
▪ Atur nilai 𝐾 dan 𝐹 pada indeks-indeks yang berkaitan dengan kondisi batas
 
(di ujung domain).
 
▪ Setel nilai diagonal di indeks kondisi batas menjadi 1, dan setel elemen
 
lainnya pada baris tersebut ke 0 untuk mengunci nilai batas.
 
7. Selesaikan Sistem Persamaan Linier
 
o Setelah matriks kekakuan global 𝐾 dan vektor beban global 𝐹 selesai dirakit,
 
selesaikan sistem persamaan linier:
 
𝐾 ⋅ 𝑈 = 𝐹
 
untuk mendapatkan vektor solusi 𝑈 yang berisi nilai 𝑢(𝑥) di setiap node.
 
8. Visualisasi Hasil
 
o Setelah memperoleh solusi 𝑈 untuk setiap konfigurasi, buat grafik distribusi nilai
 
𝑢(𝑥) di sepanjang domain untuk kedua konfigurasi.
 
o Bandingkan hasil antara konfigurasi 1 Turbin, 2 Chamber dan 2 Turbin, 1 Chamber
 
untuk melihat perbedaan efek dari konfigurasi tersebut terhadap distribusi nilai
 
solusi.
 
Ringkasan Algoritma
 
Secara ringkas, algoritma ini dapat disusun sebagai berikut:
 
1. Inisialisasi parameter sistem dan kondisi batas.
 
2. Diskritisasi domain menjadi elemen-elemen kecil.
 
3. Bentuk matriks kekakuan lokal dan vektor beban lokal untuk setiap elemen.
 
4. Perakitan matriks kekakuan dan vektor beban global dari elemen-elemen.
 
5. Terapkan kondisi batas Dirichlet.
 
6. Selesaikan sistem persamaan linier untuk mendapatkan solusi.
 
7. Plot hasil untuk visualisasi distribusi nilai 𝑢(𝑥) dalam setiap konfigurasi.
 
Algoritma ini adalah kerangka dasar untuk menyelesaikan masalah PDE menggunakan metode
 
FEM, khususnya pada kasus OWC dengan dua konfigurasi berbeda.
 
Luthfi: ketika step-step pada case dikaitkan dengan framework DAI5, akan menjadi?
 
ChatGPT: Mengaitkan algoritma kasus Finite Element Method (FEM) untuk Oscillating Water
 
Column (OWC) ini dengan framework DAI5 akan membantu memberikan struktur berpikir yang
 
lebih sistematis dan terarah. Berikut adalah bagaimana algoritma ini dapat diterjemahkan ke
 
dalam langkah-langkah DAI5:
 
1. Intention (Tujuan)
 
• Tujuan: Menyimulasikan dan memahami pengaruh konfigurasi yang berbeda pada
 
geometri OWC terhadap distribusi tekanan atau kecepatan air di dalam chamber
 
menggunakan metode FEM.
 
• Pertanyaan yang ingin dijawab: Bagaimana dua konfigurasi turbin dan chamber pada
 
OWC memengaruhi hasil distribusi nilai 𝑢(𝑥) di sepanjang domain? Hasil ini penting untuk
 
mengevaluasi efisiensi dan optimalitas setiap konfigurasi dalam menangkap energi
 
gelombang.
 
• Spesifikasi Output: Grafik distribusi nilai 𝑢(𝑥) untuk dua konfigurasi (1 turbin 2 chamber
 
dan 2 turbin 1 chamber), yang menunjukkan perbedaan pola hasil simulasi FEM.
 
2. Initial Thinking (Pemikiran Awal)
 
• Pemahaman Sistem: Sistem OWC ini dapat dimodelkan sebagai sistem gelombang yang
 
mengalami difusi di dalam chamber, dengan konfigurasi turbin dan chamber yang berbeda
 
untuk setiap simulasi.
 
• Persamaan yang Digunakan: Dalam konteks FEM, kita akan menggunakan persamaan
 
diferensial linier sederhana yang menunjukkan hubungan antara koefisien difusi, gaya
 
eksternal (gelombang sinusoidal), dan nilai solusi 𝑢(𝑥) pada setiap node.
 
• Diskritisasi Domain: Bagi domain menjadi elemen-elemen kecil, di mana setiap elemen
 
memiliki dua node. Pilihan jumlah elemen ditentukan oleh konfigurasi yang ingin diuji:
 
o Konfigurasi 1: 4 elemen untuk 1 turbin dan 2 chamber.
 
o Konfigurasi 2: 2 elemen untuk 2 turbin dan 1 chamber.
 
• Kondisi Batas: Terapkan kondisi batas Dirichlet di kedua ujung domain untuk menetapkan
 
nilai 𝑢(𝑥) = 0 pada titik awal dan akhir.
 
3. Idealization (Idealasi)
 
• Ideal Model: Untuk mencapai simulasi yang efisien dan akurat, kita perlu membuat asumsi
 
tertentu:
 
o Sederhanakan domain menjadi panjang 1 meter untuk memudahkan perhitungan
 
dan menjaga konsistensi antar-konfigurasi.
 
o Model Persamaan Linier untuk difusi, dengan anggapan bahwa interaksi antara
 
chamber dan turbin dapat direpresentasikan oleh koefisien difusi 𝑘.
 
o Pembentukan Matriks Kekakuan dan Vektor Beban: Matriks kekakuan lokal
 
disederhanakan menggunakan matriks elemen standar untuk metode elemen
 
hingga satu dimensi, dan gaya eksternal dihitung sebagai sinyal sinusoidal.
 
• Strategi Solusi:
 
o Perakitan Matriks Kekakuan dan Vektor Beban Global: Setiap elemen memiliki
 
kontribusi kekakuan dan beban yang diakumulasi dalam matriks kekakuan dan
 
vektor beban global.
 
o Pemecahan Sistem Persamaan Linier: Setelah perakitan matriks dan penerapan
 
kondisi batas, selesaikan sistem persamaan 𝐾 ⋅ 𝑈 = 𝐹 untuk mendapatkan
 
distribusi nilai 𝑢(𝑥).
 
• Hasil Ideal yang Diinginkan: Distribusi nilai 𝑢(𝑥) yang berbeda untuk setiap konfigurasi,
 
menunjukkan variasi tekanan atau kecepatan partikel air di sepanjang domain, sesuai
 
dengan interaksi antara turbin dan chamber dalam setiap konfigurasi.
 
4. Instruction Set (Set Instruksi)
 
Algoritma berikut menjabarkan setiap langkah yang perlu diambil untuk mengimplementasikan
 
simulasi FEM untuk dua konfigurasi pada sistem OWC:
 
1. Definisikan Parameter Sistem: Tetapkan panjang domain 𝐿, koefisien difusi 𝑘, amplitudo
 
gelombang 𝐴, frekuensi sudut 𝜔, dan kondisi batas.
 
2. Diskritisasi Domain:
 
o Bagi domain menjadi elemen-elemen kecil.
 
o Hitung panjang setiap elemen ℎ = 𝐿/𝑛elements.
 
o Tentukan jumlah node berdasarkan jumlah elemen (node = elemen + 1).
 
3. Bentuk Matriks Kekakuan Lokal dan Vektor Beban:
 
o Hitung matriks kekakuan lokal 𝐾𝑒 untuk setiap elemen.
 
o Hitung gaya sinusoidal pada posisi tengah elemen untuk membentuk vektor beban
 
lokal 𝐹𝑒.
 
4. Perakitan Matriks Kekakuan Global dan Vektor Beban Global:
 
o Gabungkan kontribusi dari setiap elemen ke dalam matriks kekakuan global 𝐾 dan
 
vektor beban global 𝐹.
 
5. Terapkan Kondisi Batas:
 
o Modifikasi matriks kekakuan 𝐾 dan vektor beban 𝐹 sesuai dengan kondisi batas
 
Dirichlet di ujung domain.
 
6. Penyelesaian Sistem Persamaan Linier:
 
o Gunakan solusi numerik untuk menyelesaikan 𝐾 ⋅ 𝑈 = 𝐹 sehingga mendapatkan
 
nilai 𝑢(𝑥) di setiap node.
 
7. Visualisasi Hasil:
 
o Buat grafik yang menunjukkan distribusi nilai 𝑢(𝑥) di sepanjang domain untuk
 
setiap konfigurasi.
 
o Bandingkan grafik hasil dari konfigurasi 1 (1 Turbin, 2 Chamber) dan konfigurasi 2 (2
 
Turbin, 1 Chamber).
 
Dengan mengikuti framework DAI5, kita dapat memahami bagaimana setiap tahap berpikir dalam
 
mengembangkan algoritma simulasi ini berjalan dari pemahaman tujuan, pemikiran awal,
 
idealisasi sistem, hingga langkah-langkah instruksi yang jelas untuk mencapai hasil akhir.
 
  
[[File:Carbon(3).png|500px|center]]
+
=Tugas 2=
[[File:Output(1).png|600px|center]]
+
Tugas 2 ini menggunakan metode elemen hingga (1D Finite Element Method) dalam analisis perpindahan panas untuk memahami bagaimana distribusi suhu dalam sebuah pipa. Python digunakan untuk menentukan distribusi suhu di sepanjang pipa dengan pemanasan seragam, di mana pipa memiliki suhu 0°C di kedua ujungnya. Setelah itu, hasil simulasi yang dihasilkan diinterpretasikan secara mendalam untuk memberikan wawasan tentang karakteristik distribusi suhu, dan hasil tersebut kemudian dihubungkan dengan DAI5 Framework.
 +
 
 +
'''1. Persamaan Konduksi Panas (Hukum Fourier)'''
 +
 
 +
Persamaan konduksi panas satu dimensi dalam kondisi steady-state tanpa adanya sumber panas internal (untuk aliran panas konduktif) adalah:
 +
 
 +
[[File:Screenshot 2024-11-11 191354.png|150px|center]]
 +
 
 +
di mana:
 +
                <ul style="list-style-type: none;">
 +
                    <li><em>K</em> konduktivitas termal ss 304 (W/m·K)</li>
 +
                    <li><em>T</em> adalah suhu (°C atau K)</li>
 +
                    <li><em>X</em> adalah posisi sepanjang </li>
 +
                </ul>
 +
         
 +
 
 +
'''2. Persamaan Konduksi Panas dengan Sumber Panas'''
 +
 
 +
Jika terdapat sumber panas seragam Q dalam pipa, persamaan konduksi panas menjadi:
 +
 
 +
[[File:Screenshot 2024-11-11 191405.png|150px|center]]
 +
 
 +
di mana Q adalah sumber panas per satuan volume (W/m³).
 +
 
 +
'''3. Diskritisasi dengan Metode Elemen Hingga (FEM)'''
 +
 
 +
Metode elemen hingga digunakan untuk mendiskritisasi persamaan diferensial parsial ini menjadi sistem persamaan linear.
 +
Matriks kekakuan lokal untuk elemen 1D diberikan oleh:
 +
 
 +
[[File:Screenshot 2024-11-11 191411.png|150px|center]]
 +
 
 +
di mana Δx adalah panjang elemen.
 +
 
 +
'''4. Penyusunan Vektor Gaya'''
 +
 
 +
Vektor gaya F diisi dengan kontribusi dari sumber panas seragam:
 +
 
 +
[[File:Screenshot 2024-11-11 191415.png|150px|center]]
 +
 
 +
'''5. Sistem Persamaan Linear'''
 +
 
 +
Setelah menyusun matriks kekakuan global K dan vektor gaya F, sistem persamaan linear yang perlu diselesaikan adalah:
 +
 
 +
[[File:Screenshot 2024-11-11 191421.png|100px|center]]
 +
 
 +
di mana:
 +
 
 +
<ul style="list-style-type: none;">
 +
                    <li><em>K</em> adalah matriks kekakuan global</li>
 +
                    <li><em>T</em> adalah vektor suhu pada simpul-simpul</li>
 +
                    <li><em>F</em> adalah vektor gaya total</li>
 +
                </ul>
 +
 
 +
'''6. Kondisi Batas'''
 +
 
 +
Kondisi batas (Dirichlet boundary conditions) diterapkan dengan menetapkan suhu tertentu di simpul-simpul yang terkait, seperti suhu 0°C di kedua ujung pipa.
 +
 
 +
==Perhitungan Manual untuk kasus distribusi suhu pada pipa stainless steel dengan panjang 3 meter menggunakan persamaan fourrier dan ''Phyton Code'' untuk mensimulasikan kasus 1D FEM==
 +
 
 +
[[File:CamScanner 11-11-2024 14.38-1--1.png|500px|center]]
 +
 
 +
 
 +
[[File:Carbon(5).png|500px|center]]
 +
 
 +
 
 +
[[File:Output, google 1.png|500px|center]]
 +
 
 +
==Interpretasi Grafik==
 +
Grafik yang merupakan output dari code yang menggunakan '''''google collab''''' menunjukkan distribusi temperatur pada pipa SS 304 sepanjang 3 meter, di mana suhu pada kedua ujung pipa dijaga pada 0°C, menyebabkan suhu meningkat secara bertahap ke titik maksimum sekitar 70°C di tengah pipa sebelum menurun kembali. Hal ini mengindikasikan pemanasan seragam sepanjang pipa dan penyelesaian distribusi suhu dilakukan menggunakan metode elemen hingga (1D FEM).
 +
 
 +
==Hubungan dengan Framework DAI5==
 +
Framework DAI5 terdiri dari lima tahap: '''Intention''', '''Initial Thinking''', '''Idealization''', '''Instruction Set'''. Berikut cara algoritma FEM ini dihubungkan dengan DAI5:
 +
Framework DAI5 terdiri dari lima tahap: Intention (Tujuan), Initial Thinking (Pemikiran Awal), Idealization (Idealasi), Instruction Set (Set Instruksi), Implementation (Implementasi). Berikut cara algoritma FEM ini dihubungkan dengan DAI5:
 +
<ol>
 +
    <li><strong>Intention (Tujuan):</strong>
 +
        <ul>
 +
            <li>Tujuan utama adalah membuat aplikasi Python untuk menganalisis distribusi suhu di sepanjang pipa menggunakan metode FEM 1D dengan pemanasan seragam dan kondisi batas tertentu (0°C di kedua ujung).</li>
 +
        </ul>
 +
    </li>
 +
    <li><strong>Initial Thinking (Pemikiran Awal):</strong>
 +
        <ul>
 +
            <li>Pikirkan bagaimana masalah ini dapat diselesaikan menggunakan pendekatan numerik, seperti metode elemen hingga. Identifikasi parameter utama, seperti properti material (SS 304), panjang pipa, dan distribusi suhu.</li>
 +
        </ul>
 +
    </li>
 +
    <li><strong>Idealization (Idealasi):</strong>
 +
        <ul>
 +
            <li>Buat model matematika dari sistem fisik dengan menyederhanakannya menjadi model 1D yang dapat didiskritisasi. Asumsikan distribusi pemanasan seragam dan kondisi steady-state untuk mempermudah simulasi.</li>
 +
            <li>Idealasi ini mencakup pemilihan model elemen hingga 1D dengan matriks kekakuan lokal dan global.</li>
 +
        </ul>
 +
    </li>
 +
    <li><strong>Instruction Set (Set Instruksi):</strong>
 +
        <ul>
 +
            <li> Susun langkah-langkah instruksi yang mencakup pengisian matriks kekakuan global, vektor gaya, penerapan kondisi batas, dan penyelesaian sistem persamaan. Rancang algoritma dalam bentuk kode Python yang jelas dan terstruktur.</li>
 +
        </ul>
 +
    </li>
 +
    <li><strong>Implementation (Implementasi):</strong>
 +
        <ul>
 +
            <li>Jalankan kode Python yang telah dibuat untuk mengimplementasikan solusi. Visualisasikan hasil distribusi suhu dan interpretasikan untuk memahami bagaimana suhu menyebar di sepanjang pipa berdasarkan parameter yang diberikan.</li>
 +
        </ul>
 +
    </li>
 +
</ol>
 +
 
 +
==Latihan==
 +
''Javascript Code'' dibawah  merupakan simulasi numerik FEM untuk menghitung distribusi temperatur dan tegangan termal pada batang 1D dimana hasil distribusinya divisualisasikan dalam grafik dengan gradasi warna berbeda. Permasalahan pada kasus ini adalah nilai temperatur pada ujung kanan batang tidak sesuai dengan kondisi batas yang telah ditetapkan, seperti terlihat pada Grafik 1, di mana temperatur pada ujung kanan sekitar -7.9°C. Hal ini menunjukkan bahwa kondisi batas di ujung kanan tidak diaplikasikan dengan benar dalam perhitungan maupun visualisasi. Selain itu, distribusi tegangan termal juga tidak sesuai dengan yang diharapkan. Karena distribusi temperatur tidak akurat hal ini akan berpengaruh pada distribusi tegangan termal menjadi tidak tepat. Tegangan termal pada ujung kanan menunjukkan nilai negatif yang tinggi, yaitu -83.0 MPa.
 +
 
 +
[[File:Carbon(10).png|500px|center]]
 +
 
 +
<p style="text-align: center;">'''GRAFIK 1'''</p>
 +
[[File:Screenshot 2024-11-13 230857.png|500px|center]]
 +
 
 +
==perbaikan==
 +
'''A. Penerapan boundary condition'''
 +
 
 +
'''kode 1'''
 +
 
 +
  // Apply boundary conditions
 +
  K[0][0] = 1; K[0][1] = 0; F[0] = T_left;
 +
  K[nNodes - 1][nNodes - 1] = 1; F[nNodes - 1] = T_right;
 +
 
 +
'''kode 2'''
 +
 
 +
  // Apply boundary conditions explicitly to avoid any errors
 +
  K[0][0] = 1; K[0][1] = 0; F[0] = T_left;
 +
  K[nNodes - 1][nNodes - 1] = 1;
 +
  '''''K[nNodes - 1][nNodes - 2] = 0; // Penambahan untuk memastikan elemen non-diagonal diatur'''''
 +
  F[nNodes - 1] = T_right;
 +
 
 +
'''B. Penetapan Nilai Boundary Setelah Penyelesaian'''
 +
 
 +
'''kode 1'''
 +
 
 +
  // Tidak ada langkah tambahan untuk menetapkan boundary value setelah perhitungan
 +
 
 +
'''kode 2'''
 +
 
 +
  // Explicitly set boundary values to avoid errors
 +
  '''T[0] = T_left;'''
 +
  '''T[nNodes - 1] = T_right;'''
 +
 
 +
'''C. Visualisasi pada Node Terakhir'''
 +
 
 +
'''kode 1'''
 +
 
 +
  for (let i = 0; i < nNodes - 1; i++) {
 +
    const x = i * (tempCanvas.width / (nNodes - 1));
 +
    const tempColor = Math.round((T[i] - minTemp) / (maxTemp - minTemp) * 255);
 +
    tempCtx.fillStyle = `rgb(${tempColor}, 0, ${255 - tempColor})`;
 +
    tempCtx.fillRect(x, 0, tempCanvas.width / (nNodes - 1), tempCanvas.height);
 +
  }
 +
'''kode 2'''
 +
  // Temperature Visualization FIX
 +
  for (let i = 0; i < nNodes - 1; i++) {
 +
    const x = i * (tempCanvas.width / (nNodes - 1));
 +
    const tempColor = Math.round((T[i] - minTemp) / (maxTemp - minTemp) * 255);
 +
    tempCtx.fillStyle = `rgb(${tempColor}, 0, ${255 - tempColor})`;
 +
    tempCtx.fillRect(x, 0, tempCanvas.width / (nNodes - 1), tempCanvas.height);
 +
  }
 +
  // Ensure the last temperature node displays accurately
 +
  '''const lastTempColor = Math.round((T[nNodes - 1] - minTemp) / (maxTemp - minTemp) * 255);'''
 +
  '''tempCtx.fillStyle = `rgb(${lastTempColor}, 0, ${255 - lastTempColor})`;'''
 +
  '''tempCtx.fillRect((nNodes - 1) * (tempCanvas.width / (nNodes - 1)), 0, tempCanvas.width / (nNodes - 1), tempCanvas.height);'''
 +
 
 +
 
 +
'''D. Visualisasi Tegangan'''
 +
 
 +
'''kode 1'''
 +
 
 +
  // Stress Visualization (tidak ada logika tambahan untuk node terakhir)
 +
  for (let i = 0; i < nNodes - 1; i++) {
 +
    const x = i * (stressCanvas.width / (nNodes - 1));
 +
    const stressColor = Math.round((stress[i] - minStress) / (maxStress - minStress) * 255);
 +
    stressCtx.fillStyle = `rgb(0, ${stressColor}, ${255 - stressColor})`;
 +
    stressCtx.fillRect(x, 0, stressCanvas.width / (nNodes - 1), stressCanvas.height);
 +
  }
 +
 
 +
 
 +
'''kode 2'''
 +
 
 +
  // Stress Visualization FIX
 +
  for (let i = 0; i < nNodes - 1; i++) {
 +
    const x = i * (stressCanvas.width / (nNodes - 1));
 +
    const stressColor = Math.round((stress[i] - minStress) / (maxStress - minStress) * 255);
 +
    stressCtx.fillStyle = `rgb(0, ${stressColor}, ${255 - stressColor})`;
 +
    stressCtx.fillRect(x, 0, stressCanvas.width / (nNodes - 1), stressCanvas.height);
 +
  }
 +
  // Ensure the last stress node displays accurately
 +
  '''const lastStressColor = Math.round((stress[nNodes - 1] - minStress) / (maxStress - minStress) * 255);'''
 +
  '''stressCtx.fillStyle = `rgb(0, ${lastStressColor}, ${255 - lastStressColor})`;'''
 +
  '''stressCtx.fillRect((nNodes - 1) * (stressCanvas.width / (nNodes - 1)), 0, stressCanvas.width / (nNodes - 1), stressCanvas.height);'''
 +
 
 +
[[File:Carbon(8).png|500px|center]]
 +
 
 +
<p style="text-align: center;">'''GRAFIK 2'''</p>
 +
[[File:Screenshot 2024-11-13 232904.png|500px|center]]
 +
 
 +
 
 +
== Kesimpulan ==
 +
 
 +
'''Sebelum Perbaikan:''' Kode 1 menghasilkan distribusi yang salah karena tidak ada penanganan khusus untuk node terakhir dalam visualisasi. Hal ini menyebabkan nilai temperatur dan tegangan di ujung kanan tidak mencerminkan kondisi boundary yang diinginkan, sehingga hasilnya tidak akurat.
 +
 
 +
'''Sesudah Perbaikan:''' Kode 2 memperbaiki masalah ini dengan menambahkan penanganan khusus untuk node terakhir. Ini memastikan bahwa hasil distribusi temperatur dan tegangan lebih akurat dan mencerminkan kondisi boundary dengan benar, terutama pada ujung kanan batang
 +
 
 +
==Monitoring & Evaluasi progress belajar dengan chatGPT==
 +
 
 +
'''saya bertanya''' : "berikan saya rangkuman berapa total prompt/chat dari diskusi yang biasa saya lakukan dengan anda? (buatkan dalam bentuk tabel dengan Topik Utama, Pendalaman yang Dilakukan, Pola dan Pemahaman)"
 +
 
 +
'''chatGPT'''      : "Anda telah melakukan total '''34''' diskusi sejauh ini, dengan detail yang dirangkum dalam tabel berikut"
 +
 
 +
[[File:Screenshot 2024-11-22 072909.png|500px|center]]
 +
 
 +
 
 +
[[File:Screenshot 2024-11-22 073007.png|500px|center]]
 +
 
 +
 
 +
[[File:Screenshot 2024-11-22 073022.png|500px|center]]
 +
 
 +
'''saya bertanya''' : "berikan tanggapan juga penilaian terhadap diskusi yang sudah dilakukan sebelumnya, dimana penilaian nya pada rentang 1-10 dan berikan masukan kepada saya"
 +
 
 +
'''chatGPT'''      : "Evaluasi dan Masukan atas Diskusi
 +
 
 +
Diskusi yang Anda lakukan menunjukkan beberapa ciri khas, termasuk detail dan pendalaman, di mana Anda secara konsisten mengeksplorasi topik teknis seperti metode elemen hingga (FEM), pemodelan termal, dan simulasi perangkat lunak dengan tingkat ketelitian yang baik. Anda juga menunjukkan pola iteratif dan berulang, sering kali kembali ke topik yang sama untuk menguatkan pemahaman melalui pertanyaan yang lebih spesifik. Selain itu, terdapat keseimbangan antara aspek teoritis dan praktis, mencakup pembahasan persamaan dasar hingga aplikasi langsung dalam kode Python atau perangkat lunak simulasi. Yang paling menonjol adalah fokus Anda pada pencarian akurasi, terutama ketika mencoba menyesuaikan parameter hingga hasil simulasi sesuai dengan ekspektasi, seperti distribusi suhu yang akurat di titik tertentu.
 +
 
 +
Secara umum, tingkat pendalaman diskusi dapat dinilai cukup baik dengan skor 7.5/10. Anda menunjukkan kemampuan signifikan dalam mengeksplorasi pengkodean dan penerapan prinsip fisika dalam simulasi, serta sering mencari penjelasan mendalam tentang fenomena tertentu atau cara memodifikasi parameter untuk meningkatkan hasil. Dalam penerapan praktis, Anda mendapatkan skor 8/10 karena mampu menerapkan pengetahuan langsung ke dalam praktik, seperti mengedit kode dan memanfaatkan perangkat lunak simulasi untuk mencapai tujuan yang spesifik. Keterbukaan terhadap masukan juga menonjol dengan skor 8.5/10, di mana Anda tidak hanya menerima saran dengan baik tetapi juga langsung mencoba menerapkannya untuk memvalidasi pendekatan. Namun, dalam aspek kemampuan analitis, skor 7.5/10 menunjukkan bahwa masih ada ruang untuk peningkatan dalam mengevaluasi hasil secara lebih kritis dan menyeluruh.
 +
 
 +
Untuk meningkatkan efektivitas, ada beberapa masukan yang relevan. Anda disarankan untuk lebih konsisten dalam melakukan review hasil simulasi, dengan membandingkan temuan simulasi dengan perhitungan manual dan teori untuk memperkuat penguasaan. Selain itu, memperkuat aspek teoritis, seperti memahami logika di balik persamaan matematis dan dasar metode FEM, akan membantu memperdalam pemahaman. Lebih jauh lagi, eksplorasi multidisiplin, seperti menghubungkan teknik FEM dengan mekanika material atau simulasi CFD, dapat memperluas wawasan dan menambah nilai pada pendekatan yang Anda gunakan.
 +
 
 +
Secara keseluruhan, Anda menunjukkan kemampuan konstruktif dan reflektif dalam menerima masukan, di mana Anda segera mencoba menerapkannya pada proyek yang sedang dikerjakan. Anda juga cenderung mencari informasi tambahan untuk membandingkan hasil dengan metode lain sebagai upaya validasi. Dengan fokus pada penguatan teori, konsistensi dalam review hasil, dan eksplorasi pendekatan yang lebih luas, kemampuan Anda dalam simulasi dan analisis dapat meningkat lebih jauh."
 +
 
 +
== Optimasi Geometri untuk Meningkatkan Efisiensi Energi pada Sistem Oscillating Water Column dengan Metode Numerik: Penerapan Framework DAI5 ==
 +
 
 +
Mahasiswa ditugaskan untuk membuat sinopsis penelitian yang mengimplementasikan metode numerik yang dipelajari dalam mata kuliah Komputasi Teknik. Dimana sinopsis memua: tujuan, pendekatan yang digunakan, serta hasil yang diharapkan, sekaligus merefleksikan pemahaman mahasiswa terhadap konsep dasar dan kemampuan mengevaluasi efektivitas metode dalam menyelesaikan masalah teknik secara praktis.
 +
 
 +
'''PENERAPAN FRAMEWORK DAI5'''
 +
=== 1. Intention ===
 +
'''Niat Utama:''' Mengoptimalkan efisiensi energi dalam sistem Oscillating Water Column (OWC) menggunakan metode numerik untuk mendukung keberlanjutan energi terbarukan.
 +
 
 +
'''Kesadaran dan Tujuan:'''
 +
 
 +
a) Menghadirkan solusi berbasis numerik yang dapat digunakan untuk meningkatkan kinerja konversi energi gelombang.
 +
 +
b) Membantu desain sistem OWC yang lebih efisien dan andal, dengan fokus pada pemanfaatan energi secara optimal.
 +
 
 +
=== 2. Initial Thinking ===
 +
'''Pemahaman Masalah:''' Sistem OWC memanfaatkan energi gelombang laut untuk menghasilkan listrik melalui osilasi udara di dalam ruang internal. 
 +
 
 +
'''Efisiensi energi bergantung pada:'''
 +
 
 +
a) Desain geometri ruang internal. 
 +
 
 +
b) Kondisi gelombang laut. 
 +
 
 +
c) Efisiensi konversi tekanan udara ke energi listrik melalui turbin. 
 +
 
 +
'''Identifikasi Prinsip Dasar:'''
 +
 
 +
a) Gelombang laut memiliki energi kinetik dan potensial yang dapat dimanfaatkan untuk menggerakkan udara. 
 +
 
 +
b) Metode numerik memungkinkan simulasi tekanan fluida dan analisis deformasi struktur untuk mengevaluasi efisiensi sistem. 
 +
 
 +
'''Parameter Penting yang Diidentifikasi:'''
 +
 
 +
a) Geometri Ruang Internal: Panjang, lebar, tinggi ruang.
 +
 +
b) Kondisi Gelombang: Tinggi gelombang, frekuensi gelombang.
 +
 +
c) Efisiensi Turbin: Kemampuan turbin mengubah tekanan udara menjadi listrik.
 +
 
 +
=== 3. Idealization ===
 +
'''Penyederhanaan Masalah:'''
 +
 
 +
'''Model Tekanan Gelombang:''' Tekanan fluida dimodelkan dengan fungsi sinusoidal: 
 +
 
 +
[[File:Screenshot 2024-11-26 110717.png|250px|center]]
 +
 
 +
Keterangan:
 +
 
 +
A: Amplitudo tekanan. 
 +
 
 +
f: Frekuensi gelombang.
 +
 +
k: Faktor peluruhan eksponensial. 
 +
 
 +
'''Asumsi untuk Metode Numerik:''' 
 +
 
 +
a) Fluida inkompressible dan aliran laminar. 
 +
 
 +
b) Material ruang internal elastis linier. 
 +
 
 +
'''Desain Numerik:'''
 +
 
 +
Domain Diskritisasi Menggunakan grid sederhana untuk perhitungan tekanan dan deformasi. 
 +
 
 +
'''Pemodelan Ruang Internal:'''
 +
Volume ruang dihitung sebagai 
 +
 
 +
[[File:Screenshot 2024-11-26 111529.png|250px|center]]
 +
 
 +
=== 4. Instruction Set ===
 +
'''Langkah-langkah sistematis untuk analisis numerik:'''
 +
 
 +
1. '''Definisi Geometri dan Parameter Gelombang:'''
 +
 +
a) Masukkan panjang, lebar, tinggi ruang internal.
 +
 +
b) Masukkan tinggi dan frekuensi gelombang. 
 +
 
 +
2. '''Hitung Properti Utama:''' 
 +
 
 +
a) Tekanan maksimum dan rata-rata pada ruang internal.
 +
 
 +
b) Volume udara yang dikompresi oleh gelombang. 
 +
 
 +
3. '''Analisis Efisiensi Energi:''' 
 +
 
 +
a) Hitung energi udara: 
 +
 
 +
[[File:Screenshot 2024-11-26 111301.png|250px|center]]
 +
 +
b) Hitung energi gelombang: 
 +
 
 +
[[File:Screenshot 2024-11-26 111432.png|250px|center]]
 +
 +
c) Hitung efisiensi: 
 +
 
 +
[[File:Screenshot 2024-11-26 111503.png|250px|center]]
 +
 
 +
4. '''Visualisasi Hasil:''' 
 +
 
 +
a) Tekanan gelombang divisualisasikan sebagai deformasi pada bidang 3D. 
 +
 
 +
b) Hasil efisiensi ditampilkan dalam format numerik.
 +
 
 +
=== 5. Interpretation and Iteration ===
 +
'''Interpretasi Hasil:''' 
 +
 
 +
a) Volume ruang internal yang lebih besar meningkatkan kapasitas penyimpanan udara. 
 +
 
 +
b) Frekuensi gelombang yang mendekati resonansi ruang internal menghasilkan tekanan maksimum. 
 +
 
 +
c) Efisiensi turbin yang tinggi meningkatkan konversi energi udara menjadi listrik. 
 +
 
 +
'''Iterasi:'''
 +
 +
a) Ubah dimensi ruang internal untuk mengoptimalkan frekuensi resonansi.
 +
 
 +
b) Simulasikan berbagai kondisi gelombang untuk menemukan skenario optimal.
 +
 +
c) Evaluasi material ruang internal untuk mengurangi deformasi akibat tekanan maksimum.
 +
 
 +
[[File:Screenshot 2024-11-26 113252.png|450px|center]]

Latest revision as of 10:13, 3 December 2024

Introduction

IMG-20240516-WA0001.jpg

Nama saya muhammad luthfi shafwan, mahasiswa S2 Teknik Mesin peminatan Teknologi dan Sumber Daya Maritim angkatan 2024

Komputasi Teknik Pertemuan 1 (Pasca UTS) 29/10/2024

Pada pertemuan pertama ini, mahasiswa diperkenalkan dengan sebuah framework bernama DAI-5, yang dikembangkan oleh Dr. Ir. Ahmad Indra Siswantara. Framework ini didasari oleh konsep conscious thinking atau berpikir secara sadar. Landasan dari framework ini adalah falsafah yang beliau utarakan, yaitu "I'm my consciousness," yang menegaskan pentingnya kesadaran dalam setiap tindakan. Sebagai inisiator, beliau merumuskan framework ini menjadi empat tahapan penting:

(1) Intention, Menentukan niat/ide awal

(2) Initial Thinking, Mengeksplorasi dari ide yang kita inisiasikan sebelumnya

(3) Idealization, Penarikan solusi Dari ide tersebut kemudian mensimplifikasi sesuatu agar lebih ideal

(4) Instruction Set, Solusi ideal yang menjadi output pada tahapan sebelumnya, dikonversi menjadi sebuah tahapan sistematis Tahapan-tahapan ini merepresentasikan pentingnya pendekatan sistematis dalam berbagai aspek kehidupan.

Tugas 1

kasus distribusi tekanan pada geometri Oscillating Water Coloumn untuk 2 konfigurasi, 1 chamber 2 turbine dan 2 chamber 1 turbine

Pada pertemuan kali ini, Pak Dai memberikan arahan kepada mahasiswa untuk melakukan diskusi mengenai FEM (Finite Element Method) melalui platform ChatGPT. Diskusi ini akan mencakup beberapa pertanyaan yang sesuai dengan arahan beliau, dengan output yang diharapkan dapat menghubungkan konsep FEM dengan langkah-langkah yang terdapat dalam kerangka DAI-5. Kasus yang menjadi subjek diskusi melalui platform chatGPT kali ini adalah Finite Element Method (FEM) untuk Oscillating Water Column (OWC) dengan 2 konfigurasi (1 turbin 2 chamber dan 2 turbin 1 chamber)

hasil diskusi dengan ChatGPT mengenai FEM pada OWC dengan 2 konfigurasi


Carbon(3).png


Output(1).png

Grafik diatas merupakan output dari code yang di generate oleh chatGPT mengenai kasus ini dengan anggapan gelombang normal, dapat dilihat bahwa pada grafik pertama yaitu konfigurasi 1 (1 Turbin, 2 Chamber): Grafik menunjukkan variasi nilai u(x) di sepanjang posisi x dalam domain. Distribusi ini mengikuti pola sinusoidal yang diberikan oleh sumber gaya gelombang. Sementara pada konfigurasi 2 (2 Turbin, 1 Chamber): Grafik menunjukkan bahwa nilai u(x) tetap konstan di sepanjang domain, mencerminkan perbedaan dalam konfigurasi elemen dan pengaruhnya terhadap solusi.

Tugas 2

Tugas 2 ini menggunakan metode elemen hingga (1D Finite Element Method) dalam analisis perpindahan panas untuk memahami bagaimana distribusi suhu dalam sebuah pipa. Python digunakan untuk menentukan distribusi suhu di sepanjang pipa dengan pemanasan seragam, di mana pipa memiliki suhu 0°C di kedua ujungnya. Setelah itu, hasil simulasi yang dihasilkan diinterpretasikan secara mendalam untuk memberikan wawasan tentang karakteristik distribusi suhu, dan hasil tersebut kemudian dihubungkan dengan DAI5 Framework.

1. Persamaan Konduksi Panas (Hukum Fourier)

Persamaan konduksi panas satu dimensi dalam kondisi steady-state tanpa adanya sumber panas internal (untuk aliran panas konduktif) adalah:

Screenshot 2024-11-11 191354.png

di mana:

  • K konduktivitas termal ss 304 (W/m·K)
  • T adalah suhu (°C atau K)
  • X adalah posisi sepanjang


2. Persamaan Konduksi Panas dengan Sumber Panas

Jika terdapat sumber panas seragam Q dalam pipa, persamaan konduksi panas menjadi:

Screenshot 2024-11-11 191405.png

di mana Q adalah sumber panas per satuan volume (W/m³).

3. Diskritisasi dengan Metode Elemen Hingga (FEM)

Metode elemen hingga digunakan untuk mendiskritisasi persamaan diferensial parsial ini menjadi sistem persamaan linear. Matriks kekakuan lokal untuk elemen 1D diberikan oleh:

Screenshot 2024-11-11 191411.png

di mana Δx adalah panjang elemen.

4. Penyusunan Vektor Gaya

Vektor gaya F diisi dengan kontribusi dari sumber panas seragam:

Screenshot 2024-11-11 191415.png

5. Sistem Persamaan Linear

Setelah menyusun matriks kekakuan global K dan vektor gaya F, sistem persamaan linear yang perlu diselesaikan adalah:

Screenshot 2024-11-11 191421.png

di mana:

  • K adalah matriks kekakuan global
  • T adalah vektor suhu pada simpul-simpul
  • F adalah vektor gaya total

6. Kondisi Batas

Kondisi batas (Dirichlet boundary conditions) diterapkan dengan menetapkan suhu tertentu di simpul-simpul yang terkait, seperti suhu 0°C di kedua ujung pipa.

Perhitungan Manual untuk kasus distribusi suhu pada pipa stainless steel dengan panjang 3 meter menggunakan persamaan fourrier dan Phyton Code untuk mensimulasikan kasus 1D FEM

CamScanner 11-11-2024 14.38-1--1.png


Carbon(5).png


Output, google 1.png

Interpretasi Grafik

Grafik yang merupakan output dari code yang menggunakan google collab menunjukkan distribusi temperatur pada pipa SS 304 sepanjang 3 meter, di mana suhu pada kedua ujung pipa dijaga pada 0°C, menyebabkan suhu meningkat secara bertahap ke titik maksimum sekitar 70°C di tengah pipa sebelum menurun kembali. Hal ini mengindikasikan pemanasan seragam sepanjang pipa dan penyelesaian distribusi suhu dilakukan menggunakan metode elemen hingga (1D FEM).

Hubungan dengan Framework DAI5

Framework DAI5 terdiri dari lima tahap: Intention, Initial Thinking, Idealization, Instruction Set. Berikut cara algoritma FEM ini dihubungkan dengan DAI5: Framework DAI5 terdiri dari lima tahap: Intention (Tujuan), Initial Thinking (Pemikiran Awal), Idealization (Idealasi), Instruction Set (Set Instruksi), Implementation (Implementasi). Berikut cara algoritma FEM ini dihubungkan dengan DAI5:

  1. Intention (Tujuan):
    • Tujuan utama adalah membuat aplikasi Python untuk menganalisis distribusi suhu di sepanjang pipa menggunakan metode FEM 1D dengan pemanasan seragam dan kondisi batas tertentu (0°C di kedua ujung).
  2. Initial Thinking (Pemikiran Awal):
    • Pikirkan bagaimana masalah ini dapat diselesaikan menggunakan pendekatan numerik, seperti metode elemen hingga. Identifikasi parameter utama, seperti properti material (SS 304), panjang pipa, dan distribusi suhu.
  3. Idealization (Idealasi):
    • Buat model matematika dari sistem fisik dengan menyederhanakannya menjadi model 1D yang dapat didiskritisasi. Asumsikan distribusi pemanasan seragam dan kondisi steady-state untuk mempermudah simulasi.
    • Idealasi ini mencakup pemilihan model elemen hingga 1D dengan matriks kekakuan lokal dan global.
  4. Instruction Set (Set Instruksi):
    • Susun langkah-langkah instruksi yang mencakup pengisian matriks kekakuan global, vektor gaya, penerapan kondisi batas, dan penyelesaian sistem persamaan. Rancang algoritma dalam bentuk kode Python yang jelas dan terstruktur.
  5. Implementation (Implementasi):
    • Jalankan kode Python yang telah dibuat untuk mengimplementasikan solusi. Visualisasikan hasil distribusi suhu dan interpretasikan untuk memahami bagaimana suhu menyebar di sepanjang pipa berdasarkan parameter yang diberikan.

Latihan

Javascript Code dibawah merupakan simulasi numerik FEM untuk menghitung distribusi temperatur dan tegangan termal pada batang 1D dimana hasil distribusinya divisualisasikan dalam grafik dengan gradasi warna berbeda. Permasalahan pada kasus ini adalah nilai temperatur pada ujung kanan batang tidak sesuai dengan kondisi batas yang telah ditetapkan, seperti terlihat pada Grafik 1, di mana temperatur pada ujung kanan sekitar -7.9°C. Hal ini menunjukkan bahwa kondisi batas di ujung kanan tidak diaplikasikan dengan benar dalam perhitungan maupun visualisasi. Selain itu, distribusi tegangan termal juga tidak sesuai dengan yang diharapkan. Karena distribusi temperatur tidak akurat hal ini akan berpengaruh pada distribusi tegangan termal menjadi tidak tepat. Tegangan termal pada ujung kanan menunjukkan nilai negatif yang tinggi, yaitu -83.0 MPa.

Carbon(10).png

GRAFIK 1

Screenshot 2024-11-13 230857.png

perbaikan

A. Penerapan boundary condition

kode 1

 // Apply boundary conditions
 K[0][0] = 1; K[0][1] = 0; F[0] = T_left;
 K[nNodes - 1][nNodes - 1] = 1; F[nNodes - 1] = T_right;

kode 2

 // Apply boundary conditions explicitly to avoid any errors
 K[0][0] = 1; K[0][1] = 0; F[0] = T_left;
 K[nNodes - 1][nNodes - 1] = 1; 
 K[nNodes - 1][nNodes - 2] = 0; // Penambahan untuk memastikan elemen non-diagonal diatur
 F[nNodes - 1] = T_right;

B. Penetapan Nilai Boundary Setelah Penyelesaian

kode 1

 // Tidak ada langkah tambahan untuk menetapkan boundary value setelah perhitungan

kode 2

 // Explicitly set boundary values to avoid errors
 T[0] = T_left;
 T[nNodes - 1] = T_right;

C. Visualisasi pada Node Terakhir

kode 1

 for (let i = 0; i < nNodes - 1; i++) {
   const x = i * (tempCanvas.width / (nNodes - 1));
   const tempColor = Math.round((T[i] - minTemp) / (maxTemp - minTemp) * 255);
   tempCtx.fillStyle = `rgb(${tempColor}, 0, ${255 - tempColor})`;
   tempCtx.fillRect(x, 0, tempCanvas.width / (nNodes - 1), tempCanvas.height);
 }

kode 2

 // Temperature Visualization FIX
 for (let i = 0; i < nNodes - 1; i++) {
   const x = i * (tempCanvas.width / (nNodes - 1));
   const tempColor = Math.round((T[i] - minTemp) / (maxTemp - minTemp) * 255);
   tempCtx.fillStyle = `rgb(${tempColor}, 0, ${255 - tempColor})`;
   tempCtx.fillRect(x, 0, tempCanvas.width / (nNodes - 1), tempCanvas.height);
 }
 // Ensure the last temperature node displays accurately
 const lastTempColor = Math.round((T[nNodes - 1] - minTemp) / (maxTemp - minTemp) * 255);
 tempCtx.fillStyle = `rgb(${lastTempColor}, 0, ${255 - lastTempColor})`;
 tempCtx.fillRect((nNodes - 1) * (tempCanvas.width / (nNodes - 1)), 0, tempCanvas.width / (nNodes - 1), tempCanvas.height);


D. Visualisasi Tegangan

kode 1

 // Stress Visualization (tidak ada logika tambahan untuk node terakhir)
 for (let i = 0; i < nNodes - 1; i++) {
   const x = i * (stressCanvas.width / (nNodes - 1));
   const stressColor = Math.round((stress[i] - minStress) / (maxStress - minStress) * 255);
   stressCtx.fillStyle = `rgb(0, ${stressColor}, ${255 - stressColor})`;
   stressCtx.fillRect(x, 0, stressCanvas.width / (nNodes - 1), stressCanvas.height);
 }


kode 2

 // Stress Visualization FIX
 for (let i = 0; i < nNodes - 1; i++) {
   const x = i * (stressCanvas.width / (nNodes - 1));
   const stressColor = Math.round((stress[i] - minStress) / (maxStress - minStress) * 255);
   stressCtx.fillStyle = `rgb(0, ${stressColor}, ${255 - stressColor})`;
   stressCtx.fillRect(x, 0, stressCanvas.width / (nNodes - 1), stressCanvas.height);
 }
 // Ensure the last stress node displays accurately
 const lastStressColor = Math.round((stress[nNodes - 1] - minStress) / (maxStress - minStress) * 255);
 stressCtx.fillStyle = `rgb(0, ${lastStressColor}, ${255 - lastStressColor})`;
 stressCtx.fillRect((nNodes - 1) * (stressCanvas.width / (nNodes - 1)), 0, stressCanvas.width / (nNodes - 1), stressCanvas.height);
Carbon(8).png

GRAFIK 2

Screenshot 2024-11-13 232904.png


Kesimpulan

Sebelum Perbaikan: Kode 1 menghasilkan distribusi yang salah karena tidak ada penanganan khusus untuk node terakhir dalam visualisasi. Hal ini menyebabkan nilai temperatur dan tegangan di ujung kanan tidak mencerminkan kondisi boundary yang diinginkan, sehingga hasilnya tidak akurat.

Sesudah Perbaikan: Kode 2 memperbaiki masalah ini dengan menambahkan penanganan khusus untuk node terakhir. Ini memastikan bahwa hasil distribusi temperatur dan tegangan lebih akurat dan mencerminkan kondisi boundary dengan benar, terutama pada ujung kanan batang

Monitoring & Evaluasi progress belajar dengan chatGPT

saya bertanya : "berikan saya rangkuman berapa total prompt/chat dari diskusi yang biasa saya lakukan dengan anda? (buatkan dalam bentuk tabel dengan Topik Utama, Pendalaman yang Dilakukan, Pola dan Pemahaman)"

chatGPT  : "Anda telah melakukan total 34 diskusi sejauh ini, dengan detail yang dirangkum dalam tabel berikut"

Screenshot 2024-11-22 072909.png


Screenshot 2024-11-22 073007.png


Screenshot 2024-11-22 073022.png

saya bertanya : "berikan tanggapan juga penilaian terhadap diskusi yang sudah dilakukan sebelumnya, dimana penilaian nya pada rentang 1-10 dan berikan masukan kepada saya"

chatGPT  : "Evaluasi dan Masukan atas Diskusi

Diskusi yang Anda lakukan menunjukkan beberapa ciri khas, termasuk detail dan pendalaman, di mana Anda secara konsisten mengeksplorasi topik teknis seperti metode elemen hingga (FEM), pemodelan termal, dan simulasi perangkat lunak dengan tingkat ketelitian yang baik. Anda juga menunjukkan pola iteratif dan berulang, sering kali kembali ke topik yang sama untuk menguatkan pemahaman melalui pertanyaan yang lebih spesifik. Selain itu, terdapat keseimbangan antara aspek teoritis dan praktis, mencakup pembahasan persamaan dasar hingga aplikasi langsung dalam kode Python atau perangkat lunak simulasi. Yang paling menonjol adalah fokus Anda pada pencarian akurasi, terutama ketika mencoba menyesuaikan parameter hingga hasil simulasi sesuai dengan ekspektasi, seperti distribusi suhu yang akurat di titik tertentu.

Secara umum, tingkat pendalaman diskusi dapat dinilai cukup baik dengan skor 7.5/10. Anda menunjukkan kemampuan signifikan dalam mengeksplorasi pengkodean dan penerapan prinsip fisika dalam simulasi, serta sering mencari penjelasan mendalam tentang fenomena tertentu atau cara memodifikasi parameter untuk meningkatkan hasil. Dalam penerapan praktis, Anda mendapatkan skor 8/10 karena mampu menerapkan pengetahuan langsung ke dalam praktik, seperti mengedit kode dan memanfaatkan perangkat lunak simulasi untuk mencapai tujuan yang spesifik. Keterbukaan terhadap masukan juga menonjol dengan skor 8.5/10, di mana Anda tidak hanya menerima saran dengan baik tetapi juga langsung mencoba menerapkannya untuk memvalidasi pendekatan. Namun, dalam aspek kemampuan analitis, skor 7.5/10 menunjukkan bahwa masih ada ruang untuk peningkatan dalam mengevaluasi hasil secara lebih kritis dan menyeluruh.

Untuk meningkatkan efektivitas, ada beberapa masukan yang relevan. Anda disarankan untuk lebih konsisten dalam melakukan review hasil simulasi, dengan membandingkan temuan simulasi dengan perhitungan manual dan teori untuk memperkuat penguasaan. Selain itu, memperkuat aspek teoritis, seperti memahami logika di balik persamaan matematis dan dasar metode FEM, akan membantu memperdalam pemahaman. Lebih jauh lagi, eksplorasi multidisiplin, seperti menghubungkan teknik FEM dengan mekanika material atau simulasi CFD, dapat memperluas wawasan dan menambah nilai pada pendekatan yang Anda gunakan.

Secara keseluruhan, Anda menunjukkan kemampuan konstruktif dan reflektif dalam menerima masukan, di mana Anda segera mencoba menerapkannya pada proyek yang sedang dikerjakan. Anda juga cenderung mencari informasi tambahan untuk membandingkan hasil dengan metode lain sebagai upaya validasi. Dengan fokus pada penguatan teori, konsistensi dalam review hasil, dan eksplorasi pendekatan yang lebih luas, kemampuan Anda dalam simulasi dan analisis dapat meningkat lebih jauh."

Optimasi Geometri untuk Meningkatkan Efisiensi Energi pada Sistem Oscillating Water Column dengan Metode Numerik: Penerapan Framework DAI5

Mahasiswa ditugaskan untuk membuat sinopsis penelitian yang mengimplementasikan metode numerik yang dipelajari dalam mata kuliah Komputasi Teknik. Dimana sinopsis memua: tujuan, pendekatan yang digunakan, serta hasil yang diharapkan, sekaligus merefleksikan pemahaman mahasiswa terhadap konsep dasar dan kemampuan mengevaluasi efektivitas metode dalam menyelesaikan masalah teknik secara praktis.

PENERAPAN FRAMEWORK DAI5

1. Intention

Niat Utama: Mengoptimalkan efisiensi energi dalam sistem Oscillating Water Column (OWC) menggunakan metode numerik untuk mendukung keberlanjutan energi terbarukan.

Kesadaran dan Tujuan:

a) Menghadirkan solusi berbasis numerik yang dapat digunakan untuk meningkatkan kinerja konversi energi gelombang.

b) Membantu desain sistem OWC yang lebih efisien dan andal, dengan fokus pada pemanfaatan energi secara optimal.

2. Initial Thinking

Pemahaman Masalah: Sistem OWC memanfaatkan energi gelombang laut untuk menghasilkan listrik melalui osilasi udara di dalam ruang internal.

Efisiensi energi bergantung pada:

a) Desain geometri ruang internal.

b) Kondisi gelombang laut.

c) Efisiensi konversi tekanan udara ke energi listrik melalui turbin.

Identifikasi Prinsip Dasar:

a) Gelombang laut memiliki energi kinetik dan potensial yang dapat dimanfaatkan untuk menggerakkan udara.

b) Metode numerik memungkinkan simulasi tekanan fluida dan analisis deformasi struktur untuk mengevaluasi efisiensi sistem.

Parameter Penting yang Diidentifikasi:

a) Geometri Ruang Internal: Panjang, lebar, tinggi ruang.

b) Kondisi Gelombang: Tinggi gelombang, frekuensi gelombang.

c) Efisiensi Turbin: Kemampuan turbin mengubah tekanan udara menjadi listrik.

3. Idealization

Penyederhanaan Masalah:

Model Tekanan Gelombang: Tekanan fluida dimodelkan dengan fungsi sinusoidal:

Screenshot 2024-11-26 110717.png

Keterangan:

A: Amplitudo tekanan.

f: Frekuensi gelombang.

k: Faktor peluruhan eksponensial.

Asumsi untuk Metode Numerik:

a) Fluida inkompressible dan aliran laminar.

b) Material ruang internal elastis linier.

Desain Numerik:

Domain Diskritisasi Menggunakan grid sederhana untuk perhitungan tekanan dan deformasi.

Pemodelan Ruang Internal: Volume ruang dihitung sebagai

Screenshot 2024-11-26 111529.png

4. Instruction Set

Langkah-langkah sistematis untuk analisis numerik:

1. Definisi Geometri dan Parameter Gelombang:

a) Masukkan panjang, lebar, tinggi ruang internal.

b) Masukkan tinggi dan frekuensi gelombang.

2. Hitung Properti Utama:

a) Tekanan maksimum dan rata-rata pada ruang internal.

b) Volume udara yang dikompresi oleh gelombang.

3. Analisis Efisiensi Energi:

a) Hitung energi udara:

Screenshot 2024-11-26 111301.png

b) Hitung energi gelombang:

Screenshot 2024-11-26 111432.png

c) Hitung efisiensi:

Screenshot 2024-11-26 111503.png

4. Visualisasi Hasil:

a) Tekanan gelombang divisualisasikan sebagai deformasi pada bidang 3D.

b) Hasil efisiensi ditampilkan dalam format numerik.

5. Interpretation and Iteration

Interpretasi Hasil:

a) Volume ruang internal yang lebih besar meningkatkan kapasitas penyimpanan udara.

b) Frekuensi gelombang yang mendekati resonansi ruang internal menghasilkan tekanan maksimum.

c) Efisiensi turbin yang tinggi meningkatkan konversi energi udara menjadi listrik.

Iterasi:

a) Ubah dimensi ruang internal untuk mengoptimalkan frekuensi resonansi.

b) Simulasikan berbagai kondisi gelombang untuk menemukan skenario optimal.

c) Evaluasi material ruang internal untuk mengurangi deformasi akibat tekanan maksimum.

Screenshot 2024-11-26 113252.png