Difference between revisions of "User:LuthfiShafwan"
(→Introduction) |
(→Monitoring & Evaluasi progress belajar dengan chatGPT) |
||
(205 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | = Introduction = | |
− | [[File:IMG-20240516-WA0001.jpg|115px| | + | [[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 | ||
− | + | = 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: | 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: | ||
Line 14: | Line 14: | ||
(4) Instruction Set, Solusi ideal yang menjadi output pada tahapan sebelumnya, dikonversi menjadi sebuah tahapan sistematis | (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. | Tahapan-tahapan ini merepresentasikan pentingnya pendekatan sistematis dalam berbagai aspek kehidupan. | ||
− | == Tugas 1 == | + | |
+ | =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) | ||
+ | |||
+ | [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(3).png|500px|center]] | ||
+ | |||
+ | |||
+ | [[File:Output(1).png|600px|center]] | ||
+ | |||
+ | 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: | ||
+ | |||
+ | [[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." |
Latest revision as of 07:27, 22 November 2024
Contents
- 1 Introduction
- 2 Komputasi Teknik Pertemuan 1 (Pasca UTS) 29/10/2024
- 3 Tugas 1
- 4 Tugas 2
- 4.1 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
- 4.2 Interpretasi Grafik
- 4.3 Hubungan dengan Framework DAI5
- 4.4 Latihan
- 4.5 perbaikan
- 4.6 Kesimpulan
- 4.7 Monitoring & Evaluasi progress belajar dengan chatGPT
Introduction
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
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:
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:
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:
di mana Δx adalah panjang elemen.
4. Penyusunan Vektor Gaya
Vektor gaya F diisi dengan kontribusi dari sumber panas seragam:
5. Sistem Persamaan Linear
Setelah menyusun matriks kekakuan global K dan vektor gaya F, sistem persamaan linear yang perlu diselesaikan adalah:
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
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:
- 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).
- 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.
- 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.
- 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.
- 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.
GRAFIK 1
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);
GRAFIK 2
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"
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."