Temel Psi4 İnputu: Temel bir psi4 inputu aşağıdaki şekildedir.
memory 5 gb
molecule {
0 1
H 0.0000 0.0000 0.0000
H 0.3000 0.0000 0.0000
}
set {
basis cc-pvdz
}
energy('scf')
Temel Opt/Freq/Energy İnputu: Temel bir psi4 optimizasyon inputu aşağıdaki şekildedir. En alt opt argümanı yapıyı optimize etmek için eklenir.
memory 5 gb
molecule h2o {
0 1
o
h 1 0.958
h 1 0.958 2 104.4776
}
set {
basis cc-pvdz
df_basis_scf cc-pvdz-jkfit
df_basis_cc cc-pvdz-ri
scf_type df
qc_module occ
guess sad
}
opt('mp2')
En alttaki opt yerine freq yazıldığında optimize edilen geometrinin harmonik titreşim frekansı hesaplanabilmektedir. Yine aynı şekilde opt yerine energy yazıldığında enerji hesabı yapılabilmektedir.
Diatomik İnputu: Psi4 programı ile diatomik moleküllerin optimizasyon, frekans (harmonik ve anharmonik) ve enerji hesaplamaları aşağıdaki input ile gerçekleştirilebilir. rvals değerlerini belirlerken deneysel değere 0.05 ekleyip çıkararak sağına ve soluna ekleyebilirsiniz.
molecule diatomic {
0 1
O
O 1 R
symmetry c1
}
set {
basis cc-pvdz
df_basis_scf cc-pvdz-jkfit
df_basis_cc cc-pvdz-ri
scf_type df
cc_type df
qc_module occ
guess sad
}
energies = []
rvals=[1.1468, 1.1968, 1.2468, 1.2968, 1.3468]
for r in rvals:
mol.R = r
energies.append(energy('ccsd'))
# now compute spectroscopic constatnts
phys_consts = anharmonicity(rvals, energies)
molecule mol{
0 1
F
F 1 R
symmetry c1
}
set {
basis cc-pvdz
df_basis_scf cc-pvdz-jkfit
df_basis_cc cc-pvdz-ri
reference rhf
}
energies = {}
rvals=[1.3119,1.3619,1.4119,1.4619,1.5119]
for r in rvals:
clean()
mol.R = r
energies[r]= energy('mp2')
psi4.print_out("\n")
psi4.print_out("PES\n\n")
psi4.print_out(" R [Ang] E [au] \n")
psi4.print_out("-----------------------------------------------------\n")
for r in rvals:
e = energies[r]
psi4.print_out(" %3.3f %12.12f\n" % (r, e))
Non-kovalent Etkileşim Enerjisi Hesaplamaları: Psi4 programı ile non-kovalent etkileşim enerjisi (Non-covalent Interaction Energy, NCIE) cp (counter-poise) düzeltmesi kullanılarak aşağıdaki input örneği ile hesaplanabilir. cp düzeltmesi kullanılarak yapılan hesaplamalarda monomerler ve dimerin enerji hesaplamaları tek seferde yapılır ve total etkileşim enerjisi (dimer-mono1-mono2) outputta basılır. Bazı problematik durumlarda monomerler ve dimerler ayrı ayrı inputlarda çalışıtırılıp, excel yardımı ile etkileşim enerjisi hesaplaması gerçekleştirilir.
memory 5 gb
molecule a24_1 {
0 1
O 0.00000000 -0.05786571 -1.47979303
H 0.00000000 0.82293384 -1.85541474
H 0.00000000 0.07949567 -0.51934253
--
0 1
N 0.00000000 0.01436394 1.46454628
H 0.00000000 -0.98104857 1.65344779
H -0.81348351 0.39876776 1.92934049
H 0.81348351 0.39876776 1.92934049
units angstrom
symmetry c1
}
set {
basis aug-cc-pvdz
df_basis_scf aug-cc-pvdz-jkfit
df_basis_cc aug-cc-pvdz-ri
guess sad
reference rhf
scf_type df
mp_type df
}
energy('mp2', bsse_type='cp')
Psi4 programı ile non-kovalent etkileşim enerjisi hesaplamalarında, monomerler ayrı ayrı hesaplanmak istenirse hayalet (ghost) atom yöntemi kullanılabilir. Bu yöntemde hesaplamayacağımız moleküle ait tüm atomların başına @ sembolü eklenir ve aradaki -- işareti ile charge multiplicity satırı silinir.
memory 5 gb
molecule a24_1 {
0 1
O 0.00000000 -0.05786571 -1.47979303
H 0.00000000 0.82293384 -1.85541474
H 0.00000000 0.07949567 -0.51934253
@N 0.00000000 0.01436394 1.46454628
@H 0.00000000 -0.98104857 1.65344779
@H -0.81348351 0.39876776 1.92934049
@H 0.81348351 0.39876776 1.92934049
units angstrom
symmetry c1
}
set {
basis aug-cc-pvtz
df_basis_scf aug-cc-pvtz-jkfit
df_basis_cc aug-cc-pvtz-ri
guess sad
reference rhf
scf_type df
mp_type df
}
energy('mp2')
Custom Basis Set İnputu : Programın veri tabanında mevcut olmayan veya çalışmaya özel olarak tanımlamak istediğiniz bir baz setini kullanmak için aşağıda verilen input ile devam edebilirsiniz. İlk örnekte; her bir atom için ayrı ayrı baz seti tanımlanmıştır. Programın veri tabanında mevcut olmayan ve bu yapı için özel olarak tanımlanan baz setleri my3-21G ve DZ olarak adlandırılmıştır. Detaylı bilgi için tıklayınız.
memory 5 gb
molecule bz {
X
X 1 RXX
X 2 RXX 1 90.0
C 3 RCC 2 90.0 1 0.0
C 3 RCC 2 90.0 1 60.0
C1 3 RCC 2 90.0 1 120.0
C 3 RCC 2 90.0 1 180.0
C1 3 RCC 2 90.0 1 240.0
C 3 RCC 2 90.0 1 300.0
H1 3 RCH 2 90.0 1 0.0
H 3 RCH 2 90.0 1 60.0
H 3 RCH 2 90.0 1 120.0
H1 3 RCH 2 90.0 1 180.0
H 3 RCH 2 90.0 1 240.0
H 3 RCH 2 90.0 1 300.0
RCC = 1.3915
RCH = 2.4715
RXX = 1.00
}
basis {
assign DZ
assign C my3-21G
assign H1 sto-3g
assign C1 sto-3g
[my3-21G]
cartesian
****
H 0
S 2 1.00
5.4471780 0.1562850
0.8245470 0.9046910
S 1 1.00
0.1831920 1.0000000
****
C 0
S 3 1.00
172.2560000 0.0617669
25.9109000 0.3587940
5.5333500 0.7007130
SP 2 1.00
3.6649800 -0.3958970 0.2364600
0.7705450 1.2158400 0.8606190
SP 1 1.00
0.1958570 1.0000000 1.0000000
****
[DZ]
spherical
****
H 0
S 3 1.00
19.2406000 0.0328280
2.8992000 0.2312080
0.6534000 0.8172380
S 1 1.00
0.1776000 1.0000000
****
}
set d_convergence 11
set e_convergence 11
set scf_type pk
scfenergy = energy('scf')
Çalıştığınız sistemdeki her bir atom için tanımlı ortak baz seti bulamıyorsanız baz setini haricen belirleyebilirsiniz. Aşağıdaki örnekte her bir atom için ayrı ayrı yardımcı baz seti tanımlaması yapılmıştır.
molecule {
0 1
C -1.948844 0.619359 -0.000000
C -0.016018 0.608680 0.000000
H 0.336565 -0.131599 -0.687440
H 0.345972 1.571195 -0.295683
H 0.339394 0.380532 0.983124
H -2.301427 1.359637 0.687439
H -2.304256 0.847506 -0.983124
H -2.310834 -0.343156 0.295683
Zn -0.186875 3.128829 0.000000
noreorient
nocom
symmetry c1
}
SET {
BASIS AUG-CC-PVDZ
GUESS SAD
REFERENCE RHF
SCF_TYPE DF
QC_MODULE OCC
MP2_TYPE DF
MP_TYPE DF
CC_TYPE DF
}
DF_BASIS_SCF {
ASSIGN C AUG-CC-PVDZ-JKFIT
ASSIGN H AUG-CC-PVDZ-JKFIT
ASSIGN ZN DEF2-UNIVERSAL-JKFIT
}
DF_BASIS_CC {
ASSIGN C AUG-CC-PVDZ-RI
ASSIGN H AUG-CC-PVDZ-RI
ASSIGN ZN DEF2-QZVPP-RI
}
energy('ccsd(t)')
Aşağıdaki örnekte yapıdaki her atom için ayrı ayrı ana ve yardımcı baz setleri atanmış olan bir plugin_dfocc inputu verilmiştir.
# plugin_dfocc
sys.path.insert(0, os.environ['PSI_PLUGIN_PATH'])
import plugin_dfocc
memory 5 gb
molecule H2O {
0 1
O 0.0000000000 -0.0678049466 -0.0000000000
H 0.7508329999 0.5380568534 0.0000000000
H -0.7508329999 0.5380568534 0.0000000000
symmetry c1
}
set {
reference uhf
scf_type df
cc_type df
qc_module occ
e_convergence 1e-8
d_convergence 1e-6
freeze_core true
}
set basis {
assign C aug-cc-pvtz
assign O aug-cc-pvtz
assign N aug-cc-pvtz
assign S aug-cc-pvtz
assign H aug-cc-pvtz
assign I def2-tzvp
}
set df_basis_scf {
assign C aug-cc-pvtz-jkfit
assign O aug-cc-pvtz-jkfit
assign N aug-cc-pvtz-jkfit
assign S aug-cc-pvtz-jkfit
assign H aug-cc-pvtz-jkfit
assign I def2-tzvp-jkfit
}
set df_basis_cc {
assign C aug-cc-pvtz-ri
assign O aug-cc-pvtz-ri
assign N aug-cc-pvtz-ri
assign S aug-cc-pvtz-ri
assign H aug-cc-pvtz-ri
assign I def2-tzvp-ri
}
set plugin_dfocc {
e_convergence 1e-7
nat_orbs true
wfn_type df-ccsd(t)
}
energy('plugin_dfocc')
Çözücü Ortamında Çalışmak için İnput : Çözücü (solvent) ortamında hesaplama yapmak için Psi4-PCM modulü kullanılımı: Sistemde kullanım için yazılım adı olarak psi4pcm kullanılarak aşağıdaki input çalıştırılır. Detaylı bilgi için tıklayınız.
memory 5 gb
molecule G1 {
1 1
N 67.0900040000 103.1700060000 86.6999970000
H 66.5800020000 102.5299990000 86.0999980000
H 68.0499950000 102.8499980000 86.7800060000
H 66.6500020000 103.1499940000 87.6100010000
H 67.0761236735 104.1206203265 86.3391827551
noreorient
nocom
symmetry c1
}
set {
basis cc-pvtz
df_basis_scf cc-pvtz-jkfit
df_basis_cc cc-pvtz-ri
guess gwh
reference rhf
scf_type df
qc_module occ
mp2_type df
mp_type df
pcm true
pcm_scf_type total
pcm_cc_type pte
}
pcm =
{
Units = Angstrom
Medium
{
SolverType = IEFPCM
Solvent = Water
}
Cavity
{
RadiiSet = UFF
Type = GePol
Scaling = False
Area = 1.0
Mode = Implicit
}
}
energy('mp2')
Harmonik Titreşim Frekansı Hesabının Paralel Çalıştırılması: Psi4 programında freq satırına eklenen mode='sow' opsiyonu ile frekans işi her bir displacement bir inputta olacak şekilde bölünür. Yapıdaki atom sayısına bağlı olarak çok sayıda frekans inputu ".in" uzantılı olarak oluşur. Bu uzantıların herbiri ilgili linux komutları ile ".inp" uzantılı hale getirilir (rename, prename, vb.). Tüm frekans inputları çalıştırıldıktan sonra, outputların olduğu dizinde freq-master.inp inputu çalıştırılarak harmonik titreşim frekansları elde edilir (freq-master.out dosyasında).
memory 5 gb
molecule h2o {
0 1
o
h 1 0.958
h 1 0.958 2 104.4776
}
set {
basis cc-pvdz
df_basis_scf cc-pvdz-jkfit
df_basis_cc cc-pvdz-ri
scf_type df
qc_module occ
}
freq('mp2', mode='sow')