격자

오류 제보
시뮬레이션 수치해석 전산유체역학 마지막 수정: 2026-09-22 04:38:19

○ 공개 검수 대기 AI 보조 작성 표시 기준 보기

1. 개요

격자가 좋으면 해석의 절반은 끝난 것이다. 문제는 그 절반이 전체 일정의 절반을 잡아먹는다는 것이다.

격자(mesh, grid)는 연속적인 해석 공간을 유한 개의 셀(cell) 또는 요소(element)로 분할하여, 편미분방정식을 컴퓨터가 풀 수 있는 대수방정식으로 이산화할 수 있게 만드는 공간 분할 구조이다. 유한체적법이든 유한요소법이든 유한차분법이든, 컴퓨터는 연속체를 직접 다룰 수 없으므로 모든 수치해석은 격자에서 시작한다.

격자는 단순한 전처리 산출물이 아니라 해의 품질을 직접 결정하는 요소다. 같은 솔버, 같은 경계 조건이라도 격자가 나쁘면 수렴이 안 되거나, 더 무섭게는 그럴듯하게 수렴한 틀린 답이 나온다. 전산유체역학 업계에서 “Garbage in, garbage out”의 garbage 1순위가 바로 격자다.

이 문서는 격자라는 대상 자체(분류·셀 형상·품질 지표)를 다루는 허브다. 실제로 격자를 뽑는 알고리즘과 작업 절차는 메시 생성이, 격자를 조밀하게 해 가며 해의 신뢰도를 주장하는 절차는 메시 독립성 연구와 격자 수렴 지수가, 벽 근처 해상도 결정은 경계층·벽함수가 각각 맡는다.

2. 격자의 분류

2.1. 정렬 격자

정렬 격자(structured grid)는 셀이 (i,j,k)(i, j, k) 인덱스로 규칙적으로 배열된 격자다. 이웃 셀을 인덱스 연산만으로 찾을 수 있어 연결 정보(connectivity)를 따로 저장할 필요가 없고, 메모리 효율과 솔버 성능이 좋다. 격자선을 유동 방향에 정렬시키면 수치 확산(numerical diffusion)도 줄어든다. 단점은 복잡한 형상에 씌우기가 고통스럽다는 것. 멀티블록(multi-block) 기법으로 어느 정도 극복하지만, 블록 토폴로지 설계 자체가 장인의 영역이다.1

2.2. 비정렬 격자

비정렬 격자(unstructured grid)는 셀 배열에 규칙이 없어 임의의 연결 관계를 명시적으로 저장하는 격자다. 사면체나 다면체 셀로 복잡한 형상을 자동으로 채울 수 있어 산업 현장의 대세가 되었다. 대가는 연결 정보 저장에 따른 메모리 증가, 간접 주소 참조로 인한 캐시 효율 저하, 그리고 일반적으로 정렬 격자보다 떨어지는 해의 정확도다.

2.3. 하이브리드 격자

벽 근처는 프리즘 층으로, 내부는 사면체나 다면체로 채우는 절충안. 경계층은 벽에 수직한 방향으로 얇고 정렬된 셀이 필요하고, 먼 영역은 아무래도 좋다는 유동의 특성을 반영한 것으로, 현대 자동 격자 생성기의 표준 전략이다.

3. 셀 형상

형상장점단점
육면체 (hexa)정확도 높음, 같은 해상도에 셀 수 적음자동 생성 어려움
사면체 (tetra)완전 자동 생성 가능수치 확산 큼, 셀 수 폭증
프리즘 (prism)경계층에 최적단독 사용 불가
다면체 (polyhedral)이웃 많아 구배 계산 유리, 셀 수 절감생성기 제한적, 후처리 불편

