# 물리 원리 기반 근사 시뮬레이션

본 모형은 실제 실험의 수치 재현 또는 검증된 CFD가 아닙니다. Steve Mould 영상은 실험 아이디어의 출처이며 이 코드의 정량적 검증 자료가 아닙니다.

## 독립적인 유동 계산

미로는 격자 셀의 무방향 연결 그래프입니다. 셀의 물 용량은 1이고, 열린 연결의 폭은 유동 저항에 영향을 줍니다. 수두 잠재량은 상대 압력과 `0.23 × 셀 높이`의 합입니다. 채워진 셀의 잠재량을 저항 네트워크의 Gauss–Seidel 반복으로 풀고, `q = 3 × width⁴ × Δpotential`로 유량을 계산합니다. 채워지지 않은 셀은 이동하는 물-공기 경계이며 경계 압력에는 `0.12 / width`의 진입 임계값과 공기 압력을 더합니다. 이는 표면장력의 정량적 접촉각 계산을 대신하는 개념적 임계값입니다.

물은 채워진 셀에서만 다음 셀로 전진합니다. 따라서 관성·낙하하는 얇은 막·난류·실제 자유표면·역류와 배수 이력은 재현하지 않습니다. 공급을 중단하면 새 유입과 이류가 멈추며 기존 물은 유지됩니다. 공기방울과 반사 효과도 표시를 위한 도형입니다. 장치 뒤집기를 완료한 수직 방향으로 중력을 계산하며 카메라 회전은 중력을 바꾸지 않습니다. 속도와 시간, 수두, 유입량 모두 모형의 상대 단위입니다.

공기는 아직 채워지지 않은 셀의 연결 성분으로 구분합니다. 출구 또는 열린 입구와 연결된 공기는 대기압으로 배출된다고 가정합니다. 갇힌 성분에는 잔여 부피에 따른 Boyle 형태의 `0.65 × (gas / volume − 1)` 압력을 적용합니다. 봉쇄된 셀은 최소한의 공기 공간을 유지합니다. 기포의 분열·용해·누설은 재현하지 않습니다. 낮은 수두에서는 진입 임계값을 넘지 못해 정체될 수 있으며, 도착을 강제로 만들지 않습니다.

젖은 셀의 저장량 증분과 출구 방출량의 합으로 공급량을 집계합니다. 물 용량은 0~1이며 공급량 = 저장량 + 방출량을 자동 검증합니다. 공급 속도는 전체 네트워크 유량을 제한하는 펌프 상한입니다.

## 염료와 별도 액체

기본 빨간 염료는 물에 섞이는 수동 추적자로 밀도 차이를 주지 않습니다. 계산한 유량으로 인접한 젖은 셀 사이에서 이류하고, 매우 작은 이웃 확산을 더합니다. 유한 체적 혼합과 농도 제한을 사용하지만 고정밀 염료 질량 보존 또는 수치 확산의 수렴 검증은 하지 않았습니다. 정체 통로에서는 이류가 작아 상대적으로 확산이 느립니다. 셀 간 농도 색상은 렌더링에서 보간합니다.

가벼운 액체 모드는 하단 시험구에서 구형 입자를 넣는 **개념적 물리 애니메이션**입니다. 물과 섞이지 않는다고 가정한 입자가 연결된 젖은 통로 중 위쪽 또는 수평 방향으로 이동합니다. 물 대비 밀도는 상승 속도를 바꿉니다. 정량적 부력, 연속 계면, 상분리, 두 유체의 상호 운동량을 계산하지 않으며 별도 액체가 출구에 도착한다는 가정을 하지 않습니다.

## BFS 비교의 정의

BFS는 모든 열린 연결에 동일한 비용 1을 줍니다. 유동 엔진은 BFS 결과를 입력으로 받지 않습니다. 기본 다중 경로형은 11×11 격자를 시드에서 생성하며, 연결된 가지를 만든 뒤 일부 벽을 열어 여러 경로를 만듭니다. 특정 지름길이나 정답 경로를 미리 심지 않습니다. 통로 폭도 시드에서 정해집니다. 파란 물의 분기와 빨간 염료는 압력 계산으로 정해지므로 두 경로가 같을 수도, 다를 수도 있습니다.

비교의 빨간 선은 현재 측정한 방향별 유량에서 최소 간선 유량이 가장 큰 대표 경로입니다. 전체 유동이나 유일한 추적자 궤적을 뜻하지 않습니다. 두 길이는 모두 **통과한 격자 간선 수**이며 물의 이동 시간이나 유량과 혼용하지 않습니다. 미로와 조건에 따라 경로가 같을 수 있습니다. 노란 BFS 링은 거리별 그래프 확산이며 실제 물이 아닙니다.

## 검증 범위

결정론, 미로의 전체 연결성, BFS 거리, 좁은/넓은 복수 경로, 물 저장·방출 집계, 공급 중단, 낮은 압력의 정체, 염료 도착, 연결 밖으로 이동하지 않음, 공기 압축 및 초기화를 단위 테스트로 확인합니다. 시각적·조작 검증은 실제 브라우저에서 수행합니다. 실험치 대조, CFD 수렴 검증, 모든 브라우저의 60fps 보장은 하지 않습니다.
