1. 개요
| 벽함수 Wall Function | |
|---|---|
| 분야 | 난류 모델링 벽 처리 |
| 핵심 무차원수 | y+ (무차원 벽거리) · u+ (무차원 속도) |
| 이론적 근거 | 로그 법칙 (law of the wall) |
| 로그층 상수 | κ ≈ 0.40~0.41 · B ≈ 5.0~5.5 (출처마다 다름) |
| 표준 구현 | Launder & Spalding 1974 (κ=0.4187, E=9.793) |
| 목적 | 벽 근처 격자 비용 절감 |
벽까지 다 풀 자신이 없으면, 벽 근처는 공식으로 때우면 된다. 문제는 그 공식이 언제 거짓말을 하느냐다.
벽함수(wall function)는 벽 근처 난류 경계층을 격자로 직접 해상하는 대신, 실험과 이론으로 다져진 반경험식으로 벽과 첫 격자점 사이를 이어 붙이는 벽 처리 기법이다. 벽 아주 가까이에서 난류 구조는 극도로 작아지고 속도구배는 가팔라져, 이곳을 격자로 곧이곧대로 풀려면 셀을 어마어마하게 촘촘히 깔아야 한다. 벽함수는 이 비싼 영역을 계산에서 생략하고 알려진 속도 분포 공식으로 대체함으로써 격자 수와 계산 비용을 극적으로 줄인다.
RANS 기반 산업 CFD에서 벽함수는 오랫동안 사실상의 기본 설정이었다. “벽을 다 풀 것인가, 공식으로 때울 것인가”는 격자를 짜기 전에 반드시 내려야 하는 결정이며, 이 선택 하나가 격자 규모를 몇 배씩 바꿔 놓는다.
2. 무차원 벽거리와 무차원 속도
벽 근처 유동을 기술하려면 먼저 좌표와 속도를 벽 단위로 무차원화해야 한다. 기준이 되는 것은 벽면 전단응력 에서 정의되는 마찰속도(friction velocity)다.
이 마찰속도로 벽으로부터의 거리 와 유동 속도 를 각각 무차원화한 것이 무차원 벽거리 와 무차원 속도 다.
는 본질적으로 벽 근처에 국소적으로 정의된 레이놀즈수로, “이 격자점이 벽에서 얼마나 떨어져 있는가”를 물리적으로 의미 있는 척도로 재 준다. 놀랍게도 벽 근처 난류 경계층의 평균 속도 분포는 유동 종류에 거의 무관하게 가 만의 보편 함수로 표현된다 — 이 보편성이 벽함수라는 편법을 가능하게 하는 근본 토대다.
3. 벽 근처의 층 구조
를 기준으로 벽 근처는 성격이 뚜렷이 다른 몇 개 층으로 나뉜다.
| 층 | 대략적 범위 | 지배 물리 | 속도 분포 |
|---|---|---|---|
| 점성저층 | 점성 지배 | (선형) | |
| 완충층 | 점성 ≈ 난류 | 어느 공식도 안 맞음 | |
| 로그층 | 난류 지배 | 로그 법칙 |
점성저층(viscous sublayer)에서는 점성이 완전히 지배하여 전단응력이 일정하다고 보면 속도가 벽거리에 정비례한다. 즉 라는 아름답도록 단순한 선형 관계가 성립한다.
로그층(log-law region)에서는 난류가 지배하며 속도가 벽거리의 로그에 비례한다. 이것이 그 유명한 로그 법칙(law of the wall)이다.
여기서 는 폰 카르만 상수, 는 매끄러운 벽에 대한 상수다. 이 두 값은 특정 유동에서 유도된 것이 아니라 수많은 실험을 관통하는 준(準)보편 상수라는 점이 핵심이다. 다만 “보편”이 “값이 딱 하나”라는 뜻은 아니다 — 문헌마다 값이 조금씩 다르다.
| 출처 | 비고 | ||
|---|---|---|---|
| Pope, Turbulent Flows (2000) | 0.41 | 5.2 | 교과서 표준 |
| Coles 계열 관용값 | 0.41 | 5.0 | 개론서에서 흔함 |
| Launder & Spalding (1974) | 0.4187 | 5.45 | CFD 코드 기본값 |
셋째 줄이 CFD 사용자에게 가장 중요하다. 상용·오픈소스 코드의 벽함수는 를 직접 쓰지 않고 거칠기 상수 를 써서 로그 법칙을 한 줄로 적기 때문이다.
두 표기는 같은 식이다. 이므로 . OpenFOAM 의 nutkWallFunction 에서 E 9.8, kappa 0.41 같은 값을 보게 되는 이유가 이것이다.1
3.1. 완충층을 넘어가는 한 줄짜리 식
층을 나눠 놓으면 경계에서 속도가 불연속으로 튄다. 스폴딩(Spalding, 1961)은 를 의 함수로 뒤집어 씀으로써 점성저층부터 로그층까지를 끊김 없는 한 식으로 이었다.
가 작을 때 대괄호 안이 테일러 전개의 앞 네 항을 빼 버린 나머지()라 0으로 죽어서 (선형 법칙)가 되고, 가 커지면 지수항이 지배해 로그 법칙으로 넘어간다. 현대 코드의 all-·블렌딩 벽함수는 대체로 이 아이디어의 후손이다. 온도에는 Kader(1981)의 블렌딩 식이 같은 역할을 한다.
그리고 그 사이에 낀 완충층(buffer layer)이 문제아다. 점성과 난류가 엇비슷하게 겨루는 이 지대에서는 선형 법칙도 로그 법칙도 맞지 않는다. 벽함수를 쓸 때 첫 격자점을 완충층()에 두는 것이 최악의 선택인 이유가 바로 이것 — 어느 공식으로도 이어 붙일 근거가 없는 사각지대이기 때문이다.2
4. 벽함수 접근 vs 벽해상 접근
벽 처리는 크게 두 전략으로 갈린다. 첫 격자점을 어디에 두느냐가 전부를 결정한다.
4.1. 벽함수 접근 ()
첫 격자점을 로그층 안에 두고, 벽과 첫 격자점 사이는 로그 법칙으로 이어 붙인다. 점성저층과 완충층을 통째로 격자에서 생략하므로 벽에 수직한 방향 셀 수가 확 줄어든다. 계산이 싸고 강건해 k-엡실론 모델 같은 고레이놀즈수 모델과 궁합이 좋다. 단점은 로그 법칙이 성립한다는 전제가 깔려 있다는 것 — 박리·재부착·강한 압력구배처럼 로그 법칙 자체가 깨지는 유동에서는 정확도를 보장할 수 없다.
4.2. 벽해상 접근 ()
첫 격자점을 점성저층 안()에 두고 벽까지 격자로 직접 적분한다. 저레이놀즈수(low-Re) 처리라고도 부른다. 열전달 계수, 마찰 항력, 박리 시작점처럼 벽 근처 물리가 결과를 좌우하는 문제에서는 이쪽이 정답이다. 대신 프리즘 레이어를 겹겹이 얇게 쌓아야 하므로 격자 수와 셀 종횡비가 크게 늘어난다.
4.3. 확장 벽함수 — 완충층을 “밟지 못하게” 만드는 꼼수
현대 상용 코드들은 이 둘 사이 어중간한 에서도 해가 무너지지 않게 해 주는 확장 벽함수(scalable wall function)와 all-/블렌딩 처리를 제공한다. Grotjans와 Menter(1998)가 제안한 scalable wall function 의 착상은 의외로 단순하다. 격자를 못 믿겠으면 격자가 아니라 벽함수가 보는 좌표에 하한을 걸어 버리면 된다.
여기서 는 마찰속도 대신 난류 운동에너지 로 정의한 벽거리다(). 마찰속도는 박리점에서 0이 되어 를 0으로 붕괴시키지만 는 그렇지 않아서, 박리·재부착이 있는 유동에서 훨씬 얌전하게 군다. 하한 은 선형 법칙 와 로그 법칙이 교차하는 지점으로 잡는다. 에서 를 풀면 이고, 코드들은 이 근방 값(대개 11.06~11.25)을 쓴다.
효과는 “첫 격자점이 아무리 벽에 가까워도 벽함수는 인 척한다”는 것이다. 격자를 촘촘히 한다고 해가 비물리적으로 튀지 않으니 격자 수렴 연구를 돌릴 수 있게 된다. 다만 그 대가로 촘촘히 해도 정확도가 더 좋아지지 않는다 — 점성저층을 여전히 안 푸니까. 그래서 원리적으로 완충층에 첫 격자점을 걸치는 것은 여전히 피하는 게 상책이다.3
5. 첫 격자 높이 검산
목표를 정했다면 첫 격자점의 물리적 높이를 계산해야 격자를 짤 수 있다. 해석 전에는 를 모르므로 평판 상관식으로 추정하는 것이 국룰이다.
공기(, ), , 평판 선단에서 지점을 잡자.
슐리히팅의 난류 평판 국소 마찰계수 상관식 를 쓰면
이제 로 되돌리면 된다.
| 목표 | 전략 | 첫 격자점 높이 |
|---|---|---|
| 1 | 벽해상(low-Re) | m ≈ 12 μm |
| 30 | 벽함수 하한 | m ≈ 0.37 mm |
| 300 | 벽함수 상한 | m ≈ 3.7 mm |
숫자가 말해 주는 것이 두 가지다. 첫째, 벽해상은 벽함수보다 첫 셀이 30배 얇다. 성장비 1.2로 프리즘 레이어를 쌓는다면 같은 두께를 덮는 데 겹이 더 필요하다. 벽면이 넓은 외부 유동에서 이 19겹이 곧 격자 수 폭발이다.
둘째, 이 높이는 레이놀즈수에 민감하다. 이므로 고정된 에 대한 첫 셀 높이는 로 줄어든다. 레이놀즈수가 10배면 첫 셀을 약 8배 얇게 깔아야 한다는 뜻이다. 자동차·항공기처럼 가 인 문제에서 격자가 억 단위로 가는 이유가 여기 있다.
주의할 점 두 가지. 이 는 셀 중심(또는 첫 절점)까지의 거리이므로, 셀 중심 유한체적 코드에서 첫 셀 두께는 대략 그 2배다. 그리고 상관식은 어디까지나 추정이라, 해석을 한 번 돌린 뒤 실제 분포를 보고 격자를 고치는 반복이 정상이다.4
6. 격자 비용 절감이라는 본질
벽함수의 존재 이유는 단 하나, 돈이다(정확히는 격자와 계산 시간). 벽해상을 하려면 벽에 수직한 방향으로 첫 셀을 에 맞춰야 하는데, 레이놀즈수가 높아질수록 이 물리적 높이는 눈물겹게 작아진다. 자동차 외부 유동이나 항공기 익형처럼 레이놀즈수가 수백만을 넘는 문제에서 벽면 전체를 로 감싸면 격자 수가 억 단위로 폭발한다.
벽함수는 점성저층·완충층을 격자에서 들어냄으로써 이 부담을 통째로 회피한다. 벽에 수직한 방향 셀을 여러 겹 줄일 수 있어, 전체 격자가 몇 배씩 가벼워지고 그만큼 해석이 빨라진다. 산업 CFD가 수십 년간 벽함수에 의존해 온 이유는 낭만이 아니라 마감과 예산이었다.5
물론 공짜 점심은 없다. 벽함수는 “로그 법칙이 성립하는 평형 경계층”이라는 전제를 딛고 서 있고, 그 전제가 무너지는 곳(강한 박리, 충돌 제트, 회전 유동)에서는 조용히 틀린 답을 예쁘게 수렴시켜 내놓는다. 잔차가 잘 떨어졌다고 벽 처리가 옳았다는 뜻은 결코 아니다.6
7. 관련 문서
8. Footnotes
-
그래서 “는 0.41이다”와 “우리 코드는 0.4187을 쓴다”가 동시에 참이다. 벤치마크 논문의 로그 법칙 그래프가 미묘하게 안 겹칠 때 범인이 이 소수점 셋째 자리인 경우가 은근히 있다. ↩
-
완충층에 첫 격자점을 걸쳐 놓고 “왜 결과가 이상하죠?”라고 묻는 것은 CFD 입문자의 통과의례에 가깝다. 은 유체 해석의 버뮤다 삼각지대다. ↩
-
확장 벽함수가 나왔다고 완충층을 마음 놓고 밟아도 된다는 뜻은 아니다. “자동으로 처리해 준다”와 “정확하다”는 전혀 다른 말이다. 자동 변속기가 있다고 아무 데나 기어를 넣어도 되는 건 아니듯이. ↩
-
“는 해석 결과이지 격자 입력이 아니다”가 이 절의 한 줄 요약이다. 격자를 깔 때 넣는 건 미터 단위 높이고, 는 다 돌리고 나서야 확인되는 값이다. 그래서 첫 해석은 언제나 정찰용이라고 생각하는 편이 정신 건강에 좋다. ↩
-
DNS 논문 저자들은 벽함수를 미개한 근사라 여기고, 마감에 쫓기는 현업 엔지니어는 벽해상 격자를 사치라 여긴다. 둘 다 각자의 자리에서 옳다. ↩
-
수렴은 대수방정식을 잘 풀었다는 뜻이지, 올바른 방정식을 풀었다는 뜻이 아니다. 이 문장은 CFD를 하는 한 평생 되뇌게 된다. ↩
이 문서의 주요 출처
- Launder & Spalding (1974), The numerical computation of turbulent flows, Comput. Methods Appl. Mech. Eng. 3, 269-289 (표준 벽함수 u+ = (1/κ)ln(E y+)의 출처, κ=0.4187 · E=9.793)
- Spalding (1961), A single formula for the law of the wall, J. Appl. Mech. 28, 455-458 (점성저층-완충층-로그층을 하나로 잇는 식)
- Kader (1981), Temperature and concentration profiles in fully turbulent boundary layers, Int. J. Heat Mass Transfer 24, 1541-1544 (온도 벽함수 블렌딩의 원 출처)
- Grotjans & Menter (1998), Wall functions for general application CFD codes, Proc. 4th ECCOMAS CFD Conference, 1112-1117 (scalable wall function 원 출처)
- Pope (2000), Turbulent Flows, Cambridge University Press, Ch. 7 (벽 단위·로그 법칙 상수의 표준 교과서 정리)
- NASA Langley Turbulence Modeling Resource — 벽 처리·y+ 요구조건 공식 정리
- OpenFOAM User Guide — wall function 경계조건(nutkWallFunction 등) 구현 문서
의견을 반영할게요. 감사합니다.