スピン汚染

計算化学において、スピン汚染（スピンおせん、）またはスピン混入（スピンこんにゅう）またはスピンコンタミネーションとは、異なる電子スピン状態が混合するアーティファクトをいう。
これは分子軌道ベースの波動関数を非制限形式、すなわちαスピン軌道とβスピン軌道の空間部分が異なることを許す形式で近似することで生じる。
近似された波動関数に多量のスピン汚染が生じることは望ましくない。具体例として、スピン汚染により波動関数は全スピン演算子の二乗演算子 の固有関数ではなくなることが挙げられる。スピン汚染された波動関数はもはや全スピンの二乗の固有状態でないため、形式的にはより多重度の高い純粋スピン状態（コンタミナント）で展開される。
開殻波動関数.
ハートリー＝フォック理論の枠内では、波動関数はスピン軌道のスレーター行列式により近似される。開殻系ではハートリー＝フォック理論における平均場アプローチからは相異なるα軌道とβ軌道とが得られる。ここで、2つの異なるアプローチを取ることができる。1つは、二重占有されている深い軌道ではαスピン軌道とβスピン軌道の空間部分は同一であると仮定する方法（制限開殻ハートリー＝フォック法、ROHF）であり、もう一つはαスピン軌道とβスピン軌道とを全く独立に扱って変分法を行なう方法（非制限ハートリー＝フォック法、UHF）である。一般的に-電子ハートリー＝フォック波動関数は個のα-スピン軌道と 個のβ-スピン軌道により以下のように書くことができる。
ここで、formula_2 はである。この波動関数は全スピン射影演算子 の固有関数であり、その固有値は である（ここで とした）。 ROHF 波動関数では、最初の 個のスピン軌道は同一の空間分布をもつという制限が課せられる。
UHF アプローチではそのような制限は課されない。
コンタミネーション.
全スピン演算子の二乗は非相対論的と交換するため、近似波動関数は "Ŝ"2 の固有関数であることが望ましい。"Ŝ"2 の固有値は "S"("S" + 1) である。ここで "S" の値は 0（一重項状態）、1/2（二重項状態）、 1（三重項状態）、3/2（四重項状態）などの非負半整数値を取り得る。
ROHF波動関数は"Ŝ"2の固有関数である。すなわち、ROHF波動関数に対する"Ŝ"2の期待値は次のように計算される。
しかし、UHF波動関数では必ずしもそうではない。UHF波動関数に対する"Ŝ"2の期待値は以下のように計算される。
最後の2つの項の和が非制限ハートリー＝フォック法におけるスピン汚染の尺度であり、これは常に非負である。すなわち、ROHF法を採用しないかぎり、普通は波動関数により高次のスピン固有状態が混入するのである。当たり前だが、全ての電子が同一スピンの場合は汚染は起こらない。また、α電子とβ電子の数が等しい場合も普通は汚染は起こらない。基底関数系を小さくすることにより、スピン汚染を防ぐに十分なだけ波動関数が制限されることもある。
このような汚染は、実際には同じ分子軌道を占有しているα電子とβ電子を別々に取り扱うことから生じる。メラー＝プレセット摂動法計算においても、参照波動関数として非制限波動関数を採用すると（および制限波動関数でもいくつかの場合では）この現象が生じる。また、程度は随分小さいが近似的交換相関汎関数を用いる密度汎関数理論にいて非制限コーン＝シャム法を用いた場合にも生じる。
除去.
ROHF法はスピン汚染を受けないものの、これを実行できる量子化学計算プログラムは比較的少ない。そこで、UHF波動関数からスピン汚染を除去、もしくは最低限に抑える方法が提案されている。
Annihilated UHF (AUHF) 法では、SCFの各イテレーションごとに得られる密度行列中のスピンコンタミナントを状態特異レフディン消滅演算子により消滅させる。その結果得られる波動関数は、完全に汚染が除去されるわけではないが、特に高次汚染項が消えるなど通常のUHF法に比べて劇的に改善される。
射影UHF (PUHF) では全てのスピン汚染成分をセルフコンシステントUHF波動関数から消滅させる。射影されたエネルギーは射影された波動関数の期待値として評価される。
スピン拘束UHF (SUHF) では、ハートリー＝フォック方程式にλ("Ŝ"2 − "S"("S" + 1)) の形の拘束条件を導入する。λが無限に発散するにつれてROHF解が再現される傾向にある。
GAMESS (US)では拘束条件付きUHF（CUHF; constrained UHF）法を実行できる。
密度汎関数理論.
多くの密度汎関数理論 (DFT) プログラムではスピン汚染の計算にあたり、コーン–シャム軌道をあたかもハートリー–フォック軌道であるかのようにあつかっているが、必ずしもこれは正しいとはいえない
。