기저중첩오차

편집 역사 토론
양자화학 계산화학 마지막 수정: 2026-07-25 04:49:02

상위 문서: 기저함수

1. 개요[편집]

기저중첩오차
Basis Set Superposition Error (BSSE)
분야양자화학 × 계산화학
증상상호작용 에너지 과대평가(과결합)
표준 보정카운터포이즈(Boys–Bernardi, 1970)
도구유령 원자(ghost atom)
소멸 조건완전기저 극한

시험 볼 때 옆자리 답안지를 훔쳐보면 내 점수가 오른다. 그런데 그 점수를 “내 실력”으로 보고하면 그게 BSSE다.

기저중첩오차(basis set superposition error, BSSE)는 두 조각 A와 B로 이루어진 복합체를 유한 기저함수로 계산할 때, 각 조각이 상대 조각에 붙어 있는 기저함수까지 빌려 써서 복합체 쪽 에너지만 인위적으로 낮아지고, 그 결과 상호작용 에너지가 과대평가되는 계통 오차다. 실제 물리적 상호작용이 아니라 기저의 불균형에서 생기는 순수한 계산 인공물이라는 점이 핵심이다.

원인은 단순하다. 가우시안형 기저는 원자 위치에 매달려 있다. A 단독 계산에서 A의 전자는 A의 함수만 쓸 수 있지만, AB 복합체 계산에서는 근처에 있는 B의 함수들도 A의 파동함수를 기술하는 데 동원된다. 두 조각을 가까이 붙일수록 이 “공짜 점심”이 커지므로, 거리에 따라 변하는 가짜 인력이 하나 더 생긴 것과 같다.1

기저 크기 자체를 키워 수렴시키는 일반론은 완전기저 극한 문서로 넘긴다. 여기서는 유한 기저에서 그 오염분을 어떻게 정의하고 빼낼 것인가만 다룬다.

2. 유령 원자와 카운터포이즈 보정[편집]

표준 처방은 보이스-베르나디(Boys–Bernardi)의 카운터포이즈 보정(counterpoise correction, CP)이다. 아이디어는 “훔쳐보기를 막을 수 없다면, 모두가 똑같이 훔쳐보게 만들자”다. 단량체 에너지를 계산할 때도 상대 조각 자리에 핵과 전자는 없고 기저함수만 남긴 유령 원자(ghost atom)를 놓아, 양쪽이 동일한 기저 공간을 쓰게 한다.

표기를 E기저(형상)E_{\text{계}}^{\text{기저}}(\text{형상})로 두면, 보정 전 상호작용 에너지와 CP 보정값은 각각 이렇게 쓴다.

ΔEraw=EABAB(AB)EAA(A)EBB(B)\Delta E^{\text{raw}} = E_{AB}^{AB}(AB) - E_{A}^{A}(A) - E_{B}^{B}(B) ΔECP=EABAB(AB)EAAB(AB)EBAB(AB)\Delta E^{\text{CP}} = E_{AB}^{AB}(AB) - E_{A}^{AB}(AB) - E_{B}^{AB}(AB)

윗첨자 ABAB는 “복합체의 전체 기저를 쓴다”는 뜻이다. 두 식의 차이를 BSSE 크기로 정의한다.

δBSSE=[EAA(AB)EAAB(AB)]+[EBB(AB)EBAB(AB)]    0\delta_{\text{BSSE}} = \left[E_{A}^{A}(AB) - E_{A}^{AB}(AB)\right] + \left[E_{B}^{B}(AB) - E_{B}^{AB}(AB)\right] \;\ge\; 0

변분 원리상 기저를 더 준 쪽이 언제나 에너지가 낮으므로 δBSSE\delta_{\text{BSSE}}는 항상 0 이상이다. 즉 BSSE는 언제나 과결합 방향으로만 작용한다. 여기에 조각이 복합체 형상으로 일그러지느라 드는 변형 에너지(deformation, relaxation) 항을 따로 분리하면 완전한 보이스-베르나디 분해가 된다. 비용은 복합체 하나당 계산 3회 — 싸지는 않지만, 결론이 뒤집히는 것보다는 싸다.

