콘텐츠로 바로가기

Fluid Simulation & Physics

액체, 기체, 연기와 같은 물리 매질의 흐름을 격자(Grid) 혹은 입자(Particle) 기반의 수리 모델로 시뮬레이션하고, 내비에-스토크스(Navier-Stokes) 방정식의 실시간 해법을 다룹니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

유체 시뮬레이션 및 물리학(Fluid Simulation & Physics, FSP)은 고체와 달리 고정된 형태가 없는 유체 매질의 수평적 이동과 물리적 압력을 수치 연산으로 모사하는 '연속체 역학 시뮬레이션'입니다.

학습자는 공간을 격자로 나누어 유체의 흐름을 관찰하는 오일러(Eulerian) 방식과, 입자 하나하나의 물리량을 추적하는 라그랑주(Lagrangian) 방식의 수리적 수순을 배옵니다. 특히, 현대 유체 공학의 핵심인 Navier-Stokes 방정식을 실시간 하드웨어에서 풀기 위한 수치적 근사 기술과 SPH(Smoothed Particle Hydrodynamics) 기제를 익힙니다. 이를 통해 물방울의 물리적 표면 장력부터 거대한 연기의 수리적 소용돌이까지 하이엔드 자연 현상 거버넌스 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • Navier-Stokes Integration: 유체의 점성, 압력, 속도 전이를 정의하는 물리 수식 연산
  • Eulerian vs Lagrangian Dynamics: 격자 기반 흐름 분석과 입자 기반 물리 에너지 추적 대조
  • Pressure Solver Mechanics: 비압축성(IncompressibleIncompressible) 유체 유지를 위한 수리적 압력 교정
  • Surface Tracking Logic: 물의 물리적 표면(FreeFree SurfaceSurface)을 부드럽게 시각화하는 기술
  • GPU Accelerator Fluid: 수백만 개의 유체 데이터를 GPU 하드웨어에서 병렬 수리 처리하는 법

Out-of-Scope

  • 실제 선박의 유체 저항 설계를 위한 고성능 수치 풍동 실험 (조선 공학 영역)
  • 화공 플랜트의 유체 파이프라인 압력 설계 및 기계적 안전 진단 (화학 공학 영역)

Boundaries

  • FSP vs. Visual VFX: 일반 연출(Shader, 12-05-03)이 '그럴듯해 보이는 시각화'에 집중한다면, FSP는 '물리적 질량 보존과 압력 수치의 수리적 무결성'에 기반한 정밀 시뮬레이션에 집중하여 구분합니다.

3. Counterexample

  • 단순히 "물 텍스처 흔들기"라 설명하는 것은 FSP 학습이 아닙니다. 왜 고정된 시간(dtdt) 수순에서 유체의 물리 속도가 너무 빨라질 때 수리적 **안정성(StabilityStability)**이 붕괴되어 시뮬레이션이 폭발하는지 증명할 수 있어야 하며, 압력 전이(PressurePressure ProjectionProjection) 수순이 누락되었을 때 유체의 수리적 부피가 물리적으로 '수축'되거나 '팽창'하는 하자를 논증하지 못한다면 유체 공학의 본질을 이해하지 못한 것입니다.

4. Prerequisites

  • Calculus & Differential Equations (Basic): 04-XX-XX의 편미분 및 벡터장(VectorVector FieldField) 이해가 필수입니다.
  • Particles & Soft Body Dynamics (Recommended): 12-07-02의 입자 물리 기본 구조 이해가 권합됩니다.

5. Learning Map

  1. Field vs Particle: 공간의 흐름을 수치화할지, 입자의 궤적을 물리화할지 결정하는 시뮬레이션 철학을 배웁니다.
  2. The Master Equation: 유체의 모든 움직임을 명세하는 Navier-Stokes 수식을 수리적으로 분해하여 루프에 주입합니다.
  3. Pressure Equilibrium: 수만 개의 데이터 유닛 사이의 수리적 압력을 맞춰 유체의 물리적 연속성을 확보합니다.
  4. Cinematic Realism: 하드웨어 가용 수치 내에서 현실과 구별할 수 없는 하이엔드 유체 물리를 완성합니다.

6. Learning Topics

Basic

Core: 오일러와 라그랑주 접근법 (Fluid Approaches)

  • Why to Learn: 시뮬레이션의 물리적 목적(연기 vs 물방울)에 따라 최적의 수리 모델을 선택하기 위해서입니다.
  • What to Learn:
    • Grid-based (Eulerian): 공간 고정 격자 수치에서 물리량 변화 관찰
    • Particle-based (Lagrangian): 움직이는 물리 입자에서 수리적 변위 추적
    • Advection Logic: 물리량(온도, 농도 등)이 흐름을 타고 수리적으로 전파되는 기제
  • How to Learn:
    • 격자 칸을 이동하며 색상 수치가 물리적으로 번지는 잉크 확산 시뮬레이터 실습
    • Particle vs Grid 방식의 수리적 연산량(BigBig-OO)을 데이터 수치별로 물리 대조 분석
  • Implement: 격자 간의 색상 수치를 인접 셀로 물리 이동시키는 기초 Advection_Module

