1. 개요
배경
CFD 엔지니어의 반복 업무 중 하나가 적정 CFL 찾기입니다. CFL은 수렴 안정성과 계산 비용의 트레이드오프를 지배하는데, 최적값이 격자와 유동 조건마다 크게 달라집니다. 압축성 해석에서는 초기 transient, 충격파, 박리로 잔차 거동이 급변하기 때문에 더 심합니다. 낮게 잡으면 느리고, 높게 잡으면 발산합니다.
결국 엔지니어의 경험과 직관에 의존하게 되고, 이는 재현성과 자동화의 벽이 됩니다.
기존 자동화의 한계
CFL 자동화 기법은 이미 있습니다.
- CFL Adaptive (heuristic) — 잔차 지표로 CFL을 자동 조정합니다. 튜닝해야 할 파라미터가 많고, 안전하게 설정하면 공격적인 수렴을 얻기 어렵습니다.
- CFL Ramp (스케줄링) — 사전에 고정한 스케줄을 따릅니다. 값을 잘못 넣으면 쉽게 발산합니다.
두 방법 모두 순간 잔차에 반응하거나 사전 설정을 따를 뿐, 수렴 궤적 전체를 보지 못합니다. 반면 사람은 잔차 이력을 보고 “지금 정체 구간이니 올려도 되겠다” 같은 판단을 합니다. 이 판단을 LLM이 대신할 수 있는지 확인하는 것이 이 연구의 출발점입니다.
목표
멀티그리드 없이 단일 격자에서, fine-tuning 없이 상용 LLM만으로 CFL을 동적 제어할 수 있는지 검증합니다.
2. 제어 시스템 구성
2.1 관측 · 결정 · 제어 인터페이스
솔버 내부 상태(iteration, 잔차, CFL)를 외부 클라이언트로 스트리밍하고, 외부 제어기가 set_cfl로 다음 구간의 CFL을 주입하는 구조입니다. 솔버 알고리즘은 그대로 두고 런타임 제어만 외부에서 얇게 얹었습니다.
한 가지 장치를 더 두었습니다. LLM 추론이 진행되는 동안 솔버를 일시 정지시키는 pause-during-inference입니다. 관측 시점의 상태에 결정을 정확히 적용하기 위해서이고, 특히 발산이 시작된 상황에서 응답을 기다리는 사이 상태가 더 나빠지는 것을 막습니다.
2.2 LLM Agent 제어 루프
시간 기반 주기(기본 약 1분)마다 최근 N iteration의 잔차 이력 윈도우를 LLM에 전달하고, 구조화된 출력으로 CFL 값을 받아 솔버 outer loop에 주입합니다.
- 잔차 이력 윈도우 수신 (최근 N iteration)
- LLM 결정 —
{cfl, rationale} - 안전 후처리 — 상·하한 clamp, 직전값 대비 변화율 제한
set_cfl적용, 다음 주기까지 유지
순간값이 아니라 잔차의 감소·정체·진동 추세를 함께 보고 결정하게 했습니다(explore-then-hold). 그리고 stateless API에 자기 결정 이력을 다시 실어 보내는 멀티턴 기억을 두어, 과거에 발산했던 CFL을 기억하고 재시도를 피하도록 했습니다.
2.3 2-timescale 하이브리드
LLM은 지연이 수 초 단위이고 호출 비용이 있어 매 iteration 동작하는 안전 컨트롤러가 될 수 없습니다. 그래서 시간 스케일로 계층을 나눴습니다.
| 계층 | 주기 | 역할 |
|---|---|---|
| 빠른 안전층 (규칙) | 약 1초 | 발산 감지 시 즉시 CFL × 0.6 |
| 느린 전략층 (LLM) | 약 1분 | 이동하는 최적 CFL 탐색·고정 |
물리적 근거가 있습니다. 안정 CFL의 천장은 유동이 안정화될수록 올라가는 시간가변 값입니다. 따라서 한 번 발산한 CFL을 영구히 금지하는 정적 기억은 해롭고, 멀티턴 맥락이 이 시간 의존성을 다루도록 했습니다.
3. 해석 설정
- 대상: Hammerhead 형상 Taurus 발사체
- 조건: M∞ = 1.187, α = 2.0°
- 해석: 정상상태 압축성 RANS (SA)
- 솔버: 자체 GPU-native CFD 코드 Wake

LLM 구성 3종을 비교했습니다.
- A — 멀티턴 기억
- B — 기억 + 추론(thinking)
- C — 기억 + 추론 + 안전층 (2-timescale 하이브리드)
기준선은 Constant, Scheduled Ramp(mild/aggressive), Adaptive(heuristic)입니다.
4. 해석 결과
4.1 전통적 CFL 방법

