상담문의

[STAR-CCM+] Adaptive Mesh Refinement (AMR): 격자를 스스로 진화시키는 해석

2026-09-22

 

-해석 도중 유동장을 읽어 필요한 곳만 자동으로 세분화·조대화 — 초음속 충격파 해석(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이란?


 Adaptive Mesh Refinement(AMR)은 적응 격자 기준(adaptive mesh criteria)이 유동 해를 조회한 결과에 따라 셀을 세분화하거나 조대화하는 동적 방법입니다. 해석 도중 격자가 바뀌기 때문에 물리 연속체(Physics Continuum)의 모델로 제공되며, 해 값은 적응된 격자로 자동 보간됩니다.

그림 1. 초기 격자(왼쪽)와 Field Function 기준으로 자동 세분화된 격자(오른쪽) — 셀 크기(CellWidth) 분포 (출처: STAR-CCM+ User Guide)

 핵심은 “거친 격자로 시작해도 미세한 유동 구조를 잡을 수 있다”는 점입니다. 다만 매뉴얼은 AMR이 격자 설계의 필요성을 없애는 것은 아니라고 분명히 못 박습니다.

 • 초기 격자는 기본 유동 특성을 잡을 만큼은 조밀해야 한다 — AMR은 초기 격자보다 더 거칠게 만들 수 없다.
 • AMR은 볼륨 셀의 midpoint subdivision만 수행하며 표면 격자를 재구성하지 않는다 — 곡면의 표면 테셀레이션은 처음부터 충분히 세밀해야 한다.
 • 3D 볼륨 격자(Trimmed·Polyhedral·Tetrahedral·Thin·Advanced Layer)에서 동작하며, 2D·2D 축대칭에는 적용되지 않는다.
 • Max Refinement Level로 셀당 최대 세분화 횟수를 제한해 격자가 과도하게 미세해지는 것을 막는다.
 • Prism Cell Refinement 옵션으로 프리즘층 셀을 등방(Isotropic)·접선(Tangent)·법선(Normal) 방향으로 선택적 세분화할 수 있다.

2. 동작 원리


2.1 Midpoint Subdivision과 Refinement Level


 AMR은 셀의 각 꼭짓점 주위에 자식 셀을 하나씩 만드는 midpoint subdivision으로 세분화합니다. 따라서 한 번 세분화하면 자식 셀 수는 부모 셀의 꼭짓점 수와 같습니다 — 육면체는 8개, 다면체(poly)는 보통 12~15개입니다.

그림 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


 레벨이 다른 영역 사이에는 급격한 체적 변화를 완화하기 위해 중간 레벨의 전이 구간이 삽입됩니다. Transition Width는 이 구간의 셀 폭을 정하며 기본값 1은 base size 한 칸 폭입니다.

그림 3. Transition Width 1~4에 따른 레벨 전이 구간의 폭 변화 (출처: STAR-CCM+ User Guide)

2.3 여러 기준이 겹칠 때의 우선순위


 여러 기준이 동시에 활성화되면 “더 미세한 격자가 우선”하는 규칙으로 병합됩니다: Refine + Coarsen → Refine, Refine + Keep → Refine, Keep + Coarsen → Keep.

2.4 백그라운드에서 일어나는 일


AMR 트리거 시 Adaptive Mesh 솔버는 다음 순서로 동작합니다.

 1. 현재 유동 해를 바탕으로 셀마다 적응 기준 값을 계산
 2. 모든 기준을 우선순위 규칙으로 병합해 최종 adaption request 도출
 3. 인터페이스가 있으면 리셋
 4. 격자 적응 수행 — 트리거당 1회 세분화, 또는 keep/coarsen
 5. 유동 해를 적응된 격자로 보간
 6. 인터페이스 재초기화
 7. 셀 연결성 변화에 따른 도메인 재분할(Partitioning 솔버)
  - 초기 격자로 되돌리려면 Clear Solution에서 Reset Mesh와 Adaption을 함께 선택합니다.

3. 적응 기준(Adaptive Mesh Criteria)


 STAR-CCM+는 두 종류의 기준을 지원합니다. 사용자 정의(User-Defined) 기준은 셀 단위로 완전한 제어를 주고, 모델 기반(Model-Driven) 기준은 물리 모델이 최적화된 기준을 자동 제공합니다. 둘을 조합할 수도 있습니다.

3.1 User-Defined Mesh Adaption


 Adaption Request 노드의 Method로 세 가지 방식을 선택합니다.

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)으로 셀별 동작 지정


 스칼라 함수는 물리량의 gradient나 Laplacian을 쓰는 것이 권장됩니다. 매뉴얼이 제시하는 두 가지 대표 형태는 다음과 같습니다.

 - 불연속(충격파) 포착: 불연속 변수의 gradient에 셀 크기를 곱해 “셀 하나에서의 변화량”으로 만든다 → mag(grad(${MachNumber}))*(${AdaptionCellSize})

 - 완만한 변화의 이산화 오차 저감(공력 등): 대표 변수의 Laplacian 사용 → abs(div(grad(${TotalPressure})))*pow(${AdaptionCellSize},2)

 여기서 ${AdaptionCellSize}는 AMR이 제공하는 현재 셀 크기(셀 중심에서 꼭짓점까지 최대 거리의 2배)이며, 이 밖에 Refinement Level, Adaption Refinement Status(세분화 가능 여부 코드), Adaption Element Type 같은 Field Function도 함께 제공됩니다.

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. 일반 설정 워크플로우


 1. 초기 격자 준비 — 기본 유동을 잡을 만큼만 조밀하게. 불필요하게 미세한 격자는 피한다(AMR은 초기 격자를 조대화하지 못함). 유체막(fluid film)의 쉘 영역은 AMR 대상이 아니므로 처음부터 적절히 생성.
 2. Continua > Physics > Models > Optional Models에서 Adaptive Mesh 모델 추가 후 속성(Prism Cell Refinement, Initial Mesh 등) 설정.
 3. Adaptive Mesh Criteria 노드 우클릭 → New → User-Defined Mesh Adaption(또는 모델 기반 기준) 추가 → Max Refinement Level, Adaption Request 설정.
 4. Solvers > Adaptive Mesh > Trigger에서 Trigger Mode 지정 — 반복 횟수, 시간 스텝(또는 Δt), Update Event 기반. 다음 트리거 전에 유동 해가 충분히 진행되도록 간격을 둔다.
 5. 미리보기 — 초기 격자의 해가 있으면 Solvers > Adaptive Mesh 우클릭 → Refine/Coarsen Mesh Once로 동작을 확인하고 기준을 조정.
 6. 되돌리기 — Solution > Clear Solution에서 Adaption + Reset Mesh 선택, 또는 Adaptive Mesh 솔버 우클릭 → Clear Adaption.
 7. 영역별 제외 — Regions > [region] > Physics Conditions > Adaption Option에서 Enable Adaption 해제.