Core: 입자 기반 유체 역학과 SPH (SPH Physics)

  • Why to Learn: 물방울이나 소규모 물의 물리적 상호작용을 가장 직관적인 수리 구조로 구현하기 위함입니다.
  • What to Learn:
    • Smoothing Kernel Math: 주변 물리 입자들의 영향을 수리적으로 가중 평균하는 법
    • Density & Pressure Force: 입자 간 물리 거리에 따른 수리적 반발력 산출
    • Viscosity Dynamics: 유체의 끈적임 수치를 물리적으로 제어하는 기술
  • How to Learn:
    • 1,000개의 물리 입자를 컵에 담았을 때, 물리 표면이 수리적으로 어떻게 평탄화되는지 실습
    • Kernel Radius 수치 변화에 따라 유체의 물리적 덩어리짐이 수리적으로 어떻게 변하는지 훈련
  • Implement: 주변 입자의 물리 밀도를 계산하여 압력 수치를 도출하는 SPH_Solver_Lite

Practical

Core: 격자 기반 안정성과 연기 시뮬레이션 (Smoke Dynamics)

  • Why to Learn: 방대한 실내 공간의 연기나 기체 흐름을 물리적 해상도 손실 없이 수리적으로 처리하기 위해서입니다.
  • What to Learn:
    • Stam's Stable Fluid: 수리적 발산 없이 유체를 돌리는 하이엔드 알고리즘
    • Divergence-Free Field: 물리적 흐름의 합이 0이 되게 하는 수리적 비압축성 보장
    • Vorticity Confinement: 시각적 디테일을 위해 수리적 소용돌이 물리량을 증폭하는 법
  • How to Learn:
    • Stable Fluid 소스 코드를 분석하며, 물리적 입력이 수리적 파동을 거쳐 전체 공간으로 물리 전파되는 수순 실습
    • Buoyancy (부력) 수치를 높여 연기가 물리적으로 상승하며 수리적 난류를 형성하는 현상 분석 훈련
  • Implement: 격자장(GridGrid FieldField)의 발산 수치를 0으로 수렴시키는 Pressure_Projector

Advanced

Core: 하이브리드 유체와 GPU 가속 (Advanced Governance)

  • Why to Learn: 격자와 입자의 수리적 장점만을 결합(Flip/Pic)하여 수백만 개의 물리 유체를 하드웨어 실시간 연산하기 위함입니다.
  • What to Learn:
    • FLIP (Fluid Implicit Particle): 입자로 연산하고 격자로 교정하는 하이브리드 물리 모델
    • Level Set Method: 수리적 거리를 통해 유체의 물리적 경계면(SurfaceSurface)을 정의
    • CUDA/Compute Fluid: 수백만 번의 수리 미분 연산을 GPU 하드웨어 병렬 수치로 위임
  • How to Learn:
    • Flip Simulation 수순에서 입자와 격자 간의 물리적 전송 수치 오차를 수리적으로 교정하는 실습
    • Fluid Audit을 수행하여, 파도가 물리적 장애물에 부딪힐 때 발생하는 수리적 말오름(SplashingSplashing) 현상 입증 프로젝트
  • Implement: GPU 병렬 커널을 사용하여 수만 개의 물리적 셀 상호작용을 수리 처리하는 High_End_Fluid_Governor

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Navier-Stokes 유체의 속도, 압력, 점성 간의 물리적 관계를 명세한 그래픽스 입체 물리학의 핵심 수식입니다. 기본 기초 물리 Equation / Vector Newton's Law 수식 자체임 P1:CS2023 core
SPH 입자들에 커널 함수를 적용하여 유체의 물리적 연속성을 수리적으로 모사하는 입자 기반 기법입니다. 실무 시뮬레이션 Particle / Kernel Eulerian 입자로 시뮬함 Industry core
Advection 유체 속의 특정 수치(색상, 온도 등)가 유체의 흐름 물리량을 타고 공간으로 이동하는 수리적 과정입니다. 추천 수치 매몰 Flow / Transport Diffusion 흐름 따라감 P1:CS2023 core
Incompressible 유체의 부피 수치가 물리적 압력에도 변하지 않는 성질로, 실시간 수리 안정성의 필수 조건입니다. 심화 제약 조건 Pressure / Volume Compressible 부피 고정임 Industry core

8. References

Primary

Secondary

  • [Stable Fluids] Jos Stam (SIGGRAPH 1999) — The foundational paper for real-time fluids.
  • [Fluid Engine Development] Doyub Kim - Practical engine implementation guide.

Industry

  • [NVIDIA Flex: Unified Physics Documentation] — Practical GPU fluid standards.
  • [SideFX Houdini: Fluid Dynamics Mechanics] — High-end offline/real-time hybrid standards.

9. Final Checklist

Primary

  • 'Navier-Stokes' 방정식의 속도(VelocityVelocity) 전파 과정을 수리적 'Advection' 단계를 통해 설명 가능한가? (P1)
  • '격자 기반' 방식과 '입자 기반' 방식이 갖는 수리적 해상도와 물리적 메모리 사이의 거버넌스를 논증할 수 있는 가? (P1)

Secondary

  • '비압축성 유체' 수순에서 압력 해결사(PressurePressure SolverSolver)가 물리적 부피 수치 보존에 기여하는 바를 소통 가능한가?
  • Smoothing Kernel 수치 오차가 유체의 물리 점성(ViscosityViscosity)을 어떻게 수리적으로 왜곡시키는지 진단할 수 있는 가?

Industry

  • 실무 시뮬레이션 검수 시, 하드웨어 Compute Occupancy 수치를 분석하여 유체 입자 개수 수리 상한선을 제안할 수 있는 가? (SFIA)
  • Adaptive Time-stepping 기술을 활용하여, 유체의 물리 속도가 변화함에 따라 수리적 연산 주기를 하이엔드로 최적화할 수 있는 가?