육면체는 면이 좌표 방향에 정렬될 때 절단 오차가 상쇄되는 이점이 있고, 사면체는 같은 정확도를 내려면 훨씬 많은 셀이 필요하다. 다면체는 이웃 셀이 보통 10개 이상이라 최소제곱·그린-가우스 구배 재구성이 안정적이다. “사면체를 다면체로 변환하면 셀 수가 3~5배 준다”는 수치가 널리 인용되지만, 이는 상용 코드 벤더의 자사 변환기 벤치마크에서 나온 값이고 형상·세분 설정에 따라 편차가 크다 — 그대로 옮겨 적기보다 자기 케이스에서 직접 재는 편이 안전하다.2 셀 수가 줄어도 셀당 면 수가 늘어 플럭스 계산량은 비례해서 줄지 않는다는 점도 자주 빠지는 단서다.

4. 경계층 격자와 y+

벽 근처 유동은 벽에 수직한 방향으로 구배가 극심하므로, 벽면을 따라 얇은 셀을 겹겹이 쌓는 경계층 격자(inflation layer)가 필요하다. 첫 셀의 높이는 무차원 벽 거리

y+=uτ yν,uτ=τwρy^+ = \frac{u_\tau \, y}{\nu}, \qquad u_\tau = \sqrt{\frac{\tau_w}{\rho}}

로 관리한다. 난류 모델링에서 벽함수(wall function)를 쓰면 첫 셀 중심이 로그 법칙 영역인 y+≈30∼300y^+ \approx 30{\sim}300에 오도록, 벽까지 직접 해석(low-Re 접근)하려면 y+≈1y^+ \approx 1이 되도록 첫 셀 높이를 잡는다.3 층간 성장률(growth ratio)은 통상 1.2 내외로 유지한다.

문제는 해석을 돌리기 전에는 τw\tau_w 를, 따라서 uτu_\tau 를 모른다는 것이다. 그래서 평판 마찰계수 상관식으로 한 번 추정한 뒤 격자를 만들고, 해석 후 실제 y+y^+ 분포를 확인해 다시 조이는 반복이 관례다. 난류 평판 상관식 cf≈0.027 Rex−1/7c_f \approx 0.027\,Re_x^{-1/7}(경계층 참고)을 쓰면 첫 셀 높이는 이렇게 역산된다.

τw=12ρU∞2cf,uτ=τw/ρ=U∞cf/2,y=y+ νuτ\tau_w = \tfrac{1}{2}\rho U_\infty^2 c_f, \qquad u_\tau = \sqrt{\tau_w/\rho} = U_\infty\sqrt{c_f/2}, \qquad y = \frac{y^+\,\nu}{u_\tau}

숫자를 넣어 보면 감이 온다. 20 °C 공기(ν=1.5×10−5\nu = 1.5\times10^{-5} m²/s)가 U∞=30U_\infty = 30 m/s 로 길이 1 m 판 위를 흐르면 ReL=2×106Re_L = 2\times10^6, cf≈0.027×(2×106)−1/7≈3.4×10−3c_f \approx 0.027 \times (2\times10^6)^{-1/7} \approx 3.4\times10^{-3}, uτ≈301.7×10−3≈1.24u_\tau \approx 30\sqrt{1.7\times10^{-3}} \approx 1.24 m/s 다. y+=1y^+ = 1 을 맞추려면 첫 셀 중심이 y≈1.2×10−5y \approx 1.2\times10^{-5} m, 즉 12 μm 여야 하고 셀 높이는 그 두 배인 24 μm 쯤이 된다. 벽함수를 쓰려고 y+=50y^+ = 50 을 노리면 같은 식에서 0.61 mm — 꼭 50배 여유다. 이 한 자릿수 차이가 프리즘 층 수와 전체 셀 수를 통째로 갈라놓는다.4