5. 튜토리얼 재현 — Mach 12 구체 주위 충격파


 공식 튜토리얼은 Mach 12의 극초음속 유동이 구체를 지나며 만드는 충격파를 AMR로 포착합니다. 셀 수를 줄이기 위해 대칭면을 둔 반쪽 모델을 쓰고, 외부 경계는 free stream입니다. 셀 수가 해석 중 크게 늘어나므로 12코어 병렬·배정밀도(double precision) 실행을 권장합니다.

그림 5. 계산 영역 — 구체, 대칭면(sym), free stream 경계 (출처: STAR-CCM+ User Guide)

5.1 물리 모델과 솔버 설정


항목

설정 · 이유

물리 모델

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)


 층류로 두는 이유는 극초음속의 고압 충격파가 난류 발달을 억제하기 때문이며, 이상기체 법칙으로는 압축성·열역학 효과를 기술할 수 없어 Real Gas + Equilibrium Air를 선택합니다.

5.2 사용자 정의 기준 만들기


 Automation > Field Functions에 스칼라 함수 RefineCriterionMachNumber를 만들고 정의를 다음과 같이 둡니다.

[mag(grad(${MachNumber}))*(${AdaptionCellSize})   — 마하수 gradient × 현재 셀 크기 (무차원)]

 실무에서는 시험 해석 후 이 함수를 플롯해 보고, 적응 효과가 클 영역의 gradient 크기를 확인해 Range를 정하는 것이 좋습니다. 튜토리얼의 설정은 다음과 같습니다.