Constant CFL 5가 느리지만 가장 깊게 수렴해 log reduction −2.18을 기록했습니다. Ramp(mild)는 1에서 7로 올리며 유사하게 수렴(−2.09), Adaptive(heuristic)는 보수적으로 동작하다 종반에 CFL이 떨어져 −1.62에서 멈췄습니다.
사람이 설정한 Constant CFL이 기준선입니다. LLM이 넘어야 할 선이 여기입니다.
덧붙이면, CFL은 수렴 속도와 안정성만 좌우할 뿐 수렴된 최종해는 CFL 제어 방식과 무관했습니다.

4.2 LLM 단독

LLM은 초반에 CFL을 공격적으로 올려 최적을 탐색했고, 그 구간에서는 기준선보다 앞섰습니다. 그러나 시간가변 안정 천장을 반복해서 초과하면서 오버슈트 뒤 붕괴가 진동처럼 반복됐습니다. 최종 log reduction −0.125로, heuristic Adaptive에도 미치지 못했습니다.
원인은 세 가지입니다.
- 제어 지연 — API 통신 주기와, 붕괴를 인지하기까지 걸리는 시간
- 급강하 — 인지 후 과도하게 낮추는 반응
- 천장 재탐색 — 낮춘 뒤 다시 올리며 같은 과정을 반복
4.3 LLM + Reasoning

추론(thinking)을 추가하자 판단 품질이 올라가고 진동도 다소 완화됐습니다. 그러나 느린 사후 인지라는 근본 문제는 해결되지 않았습니다. 최종 log reduction −0.471로 여전히 heuristic Adaptive 아래입니다.
즉 “더 깊이 생각하게 만드는 것”만으로는 부족하고, 발산에 빠르게 대응하는 안전장치가 별도로 필요합니다.
4.4 하이브리드

규칙 기반 안전층을 붙이자 결과가 뒤집혔습니다. 오버슈트가 발생해도 규칙이 79 iteration 만에 CFL을 9.8에서 5.88로 잘라내 붕괴 없이 최적을 추종했습니다.
최종 log reduction −2.28로 Constant(−2.18)를 넘어섰고, 잔차 −2 도달에 2,208 iteration이 걸려 Constant의 3,042 대비 약 27% 단축했습니다.
4.5 종합
| 방법 | Final CFL | log₁₀Res | Reduction | iter → 1e-7 | 상태 |
|---|---|---|---|---|---|
| LLM + Safety Guard | 4.00 | −7.521 | −2.280 | 2,208 | converged |
| Constant | 5.00 | −7.421 | −2.180 | 3,042 | converged |
| Ramp (mild) | 7.00 | −7.334 | −2.093 | 3,342 | converged |
| Adaptive (heuristic) | 1.00 | −6.861 | −1.620 | — | partial |
| LLM + Reasoning | 7.20 | −5.712 | −0.471 | — | partial |
| LLM | 6.50 | −5.366 | −0.125 | — | partial |
| Ramp (aggressive) | 8.00 | −2.672 | +2.569 | — | diverged |
5. 결론
단일 격자에서 fine-tuning 없이 상용 LLM으로 CFL을 동적 제어할 수 있음을 확인했습니다. 자동화는 됩니다. 사람이 손으로 CFL을 탐색하던 과정을 제어기가 대신할 수 있고, 하이브리드 구성은 사람이 설정한 Constant CFL보다 더 깊고 더 빠르게 수렴했습니다.
다만 결과를 정확히 읽을 필요가 있습니다. 안정성을 만든 것은 LLM이 아니라 규칙 기반 안전층입니다. LLM 단독과 LLM + Reasoning은 모두 heuristic Adaptive에도 미치지 못했고, 매 1초 동작하는 규칙이 붙고 나서야 기준선을 넘었습니다. LLM이 기여한 부분은 이동하는 최적 CFL을 탐색하고 유지하는 전략 판단이며, 이는 규칙을 대체한 것이 아니라 그 위에 얹힌 것입니다.
비용도 함께 봐야 합니다. 이 구성은 약 1분마다 API를 호출하고, 추론 지연 때문에 그동안 솔버를 정지시킵니다. 수 초 단위 지연은 매 iteration 판단이 필요한 안전 제어에는 애초에 쓸 수 없는 값입니다. 얻은 것이 27% iteration 단축이라면, 그 값을 호출 비용과 지연, 그리고 외부 의존성이 늘어나는 대가와 견줘야 합니다.
정리하면 이렇습니다.
- 자동화 수단으로는 유효합니다. 사람의 반복 탐색을 대신하고, 잘 튜닝된 수동 설정을 넘어설 수 있습니다.
- 알고리즘 대체재로는 비쌉니다. 매 스텝 동작해야 하는 제어는 규칙이 훨씬 싸고 빠르며, LLM은 그 층을 대신할 수 없습니다.
LLM을 CFD 솔버 안으로 밀어 넣는 방향보다, 솔버 밖에서 전략을 판단하고 안쪽은 규칙에 맡기는 계층 분리가 현재로서는 현실적인 설계로 보입니다.