5. 격자 품질 지표

  • 왜곡도(skewness) — 셀이 이상적인 형상(정육면체, 정사면체)에서 얼마나 찌그러졌는지. 0이 이상적이며 1에 가까우면 퇴화 셀이다. 정의가 도구마다 달라서 같은 격자가 어떤 툴에서는 합격, 다른 툴에서는 불합격 판정을 받기도 한다.5
  • 종횡비(aspect ratio) — 셀의 가장 긴 변과 짧은 변의 비. 경계층처럼 구배 방향이 명확한 곳에서는 수백 대 일도 허용되지만, 유동 방향이 불명확한 영역에서 큰 종횡비는 수렴을 망친다.
  • 비직교성(non-orthogonality) — 이웃 셀 중심을 잇는 벡터와 공유 면의 법선 벡터 사이의 각도. 유한체적법에서 확산항은 면 법선 방향 구배로 계산되는데, 비직교성이 크면 셀 중심 값만으로 이 구배를 정확히 표현할 수 없어 교차 확산(cross-diffusion) 보정항이 필요해진다. 이 보정항은 명시적(explicit) 으로, 즉 직전 반복의 값을 써서 우변에 얹는 방식으로 처리되므로 계수 행렬의 대각 지배성을 강화해 주지 못한다. 비직교성이 클수록 수렴이 느려지고 불안정해지는 이유가 이것이다.

OpenFOAM을 예로 들면 임계값이 문서화돼 있다. snappyHexMesh 의 meshQualityControls 기본값은 최대 면 비직교각 maxNonOrtho 65, 내부 면 왜도 maxInternalSkewness 4, 경계 면 왜도 maxBoundarySkewness 20 이고, checkMesh 는 비직교각이 70°를 넘으면 경고를 띄운다. 실무 감각으로는 40° 아래면 별도 처리가 필요 없고, 40~70° 구간은 fvSolution 의 nNonOrthogonalCorrectors 를 켜고 라플라시안 스킴을 corrected 로 바꿔서 버티며, 85°를 넘어가면 보정으로 살릴 단계가 아니라 격자를 다시 뽑아야 한다. 다만 이 숫자들은 OpenFOAM 의 정의 기준이고, 왜도·직교성의 정의는 코드마다 다르므로 다른 솔버의 임계값과 직접 비교하면 안 된다.

6. 격자 수렴성 연구 — 어디로 가야 하나

격자를 조밀하게 할수록 해가 격자 무관(grid-independent) 상태로 수렴하는지 확인하는 절차로, 해석 결과의 신뢰성을 주장하려면 사실상 필수다.6 체계적으로 세분화 비율 rr만큼 조밀한 격자 세 벌에서 관심 물리량 ff를 얻으면, 리처드슨 외삽으로 격자 간격이 0인 극한값을 추정할 수 있다.

fh→0≈f1+f1−f2rp−1,GCI21=Fs ∣ε21∣rp−1,ε21=f2−f1f1f_{h \to 0} \approx f_1 + \frac{f_1 - f_2}{r^{p} - 1}, \qquad \mathrm{GCI}_{21} = \frac{F_s\,|\varepsilon_{21}|}{r^{p} - 1}, \quad \varepsilon_{21} = \frac{f_2 - f_1}{f_1}

여기서 f1f_1 은 가장 조밀한 격자의 해, pp 는 관측된 수렴 차수(이론 차수가 아니다), ε21\varepsilon_{21} 은 두 격자 사이의 상대 오차이며, 세 격자 연구에서는 로치(Roache)의 안전계수 Fs=1.25F_s = 1.25 를 쓴다. 격자 두 벌만으로 pp 를 가정해 쓸 때는 Fs=3.0F_s = 3.0 으로 올린다 — 관측 차수를 확인하지 못한 값이라 그만큼 보수적으로 잡는 것이다.

이 절차의 전체 이야기(관측 차수 계산, 진동 수렴 처리, 무엇을 보고해야 하는가)는 격자 수렴 지수가, 그 위에서 “결국 어느 격자를 쓸 것인가”를 정하는 실무 절차는 메시 독립성 연구가 맡는다. 스터디용 격자 세 벌을 같은 크기 함수의 스칼라배로 뽑아야 한다는 전제는 메시 생성 소관이며, 이걸 어기면 여기서 나온 pp 는 아무 의미가 없다. ASME V&V 20 등 검증·확인(V&V) 표준이 이 개념 위에 서 있다.

