0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】 Hartreeからボルツマン分布を計算するプログラム

Posted at

#イントロダクション
Gaussianの最適化計算の結果を入れて、存在比を計算するプログラムがよく必要になります。そのたびに作るがなくしてしまうし、単位変換とかめんどくさい。
解説ないです。間違いがあったら指摘してくれると嬉しいです。
#作った

dist.py

import numpy as np


def boltz(E_list, temp=298.15):
    """
    Gaussian Energy to Boltzmann distribution
    ---------------------------
    input
    E_list: Hartee numpy array
    temp: (K)
    ---------------------------
    output
    Distribution numpy array
    Normalized so that the sum is 10
    """
    E_list = E_list - np.amin(E_list)
    kb = 1.38064852e-23  # J/K
    h2J = 4.3597482e-18  # Hartree / J
    beta = 1 / (kb * temp)  # 1/J
    dist = np.exp(-beta * E_list * h2J)
    return dist / np.sum(dist) * 10


def main():
    E_list = np.array([-600.818043678, -600.817622812, -600.817222895])
    dist = boltz(E_list)
    print(dist)


if __name__ == "__main__":
    main()


boltzが今回作った関数
Hartreeをいれて、存在比(和が10になるように規格化)が帰ってくる。

#参考
HPCシステムズ・計算科学ソリューションズ
HartreeからJへの変換するときの値を参考にさせていただきました。accessed at 2020/01/22

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?