-해석 도중 유동장을 읽어 필요한 곳만 자동으로 세분화·조대화 — 초음속 충격파 해석(Mach 12 구체) 튜토리얼로 보는 AMR의 원리와 설정-
● 들어가며
| 대표 그림. 초기 격자(왼쪽, 182,184 cells)와 AMR 10회 적용 후(오른쪽, 630,736 cells) — 충격파를 따라 격자가 자동 세분화되었다 (출처: STAR-CCM+ User Guide 그림 재구성) |
CFD 해석에서 시간을 가장 많이 잡아먹는 일 중 하나가 “어디를 얼마나 조밀하게 나눌까”를 정하는 격자 작업입니다. 충격파·자유표면·화염면처럼 위치를 미리 알 수 없는 유동 구조는 더욱 그렇습니다. 넉넉하게 전체를 조밀하게 만들면 셀 수와 계산 시간이 폭증하고, 아끼면 핵심 구조를 놓칩니다.
Simcenter STAR-CCM+의 Adaptive Mesh Refinement(AMR)은 이 고민을 해석기 스스로 풀게 하는 기능입니다. 해석이 진행되는 동안 유동 해를 읽어 정해진 기준을 만족하는 셀만 쪼개고(refine), 필요 없어진 셀은 다시 합칩니다(coarsen). 이 글에서는 매뉴얼의 이론·설정 가이드와 공식 튜토리얼 “Adaptive Mesh Refinement: Hypersonic Flow”를 바탕으로 AMR을 정리합니다.
• AMR이란 무엇이고 무엇을 할 수 있는가(그리고 할 수 없는가)
• 동작 원리 — Midpoint Subdivision, Refinement Level, Transition Width
• 기준(Criteria) — 사용자 정의 vs 모델 기반
• 일반 설정 워크플로우와 솔버 Trigger
• 튜토리얼 재현 — Mach 12 구체 주위 충격파 포착
• 실무 팁 — 매뉴얼이 강조하는 주의사항
1. AMR이란?
| 그림 1. 초기 격자(왼쪽)와 Field Function 기준으로 자동 세분화된 격자(오른쪽) — 셀 크기(CellWidth) 분포 (출처: STAR-CCM+ User Guide) |
핵심은 “거친 격자로 시작해도 미세한 유동 구조를 잡을 수 있다”는 점입니다. 다만 매뉴얼은 AMR이 격자 설계의 필요성을 없애는 것은 아니라고 분명히 못 박습니다.
2. 동작 원리
2.1 Midpoint Subdivision과 Refinement Level
| 그림 2. 육면체 셀의 midpoint subdivision — 1회 세분화로 8개의 자식 셀. 다면체(poly)는 꼭짓점 수만큼(12~15개) 생성 (출처: STAR-CCM+ User Guide) |
Adaptive Mesh 솔버가 한 번 실행될 때 셀의 refinement level은 ±1만 바뀝니다. 즉 세분화는 누적(successive) 절차이며, 레벨 2~3에 도달하려면 솔버가 여러 번 트리거되어야 합니다. 조대화는 이전에 나눈 자식 셀들을 다시 하나로 합치는 것이며 초기 격자 정의를 넘어서 합치지는 않습니다. 인접 셀 간 레벨 차이는 1까지만 허용됩니다.
2.2 Transition Width
2.4 백그라운드에서 일어나는 일
3. 적응 기준(Adaptive Mesh Criteria)
3.1 User-Defined Mesh Adaption
|
Method |
설명 |
|
Adaption Criterion
Function |
스칼라 함수 하나와 두 임계값(Range)을
지정하고, Above Max / Between / Below Min 구간마다 Refine·Keep·Coarsen을 명시. 가장 직관적인 방식 |
|
Field Function |
사용자 Field Function이 −1 / 0 / 1을 반환 — 1(>0.8)이면 Refine, −1(<−0.8)이면 Coarsen, 그 사이는 Keep |
|
Table (xyz, time) |
위치·시간 테이블 값(−1/0/1)으로 셀별 동작 지정 |
3.2 Model-Driven Mesh Adaption
|
기준 |
용도 · 전제 조건 |
|
Free Surface Mesh
Refinement |
VOF 자유표면의 번짐(smearing) 방지 — VOF 모델 선택 시 |
|
Lsi Mesh Refinement |
EMP의
Large Scale Interface 경계면을 선명하게 — LSI 모델 선택 시 |
|
Overset Mesh
Refinement |
배경 영역 셀 크기를 오버셋 영역에 맞춰 보간 품질 향상 — 오버셋 인터페이스 1개 이상 |
|
Topology Physics Mesh
Adaption |
Adjoint 위상최적화의 고체-유체 경계 세분화 |
|
Mesh Adaption for
Reacting Flows |
연소 스칼라의 2차 gradient로 화염 영역 세분화·조대화 |
|
Virtual Disk / Virtual
Boundary Refinement |
가상 디스크 특성 포착 · 이동 가상체
경계 세분화 |
3.3 Adaptive Mesh 모델의 주요 속성
|
속성 |
의미 · 옵션 |
|
Adaption Mode |
Mid-Point Subdivision
(현재 유일) |
|
Prism Cell Refinement |
None / Isotropic /
Tangent / Normal / Criterion Based — 프리즘층 세분화 방식 |
|
Initial Mesh |
General(기본, 모든
셀 level 0) / Trimmed (HEX) / Auto Detect — 트리머 격자의 octant depth를 refinement level로 인식 |
|
Transition Width |
레벨 전이 구간 폭 (기본 1) |
|
Limit Cell Size · Min
Adaption Cell Size |
자식 셀 예상 크기가 최소값보다 작으면 세분화 생략
(기본 1e-6) |
|
Check Refined Cell
Quality / Least Squares Quality / Face Validity |
자식 셀 품질이 기준 미달이면 세분화 중단 (기본 1e-5 / 0.001 / 0.9) |
| 그림 4. Initial Mesh 옵션 — Trimmed (HEX)는 초기 트리머 격자의 octant depth를 refinement level에 포함하고, General은 모든 셀을 level 0으로 취급 (출처: STAR-CCM+ User Guide) |
4. 일반 설정 워크플로우
5. 튜토리얼 재현 — Mach 12 구체 주위 충격파
|
항목 |
설정 · 이유 |
|
물리 모델 |
Three Dimensional ·
Gas · Coupled Flow · Real Gas + Equilibrium Air · Steady · Laminar · Adaptive
Mesh |
|
Coupled Flow |
MUSCL 3rd-order/CD,
Positivity Rate Limit 0.05(온도 감소율 제한), AUSM+ FVS, Low-Mach
Preconditioning Off |
|
Maximum Allowable
Temperature |
10,000 K — 충격파 전후 정온이 약 30배 상승 |
|
Coupled Implicit |
Automatic CFL,
Enhanced Dissipation, AMG Tolerance 0.001, ILU Relaxation, Expert Init = Grid
Sequencing(CFL 2.5) |
|
Free stream / 초기조건 |
Mach 12, 241 K, 유동 방향
[1,0,0] / 속도 3736 m/s (Mach 12 @ −32.15 °C) |
|
Adaptive Mesh 솔버
Trigger |
Iteration Frequency =
100 — 잔차가
한 자릿수 줄어드는 시점마다 적응 (최대 1000 iter →
10회) |
5.2 사용자 정의 기준 만들기
|
노드 |
속성 |
값 |
|
Adaptive Mesh 모델 |
Prism Cell Refinement
/ Transition Width |
None / 1 |
|
|
Limit Cell Size / Min
Adaption Cell Size |
✓ / 0.01 m |
|
User-Defined Mesh
Adaption 1 |
Max Refinement Level |
1 (실무는
2~3 권장) |
|
|
Refine in Solution
Initialization |
해제 (수렴된 초기해가 있을 때만 사용) |
|
Adaption Request |
Method / Scalar
Function |
Adaption Criterion
Function / RefineCriterionMachNumber |
|
|
Range |
[0.5, 1.0] — 실무에서는 하한을 올려 충격파 밖 세분화를
억제 |
|
|
Above Max / Between /
Below Min |
Refine / Keep /
Coarsen |
5.3 결과 — 격자가 충격파를 따라간다
| 그림 6. Cell Count(우축)와 Drag Force(좌축) 모니터 — 100 iter마다 적응, 항력은 적응 직후 잠시 흔들리다 안정 (출처: STAR-CCM+ User Guide) |
| 그림 7. 적응 기준 함수 RefineCriterionMachNumber 분포(0.5~1.0) — 값이 큰 충격파·전단층 영역이 세분화 대상 (출처: STAR-CCM+ User Guide) |
최종 격자(대표 그림 오른쪽)는 구체 전방의 궁형 충격파(bow shock)와 후류 전단층을 따라 셀이 촘촘히 배열되어 있고, 그 밖의 영역은 초기 격자 수준으로 남아 있습니다. 튜토리얼은 계산 시간을 위해 레벨 1만 허용했지만, 산업용 해석에서는 레벨 2~3으로 올려 충격파 두께를 더 얇게 잡는 것이 일반적입니다.

