Computational Fluid Dynamics (CFD)
Rocket Simulation System

Analisis mendalam mengenai bagaimana mesin simulasi saya memodelkan dinamika fluida dan fisika penerbangan roket menggunakan komputasi berkinerja tinggi.

Apa itu Computational Fluid Dynamics (CFD)?

Computational Fluid Dynamics (CFD) adalah cabang dari mekanika fluida yang menggunakan analisis numerik dan struktur data untuk menganalisis dan memecahkan masalah yang melibatkan aliran fluida. Dalam simulasi ini, saya menggunakan pendekatan High-Fidelity Physics yang mengimplementasikan elemen-elemen persamaan Navier-Stokes yang disederhanakan untuk penerbangan roket.

Upgrade terbaru sistem saya mencakup:

  • Variable Drag Coefficient ($C_d$): Hambatan udara kini tidak statis. saya memodelkan Transonic Drag Rise (Wave Drag) saat roket mendekati kecepatan suara (Mach 0.8 - 1.2), di mana gaya hambat melonjak drastis.
  • Atmospheric Thrust Lapse: Menghitung penurunan efisiensi mesin di atmosfer padat. $F_{thrust} = F_{vac} - (P_{atm} \times A_{exit})$. Mesin roket "bernapas" lebih lega di ruang hampa!
  • Compressible Flow: Udara diperlakukan sebagai fluida yang dapat dikompresi, mempengaruhi densitas ($\rho$) dan temperatur stagnasi pada hidung roket.

Persamaan gerak diferensial diselesaikan secara iteratif menggunakan metode integrasi numerik (Runge-Kutta 4th Order) untuk presisi tingkat tinggi.

Rumus Fisika & Validasi Model

Berikut adalah detail matematika di balik simulasi "High Fidelity" ini. saya menggunakan pendekatan fisik yang biasa digunakan oleh simulator penerbangan kelas industri (seperti NASA GMAT atau OpenRocket), bukan pendekatan sekolah menengah biasa.

1. Gravitasi Dinamis (Inverse-Square Law)

✅ RUMUS YANG SAYA GUNAKAN:

$$g(h) = g_0 \left(\frac{R_E}{R_E + h}\right)^2$$

Alasan: Gravitasi bumi tidak konstan. Semakin jauh roket dari pusat bumi ($h$ bertambah), tarikan gravitasi melemah secara kuadratik. Pada ketinggian orbit (400km), gravitasi hanya ~8.7 m/s², bukan 9.8 m/s². Mengabaikan ini membuat perhitungan orbit tidak mungkin dilakukan.

❌ RUMUS BIASA (SERING SALAH):

$$g = 9.81 \, m/s^2 \, (\text{Konstan})$$

Kelemahan: Hanya akurat untuk benda yang jatuh dekat permukaan tanah. Jika digunakan untuk roket luar angkasa, roket akan "terasa" terlalu berat di ketinggian tinggi, menyebabkan bahan bakar habis sebelum mencapai orbit.

2. Hambatan Udara & Transonic Drag

✅ RUMUS YANG SAYA GUNAKAN:

$$F_d = \frac{1}{2} \rho(h) v^2 C_d(M) A$$

Fitur Kunci: 1. Densitas ($\rho$) berubah eksponensial terhadap ketinggian.
2. Koefisien Drag ($C_d$) tidak konstan, melainkan fungsi dari Mach Number ($M$). Saat $M \approx 1.0$ (Speed of Sound), $C_d$ melonjak tajam (Wave Drag).

❌ PENDEKATAN SIMPEL:

$$F_d = 0 \, \text{atau} \, C_d = \text{Konstan}$$

Kelemahan: Mengabaikan atmosfer membuat roket tampak jauh lebih efisien dari aslinya. Menganggap $C_d$ konstan akan mengabaikan "tembok suara" yang sulit ditembus.

3. Metode Integrasi: Runge-Kutta 4 (RK4)

Untuk memprediksi posisi roket di masa depan berdasarkan gaya saat ini, saya tidak menggunakan rumus gerak lurus ($s = v_0 t + \frac{1}{2}at^2$) karena percepatan ($a$) berubah setiap detik (akibat perubahan massa bahan bakar, drag, dan gravitasi).

✅ METODE RK4 (High Precision):

k1 = f(t, y)
k2 = f(t + dt/2, y + dt*k1/2)
k3 = f(t + dt/2, y + dt*k2/2)
k4 = f(t + dt, y + dt*k3)
y_new = y + (k1 + 2k2 + 2k3 + k4)/6 * dt

Mengambil 4 sampel slope per langkah waktu untuk akurasi ekstrem.

❌ METODE EULER (Low Precision):

y_new = y + f(t, y) * dt

Sangat tidak akurat untuk simulasi orbital. Error menumpuk cepat ("Energy Drift").

Input Parameter Simulasi

Data yang Anda masukkan digunakan untuk mendefinisikan karakteristik fisik roket dan misi penerbangan.

Fuel Mass (Massa Bahan Bakar)

Jumlah massa propellant (kg) yang dibawa roket. Massa ini akan berkurang seiring waktu pembakaran, mengubah rasio Thrust-to-Weight secara drastis selama penerbangan.

Thrust (Gaya Dorong)

Gaya (Newton) yang dihasilkan oleh mesin roket. Gaya ini melawan gravitasi dan hambatan udara untuk mendorong roket ke angkasa.

Burn Time (Waktu Pembakaran)

