前回の記事でアセトニトリルの光の吸収波長と吸収強度(振動子強度)の計算事例について紹介させていただきました。今回は得られたデータからのスペクトル表示について紹介したいと思います。スペクトル表示については、Hill Research group が公開している'PlotBand'のコードを参考にしました。
まずはライブラリーのインポートと座標データの設定です。
続いてTD計算の設定を行い、得られた結果を読み込み、numpyのアレイ型のデータとしています。この辺は前回と同様にになります。
ここからが前回とは異なり、スペクトル表示に関する部分になってきます。
表示用ライブラリーとして、matplotlib を読み込み、スペクトル表示のパラメター値(表示開始:start/nm、終了波長:finish/nm、ポイント数:points)を設定しています。
また、stdev, constant以降はスペクトルデータ処理のための設定(値)になります。
続いて、表示のためのデータ処理ですが、この部分は冒頭にも記載しましたが、Hill Research group が公開している'PlotBand'を参考利用させて頂いています。
計算で算出された吸収波長を中心にガウス分布に従った吸収をするという設定で吸収スペクトルを作成しています(def gaussBand)。続いて設定したstart, finsh, pointに従い、計算する波長のポイントの配列(np.linespace:x)を作成しています。
最後に計算で算出された吸収波長(bands)に関するガウス分布データをfor 文内で計算し、計算されたデータ(thispeak)を集約しています(composite)。
スペクトル表示はmatplotlib で横軸をx、縦軸をcompositeとして表示させています。
上記は得られた計算結果になります。数値データとして得られた吸収波長と振動子強度から、波長とintensityの関係を表す吸収スペクトルが表示されています。スペクトル表示用にデータ処理されていますので、あくまで目安ですが化合物の光の吸収をイメージするには有用な情報になるかと思います。皆さんの参考になれば幸いです。
次回は分極率の計算例について紹介したいと思います。