실행 자체는 어느 코드에서든 한 줄짜리다. 원소 기호 자리에 유령 표식을 붙이면(코드에 따라 Bq 접두, 원소명 앞 콜론, Gh() 감싸기 등) 그 자리에는 기저함수만 남고 핵전하와 전자는 사라진다. 흔한 실수는 단량체 에너지를 복합체 형상이 아니라 각자의 최적 구조에서 계산해 놓고 CP를 논하는 것이다. 그러면 BSSE와 변형 에너지가 뒤섞여 두 항을 분리할 수 없게 된다. 세 항(상호작용·BSSE·변형)은 반드시 같은 형상 기준에서 정의해야 한다.

1D 이중 우물에서 왼쪽 우물의 바닥에너지를 두 번 실제로 변분 계산해 비교한다 — (가) 왼쪽 우물에 붙은 기저만 쓸 때, (나) 오른쪽 우물 자리의 유령 기저까지 함께 쓸 때. 두 값의 차이가 곧 왼쪽 조각이 상대에게서 빌려 쓴 몫, 즉 BSSE다. 슬라이더로 우물 간 거리 R을 줄이면 차이가 커지고 멀어지면 사라진다. 1D 장난감 모형이며 실제 분자의 가우시안 기저 계산은 아니다.

3. 크기 의존성 — 병이 아니라 증상[편집]

BSSE의 크기는 계보다 기저가 결정한다. 대략적인 감각은 이렇다.

기저BSSE 규모(수소결합 이량체 기준)판정
6-31G, STO-3G 급상호작용 에너지와 맞먹기도 함사실상 계산 불가
cc-pVDZ / aug-cc-pVDZ수 kcal/mol 결합에서 0.5~1 kcal/mol보정 필수
aug-cc-pVTZ 이상0.1~0.3 kcal/mol보정 권장
CBS 외삽 후원리적으로 0자동 소멸

확산 함수가 없는 작은 기저일수록 심각한데,2 각 조각이 자기 기저만으로는 먼 꼬리를 표현하지 못해 상대 기저를 더 절실히 빌리기 때문이다. 반대로 평면파 기저처럼 기저가 원자에 매달려 있지 않으면 빌릴 것 자체가 없다.

그래서 정론은 **“BSSE는 기저 불완전성의 한 얼굴일 뿐”**이라는 것이다. 근본 처방은 큰 기저이고, 카운터포이즈는 유한 기저에서 쓰는 땜빵이다. 다만 이 땜빵이 없으면 반데르발스 힘 같은 미세 에너지 논의가 성립하지 않으므로, 현실에서는 거의 모든 벤치마크가 CP를 표준 절차로 깔고 간다.

4. 반쪽 카운터포이즈 — 상쇄 논쟁[편집]

여기서 이 바닥의 오래된 싸움이 시작된다. BSSE 말고도 유한 기저에는 기저 불완전성 오차(basis set incompleteness error, BSIE)가 있는데, 둘의 부호가 반대다.

  • 보정 전 값 ΔEraw\Delta E^{\text{raw}} — BSSE 때문에 과결합(너무 강하게 붙음).
  • CP 보정값 ΔECP\Delta E^{\text{CP}} — BSSE는 제거했지만 복합체를 기술할 기저가 여전히 모자라 과소결합.

즉 참값(CBS 극한)이 두 값 사이에 끼어 있는 구조다. 그러니 무보정과 CP를 단순 평균한 반쪽 카운터포이즈(50% CP)가, 이중·삼중 제타급 기저에서는 어느 한쪽보다 참값에 가까운 경우가 많다는 실증 결과가 쌓였다.

ΔE50%=12(ΔEraw+ΔECP)\Delta E^{50\%} = \tfrac{1}{2}\left(\Delta E^{\text{raw}} + \Delta E^{\text{CP}}\right)

“오차 두 개가 상쇄되니 좋은 거 아니냐” vs “정의되지 않은 상쇄에 기대는 건 과학이 아니라 도박이다”가 논쟁의 양 축이다. 실무 타협점은 대체로 이렇다 — 작은 기저에서 절대값을 뽑아야 하면 50% CP, 큰 기저 + CBS 외삽으로 갈 수 있으면 그냥 정공법. 어느 쪽이든 논문에 무엇을 썼는지 명시하지 않으면 재현이 불가능하다는 점만은 합의되어 있다.3

