1. 개요[편집]
격자가 좋으면 해석의 절반은 끝난 것이다. 문제는 그 절반이 전체 일정의 절반을 잡아먹는다는 것이다.
격자(mesh, grid)는 연속적인 해석 공간을 유한 개의 셀(cell) 또는 요소(element)로 분할하여, 편미분방정식을 컴퓨터가 풀 수 있는 대수방정식으로 이산화할 수 있게 만드는 공간 분할 구조이다. 유한체적법이든 유한요소법이든 유한차분법이든, 컴퓨터는 연속체를 직접 다룰 수 없으므로 모든 수치해석은 격자에서 시작한다.
격자는 단순한 전처리 산출물이 아니라 해의 품질을 직접 결정하는 요소다. 같은 솔버, 같은 경계 조건이라도 격자가 나쁘면 수렴이 안 되거나, 더 무섭게는 그럴듯하게 수렴한 틀린 답이 나온다. 전산유체역학 업계에서 “Garbage in, garbage out”의 garbage 1순위가 바로 격자다.
2. 격자의 분류[편집]
2.1. 정렬 격자[편집]
정렬 격자(structured grid)는 셀이 인덱스로 규칙적으로 배열된 격자다. 이웃 셀을 인덱스 연산만으로 찾을 수 있어 연결 정보(connectivity)를 따로 저장할 필요가 없고, 메모리 효율과 솔버 성능이 좋다. 격자선을 유동 방향에 정렬시키면 수치 확산(numerical diffusion)도 줄어든다. 단점은 복잡한 형상에 씌우기가 고통스럽다는 것. 멀티블록(multi-block) 기법으로 어느 정도 극복하지만, 블록 토폴로지 설계 자체가 장인의 영역이다.1
2.2. 비정렬 격자[편집]
비정렬 격자(unstructured grid)는 셀 배열에 규칙이 없어 임의의 연결 관계를 명시적으로 저장하는 격자다. 사면체나 다면체 셀로 복잡한 형상을 자동으로 채울 수 있어 산업 현장의 대세가 되었다. 대가는 연결 정보 저장에 따른 메모리 증가, 간접 주소 참조로 인한 캐시 효율 저하, 그리고 일반적으로 정렬 격자보다 떨어지는 해의 정확도다.
2.3. 하이브리드 격자[편집]
벽 근처는 프리즘 층으로, 내부는 사면체나 다면체로 채우는 절충안. 경계층은 벽에 수직한 방향으로 얇고 정렬된 셀이 필요하고, 먼 영역은 아무래도 좋다는 유동의 특성을 반영한 것으로, 현대 자동 격자 생성기의 표준 전략이다.
3. 셀 형상[편집]
| 형상 | 장점 | 단점 |
|---|---|---|
| 육면체 (hexa) | 정확도 높음, 같은 해상도에 셀 수 적음 | 자동 생성 어려움 |
| 사면체 (tetra) | 완전 자동 생성 가능 | 수치 확산 큼, 셀 수 폭증 |
| 프리즘 (prism) | 경계층에 최적 | 단독 사용 불가 |
| 다면체 (polyhedral) | 이웃 많아 구배 계산 유리, 셀 수 절감 | 생성기 제한적, 후처리 불편 |
육면체는 면이 좌표 방향에 정렬될 때 절단 오차가 상쇄되는 이점이 있고, 사면체는 같은 정확도를 내려면 훨씬 많은 셀이 필요하다. 다면체는 이웃 셀이 10개 이상이라 구배 재구성이 안정적이고, 사면체 격자를 변환하면 셀 수가 3~5배 줄어드는 것으로 알려져 있다.
4. 경계층 격자와 y+[편집]
벽 근처 유동은 벽에 수직한 방향으로 구배가 극심하므로, 벽면을 따라 얇은 셀을 겹겹이 쌓는 경계층 격자(inflation layer)가 필요하다. 첫 셀의 높이는 무차원 벽 거리
로 관리한다. 난류 모델링에서 벽함수(wall function)를 쓰면 첫 셀 중심이 로그 법칙 영역인 에 오도록, 벽까지 직접 해석(low-Re 접근)하려면 이 되도록 첫 셀 높이를 잡는다.2 층간 성장률(growth ratio)은 통상 1.2 내외로 유지한다. 해석을 돌리기 전에는 를 모르므로 평판 마찰계수 상관식으로 추정해서 격자를 만들고, 해석 후 실제 분포를 확인하는 반복이 관례다.
5. 격자 품질 지표[편집]
- 왜곡도(skewness) — 셀이 이상적인 형상(정육면체, 정사면체)에서 얼마나 찌그러졌는지. 0이 이상적이며 1에 가까우면 퇴화 셀이다. 정의가 도구마다 달라서 같은 격자가 어떤 툴에서는 합격, 다른 툴에서는 불합격 판정을 받기도 한다.3
- 종횡비(aspect ratio) — 셀의 가장 긴 변과 짧은 변의 비. 경계층처럼 구배 방향이 명확한 곳에서는 수백 대 일도 허용되지만, 유동 방향이 불명확한 영역에서 큰 종횡비는 수렴을 망친다.
- 비직교성(non-orthogonality) — 이웃 셀 중심을 잇는 벡터와 공유 면의 법선 벡터 사이의 각도. 유한체적법에서 확산항은 면 법선 방향 구배로 계산되는데, 비직교성이 크면 셀 중심 값만으로 이 구배를 정확히 표현할 수 없어 교차 확산(cross-diffusion) 보정항이 필요해진다. 이 보정은 양적(explicit)으로 처리되므로 비직교성이 클수록 수렴이 느려지고 불안정해진다. OpenFOAM의 checkMesh는 70° 이상이면 경고를, 그 이상 심하면 사망 선고를 내린다.
6. 격자 수렴성 연구[편집]
격자를 조밀하게 할수록 해가 격자 무관(grid-independent) 상태로 수렴하는지 확인하는 절차로, 해석 결과의 신뢰성을 주장하려면 사실상 필수다.4 체계적으로 세분화 비율 만큼 조밀한 격자 2~3개에서 관심 물리량 를 얻으면, Richardson 외삽으로 격자 간격이 0인 극한값을 추정할 수 있다.
여기서 은 가장 조밀한 격자의 해, 는 관측된 수렴 차수다. Roache가 제안한 격자 수렴 지수(GCI, Grid Convergence Index)는 이를 표준화한 불확도 지표로,
의 형태를 가지며 3개 격자 연구에서는 안전계수 를 쓴다. 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[편집]
-
O-grid, C-grid, H-grid 같은 토폴로지 용어가 따로 있을 정도다. 잘 짜인 멀티블록 격자는 예술 작품 취급을 받으며, 실제로 그것을 만든 사람은 퇴사하면 안 되는 인력으로 분류된다. ↩
-
첫 셀 높이를 마이크로미터 단위로 계산하고 있는 자신을 발견했다면, 축하한다. 당신은 이제 진짜 CFD 엔지니어다. ↩
-
그래서 격자 품질로 논쟁이 붙으면 “어느 툴 기준인데?”부터 물어봐야 한다. 참고로 자기 격자가 통과되는 툴의 기준을 인용하는 것이 업계의 오랜 전통이다. ↩
-
논문 심사에서 “격자 수렴성 연구를 수행했는가?”는 국룰 질문이다. 답이 궁색하면 major revision이 날아온다. ↩