Durasi (detik) di mana mesin roket aktif membakar bahan bakar. Setelah waktu ini habis, gaya dorong menjadi nol dan roket akan meluncur (coasting) hingga mencapai titik tertinggi (apoapsis).

Simulation Duration

Total waktu simulasi yang ingin dihitung. Memastikan kita bisa melihat fase naik, fase meluncur, hingga fase jatuh kembali (jika sub-orbital).

Analisis Grafik Output

1. Altitude & Velocity (Ketinggian & Kecepatan)

  • Garis Biru (Altitude): Menunjukkan posisi vertikal roket dari permukaan laut. Kurva berbentuk parabola menunjukkan fase naik, puncak lintasan, dan fase turun.
  • Garis Kuning (Velocity): Menunjukkan kecepatan roket. Semakin curam kemiringannya, semakin tinggi percepatannya. Setelah bahan bakar habis (Burn Time), kecepatan akan menurun karena tarikan gravitasi.

2. Acceleration (G-Force)

Garis Merah: Grafik ini menunjukkan percepatan yang dialami roket dalam satuan G (gravitasi bumi). Anda akan melihat lonjakan eksponensial saat bahan bakar menipis karena roket menjadi lebih ringan sementara gaya dorong tetap konstan. Penurunan tajam terjadi saat mesin mati (cutoff).

3. Rocket Mass (Massa Roket)

Garis Hijau: Menunjukkan massa total roket yang berkurang secara linear seiring bahan bakar terbakar. Setelah Burn Time, massa menjadi konstan.

4. Aerodynamics (High Fidelity)

Max-Q (Dynamic Pressure): Garis ungu menunjukkan tekanan angin yang menghantam badan roket ($q = \frac{1}{2} \rho v^2$). Puncak kurva ini adalah Max-Q, momen paling berbahaya di mana roket mengalami stres mekanis terbesar. Setelah Max-Q, tekanan turun karena udara semakin tipis.

Mach Number: Garis putus-putus (Pink) mengukur rasio kecepatan roket terhadap kecepatan suara. Saat Mach melewati 1.0 (Supersonik), roket menembus Sound Barrier dan mengalami lonjakan hambatan udara (Wave Drag).

Human Tolerance & G-Force Limits

Dalam penerbangan antariksa berawak, faktor pembatas utama seringkali bukan kemampuan roket, melainkan ketahanan tubuh manusia terhadap gaya akselerasi (G-Force). Human Tolerance adalah batas fisiologis manusia dalam menahan gaya inersia sebelum mengalami kehilangan kesadaran (G-LOC) atau cedera fisik.

Batas Fisiologis (Sumbu +Gz)

  • 1-3 G Nyaman, setara dengan naik roller coaster ringan.
  • 3-5 G Berat. Astronot terlatih (seperti peluncuran Soyuz/Falcon 9). Orang awam mulai kesulitan bernapas.
  • 6-9 G Sangat Berbahaya. Penglihatan menyempit ("Tunnel Vision"). Tanpa G-Suit, pingsan terjadi dalam detik.
  • > 9 G Lethal (Mematikan). Kerusakan pembuluh darah dan organ dalam. Tulang dapat patah.

Rumus Kalkulasi G-Load

G-Force yang "dirasakan" oleh astronot bukan sekadar akselerasi roket, melainkan kombinasi gaya kontak (Thrust & Drag) dibagi berat normal.

$$G_{load} = \frac{T - D}{m \cdot g_0}$$

Dimana:

T = Thrust (Gaya Dorong Mesin)

D = Drag (Hambatan Udara)

m = Instantaneous Mass (Massa Roket Saat Itu)

g₀ = Gravitasi Standar (9.81 m/s²)

Catatan: Saat mesin mati (cutoff) di luar angkasa, $T=0$ dan $D \approx 0$, sehingga $G_{load} = 0$ (Weightless/Nirgaya), meskipun roket masih melaju kencang.

Teknologi yang Digunakan

Modern Fortran

Physics Core

Bahasa pemrograman legendaris untuk komputasi ilmiah. Dipilih karena kecepatan eksekusi numeriknya yang superior dan penanganan operasi array (vektor) secara native. Ini memastikan perhitungan ribuan time-step selesai dalam hitungan milidetik.

Python (Flask)

Backend Logic

Framework web ringan yang berfungsi sebagai jembatan (glue code). Flask menangani HTTP request dari pengguna, menjalankan file executable Fortran melalui subprocess, dan mengembalikan hasil simulasi dalam format JSON ke frontend.

Tailwind CSS

User Interface

Framework CSS utility-first yang memungkinkan pembuatan antarmuka modern, responsif, dan rapi tanpa menulis file CSS kustom yang rumit. Mempercepat pengembangan UI Mission Control yang kompleks.

Chart.js

Data Viz

Library JavaScript untuk rendering data visual. Dipilih karena kemampuannya menangani update data dinamis (Live Telemetry) dan interaktivitas tinggi seperti zoom/pan pada hasil simulasi.

MathJax

Formula Engine

Mesin display matematika untuk web. Memungkinkan penulisan rumus fisika kompleks (seperti Navier-Stokes atau Integral) dalam format LaTeX yang indah dan terbaca di browser.

RK4 Logic

Algorithm

Algoritma Runge-Kutta 4th Order diimplementasikan secara manual di Fortran. Ini adalah standar emas untuk menyelesaikan persamaan diferensial biasa (ODE) dengan keseimbangan terbaik antara kecepatan dan akurasi.