세 조각 이상으로 가면 이야기가 더 복잡해진다. 삼체 이상의 항까지 일관되게 보정하려면 부위별 함수 카운터포이즈(SSFC)나 발리롱-마이어 방식(VMFC)처럼 다체 분해에 맞춘 확장 스킴을 써야 하고, 클러스터 크기가 커질수록 계산 개수가 조합적으로 늘어난다.

5. 어디서 물리는가[편집]

  • 분자간 상호작용 벤치마크 — S22·S66 같은 비공유 상호작용 데이터셋은 결합 클러스터 방법 기준값을 CP 보정 + CBS 외삽으로 만든다. 이 기준값이 다시 밀도범함수이론 분산 보정(분산 보정)과 힘장 파라미터의 원천이 되므로, 여기서 오염되면 분자동역학까지 줄줄이 오염된다.
  • 분자 도킹과 결합 자유에너지 — 리간드-단백질 결합 에너지 차이를 kcal/mol 단위로 다투는 판이라, 작은 기저 QM 스코어링에서 BSSE를 방치하면 순위가 뒤바뀐다.
  • 흡착 에너지 — 제올라이트·MOF 세공 안은 흡착질이 골격 함수에 둘러싸이는 최악의 조건이다. 국소 기저 주기 코드에서 흡착열이 실험보다 수십 % 크게 나오면 BSSE부터 의심한다.
  • 형상 최적화 — BSSE는 거리 의존적인 가짜 인력이므로 결합 거리를 실제보다 짧게 만든다. CP 보정된 기울기(gradient)를 쓰는 최적화 옵션이 주요 코드에 들어 있는 이유.
  • 진동 주파수 — 짧아진 결합은 곧 과대평가된 신축 진동수로 이어진다. 수소결합 이량체의 O–H 적색이동 계산이 대표적 지뢰밭.

6. 평면파에서는 왜 덜 문제인가[편집]

평면파 기저는 셀 전체에 균일하게 깔리고 원자 위치와 무관하다. 같은 셀·같은 컷오프를 쓰는 한 A 단독 계산과 AB 복합체 계산이 문자 그대로 동일한 기저 집합을 쓰므로, 빌려 쓸 남의 함수라는 개념 자체가 성립하지 않는다. 주기경계조건 하의 고체·표면 계산에서 VASP 사용자가 카운터포이즈를 거의 입에 올리지 않는 이유가 이것이다.

물론 공짜는 아니다. 그 대가로 진공까지 기저를 채워야 하고(평면파 기저 문서 참고), 유사퍼텐셜·PAW의 증강 영역은 여전히 원자 중심이라 미세한 잔여분이 남는다(실무적으로는 무시 가능). 반대로 국소 기저를 쓰는 주기 코드(CRYSTAL, SIESTA류의 수치 원자궤도, 혼합 가우시안-평면파 스킴의 가우시안 부분)는 주기계에서도 BSSE를 그대로 물려받는다. “고체 계산이니까 BSSE 없다”가 아니라 **“평면파를 쓰니까 없다”**가 정확한 진술이다.

7. 관련 문서[편집]

8. Footnotes[편집]

  1. 그래서 BSSE는 “가짜 인력”이 아니라 “가짜 안정화”라고 부르는 게 더 정확하다. 힘의 형태로 나타나는 건 거리 의존성 때문에 생기는 부수 효과다. 어느 쪽이든 결과적으로 분자들이 실제보다 서로를 더 좋아하는 것처럼 보인다.

  2. 표의 수치는 어디까지나 수소결합 이량체급 소분자 기준의 감각값이다. 조각이 커지고 접촉 면적이 넓어질수록 빌릴 수 있는 함수도 늘어나므로 BSSE는 계 크기와 함께 자란다. “우리 계는 크니까 상대적으로 작겠지”는 정확히 반대 방향의 직관이다.

  3. 실제로 오래된 논문의 상호작용 에너지를 재현하려다 실패하는 사고의 상당수가 CP 여부 미표기에서 나온다. 계산 조건 문단에 한 줄 적는 데 3초 걸리는 정보가, 후대에는 며칠짜리 삽질이 된다.