ENG
0:00 / 0:00
KOR
0:00 / 0:00
0. Abstract (초록)

본 논문은 양방향 유동맵(bidirectional flow maps)에 기반한 미분 가능 유체 시뮬레이션을 위한 새로운 어드조인트 솔버(adjoint solver)를 제시합니다. 저희의 핵심 관찰은 순방향 유체 솔버와 그에 대응하는 역방향 어드조인트 솔버가 순방향 시뮬레이션과 동일한 유동맵(flow map)을 공유한다는 것입니다. 순방향 과정(forward pass)에서 이 맵은 초기 프레임에서 현재 프레임으로 유체 임펄스 변수를 전달하여 와류 동역학을 시뮬레이션합니다. 역방향 과정(backward pass)에서는 동일한 맵이 현재 프레임에서 초기 프레임으로 어드조인트 변수를 전파하여 그래디언트를 계산합니다. 이 공유된 장거리 맵(shared long-range map) 덕분에 그래디언트 계산의 정확도가 유동맵 구성의 개선으로부터 직접적인 혜택을 받을 수 있습니다.

이러한 통찰을 바탕으로, 저희는 유동맵 상에서 직접 어드조인트 방정식을 푸는 새로운 어드조인트 솔버를 도입하여, 기존 어드조인트 방법에서 요구되었던 중간 수치 단계를 미분하거나 중간 변수를 저장할 필요 없이 비압축성 유동의 장거리의 정확한 미분을 가능하게 합니다. 효율성을 더욱 향상시키기 위해, 저희는 어드조인트 변수를 전개하기 위한 장-단기 시-공간 희소 유동맵 표현(long-short time-sparse flow map representation)을 제안합니다. 저희의 접근 방식은 메모리 사용량이 낮아 $192^3$ 해상도에서 6.53GB의 데이터만 필요로 하면서도 와도 추적에서 높은 정확도를 보존하여, 와류 동역학의 정밀한 식별, 예측 및 제어가 필요한 새로운 미분 가능 시뮬레이션 작업을 가능하게 합니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef idea fill:#E8D2E5; classDef pros fill:#D0F1B9; classDef ref fill:#EBEBEC; subgraph Forward Pass (순방향 시뮬레이션) A[초기 상태] --> B{유동맵을 통해
물리량 전달} --> C[현재 상태] end subgraph Backward Pass (역방향 그래디언트 계산) F[현재 상태의 손실] --> E{동일한 유동맵을 통해
어드조인트 변수 전파} --> D[초기 상태의 그래디언트] end SharedMap[공유된 양방향 유동맵]:::idea B -- 사용 --> SharedMap E -- 사용 --> SharedMap SharedMap --> Advantage1[장거리 정확도 향상]:::pros SharedMap --> Advantage2[낮은 메모리 사용량]:::pros SharedMap --> Advantage3[중간 단계 저장 불필요]:::pros

핵심 콕콕

• 양방향 유동맵(bidirectional flow map) 기반의 새로운 미분 가능 유체 시뮬레이션용 어드조인트 솔버를 제안합니다.
• 핵심 아이디어는 순방향 시뮬레이션과 역방향 그래디언트 계산이 '동일한' 유동맵을 공유한다는 것입니다.
• 이 공유된 맵 덕분에 중간 계산 단계를 미분하거나 저장할 필요가 없어, 장거리 시뮬레이션에서도 정확하고 효율적인 그래디언트 계산이 가능합니다.
• '장-단기 시-공간 희소 유동맵'이라는 기법을 도입하여 계산 효율과 메모리 사용량을 더욱 최적화했습니다.
• 제안된 방법은 낮은 메모리(192³ 해상도에서 6.53GB)로도 와류(vortex)의 움직임을 정확하게 추적할 수 있습니다.

함정 주의

기존 어드조인트 방법과 이 논문의 방법을 혼동하지 마세요.

- 기존 방법: 순방향 시뮬레이션의 '각 수치 계산 단계'를 거꾸로 하나씩 미분합니다. 이는 시뮬레이션이 길어질수록 모든 중간 상태를 저장해야 해서 메모리 부담이 크고 오차가 누적될 수 있습니다.

- 이 논문의 방법: 연속적인(continuous) 어드조인트 방정식을 '유동맵 위에서 직접' 풉니다. 순방향 시뮬레이션의 각 단계를 미분하는 것이 아니라, 시작과 끝을 연결하는 고품질 '지도(유동맵)'를 사용하여 그래디언트를 한 번에 효율적으로 계산합니다.

구현 힌트

이 논문의 성능과 효율을 극대화하려면 '장-단기 시-공간 희소 유동맵(Long-Short Time-Sparse EFM)' 구현이 핵심입니다. 전체 시뮬레이션 구간을 커버하는 '장거리(long-range)' 유동맵을 드문드문(sparse) 업데이트하여 큰 흐름을 잡고, 그 사이의 짧은 구간들은 '단거리(short-range)' 유동맵으로 보정하여 정확도를 높이는 방식입니다. 이 하이브리드 전략이 계산 비용을 O(m²)에서 O(m)으로 줄이는 비결입니다.

쉬운 비유

순방향/역방향 유동맵 공유f>를 쉽게 비유해볼게요.

- 서울에서 부산까지 자동차로 여행(순방향 시뮬레이션)을 간다고 상상해보세요. 이때 아주 정교한 내비게이션 지도(유동맵)를 만들면서 갔습니다.

- 여행이 끝난 후, 부산에서 서울로 돌아오는 길(역방향 그래디언트 계산)을 찾아야 합니다. 이때, 새로운 지도를 만들 필요 없이, 올 때 사용했던 바로 그 '내비게이션 지도'를 거꾸로 따라가면 됩니다.

- 지도가 정교할수록(유동맵의 정확도), 가는 길과 오는 길 모두 정확하게 찾아갈 수 있습니다. 이 논문의 핵심은 가는 길과 오는 길이 같은 고품질 지도를 공유해서 시간과 노력을 아끼는 것과 같습니다.

셀프 테스트

[O/X]

정답 보기

이 논문에서 제안한 어드조인트 솔버는 정확한 그래디언트 계산을 위해 시뮬레이션의 모든 중간 단계 변수들을 메모리에 저장해야 한다.
정답: X
해설: 이 방법의 핵심 장점 중 하나는 공유된 장거리 유동맵을 사용하여 중간 단계를 미분하거나 변수를 저장할 필요 없이 그래디언트를 계산하는 것입니다. 이로 인해 메모리 사용량이 매우 낮습니다.

[빈칸]

정답 보기

순방향 과정과 역방향 과정은 동일한 ___ ___을 공유하여, 그래디언트 계산의 정확도가 시뮬레이션 정확도와 직접적으로 연결된다.
정답: 유동맵 (flow map)
해설: 순방향과 역방향에서 동일한 유동맵을 공유하는 것이 이 논문의 핵심 아이디어이며, 이를 통해 두 과정 간의 일관성과 높은 정확도를 달성합니다.

[서술형]

정답 보기

기존의 미분 가능 유체 시뮬레이션 방법 대비 이 논문이 제안하는 '유동맵 기반 어드조인트 솔버'가 갖는 두 가지 주요 장점은 무엇이며, 그 이유는 무엇인가요?
모범답안: 첫째, 장거리 시뮬레이션에 대한 정확도 향상입니다. 순방향과 역방향이 동일한 고정밀 유동맵을 공유하므로, 시뮬레이션 시간이 길어져도 오차 누적이 적습니다. 둘째, 메모리 효율성입니다. 기존 방법처럼 모든 중간 계산 단계를 저장할 필요 없이 시작과 끝점의 정보만으로 그래디언트를 계산할 수 있어 메모리 요구량이 현저히 낮습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
1 Introduction (서론)

동적 유체 시스템을 정확하게 미분하는 것, 특히 긴 시간 범위에 걸쳐 유체 변수의 도함수를 계산하는 것은 컴퓨터 그래픽스와 계산 물리 분야 모두에서 근본적인 도전 과제로 남아있습니다.

주된 어려움은 유체의 내재적인 유동 특성에서 비롯됩니다: 더 제한된 구성을 가진 고체 시스템과 달리, 유체 시스템은 물리 법칙에 따라 공간과 시간 위에서 자유롭게 진화하며, 이는 고차원적이고 지속적으로 변형되는 상태 공간을 만들어내어 역방향 미분 과정을 상당히 복잡하게 만듭니다. 시뮬레이션이 더 긴 시간(순방향이든 역방향이든)에 걸쳐 진행됨에 따라, 각 타임스텝에서 수치적 오류가 누적되어 그래디언트 계산의 정확도를 더욱 저하시키고, 장기적인 도함수 추정을 점점 더 신뢰할 수 없게 만듭니다.

컴퓨터 그래픽스와 계산 물리 분야 모두에서 나비에-스토크스 방정식에 의해 지배되는 유체 시스템을 미분하기 위해 두 가지 주류 접근법이 개발되었습니다. 한 종류의 방법은 순방향 시뮬레이션에 사용된 이산 수치 기법을 직접 미분합니다. 대표적인 예는 McNamara 등/2004/Fluid control의 선구적인 연구로, 순방향 과정에서 고전적인 이류-투영 기법(Stam/1999/Stable fluids)을 사용하고, 투영을 설명하기 위해 애드조인트 시스템이 해결되는 이류 및 투영 단계를 순차적으로 미분하여 그래디언트를 계산합니다. 이 방법은 그래픽스 커뮤니티 내에서 매우 성공적이었으며, 상당한 양의 후속 연구(Holl과 Thuerey/2024/ΦFlow, Li 등/2024c/NeuralFluid, Takahashi 등/2021/Differentiable smoke 참조)에 영감을 주었습니다. 이 접근법은 순방향 솔버에서 사용된 이산 공식을 직접 대상으로 하므로, 계산된 그래디언트가 실제 시뮬레이션 단계와 완전히 일치함을 보장하며, 이는 제어, 애니메이션 또는 디자인 문제 등에서 최적화 과정을 안내하기 위해 그래디언트 정보를 사용하는 데 중요합니다.

다른 종류의 방법은 연속적인 지배 방정식 수준에서 애드조인트 시스템을 해석적으로 유도한 후, 결과로 나온 애드조인트 편미분방정식(PDE)을 이산화합니다. 이러한 접근법은 역 문제를 해결하기 위해 계산 유체 역학에서 널리 채택되어 왔습니다(Gałecki와 Szumbarski/2022/Adjoint-based optimal control, Stück/2012/Adjoint method 참조). 그러나 이산 애드조인트 해가 이산 순방향 시뮬레이션의 도함수에 정확하게 대응하도록 보장하기 위해, 이러한 방법들은 종종 이류 기법과 공간 연산자에서 고차 이산화에 의존하며, 이는 계산 효율성과 확장성이 중요한 시각 컴퓨팅 시나리오에서 실용성을 제한합니다.

우리는 미분 가능한 비압축성 유동 시뮬레이션을 위한 기존 방법들의 정확도와 효율성을 모두 개선하는 새로운 애드조인트 솔버를 제안합니다. 우리의 접근법은 장거리 양방향 유동 맵 개념에 기반을 두고 있으며, 이는 최근 와류 동역학이 지배하는 광범위한 유체 시스템 및 그 다중물리 커플링을 시뮬레이션하기 위한 효과적인 모델링 프레임워크로 부상했습니다(Chen 등/2024b/Solid-Fluid Interaction, Deng 등/2023b/Neural Flow Maps, Li 등/2024b/Particle-Laden Fluid, Zhou 등/2024/Particle Flow Map 등 예시 참조). 유동 맵 방법의 핵심 아이디어는 초기 시간과 현재 시간 사이에 대응하는 공간적 위치 간에 물리량을 정확하게 수송하는 매핑을 구성하는 것입니다. "양방향"이라는 용어는 시간을 따라 순방향과 역방향으로 양을 수송하는 능력을 의미하며, 순방향 및 역방향 맵은 일관되고 시간적으로 대칭적인 쌍을 형성합니다. 우리 연구의 기초가 되는 핵심 관찰은 원래 순방향 시뮬레이션의 정확도를 높이기 위해 도입된 이 양방향 유동 맵이 역방향 애드조인트 과정을 지원하기 위해 자연스럽게 용도가 변경될 수 있다는 것입니다. 순방향 및 역방향 과정 모두에서 동일한 유동 맵을 공유하면, 유동 맵 기반 공식의 입증된 강점인 확장된 시간 간격에 걸쳐 유체 양과 그 애드조인트의 시간적으로 대칭적인 수송이 가능해집니다. 이러한 정확성을 활용하여, 우리 방법은 개별적인 수치 단계를 미분할 필요성을 제거하여 이산 미분과 관련된 높은 메모리 및 계산 오버헤드를 피하고, 대신 향상된 확장성과 정밀도로 연속적인 애드조인트 편미분방정식의 직접적인 해를 가능하게 합니다.

이 아이디어에 동기를 부여받아, 우리는 비압축성 유동 시스템의 장거리, 정확한 미분을 가능하게 하기 위해 유동 맵 이론에 기반한 새로운 애드조인트 솔버를 개발했습니다. 우리 시스템은 세 가지 핵심 구성 요소로 이루어집니다: (1) 그리드에 정렬된 프레임 시퀀스에 걸쳐 이산화된 양방향 유동 맵에 기반한 순방향 비압축성 유체 솔버; (2) 순방향 과정과 동일한 유동 맵을 사용하여 애드조인트 방정식을 푸는 역방향 애드조인트 솔버; 그리고 (3) 정확도를 희생하지 않으면서 계산 비용을 줄이기 위한 장-단기 시간-희소 유동 맵 표현에 기반한 가속 전략. 순방향 및 역방향 솔버는 동일한 그리드 기반 양방향 유동 맵을 공유할 뿐만 아니라, 각각 반대 시간 방향을 따라 유체 양과 그 애드조인트를 진화시키기 위해 동일한 수치 기법을 적용합니다.

쪽집게 과외

알고리즘

flowchart TD classDef ref fill:#EBEBEC classDef core fill:#FFDBE6 classDef warn fill:#FFD3C2 classDef pros fill:#D0F1B9 classDef idea fill:#E8D2E5 subgraph 기존 접근법 (2가지) A[접근법 1: 이산화된 시뮬레이터 직접 미분]:::ref B[접근법 2: 연속 애드조인트 방정식 유도 후 이산화]:::ref end subgraph 한계점 A_warn(오류 누적으로 장시간 정확도 저하):::warn B_warn(고차 이산화 필요로 비효율적):::warn end subgraph 제안 방법 C[애드조인트 솔버 on 양방향 유동 맵]:::core end subgraph 핵심 아이디어 D[순방향/역방향 과정에서 동일한 유동 맵 공유]:::idea end subgraph 결과 (장점) E[정확도와 효율성 동시 개선]:::pros F[개별 단계 미분 불필요]:::pros G[메모리 및 계산 오버헤드 감소]:::pros end A --> A_warn B --> B_warn A_warn --> C B_warn --> C C --> D D --> E D --> F D --> G

핵심 콕콕

• 동적 유체 시스템을 장시간에 걸쳐 정확하게 미분하는 것은 수치 오류 누적 때문에 매우 어려운 문제입니다.
• 기존 접근법 1: 시뮬레이션 코드를 직접 단계별로 미분합니다. 그래디언트가 시뮬레이션과 일치하지만 장시간 시뮬레이션 시 정확도가 떨어집니다.
• 기존 접근법 2: 연속적인 물리 방정식을 먼저 미분(애드조인트 유도)한 뒤, 그 결과를 이산화합니다. 정확할 수 있지만 비효율적인 고차 기법이 필요해 실용성이 떨어집니다.
• 제안 방법: 순방향 시뮬레이션과 역방향 애드조인트 계산에 '양방향 유동 맵'이라는 동일한 '지도'를 공유합니다. 이를 통해 개별 단계를 미분할 필요 없이 정확하고 효율적으로 그래디언트를 계산합니다.

함정 주의

기존의 두 가지 접근법을 혼동하지 마세요.

- '이산 기법 직접 미분'은 이미 만들어진 시뮬레이션 코드(이산화된 결과물)를 한 줄 한 줄 미분하는 방식입니다. (코딩 → 미분)
- '연속 방정식 기반 애드조인트'는 물리 방정식(연속 상태)을 수학적으로 먼저 미분하여 애드조인트 방정식을 얻고, 그 새로운 방정식을 푸는 코드를 짜는 방식입니다. (수학 → 코딩)

전자는 구현이 비교적 쉽지만 정확도가 문제될 수 있고, 후자는 정확하지만 구현이 복잡하고 비효율적일 수 있습니다. 본 논문은 이 둘의 장점을 취하려는 시도입니다.

쉬운 비유

양방향 유동 맵 공유f>를 쉽게 비유해볼게요.

- 서울에서 부산까지 KTX를 타고 가는 여정(순방향 시뮬레이션)을 아주 정밀한 GPS로 기록했다고 상상해보세요. 이 GPS 기록이 바로 '유동 맵'입니다.
- 이제 부산에서 서울로 정확히 되돌아와야 하는 임무(역방향 애드조인트 계산)가 주어졌습니다.
- 기존 방법은 기억에 의존해 되돌아오거나(오류 누적), 아예 새로운 길을 탐색하는(계산 비용 증가) 것과 같습니다.
- 하지만 우리에겐 완벽한 GPS 기록, 즉 '유동 맵'이 있습니다. 그냥 그 기록을 거꾸로 재생하기만 하면, 왔던 길 그대로 단 하나의 오차도 없이 서울의 출발점으로 정확히 돌아올 수 있습니다. 이것이 순방향과 역방향에서 동일한 유동 맵을 공유하는 것의 핵심 아이디어입니다.

셀프 테스트

[O/X] 유체 시뮬레이션을 장시간에 걸쳐 미분할 때 가장 큰 문제는 각 시간 단계마다 발생하는 수치적 오류가 누적되어 그래디언트의 정확성을 떨어뜨린다는 점이다.

정답 보기

정답: O
해설: 본문 첫 단락에서 언급된 핵심적인 도전 과제입니다. 유체의 자유로운 움직임은 오류 누적을 심화시켜 장기적인 도함수 추정을 어렵게 만듭니다.

[빈칸] 본 논문에서 제안하는 애드조인트 솔버는 순방향 시뮬레이션과 역방향 애드조인트 과정에서 동일한 ___ ___ ___을(를) 공유하여 정확도와 효율성을 높인다.

정답 보기

정답: 양방향 유동 맵 (bidirectional flow map)
해설: 이 공유된 맵을 통해 개별 수치 단계를 미분할 필요 없이, 시간적으로 대칭적인 방식으로 물리량과 애드조인트를 수송할 수 있습니다.

[서술형] 기존의 '이산 기법 직접 미분' 방식이 '실제 시뮬레이션 단계와 완전히 일치하는' 그래디언트를 보장함에도 불구하고 갖는 한계점은 무엇이며, 본 논문의 제안 방식은 이 한계를 어떻게 극복하고자 하는가?

정답 보기

모범답안: '이산 기법 직접 미분' 방식은 시뮬레이션의 각 단계를 따라가므로 그래디언트의 일관성은 보장되지만, 시뮬레이션이 길어질수록 각 단계의 작은 수치적 오류(특히 이류 과정에서의 소산)가 누적되어 최종 그래디언트의 정확도가 크게 저하됩니다. 본 논문은 개별 단계를 미분하는 대신, 시작점과 끝점을 직접 연결하는 '장거리 유동 맵'을 사용하여 이러한 누적 오류 문제를 근본적으로 회피합니다. 순방향과 역방향에서 동일한 고정밀 맵을 사용함으로써, 중간 과정의 오류 축적 없이 정확한 그래디언트 정보를 전달할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
2 Related Work (관련 연구)

미분 가능한 유체 시뮬레이션(Differentiable Fluid Simulation). 컴퓨터 그래픽스에서의 미분 가능한 유체 시뮬레이션은 일반적으로 이산화된 순방향 시뮬레이션을 미분하여 그래디언트를 계산합니다. Treuille et al. [2003] (Ref)McNamara et al. [2004] (Ref)의 선구적인 연구들은 Stam [1999] (Base)의 이산화된 이류-투영 유체 시뮬레이션 방법을 미분했으며, 이는 Holl et al. [2020], Holl and Thuerey [2024] (VS), Li et al. [2024c], Pan and Manocha [2017], Takahashi et al. [2021] 등 일련의 후속 연구에 영감을 주었습니다. 이전 연구들은 또한 평활 입자 동역학(smoothed-particle hydrodynamics, SPH) Li et al. [2023b], 축소 모드 유체(reduced-mode fluids) Chen et al. [2024a], 그리고 격자-볼츠만 방법(lattice-boltzmann method, LBM) Ataei and Salehipour [2024] (VS)을 미분하는 것을 연구해왔습니다. 이러한 기법들은 유체 제어 및 최적화의 발전을 가능하게 했지만, 장기 시뮬레이션에 적용될 때 정확도가 제한되거나 메모리 비용이 높은 문제를 겪을 수 있습니다. 대조적으로, 저희의 연구는 이산화된 유체 시뮬레이터를 미분하는 것이 아니라 나비에-스토크스 방정식의 연속적인 어드조인트 PDE를 직접 이산화하여, 어드조인트 방정식에 대한 더 정확한 수치 해를 가능하게 합니다.

어드조인트 방법(Adjoint Methods). 어드조인트 방법은 PDE 제약 최적화에서 그래디언트를 계산하기 위한 표준적인 수학적 도구입니다. 계산 유체 역학(CFD) 연구에서는 일반적으로 이를 적용하여 어드조인트 나비에-스토크스 방정식을 유도하며Giles et al. [2003] (Ref), Giles and Pierce [2000], Jameson [1988], Stück [2012] (Base), 역시간 전개를 통해 민감도 분석을 가능하게 합니다. 유체를 넘어서, 어드조인트 공식은 광범위한 미분 가능한 물리 프레임워크의 기반을 이루며, 여기서 물리 시스템의 그래디언트는 역설계, 제어 및 최적화에 활용됩니다. 응용 분야는 탄성 재료 Du et al. [2021], Geilinger et al. [2020], Hu et al. [2019b], Qiao et al. [2021a], 직물 시뮬레이션 Li et al. [2022], Qiao et al. [2020], 접촉 및 충돌 Huang et al. [2024a,b], 자기 셸 Chen et al. [2022], 그리고 위상 최적화 Feng et al. [2023] (Base), Liu et al. [2018], Sigmund [2001], Zhu et al. [2017]에 걸쳐 있습니다. 이러한 미분 가능한 물리 시스템은 로봇 설계 Gjoka et al. [2024] (VS), Ma et al. [2021], 표면 최적화 He et al. [2024] (VS), Mehta et al. [2022], Montes Maestre et al. [2023] (Base), 파라미터 식별 Hahn et al. [2019], Li et al. [2023a], Ma et al. [2022], 미세구조 발견 Huang et al. [2024a], Sigmund [2001], 그리고 정책 학습 Huang et al. [2021], Li et al. [2018], Qiao et al. [2021b], Zhou et al. [2023] (Base)을 포함한 다양한 응용을 가능하게 하며, 일반적으로 Adam [Kingma 2014]이나 LBFGS [Nocedal and Wright 1999]와 같은 그래디언트 기반 최적화기를 사용합니다.