노드

속성

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 결과 — 격자가 충격파를 따라간다


 Element Count 리포트(Cell Count)와 항력(Drag Force) 리포트를 하나의 플롯에 좌·우 축으로 겹쳐 두면 적응 시점마다 셀 수가 계단형으로 바뀌는 것을 볼 수 있습니다. 첫 적응(100 iter) 직후 셀 수가 약 18만에서 74만 근처까지 급증한 뒤, 이후 조대화가 함께 작동하면서 63만 수준으로 정리됩니다.

그림 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으로 올려 충격파 두께를 더 얇게 잡는 것이 일반적입니다.

6. 실무 팁 — 매뉴얼이 강조하는 주의사항


 • 수렴 안 된 해에서 적응하지 말 것 — 첫 트리거는 잔차가 최소 한 자릿수 떨어진 뒤. Refine in Solution Initialization은 잘 수렴한 정상해에서 비정상 해석으로 넘어갈 때처럼 초기해가 확실할 때만 켠다(Grid Sequencing 사용 시에는 꺼 둔다).
 • AMR 시작 후에는 셀 연결성을 바꾸는 명령을 쓰지 말 것 — invalid cell 제거, region/boundary 결합 등은 AMR 솔버가 저장한 연결 정보를 깨뜨린다.
 • 표면은 처음부터 — AMR은 표면을 재구성하지 않으므로 곡면 테셀레이션·프리즘층은 초기 격자에서 확보한다.
 • Max Refinement Level은 초기 격자에 맞춰 — 초기 격자가 이미 조밀하면 낮은 레벨로 셀 수 폭증을 막는다. 실무 기준 2~3.
 • Range 하한을 조정해 관심 영역 밖(충격파 하류 등)의 불필요한 세분화를 억제한다.
 • 병렬·메모리 — 셀 수가 수 배 늘 수 있으므로 코어 수와 메모리를 여유 있게 잡고, 적응마다 재분할(re-partitioning)이 일어남을 감안한다.
 • 적응이 안 되는 셀은 Adaption Refinement Status Field Function으로 확인 — 0(Supported) 외의 값(품질 불량 16, 32개 이상 꼭짓점 면 33 등)은 세분화 불가.
 • Remesh와 함께 쓰면 Remesh 솔버가 AMR을 제어해, 새 격자에서도 기존 위치의 셀 크기를 그대로 재현한다.

마무리


 AMR은 “격자를 잘 만드는 일”을 대신해 주는 기능이 아니라, “어디를 더 나눠야 하는지를 해가 알려 주는” 기능입니다. 기본 유동을 담을 수 있는 초기 격자, 물리적으로 의미 있는 기준 함수, 수렴 상태를 고려한 트리거 간격 — 이 세 가지만 지키면 충격파·자유표면·화염면처럼 위치를 예측하기 어려운 구조를 훨씬 적은 셀로 선명하게 잡을 수 있습니다.

 이번 튜토리얼(HypersonicSphere_start.sim)은 매뉴얼의 Tutorials > Compressible Flow > Adaptive Mesh Refinement: Hypersonic Flow에서, 이론과 설정 레퍼런스는 Simulating Physics > Adaptive Mesh Refinement 절에서 확인할 수 있습니다. VOF 자유표면(Tank Sloshing), 위상최적화(U-bend), 이동체(Paint Dipping) 튜토리얼도 AMR의 다른 활용 예로 참고할 만합니다.

댓글 없음

댓글 쓰기

이런자료는 어때요?
캐디언스 시스템
(주) 캐디언스시스템

서울본사 : 서울시 금천구 가산디지털 1로 212, 코오롱디지털타워애스턴 1006호