1. 개요[편집]
hp-적응(hp-adaptivity)은 유한요소법에서 요소 크기 와 다항식 차수 를 요소별로 함께 조절해 오차를 줄이는 기법이다. 요소를 쪼개는 h-적응과 차수를 올리는 p-적응을 하나의 틀에서 섞어 쓰는 것이며, 잘 하면 오차가
처럼 자유도 에 대해 지수적으로 줄어든다. h-적응만 쓰면 오차는 로 대수적으로만 줄어든다. 이 대수 → 지수 도약이 hp-적응이 “수치해석의 가장 좋은 공짜 점심”이라 불리는 이유이고, 동시에 구현이 지옥인 이유다.1
2. 왜 섞어야 하는가[편집]
해가 매끈한 곳과 특이한 곳에서 최적 전략이 정반대라서다.
| 국소 해의 성질 | 최적 선택 | 이유 |
|---|---|---|
| 해석적으로 매끈 | 를 올린다 | 차수에 대해 지수 수렴 |
| 특이점·재진입 모서리 | 를 줄인다 | 차수를 올려도 수렴 차수가 특이성 지수에 묶임 |
| 경계층·급한 구배 | 이방적 + 중간 | 얇은 방향만 쪼갠다 |
| 불연속(충격파) | 를 줄이고 를 내린다 | 고차가 진동을 만든다 |
L자형 영역의 재진입 모서리에서 해는 () 꼴로 거동하므로 차수를 아무리 올려도 수렴이 에 걸린다. 반대로 매끈한 내부에서 요소를 쪼개는 것은 자유도만 낭비한다. 유명한 결과는 특이점 주변으로 요소 크기를 기하급수적으로 줄이면서(등비율 ) 바깥으로 갈수록 차수를 선형으로 올리는 기하 격자가 지수 수렴을 회복한다는 것이다. 바브슈카와 구오가 1980년대에 증명했고, 이후 모든 hp 코드가 이 패턴을 목표로 삼는다.
3. 무엇을 보고 결정하는가[편집]
hp-적응은 두 단계 결정이다. 먼저 어느 요소를 다듬을지, 다음이 h인지 p인지.
첫 단계는 사후 오차 추정자(오차 추정자)가 담당한다.
- 잔차 기반. 요소 내부 잔차와 요소 간 플럭스 도약을 재서 국소 오차 지표를 만든다. 구현이 단순하고 상계를 준다.
- 회복 기반. 지엔키에비치-주 방식으로 응력을 매끄럽게 회복시킨 뒤 원래 값과의 차이를 오차로 본다. 구조해석 상용 코드의 사실상 표준.
- 쌍대 가중 잔차. 관심 물리량(항력, 특정 점의 응력) 하나에 대한 오차를 줄이려면 쌍대 문제를 함께 풀어 가중치를 얻는다. 목표 지향 적응이라 부르며, 비싸지만 “필요한 곳만” 다듬는다.
두 번째 단계가 hp의 고유한 어려움이다. 대표적 판정 전략은 이렇다.
- 매끄러움 추정. 요소 해를 르장드르 다항식으로 전개해 계수의 감쇠율을 본다. 지수적으로 떨어지면 매끈하니 를 올리고, 대수적으로 떨어지면 특이하니 를 줄인다. 계수 몇 개로 판단하므로 저렴하다.
- 참조 해 비교. 요소를 쪼갠 해와 차수를 올린 해를 둘 다 계산해 자유도당 오차 감소가 큰 쪽을 고른다(데믜코비치-솔린 방식). 가장 신뢰할 수 있고 가장 비싸다.
- 예측 기반. 이전 단계에서 예상한 오차 감소와 실제를 비교해, 예상만큼 줄지 않았으면 전략을 바꾼다.
4. 구현이 어려운 이유[편집]
- 행 매달림 절점(hanging node). 요소를 국소적으로 쪼개면 이웃과 절점이 안 맞는다. 연속성을 지키려면 제약 조건을 걸어야 하고, 그 제약이 차수가 다른 이웃과 겹치면 코드가 급격히 복잡해진다.
- 차수 불일치 접합. 차수 3 요소와 차수 6 요소가 면을 공유하면 그 면에서 낮은 차수로 사영해 맞춘다(“minimum rule”). 이 사영을 빼먹으면 해가 불연속이 되어 수렴 차수가 통째로 무너지는데, 증상이 조용해서 찾기 힘들다.
- 조건수. 고차 요소는 질량·강성 행렬 조건수가 에 따라 빠르게 나빠진다. 계층적(hierarchic) 기저와 적절한 스케일링, 정적 응축이 필수다. 전처리기도 다중격자 대신 -다중레벨이나 요소별 블록 자코비를 쓴다.
- 희소행렬 패턴 변화. 적응 단계마다 자유도 수와 연결 구조가 바뀌므로 행렬 조립·재배열·전처리기를 매번 다시 만든다. 병렬 환경에서는 부하 재분배까지 따라온다. 실무에서 hp 도입을 포기하는 가장 흔한 이유가 성능이 아니라 이 인프라 비용이다.
- 적분 차수. 차수가 요소마다 다르면 구적점 수도 요소마다 다르다. 곡선 경계 요소에서는 기하 사상 차수까지 맞춰야 하고, 적분이 부족하면 요소 잠김이나 영에너지 모드가 생긴다.
5. 어디서 쓰이나[편집]
- 탄성·구조해석. 응력 집중과 균열 선단이 정확히 hp가 이기는 상황이다. 재료 계면과 모서리에 h를, 나머지에 p를 준다.
- 전자기 해석. 고주파 문제는 파장당 요소 수가 필요한데, 고차 요소가 자유도를 훨씬 아낀다. 다만 벡터 유한요소 공간에서의 hp 적합성이 추가 제약을 만든다.
- 스펙트럴 요소법과의 관계. 스펙트럴 요소법은 사실상 균일 고차 를 쓰는 특수한 경우다. hp-적응은 여기서 를 국소화한 확장으로 볼 수 있고, 지진파·해양 모델에서 지형이 급한 영역에만 차수를 낮추는 식으로 쓰인다.
- 불연속 갤러킨법 기반 CFD. DG는 요소 간 연속성을 요구하지 않으므로 차수 불일치 문제가 저절로 사라진다. 그래서 hp 구현 난이도가 연속 갤러킨보다 훨씬 낮고, 현대 hp-적응 CFD 코드가 대부분 DG인 이유가 이것이다.2
6. 실무 조언[편집]
적응을 켜기 전에 균일 세분화로 수렴을 먼저 확인하는 게 순서다. 적응 격자에서 수렴이 안 되면 원인이 오차 추정자인지 물리인지 구분이 안 된다. 그리고 적응 단계 수는 보통 5~8회면 충분하다 — 그 이상 돌려도 자유도만 늘고 관심 물리량은 안 변하는 구간에 들어간다. 격자 수렴 지수로 정량화해 놓고 멈추는 게 좋고, “오차 추정자가 수렴했다”는 말은 “해가 맞다”와 다르다는 점도 기억할 만하다.3