플로우 맵 방법(Flow Map Methods). 플로우 맵 방법은 Wiggert and Wylie [1976]특성 매핑 방법(method of characteristic mapping, MCM)에 그 기원을 두고 있으며, 이후 컴퓨터 그래픽스에서 Tessendorf and Pelfrey [2011]Qu et al. [2019]에 의해 발전되었습니다. 양방향 맵 표현에 대한 최근의 발전에는 신경망 기반 저장소 압축 Deng et al. [2023b], 버퍼 없는 오일러리안 표현 Li et al. [2025b], 그리고 입자 플로우 맵 방법(particle flow map method) Chen et al. [2025] (Base), Li et al. [2024b, 2025a], Wang et al. [2025] (Base), Zhou et al. [2024] (VS)이 포함되며, 이는 정확도를 더욱 향상시켰습니다. 게이지 기반 유체 공식 Buttke [1992], Cortez [1996]은 다양한 응용 Feng et al. [2022], Li et al. [2024a], Nabizadeh et al. [2022]과 함께 탐구되었습니다. 정확도 이점에도 불구하고, 플로우 맵 방법은 높은 계산 복잡도로 어려움을 겪으며, 전통적인 오일러리안 플로우 맵(Eulerian flow map, EFM) 방법 Deng et al. [2023b]$O(n^2)$의 플로우 맵 전개 비용을 필요로 했으나, 최근 시간-희소 접근법 Sun et al. [2025] (Base)에 의해 해결되었습니다.

쪽집게 과외

핵심 콕콕

• 기존 미분 가능 유체 시뮬레이션은 순방향 시뮬레이션의 이산화된 수치 기법을 직접 미분하는 방식을 사용하며, 장기 시뮬레이션에서 정확도 저하와 메모리 비용 증가라는 한계가 있습니다.
• 어드조인트 방법은 PDE 제약 최적화 문제에서 그래디언트를 계산하는 표준적인 수학적 도구로, 연속적인 지배 방정식을 먼저 미분한 후 이산화하는 접근법을 사용합니다.
• 플로우 맵 방법은 높은 시뮬레이션 정확도를 제공하지만, 전통적인 오일러리안 플로우 맵(EFM)은 O(n^2)의 높은 계산 비용이라는 단점이 있습니다.

함정 주의

'이산화 후 미분' 방식과 '미분 후 이산화' 방식을 혼동하지 마세요.
- 기존 컴퓨터 그래픽스 접근법('이산화 후 미분'): 순방향 시뮬레이터를 먼저 이산화(discretize)한 후, 각 단계를 미분(differentiate)합니다. 이는 구현된 시뮬레이터와 그래디언트가 완벽히 일치하지만, 장기 시뮬레이션에서 오차가 누적되고 메모리 비용이 큽니다.
- 본 논문이 따르는 접근법('미분 후 이산화'): 연속적인(continuous) 나비에-스토크스 방정식 자체를 먼저 미분하여 어드조인트 방정식을 유도하고, 그 후에 이 어드조인트 방정식을 이산화합니다. 이는 더 정확한 그래디언트 계산을 가능하게 합니다.

쉬운 비유

두 가지 미분 방식 (이산화 후 미분 vs. 미분 후 이산화)f>을 쉽게 비유해볼게요.
산의 경사(그래디언트)를 구한다고 상상해봅시다.
- '이산화 후 미분' (기존 방식): 산을 계단처럼 여러 개의 평평한 조각으로 근사(이산화)한 뒤, 각 계단의 높이 차이를 이용해 경사를 계산하는 것과 같아요. 실제 등산로(시뮬레이션)를 따라가며 계산하므로 길을 잃을 염려는 없지만, 계단이 많아질수록(장기 시뮬레이션) 계산이 복잡해지고 원래 산의 부드러운 경사와는 조금씩 달라질 수 있어요.
- '미분 후 이산화' (본 논문 방식): 먼저 산 전체의 모양을 나타내는 부드러운 수학 공식(연속 방정식)을 찾고, 이 공식의 '경사 공식'(어드조인트 방정식)을 구해요. 그 다음에 이 경사 공식을 이용해 원하는 지점의 경사를 계산하는 것과 같아요. 더 정확한 실제 경사를 알 수 있습니다.

셀프 테스트

[O/X] 컴퓨터 그래픽스 분야의 전통적인 미분 가능 유체 시뮬레이션은 연속적인 나비에-스토크스 방정식을 직접 미분하여 어드조인트 방정식을 유도하는 방식을 주로 사용한다.

정답 보기

정답: X
해설: 전통적인 방식은 순방향 시뮬레이션을 먼저 이산화한 후, 그 이산화된 각 단계를 미분하는 방식을 사용합니다. 연속 방정식을 먼저 미분하는 것은 본 논문과 같은 접근법입니다.

[빈칸] 플로우 맵 방법은 높은 정확도를 가지지만, 전통적인 오일러리안 플로우 맵(EFM) 방식은 ___의 계산 복잡도를 가져 비용이 높다.

정답 보기

정답: O(n^2)
해설: 전통적인 EFM은 매 타임스텝마다 이전 재초기화 시점까지 거슬러 올라가 플로우 맵을 계산해야 하므로, 재초기화 간격이 m일 때 O(m^2)의 계산 비용이 발생합니다.

[서술형] 기존 미분 가능 유체 시뮬레이션 방법들이 '장기 시뮬레이션(long-horizon simulations)'에서 겪는 두 가지 주요 한계점은 무엇이며, 본 논문은 어떤 접근법으로 이 문제를 해결하고자 하는가?

정답 보기

모범답안: 두 가지 주요 한계점은 (1) 제한된 정확도와 (2) 높은 메모리 비용입니다. 본 논문은 이산화된 시뮬레이터를 미분하는 대신, 연속적인 어드조인트 편미분 방정식(PDE)을 직접 이산화하여 더 정확한 수치 해를 구하는 방식으로 이 문제를 해결합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.1 Differentiable Fluid (미분 가능한 유체)

유체 방정식. 우리는 유체 시뮬레이션을 위해 비압축성 나비에-스토크스 방정식과 수동장의 이류에 초점을 맞춥니다:

Eq. 1: 나비에-스토크스 방정식$$\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u} \cdot \nabla) \mathbf{u} = -\frac{1}{\rho}\nabla p + \nu \Delta \mathbf{u} + \mathbf{f}, \quad \nabla \cdot \mathbf{u} = 0$$이 방정식은 유체의 운동량 보존과 비압축성 조건을 나타냅니다. 좌변은 속도 $\mathbf{u}$의 물질 도함수로, 유체 입자의 가속도를 의미합니다. 우변은 압력($p$), 점성($\nu$), 외력($\mathbf{f}$)에 의한 힘을 나타냅니다. $\nabla \cdot \mathbf{u} = 0$은 유체의 부피가 변하지 않음을 의미하는 비압축성 조건입니다. Eq. 2: 수동장 이류 방정식$$\frac{\partial \xi}{\partial t} + (\mathbf{u} \cdot \nabla) \xi = 0$$이 방정식은 연기 밀도나 색상과 같은 수동적 스칼라 양($\xi$)이 유체의 속도장($\mathbf{u}$)에 의해 어떻게 운반되는지를 설명합니다. 이 양은 유체 흐름에 영향을 주지 않고 오직 따라 움직이기만 합니다.

여기서 $p$, $\mathbf{f}$, $\nu = \mu/\rho$는 각각 압력장, 외력, 동점성 계수를 나타냅니다.

스칼라장 $\xi$는 연기 밀도나 색상과 같이 유체에 의해 이류되는 수동적 물리량 필드를 나타냅니다.

