1. 개요[편집]
| 메시 생성 Mesh Generation | |
|---|---|
| 목적 | 해석 도메인의 이산화(discretization) |
| 격자 종류 | 구조 격자 / 비구조 격자 / 혼합 격자 |
| 대표 알고리즘 | 들로네 삼각분할, 전진전선법, octree |
| 품질 지표 | 왜도(skewness), 종횡비, 직교성 |
해석의 90%는 격자에서 결정되고, 격자 생성의 90%는 인내심에서 결정된다.
메시 생성(mesh generation) 또는 격자 생성은 연속적인 해석 대상 형상을 유한 개의 작은 요소(element)들로 잘게 나누어, 유한체적법·유한요소법 같은 수치해석이 방정식을 이산화해 풀 수 있는 이산 도메인을 만드는 작업이다. 격자 문서가 “격자란 무엇이며 어떤 종류가 있는가”를 다룬다면, 이 문서는 **“그 격자를 어떤 알고리즘과 도구로 실제로 만들어 내는가”**에 초점을 맞춘다.
전산유체역학과 구조해석 실무에서 전체 해석 시간의 절반 이상이 메시 생성에 소모된다는 것은 업계의 오랜 정설이다. 격자 품질이 나쁘면 아무리 좋은 솔버와 물리 모델을 써도 결과가 틀어지거나 아예 수렴하지 않는다. “Garbage in, garbage out”이 가장 잔인하게 작동하는 단계.1
2. 구조 격자 대 비구조 격자[편집]
메시 생성은 크게 두 철학으로 갈린다.
- 구조 격자(structured grid) — 격자점이 규칙적인 (i, j, k) 인덱스로 정렬된 격자. 육면체(hexahedra)로 채우며, 이웃 관계가 인덱스만으로 자명해 메모리 효율과 정확도가 높다. 대신 복잡한 형상을 규칙적 블록으로 쪼개는 데 엄청난 수작업이 든다. 다중 블록(multi-block) 기법으로 형상을 여러 논리 블록으로 나누어 대응한다.
- 비구조 격자(unstructured grid) — 삼각형/사면체(tetrahedra)를 형상에 맞춰 자유롭게 채우는 격자. 인접 정보를 명시적 연결 리스트로 저장해야 해 메모리를 더 먹지만, 복잡한 형상을 자동으로 채울 수 있어 산업 현장의 주력이다.
정확도가 생명인 익형·터보기계 해석은 구조 격자를, 자동차 엔진룸처럼 형상이 지저분한 문제는 비구조 격자를 택하는 것이 일반적. 실제로는 벽 근처만 정렬된 층을 쓰고 나머지는 비구조로 채우는 혼합 격자가 가장 흔하다.
3. 핵심 알고리즘[편집]
비구조 격자를 자동 생성하는 알고리즘은 크게 세 계열이다.
3.1. 들로네 기반[편집]
들로네 삼각분할은 “어떤 삼각형의 외접원 안에도 다른 점이 들어가지 않는다”는 빈 외접원 조건을 만족하도록 점들을 연결하는 방법이다. 최소각을 최대화해 지나치게 뾰족한 삼각형을 피하므로 격자 품질이 좋고, 점을 하나씩 삽입하며 국소적으로 갱신하는 증분법(incremental insertion)이 빨라 대규모 격자에 널리 쓰인다. 내부 점을 어디에 뿌릴지 정하는 점 배치(point insertion) 전략이 품질을 좌우한다.2
3.2. 전진전선법 (Advancing Front)[편집]
경계면에서 출발해 도메인 안쪽으로 삼각형/사면체를 한 겹씩 쌓아 나가는 방법. 마치 불이 번지듯 “전선(front)“이 안쪽으로 전진하며, 양쪽에서 자란 전선이 만나면 격자가 완성된다. 경계 근처 격자 품질이 특히 우수해 경계층 해석에 유리하지만, 전선이 충돌하는 지점의 처리가 까다롭다.
3.3. 옥트리/사분트리 기반[편집]
도메인을 큰 정육면체로 감싼 뒤, 형상이 복잡한 곳을 재귀적으로 8등분(2차원이면 사분트리로 4등분)하며 공간 분할 자료구조를 만들고, 경계에 걸친 셀을 형상에 맞게 잘라내는 방식. 자동화 수준이 높아 “형상만 던지면 격자가 나오는” 상용 자동 메셔의 근간이다. ANSYS의 컷셀(cut-cell), OpenFOAM의 snappyHexMesh가 대표적.
4. 경계층 격자[편집]
CFD에서 벽 근처 경계층은 속도가 급변하는 얇은 영역이라, 벽에 수직으로 극도로 촘촘한 격자가 필요하다. 이를 위해 벽면을 따라 얇고 납작한 프리즘(prism)/육면체 층을 여러 겹 쌓는 것이 표준이다. 첫 격자의 높이는 난류 모델의 벽함수 요구치(y⁺)에 맞춰 결정되며, 이 층을 제대로 못 깔면 벽 전단응력과 열전달 예측이 통째로 틀어진다.3 프리즘 층 바깥은 사면체 비구조 격자로 채우는 것이 전형적인 하이브리드 구성.
5. 격자 품질 지표[편집]
만들어진 격자가 쓸 만한지는 정량 지표로 판정한다.
- 왜도(skewness) — 이상적 정삼각형/정사면체 대비 얼마나 일그러졌는가. 1에 가까울수록 최악이며, 보통 0.9를 넘는 셀이 있으면 발산의 씨앗이 된다.
- 종횡비(aspect ratio) — 셀의 가장 긴 변과 짧은 변의 비. 경계층 셀은 의도적으로 크지만, 유동 방향이 아닌 곳에서 크면 정확도가 떨어진다.
- 직교성(orthogonality) — 셀 면 법선과 셀 중심을 잇는 선이 이루는 각. 유한체적법의 플럭스 계산 정확도에 직결된다.
이 지표들이 나쁜 셀 몇 개가 수렴을 통째로 망치는 일이 흔해서, 메시 생성 후 반드시 품질 진단을 돌리는 것이 국룰이다.4
6. 도구와 실무[편집]
전문 메시 생성 도구로는 상용의 ANSYS Meshing·ICEM CFD·Pointwise, 오픈소스의 Gmsh·OpenFOAM의 snappyHexMesh/blockMesh, 그리고 삼각분할 라이브러리 Triangle·TetGen 등이 있다. 해석 결과를 시각화하는 ParaView는 메시 생성 도구가 아니라 후처리 도구이므로 혼동하지 말 것.5 해석 도중 격자를 자동으로 조밀하게 바꾸는 적응 격자 세분화는 초기 메시 생성의 부담을 덜어 주는 후속 기술로, 두 기법은 상호 보완적이다.
7. 관련 문서[편집]
8. Footnotes[편집]
-
유명한 격언 하나. “해석이 안 맞으면 격자를 의심하고, 격자가 멀쩡해 보이면 다시 한 번 격자를 의심하라.” 물리 모델과 경계 조건을 다 뜯어고쳤는데 답이 안 나오다가, 알고 보니 왜도 0.99짜리 셀 하나가 범인이더라는 이야기는 전설이 아니라 현실이다. ↩
-
순수 들로네 삼각분할만으로는 경계면을 격자 변으로 강제할 수 없어서, 실무에서는 경계를 반드시 보존하는 제약 들로네 삼각분할(constrained Delaunay)을 쓴다. 경계가 뭉개지면 형상 자체가 바뀌어 버리니까. ↩
-
y⁺는 벽에서 첫 격자점까지의 무차원 거리다. 벽함수를 쓰면 y⁺ ≈ 30~300, 벽까지 직접 풀려면 y⁺ ≈ 1을 노린다. 이 목표에 맞춰 첫 층 높이를 마이크로미터 단위로 조정하는 것이 CFD 엔지니어의 숙명. ↩
-
상용 솔버는 아예 왜도가 임계치를 넘는 셀 개수를 리포트에 찍어 준다. 그 숫자가 0이 아니면, 커피 한 잔 뽑아 놓고 격자를 다시 손볼 마음의 준비를 하는 게 좋다. ↩
-
은근히 자주 하는 실수다. ParaView는 VTK 기반 후처리·시각화 도구지, 격자를 만들어 주지 않는다. 격자를 만드는 건 Gmsh·Pointwise 같은 메셔들의 몫. ↩