7. 격자 생성 도구

  • 오픈소스: OpenFOAM의 blockMesh(정렬)와 snappyHexMesh(핵사 지배 자동 격자), cfMesh, GMSH, Salome 등.
  • 상용: ANSYS Meshing과 Fluent Meshing, Pointwise(현 Cadence Fidelity Pointwise), BETA CAE ANSA 등. Pointwise는 정렬/멀티블록 격자의 장인 도구로 항공우주 분야에서 특히 사랑받는다.

8. 현업에서의 현실

  • “해석 시간의 절반은 격자”라는 말은 과장이 아니라 통계에 가깝다. CAD 클린업까지 포함하면 절반을 넘긴다.
  • 격자 수를 두 배로 늘렸는데 결과가 5% 바뀌었다면, 아직 격자 수렴이 안 된 것이다. 일정이 없어서 그냥 간다면, 보고서에는 조용히 적지 않게 된다.
  • 자동 사면체 격자 버튼은 달콤하다. 그 달콤함의 청구서는 수렴하지 않는 잔차 그래프로 날아온다.
  • 격자 독립성 연구를 요구하는 리뷰어와 내일까지 결과를 요구하는 상사 사이에서, 엔지니어는 오늘도 성장률 1.2를 지킨다.

9. 관련 문서

10. Footnotes

  1. O-grid, C-grid, H-grid 같은 토폴로지 용어가 따로 있을 정도다. 잘 짜인 멀티블록 격자는 예술 작품 취급을 받으며, 실제로 그것을 만든 사람은 퇴사하면 안 되는 인력으로 분류된다. ↩

  2. 벤더 백서의 “3~5배” 는 대개 같은 사면체 격자를 자사 변환기로 병합한 전후 비교다. 비교 대상이 잘 만든 핵사 격자였다면 숫자가 저렇게 나오지 않는다. 마케팅 자료의 배수는 분모가 무엇인지부터 확인하는 것이 예의. ↩

  3. 첫 셀 높이를 마이크로미터 단위로 계산하고 있는 자신을 발견했다면, 축하한다. 당신은 이제 진짜 CFD 엔지니어다. ↩

  4. 첫 셀 높이를 y+y^+ 로 잡을 때 툴마다 “셀 중심”을 요구하는지 “셀 높이”를 요구하는지가 다르다. 2배 차이를 무시하고 넣었다가 y+y^+ 가 목표의 딱 2배로 나오는 사고는 이 바닥의 통과의례다. ↩

  5. 그래서 격자 품질로 논쟁이 붙으면 “어느 툴 기준인데?”부터 물어봐야 한다. 참고로 자기 격자가 통과되는 툴의 기준을 인용하는 것이 업계의 오랜 전통이다. ↩

  6. 논문 심사에서 “격자 수렴성 연구를 수행했는가?”는 국룰 질문이다. 답이 궁색하면 major revision이 날아온다. ↩

검증 자료

이 문서의 주요 출처

  1. OpenFOAM User Guide — Mesh quality (meshQualityControls 기본값)
  2. Roache, P. J. (1994). Perspective: A Method for Uniform Reporting of Grid Refinement Studies. J. Fluids Eng. 116(3), 405
  3. ASME V&V 20-2009 — Standard for Verification and Validation in CFD and Heat Transfer
  4. Thompson, Soni & Weatherill (eds.), Handbook of Grid Generation (CRC Press, 1999)
이 문서가 문제를 푸는 데 도움이 됐나요? 한 번의 클릭이 다음 검수 순서를 정합니다.

의견을 반영할게요. 감사합니다.

다음으로 읽기 메시 독립성 연구 약 5분 더 탐색 →