임의의 시작 시간 $s' \ge s$에서의 속도장 $\mathbf{u}_{s'}$와 수동장 $\xi_{s'}$가 주어지면, 방정식 1은 잘 정의된 경계 조건 하에서 임의의 $t \ge s'$에 대한 정확한 변화를 결정하며, 이는 $(\mathbf{u}_t, \xi_t) = \mathbf{F}_{s' \to t}(\mathbf{u}_{s'}, \xi_{s'})$로 표기됩니다.

유체 시뮬레이션 방법은 이 과정을 수치적으로 $(\hat{\mathbf{u}}_t, \hat{\xi}_t) = \hat{\mathbf{F}}_{s' \to t}(\mathbf{u}_{s'}, \xi_{s'})$와 같이 근사하며, 여기서 $\hat{\cdot}$는 수치적 근사를 나타냅니다.

Adjoint 방정식. 유체 관련 최적화 문제에서, 우리는 목적 함수를 최소화하는 것을 목표로 합니다.

Eq. 3: 목적 함수$$L(\mathbf{u}, \xi) = \int_s^r \int_{\mathbf{U}_t} J(\mathbf{u}, \xi, t) d\mathbf{x} dt$$이 수식은 최적화하려는 목표를 정량화합니다. $J$는 특정 시간과 공간에서 유체 상태($\mathbf{u}, \xi$)가 목표와 얼마나 다른지를 나타내는 비용 함수이며, 이를 전체 시뮬레이션 시간($s$에서 $r$)과 공간($\mathbf{U}_t$)에 대해 적분하여 총 오차 $L$을 계산합니다.

여기서 목적 함수의 피적분 함수 $J$는 속도장 $\mathbf{u}$와 수동 스칼라 $\xi$의 시간에 따른 함수이며, 예를 들어 최종 속도 손실 $J(\mathbf{u}, \xi, t) = \delta(t-r)\|\mathbf{u} - \mathbf{u}_{target}\|^2_2$와 같습니다. 여기서 $\mathbf{u}_{target}$과 $\delta$는 각각 목표 속도장과 디랙 델타 함수를 나타냅니다.

$L$을 최소화하기 위해 경사 하강법과 같은 일반적인 최적화 방법을 적용할 때, 기울기 정보인 $\mathbf{u}^_t = \frac{\partial L}{\partial \mathbf{u}_t}$와 $\xi^_t = \frac{\partial L}{\partial \xi_t}$를 계산해야 하며, 이를 각각 $\mathbf{u}_t$와 $\xi_t$의 adjoints(켤레 변수)라고 합니다.

Gałecki and Szumbarski/2022/Adjoint-based optimal controlStück/2012/Adjoint-based optimal control는 $\mathbf{u}^_t$와 $\xi^_t$가 다음 방정식을 따른다는 것을 보여줍니다:

Eq. 4: Adjoint 나비에-스토크스 방정식$$\frac{\partial \mathbf{u}^}{\partial t} + (\mathbf{u} \cdot \nabla) \mathbf{u}^ = \nabla \mathbf{u}^\top \mathbf{u}^ + \xi^ \nabla \xi - \frac{1}{\rho} \nabla p^ + \nu \Delta \mathbf{u}^ - \frac{\partial J}{\partial \mathbf{u}}, \quad \nabla \cdot \mathbf{u}^ = 0, \quad \frac{\partial \xi^}{\partial t} + (\mathbf{u} \cdot \nabla) \xi^ = -\frac{\partial J}{\partial \xi}$$이 방정식은 adjoint 변수($\mathbf{u}^, \xi^$)의 시간적 변화를 설명하며, 시간을 역방향으로 진행하여 풀어야 합니다. 이는 목적 함수 $J$의 기울기를 초기 조건까지 전파하는 역할을 합니다. 원래의 나비에-스토크스 방정식과 유사한 구조를 가지지만, 추가적인 소스 항($\nabla \mathbf{u}^\top \mathbf{u}^$, $\xi^* \nabla \xi$, $\partial J / \partial \mathbf{u}$)들이 포함되어 있습니다.

여기서 $p^*$는 adjoint 압력입니다.

여기서는 외력 $\mathbf{f}$가 $\mathbf{u}$와 $\xi$에 독립적이라고 가정하며, 더 일반적인 경우는 adjoint 방법을 사용하여 유도할 수 있습니다.

시간 $r' \le r$에서의 adjoint 속도장 $\mathbf{u}^_{r'}$와 수동장 $\xi^_{r'}$가 주어지면, 방정식 4는 경계 조건 하에서 임의의 $t \le r'$에 대한 정확한 해를 결정하며, 이는 $(\mathbf{u}^_t, \xi^_t) = \mathbf{B}_{r' \to t}(\mathbf{u}^_{r'}, \xi^_{r'})$로 표기됩니다.

미분 가능한 유체 시뮬레이션은 이 과정을 수치적으로 $(\hat{\mathbf{u}}^_t, \hat{\xi}^_t) = \hat{\mathbf{B}}_{r' \to t}(\mathbf{u}^_{r'}, \xi^_{r'})$와 같이 근사하는 것을 목표로 합니다.

3.2 Method Overview (방법 개요)

우리는 플로우 맵 방법을 사용하여 유체 관련 최적화 문제를 해결하며, 특정 제어 시나리오 하에서 유체 동역학(방정식 1)의 제약을 받으며 결과 유체 상태 $\mathbf{u}^\theta_t(\mathbf{x})$와 $\xi^\theta(\cdot)$가 목적 함수 $L(\mathbf{u}^\theta, \xi^\theta)$를 최소화하도록 파라미터 $\theta$를 최적화하는 것을 목표로 합니다.

이 과정은 순방향 시뮬레이션 $\hat{\mathbf{F}}_{s \to r}$을 반복적으로 수행하고, 함수 $L(\mathbf{u}^\theta, \xi^\theta)$를 평가하며, 역방향 adjoint 과정 $\hat{\mathbf{B}}_{r \to s}$를 계산하여 adjoints $\mathbf{u}^{\theta}_t$와 $\xi^{\theta}_t$를 얻고, 이 adjoints를 사용하여 제어 파라미터 $\theta$를 업데이트합니다.

$\hat{\mathbf{B}}_{r \to s}$에 대한 기법을 얻기 위해, 이산화된 순방향 과정 $\hat{\mathbf{F}}_{s \to t}$를 미분하는 이전의 미분 가능한 유체 솔버들과 달리, 우리의 접근 방식은 플로우 맵을 통해 연속적인 역방향 과정 $\mathbf{B}_{r \to t}$를 직접 계산하여, 원칙에 입각한 adjoint 공식을 도출하고 상태와 adjoints의 일관된 진화를 위해 플로우 맵을 사용하는 대칭적인 순방향-역방향 프레임워크를 구축합니다.

이 계산에 대한 개략적인 비교와 개요는 Fig. 4에 나와 있습니다.

이어서 우리는 플로우 맵 방법(3.3절)을 소개하고, 순방향(4.1절) 및 adjoint 계산(4.2절)에서의 사용법을 설명하며, 새로운 가속 전략(4.3절)을 제시하고, 마지막으로 완전한 수치 기법(5절)을 구성하여 유체 최적화 문제(6절)를 해결하는 데 사용합니다.

3.3 Flow Map (플로우 맵)

유체 시뮬레이션에서, 플로우 맵 방법(Deng et al./2023b/Fluid Simulation on Neural Flow Maps; Zhou et al./2024/Particle-Laden Fluid on Flow Maps)은 초기 도메인 $\mathbf{U}_s$와 현재 도메인 $\mathbf{U}_t$ ($r > t > s$, 여기서 $s$와 $r$은 각각 초기 시간과 최종 시간) 사이의 매핑을 구성하여 물리량의 정확한 이류를 가능하게 합니다.

속도장 $\mathbf{u}(\mathbf{x}, t)$, $\mathbf{x} \in \mathbf{U}_t$를 가지고 움직이는 유체를 고려해 봅시다.

임의의 시간 $t_1 < t_2$에 대해, 순방향 플로우 맵 $\Phi_{t_1 \to t_2} : \mathbf{U}_{t_1} \to \mathbf{U}_{t_2}$와 역방향 플로우 맵 $\Psi_{t_2 \to t_1} : \mathbf{U}_{t_2} \to \mathbf{U}_{t_1}$은 $\frac{d\mathbf{x}_q(t)}{dt} = \mathbf{u}(\mathbf{x}_q(t), t)$를 따라 움직이는 임의의 유체 입자 $q$에 대해 $\Phi_{t_1 \to t_2}(\mathbf{x}_q(t_1)) = \mathbf{x}_q(t_2)$와 $\Psi_{t_2 \to t_1}(\mathbf{x}_q(t_2)) = \mathbf{x}_q(t_1)$을 만족하는 함수로 정의됩니다. 여기서 $\mathbf{x}_q(t)$는 시간 $t$에서의 입자 $q$의 위치를 나타냅니다.

플로우 맵의 야코비 행렬은 각각 $\mathbf{F}_{t_1 \to t_2}(\mathbf{x}) = \frac{\partial \Phi_{t_1 \to t_2}(\mathbf{x})}{\partial \mathbf{x}}$, $\mathbf{x} \in \mathbf{U}_{t_1}$와 $\mathbf{T}_{t_2 \to t_1}(\mathbf{x}) = \frac{\partial \Psi_{t_2 \to t_1}(\mathbf{x})}{\partial \mathbf{x}}$, $\mathbf{x} \in \mathbf{U}_{t_2}$로 표기됩니다.

임의로 선택된 시작 시간 $s' \ge s$로부터, 플로우 맵과 그 야코비안은 다음과 같은 진화 방정식을 따릅니다:

Eq. 5: 순방향 플로우 맵 진화$$\begin{cases} \frac{\partial \Phi_{s' \to t}(\mathbf{x})}{\partial t} = \mathbf{u}(\Phi_{s' \to t}(\mathbf{x}), t), & \Phi_{s' \to s'}(\mathbf{x}) = \mathbf{x}, \\ \frac{\partial \mathbf{F}_{s' \to t}(\mathbf{x})}{\partial t} = \nabla \mathbf{u}(\Phi_{s' \to t}(\mathbf{x}), t) \mathbf{F}_{s' \to t}(\mathbf{x}), & \mathbf{F}_{s' \to s'}(\mathbf{x}) = \mathbf{I}, \end{cases}$$이 방정식들은 초기 위치 $\mathbf{x}$에서 시작한 유체 입자가 시간이 지남에 따라 어디로 이동하는지($\Phi$)와, 그 주변의 미소 변위가 어떻게 변형되는지($\mathbf{F}$)를 설명합니다. 이는 시간에 대한 상미분 방정식으로, 고차 적분 기법을 통해 정확하게 풀 수 있습니다. Eq. 6: 역방향 플로우 맵 진화 (물질 도함수 형태)$$\begin{cases} \frac{D \Psi_{t \to s'}(\mathbf{x})}{Dt} = 0, & \Psi_{s' \to s'}(\mathbf{x}) = \mathbf{x}, \\ \frac{D \mathbf{T}_{t \to s'}(\mathbf{x})}{Dt} = -\mathbf{T}_{t \to s'}(\mathbf{x}) \nabla \mathbf{u}(\mathbf{x}, t), & \mathbf{T}_{s' \to s'}(\mathbf{x}) = \mathbf{I}. \end{cases}$$이 방정식들은 현재 위치 $\mathbf{x}$에 있는 유체 입자가 과거 어느 위치에서 왔는지($\Psi$)와 그 주변의 변형($\mathbf{T}$)을 설명합니다. 물질 도함수($D/Dt$) 형태로 표현되어 있어, 세미-라그랑지안 방식으로 풀게 되지만, 이는 수치적 소산과 오차 누적을 유발할 수 있습니다.

플로우 맵 방법에서, 이류의 정확한 계산은 플로우 맵의 정확성에 달려있습니다.

순방향 플로우 맵 $\Phi_{s' \to t}$와 그 야코비안 $\mathbf{F}_{s' \to t}$는 방정식 5를 계산하기 위해 4차 룽게-쿠타 방법(RK4)과 같은 고차 기법을 사용하여 격자 상에서 정확하게 적분될 수 있지만, 방정식 6의 이류 항 $\frac{D}{Dt}$에 대한 세미-라그랑지안 처리소산을 유발하고 오차를 누적시켜, $\Psi$와 $\mathbf{T}$의 정밀한 계산을 어렵게 만듭니다.

이 문제를 해결하기 위해, Deng et al./2023b/Fluid Simulation on Neural Flow Maps는 임의의 주어진 시간 $r'$에서 역방향 플로우 맵 $\Psi_{r' \to s'}$와 그 야코비안 $\mathbf{T}_{r' \to s'}$가, $\Psi_{r' \to t}$와 $\mathbf{T}_{r' \to t}$를 $r'$에서 $s'$로 시간을 거슬러($\Delta t < 0$) 진화시킨 결과로 해석될 수 있음을 관찰했습니다. 이는 시작 시간이 $r'$인 역시간 유체 운동의 동역학을 따르며 이류 항이 없습니다 (Fig. 6 참조):

Eq. 7: 역방향 플로우 맵 진화 (ODE 형태)$$\begin{cases} \frac{\partial \Psi_{r' \to t}(\mathbf{x})}{\partial t} = \mathbf{u}(\Psi_{r' \to t}(\mathbf{x}), t), & \Psi_{r' \to r'}(\mathbf{x}) = \mathbf{x}, \\ \frac{\partial \mathbf{T}_{r' \to t}(\mathbf{x})}{\partial t} = \nabla \mathbf{u}(\Psi_{r' \to t}(\mathbf{x}), t) \mathbf{T}_{r' \to t}(\mathbf{x}), & \mathbf{T}_{r' \to r'}(\mathbf{x}) = \mathbf{I}. \end{cases}$$이 방정식은 Eq. 6을 상미분 방정식(ODE) 형태로 변환한 것입니다. 이류 항이 없어 고차 적분 기법을 적용하여 역방향 플로우 맵을 훨씬 정확하게 계산할 수 있습니다. 이것이 EFM의 핵심 아이디어입니다.

방정식 7은 이류 항을 포함하지 않으므로, 고차 적분을 통해 역방향 플로우 맵 $\Psi$와 그 야코비안 $\mathbf{T}$를 정확하게 계산할 수 있습니다.

이 접근법은 오일러리안 플로우 맵(EFM) 방법으로 알려져 있으며, 방정식 5와 방정식 7로부터 정확하게 계산된 플로우 맵을 기반으로 와류 구조를 보존하는 데 있어 최첨단 성능을 달성합니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef sub fill:#CCEFFF; classDef idea fill:#E8D2E5; classDef pros fill:#D0F1B9; classDef warn fill:#FFD3C2; classDef ref fill:#EBEBEC; classDef def fill:#FEEEB5; subgraph 최적화 반복 루프 A[파라미터 θ] --> B(순방향 시뮬레이션\nF_s→r):::sub; B --> C{유체 상태 u, ξ}; C --> D[목적 함수 L 평가]; D --> E(역방향 Adjoint 계산\nB_r→s):::core; E --> F{Adjoint 변수\nu*, ξ*}; F --> G[θ 업데이트]; G --> A; end

핵심 콕콕

• 유체 시뮬레이션은 비압축성 나비에-스토크스 방정식을 기반으로 합니다.
• 최적화를 위해, 목적 함수(Loss)를 유체 상태에 대해 미분한 값인 'Adjoint' 변수를 계산해야 합니다.
• Adjoint 변수의 변화는 Adjoint 나비에-스토크스 방정식으로 기술되며, 이는 시간을 역방향으로 풀어야 합니다.
• 이 논문의 핵심 아이디어는 순방향(유체 상태)과 역방향(Adjoint) 계산 모두에 동일한 플로우 맵을 사용하여 대칭적이고 정확한 프레임워크를 구축하는 것입니다.

함정 주의

순방향 시뮬레이션과 역방향 Adjoint 계산의 시간 방향을 혼동하지 마세요.

- 순방향 시뮬레이션: 시간 s (시작)에서 r (끝)로 진행하며 유체의 미래 상태를 계산합니다.
- 역방향 Adjoint 계산: 시간 r (끝)에서 s (시작)로 거슬러 올라가며, 최종 오차에 대한 각 시점의 민감도(기울기)를 계산합니다.

쉬운 비유

Adjoint 방법f>을 쉽게 비유해볼게요.
- 비유: '범인 찾기' 수사 과정과 같아요.
- 순방향 시뮬레이션 (Forward Pass): 사건이 시간 순서대로 발생하는 것과 같습니다. (예: 아침에 A가 B를 만났고, 점심에 B가 C와 다퉜고, 저녁에 C가 사라졌다.)
- Adjoint 계산 (Backward Pass): 사건의 결과를 보고 원인을 역추적하는 것과 같습니다. 형사가 'C가 사라졌다'는 결과(오차)에서 시작해서, 시간을 거슬러 올라가며 '누가, 언제, 어떤 행동을 한 것이 이 결과에 가장 큰 영향을 미쳤는가?'(기울기)를 찾는 과정이죠. 여기서 Adjoint 변수는 각 시간 단계에서의 '책임의 정도'나 '영향력'이라고 볼 수 있습니다.

셀프 테스트

[O/X]

정답 보기

Adjoint 방정식은 순방향 시뮬레이션과 동일하게 시간을 앞으로 진행하며 계산된다.
정답: X
해설: Adjoint 방정식은 최종 시간(r)에서 시작하여 초기 시간(s)으로 시간을 거슬러 올라가며(역방향으로) 계산됩니다.

[빈칸]

정답 보기

유체 최적화 문제에서 목적 함수 L을 유체 속도 u_t에 대해 편미분한 값 ∂L/∂u_t를 (___) 변수라고 부른다.
정답: Adjoint
해설: Adjoint 변수는 목적 함수를 특정 상태 변수에 대해 편미분한 값으로, 해당 변수가 목적 함수에 미치는 민감도 또는 기울기를 나타냅니다.

[서술형]

정답 보기

본 논문에서 제안하는 Adjoint 계산 방식이 기존의 '이산화된 순방향 과정을 미분하는' 방식과 근본적으로 다른 점은 무엇이며, 이로 인해 어떤 장점을 기대할 수 있는지 설명하시오.
모범답안: 기존 방식은 이산화된 시뮬레이션의 각 단계를 순차적으로 미분하는 반면, 본 논문의 방식은 연속적인 Adjoint 방정식을 직접 이산화하여 풉니다. 특히 이 과정에 플로우 맵을 사용하여, 중간 수치 계산 단계를 미분할 필요가 없어집니다. 이로 인해 플로우 맵의 높은 정확성을 그래디언트 계산에 직접 활용할 수 있어, 특히 긴 시간의 시뮬레이션에서 더 높은 정확도와 효율성을 기대할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.1 Differentiable Fluid (미분 가능한 유체)

유체 방정식. 우리는 유체 시뮬레이션을 위해 비압축성 나비에-스토크스 방정식수동장(passive field)의 이류(advection)에 초점을 맞춥니다:

Eq. 1: 나비에-스토크스 방정식$$\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u} \cdot \nabla)\mathbf{u} = -\frac{1}{\rho}\nabla p + \nu\Delta\mathbf{u} + \mathbf{f}, \\ \nabla \cdot \mathbf{u} = 0,$$이 방정식은 유체의 운동을 설명하는 핵심 원리인 운동량 보존 법칙질량 보존 법칙(비압축성 조건)을 나타냅니다. 첫 번째 식은 속도 $\mathbf{u}$의 시간 변화율(좌변)이 압력($p$), 점성($\nu$), 외력($\mathbf{f}$)에 의해 어떻게 결정되는지를 보여줍니다. 두 번째 식 $\nabla \cdot \mathbf{u} = 0$은 유체의 부피가 변하지 않는다는 비압축성 조건입니다. Eq. 2: 수동장 이류 방정식$$\frac{\partial \xi}{\partial t} + (\mathbf{u} \cdot \nabla)\xi = 0,$$이 방정식은 연기 농도나 색상과 같은 수동적 물리량 $\xi$가 유체의 속도장 $\mathbf{u}$를 따라 어떻게 운반되는지를 설명합니다. 이 물리량은 유체의 흐름에 영향을 주지 않고 오직 흐름에 의해 이동하기만 합니다.

여기서 $p$, $\mathbf{f}$, $\nu = \mu/\rho$는 각각 압력장, 외력, 동점성 계수를 나타냅니다. 스칼라장 $\xi$는 연기 밀도나 색상과 같이 유체에 의해 이류되는 수동적 물리량 필드를 나타냅니다. 임의의 시작 시간 $s' \ge s$에서의 속도장 $\mathbf{u}_{s'}$와 수동장 $\xi_{s'}$가 주어지면, 방정식 1은 잘 정의된 경계 조건 하에서 임의의 시간 $t \ge s'$에 대한 그것들의 정확한 변화를 결정하며, 이는 $(\mathbf{u}_t, \xi_t) = \mathbf{F}_{s' \to t}(\mathbf{u}_{s'}, \xi_{s'})$로 표기됩니다. 유체 시뮬레이션 방법은 이 과정을 수치적으로 $(\hat{\mathbf{u}}_t, \hat{\xi}_t) = \hat{\mathbf{F}}_{s' \to t}(\mathbf{u}_{s'}, \xi_{s'})$와 같이 근사하며, 여기서 $\hat{\cdot}$는 수치적 근사를 나타냅니다.

어드조인트 방정식. 유체 관련 최적화 문제에서, 우리는 목적 함수를 최소화하는 것을 목표로 합니다.

Eq. 3: 목적 함수$$L(\mathbf{u}, \xi) = \int_s^r \int_{\mathbf{U}_t} J(\mathbf{u}, \xi, t) d\mathbf{x} dt,$$이 수식은 최적화의 목표를 정의합니다. 전체 시뮬레이션 시간($s$부터 $r$까지)과 공간($\mathbf{U}_t$)에 대해, 우리가 최소화하고자 하는 비용(예: 목표 형태와의 차이)을 나타내는 함수 $J$를 적분하여 총비용 $L$을 계산합니다.

여기서 목적 함수 피적분 함수 $J$는 속도장 $\mathbf{u}$와 수동 스칼라 $\xi$에 대한 시간 의존적 함수이며, 예를 들어 최종 속도 손실 $J(\mathbf{u}, \xi, t) = \delta(t-r)\|\mathbf{u} - \mathbf{u}_{\text{target}}\|_2^2$가 있습니다. 여기서 $\mathbf{u}_{\text{target}}$과 $\delta$는 각각 목표 속도장과 디랙 델타 함수를 나타냅니다. $L$을 최소화하기 위해 경사 하강법과 같은 일반적인 최적화 방법을 적용할 때, 그래디언트 정보인 $\mathbf{u}^_t = \frac{\partial L}{\partial \mathbf{u}_t}$와 $\xi^_t = \frac{\partial L}{\partial \xi_t}$를 계산해야 하며, 이들은 각각 $\mathbf{u}_t$와 $\xi_t$의 어드조인트(adjoints)라고 불립니다. Gałecki and Szumbarski/2022/Adjoint-based optimal controlStück/2012/Adjoint-based optimal control에 따르면 $\mathbf{u}^_t$와 $\xi^_t$는 다음 방정식을 따릅니다:

Eq. 4: 어드조인트 방정식$$\frac{\partial \mathbf{u}^}{\partial t} + (\mathbf{u} \cdot \nabla)\mathbf{u}^ = \nabla\mathbf{u}^\top\mathbf{u}^ + \xi^\nabla\xi - \frac{1}{\rho}\nabla p^ + \nu\Delta\mathbf{u}^ - \frac{\partial J}{\partial \mathbf{u}}, \\ \nabla \cdot \mathbf{u}^ = 0, \\ \frac{\partial \xi^}{\partial t} + (\mathbf{u} \cdot \nabla)\xi^ = -\frac{\partial J}{\partial \xi},$$이 방정식들은 어드조인트 나비에-스토크스 방정식입니다. 목적 함수 $L$의 그래디언트(즉, 어드조인트 변수 $\mathbf{u}^$, $\xi^*$)가 시간을 거슬러 어떻게 전파되는지를 설명합니다. 이 방정식들은 순방향 나비에-스토크스 방정식과 유사한 구조를 가지지만, 목적 함수 $J$의 미분 항이 소스 항으로 추가되어 그래디언트 정보를 역전파하는 역할을 합니다.

여기서 $p^$는 어드조인트 압력입니다. 여기서 우리는 외력 $\mathbf{f}$가 $\mathbf{u}$와 $\xi$에 독립적이라고 가정하며, 더 일반적인 경우는 어드조인트 방법을 사용하여 유도할 수 있습니다. 시간 $r' \le r$에서의 어드조인트 속도장 $\mathbf{u}^_{r'}$와 어드조인트 수동장 $\xi^_{r'}$가 주어지면, 방정식 4는 경계 조건 하에서 임의의 시간 $t \le r'$에 대한 그것들의 정확한 해를 결정하며, 이는 $(\mathbf{u}^_t, \xi^_t) = \mathbf{B}_{r' \to t}(\mathbf{u}^_{r'}, \xi^_{r'})$로 표기됩니다. 미분 가능한 유체 시뮬레이션은 이 과정을 수치적으로 $(\hat{\mathbf{u}}^_t, \hat{\xi}^_t) = \hat{\mathbf{B}}_{r' \to t}(\mathbf{u}^_{r'}, \xi^*_{r'})$와 같이 근사하는 것을 목표로 합니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef sub fill:#CCEFFF; classDef idea fill:#E8D2E5; classDef def fill:#FEEEB5; subgraph Optimization Loop A[Forward Simulation (Eq. 1-2)]:::sub --> B[Evaluate Objective L(u, ξ)]:::def B --> C[Backward Pass (Eq. 4)]:::core C --> D[Compute Gradients ∂L/∂θ]:::idea D --> E[Update Parameters θ]:::idea E --> A end

핵심 콕콕

• 순방향 유체 시뮬레이션은 비압축성 나비에-스토크스 방정식(Eq. 1)과 수동장 이류 방정식(Eq. 2)으로 모델링됩니다.
• 유체 제어 및 추론과 같은 최적화 문제는 특정 목표를 달성하기 위해 목적 함수 L(Eq. 3)을 최소화하는 것을 목표로 합니다.
• 목적 함수의 그래디언트를 효율적으로 계산하기 위해, 시간을 거슬러 푸는 어드조인트 방정식(Eq. 4)을 사용합니다.
• 어드조인트 변수(u*, ξ*)는 물리적 양이 아니라, 최종 목표에 대한 각 시간 단계의 유체 상태의 민감도(영향력)를 나타내는 수학적 양입니다.

함정 주의

순방향 속도(u)와 어드조인트 속도(u*)를 혼동하지 마세요.

- 순방향 속도(u)는 유체의 실제 물리적 움직임을 나타내며, 시간의 흐름에 따라 순방향으로 계산됩니다.
- 어드조인트 속도(u*)는 물리적 속도가 아니며, 목적 함수(최종 결과)가 초기 상태의 변화에 얼마나 민감한지를 나타내는 그래디언트 정보입니다. 이 값은 시간의 역방향으로 계산됩니다.

쉬운 비유

어드조인트 방법f>을 쉽게 비유해볼게요.

- 케이크 굽기에 비유할 수 있습니다.
- 순방향 시뮬레이션 (Forward Pass): 레시피(초기 조건)에 따라 밀가루, 설탕, 계란을 섞고 오븐에 구워(시간 진행) 케이크를 완성하는 과정입니다.
- 목적 함수 평가 (Evaluate Objective): 완성된 케이크를 맛보니 너무 달았습니다. (목표 맛과의 차이 = Loss)
- 역방향 어드조인트 계산 (Backward Pass): '왜 이렇게 달지?' 원인을 찾기 위해 과정을 거꾸로 되짚어보는 것입니다. '마지막에 넣은 설탕 시럽이 단맛에 얼마나 영향을 줬을까?', '처음 반죽에 넣은 설탕은 최종 단맛에 얼마나 기여했을까?'처럼 각 단계의 각 재료가 최종 결과에 미친 영향력(민감도)을 거꾸로 계산해 나가는 과정이 바로 어드조인트 방법입니다. 이 정보를 통해 다음에는 설탕을 얼마나 줄여야 할지(파라미터 업데이트) 알 수 있습니다.

셀프 테스트

[O/X]

정답 보기

어드조인트 속도 u*는 유체가 시간을 거슬러 올라갈 때의 실제 물리적 속도를 나타낸다.
정답: X
해설: 어드조인트 속도 u*는 물리적 속도가 아니라, 목적 함수가 특정 시점의 속도 u에 얼마나 민감한지를 나타내는 수학적 그래디언트 정보입니다. 시간의 역방향으로 계산되지만 물리적 역재생과는 다릅니다.

[빈칸]

정답 보기

유체 최적화 문제에서 목적 함수의 그래디언트를 효율적으로 계산하기 위해, 시간을 거슬러 푸는 ________ 방정식을 사용한다.
정답: 어드조인트 (Adjoint)
해설: 어드조인트 방법은 복잡한 시스템의 출력에 대한 입력의 미분을 효율적으로 계산하는 방법으로, 시간을 역방향으로 진행하며 그래디언트를 계산합니다.

[서술형]

정답 보기

나비에-스토크스 방정식(Eq. 1)과 어드조인트 방정식(Eq. 4)의 가장 큰 구조적 차이점은 무엇이며, 그 차이가 어떤 역할을 하는지 설명하시오.
모범답안: 가장 큰 차이점은 어드조인트 방정식에 목적 함수 J의 미분 항(-∂J/∂u, -∂J/∂ξ)이 소스 항(source term)으로 추가된다는 점입니다. 나비에-스토크스 방정식이 외력(f)에 의해 유체의 움직임을 결정하는 반면, 어드조인트 방정식은 이 소스 항을 통해 최종 목표와의 오차 정보를 시스템에 주입하고, 이 정보가 시간을 거슬러 어떻게 전파되는지를 계산하여 그래디언트를 구하는 역할을 합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.2 Method Overview (방법론 개요)

우리는 플로우 맵 방법을 사용하여 유체 관련 최적화 문제를 해결하며, 매개변수 $\theta$를 최적화하여 결과 유체 상태 $u^{\theta}_{t}(x)$와 $\xi^{\theta}(\cdot)$가 특정 제어 시나리오 하에서 유체 역학(수식 1)의 제약을 받으며 목적 함수 $L(u^{\theta}, \xi^{\theta})$를 최소화하도록 하는 것을 목표로 합니다.

이 과정은 순방향 시뮬레이션 $\hat{F}_{s \to r}$을 반복적으로 수행하고, 함수 $L(u^{\theta}, \xi^{\theta})$를 평가하며, 역방향 어드조인트 과정 $\hat{B}_{r \to s}$을 계산하여 어드조인트 $u^{\theta}_{t}$와 $\xi^{\theta}_{t}$를 얻은 다음, 이 어드조인트들을 사용하여 제어 매개변수 $\theta$를 업데이트합니다.

$\hat{B}_{r \to s}$에 대한 기법을 얻기 위해, 이산화된 순방향 과정 $\hat{F}_{s \to t}$를 미분하는 기존의 미분 가능 유체 솔버들과는 달리, 우리의 접근 방식은 플로우 맵을 통해 연속적인 역방향 과정 $B_{r \to t}$를 직접 계산합니다.

이를 통해 원칙에 입각한 어드조인트 공식을 도출하고, 상태와 어드조인트의 일관된 시간 변화를 위해 플로우 맵을 사용하는 대칭적인 순방향-역방향 프레임워크를 구축합니다.

이 계산에 대한 개략적인 비교와 개요는 Fig. 4에 나와 있습니다.

이어서 우리는 플로우 맵 방법(3.3절)을 소개하고, 순방향(4.1절) 및 어드조인트 계산(4.2절)에서의 사용법을 설명하며, 새로운 가속 전략(4.3절)을 제시하고, 마지막으로 완전한 수치 기법(5장)을 구성하여, 이를 유체 최적화 문제(6장)를 해결하는 데 사용합니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6 classDef idea fill:#E8D2E5 classDef def fill:#FEEEB5 subgraph 최적화 반복 루프 A[1. 순방향 시뮬레이션 수행
<-F_s→r>]:::core B[2. 목적 함수 평가
L(u, ξ)]:::core C[3. 역방향 어드조인트 계산
<-B_r→s>]:::core D[4. 어드조인트로
파라미터 θ 업데이트]:::idea end Start(유체 최적화 문제) --> A A --> B B --> C C --> D D --> A

핵심 콕콕

• 이 연구의 목표는 '플로우 맵 방법'을 사용해 유체 관련 최적화 문제를 푸는 것입니다.
• 최적화는 [순방향 시뮬레이션 → 손실 계산 → 역방향 어드조인트 계산 → 파라미터 업데이트] 과정을 반복합니다.
• 기존 방법과 가장 큰 차이점은, 이산화된 순방향 시뮬레이션을 미분하는 대신 '플로우 맵'을 이용해 연속적인 역방향 과정을 직접 계산한다는 것입니다.
• 이 접근법을 통해 순방향과 역방향이 동일한 플로우 맵을 공유하는 '대칭적 프레임워크'를 구축하여 정확도를 높입니다.

함정 주의

이 논문의 접근법과 기존 접근법을 혼동하지 마세요.

- 기존 방법: [연속 방정식 → 이산화(Forward) → 미분(Backward)] 순서로 진행합니다. 즉, 이미 근사된(이산화된) 시뮬레이션 결과를 다시 미분하므로 오차가 누적될 수 있습니다.

- 제안 방법: [연속 방정식 → 미분(Adjoint) → 이산화(Backward)] 순서로 진행합니다. 즉, 연속 상태의 정확한 수식을 먼저 유도(어드조인트)한 뒤, 이를 플로우 맵을 이용해 정확하게 이산화합니다. 이론적으로 더 정확한 그래디언트를 얻을 수 있습니다.

쉬운 비유

어드조인트 방법 기반 최적화f>를 쉽게 비유해볼게요.

- 비유: '실수 바로잡기' 영화 촬영

1. 순방향 시뮬레이션 (영화 촬영): 배우들이 처음부터 끝까지 연기하며 영화를 찍습니다. 그런데 마지막 장면에서 주인공의 표정이 어색하게 나왔습니다 (이것이 '오차' 또는 '손실').

2. 역방향 어드조인트 과정 (원인 분석 되감기): 감독이 그냥 테이프를 뒤로 감는 게 아닙니다. '어드조인트'라는 특수 분석 모드로 되감기를 합니다. 이 모드는 마지막의 어색한 표정이 촬영 초반의 어떤 대사, 어떤 조명, 어떤 동선 때문에 얼마나 영향을 받았는지 '영향력'을 역으로 추적해 계산합니다.

3. 파라미터 업데이트 (재촬영 지시): 분석이 끝나면 감독은 "3번 씬의 조명을 10% 밝게 하고, 5번 씬의 대사 톤을 좀 더 부드럽게 바꿔서 재촬영합시다!"라고 정확히 지시합니다. 이것이 바로 어드조인트로 계산된 그래디언트를 이용해 파라미터를 수정하는 과정입니다.

이때 '플로우 맵'은 모든 배우와 소품이 매 순간 어디에 있었는지 정확히 기록한 '콘티뉴이티(continuity) 기록'과 같아서, 감독이 원인을 정확하게 추적할 수 있게 돕는 핵심 도구입니다.

셀프 테스트

[O/X] 이 논문에서 제안하는 방법은 기존 방법들처럼 이산화된 순방향 시뮬레이션 과정을 미분하여 그래디언트를 계산한다.

정답 보기

정답: X
해설: 이 논문의 핵심은 이산화된 순방향 과정을 미분하는 기존 방식과 달리, 플로우 맵을 이용해 연속적인 역방향 어드조인트 과정을 직접 계산하여 정확도를 높이는 것입니다.

[빈칸] 제안하는 방법은 이산화된 순방향 과정을 미분하는 대신, ___을 통해 연속적인 역방향 과정을 직접 계산한다.

정답 보기

정답: 플로우 맵 (flow maps)
해설: 플로우 맵은 순방향과 역방향 과정 모두에서 일관된 물리량 이송을 가능하게 하는 핵심 도구입니다.

[서술형] 본 논문이 제안하는 '대칭적인 순방향-역방향 프레임워크'가 기존 미분 가능 유체 솔버에 비해 갖는 이론적 장점은 무엇인가?

정답 보기

모범답안: 기존 솔버들은 이산화된 순방향 시뮬레이션을 미분하기 때문에, 이산화 과정에서 발생한 오차가 그래디언트 계산 시 누적되거나 증폭될 수 있습니다. 반면, 제안하는 프레임워크는 순방향과 역방향 모두에서 동일하고 정확한 플로우 맵을 공유합니다. 이를 통해 연속적인 어드조인트 방정식을 직접 이산화하여 풀기 때문에, 원칙에 더 입각한 공식을 사용하며 그래디언트의 정확도를 높이고 상태와 어드조인트의 시간적 진화를 일관성 있게 처리할 수 있는 장점이 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.3 Flow Map (유동 맵)

유체 시뮬레이션에서 유동 맵 방법(Deng/2023b/NeuralFlowMaps, Zhou/2024/ParticleFlowMap)은 초기 도메인 $U_s$와 현재 도메인 $U_t$ ($r> t> s$, 여기서 $s$와 $r$은 각각 초기 시간과 최종 시간) 사이에 매핑을 구성하여 물리량의 정확한 이류 계산을 가능하게 합니다. 속도장 $u(x,t)$, $x \in U_t$를 가지고 움직이는 유체를 고려해 봅시다. 임의의 시간 $t_1 < t_2$에 대해, 순방향 유동 맵 $\Phi_{t_1\to t_2} : U_{t_1} \to U_{t_2}$와 역방향 유동 맵 $\Psi_{t_2\to t_1} : U_{t_2} \to U_{t_1}$은 $\frac{dx_q(t)}{dt} = u(x_q(t),t)$를 따라 움직이는 모든 유체 입자 $q$에 대해 $\Phi_{t_1\to t_2} (x_q(t_1)) = x_q(t_2)$와 $\Psi_{t_2\to t_1} (x_q(t_2)) = x_q(t_1)$을 만족하는 함수로 정의됩니다. 여기서 $x_q(t)$는 시간 $t$에서의 입자 $q$의 위치를 나타냅니다.

유동 맵의 야코비안 행렬은 각각 $F_{t_1\to t_2} (x) = \frac{\partial\Phi_{t_1\to t_2} (x)}{\partial x}$, $x \in U_{t_1}$와 $T_{t_2\to t_1} (x) = \frac{\partial\Psi_{t_2\to t_1} (x)}{\partial x}$, $x \in U_{t_2}$로 표기됩니다. 임의로 선택된 시작 시간 $s' \ge s$로부터, 유동 맵과 그 야코비안은 다음과 같은 진화 방정식을 따릅니다:

Eq. 5: 순방향 유동 맵과 야코비안의 진화 방정식$$\left( \begin{array}{ll} \frac{\partial\Phi_{s'\to t}(x)}{\partial t} = u(\Phi_{s'\to t}(x),t), & \Phi_{s'\to s'} (x) = x, \\ \frac{\partial F_{s'\to t}(x)}{\partial t} = \nabla u(\Phi_{s'\to t}(x),t)F_{s'\to t}(x), & F_{s'\to s'} (x) = I, \end{array} \right.$$이 방정식들은 순방향 유동 맵 $\Phi$와 그 야코비안 $F$가 시간에 따라 어떻게 진화하는지를 설명합니다. 유동 맵 $\Phi$는 속도장 $u$를 따라 단순히 이류되며, 야코비안 $F$는 속도장의 그래디언트 $\nabla u$에 따라 변형됩니다. 이들은 고차 수치 적분 기법을 통해 정확하게 계산될 수 있습니다.Eq. 6: 역방향 유동 맵과 야코비안의 진화 방정식 (물질 미분)$$\left( \begin{array}{ll} \frac{D\Psi_{t\to s'} (x)}{Dt} = 0, & \Psi_{s'\to s'} (x) = x, \\ \frac{DT_{t\to s'} (x)}{Dt} = -T_{t\to s'} (x)\nabla u(x,t), & T_{s'\to s'} (x) = I. \end{array} \right.$$이 방정식들은 물질 미분 연산자 $\frac{D}{Dt}$를 사용하여 역방향 유동 맵 $\Psi$와 그 야코비안 $T$의 진화를 나타냅니다. 이 접근법은 준-라그랑주(semi-Lagrangian) 방식에 해당하며, 개념적으로는 간단하지만 격자 기반 시뮬레이션에서는 수치적 소산과 오차 누적을 유발하기 쉽습니다.

유동 맵 방법에서, 이류의 정확한 계산은 유동 맵의 정확성에 달려있습니다. 순방향 유동 맵 $\Phi_{s'\to t}$와 그 야코비안 $F_{s'\to t}$는 4차 룽게-쿠타 방법(RK4)과 같은 고차 기법을 사용하여 격자 상에서 정확하게 적분될 수 있지만(수식 5 계산), 수식 6에서 이류 항 $\frac{D}{Dt}$의 준-라그랑주 처리소산을 유발하고 오차를 누적시켜, $\Psi$와 $T$의 정밀한 계산을 어렵게 만듭니다.

이 문제를 해결하기 위해, Deng/2023b/NeuralFlowMaps은 임의의 주어진 시간 $r'$에서 역방향 유동 맵 $\Psi_{r'\to s'}$와 그 야코비안 $T_{r'\to s'}$가, 시작 시간 $r'$에서 이류 항 없이 역시간 유체 운동의 동역학을 따르는 $\Psi_{r'\to t}$와 $T_{r'\to t}$를 $r'$에서 $s'$로 $\Delta t < 0$으로 시간을 거슬러 진화시킨 결과로 해석될 수 있음을 관찰했습니다 (Fig. 6 참조):

Eq. 7: 역방향 유동 맵과 야코비안의 진화 방정식 (역시간 적분)$$\begin{cases} \frac{\partial\Psi_{r'\to t}(x)}{\partial t} = u(\Psi_{r'\to t}(x),t), & \Psi_{r'\to r'} (x) = x, \\ \frac{\partial T_{r'\to t}(x)}{\partial t} = \nabla u(\Psi_{r'\to t}(x),t) T_{r'\to t}(x), & T_{r'\to r'} (x) = I. \end{cases}$$이 방정식은 이류 항을 포함하지 않으므로, 고차 적분법을 사용하여 역방향 유동 맵 $\Psi$와 그 야코비안 $T$를 정확하게 계산할 수 있습니다. 이는 준-라그랑주 방식수치적 소산 문제를 피하기 위해, 시간을 거꾸로 되돌리는 방식으로 역방향 맵을 계산하는 핵심 아이디어입니다.

수식 7은 이류 항을 배제하기 때문에, 고차 적분을 통해 역방향 유동 맵 $\Psi$와 그 야코비안 $T$를 정확하게 계산할 수 있습니다. 이 접근법은 오일러리안 유동 맵 방법(EFM)으로 알려져 있으며, 수식 5와 수식 7로부터 정확하게 계산된 유동 맵을 기반으로 와류 구조를 보존하는 데 있어 최첨단 성능을 달성합니다.

4 Differentiable Flow Maps (미분 가능한 유동 맵)

미분 가능한 유동 맵을 구현하기 위해, 우리는 이전 방법들처럼 $\hat{F}$를 미분하는 대신, 역방향 프로세스 $B$를 직접 이산화하여 $\hat{B}$를 계산합니다. 유동 맵을 사용하여, 우리는 먼저 나비에-스토크스 방정식 1을 시작 시간 $s$에서 종료 시간 $r$까지 순방향으로 풀고, 그 다음 어드조인트 나비에-스토크스 방정식 4를 $r$에서 $s$까지 역방향으로 풉니다. 이 두 과정은 각각 순방향 및 역방향 패스라고 하며, 아래에서 논의될 것입니다.

4.1 Forward Pass (순방향 패스)

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef sub fill:#CCEFFF; classDef pros fill:#D0F1B9; classDef warn fill:#FFD3C2; sub_title[역방향 유동 맵 Ψ 계산 방법] --> A{어떤 방법을 사용할까?} A --> B[방법 1: 준-라그랑주 방식
(Eq. 6)]:::sub B --> B_warn[수치적 소산 및 오차 누적]:::warn A --> C[방법 2: EFM 방식
(Eq. 7)]:::core C --> C_idea[역시간(reverse-time) 적분]:::core C_idea --> C_pros[고차 정확도 달성]:::pros

핵심 콕콕

• 유동 맵(Flow Map)은 유체의 초기 상태와 현재 상태를 연결하여 물리량의 정확한 이류(advection) 계산을 가능하게 합니다.
• 유동 맵에는 현재 위치를 알려주는 순방향 맵(Φ)과 과거 위치를 알려주는 역방향 맵(Ψ)이 있습니다.
• 역방향 맵(Ψ)을 기존의 준-라그랑주 방식으로 계산하면 수치적 소산으로 인해 정확도가 떨어지는 문제가 있습니다.
• 오일러리안 유동 맵(EFM)은 이 문제를 해결하기 위해, 시간을 거꾸로 적분하는 방식으로 역방향 맵을 계산하여 높은 정확도를 달성합니다.
• 이 논문은 이렇게 정확하게 계산된 유동 맵을 이용해, 순방향 시뮬레이션을 단계별로 미분하는 대신 연속적인 어드조인트 방정식을 직접 풀어 그래디언트를 계산합니다.

함정 주의

역방향 유동 맵(Backward Flow Map)과 역방향 패스(Backward Pass)를 혼동하지 마세요.
- 역방향 유동 맵(Ψ)은 순방향 시뮬레이션(Forward Pass) 중에 현재 위치의 유체 입자가 과거 어느 위치에서 왔는지를 알려주는 '매핑 함수'입니다. EFM에서는 이 함수를 더 정확하게 구하기 위해 '시간을 거꾸로' 적분하는 계산 트릭을 사용합니다.
- 역방향 패스(Backward Pass)는 최적화를 위해 그래디언트를 계산하는 과정 전체를 의미합니다. 즉, 시뮬레이션이 끝난 시점(t=r)부터 시작 시점(t=s)으로 거슬러 올라가며 어드조인트 변수를 계산하는 과정입니다.

쉬운 비유

유동 맵(Flow Map)f>을 쉽게 비유해볼게요.
- 순방향 유동 맵(Φ)은 '내비게이션'과 같아요. 출발지(초기 상태)를 입력하면, 차(유체 입자)가 어떤 경로를 거쳐 목적지(현재 상태)에 도착하는지 정확히 알려줍니다.
- 역방향 유동 맵(Ψ)은 'CCTV 영상 되감기'와 같아요. 현재 목적지에 도착한 차가 어디서부터 출발했는지 알고 싶을 때 사용하죠.

EFM의 역시간 적분 아이디어f>는 이 '되감기'를 아주 선명하게 하는 방법이에요.
- 기존 방식(준-라그랑주)은 마치 중간중간 CCTV가 끊겨서 차의 출발지를 추측하는 것과 같아서, 화면이 흐릿하고(오차 누적) 부정확해요.
- EFM 방식은 전체 주행 영상을 녹화한 다음, 그냥 '뒤로 재생'하는 것과 같아요. 모든 프레임이 선명하게 기록되어 있으니 출발지를 아주 정확하게 찾을 수 있죠.

셀프 테스트

[O/X] 준-라그랑주(Semi-Lagrangian) 방식은 역방향 유동 맵(Ψ)을 계산하는 가장 정확한 방법이다.

정답 보기

정답: X
해설: 준-라그랑주 방식은 수치적 소산과 오차 누적 문제가 있어 정확도가 떨어질 수 있습니다. EFM에서 제안된 역시간 적분 방식이 더 정확합니다.

[빈칸] 오일러리안 유동 맵(EFM) 방법은 ___ ___ 적분을 통해 역방향 유동 맵의 정확도를 높인다.

정답 보기

정답: 역시간 (reverse-time)
해설: EFM은 시간을 거꾸로 적분하여 이류 항으로 인한 오차 발생을 원천적으로 차단하고, 이를 통해 역방향 유동 맵을 고차 정확도로 계산합니다.

[서술형] 수식 7이 수식 6보다 역방향 유동 맵 계산에 더 정확한 이유를 수식의 형태와 관련지어 설명하시오.

정답 보기

모범답안: 수식 6은 물질 미분(D/Dt)을 사용하여 입자의 궤적을 추적하는 준-라그랑주 방식입니다. 이는 격자 상에서 보간 오차와 수치적 소산을 누적시키는 경향이 있습니다. 반면, 수식 7은 이 문제를 시간을 거꾸로 흐르게 하여 푸는 방식으로 재정의합니다. 이로 인해 이류 항이 사라지고 순수 오일러리안 관점의 시간 미분(∂/∂t) 방정식이 되어, RK4와 같은 고차 수치 적분기를 통해 매우 정확하게 풀 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4.1 Forward Pass (순방향 패스)

Li et al./2024b/Particle-Laden Fluid에 따르면, 수식 1플로우 맵을 통해 정확하게 계산될 수 있으며, 수식 1의 적분 형태를 사용합니다.

Eq. 8: 플로우 맵을 이용한 유체 방정식의 적분 형태$$u(x,t) = T^\top_{t\to s}(x)u(\Psi_{t\to s}(x),s) + T^\top_{t\to s}(x)\Gamma_{s\to t}(\Psi_{t\to s}(x)), \\ \Gamma_{s\to t}(x) = \int_s^t F^\top_{s\to\tau}(x) \left( -\frac{1}{\rho}\nabla p + \frac{1}{2}\nabla\|u\|^2 + f \right) (\Phi_{s\to\tau}(x),\tau)d\tau, \\ \xi(x,t) = \xi(\Psi_{t\to s}(x),s).$$이 수식들은 플로우 맵을 사용하여 시간 $t$에서의 속도 $u$와 수동 스칼라 필드 $\xi$를 계산하는 방법을 보여줍니다. 속도 $u$는 초기 속도를 역방향 플로우 맵 $\Psi$로 매핑한 항과, 압력, 운동에너지, 외력의 효과를 순방향 플로우 맵 $\Phi$를 통해 시간 $s$부터 $t$까지 적분한 경로 적분항 $\Gamma$의 합으로 구성됩니다. 수동 스칼라 $\xi$는 단순히 역방향 플로우 맵을 통해 이류됩니다.

자세한 절차는 여기서 생략하고 보충 자료의 부록 A에 제공됩니다. 우리는 어드조인트의 진화를 정확하게 계산하기 위해 동일한 접근 방식을 따릅니다.

4.2 Backward Pass (역방향 패스)

어드조인트 속도장 $u^_t$ 또한 비압축성 조건 $\nabla \cdot u^_t = 0$을 만족하므로, 수식 4는 유사하게 플로우 맵을 사용하여 풀 수 있습니다. 주목할 점은, 순방향 수식 1어드조인트 수식 4 모두 동일한 속도장에 의해 구동되며, 역방향 패스의 흐름은 순방향 패스의 시간 역전으로 볼 수 있다는 것입니다.

결과적으로, 순방향 방정식에서 사용된 순방향 플로우 맵 $\Phi_{t_1\to t_2}$, $F_{t_1\to t_2}$와 역방향 플로우 맵 $\Psi_{t_2\to t_1}$, $T_{t_2\to t_1}$ ($t_1 < t_2$)은 어드조인트 방정식의 역방향 패스에서 각각 역방향 및 순방향 플로우 맵 역할을 할 수 있으며, 이를 통해 어드조인트 필드 $u^_t$와 $\xi^_t$를 다음과 같이 표현할 수 있습니다:

Eq. 9: 플로우 맵을 이용한 어드조인트 방정식$$u^(x,t) = F^\top_{t\to r}(x)u^(\Phi_{t\to r}(x),r) + F^\top_{t\to r}(x)\Lambda^u_{r\to t}(\Phi_{t\to r}(x)), \\ \Lambda^u_{r\to t}(x) = \int_t^r T^\top_{r\to\tau}(x) \left( 2\nabla u^\top u^ + \xi^\nabla\xi - \frac{1}{\rho}\nabla p + \nu\Delta u^ - \frac{\partial J}{\partial u} \right) (\Psi_{r\to\tau}(x),\tau)d\tau, \\ \xi^(x,t) = \xi^(\Phi_{t\to r}(x),r) + \Lambda^\xi_{r\to t}(\Phi_{t\to r}(x)), \\ \Lambda^\xi_{r\to t}(x) = -\int_t^r \frac{\partial J}{\partial \xi}(\Psi_{r\to\tau}(x),\tau)d\tau.$$이 수식들은 어드조인트 변수 $u^$와 $\xi^$를 시간 $r$에서 $t$로 역방향으로 계산하는 방법을 보여줍니다. 순방향 패스와 대칭적으로, 어드조인트 속도 $u^$는 최종 시간 $r$의 어드조인트 속도를 순방향 플로우 맵 $\Phi$로 매핑한 항과, 어드조인트 소스 항들을 경로 적분한 $\Lambda^u$의 합으로 구성됩니다. 이 구조는 순방향역방향 계산이 동일한 플로우 맵을 공유하는 대칭성을 강조합니다.

여기서 $u^M_{r\to t}(x) = F^\top_{t\to r}(x)u^(\Phi_{t\to r}(x),r)$는 장거리 매핑된 어드조인트 속도라고 하며, $\Lambda^u_{r\to t}$는 어드조인트 속도의 경로 적분기를 나타냅니다. 장거리 매핑은 $u^$가 이류로 인한 오차 누적을 피할 수 있게 해줍니다. $\xi^(x,t)$에 대해, $\xi^M_{r\to t}(x) = \xi^(\Phi_{t\to r}(x),r)$는 장거리 매핑된 어드조인트 수동 필드이고 $\Lambda^\xi_{r\to t}$는 그것의 경로 적분기입니다.

역방향 패스에서의 어드조인트 계산을 위해, 우리는 Chen et al./2024b/Solid-Fluid InteractionLi et al./2024b/Particle-Laden Fluid에서 소개된 장단기 매핑 변환 전략을 활용하여 어드조인트 적분 수식 9를 계산하는 전략을 수립합니다. 자세한 내용은 다음과 같습니다.

매핑 및 변환. 먼저 장거리 매핑된 어드조인트 속도 $u^M_{r\to t}(x)$를 $u^M_{r\to t}(x) = F^\top_{t\to r}(x) u^(\Phi_{t\to r}(x),r)$를 사용하여 계산한 다음, 장거리 매핑된 어드조인트 속도단거리 이류된 어드조인트 속도 $u^A_{t'\to t}(x)$로 변환합니다. 여기서 $t'$는 시간 $t$의 마지막 타임 스텝입니다 (증명은 보충 자료 섹션 B.1 참조):

Eq. 10: 장거리에서 단거리로의 어드조인트 속도 변환$$u^A_{t'\to t}(x) = u^M_{r\to t}(x) + F^\top_{t\to r}(x)\Lambda^u_{r\to t'}(\Phi_{t\to r}(x)) + 2\nabla u^\top u^ \Delta t,$$이 수식은 장거리 매핑된 어드조인트 속도 $u^M$를 한 타임스텝 동안 이류된 단거리 속도 $u^A$로 변환하는 방법을 보여줍니다. 이는 장거리 정보(매핑된 속도와 경로 적분기 $\Lambda^u$)와 지역적 변화($\nabla u^\top u^$ 항)를 결합하여 계산의 정확성과 안정성을 모두 확보하는 핵심 단계입니다.

여기서 이류된 어드조인트 속도 $u^A_{t'\to t}(x)$는 이전 역방향 타임스텝 $t'$로부터 어드조인트 이류 방정식 $\frac{\partial}{\partial t} + (u \cdot \nabla) u^ = \nabla u^\top u^$에 의해 직접 이류된 속도입니다. 매핑된 어드조인트 수동 필드 $\xi^M_{r\to t}(x) = \xi^*(\Phi_{t\to r}(x),r)$가 계산된 후, 경로 적분기 $\Lambda^\xi_{r\to t'}$와 현재 소스 항 $\frac{\partial J}{\partial \xi}$를 사용하여 현재 어드조인트 수동 필드는 다음과 같이 업데이트됩니다:

Eq. 11: 어드조인트 수동 필드 업데이트$$\xi^(x,t) = \xi^M_{r\to t}(x) + \Lambda^\xi_{r\to t'}(\Phi_{t\to r}(x)) - \frac{\partial J}{\partial \xi}(x)\Delta t.$$이 수식은 어드조인트 수동 스칼라 필드 $\xi^$를 업데이트하는 과정을 나타냅니다. 장거리 매핑된 값 $\xi^M$에 이전까지 누적된 경로 적분기 $\Lambda^\xi$와 현재 타임스텝의 목적 함수 그래디언트 $\frac{\partial J}{\partial \xi}$를 더하여 계산합니다.

누적 효과. 그런 다음 매핑 이외의 항들로부터 누적된 기여도를 계산합니다. $\xi^\nabla\xi$가 계산된 후, $u^A_{t'\to t}(x)$로부터 계산된 점성 항 $\nu\Delta u^$와 목적 함수의 소스 항 $\frac{\partial J}{\partial u}$와 함께, 투영되지 않은 속도 $u^_t up(x)$는 다음과 같이 계산됩니다.

Eq. 12: 투영 전 어드조인트 속도$$u^{up}_t(x) = u^{A}_{t'\to t}(x) + (\xi^\nabla\xi - \frac{1}{\rho}\nabla p^ + \nu\Delta u^ - \frac{\partial J}{\partial u})\Delta t.$$이 수식은 비압축성 조건을 적용하기 전의 중간 단계 어드조인트 속도 $u^{up}$를 계산합니다. 단거리 이류된 속도 $u^{*A}$에 커플링 항, 어드조인트 압력, 점성, 목적 함수 그래디언트 등 다양한 물리적 효과들을 한 타임스텝($\Delta t$) 동안 반영합니다.

투영. 현재 타임스텝에서 최종 어드조인트 속도를 얻기 위해, 어드조인트 비-통과 경계 조건(Stück/2012/Adjoint-based optimal control)과 함께 어드조인트 푸아송 방정식이 풀립니다:

Eq. 13: 어드조인트 푸아송 방정식$$\frac{\Delta t}{\rho}\Delta p^ = \nabla \cdot u^{up}_t, \\ u^_t \cdot n = 0, x \in \partial_b U_t,$$이 방정식은 어드조인트 압력 $p^$를 계산하여 어드조인트 속도장이 비압축성 조건을 만족하도록 합니다. 좌변은 어드조인트 압력의 라플라시안이며, 우변은 투영 전 속도 $u^{up}$의 발산(divergence)으로, 속도장의 압축성 정도를 나타냅니다. $u^_t \cdot n = 0$은 경계면을 통과하는 유동이 없다는 경계 조건입니다.

여기서 $n$은 고체 경계의 법선 벡터이고, $\partial_b U_t$는 도메인의 고체 경계를 나타냅니다. 그런 다음 투영을 통해 현재 시간의 최종 어드조인트 속도를 계산합니다:

Eq. 14: 어드조인트 속도 투영$$u^_t = u^{up}_t - \frac{\Delta t}{\rho}\nabla p^.$$이 수식은 투영되지 않은 속도 $u^{up}$에서 어드조인트 압력의 그래디언트를 빼서 최종적으로 비압축성을 만족하는 어드조인트 속도 $u^*_t$를 계산하는 과정입니다. 이는 표준 유체 시뮬레이션의 압력 투영 단계와 수학적으로 유사한 역할을 합니다.

경로 적분기 업데이트. 이어서, 어드조인트 소스 항, 어드조인트 점성 항 및 어드조인트 압력 그래디언트 $-\nabla p^*$를 다음 단계의 장단기 매핑 변환을 위해 경로 적분기 $\Lambda^u_{r\to t}$에 누적하고, $\frac{\partial J}{\partial \xi}$를 $\Lambda^\xi_{r\to t}$에 누적해야 합니다.

$\Lambda^u_{r\to t}$와 $\Lambda^\xi_{r\to t}$는 수식 9의 정의에 따라 각각 $\Delta t < 0$으로 업데이트됩니다:

Eq. 15: 경로 적분기 업데이트$$\Lambda^u_{r\to t}(x) = \Lambda^u_{r\to t'}(x) + \Delta t T^\top_{r\to t}(x) \left( 2\nabla u^\top u^ + \xi^\nabla\xi - \frac{1}{\rho}\nabla p + \nu\Delta u^* - \frac{\partial J}{\partial u} \right) (\Psi_{r\to t}(x),t), \\ \Lambda^\xi_{r\to t}(x) = \Lambda^\xi_{r\to t'}(x) - \Delta t \frac{\partial J}{\partial \xi}(\Psi_{r\to t}(x),t).$$이 수식들은 경로 적분기 $\Lambda^u$와 $\Lambda^\xi$를 업데이트하는 방법을 보여줍니다. 이전 타임스텝의 적분기 값에 현재 타임스텝에서 계산된 어드조인트 소스 항들의 기여도를 추가하여 누적합니다. 이 누적된 정보는 다음 장거리 매핑 단계에서 사용되어 계산의 정확도를 높입니다. 4.3 Long-short Time-sparse EFM (장단기 시간-희소 EFM)

플로우 맵 순방향 프로세스를 직접 미분하는 것은 몇 가지 어려움을 야기합니다. 오일러리안 플로우 맵(EFM)(Deng et al./2023b/Fluid Simulation on Neural Flow Maps)과 입자 플로우 맵(PFM)(Zhou et al./2024/Particle Flow Map)을 포함한 기존의 플로우 맵 방법들은 계산 비용과 메모리 소비 측면에서 집약적입니다. 순방향 프로세스를 미분하려면 중간 상태에 대한 추가 저장이 필요하며, 3-5배에 달하는 역방향 패스 계산은 시간 및 메모리 오버헤드를 더욱 악화시킵니다. 그러나 미분 가능한 시뮬레이션은 최적화 중에 반복적인 실행이 필요하므로 시간 효율성이 중요합니다. EFM비싼 $O(m^2)$ 플로우 맵 진화를 피하기 위해, 우리는 순방향 수식 8과 역방향 수식 9 계산 모두에 시간-희소 EFM(Sun et al./2025/Time-Sparse Eulerian Flow Maps)을 채택합니다. 이 접근 방식에서는 장거리 매핑이 재초기화 단계에서만 적용되고, 중간 단계에서는 이류를 위해 세미-라그랑지안 방법을 사용하며 동시에 나중에 재초기화 단계에서 플로우 맵 계산에 사용될 경로 적분을 누적합니다.

시간-희소 EFM의 핵심 아이디어는 각 재초기화 간격 내에서 세미-라그랑지안 이류로 인한 오차 누적을 허용하고, 재초기화 단계에서 이전 재초기화로부터의 더 정확한 장거리 매핑된 속도를 사용하여 이를 보정하는 것입니다. Fig. 15 (오른쪽)에서 볼 수 있듯이, 시간-희소 EFM은 긴 시간 스케일에서 와류를 보존하지만, 에너지 곡선은 재초기화 단계 사이에 명확한 감쇠가 있는 톱니 패턴을 보입니다. 이는 선택된 프레임만 렌더링되는 컴퓨터 그래픽스의 시각 효과에서는 수용 가능합니다. 재초기화 간격을 프레임 출력 간격과 일치시킴으로써 시각적 결과는 영향을 받지 않습니다. 그러나 역방향 패스의 어드조인트 계산에서는 이것이 주요한 문제를 야기합니다. 시각 효과와 달리, 모든 단계의 속도 $u$는 수식 4의 $\nabla u^\top u^$ 항을 통해 어드조인트 $u^$에 명시적으로 기여합니다. 중간 단계의 오차는 경로 적분 $\Lambda_{r\to t}$를 통해 누적되어 $u^*$의 정확도를 크게 저하시킵니다—이는 Fig. 15에 표시된 립프로깅 예제의 어드조인트 필드에서 눈에 띄는 아티팩트로 입증됩니다.

이 문제를 해결하기 위해, 우리는 기존 시간-희소 EFM의 개선된 버전인 장단기 시간-희소 EFM을 제안합니다. 우리는 시간-희소 EFM이 장거리 플로우 맵을 사용하여 긴 시간적 거리에서는 정확도를 유지하지만, 짧은 거리에서는 상당한 오차를 겪는다는 것을 관찰했습니다. 이를 해결하기 위해, 우리는 지역적 정확도를 향상시키기 위해 재초기화 단계 사이에 희소한 단거리 플로우 맵을 도입합니다. 우리는 이 방식을 장단기 시간-희소 EFM이라고 부릅니다. 이 방식은 순방향 시뮬레이션과 역방향 어드조인트 계산 모두에 사용됩니다. 여기서는 역방향 패스를 예로 들어 설명합니다. 순방향 패스에 대한 방법은 유사하며 보충 자료 섹션 A의 알고리즘 3에 제시되어 있습니다.

우리는 장거리 플로우 맵을 매 $\Delta t^l_{reinit} = n_l\Delta t$마다, 단거리 플로우 맵을 매 $\Delta t^s_{reinit} = n_s\Delta t$마다 재초기화하며, 일반적으로 $n_l = 15 \sim 60$이고 $n_s = 1 \sim 3$입니다. 알고리즘 1에서는 이전 장거리 재초기화 시간 $r'$에서 시작하는 하나의 장거리 재초기화 주기를 설명합니다. $r''$을 가장 최근의 단거리 재초기화 시간으로 하고, $r'' = r'$로 초기화합니다. 우리는 두 세트의 플로우 맵, 즉 장거리용 $\Psi^l_{r'\to t}, T^l_{r'\to t}, \Phi^l_{t_c\to t}, F^l_{t_c\to t}$와 단거리용 $\Psi^s_{r''\to t}, T^s_{r''\to t}, \Phi^s_{t_c\to t}, F^s_{t_c\to t}$를 유지하고, 두 개의 경로 적분기, 즉 장거리용 $\Lambda^{u,l}_{r'\to t}, \Lambda^{\xi,l}_{r'\to t}$와 단거리용 $\Lambda^{u,s}_{r''\to t}, \Lambda^{\xi,s}_{r''\to t}$를 각각 유지합니다. 여기서 $t_c < r'$는 현재 시간이고 $t$는 적분 동안의 진화하는 시간 변수 역할을 합니다.

알고리즘 1에서 파란색으로 강조된 부분은 시간-희소 EFM에 비해 장단기 시간-희소 EFM에 의해 추가된 구성 요소를 나타내며, 이는 Fig. 6 (c)(d)의 파란색 선에 해당합니다. 우리 방법은 플로우 맵 진화의 $O(m)$ 시간 복잡도를 유지하면서 진화 단계 수에서 일회성 오버헤드만 발생시킵니다. 기존의 시간-희소 EFM에서와 같이, 우리는 큰 시간 간격에 걸쳐 정확도를 유지하기 위해 장거리 플로우 맵을 사용하고, 단거리 플로우 맵은 희소한 장거리 업데이트 사이의 정확도를 보장하여 부정확한 중간 속도로 인한 $u^*$의 오차 누적을 방지합니다.

쪽집게 과외

알고리즘

flowchart TD subgraph Backward Pass per Timestep (시간 t' -> t) direction LR classDef core fill:#FFDBE6 classDef sub fill:#CCEFFF classDef idea fill:#E8D2E5 classDef pros fill:#D0F1B9 classDef warn fill:#FFD3C2 classDef ref fill:#EBEBEC classDef def fill:#FEEEB5 A[1. Mapping & Conversion]:::idea B[2. Accumulated Effect]:::sub C[3. Projection]:::sub D[4. Path Integrator Update]:::core A --> B B --> C C --> D end subgraph Long-Short Time-Sparse EFM Logic direction TB start(t_c: Current Time) --> check_short{Short Reinit? (t_c % n_s == 0)} check_short -- Yes --> short_map[Short-range Mapping & Conversion]:::idea short_map --> check_long{Long Reinit? (t_c % n_l == 0)} check_short -- No --> semi_lagrangian[Semi-Lagrangian Advection]:::ref semi_lagrangian --> check_long check_long -- Yes --> long_map[Long-range Correction]:::core long_map --> update_integrators[Update Path Integrators]:::sub check_long -- No --> update_integrators update_integrators --> finish(End of Timestep) end

핵심 콕콕

• 순방향 패스와 역방향 패스는 동일한 플로우 맵을 공유하며, 시간 방향만 반대인 대칭적 구조를 가집니다.
• 기존 방법처럼 이산화된 시뮬레이션 단계를 미분하는 대신, 연속적인 어드조인트 방정식을 플로우 맵을 이용해 직접 풀어 정확도를 높입니다.
• 역방향 패스는 '매핑 및 변환', '누적 효과 계산', '투영', '경로 적분기 업데이트'의 4단계로 구성됩니다.
• 제안하는 '장단기 시간-희소 EFM'은 장거리 플로우 맵의 정확성과 단거리 플로우 맵의 지역적 보정을 결합하여 계산 효율과 정확도를 모두 달성합니다.

함정 주의

시간-희소 EFM과 장단기 시간-희소 EFM을 혼동하지 마세요.
- 시간-희소 EFM은 재초기화 시점에만 장거리 매핑을 사용하여 계산량을 줄이지만, 재초기화 사이의 중간 단계에서는 세미-라그랑지안 방법의 오차가 누적됩니다. 이는 시각적으로는 괜찮을 수 있지만, 모든 시간 단계의 정보가 중요한 어드조인트 계산에서는 정확도를 크게 떨어뜨립니다.
- 장단기 시간-희소 EFM은 이 문제를 해결하기 위해, 긴 재초기화 주기 사이에 짧은 주기의 단거리 플로우 맵을 추가로 도입합니다. 이를 통해 중간 단계의 오차를 보정하여 어드조인트 계산의 정확도를 희생하지 않으면서도 O(m)의 효율성을 유지합니다.

구현 힌트

Long-Short Time-Sparse EFM을 구현할 때, 두 종류의 플로우 맵과 경로 적분기를 관리해야 합니다.
1. 장거리용 (Long-range): 매 n_l 스텝마다 재초기화되며, 전체 시뮬레이션 기간에 걸친 큰 스케일의 오차를 보정합니다. (논문에서는 n_l = 15~60)
2. 단거리용 (Short-range): 매 n_s 스텝마다 재초기화되며, 장거리 재초기화 사이의 지역적 오차를 잡아줍니다. (논문에서는 n_s = 1~3)
매 타임스텝마다 두 경로 적분기(Λ_long, Λ_short)를 모두 업데이트해야 합니다. 단거리 재초기화 시점에는 단거리 맵을 이용해 변환을 수행하고, 장거리 재초기화 시점에는 누적된 장거리 경로 적분기를 이용해 최종 보정을 수행하는 계층적 구조로 구현됩니다.

쉬운 비유

장단기 시간-희소 EFMf>을 쉽게 비유해볼게요.

- 서울에서 부산까지 자동차로 여행을 간다고 상상해보세요.
- 기존의 '시간-희소 EFM'은 1시간마다 한 번씩만 전국 지도를 보고 큰 경로를 확인하는 것과 같아요. 중간에 길을 잘못 들어도 1시간 뒤에나 알아차리게 되어 오차가 커질 수 있죠.
- 우리가 제안하는 '장단기 시간-희소 EFM'은 1시간마다 전국 지도를 보는 것은 똑같지만, 추가로 5분마다 스마트폰 GPS로 현재 위치와 경로를 확인하고 수정하는 것과 같아요. 이렇게 하면 큰 그림(장거리 맵)을 놓치지 않으면서도, 작은 실수(단거리 오차)를 바로바로 잡아내어 훨씬 정확하게 목적지에 도착할 수 있습니다.

셀프 테스트

[O/X] 본 논문의 역방향 패스는 순방향 패스와 완전히 다른 별도의 플로우 맵을 계산하여 사용한다.

정답 보기

정답: X
해설: 역방향 패스는 순방향 패스에서 계산된 플로우 맵을 재사용합니다. 순방향 패스의 순방향 맵(Φ)이 역방향 패스의 역방향 맵 역할을 하고, 순방향 패스의 역방향 맵(Ψ)이 역방향 패스의 순방향 맵 역할을 하는 대칭적 구조를 가집니다.

[빈칸] 기존의 시간-희소 EFM은 어드조인트 계산 시 중간 단계의 오차가 ___를 통해 누적되어 정확도를 저하시키는 문제가 있다.

정답 보기

정답: 경로 적분기 (Path Integrator)
해설: 중간 단계에서 발생하는 속도 오차는 어드조인트 방정식의 소스 항(∇uᵀu*)을 통해 경로 적분기(Λ)에 계속 누적되고, 이는 최종 어드조인트 값의 정확도를 심각하게 훼손합니다.

[서술형] '장단기 시간-희소 EFM'이 기존 '시간-희소 EFM'에 비해 어드조인트 계산에서 더 정확한 이유를 계산 복잡도와 연관지어 설명하시오.

정답 보기

모범답안: 기존 '시간-희소 EFM'은 O(m)의 효율성을 위해 재초기화 단계 사이의 계산을 부정확한 세미-라그랑지안 이류에 의존합니다. 이로 인해 중간 단계의 속도 오차가 경로 적분기를 통해 누적되어 어드조인트의 정확도를 저하시킵니다. '장단기 시간-희소 EFM'은 여기에 짧은 주기의 단거리 플로우 맵을 추가하여 중간 단계의 오차를 보정합니다. 이 추가적인 단거리 맵 계산은 전체 시간 복잡도를 O(m)으로 유지하면서도(상수 배 증가), 모든 시간 단계에서 더 정확한 속도 정보를 제공하여 경로 적분기의 오차 누적을 막아주므로, 최종적으로 더 정확한 어드조인트 값을 얻을 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4.1 Forward Pass (순방향 패스)

Li et al./2024/Particle-Laden Fluid에 따르면, 방정식 1은 플로우 맵을 통해 정확하게 계산될 수 있으며, 방정식 1의 적분 형태를 사용합니다.

Eq. 8: 플로우 맵 기반 유체 상태 적분 표현$$u(x,t) = T^{\top}_{t \to s}(x)u(\Psi_{t \to s}(x),s) + T^{\top}_{t \to s}(x)\Gamma_{s \to t}(\Psi_{t \to s}(x)), \\ \Gamma_{s \to t}(x) = \int_{s}^{t} F^{\top}_{s \to \tau}(x) \left( -\frac{1}{\rho}\nabla p + \frac{1}{2}\nabla\|u\|^2 + f \right) (\Phi_{s \to \tau}(x),\tau)d\tau, \\ \xi(x,t) = \xi(\Psi_{t \to s}(x),s).$$이 수식은 플로우 맵을 사용하여 현재 시간 $t$에서의 속도 $u$와 수동 스칼라 장 $\xi$를 초기 시간 $s$의 상태로부터 계산하는 적분 형태를 보여줍니다. 첫 번째 항은 초기 속도를 역방향 플로우 맵 $\Psi_{t \to s}$과 그 야코비안 $T_{t \to s}$를 통해 매핑한 것이고, 두 번째 항 $\Gamma_{s \to t}$는 압력, 외부 힘 등의 효과를 시간에 대해 적분한 경로 적분항입니다. 이 방식은 수치적 소실 없이 물리량을 정확하게 이송할 수 있는 장점이 있습니다.

자세한 절차는 여기서 생략되었으며 보충 자료의 부록 A에 제공됩니다.

우리는 adjoint의 변화를 정확하게 계산하기 위해 동일한 접근 방식을 따릅니다.

4.2 Backward Pass (역방향 패스)

쪽집게 과외

핵심 콕콕

• 순방향 패스는 플로우 맵을 기반으로 한 나비에-스토크스 방정식의 '적분 형태'를 사용하여 유체 상태를 계산합니다.
• 현재 시점의 유체 속도와 밀도는 초기 상태를 플로우 맵으로 가져오고, 그동안 작용한 힘(압력, 외력 등)의 효과를 경로 적분을 통해 더하여 계산됩니다.
• 이 방법의 핵심 장점은 기존 방법들에서 흔히 발생하는 수치적 소실(numerical dissipation) 없이 물리량을 시간과 공간에 걸쳐 정확하게 이송할 수 있다는 점입니다.

쉬운 비유

플로우 맵(Flow Map)f>을 쉽게 비유해볼게요.

- 어제 강물에 잉크 한 방울을 떨어뜨렸다고 상상해보세요. 오늘 그 잉크 입자들이 어디에 있을지 정확히 알고 싶습니다.
- 플로우 맵은 '마법 GPS'와 같습니다. 어제의 모든 물 입자 위치(초기 상태)를 입력하면, 오늘 그 입자들이 정확히 어디로 이동했는지(현재 상태) 알려줍니다.
- 그냥 최종 위치만 알려주는 것이 아니라, 각 입자가 어떤 경로를 거쳐왔는지도 모두 기억합니다. 덕분에 어제의 속도나 색깔 같은 정보를 오늘 위치로 '순간이동'시키듯 정확하게 가져올 수 있습니다. 중간에 정보가 흐려지거나 사라지지 않고요.

셀프 테스트

[빈칸] 플로우 맵을 이용한 순방향 패스는 반복적인 이송(advection) 계산에서 발생하는 ___ ___을 피할 수 있어 정확도가 높습니다.

정답 보기

정답: 수치적 소실 (numerical dissipation)
해설: 플로우 맵은 초기 상태에서 현재 상태로 직접 매핑하기 때문에, 여러 시간 단계를 거치며 발생하는 오차 누적 및 소실 현상을 근본적으로 방지합니다.

[O/X] 방정식 8에 따르면, 현재 시간의 유체 속도는 오직 초기 시간의 속도를 플로우 맵으로 옮겨온 값에 의해서만 결정된다.

정답 보기

정답: X
해설: 초기 속도를 매핑한 항 외에도, 그 시간 동안 압력 구배나 외부 힘 등이 미친 영향을 모두 적분한 경로 적분항(Γ)의 기여도 함께 더해져야 합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4.2 Backward Pass (역방향 패스)

애드조인트 속도장 $u∗_t$ 또한 비압축성 조건 $\nabla\cdot u∗_t= 0$을 만족하므로, 방정식 4는 유사하게 플로우 맵을 사용하여 풀 수 있습니다. 특히, 순방향 방정식 1과 애드조인트 방정식 4는 모두 동일한 속도장에 의해 구동되며, 역방향 패스의 흐름은 순방향 패스의 시간 역전으로 볼 수 있습니다.

결과적으로, 순방향 방정식에서 사용된 순방향 플로우 맵 $\Phi_{t_1\to t_2}$, $F_{t_1\to t_2}$와 역방향 플로우 맵 $\Psi_{t_2\to t_1}$, $T_{t_2\to t_1}$ ($t_1 < t_2$)은 애드조인트 방정식의 역방향 패스에서 각각 역방향 및 순방향 플로우 맵 역할을 할 수 있으며, 이를 통해 애드조인트 장 $u∗_t$와 $\xi∗_t$를 다음과 같이 표현할 수 있습니다:

Eq. 9: 애드조인트 장 표현$$u∗(x,t) = F^\top_{t\to r}(x)u∗(\Phi_{t\to r}(x),r) + F^\top_{t\to r}(x)\Lambda^u_{r\to t}(\Phi_{t\to r}(x)),\\ \Lambda^u_{r\to t}(x) = \int_t^r T^\top_{r\to\tau}(x) \left( 2\nabla u^\top u∗ + \xi∗\nabla\xi - \frac{1}{\rho}\nabla p + \nu\Delta u∗ -\frac{\partial J}{\partial u} \right) (\Psi_{r\to\tau}(x),\tau)d\tau, \\ \xi∗(x,t) = \xi∗(\Phi_{t\to r}(x),r) + \Lambda^\xi_{r\to t}(\Phi_{t\to r}(x)), \\ \Lambda^\xi_{r\to t}(x) = -\int_t^r \frac{\partial J}{\partial \xi}(\Psi_{r\to\tau}(x),\tau)d\tau.$$이 수식은 애드조인트 속도 $u∗$와 애드조인트 스칼라장 $\xi∗$를 플로우 맵을 이용해 표현합니다. 각 변수는 두 항의 합으로 구성됩니다: 첫 번째 항은 장거리 매핑을 통해 최종 시간 $r$의 값을 현재 시간 $t$로 직접 가져와 이류(advection)에 의한 오차 누적을 방지합니다. 두 번째 항인 경로 적분기 $\Lambda$는 그 경로 동안 발생한 압력, 점성, 소스 항 등의 물리적 효과를 누적하여 보정합니다.

여기서 $u∗^M_{r\to t}(x) = F^\top_{t\to r}(x)u∗(\Phi_{t\to r}(x),r)$은 장거리 매핑된 애드조인트 속도라고 하며, $\Lambda^u_{r\to t}$는 애드조인트 속도의 경로 적분기를 나타냅니다. 장거리 매핑은 $u∗$가 이류로 인해 발생하는 오차 누적을 피할 수 있게 해줍니다. $\xi∗(x,t)$에 대해, $\xi∗^M_{r\to t}(x) = \xi∗(\Phi_{t\to r}(x),r)$는 장거리 매핑된 애드조인트 수동장이고 $\Lambda^\xi_{r\to t}$는 그것의 경로 적분기입니다.

역방향 패스에서의 애드조인트 계산을 위해, 우리는 Chen et al./2024b/Solid-FluidLi et al./2024b/Particle-Laden에서 소개된 장단기 매핑 변환 전략을 활용하여 애드조인트 적분 방정식 9를 계산하는 전략을 수립합니다. 자세한 내용은 다음과 같습니다.

매핑 및 변환. 먼저 장거리 매핑된 애드조인트 속도 $u∗^M_{r\to t}(x)$를 $u∗^M_{r\to t}(x) = F^\top_{t\to r}(x) u∗(\Phi_{t\to r}(x),r)$를 사용하여 계산한 다음, 이 장거리 매핑된 애드조인트 속도를 단거리 이류된 애드조인트 속도 $u∗^A_{t'\to t}(x)$로 변환합니다. 여기서 $t'$는 시간 $t$의 마지막 타임스텝입니다 (증명은 보충 자료 섹션 B.1 참조):

Eq. 10: 장거리-단거리 애드조인트 속도 변환$$u∗^A_{t'\to t}(x) = u∗^M_{r\to t}(x) + F^\top_{t\to r}(x)\Lambda^u_{r\to t'} (\Phi_{t\to r}(x)) + 2\nabla u^\top u∗\Delta t,$$이 수식은 장거리 매핑된 애드조인트 속도($u∗^M$)를 단거리 이류된 애드조인트 속도($u∗^A$)로 변환하는 과정을 보여줍니다. 이는 장거리 매핑의 정확성과 단거리 이류 계산의 지역적 효과 반영을 결합하기 위해 필요합니다. 마지막 항은 한 타임스텝 동안의 이류 효과를 근사합니다.

여기서 이류된 애드조인트 속도 $u∗^A_{t'\to t}(x)$는 이전 역방향 타임스텝 $t'$로부터 애드조인트 이류 방정식 $\frac{\partial}{\partial t}+ (u \cdot \nabla) u∗= \nabla u^\top u∗$에 의해 직접 이류된 속도입니다. 매핑된 애드조인트 수동장 $\xi∗^M_{r\to t}(x) = \xi∗(\Phi_{t\to r}(x),r)$가 경로 적분기 $\Lambda^\xi_{r\to t'}$와 현재 소스 항 $\frac{\partial J}{\partial \xi}$와 함께 계산된 후, 현재 애드조인트 수동장은 다음과 같이 업데이트됩니다:

Eq. 11: 애드조인트 수동장 업데이트$$\xi∗(x,t) = \xi∗^M_{r\to t}(x) + \Lambda^\xi_{r\to t'} (\Phi_{t\to r}(x)) -\frac{\partial J}{\partial \xi}(x)\Delta t.$$이 수식은 현재 타임스텝 $t$에서의 애드조인트 수동장 $\xi∗$를 계산합니다. 이는 장거리 매핑된 값, 이전까지 누적된 경로 적분기, 그리고 현재 스텝의 소스 항을 결합하여 업데이트됩니다.

누적 효과. 그 다음 매핑 이외의 항들로부터 누적된 기여도를 계산합니다. $\xi∗\nabla\xi$가 계산된 후, $u∗^A_{t'\to t}(x)$로부터 계산된 점성 항 $\nu\Delta u∗$와 목적 함수 $\frac{\partial J}{\partial u}$의 소스 항과 함께, 투영되지 않은 속도 $u∗_t^{up}(x)$는 다음과 같이 계산됩니다.

Eq. 12: 투영되지 않은 애드조인트 속도$$u∗^{up}_t(x) = u∗^A_{t'\to t}(x) + (\xi∗\nabla\xi - \frac{1}{\rho}\nabla p∗ + \nu\Delta u∗ - \frac{\partial J}{\partial u})\Delta t.$$이 수식은 비압축성을 만족시키기 전의 중간 단계 속도인 투영되지 않은 애드조인트 속도를 계산합니다. 단거리 이류된 속도에 한 타임스텝 동안의 모든 내부 및 외부 힘(커플링, 압력, 점성, 목적 함수 그래디언트)의 영향을 더합니다.

투영. 현재 타임스텝에서 최종 애드조인트 속도를 얻기 위해, 애드조인트 비-통과 경계 조건을 갖는 애드조인트 푸아송 방정식이 풀립니다 Stück/2012/Adjoint-based:

Eq. 13: 애드조인트 푸아송 방정식$$\frac{\Delta t}{\rho}\Delta p∗ = \nabla\cdot u∗^{up}_t, \\ u∗_t \cdot n = 0, x \in \partial_b U_t,$$이 수식은 애드조인트 압력 $p∗$를 찾기 위한 푸아송 방정식입니다. 투영되지 않은 속도 $u∗^{up}_t$의 발산을 소스 항으로 사용하여, 이 방정식을 풀면 속도장을 비압축성으로 만드는 데 필요한 압력 보정치를 얻을 수 있습니다. 아래의 경계 조건은 고체 경계면에서 속도의 법선 성분이 0임을 의미합니다.

여기서 $n$은 고체 경계의 법선 벡터이고, $\partial_b U_t$는 도메인의 고체 경계를 나타냅니다. 그런 다음 투영을 통해 현재 시간의 최종 애드조인트 속도를 계산합니다:

Eq. 14: 애드조인트 속도 투영$$u∗_t = u∗^{up}_t - \frac{\Delta t}{\rho}\nabla p∗.$$이 수식은 최종 애드조인트 속도 $u∗_t$를 계산하는 투영 단계입니다. 투영되지 않은 속도 $u∗^{up}_t$에서 애드조인트 압력 $p∗$의 그래디언트를 빼서 발산이 없는(divergence-free) 속도장을 만듭니다.

경로 적분기 업데이트. 이어서, 다음 단계의 장단기 매핑 변환을 위해 애드조인트 소스 항, 애드조인트 점성 항 및 애드조인트 압력 그래디언트 $-\nabla p∗$를 경로 적분기 $\Lambda^u_{r\to t}$에 누적하고, $\frac{\partial J}{\partial \xi}$를 $\Lambda^\xi_{r\to t}$에 누적해야 합니다.

Eq. 15: 경로 적분기 업데이트$$\Lambda^u_{r\to t}(x) = \Lambda^u_{r\to t'}(x) + \Delta t T^\top_{r\to t}(x) \left( 2\nabla u^\top u∗ + \xi∗\nabla\xi - \frac{1}{\rho}\nabla p + \nu\Delta u∗ - \frac{\partial J}{\partial u} \right) (\Psi_{r\to t}(x),t), \\ \Lambda^\xi_{r\to t}(x) = \Lambda^\xi_{r\to t'}(x) - \Delta t \frac{\partial J}{\partial \xi}(\Psi_{r\to t}(x),t).$$이 수식은 다음 타임스텝 계산을 위해 경로 적분기 $\Lambda$를 업데이트하는 과정을 보여줍니다. 이전 적분기 값에 현재 타임스텝에서 발생한 모든 물리적 효과들을 더하여 누적시킵니다. 이 값은 다음 단계의 장거리-단거리 변환에 사용됩니다.4.3 Long-short Time-sparse EFM (장단기 시간-희소 EFM)

플로우 맵 순방향 프로세스를 직접 미분하는 것은 몇 가지 어려움을 야기합니다. 오일러리안 플로우 맵(EFM) Deng et al./2023b/Fluid Simulation입자 플로우 맵(PFM) Zhou et al./2024/Particle flow map을 포함한 기존의 플로우 맵 방법들은 계산 비용과 메모리 소비 측면에서 집약적입니다. 순방향 프로세스를 미분하려면 중간 상태에 대한 추가 저장 공간이 필요하며, 3-5배에 달하는 역방향 패스 계산은 시간 및 메모리 오버헤드를 더욱 악화시킵니다. 그러나 미분 가능 시뮬레이션은 최적화 과정에서 반복적인 실행이 필요하므로 시간 효율성이 매우 중요합니다. EFM에서 비용이 많이 드는 $O(m^2)$ 플로우 맵 진화를 피하기 위해, 우리는 순방향 방정식 8과 역방향 방정식 9 계산 모두에 시간-희소 EFM Sun et al./2025/Time-sparse을 채택합니다. 이 접근 방식에서는 장거리 매핑이 재초기화 단계에서만 적용되고, 중간 단계에서는 이류를 위해 세미-라그랑지안을 사용하며 동시에 나중에 재초기화 단계의 플로우 맵 계산에 사용될 경로 적분을 누적합니다.

시간-희소 EFM의 핵심 아이디어는 세미-라그랑지안 이류로 인해 각 재초기화 간격 내에서 오차 누적을 허용하고, 재초기화 단계에서 이전 재초기화로부터의 더 정확한 장거리 매핑된 속도를 사용하여 이를 보정하는 것입니다. Fig. 15 (오른쪽)에서 볼 수 있듯이, 시간-희소 EFM은 장시간에 걸쳐 와류를 보존하지만, 에너지 곡선은 재초기화 단계 사이에 명확한 감쇠를 보이는 톱니 패턴을 나타냅니다. 이는 선택된 프레임만 렌더링되는 컴퓨터 그래픽스의 시각 효과에서는 수용 가능합니다. 재초기화 간격을 프레임 출력 간격과 일치시킴으로써 시각적 결과는 영향을 받지 않습니다. 그러나 역방향 패스의 애드조인트 계산에서는 이것이 주요한 문제를 야기합니다. 시각 효과와 달리, 모든 단계의 속도 $u$는 방정식 4의 $\nabla u^\top u∗$ 항을 통해 애드조인트 $u∗$에 명시적으로 기여합니다. 중간 단계의 오차는 경로 적분 $\Lambda_{r\to t}$를 통해 누적되어, $u∗$의 정확도를 현저하게 저하시킵니다 — 이는 Fig. 15에 표시된 립프로깅 예제의 애드조인트 필드에서 눈에 띄는 아티팩트로 입증됩니다.

이 문제를 해결하기 위해, 우리는 기존 시간-희소 EFM의 개선된 버전인 장단기 시간-희소 EFM을 제안합니다. 우리는 시간-희소 EFM이 장거리 플로우 맵을 사용하여 긴 시간적 거리에서는 정확도를 유지하지만, 짧은 거리에서는 상당한 오차를 겪는다는 것을 관찰했습니다. 이를 해결하기 위해, 우리는 재초기화 단계 사이에 희소한 단거리 플로우 맵을 도입하여 지역적 정확도를 향상시킵니다. 우리는 이 방식을 장단기 시간-희소 EFM이라고 부릅니다. 이 방식은 순방향 시뮬레이션과 역방향 애드조인트 계산 모두에 사용됩니다. 여기서는 역방향 패스를 예로 들어 설명합니다. 순방향 패스에 대한 방법은 유사하며 보충 자료 섹션 A의 알고리즘 3에 제시되어 있습니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6 classDef idea fill:#E8D2E5 classDef sub fill:#CCEFFF sub_start[Start: u*, ξ* at time r] --> A[Compute Long-Range Mapped Adjoint Velocity u*M]:::core A --> B[Convert to Short-Range Advected Velocity u*A]:::idea B --> C[Compute Accumulated Effects
(Viscous, Coupling, Source Terms)]:::core C --> D[Calculate Unprojected Velocity u*up]:::core D --> E[Solve Adjoint Poisson Equation for p*]:::core E --> F[Project to get final u* at time t]:::core F --> G[Update Path Integrators Λ]:::core G --> sub_end[End: u*, ξ* at time t]

핵심 콕콕

• 역방향 애드조인트 계산은 순방향 시뮬레이션에서 사용된 플로우 맵을 시간 역전시켜 재사용함으로써, 순방향-역방향 간의 대칭적 구조를 이룹니다.
• 애드조인트 변수는 '장거리 매핑 항'과 '경로 적분기 항'으로 분리됩니다. 장거리 매핑은 이류(advection)로 인한 오차 누적을 막고, 경로 적분기는 경로상의 물리적 효과를 보정합니다.
• 기존의 '시간-희소 EFM'은 중간 단계의 정확도 저하로 애드조인트 계산에 부적합합니다.
• 제안하는 '장단기 시간-희소 EFM'은 장거리 맵 사이에 단거리 맵을 추가하여 중간 단계의 정확도를 보강함으로써, O(m)의 효율성을 유지하면서 정확한 그래디언트 계산을 가능하게 합니다.

함정 주의

시간-희소 EFM과 장단기 시간-희소 EFM을 혼동하지 마세요.

- 시간-희소 EFM(Time-Sparse EFM)은 재초기화(reinit) 시점에만 장거리 플로우 맵으로 오차를 보정합니다. 중간 단계에서는 정확도가 떨어지는데, 이는 순방향 시뮬레이션의 시각적 결과에는 큰 문제가 안 될 수 있지만, 모든 단계의 정보가 누적되는 역방향 애드조인트 계산에서는 심각한 정확도 저하를 유발합니다.

- 장단기 시간-희소 EFM(Long-Short Time-Sparse EFM)은 이 문제를 해결하기 위해 제안된 방법입니다. 장거리 재초기화 사이에 추가적으로 단거리 플로우 맵을 희소하게(sparse) 사용하여 중간 단계의 정확도를 보강합니다. 이로써 애드조인트 계산에 필요한 정확도를 확보하면서도 O(m)의 높은 시간 효율성을 유지합니다.

구현 힌트

구현 시, 순방향 패스에서 계산된 플로우 맵(Φ, F, Ψ, T)들을 저장해두었다가 역방향 패스에서 재사용해야 합니다. 순방향의 전방(forward) 맵 Φ, F는 역방향 패스의 후방(backward) 맵으로, 순방향의 후방(backward) 맵 Ψ, T는 역방향 패스의 전방(forward) 맵으로 사용됩니다. 이 대칭성을 잘 활용하는 것이 핵심입니다.

또한, 경로 적분기(Path Integrator) Λ는 매 타임스텝마다 점성, 압력, 소스 항 등의 효과를 누적시키는 역할을 합니다. 이 값을 정확하게 업데이트해야 장거리 매핑 변환 시 오차가 발생하지 않습니다.

쉬운 비유

애드조인트 변수의 플로우 맵 기반 계산f>을 쉽게 비유해볼게요.
- 장거리 플로우 맵 (Long-range flow map): '순간이동 포털'과 같아요. 유체 입자가 처음 위치에서 최종 위치까지 어떻게 이동했는지 기록한 지도죠. 역방향 계산에서는 이 포털을 거꾸로 타고 가서, 최종 상태에 영향을 준 초기 상태의 기여도를 한 번에, 오차 없이 가져올 수 있어요. 중간 과정의 오차가 쌓이지 않는 장점이 있죠.
- 경로 적분기 (Path integrator): '여행 일지' 같은 거예요. 입자가 포털을 통해 이동하는 동안, 중간중간 겪었던 모든 힘(압력, 점성 등)의 영향을 기록해두는 노트죠. 순간이동만으로는 알 수 없는 '과정'의 효과를 보정해주는 역할을 해요.
- 장단기 시간-희소 EFM (Long-Short Time-Sparse EFM): '고속도로와 국도'를 함께 이용하는 것과 같아요. 일반 '시간-희소 EFM'이 고속도로(장거리 맵)만 이용해서 중간 지점(중간 타임스텝)에서는 길을 잃기 쉬웠다면, 제안하는 방법은 중간중간 국도(단거리 맵)를 이용해 위치를 정확히 보정해가며 목적지까지 가는 거예요. 효율적이면서도 정확하죠.

셀프 테스트

[O/X] 역방향 패스(backward pass)에서는 순방향 패스와는 완전히 다른 새로운 플로우 맵을 계산해야 한다.

정답 보기

정답: X
해설: 역방향 패스는 순방향 패스에서 사용된 플로우 맵을 재사용합니다. 순방향의 전방 맵(Φ, F)이 역방향의 후방 맵으로, 순방향의 후방 맵(Ψ, T)이 역방향의 전방 맵으로 사용되어 대칭적인 구조를 이룹니다.

[빈칸] 일반적인 Time-Sparse EFM은 중간 단계의 오차 누적으로 인해 애드조인트 계산의 정확도를 저하시킬 수 있다. 이를 해결하기 위해 본 논문에서는 ___ ___ ___ EFM을 제안했다.

정답 보기

정답: Long-Short Time-Sparse (장단기 시간-희소)
해설: 장거리 맵 사이에 단거리 맵을 추가하여 중간 단계의 정확도를 보강하는 Long-Short Time-Sparse EFM을 제안하여 애드조인트 계산의 정확도를 높였습니다.

[서술형] 애드조인트 방정식을 플로우 맵을 이용해 풀 때, 애드조인트 변수를 '장거리 매핑된 항'과 '경로 적분기 항'으로 나누어 표현하는 이유는 무엇인가요?

정답 보기

모범답안: 애드조인트 변수를 두 항으로 나누는 것은 정확성과 안정성을 모두 확보하기 위함입니다. '장거리 매핑된 항'은 이류(advection)를 직접 계산하지 않고 시작점과 끝점의 관계를 이용해 변수를 전달하므로, 여러 타임스텝에 걸쳐 발생하는 수치적 소산(numerical dissipation) 및 오차 누적을 근본적으로 방지합니다. '경로 적분기 항'은 매핑만으로는 포착할 수 없는 경로상의 물리적 효과(압력, 점성, 소스 항 등)를 누적하여 보정하는 역할을 합니다. 이 두 가지를 결합함으로써 장시간에 걸쳐 정확한 그래디언트를 계산할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4.3 Long-short Time-sparse EFM (장단기 시간 희소 EFM)

유동 맵 순방향 과정을 직접 미분하는 것은 몇 가지 어려움을 야기합니다. 오일러리안 유동 맵(EFM) Deng/2023/NeuralFlowMaps입자 유동 맵(PFM) Zhou/2024/ParticleFlowMaps을 포함한 기존의 유동 맵 방법들은 계산 비용과 메모리 소비 측면에서 집약적입니다. 순방향 과정을 미분하려면 중간 상태들을 위한 추가적인 저장이 필요하며, 3~5배에 달하는 역방향 패스 계산은 시간 및 메모리 오버헤드를 더욱 악화시킵니다. 그러나 미분 가능한 시뮬레이션은 최적화 과정에서 반복적인 실행이 필요하므로 시간 효율성이 매우 중요합니다. EFM에서의 비용이 많이 드는 $O(m^2)$ 유동 맵 진화를 피하기 위해, 우리는 순방향 수식 8과 역방향 수식 9 계산 모두에 시간 희소 EFM Sun/2025/TimeSparseEFM을 채택합니다. 이 접근법에서는 장거리 매핑이 재초기화 단계에서만 적용되고, 중간 단계에서는 이류를 위해 반-라그랑지안 방법을 사용하며 동시에 나중에 재초기화 단계에서 유동 맵 계산에 사용될 경로 적분을 누적합니다.

시간 희소 EFM의 핵심 아이디어는 각 재초기화 간격 내에서 반-라그랑지안 이류로 인한 오차 누적을 허용한 다음, 이전 재초기화로부터의 더 정확한 장거리 매핑된 속도를 사용하여 재초기화 단계에서 이를 보정하는 것입니다. Fig. 15 (오른쪽)에서 볼 수 있듯이, 시간 희소 EFM긴 시간 스케일에 걸쳐 와류를 보존하지만, 에너지 곡선은 재초기화 단계 사이에 명확한 감쇠와 함께 톱니 패턴을 보입니다. 이는 선택된 프레임만 렌더링되는 컴퓨터 그래픽스의 시각 효과에서는 수용 가능합니다. 재초기화 간격을 프레임 출력 간격과 일치시킴으로써 시각적 결과는 영향을 받지 않습니다. 그러나 역방향 패스에서의 어드조인트 계산에서는 이것이 주요한 문제를 야기합니다. 시각 효과와 달리, 모든 단계에서의 속도 $u$는 수식 4의 $\nabla u^\top u^$ 항을 통해 어드조인트 $u^$에 명시적으로 기여합니다. 중간 단계에서의 오차는 경로 적분 $\Lambda_{r\to t}$를 통해 누적되어 $u^$의 정확도를 현저하게 저하시킵니다. 이는 Fig. 15에 나타난 도약 와류 예제의 어드조인트 필드에서 눈에 띄는 아티팩트로 입증됩니다.

이 문제를 해결하기 위해, 우리는 기존 시간 희소 EFM개선된 버전장단기 시간 희소 EFM을 제안합니다. 우리는 시간 희소 EFM이 장거리 유동 맵을 사용하여 긴 시간적 거리에 걸쳐 정확도를 유지하지만, 짧은 거리에서는 상당한 오차를 겪는다는 것을 관찰했습니다. 이를 해결하기 위해, 우리는 재초기화 단계 사이에 희소한 단거리 유동 맵을 도입하여 지역적 정확도를 향상시킵니다. 우리는 이 방식을 장단기 시간 희소 EFM이라고 부릅니다. 이 방식은 순방향 시뮬레이션과 역방향 어드조인트 계산 모두에 사용됩니다. 여기서는 역방향 패스를 예로 들어 설명하겠습니다. 순방향 패스를 위한 방법은 유사하며 보충 자료 섹션 A의 알고리즘 3에 제시되어 있습니다.

우리는 장거리 유동 맵을 매 $\Delta t^l_{\text{reinit}} = n_l \Delta t$마다, 단거리 유동 맵을 매 $\Delta t^s_{\text{reinit}} = n_s \Delta t$마다 재초기화하며, 일반적으로 $n_l= 15 \sim 60$ 그리고 $n_s= 1 \sim 3$으로 설정합니다. 알고리즘 1에서는 이전 장거리 재초기화 시간 $r'$에서 시작하는 하나의 장거리 재초기화 주기를 설명합니다. $r''$을 가장 최근의 단거리 재초기화 시간이라 하고, $r'' = r'$으로 초기화합니다. 우리는 두 세트의 유동 맵, 즉 장거리용 $\Psi^l_{r'\to t}, T^l_{r'\to t}, \Phi^l_{t_c\to t}, F^l_{t_c\to t}$와 단거리용 $\Psi^s_{r''\to t}, T^s_{r''\to t}, \Phi^s_{t_c\to t}, F^s_{t_c\to t}$를 유지하고, 또한 두 개의 경로 적분자, 즉 장거리용 $\Lambda_{u,l}^{r'\to t}, \Lambda_{\xi,l}^{r'\to t}$와 단거리용 $\Lambda_{u,s}^{r''\to t}, \Lambda_{\xi,s}^{r''\to t}$를 각각 유지합니다. 여기서 $t_c < r'$는 현재 시간이고 $t$는 적분 동안 진화하는 시간 변수 역할을 합니다.

알고리즘 1에서 파란색으로 강조된 부분은 시간 희소 EFM과 비교하여 장단기 시간 희소 EFM에 의해 추가된 구성 요소들을 나타내며, 이는 Fig. 6 (c)(d)의 파란색 선에 해당합니다. 우리 방법은 유동 맵 진화의 $O(m)$ 시간 복잡도를 유지하며, 진화 단계 수에서 일회성 오버헤드만 추가됩니다. 기존의 시간 희소 EFM에서와 같이, 우리는 큰 시간 간격에 걸쳐 정확도를 유지하기 위해 장거리 유동 맵을 사용하며, 단거리 유동 맵은 희소한 장거리 업데이트 사이의 정확도를 보장하여 부정확한 중간 속도로 인한 $u^$의 오차 누적을 방지합니다.

쪽집게 과외

알고리즘

flowchart TD classDef warn fill:#FFD3C2 classDef sub fill:#CCEFFF classDef core fill:#FFDBE6 classDef pros fill:#D0F1B9 subgraph 기존 방법의 한계 A[EFM/PFM] --> B["O(m^2) 계산 비용
높은 메모리 사용량"]; B:::warn; end subgraph 개선 시도와 새로운 문제 A --> C[Time-Sparse EFM]; C --> D["계산 비용 O(m)으로 감소"]; D:::pros; C --> E["중간 단계 정확도 저하
(Adjoint 계산에 치명적)"]; E:::warn; end subgraph 제안 방법 C --> F[Long-Short Time-Sparse EFM]; F:::core; F --> G["단거리 Flow Map 추가
중간 단계 정확도 확보"]; G:::pros; F --> H["계산 비용 O(m) 유지"]; H:::pros; end

핵심 콕콕

• 기존 유동 맵 방법(EFM, PFM)은 미분 시뮬레이션에 사용하기에는 계산 비용($O(m^2)$)과 메모리 부담이 너무 큽니다.
• 이를 개선한 '시간 희소 EFM'은 비용을 $O(m)$으로 줄였지만, 중간 단계에서 오차가 누적되어 어드조인트(Adjoint) 계산의 정확도를 심각하게 떨어뜨리는 문제가 있습니다.
• 본 논문이 제안하는 '장단기 시간 희소 EFM'은 장거리 보정 사이에 단거리 유동 맵을 추가하여 중간 단계의 정확도를 높입니다.
• 이 방법은 시간 복잡도 $O(m)$을 유지하면서도 어드조인트 계산에 필요한 높은 정확도를 달성하는 핵심적인 개선책입니다.

함정 주의

'시간 희소 EFM'과 '장단기 시간 희소 EFM'을 혼동하지 마세요.

- 시간 희소 EFM: 계산 비용을 줄이기 위해 유동 맵 보정을 드문드문(희소하게) 수행하는 기존 방식입니다. 속도는 빠르지만 보정 사이의 구간에서 오차가 누적됩니다.
- 장단기 시간 희소 EFM: 본 논문이 제안하는 개선된 방식입니다. 드문드문 수행하는 '장거리' 보정은 그대로 두면서, 그 사이사이에 '단거리' 보정을 추가하여 중간 단계의 정확도를 확보한 것입니다. 즉, 시간 희소 EFM의 단점을 보완한 버전입니다.

구현 힌트

Long-Short Time-Sparse EFM을 구현할 때는 두 종류의 재초기화 주기를 설정해야 합니다.

1. 장거리(Long-range) 주기 ($n_l$): 논문에서는 15~60 스텝마다 한 번씩 설정합니다. 이는 전체적인 흐름이 크게 어긋나지 않도록 잡아주는 역할을 합니다.
2. 단거리(Short-range) 주기 ($n_s$): 1~3 스텝마다 한 번씩으로 매우 짧게 설정합니다. 이는 각 스텝 사이의 오차 누적을 막아 지역적인 정확도를 높이는 역할을 합니다.

구현 시, 두 세트의 유동 맵과 경로 적분자(path integrator)를 각각 장거리용과 단거리용으로 유지하고, 현재 스텝이 어떤 주기에 해당하는지에 따라 적절한 맵을 사용하고 업데이트하는 로직이 필요합니다.

쉬운 비유

장단기 시간 희소 EFMf>을 쉽게 비유해볼게요.

장거리 자동차 여행을 하는 내비게이션 시스템이라고 생각할 수 있습니다.

- 기존 EFM: 매 순간마다 GPS 위성과 통신하며 내 위치를 확인하는 것과 같습니다. 매우 정확하지만, 통신 비용(계산 비용)이 엄청나게 비쌉니다.

- 시간 희소 EFM: 1시간에 한 번씩만 GPS로 큰 경로를 확인하고, 그 사이에는 자동차의 속도계와 핸들 방향만으로 위치를 추측하며 운전하는 것과 같습니다. 비용은 저렴하지만, 1시간 동안 자잘한 오차가 쌓여 경로를 약간 벗어날 수 있습니다.

- 장단기 시간 희소 EFM (제안 방법): 1시간에 한 번씩 GPS로 큰 경로를 확인하는(장거리) 것은 동일합니다. 하지만 추가로 1분에 한 번씩 도로 표지판을 보며(단거리) 내 위치를 보정합니다. 이렇게 하면 큰 비용 없이도 거의 정확한 경로를 유지할 수 있습니다.

셀프 테스트

[O/X]

정답 보기

'시간 희소 EFM'은 중간 단계의 오차 누적 문제 때문에 정확한 어드조인트(Adjoint) 계산에 적합하지 않다.
정답: O
해설: 시간 희소 EFM은 재초기화 단계 사이에서 반-라그랑지안 이류를 사용하므로 오차가 누적됩니다. 이는 시각 효과에서는 문제가 덜하지만, 모든 시간 단계의 정보가 중요한 어드조인트 계산에서는 정확도를 크게 저하시킵니다.

[빈칸]

정답 보기

제안하는 '장단기 시간 희소 EFM'은 기존의 장거리 유동 맵에 희소한 ___ 유동 맵을 추가하여 지역적 정확도를 개선한다.
정답: 단거리 (short-range)
해설: 이 방법의 핵심은 장거리 보정의 효율성을 유지하면서 단거리 보정을 추가하여 중간 단계의 오차를 줄이는 것입니다.

[서술형]

정답 보기

'시간 희소 EFM'의 에너지 곡선이 톱니 모양을 보이는 이유는 무엇이며, 이것이 왜 시각 효과보다 어드조인트 계산에 더 치명적인가요?
모범답안: 톱니 모양은 재초기화 단계 사이에서 반-라그랑지안 방법으로 인한 수치적 소산(dissipation)으로 에너지가 감소하다가, 재초기화 시점에 장거리 매핑으로 에너지가 보정되기 때문에 발생합니다. 시각 효과에서는 최종 렌더링 프레임(주로 재초기화 시점)의 품질만 중요하므로 중간 과정의 에너지 감소가 눈에 띄지 않을 수 있습니다. 하지만 어드조인트 계산은 모든 중간 시간 단계의 속도 구배($\nabla u$)를 적분하여 그래디언트를 구합니다. 따라서 중간 단계의 부정확한 속도(에너지 감소로 표현되는)는 경로 적분($\Lambda$)을 통해 오차를 계속 누적시켜 최종 그래디언트의 정확성을 심각하게 훼손합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
5. Numerical Algorithm (수치 알고리즘)

저희는 격자 간격이 $Δx$인 격자 $G$를 사용하며, 여기서 $x_g$는 격자점 $g \in G$의 위치를 나타냅니다. 격자점 $g$에서의 필드 값은 아래 첨자 $g$로 표기합니다. 고정된 시간 간격 $Δt$에 대해, $i= 0, . . . ,n$에 대해 $t_i= iΔt$로 정의하며, 여기서 $t_0 = s$이고 $t_n= r$입니다. 저희의 전체 알고리즘은 물리량을 계산하기 위한 순방향 패스와 그 adjoint를 계산하기 위한 역방향 패스로 구성됩니다. 알고리즘 2는 역방향 패스를 보여주며, 순방향 패스는 보충 자료 섹션 C의 알고리즘 4에 제시되어 있습니다. 이는 순방향 패스 계산이 이 논문의 주요 초점이 아니기 때문입니다.

보간. 매핑을 계산하기 위해, 지지 반경이 $1.5Δx$인 2차 커널을 사용하여 매핑된 필드를 보간합니다. 예를 들어, $u∗M_{r′→t_c}(x) = F_{t_c→r′}(x)u∗(Φ_{t_c→r′}(x),r′)$의 계산은 다음과 같이 주어집니다:

Eq. 16: 매핑된 Adjoint 속도 보간$$u∗M_{r′→t_c,g}= F_{t_c→r′,g} \sum_{g′ \in N(Φ_{t_c→r′,g})} u∗_{r′,g′}w(x_{g′} −Φ_{t_c→r′,g}),$$이 수식은 특정 시점 $t_c$에서 격자점 $g$의 매핑된 adjoint 속도 $u∗M$를 계산하는 보간 방법을 보여줍니다. 이는 이전 시점 $r'$의 adjoint 속도 $u∗$를 유동 맵 $Φ$를 통해 현재 위치로 가져온 후, 야코비안 $F$를 곱하고 주변 격자점 $g'$들의 값을 가중치 함수 $w$를 사용하여 합산함으로써 계산됩니다.

여기서 $N(Φ_{t_c→r′,g}) = \{g′ | w(x_{g′} −Φ_{t_c→r′,g}) > 0\}$는 $Φ_{t_c→r′,g}$에 인접한 격자점들의 집합을 나타냅니다.

중간점 속도. Deng/2023b/Fluid Simulation on Neural Flow Maps를 따라, 유동 맵과 그 야코비안 $F$와 $T$는 4차 룽게-쿠타 방법을 사용하여 이류되어 수식 5와 수식 7을 각각 풉니다. 중간점 속도 $u^{mid}_r$은 Deng/2023b/Fluid Simulation on Neural Flow Maps의 알고리즘 2에 따라 속도장을 시간 간격의 절반만큼 전진시켜 계산됩니다. 이러한 중간점 속도들은 유동 맵을 전개하고 수식 9를 푸는 역방향 패스 동안에도 필요하기 때문에, 중복 계산을 피하기 위해 각 단계에서 저장합니다. 계산 그래프에 모든 중간 속도를 유지해야 하는 자동 미분 방법들과 달리, 저희 방법은 GPU를 사용하지 않고 디스크나 메모리에 저장할 수 있습니다.

매핑을 위한 BFECC. 저희가 전개하는 유동 맵은 양방향이므로, Deng/2023b/Fluid Simulation on Neural Flow MapsSun/2025/Time-Sparse Eulerian Flow Maps를 따라 유동 맵을 사용하는 매핑 과정 동안 BFECC(back and forth error compensation and correction)를 적용합니다. adjoint 속도 $u∗_{r′→t_c}(x) = F_{t_c→r′}(x)u∗(Φ_{t_c→r′}(x),r′)$의 매핑을 예로 들면, BFECC 절차는 다음과 같습니다:

Eq. 17: BFECC 절차$$\begin{aligned} u∗(1)_{r′→t_c}(x) &= F_{t_c→r′}(x)u∗(Φ_{t_c→r′}(x),r′), \\ u∗(2)_{t_c→r′}(x) &= T_{r′→t_c}(x)u∗(1)_{r′→t_c}(Ψ_{r′→t_c}(x)), \\ u∗_{r′→t_c}(x) &= u∗(1)_{r′→t_c}(x) + \frac{1}{2} F_{t_c→r′}(x)(u∗_{r′} −u∗(2)_{t_c→r′})(Φ_{t_c→r′}(x)), \end{aligned}$$이 수식은 BFECC를 이용한 오차 보정 과정을 보여줍니다. 먼저 초기 매핑($u∗(1)$)을 수행하고, 그 결과를 다시 원래 시간으로 매핑($u∗(2)$)합니다. 초기값($u∗_{r'}$)과 되돌아온 값($u∗(2)$)의 차이를 오차로 간주하여, 초기 매핑 결과에 이 오차의 절반을 보정해 줌으로써 매핑의 정확도를 높입니다.

여기서 위첨자 (1)과 (2)는 BFECC 과정의 중간 단계를 나타냅니다. $F_{t_c→r′}(x)Λ^u_{r′→t_c}(Φ_{t_c→r′}(x))$와 같이 계산에 유동 맵을 사용하는 다른 항들도 유사하게 이 전략을 사용하여 계산됩니다.

압력 투영. 2D 시뮬레이션의 경우, Deng/2023b/Fluid Simulation on Neural Flow MapsZhou/2024/Particle Flow Map에서와 같이 다중격자 사전조건자 켤레 기울기 솔버(MG-PCG)를 사용하여 푸아송 방정식을 풉니다. 3D 시뮬레이션의 경우, 계산 효율성을 높이기 위해 Sun/2025/Time-Sparse Eulerian Flow Maps에서 사용된 것과 같은 빠른 행렬 없는 대수적 다중격자 사전조건자 켤레 기울기(AMGPCG) 솔버를 채택합니다.

도함수 계산. 격자 상에서, 저희는 2차 유한 차분 기법을 사용하여 점성 항을 다음과 같이 계산합니다.

Eq. 18: 점성 항 계산$$[νΔu]_g= ν \sum_{g′ \in N_g} (u′_g −u_g)/(|N_g|Δx^2),$$이 수식은 격자점 $g$에서의 점성 항을 계산하는 2차 유한 차분법을 보여줍니다. 이는 중심점 $g$의 속도 $u_g$와 인접점 $g'$의 속도 $u'_{g}$의 차이를 이용하여 라플라시안 연산자 $Δu$를 근사하는 방식입니다. $N_g$는 인접점의 집합입니다.

여기서 $N_g$는 $g$의 인접 격자점을 나타내며, 2D에서는 $|N_g| = 4$, 3D에서는 $|N_g| = 6$입니다. 수식 10과 수식 12의 결합 항 $∇u^⊤u∗$와 $ξ∗∇ξ$에 대해서는, 3차 커널 기반 보간법을 사용하여 다음과 같이 계산합니다.

Eq. 19: 결합 항 계산$$[∇ζ]_g= \sum_{g′ \in N_{w3_g}} ζ_g∇_{x_g}w3(x_g−x_{g′}),$$이 수식은 필드 $ζ$(속도 $u$ 또는 스칼라장 $ξ$)의 그래디언트를 계산하는 3차 커널 기반 보간법을 나타냅니다. 격자점 $g$에서의 그래디언트는 주변 격자점 $g'$에 위치한 필드 값 $ζ_g$와 3차 커널 함수 $w3$의 그래디언트의 곱을 합산하여 구합니다.

여기서 $ζ$는 필드(u 또는 $ξ$)이고, $w3$는 지지 반경이 $2Δx$인 컴팩트 지지를 갖는 3차 커널입니다. 이웃 집합 $N_{w3_g} = \{g′ | w3(x_{g′} −x_g) > 0\}$는 $g$의 커널 지지 내에 있는 격자점들을 포함합니다. $∇u^⊤u∗$를 계산할 때, $u∗$와의 일관성을 위해 $∇u^⊤u∗$에 사용되는 $u$는 $u∗$와 함께 역방향으로 계산됩니다.

6. Results And Discussion (결과 및 논의)

이 섹션에서는 먼저, adjoint 속도가 해석적 해를 갖는 특정 유동장과 목적 함수에 대해 저희 방법의 정확성을 검증합니다. 그런 다음 세 가지 대표적인 과제, 즉 비디오로부터 와류 동역학 추론, 와류 제어, 연기 제어에 대해 저희 접근법을 시연합니다. 이러한 과제들을 위해, 저희는 이전의 미분 가능 솔버들과 저희 방법을 비교하여 양적 및 질적 개선 사항을 모두 강조합니다. 각 과제에 대해, 실험별 최적화 매개변수와 함께 목적 함수 적분 대상 $J$(수식 3 참조)를 제시할 것입니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef sub fill:#CCEFFF; classDef idea fill:#E8D2E5; classDef pros fill:#D0F1B9; classDef warn fill:#FFD3C2; classDef ref fill:#EBEBEC; classDef def fill:#FEEEB5; subgraph 역방향 패스 (Backward Pass) 한 스텝 A[중간점 속도 로드] --> B[유동 맵 한 스텝 전진]; B --> C{단기 재초기화 스텝인가? (t_c mod n_s == 0)}; C -- Yes --> D[순방향 맵 Φ, F 계산]; D --> E[매핑 & 변환 수행 (Eq. 10)]; E --> F[단기 유동 맵 재설정]; C -- No --> G[세미-라그랑지안 이류]; F --> H[소스항 계산 및 투영]; G --> H; H --> I[경로 적분자 Λ 업데이트]; I --> J{장기 재초기화 스텝인가? (t_c mod n_l == 0)}; J -- Yes --> K[장기 순방향 맵 Φ, F 계산]; K --> L[장기 매핑으로 결과 보정 (Eq. 9)]; L --> M[다음 스텝]; J -- No --> M; end D:::idea E:::core G:::sub L:::core

핵심 콕콕

• 알고리즘의 정확성과 효율성을 위해 2차/3차 커널 보간, 4차 룽게-쿠타, BFECC, MGPCG/AMGPCG 등 다양한 수치 기법을 조합하여 사용합니다.
• 자동 미분 방식과 달리, 중간 계산 결과를 GPU 없이 디스크나 메모리에 저장할 수 있어 메모리 효율성이 높습니다.
• 제안하는 Long-Short Time-Sparse EFM의 효과를 검증하기 위해, 기존 Time-Sparse EFM과 비교하는 절제 연구(ablation study)를 수행했습니다.
• 와류 동역학 추론, 와류 제어, 연기 제어 등 다양한 응용 과제에서 기존 미분 가능 솔버들보다 우수한 성능을 보임을 입증했습니다.

함정 주의

Time-Sparse EFM과 Long-Short Time-Sparse EFM을 혼동하지 마세요.
기존 Time-Sparse EFM은 긴 시간 간격(reinit)에서만 정확한 유동 맵을 계산하고 그 사이는 부정확한 세미-라그랑지안 이류를 사용합니다. 이는 순방향 시뮬레이션의 특정 프레임 렌더링에는 충분할 수 있지만, 역방향 adjoint 계산 시에는 중간 단계의 오차가 경로 적분(path integral)을 통해 누적되어 최종 그래디언트의 정확도를 심각하게 저하시킵니다. 반면, Long-Short Time-Sparse EFM은 긴 간격 사이에 짧은 간격의 유동 맵을 추가로 계산하여 중간 단계의 정확도를 보정해주므로, 정확한 adjoint 계산이 가능합니다.

구현 힌트

역방향 패스(backward pass)에서 유동 맵을 전개하려면 순방향 패스(forward pass)에서 계산했던 중간점 속도(midpoint velocity)가 필요합니다. 매번 재계산하는 것은 비효율적이므로, 순방향 패스를 실행할 때 모든 중간점 속도를 디스크나 메모리에 미리 저장해두고 역방향 패스에서 불러와 사용하면 계산 시간을 크게 단축할 수 있습니다. 이는 자동 미분 라이브러리의 계산 그래프에 얽매이지 않는 본 방법의 장점 중 하나입니다.

쉬운 비유

BFECC (Back and Forth Error Compensation and Correction)f>를 쉽게 비유해볼게요.

- 양궁 선수가 과녁을 맞추는 것과 같아요.
1. **첫 발사 (Forward Map)**: 선수가 과녁 중앙을 조준하고 화살을 쏩니다. 화살은 바람 등의 영향으로 약간 빗나가 과녁의 다른 지점에 맞습니다. (이것이 `u*(1)` 계산입니다.)
2. **역추적 (Backward Map)**: 이제 화살이 맞은 지점에서 '만약 바람이 반대로 불었다면 어디서 출발했을까?'를 역으로 계산해봅니다. 이상적으로는 원래 활을 쏜 위치로 돌아와야 하지만, 계산 오차 때문에 약간 다른 출발점을 가리킵니다. (이것이 `u*(2)` 계산입니다.)
3. **오차 보정 (Correction)**: 원래 출발점과 역추적된 출발점의 차이가 바로 '오차'입니다. 선수는 이 오차의 절반만큼 조준을 수정하여 다음 화살을 쏩니다. 이렇게 하면 훨씬 더 정확하게 과녁 중앙에 맞출 수 있습니다. (이것이 최종 `u*` 계산입니다.)

BFECC는 이처럼 앞으로 갔다가(forth) 뒤로 돌아와서(back) 발생한 오차를 측정하고 보정(correction)하여 매핑의 정확도를 높이는 기법입니다.

셀프 테스트

[O/X] 본 논문에서 제안한 수치 알고리즘은 자동 미분(autodiff) 방식과 마찬가지로, 모든 중간 단계의 속도 값을 계산 그래프 유지를 위해 GPU 메모리에 저장해야 한다.

정답 보기

정답: X
해설: 본문에서는 자동 미분 방식과 달리 제안하는 방법은 중간점 속도를 GPU 없이 디스크나 일반 메모리에 저장했다가 역방향 패스에서 불러와 사용할 수 있다고 명시하고 있습니다. 이는 메모리 사용량 측면에서 큰 장점입니다.

[빈칸] 3D 시뮬레이션에서 푸아송 방정식을 효율적으로 풀기 위해, 행렬을 직접 만들지 않는 빠른 ___ 솔버를 사용한다.

정답 보기

정답: AMGPCG (대수적 다중격자 사전조건자 켤레 기울기)
해설: 본문에서는 2D에서는 MGPCG를, 3D에서는 계산 효율성을 높이기 위해 더 빠른 matrix-free AMGPCG 솔버를 채택했다고 설명합니다.

[서술형] 기존의 Time-Sparse EFM이 순방향 시뮬레이션에서는 시각적으로 괜찮은 결과를 보였음에도 불구하고, 왜 adjoint 계산에서는 부정확한 결과를 초래했는지 그 원인을 설명하시오.

정답 보기

모범답안: Time-Sparse EFM은 재초기화(reinit) 단계 사이의 중간 프레임들에서 정확도가 낮은 세미-라그랑지안 이류를 사용합니다. 순방향 시뮬레이션에서는 렌더링되는 특정 프레임(주로 재초기화 시점)의 정확도만 중요하므로 시각적 품질 저하가 적습니다. 하지만 adjoint 계산에서는 모든 시간 단계의 속도장 u가 ∇u⊤u∗ 항을 통해 adjoint 속도 u∗에 영향을 미칩니다. 중간 단계의 작은 오차들이 경로 적분(path integrator)을 통해 계속 누적되어, 최종적으로 계산되는 그래디언트의 정확성을 심각하게 훼손하기 때문입니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
6. Results And Discussion (결과 및 논의)

이 섹션에서는 먼저, 어드조인트 속도에 대한 해석적 해가 존재하는 특정 유동장과 목적 함수에 대해 우리 방법의 정확성을 검증합니다. 그 다음으로, 비디오로부터 와류 동역학 추론, 와류 제어, 연기 제어라는 세 가지 대표적인 과제에 우리 접근법을 시연합니다. 이 과제들에서 우리는 이전의 미분 가능 솔버들과 우리 방법을 비교하여 양적 및 질적 개선점을 모두 강조합니다. 각 과제에 대해, 실험별 최적화 파라미터와 함께 목적 함수 피적분 함수 $J$(수식 3 참조)를 제시할 것입니다.

검증 및 절제 테스트(Validation & Ablation Test). 먼저, 어드조인트 계산의 정확성을 위해 어드조인트가 알려진 경우에 대해 검증합니다: 강체 벽이 있는 비압축성 유동에 대해 $J= \frac{1}{2}\delta(t−r)∥u∥^2$를 선택하면 $u∗_t= u_t$ ($r≥t≥s$)가 되어 직접적인 속도 확인이 가능합니다. 모든 실험에서, 우리는 시뮬레이션을 100-500 스텝 동안 실행하고 200-800회의 최적화 반복을 수행했습니다. 그림 15는 단일 와류와 도약 와류(leapfrog vortices)에 대한 우리 결과의 정확성을 확인시켜 주며, 또한 Time-Sparse EFM만 사용하는 것은 큰 오차를 유발함을 보여주어 우리의 Long-Short Time-Sparse EFM의 필요성을 강조합니다. 3D 도약(3D leapfrog). 그림 16은 표준 자동 미분(autodiff)이 실패하는 사례인 3차원 도약 와류 링에 대한 우리의 어드조인트 계산을 확인시켜 줍니다. 이는 또한 순방향 또는 역방향 패스에 semi-Lagrangian 방법을 사용하면 부정확한 결과를 낳는다는 것을 보여줍니다. 다음으로, 알려진 해석적 유동을 통해 최적화 능력을 검증합니다. 점성 계수 추론(Viscosity Coefficient Inferring). 영역 $[0, 2\pi]^2$에서 나비에-스토크스 방정식은 테일러-그린 와류 $u = (\cos{x}\sin{y}, −\sin{x}\cos{y})e^{−2\nu t}$를 해로 가집니다. $800\Delta t$에서의 해석적 속도를 목표 $u_{target}$로 사용하고 점성 $\nu$를 최적화 파라미터로 취급하여, 그림 14에서 보여주듯이 $J= \frac{1}{2} \delta(t−r) (∥u_{target}∥^2 −∥u∥^2)$를 최소화함으로써 점성을 추론합니다.

예제. (1) 비디오로부터 와류 동역학 추론(Vortex Dynamics Inference from Videos). 이 과제는 유체 움직임의 단일 RGB 비디오(합성 또는 실제)로부터 16개의 와류로 표현되는 초기 속도장을 추론합니다 (Deng/2023/Learning Vortex Dynamics). 최적화 변수는 $(c_{x,i}, c_{y,i}, w_i, r_i), i= 1, ..., 16$이며, 이는 각 와류의 위치, 강도, 그리고 반경을 각각 나타냅니다. 목적 함수는 시뮬레이션된 프레임 $\xi_i$와 목표 비디오 프레임 $\xi_{i,gt}$ 간의 차이를 최소화합니다: $J= \frac{1}{2} \sum_k \sum_{i=1}^3 \delta(t−t_k)|\xi_i(x,t) −\xi_{i,gt}(x,t)|^2$. 여기서 $\xi_i, i= 1, 2, 3$은 R, G, B 채널에 대한 수동장(passive fields)을 나타내고, $t_k$는 $k$번째 프레임에 해당하는 시간을 나타냅니다. 최적화는 16개의 무작위로 배치된 와류로 초기화되며, RGB 비디오가 최적화 과정의 유일한 입력입니다. 우리는 왜곡된 2D 로고와 2D 그라데이션 배경(그림 2) 예제, 그리고 2D 세 개의 실린더와 2D 나뭇잎 장애물(그림 3)과 같은 장애물이 있는 더 복잡한 시나리오에서 초기 와도장을 추론하는 몇 가지 아름다운 결과들을 보여줍니다. 이 모든 것은 여러 장애물과 실제 환경을 포함한 복잡한 환경에서 우리 방법의 견고함과 일반성을 보여줍니다. 이 과제는 강력한 와류 보존을 요구하며, 이는 미분 가능한 플로우 맵을 사용해야만 달성할 수 있습니다.

(2) 2D 와류 제어(2D Vortex Control). 이 과제는 1-2개의 제어되는 와류의 초기 위치 $c^{ctrl}_{j,init}$를 최적화하여, 와류 상호작용을 통해 다른 와류들의 위치 $c_i(t)$를 목표 위치 $c^{target}_i$로 유도하는 것입니다. 손실은 $J= \sum_i \delta(t−r)∥c_i(t) −c^{target}_i∥^2_2$로 정의되며, 여기서 $c_i$는 와류 위치를, $c^{target}_i$는 목표 위치를 나타냅니다. $c_i$는 와류 상호작용과 초기 위치에 의존하는 $u_t$에 의해 구동되므로, 함수 $J$는 수식 3에서처럼 $u_t$의 함수로 볼 수 있으며 $c^{ctrl}_{j,init}$에 대해 최적화됩니다. 와류 제어는 와류 구조를 보존하는 것에 의존하기 때문에, 플로우 맵은 이 과제에 특히 적합합니다. 우리는 단일 와류 사례(그림 12), 다중 와류 단일 목표 사례, 그리고 다중 와류 다중 목표 사례(그림 13)의 시나리오를 제시합니다. 난이도가 점차 증가하는 이 예제들은 와류 구조를 보존하고 복잡한 시나리오에서 최적화를 위해 정확한 그래디언트를 계산하는 우리 방법의 능력을 보여줍니다.

(3) 2D 연기 제어(2D Smoke Control). 이 과제는 시간에 따라 변하는 제어력 $f$를 최적화하여 유체에 영향을 주고 연기를 목표 형태로 변형시키는 것입니다 (Chen/2024/Fluid Control; Treuille/2003/Fluid Control). 힘은 중심 $c_i$와 강도 벡터 $w_i$를 파라미터로 가지는 $m(m∼3000)$개의 가우시안 바람장 $f_i= w_i e^{−a∥x−c_i∥^2}$을 사용하여 모델링됩니다, $i= 1, ..,m$ (Treuille/2003/Fluid Control). 목적 함수 피적분 함수는 $J= \sum_{k \in K} \delta(t−t_k)|\xi(x,t) −\xi_{target}(x,t)|^2$이며, 여기서 $t_k$는 $k$번째 키 프레임의 시간을 나타냅니다. 우리는 2D GRAPH 형성 예제(그림 5a), 2D 생명체 진화 예제(그림 5b), 그리고 장애물이 있는 상황에서의 최적화를 포함하는 2D 박쥐 장애물 통과 예제(그림 10)를 통해 연속적인 키프레임 최적화를 선보입니다. 정확한 형태 제어유체의 사실성은 플로우 맵의 정확한 수동장 매핑강력한 이류 보존 덕분에 가능해졌습니다.

(4) 3D 연기 제어(3D Smoke Control). 우리는 위 과제를 3D 볼륨 설정으로 확장합니다. 우리는 다양한 해상도에 걸친 3D 구에서 아르마딜로로의 변형 비교(그림 8), 3D GRAPH에서의 연속적인 3D 형태 전환(그림 7), 그리고 3D 위상적 변형에서의 복잡한 위상 변화(그림 9)를 선보입니다. 이 예제들은 우리 방법이 3D에서도 정확성을 유지하여, 미세한 연기 가닥과 일관된 유동 구조의 보존을 가능하게 함을 보여줍니다.

비교(Comparison). 우리는 네 가지 실험에서 우리 어드조인트 방법의 효과를 입증하고 이를 기준 방법들과 비교합니다.

쪽집게 과외

핵심 콕콕

• 제안된 방법은 해석적 해가 있는 문제에서 정확성이 검증되었으며, 기존 방법(semi-Lagrangian, autodiff)이 실패하는 복잡한 3D 와류 문제도 정확히 계산합니다.
• 'Long-Short Time-Sparse EFM' 기법은 기존 'Time-Sparse EFM'의 단점인 중간 단계의 오차 누적 문제를 해결하여 어드조인트 계산의 정확도를 크게 향상시켰습니다.
• 와류 보존 능력이 뛰어나 '와류 동역학 추론' 및 '와류 제어'와 같이 높은 정확도를 요구하는 작업에서 기존 방법들을 압도하는 성능을 보입니다.
• 2D 및 3D 연기 제어 작업에서도 미세한 디테일과 유체의 사실성을 보존하면서 복잡한 형태 변형을 성공적으로 수행합니다.

함정 주의

Time-Sparse EFM과 Long-Short Time-Sparse EFM을 혼동하지 마세요.
Time-Sparse EFM은 긴 시간 간격(reinit)의 시작점에서만 정확성을 보정하기 때문에, 그 사이 중간 단계에서는 오차가 누적될 수 있습니다. 반면, Long-Short Time-Sparse EFM은 긴 간격 사이에 짧은 간격의 플로우 맵 보정을 추가하여 중간 단계의 정확도까지 확보한 개선된 방식입니다. 이 차이 덕분에 어드조인트 계산의 정확도가 크게 향상됩니다.

쉬운 비유

어드조인트 방법(Adjoint Method)f>을 쉽게 비유해볼게요.
- 영화 되감기: 유체 시뮬레이션을 정방향으로 재생하는 것이 '영화 상영'이라면, 어드조인트 방법은 특정 장면(최종 결과)을 만든 원인(초기 조건)을 찾기 위해 영화를 '거꾸로 되감는' 것과 같아요. 되감으면서 각 배우(유체 입자)가 그 장면에 얼마나 기여했는지(그래디언트)를 역추적하는 거죠.
- 내비게이션 경로 재탐색: 목적지에 도착한 후(시뮬레이션 결과), 어떤 경로로 오는 것이 가장 효율적이었는지(최적의 파라미터)를 알기 위해 전체 경로를 거꾸로 되짚어보며 각 갈림길의 선택이 최종 도착 시간에 미친 영향을 분석하는 것과 비슷합니다.

셀프 테스트

[O/X] 본 논문에서 제안한 방법은 기존의 semi-Lagrangian 방법과 마찬가지로 와류(vortex) 구조를 장시간 보존하는 데 한계가 있다.

정답 보기

정답: X
해설: 제안된 방법의 핵심 장점은 플로우 맵을 사용하여 와류 구조를 매우 정확하게, 장시간 보존하는 것입니다. 이 특성 덕분에 와류 제어나 추론과 같은 어려운 작업에서 뛰어난 성능을 보입니다.

[빈칸] 기존 Time-Sparse EFM이 중간 단계에서 발생하는 오차 누적 문제를 해결하기 위해, 본 논문에서는 장기 재초기화(reinit) 단계 사이에 단기 플로우 맵을 추가하는 ___ 기법을 제안했다.

정답 보기

정답: Long-Short Time-Sparse EFM
해설: 이 기법은 장기적 정확성과 단기적 정확성을 모두 잡기 위한 핵심적인 개선 사항입니다.

[서술형] 본 논문의 방법이 '와류 제어' 과제에서 기존 미분 가능 솔버들보다 뛰어난 성능을 보이는 근본적인 이유는 무엇인가요?

정답 보기

모범답안: 근본적인 이유는 플로우 맵 기반의 시뮬레이션이 와류 구조를 거의 소산 없이 매우 정확하게 보존하기 때문입니다. 와류 제어는 와류 간의 미묘한 상호작용을 장시간에 걸쳐 정확히 예측해야 하는데, 기존의 semi-Lagrangian 기반 솔버들은 수치적 소산(numerical dissipation)으로 인해 와류가 빠르게 뭉개지거나 사라집니다. 따라서 와류 구조가 사라진 상태에서는 정확한 그래디언트를 계산하여 제어하는 것이 불가능하지만, 제안된 방법은 이 구조를 유지하므로 정밀한 제어가 가능합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
7. Conclusion And Future Work (결론 및 향후 연구)

본 논문은 미분 가능한 유동 시뮬레이션의 정확성과 적용 가능성을 향상시키기 위해 미분 가능한 유동 맵 방법을 제시합니다. 몇 가지 한계점은 여전히 남아있습니다. 저희는 제어력과 속도장에 초점을 맞추었으며, 형상 최적화고체 경계 문제는 다루지 않았습니다. 자유 표면을 가진 비압축성 유동의 미분은 아직 탐구가 필요한 부분입니다. 향후 연구에서는 Li/2024c/Neuralfluid와 같은 형상 기반 설계 과제를 탐구하고, 실제 연기 이미지를 목표로 형상 최적화를 수행하며, 준-뉴턴 방법을 넘어서는 더 발전된 최적화 알고리즘을 실험할 수 있습니다.

Acknowledgments (감사의 글)

저희는

쪽집게 과외

핵심 콕콕

• 이 연구는 미분 가능한 유동 맵 방법을 통해 유체 시뮬레이션의 정확도와 적용 범위를 넓혔습니다.
• 현재 방법의 한계점으로는 형상 최적화, 고체 경계, 자유 표면 문제 처리가 포함됩니다.
• 향후 연구 방향으로는 실제 이미지를 이용한 형상 최적화, 형상 기반 설계, 그리고 더 진보된 최적화 알고리즘의 적용 등이 있습니다.

셀프 테스트

[O/X] 이 논문에서 제안한 방법은 자유 표면(free surface)을 가진 유체 시뮬레이션의 형상 최적화 문제를 해결했다.

정답 보기

정답: X
해설: 본문은 형상 최적화와 자유 표면 문제는 다루지 않았으며, 향후 연구 과제로 남겨두었다고 명시하고 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
Figures And Tables

Fig 1: Adjoint 솔버를 사용하여 플로우맵 상에서 미분 가능한 유체 시뮬레이션을 시연합니다. 상단: 목표 실루엣 간의 부드러운 모핑을 보여주는 2D 유체 형상 최적화 시퀀스. 중간: 여러 키프레임을 사용하여 3D 글자가 "G"에서 "R", "A", "P", "H"로 모핑되도록 안내하는 3D 유체 제어. 하단: 관찰된 과거 이미지 시퀀스로부터 미래의 유동 진화를 예측하는 와류 동역학 추론 과제. 이 논문은 양방향 플로우맵에 기반한 미분 가능한 유체 시뮬레이션을 위한 새로운 Adjoint 솔버를 제시합니다. 우리의 핵심 관찰은 순방향 유체 솔버와 그에 상응하는 역방향 Adjoint 솔버가 순방향 시뮬레이션과 동일한 플로우맵을 공유한다는 것입니다. 순방향 패스에서 이 맵은 초기 프레임에서 현재 프레임으로 유체 임펄스 변수를 전달하여 와류 동역학을 시뮬레이션합니다. 역방향 패스에서 동일한 맵은 현재 프레임에서 초기 프레임으로 Adjoint 변수를 전파하여 그래디언트를 계산합니다. 이 공유된 장거리 맵은 그래디언트 계산의 정확도가 플로우맵 구성의 개선으로부터 직접적으로 혜택을 받도록 합니다. 이 통찰을 바탕으로, 우리는 플로우맵 상에서 직접 Adjoint 방정식을 푸는 새로운 Adjoint 솔버를 도입하여, 기존의 Adjoint 방법에서 요구되는 중간 수치 단계의 미분이나 중간 변수 저장 없이 비압축성 유동의 장거리 및 정확한 미분을 가능하게 합니다. 효율성을 더욱 향상시키기 위해, 우리는 Adjoint 변수를 진화시키기 위한 장-단기 시간-희소 플로우맵 표현을 제안합니다. 우리의 접근 방식은 메모리 사용량이 적어 192³ 해상도에서 6.53GB의 데이터만 필요로 하면서도 와도 추적에서 높은 정확도를 유지하여, 와류 동역학의 정밀한 식별, 예측 및 제어가 필요한 새로운 미분 가능 시뮬레이션 과제를 가능하게 합니다.

Fig 2: 속도장 비디오로부터 와류 동역학 추론. 처음 4초 동안의 훈련을 통해 8개의 무작위 와류를 추론하고, 확장된 12초 예측 동안 정확도를 유지합니다.

Fig 3: 장애물 간섭이 있는 와류 동역학. 제안된 방법은 와류-장애물 상호작용이 있는 와류를 성공적으로 추론하여, 기하학적 제약 조건 주변의 정확한 장기 유동 예측을 가능하게 합니다.

Fig 4: 방법 개요. (a)에서는 순방향과 역방향 패스 간의 대칭성을 보여줍니다. 순방향 패스는 역방향 플로우맵 Ψ를 사용하여 u를 매핑하고, 역방향 패스는 순방향 플로우맵 Φ를 사용하여 u*를 매핑합니다. Ψ와 Φ는 모두 유동 방향과 반대이며 정확도를 위해 반복적인 장거리 적분이 필요하여, 기존 EFM의 𝑂(𝑚²) 시간 복잡도를 야기합니다. 여기서 𝑚은 플로우맵 길이입니다. (b)에서는 우리의 방법을 다른 미분 가능 접근법과 비교합니다. 낮은 정확도 때문에 기존 방법들은 F → ˆF 근사(파선 단방향 화살표)와 ˆF 직접 미분(파선 양방향 화살표)을 통해 B → ˆB(반투명 단방향 화살표)를 간접적으로 근사합니다. ˆB가 ˆF와 일관되더라도 B → ˆB는 부정확합니다. 반면, 우리 방법은 F와 B 사이의 엄격한 대응 관계를 활용합니다. 우리는 각각 F → ˆF와 B → ˆB의 정확한 근사를 구성하기만 하면(파선 양방향 화살표), ˆF와 ˆB 사이의 일관성은 플로우맵의 더 높은 정확도 덕분에 전이성을 통해 자연스럽게 따라옵니다(반투명 파선 양방향 화살표).

Fig 5: 2D 순차 최적화. 글자 모핑('G'→'R'→'A'→'P'→'H')과 생명체 진화를 포함한 2D 모핑 과제 시퀀스로, 목표 실루엣 간의 부드러운 전환을 보여줍니다. 각 행은 두 개의 연속된 키프레임 사이의 점진적인 변환을 보여주며, 목표 형상은 왼쪽에 표시됩니다.

Fig 6: 여러 방법에서의 장거리 플로우맵 진화 그림. 𝑚을 재초기화 간격이라고 할 때, 보통 𝑚= 15~60입니다. (a) EFM은 매 시간 단계마다 이전 재초기화 시간으로 반복적으로 되돌아가 Ψ𝑡→𝑠′를 계산합니다. 그림에서 각 곡선이 교차하는 단계의 수는 각 플로우맵 진화에 필요한 단계 수를 나타내며, 총 비용은 𝑂(𝑚²)이 됩니다. (b) 시간-희소 EFM은 재초기화 단계에서만 Ψ𝑡→𝑠′를 계산하여 비용을 𝑂(𝑚)으로 줄입니다. (c)(d) 우리의 개선된 시간-희소 EFM은 재초기화 단계 사이에 더 짧은 중간 플로우맵을 도입하여 중간 시간에서의 정확도를 향상시키면서도 전체 비용을 𝑂(𝑚)으로 유지합니다. 구체적으로 (b)에 비해 플로우맵 단계 수를 두 배로 늘립니다.

Fig 7: 3D 순차 최적화. 여러 키프레임을 사용하여 3D 유체 제어를 수행하여 "G"에서 "R", "A", "P", "H"로 이어지는 3D 형상 모핑 시퀀스를 안내합니다. 빨간색 상자는 유체 구성이 목표 형상과 성공적으로 일치하는 키프레임을 강조합니다.

Fig 8: 다양한 해상도에서의 아르마딜로 형상 모핑. 두 가지 해상도, 즉 192³(상단)과 128³(하단)에서의 형상 모핑 결과를 비교합니다. 초기 구체는 아르마딜로 형상과 일치하도록 점진적으로 최적화됩니다. 더 높은 해상도는 특히 빨간색 상자로 강조된 영역에서 더 미세한 기하학적 세부 사항을 보존합니다.

Fig 9: 복잡한 위상을 가진 3D 형상 모핑. 프레임 0, 50, 100, 150, 200에서 복잡한 위상 구조 간의 부드러운 전환을 보여주는 3D 형상 모핑 과제 시퀀스. 각 행은 단순한 모양에서 매우 복잡한 모양으로의 점진적인 변환을 보여주며, 삽입된 그림은 해당 목표 기하학을 보여줍니다. 모핑 과정은 위상적 특징을 보존하면서 점차적으로 기하학적 복잡성과 미세한 세부 사항을 도입합니다.

Fig 10: 장애물 제약이 있는 유체 형상 모핑. 장애물을 인식하는 형상 맞추기를 포함하는 도전적인 연기 제어 과제를 시연합니다. 제어력을 최적화함으로써 박쥐 모양의 유체는 틈새를 통과하여 목표 구성으로 변형됩니다.

Fig 11: 다양한 미분 가능 솔버와의 비교. 우리의 방법을 EigenFluids 및 반-라그랑지안(SL) 방법과 두 가지 과제, 즉 2D 연기 제어와 와류 추론에서 비교합니다. 1-3열: 2D 연기 제어 과제(용, 거북이, 뱀). SL은 정밀한 유체 제어에 실패하는 반면, EigenFluids와 최적화된 제어력이 적용된 SL(개선된 SL)은 유체를 유도할 수는 있지만 이류(advection) 성능이 저하되어 비현실적인 움직임을 보입니다. 대조적으로, 우리의 접근 방식은 미세한 디테일과 전체 부피를 보존하면서 정확한 제어를 달성하여 더 현실적인 유체 거동을 보여줍니다. 4열: 와류 추론 과제에서는 우리 방법만이 성공하여 우수한 정확도를 강조합니다.

Table 1: 과제 범주 및 미분 가능 방법 비교: 미분 가능 반-라그랑지안(SL), 미분 가능 Eigenfluids(Eigen), 그리고 우리 방법. 표에서 ✓와 ×는 솔버가 과제를 수행할 수 있는지 여부를 나타냅니다. 굵은 글씨 항목은 비교를 위해 선택된 실험을 나타내고, 밑줄 친 항목은 각 과제에서 가장 우수한 성능을 보인 솔버를 표시합니다.

Fig 12: 위치 및 와도 최적화를 통한 단일 와류 제어. 빨간색 와류의 위치와 와도를 최적화하여 파란색 와류를 목표 지점(빈 원으로 표시)으로 유도합니다. 상단 행은 최적화되지 않은 결과를 보여주고, 하단 행은 프레임 0, 400, 800에서 파란색 와류를 목표 지점으로 성공적으로 조종하는 최적화된 결과를 보여주며, 프레임 800에는 체커보드 패턴이 있습니다.

Fig 13: 다중 와류 제어. 단일 및 다중 목표를 포함하는 복잡한 제어 과제를 수행하기 위해 흰색 구의 위치와 와도를 최적화합니다. 빈 원은 목표 위치를 나타냅니다. 상단 행은 무작위로 초기화된 흰색 구의 결과를 보여주고, 하단 행은 최적화된 결과를 보여줍니다. 와도 및 렌더링된 결과의 스냅샷은 프레임 0, 400, 800에서 제공되며, 프레임 800에는 체커보드 패턴이 표시됩니다.

Fig 14: 예시. (1) 비디오로부터 와류 동역학 추론. 이 과제는 단일 RGB 유체 운동 비디오로부터 16개의 와류로 표현되는 초기 속도장을 추론합니다. 최적화 변수는 각 와류의 위치, 강도, 반경을 나타내는 (𝑐𝑥,𝑖, 𝑐𝑦,𝑖, 𝑤𝑖, 𝑟𝑖), 𝑖= 1, ..., 16입니다. 목적 함수는 시뮬레이션된 프레임 𝜉𝑖와 목표 비디오 프레임 𝜉𝑖,gt 간의 차이를 최소화합니다: 𝐽= 1/2 Σ𝑘 Σ³𝑖=1 𝛿(𝑡− 𝑡𝑘)|𝜉𝑖(x,𝑡) −𝜉𝑖,gt(x,𝑡)|². 여기서 𝜉𝑖, 𝑖= 1, 2, 3은 R, G, B 채널에 대한 수동장을 나타내고, 𝑡𝑘는 𝑘번째 프레임에 해당하는 시간을 나타냅니다. 최적화는 16개의 무작위로 배치된 와류로 초기화되며, RGB 비디오가 최적화 과정의 유일한 입력입니다. 우리는 Fig 2의 변형된 2D 로고 및 2D 그라데이션 배경 예시와 Fig 3의 2D 세 개의 실린더 및 2D 나뭇잎 장애물과 같은 더 복잡한 시나리오에서 초기 와도장을 추론하는 아름다운 결과를 보여줍니다. 이 모든 것은 다중 장애물과 실제 환경을 포함한 복잡한 환경에서 우리 방법의 견고성과 일반성을 보여줍니다. 이 과제는 강력한 와류 보존을 필요로 하며, 이는 미분 가능한 플로우맵을 사용해야만 달성할 수 있습니다. (2) 2D 와류 제어. 이 과제는 1-2개의 제어된 와류의 초기 위치 cctrl 𝑗,init를 최적화하여 위치 c𝑖(𝑡)를 가진 다른 와류들을 와류 상호작용을 통해 목표 위치 ctarget 𝑖로 유도합니다. 손실은 𝐽= Σ𝑖𝛿(𝑡−𝑟)∥c𝑖(𝑡) −ctarget 𝑖 ∥²/2로 정의됩니다. 여기서 c𝑖는 와류 위치를, ctarget 𝑖는 목표 위치를 나타냅니다. c𝑖는 와류 상호작용과 초기 위치에 의존하는 u𝑡에 의해 구동되므로, 함수 𝐽는 식 3에서처럼 u𝑡의 함수로 볼 수 있으며 cctrl 𝑗,init에 대해 최적화됩니다. 와류 제어는 와류 구조 보존에 의존하므로, 플로우맵은 이 과제에 특히 적합합니다. 우리는 Fig 12의 단일 와류 사례, Fig 13의 다중 와류 단일 목표 사례 및 다중 와류 다중 목표 사례의 시나리오를 제시합니다. 난이도가 증가하는 이 예시들은 우리 방법이 와류 구조를 보존하고 복잡한 시나리오에서 최적화를 위한 정확한 그래디언트를 계산하는 능력을 보여줍니다. (3) 2D 연기 제어. 이 과제는 시간에 따라 변하는 제어력 f를 최적화하여 유체에 영향을 주고 연기를 목표 형태로 변형시킵니다. 힘은 𝑚(𝑚∼3000)개의 가우시안 바람장 f𝑖= w𝑖𝑒−𝑎∥x−c𝑖∥²을 사용하여 모델링되며, 중심 c𝑖와 강도 벡터 w𝑖가 매개변수입니다(𝑖= 1, ..,𝑚). 목적 함수 피적분 함수는 𝐽= Σ𝑘∈𝐾𝛿(𝑡−𝑡𝑘)|𝜉(x,𝑡) −𝜉target(x,𝑡)|²입니다. 여기서 𝑡𝑘는 𝑘번째 키프레임의 시간을 나타냅니다. 우리는 Fig 5a의 2D GRAPH 형성 예제, Fig 5b의 2D 생명 진화 예제, 그리고 장애물이 있는 상황에서의 최적화를 포함하는 Fig 10의 2D 박쥐 장애물 통과 예제를 통해 연속적인 키프레임 최적화를 보여줍니다. 정확한 형상 제어와 유체 현실감은 플로우맵의 정밀한 수동장 매핑을 통해 가능해집니다.

Table 2: Fig 11의 2D 연기 제어 과제에 대한 최종 부피 보존 오차(%). 낮을수록 좋습니다.

Table 3: 다양한 예제에 대한 순방향 및 역방향 패스 간의 런타임(초) 및 GPU 메모리 비용(GB) 비교. 여기서 (F)와 (B)는 데이터가 각각 순방향 패스 또는 역방향 패스에 해당하는지를 나타냅니다. 보고된 시간은 단계당 시간이며 제어력과 같은 외부 입력 및 출력 계산은 제외됩니다. Poisson과 Advection은 각각 Poisson 방정식을 풀고 플로우맵을 이류시키는 단일 단계의 평균 비용을 보고합니다. 2D에서는 Taichi로 사용자 정의 Poisson 솔버를 구현했으며, 3D에서는 [Sun et al. 2025]의 고성능 MGPCG Poisson 솔버를 사용하여 3D Poisson 해결이 2D보다 훨씬 빠릅니다.

Fig 14: Taylor-Green 속도장 점성 추론. 해석적 해를 목표로 사용하여 우리 방법이 속도장으로부터 점성을 추론할 수 있는지 테스트합니다. 128, 256, 512 해상도에서의 결과가 표시됩니다.

Fig 15: Ablation 연구. 도약(왼쪽) 및 단일 와류(오른쪽) 테스트에 대한 Ablation 연구는 기존의 시간-희소 EFM이 정확한 Adjoint를 계산하지 못함을 보여줍니다. 도약 와류의 진화는 상당한 오차를 보이며, 단일 와류 입자는 에너지 곡선에서 지그재그 아티팩트를 나타내어, 우리의 장-단기 시간-희소 EFM의 필요성을 강조합니다.

Fig 16: 다른 방법을 사용한 순방향 및 역방향 프로세스의 3D 도약 비교. 순방향 및 역방향 계산을 모두 반-라그랑지안 방법으로 대체하는 테스트를 수행했으며, 결과는 플로우맵 방법이 양방향 모두에 필수적임을 확인시켜 줍니다. 이 실험은 또한 Adjoint 계산에서 우리 방법의 정확성을 보여줍니다.

Comments