Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen mpqc komutudur.
Program:
ADI
mpqc - Devasa Paralel Kuantum Kimyası programı (MPQC)
SİNOPSİS
mpqc [seçenekleri] [Dosya]
TANIM
MPQC moleküllerin özelliklerini hesaplar, ab başlangıç, çok çeşitli bilgisayarlarda
mimariler.
Kapalı kabuk ve genel kısıtlı açık kabuk HartreeFock enerjilerini hesaplayabilir ve
gradyanlar, ikinci dereceden açık kabuk pertürbasyon teorisi (OPT2[2]) ve Zaveraged pertürbasyon
teori (ZAPT2) enerjileri ve ikinci dereceden kapalı kabuk MoellerPlesset pertürbasyon teorisi
enerjiler ve gradyanlar. Ayrıca her iki durumda da molekülleri optimize etmek için yöntemler içerir.
Kartezyen veya iç koordinatlar.
MPQC, nesne yönelimli programlama teknikleri kullanılarak tasarlanmış ve C++'da uygulanmıştır.
Programlama dili.
SEÇENEKLER
MPQC'ye seçenekler ve ardından isteğe bağlı bir girdi dosyası adı verilebilir. Eğer giriş dosyası adı
verilmezse, varsayılan olarak 'mpqc.in' olacaktır. Aşağıdaki komut satırı seçenekleri
tanınan:
-o Çıktı dosyasının adını verir. Varsayılan, konsoldur.
-i Basit bir girdi dosyasını nesne yönelimli bir girdi dosyasına dönüştürün ve sonucu yazın
çıktıya. Hesaplama yapılmaz.
-mesaj grp
A AyrıştırılmışAnahtarDeğeri bir özelliği MesajGrp nesne. Varsayılan, nasıl olduğuna bağlıdır
MPQC derlendi.
-memorygrp
A AyrıştırılmışAnahtarDeğeri bir özelliği BellekGrp nesne. Varsayılan, nasıl olduğuna bağlıdır
MPQC derlendi.
-threadgrp
A AyrıştırılmışAnahtarDeğeri bir özelliği KonuGrp nesne. Varsayılan, nasıl olduğuna bağlıdır
MPQC derlendi.
-l Temel fonksiyonların sayısı için bir limit belirler. Varsayılan sıfırdır, yani bir
sınırsız sayıda temel fonksiyon.
-W Çalışma dizinini ayarlar. Varsayılan, geçerli dizindir.
-c Girişi kontrol edin ve çıkın.
-v Sürüm numarasını yazdırın.
-w Garanti bilgilerini yazdırın (garanti yoktur).
-d Girişte bir hata ayıklayıcı nesnesi verildiyse, hata ayıklayıcıyı en kısa sürede çalıştırmaya başlayın.
MPQC başlatılır.
-h Bir seçenekler listesi yazdırın.
-f Nesne yönelimli girdi dosyasının adı. Varsayılan, mpqc.in'dir. Bu olamaz
başka bir girdi dosyası belirtilmişse kullanılır. Bu seçenek, her ikisi de girdi olarak kullanımdan kaldırılmıştır.
dosya biçimleri, komut satırında giriş dosyası adı verilerek okunabilir.
herhangi bir seçenek bayrakları.
Bazı MPI ortamları, komut satırını bağımlı programlara iletmez, ancak gerektiğinde sağlar.
MPI_Init çağrılır. MPQC'nin, başlatma sırasında değil, başlatma sırasında MPI_Init'i aramasını sağlamak için
MPIMessageGrp oluşturulduğunda, yürütülebilir dosyayı mpqc-mpi olarak adlandırın.
ÇEVRE DEĞİŞKENLER
MPQC, iletişimi kurmak ve kitaplık dosyalarını bulmak için dört çevresel değişkene bakar.
Programları paralel olarak çalıştırmak için makineye özel kitaplıklar ve yardımcı programlar diğerlerine bakabilir.
ortam değişkenleri de vardır. Tüm platformlarda geçerli olan dördü:
SCLIBDIR
Kitaplık dizininin adı.
MESAJGRP
A AyrıştırılmışAnahtarDeğeri bir özelliği MesajGrp nesne. Varsayılan, nasıl olduğuna bağlıdır
MPQC derlendi. Bkz. MesajGrp Daha fazla bilgi için sınıf belgelerine bakın.
BELLEKGRP
A AyrıştırılmışAnahtarDeğeri bir özelliği BellekGrp nesne. Varsayılan, nasıl olduğuna bağlıdır
MPQC derlendi ve MesajGrp kullanımda.
İPLİKGRP
A AyrıştırılmışAnahtarDeğeri bir özelliği KonuGrp nesne. Varsayılan, nasıl olduğuna bağlıdır
MPQC derlendi.
Varsayılan olarak, MPQC kitaplık dosyalarını önce lib alt dizininde bulmaya çalışır.
kurulum dizini ve ardından kaynak kod dizini. Kitaplık dosyaları yapılamıyorsa
bulunduğunda, MPQC, SCLIBDIR çevresel değişkeni ile yeni konum hakkında bilgilendirilmelidir.
Diğer üç anahtar kelime nesneleri belirtir. Bu bir mini vererek yapılır AyrıştırılmışAnahtarDeğeri giriş
bir dizide. Nesne anonimdir, yani onunla hiçbir anahtar sözcük ilişkilendirilmemiştir. Burada
Bir örnek:
setenv MESAJGRP 'ShmMessageGrp>:(n = 4)'
ORTAK BELLEK ÇOK İŞLEMCİ İLE SYSV'si IPC
Varsayılan olarak, MPQC yalnızca bir CPU üzerinde çalışacaktır. Daha fazlasını belirtmek için bir ShmMessageGrp
komut satırındaki nesne. Aşağıdakiler mpqc'yi dört işlemde çalıştırır:
mpqc -messagegrp 'ShmMessageGrp>:(n = 4)' girdi_dosyası
Alternatif olarak, ShmMessageGrp nesne çevresel bir değişken olarak verilebilir:
setenv MESAJGRP 'ShmMessageGrp>:(n = 4)'
mpqc girdi_dosyası
MPQC beklenmedik bir şekilde ölürse, paylaşılan bellek segmentleri ve semaforlar
makine. Bunlar derhal temizlenmelidir, aksi takdirde diğer işlerin çalışması engellenebilir.
başarıyla Bu kaynaklardan herhangi birine sahip olup olmadığınızı görmek için ipcs komutunu kullanın.
Çıktı şöyle bir şeye benzeyecektir:
13 Mart Çarşamba 14:42:18 1996 itibariyle /dev/kmem'den IPC durumu
T ID ANAHTAR MOD SAHİBİ GRUBU
Mesaj Kuyrukları:
Paylaşılan Bellek:
m 288800 0x00000000 --rw------- cljanss kullanıcısı
semaforlar:
s 390 0x00000000 --ra------- cljanss kullanıcısı
s 391 0x00000000 --ra------- cljanss kullanıcısı
IRIX'te yukarıdaki örnekte cljanss tarafından kullanılan IPC kaynaklarını kaldırmak için şunu yazın:
ipcrm -m 288800
ipcm -s 390
ipcm -s 391
Ve Linux'ta şunu yazın:
ipcrm shm 288800
ipcrm sem 390
ipcrm sem 391
ORTAK BELLEK ÇOK İŞLEMCİ İLE POSIX İŞ PARÇACIĞI
Varsayılan olarak, MPQC yalnızca bir iş parçacığı ile çalışır. Daha fazlasını belirtmek için bir
PthreadThreadGrp komut satırındaki nesne. MPQC, büyük bir boyuta paralelleştirilmemiştir.
daha geleneksel dağıtılmış bellek modelinde olduğu gibi iş parçacıklarıyla
bu tekniği kullanarak en iyi performansı alamayabilirsiniz. Öte yandan bellek yükü
daha düşüktür ve süreçler arası iletişime gerek yoktur.
Aşağıdakiler MPQC'yi dört iş parçacığında çalıştırır:
mpqc -threadgrp'PthreadThreadGrp>:(num_threads = 4)' girdi_dosyası
Alternatif olarak, PthreadThreadGrp nesne çevresel bir değişken olarak verilebilir:
setenv THREADGRP'PthreadThreadGrp>:(n = 4)'
mpqc girdi_dosyası
ORTAK OR DAĞITILIR BELLEK ÇOK İŞLEMCİ İLE MPI
A MPIMessageGrp nesne MPI kullanarak çalıştırmak için kullanılır. Kullanılan düğüm sayısı tarafından belirlenir
MPI çalışma zamanı ve giriş verisi olarak belirtilmemiş MPIMessageGrp.
mpqc -messagegrp 'MPIMessageGrp>:()' girdi_dosyası
Alternatif olarak, MPIMessageGrp nesne çevresel bir değişken olarak verilebilir:
setenv MESAJGRP 'MPIMessageGrp>:()'
mpqc girdi_dosyası
MPI işlerini başlatmak için genellikle özel bir komut gerekir; tipik olarak mpirun olarak adlandırılır.
GİRİŞ
MPQC iki giriş biçimini destekler. Birincil girdi, nesne yönelimli bir biçimdir.
kullanıcılara tüm MPQC seçeneklerine erişim sağlar. İkinci biçim, aşağıdakilerin bir alt kümesine erişime izin verir:
MPQCs yetenekleri, ancak daha sezgisel ve öğrenmesi daha kolay. Yeni kullanıcılara tavsiye edilir
basitleştirilmiş formatla başlayın. MPQC, basitleştirilmiş formatı diğer formata dönüştürmek için kullanılabilir.
-i seçeneğiyle tam nesne yönelimli biçim.
Basit Giriş
Basit giriş biçimi, bir ':' ve ardından bir değer gelen anahtar sözcüklerden oluşur. bu
anahtar kelimeler büyük/küçük harfe duyarlıdır. Değerler parantez içinde bulunan seçeneklerle değiştirilebilir.
Örneğin, aşağıdaki girdi, yoğunluğu kullanarak bir su optimizasyonu gerçekleştirir
B3LYP değişim korelasyon fonksiyoneli ile fonksiyonel teori:
% B3LYP su optimizasyonu
optimize et: evet
yöntem: KS (xc = B3LYP)
temel: 3-21G*
molekülüne:
0.172 0.000 0.000
H0.745 0.000 0.754
H 0.745 0.000 -0.754
Yorumlar % ile başlar ve satırın sonuna kadar devam eder. içeren temel küme adları
boşluk veya parantez gibi özel karakterler bir çift çift karakterin içinde alıntılanmalıdır.
alıntılar. Kabul edilen anahtar kelimeler şunlardır:
molekül
Atom türlerini ve koordinatlarını verir. Aşağıdaki seçenekler kullanılabilir
bohr
Koordinatlar Bohr cinsinden verilmiştir.
angström
Koordinatlar Angstrom cinsinden verilmiştir.
ücret
Bu seçenek, bir 'element xyz' dörtlüsünden sonra verilebilir. Bu,
atoma yüklenir. Örneğin, bir cismin içindeki hayalet atomlar için (yük = 0) verilebilir.
denge düzeltme hesaplaması.
çokluk
Molekülün çokluğunu verir. Varsayılan 1'dir.
optimize
Evet ise, bir optimizasyon gerçekleştirilecektir. Varsayılan hayır. Devamındaki
seçenekler verilebilir.
Kartezyen
Kartezyen koordinatlarını kullanın.
iç
Dahili koordinatları kullanın.
gereksiz
Gereksiz dahili koordinatları kullanın.
eğim
Evet ise, bir gradyan hesaplaması yapılacaktır. Varsayılan hayır.
frekansları
Evet ise, frekanslar elde edilecektir. Varsayılan hayır.
ücret
Molekül üzerindeki yükü belirtir. Varsayılan 0'dır.
yöntem
Yöntemi belirtir. Varsayılan yoktur ve olası değerler şunlardır:
HF
Hartree-Fock. Çokluk > 1 ise sınırsız HF kullanılır
sağ
Kısıtlı Hartree-Fock.
UHF
Sınırsız Hartree-Fock.
KS
Kohn-Sham. Çokluk > 1 ise sınırsız KS kullanılır
RKS
Kısıtlı Kohn-Sham.
Birleşik Krallık
Sınırsız Kohn-Sham.
MP2
İkinci dereceden Moeller-Plesset pertürbasyon teorisi. Yalnızca çokluk için kullanılabilir =
1.
ZAPT2
Z-ortalamalı pertürbasyon teorisi. Yalnızca çokluk > 1 için kullanılabilir. Gradyan yok,
optimizasyon veya frekanslar mümkündür.
Aşağıdaki seçenekler KS, RKS ve UKS yöntemlerinde geçerlidir:
ızgara
Sayısal entegrasyonlar için kullanılacak ızgarayı belirtir. Aşağıdaki değerler olabilir
verilen:
kaba
kaba
orta
ince
x ince
ultra ince
xc
Değişim korelasyonu işlevini belirtir. Varsayılan yok. içindeki tabloya bakın
the StdDenFonksiyonel olası değerler için sınıf belgeleri.
temel
Temel seti belirtir. Varsayılan yok. içindeki tabloya bakın GaussTemel Kümesi
mevcut temel kümeler için sınıf belgeleri.
yeniden
Bir optimizasyonu yeniden başlatmak için evet olarak ayarlayın. Varsayılan hayır.
kontrol noktası
Optimizasyon sırasında kontrol noktası dosyalarını kaydetmemek için hayır olarak ayarlayın. Varsayılan evet'tir.
simetri
Molekülün nokta grubunun Schoenflies sembolünü belirtir. Varsayılan
auto, programın en yüksek dereceli Abelian alt grubunu bulmasına neden olacak
molekülü.
belge
Her bir indirgenemez gösterimde iki kat işgal edilmiş orbitallerin sayısını verir
parantez içindeki bir listede. Simetri belirtilmelidir ve otomatik olmamalıdır. yöntem
kısıtlanmalıdır.
futbol
Her bir indirgenemez gösterimde tek dolu orbitallerin sayısını verir
parantez içindeki bir listede. Simetri belirtilmelidir ve otomatik olmamalıdır. yöntem
kısıtlanmalıdır.
alfa
Her indirgenemez gösterimde alfa dolu orbitallerin sayısını verir
parantez içindeki bir listede. Simetri belirtilmelidir ve otomatik olmamalıdır. yöntem
sınırsız olmalıdır.
beta
Her bir indirgenemez gösterimde beta dolu orbitallerin sayısını verir.
parantez içindeki bir liste. Simetri belirtilmelidir ve otomatik olmamalıdır. Yöntem
sınırsız olmak.
frozen_docc
Donmuş çekirdek orbitallerinin sayısını verir. Tek bir tamsayı veya bir
her bir indirgenemez temsilde donmuş çekirdek orbitallerini veren parantez içindeki liste.
İkinci durumda, simetri verilmeli ve otomatik olmamalıdır.
frozen_uocc
Donmuş sanal yörüngelerin sayısını verir. Tek bir tamsayı veya bir
her indirgenemez durumdaki donmuş sanal yörüngeleri veren parantez içindeki liste
temsil. İkinci durumda, simetri verilmeli ve otomatik olmamalıdır.
Nesne odaklı Giriş
MPQC, kullanıcının doğrudan aşağıdaki nesneleri belirtmesine izin veren nesne yönelimli bir programdır.
MPQC daha sonra enerjileri, özellikleri vb. elde etmek için manipüle eder. Bu, girdiyi çok
esnek, ama çok karmaşık. Ancak, çoğu hesaplama bire oldukça benzer olmalıdır.
Bu bölümün ilerleyen kısımlarında verilen örneklerden Başlamanın en iyi yolu aşağıdakilerden birini kullanmaktır.
örnek girdi dosyaları ve ihtiyaçlarınızı karşılamak için değiştirin.
MPQC, bir AyrıştırılmışAnahtarDeğeri üzerinde belirtilen girdi dosyasını ayrıştıran nesne
komut satırı. Girdi dosyasının formatı, . Temelde ücretsiz
Anahtar sözcükleri ve anahtar sözcüklerin mantıksal gruplandırmalarını değerlerle ilişkilendiren biçim girişi. bu
değerler skaler, dizi veya nesne olabilir.
MPQC tarafından tanınan anahtar sözcükler, mpqc önekiyle başlar. Yani, iç içe olmaları gerekir
bir mpqc: ( ve a ) arasında. Alternatif olarak, her bir anahtar kelimeye ayrı ayrı ön ek eklenebilir:
mpqc:. Birincil anahtar kelimeler aşağıda verilmiştir. Anahtar sözcüklerden bazıları nesneleri belirtir,
bu durumda nesne daha fazlasını gerektirecektir AyrıştırılmışAnahtarDeğeri giriş. Bu nesneler oluşturulur
girdilerini kullanarak AyrıştırılmışAnahtarDeğeri yapıcılar. Bu yapıcılar ile belgelenmiştir
sınıf için kaynak kodu belgeleri.
köstebek
Bu, MPQC için en önemli anahtar kelimedir. Şunları belirtir: MolekülerEnerji nesne.
Bu, bir molekülün enerjisini nasıl hesaplayacağını bilen bir nesnedir. bu
uzmanlıkları MolekülerEnerji en yaygın olarak kullanılanlar CLKS, HSOSKS, UKS,
CLHF, HSOSHF, UHF ve MBPT2.
yeğlemek
Bu anahtar kelime optimizasyonlar için belirtilmelidir. bir belirtir optimize nesne.
Genellikle, QNewtonOpt minimum bulmak için en iyisidir ve EFCOpt geçiş için en iyisidir
devletler.
frekansı
Frekansları hesaplamak için bu anahtar kelime belirtilmelidir. bir belirtir
Moleküler Frekanslar nesne.
iplik
Bu, bir tür nesne belirtir KonuGrp avantaj sağlamak için kullanılabilecek
belirli hesaplama türleri için paylaşılan bellekli çok işlemcili makineler. bu anahtar kelime
vererek geçersiz kılınabilir KonuGrp ortamda veya komut satırında. Bkz.
Daha fazla bilgi için MPQC'yi çalıştırma ile ilgili bölüm.
kontrol noktası
Bu anahtar kelimenin değeri Boolean'dır. Doğruysa, optimizasyonlar
Her yinelemeden sonra kontrol noktası. Kontrol noktası dosyası .ckpt'dir. Varsayılan
kontrol noktasıdır.
Kayıt Yeri
Bu anahtar kelimenin değeri Boolean'dır. Doğruysa, optimize edicinin durumları ve
hesaplama tamamlandıktan sonra dalga fonksiyonu nesneleri kaydedilecektir. çıktı dosyası
sonek .wfn'dir. Varsayılan, durumu kaydetmektir.
yeniden
Bu anahtar kelimenin değeri Boolean'dır. Doğruysa, mpqc yeniden başlatmayı dener.
hesaplama. Kontrol noktası dosyası bulunamazsa, hesaplama sanki
değer yanlıştı. Varsayılan doğrudur.
yeniden başlatma_dosyası
Bu, yeniden başlatma bilgilerinin okunduğu bir dosyanın adını verir. eğer dosya
ad .wfn ile biter MolekülerEnerji nesne geri yüklenecektir. Aksi takdirde, optimize
nesne geri yüklenecektir. Varsayılan dosya adı, dosyaya .ckpt eklenerek oluşturulur.
uzantı kaldırılmış olarak dosya adını girin.
do_enerji
Bu anahtar kelimenin değeri Boolean'dır. Doğruysa, tek noktalı bir enerji hesaplaması
için yapılması MolekülerEnerji mole anahtar sözcüğüyle verilen nesne. Varsayılan
doğru.
do_gradient
Bu anahtar kelimenin değeri Boolean'dır. Doğruysa, tek nokta gradyan hesaplaması
için yapılacak MolekülerEnerji mole anahtar sözcüğüyle verilen nesne. Varsayılan
yanlış.
optimize
Bu anahtar kelimenin değeri Boolean'dır. true ve opt anahtar sözcüğü geçerli olarak ayarlanmışsa
değer, daha sonra bir optimizasyon gerçekleştirilecektir. Varsayılan doğrudur.
yazma_pdb
Bu anahtar kelimenin değeri Boolean'dır. Eğer doğruysa moleküler yapıya sahip bir PDB dosyası
koordinatlar yazılacaktır.
Dosya
Bu anahtar kelimenin değeri, kontrol noktası ve
diğer dosya adları oluşturulur. Varsayılan, girdi dosyasının temel adıdır.
baskı_zamanları
Bu doğruysa, çalıştırmanın sonunda zamanlama bilgisi yazdırılır. Varsayılan
doğru.
Ayrıca, mpqc'ye nasıl yapılacağına dair bazı teknik ayrıntıları anlatan bazı yardımcı anahtar sözcükler de vardır.
hesaplama:
ayıklamak
Bu isteğe bağlı anahtar kelime, Debugger sorunu bulmaya yardımcı olmak için kullanılabilecek nesne
MPQC ciddi bir hatayla karşılaşırsa.
matris seti
Bu isteğe bağlı anahtar kelime, SCMatrixKit üretmek için kullanılan uzmanlık
İstenen türdeki matrisler. Varsayılan bir ReplSCMatrixKit hangi çoğalır
tüm düğümlerdeki matrisler. Diğer seçenekler tam olarak test edilmemiştir.
ÖRNEKLER
Bu örnek girdi, su üzerinde bir Hartree-Fock hesaplaması yapar. Tamamı aşağıdadır
giriş, ardından açıklamalarla birlikte bir döküm.
% Bu girdi su üzerinde bir Hartree-Fock hesaplaması yapar.
molekülmolekül>: (
simetri = C2V
birim = angström
{ atom geometrisi } = {
O [ 0.00000000 0.00000000 0.37000000 ]
H [ 0.78000000 0.00000000 -0.18000000 ]
H [ -0.78000000 0.00000000 -0.18000000]
}
)
temelGaussTemel Kümesi>: (
isim = 'STO-3G'
molekül = $:molekül
)
mpqc :(
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
)
)
Açıklayıcı bir yorumla başlıyoruz. Yorumlar % ile başlar. %'den %'ye kadar her şey
satırın sonu yoksayılır.
% Bu girdi su üzerinde bir Hartree-Fock hesaplaması yapar.
şimdi bir ayar yapalım molekül nesne. Cismin adı önce gelir, moleküldür.
Daha sonra köşeli parantez içinde sınıf olan molekülün türü gelir. molekül.
anahtar kelime ve sınıf adının ardından bir : gelir ve ardından gruplandırılmış birkaç girdi parçası
bir çift eşleşen parantez arasında. Bu parantezler şu bilgileri içerir:
verilecek molekül KeyVal yapıcı.
molekülmolekül>: (
Molekülün nokta grubuna ihtiyaç vardır. Bu, bir duruma simetri atayarak yapılır.
başlatmak için kullanılan duyarsız Schoenflies sembolü NoktaGrubu nesne. bir Abelian
nokta grubu kullanılmalıdır.
simetri = C2V
Kartezyen koordinatlar için varsayılan birim Bohr'dur. Diğer birimleri şu şekilde belirtebilirsiniz:
başlatmak için kullanılacak bir dizgeye atanan birim Birimler nesne.
birim = angström
Son olarak atomlar ve koordinatlar verilir. Bu steno tablosunda verilebilir
aşağıda gösterilen sözdizimi. Tablonun başlıkları, ilk çift arasındaki anahtar kelimelerdir.
parantez. Bunları bir = ve verileri içeren başka bir parantez çifti izler.
İlk veri, diziye karşılık gelen dizinin ilk öğesine atanır.
ilk başlık, atom. İkinci veri dizinin ilk elemanına atanır.
ikinci başlık, geometri vb. ile ilişkili. Burada ikinci veri aslında
bir vektör: ilk atomun x, y ve z koordinatları.
{ atom geometrisi } = {
O [ 0.00000000 0.00000000 0.37000000 ]
H [ 0.78000000 0.00000000 -0.18000000 ]
H [ -0.78000000 0.00000000 -0.18000000]
}
)
Daha sonra, bir temel küme nesnesi verilir.
temelGaussTemel Kümesi>: (
isim = 'STO-3G'
molekül = $:molekül
)
Şimdi girdinin ana gövdesini vereceğiz. Sonraki tüm anahtar kelimeler şu şekilde gruplandırılacaktır:
girdinin mpqc bölümü (yani, her bir anahtar kelimenin önüne mpqc: eklenecektir).
mpqc :(
Daha sonra, bir uzmanlaşma sağlayan mole anahtar kelimesini veriyoruz. MolekülerEnerji
sınıf. Bu durumda kapalı kabuklu bir Hartree-Fock hesaplaması yapacağız. ile yapılır
bir tür nesne CLHF. anahtar kelimeler CLHF kabul belgeleri ile birlikte verilir
için CLHF sınıfı, genellikle const RefKeyVal& yapıcısının açıklamasında
sınıf. Ayrıca CLHF belgeler üst sınıfların bir listesidir. Her bir ebeveyn
sınıfların da girdileri olabilir. Bu girdi, girdinin geri kalanına dahildir.
çocuk sınıfı.
köstebekCLHF>: (
Sonraki satır, kullanılacak molekülü belirtir. Dikkat edilmesi gereken iki şey var, ilk olarak
bu aslında girdide başka bir yerde tam molekül spesifikasyonuna bir referanstır.
dosya. $ bunun bir referans olduğunu gösterir ve $'dan sonraki anahtar kelime ise
Molekülün gerçek konumu. Anahtar kelimenin önündeki :, anahtar kelimenin
girişteki mevcut konuma göre değil, daha çok
anahtar kelime ağacı. Böylece bu çizgi, yukarıda belirtilen molekülü yakalar. bu
molekül nesnesi buraya yerleştirilebilirdi, ancak çoğu zaman birkaç
nesneler tamamen aynı nesneye atıfta bulunur ve bu yalnızca referanslar kullanılarak yapılabilir.
İkinci nokta, belgelerine bakarsanız CLHF, göreceksin ki
molekül anahtar sözcüğünü okumaz. Ancak, ana sınıflarını takip ederseniz
MolekülerEnerji, molekülün gerçekten okunduğunu göreceksiniz.
molekül = $:molekül
Molekül verdiğimiz gibi base anahtar sözcüğü ile base setini aşağıdaki gibi belirtin:
temel = $:baz
Şimdi yukarıda açtığımız parantezleri kapatıyoruz ve işimiz bitti.
)
)
Örnek Nesne odaklı Giriş dosyalar
mpqc'yi kullanmaya başlamanın en kolay yolu, en çok kullanılan örnek girdilerden biriyle başlamaktır.
neredeyse senin probleminle eşleşiyor. Burada gösterilen tüm örnek girdiler şurada bulunabilir:
src/bin/mpqc/samples dizini.
Hartree-Fock Enerji
Aşağıdaki girdi, suyun Hartree-Fock enerjisini hesaplayacaktır.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = C2V
birim = angström
{ atom geometrisi } = {
O [ 0.00000000 0.00000000 0.37000000 ]
H [ 0.78000000 0.00000000 -0.18000000 ]
H [ -0.78000000 0.00000000 -0.18000000]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = 'STO-3G'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
bellek = 16000000
)
)
MP2 Enerji
Aşağıdaki girdi suyun MP2 enerjisini hesaplayacaktır.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = C2V
birim = angström
{ atom geometrisi } = {
O [ 0.00000000 0.00000000 0.37000000 ]
H [ 0.78000000 0.00000000 -0.18000000 ]
H [ -0.78000000 0.00000000 -0.18000000]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = 'STO-3G'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Molekülün enerjisini hesaplamak için % yöntemi
köstebekMBPT2>: (
molekül = $:molekül
temel = $:baz
bellek = 16000000
% referans dalga fonksiyonu
referansCLHF>: (
molekül = $:molekül
temel = $:baz
bellek = 16000000
)
)
)
Hartree-Fock Optimizasyon
Aşağıdaki girdi, yarı Newton yöntemini kullanarak suyun geometrisini optimize edecektir.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = C2V
birim = angström
{ atom geometrisi } = {
O [ 0.00000000 0.00000000 0.37000000 ]
H [ 0.78000000 0.00000000 -0.18000000 ]
H [ -0.78000000 0.00000000 -0.18000000]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = '6-31G*'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
jeneratörIntCoorGen>: (
molekül = $:molekül
)
)
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
renk = $..:koor
bellek = 16000000
)
Moleküler geometri için % optimizer nesnesi
tercihQNewtonOpt>: (
fonksiyon = $..:mol
GüncellemeBFGSGüncelleme>: ()
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
)
)
Optimizasyon ile a bilgisayarlı Tahmin Hesseli
Aşağıdaki girdi, yarı Newton yöntemini kullanarak suyun geometrisini optimize edecektir. bu
Hessian'ın daha düşük bir teori düzeyinde hesaplanacağını tahmin edin.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = C2V
birim = angström
{ atom geometrisi } = {
O [ 0.00000000 0.00000000 0.37000000 ]
H [ 0.78000000 0.00000000 -0.18000000 ]
H [ -0.78000000 0.00000000 -0.18000000]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = '6-31G*'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
jeneratörIntCoorGen>: (
molekül = $:molekül
)
)
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
renk = $..:koor
bellek = 16000000
tahmin_hessianFinDispMolekülerHessian>: (
molekül = $:molekül
only_totally_smetric = evet
elimine_cubic_terms = hayır
kontrol noktası = hayır
enerjiCLHF>: (
molekül = $:molekül
bellek = 16000000
temelGaussTemel Kümesi>: (
isim = '3-21G'
molekül = $:molekül
)
)
)
)
Moleküler geometri için % optimizer nesnesi
tercihQNewtonOpt>: (
fonksiyon = $..:mol
GüncellemeBFGSGüncelleme>: ()
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
)
)
Optimizasyon kullanma Newton Yöntem
Aşağıdaki girdi, Newton'un yöntemini kullanarak suyun geometrisini optimize edecektir. bu
Hessian, optimizasyondaki her adımda hesaplanacaktır. Ancak, Hessian yeniden hesaplama
genellikle maliyete değmez; için hesaplanan Hessian'ı bir tahmin olarak Hessian'ı kullanmayı deneyin.
Newton optimizasyonuna başvurmadan önce yarı Newton yöntemi.
% Emacs kullanmalıdır -*- KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = c2v
birim = angström
{ atom geometrisi } = {
O [ 0.00000000 0.00000000 0.36937294 ]
H [ 0.78397590 0.00000000 -0.18468647 ]
H [ -0.78397590 0.00000000 -0.18468647]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = '3-21G'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
yeniden başlat = hayır
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
jeneratörIntCoorGen>: (
molekül = $:molekül
)
)
do_energy = hayır
do_gradient = hayır
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
bellek = 16000000
renk = $..:koor
tahmin_dalga işleviCLHF>: (
molekül = $:molekül
toplam_şarj = 0
temelGaussTemel Kümesi>: (
molekül = $:molekül
isim = 'STO-3G'
)
bellek = 16000000
)
kendirFinDispMolekülerHessian>: (
only_totally_smetric = evet
elimine_cubic_terms = hayır
kontrol noktası = hayır
)
)
optimize = evet
Moleküler geometri için % optimizer nesnesi
tercih : (
print_hessian = evet
max_yiterasyon = 20
fonksiyon = $..:mol
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
)
)
Hartree-Fock Frekanslar
Aşağıdaki girdi, Hartree-Fock frekanslarını sonlu yer değiştirmelerle hesaplayacaktır. A
termodinamik analiz de yapılacaktır. Optimizasyon girişi de sağlanırsa,
daha sonra önce optimizasyon, ardından frekanslar çalıştırılacaktır.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = C1
{ atom geometrisi } = {
O [ 0.0000000000 0.0000000000 0.8072934188 ]
H [ 1.4325589285 0.0000000000 -0.3941980761 ]
H [ -1.4325589285 0.0000000000 -0.3941980761]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = 'STO-3G'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
bellek = 16000000
)
% titreşim frekansı girişi
frekansMoleküler Frekanslar>: (
molekül = $:molekül
)
)
Verilmesi koordinatlar ve a Tahmin Hesseli
Aşağıdaki örnek, gerçekten bağımsız olan birkaç özelliği göstermektedir. Değişken
koordinatlar otomatik olarak oluşturulmak yerine açıkça verilir. Bu özellikle
Burada olduğu gibi, bir Hessian tahmini sağlanacağı zaman yararlıdır. Bu Hessian, tarafından verildiği gibi
kullanıcı, tamamlanmadı ve QNewtonOpt nesne kullanarak eksik değerleri dolduracak
tarafından sağlanan bir Hessian tahmini MolekülerEnerji nesne. Ayrıca sabit koordinatlar
bu örnek girişte verilmiştir.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = C1
{ atom geometrisi } = {
H [0.088 2.006 1.438 ]
O [ 0.123 3.193 0.000 ]
H [ 0.088 2.006 -1.438 ]
O [ 4.502 5.955 -0.000 ]
H [ 2.917 4.963 -0.000 ]
H [ 3.812 7.691 -0.000 ]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = 'STO-3G'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
renk = $..:koor
bellek = 16000000
)
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
jeneratörIntCoorGen>: (
molekül = $:molekül
ekstra_bağlar = [ 2 5 ]
)
% oluşturulan koordinatlar yerine bunları kullanın
değişkenSetIntCoor>: [
<StreSimpleCo>:( atomlar = [ 2 5 ] )
<BendSimpleCo>:( atomlar = [ 2 5 4 ] )
: ( atomlar = [ 5 2 1 3 ] )
<SumIntCoor>: (
renk: [
<StreSimpleCo>:( atomlar = [ 1 2 ] )
<StreSimpleCo>:( atomlar = [ 2 3 ] )
]
katsayı = [ 1.0 1.0 ]
)
<SumIntCoor>: (
renk: [
<StreSimpleCo>:( atomlar = [ 4 5 ] )
<StreSimpleCo>:( atomlar = [ 4 6 ] )
]
katsayı = [ 1.0 1.0 ]
)
<BendSimpleCo>:( atomlar = [ 1 2 3 ] )
<BendSimpleCo>:( atomlar = [ 5 4 6 ] )
]
% bunlar zaten simetri ile sabitlenir,
sabitSetIntCoor>: [
<SumIntCoor>: (
renk: [
<StreSimpleCo>:( atomlar = [ 1 2 ] )
<StreSimpleCo>:( atomlar = [ 2 3 ] )
]
katsayı = [ 1.0 -1.0 ]
)
<SumIntCoor>: (
renk: [
<StreSimpleCo>:( atomlar = [ 4 5 ] )
<StreSimpleCo>:( atomlar = [ 4 6 ] )
]
katsayı = [ 1.0 -1.0 ]
)
<TorsSimpleCo>:( atomlar = [ 2 5 4 6] )
:( atomlar = [ 3 2 6 4 ] )
:( atomlar = [ 1 2 6 4 ] )
]
)
Moleküler geometri için % optimizer nesnesi
tercihQNewtonOpt>: (
fonksiyon = $..:mol
GüncellemeBFGSGüncelleme>: ()
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
% iç koordinatlarda kısmi bir kendir tahmini ver
% eksik öğeler otomatik olarak doldurulacak
kendir = [
[0.0109261670]
[ -0.0004214845 0.0102746106 ]
[ -0.0008600592 0.0030051330 0.0043149957 ]
[0.0 0.0 0.0]
[0.0 0.0 0.0]
[0.0 0.0 0.0]
[0.0 0.0 0.0]
]
)
)
Optimizasyon ile a Hidrojen Tahvil
Yeterli yedek bulamazsa otomatik dahili koordinat üreteci başarısız olur
iç koordinatlar. Bu durumda, dahili koordinat üreteci açıkça belirtilmelidir.
girişte oluşturulur ve aşağıda gösterildiği gibi ekstra bağlantı bilgileri verilir.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = C1
{ atom geometrisi } = {
H [0.088 2.006 1.438 ]
O [ 0.123 3.193 0.000 ]
H [ 0.088 2.006 -1.438 ]
O [ 4.502 5.955 -0.000 ]
H [ 2.917 4.963 -0.000 ]
H [ 3.812 7.691 -0.000 ]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = 'STO-3G'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
renk = $..:koor
bellek = 16000000
)
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
% hakkında bilgi sahibi bir dahili koordinat üreteci verir
2 ve 5 atomları arasındaki % hidrojen bağı
jeneratörIntCoorGen>: (
molekül = $:molekül
ekstra_bağlar = [ 2 5 ]
)
)
Moleküler geometri için % optimizer nesnesi
tercihQNewtonOpt>: (
fonksiyon = $..:mol
GüncellemeBFGSGüncelleme>: ()
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
)
)
Sabit Koordinat Optimizasyon
Bu örnek, bir optimizasyonda dahili koordinatların seçici olarak nasıl düzeltileceğini gösterir. Herhangi
lineer bağımsız koordinat sayısı verilebilir. Bu koordinatlar kalmalıdır
optimizasyon boyunca doğrusal olarak bağımsız, o zamandan beri geçerli olmayabilecek bir koşul
koordinatlar doğrusal olmayabilir.
Varsayılan olarak, başlangıçtaki sabit koordinatların değerleri kartezyen geometriden alınır.
tarafından verilen molekül nesne; bununla birlikte, molekül içsel olarak yer değiştirecektir.
have_fixed_values anahtar sözcüğü ise sabit dahili koordinatlarla verilen koordinat değerleri
bu örnekte gösterildiği gibi true olarak ayarlanır. Bu durumda, ilk Kartezyen geometri
istenen başlangıç geometrisine ve tüm değişkenlere makul ölçüde yakın olmalıdır.
koordinatlar ilk yer değiştirme sırasında orijinal değerlerine dondurulacaktır.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = CS
{ atom geometrisi } = {
H [ 3.04 -0.69 -1.59 ]
H [ 3.04 -0.69 1.59 ]
N [ 2.09 -0.48 -0.00 ]
C [ -0.58 -0.15 0.00 ]
H [ -1.17 1.82 0.00 ]
H [ -1.41 -1.04 -1.64 ]
H [ -1.41 -1.04 1.64]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = '4-31G*'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
jeneratörIntCoorGen>: (
molekül = $:molekül
)
have_fixed_values = evet
sabitSetIntCoor>: [
: ( değer = -0.1
etiket = 'N-inversiyon'
atomlar = [4 3 2 1] )
]
)
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
renk = $..:koor
bellek = 16000000
)
Moleküler geometri için % optimizer nesnesi
tercihQNewtonOpt>: (
max_yiterasyon = 20
fonksiyon = $..:mol
GüncellemeBFGSGüncelleme>: ()
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
)
)
Geçiş Eyalet Optimizasyon
Bu örnek, kullanım modunda N-inversiyonunun bir geçiş durumu optimizasyonunu gösterir.
Takip etmek. Başlangıç geometrisi, birkaç sabit koordinat optimizasyonu yapılarak elde edildi.
ters çevirme koordinatı boyunca.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = CS
{ atom geometrisi } = {
H [ 3.045436 -0.697438 -1.596748 ]
H [ 3.045436 -0.697438 1.596748 ]
N [ 2.098157 -0.482779 -0.000000 ]
C [ -0.582616 -0.151798 0.000000 ]
H [ -1.171620 1.822306 0.000000 ]
H [ -1.417337 -1.042238 -1.647529 ]
H [ -1.417337 -1.042238 1.647529]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = '4-31G*'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
jeneratörIntCoorGen>: (
molekül = $:molekül
)
takip etti = [ 'N-inversiyon' 4 3 2 1 ]
)
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
renk = $..:koor
bellek = 16000000
)
Moleküler geometri için % optimizer nesnesi
tercihEFCOpt>: (
geçiş_durumu = evet
mode_following = evet
max_yiterasyon = 20
fonksiyon = $..:mol
GüncellemePowell Güncellemesi>: ()
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
)
)
Geçiş Eyalet Optimizasyon ile a bilgisayarlı Tahmin Hesseli
Bu örnek, kullanım modunda N-inversiyonunun bir geçiş durumu optimizasyonunu gösterir.
Takip etmek. Başlangıç geometrisi, birkaç sabit koordinat optimizasyonu yapılarak elde edildi.
ters çevirme koordinatı boyunca. Yaklaşık bir tahmin Hessian hesaplanacak, bu da
optimizasyon bu durumda çok daha hızlı birleşir.
% emacs -*- kullanmalı KeyVal -*- modu
% molekül spesifikasyonu
molekülmolekül>: (
simetri = CS
{ atom geometrisi } = {
H [ 3.045436 -0.697438 -1.596748 ]
H [ 3.045436 -0.697438 1.596748 ]
N [ 2.098157 -0.482779 -0.000000 ]
C [ -0.582616 -0.151798 0.000000 ]
H [ -1.171620 1.822306 0.000000 ]
H [ -1.417337 -1.042238 -1.647529 ]
H [ -1.417337 -1.042238 1.647529]
}
)
% temel küme belirtimi
temelGaussTemel Kümesi>: (
isim = '4-31G*'
molekül = $:molekül
)
mpqc :(
kontrol noktası = hayır
kaydetme durumu = hayır
Optimizasyon için % moleküler koordinatlar
renkSymmMolecularCoor>: (
molekül = $:molekül
jeneratörIntCoorGen>: (
molekül = $:molekül
)
takip etti = [ 'N-inversiyon' 4 3 2 1 ]
)
Molekülün enerjisini hesaplamak için % yöntemi
köstebekCLHF>: (
molekül = $:molekül
temel = $:baz
renk = $..:koor
bellek = 16000000
tahmin_hessianFinDispMolekülerHessian>: (
molekül = $:molekül
only_totally_smetric = evet
elimine_cubic_terms = hayır
kontrol noktası = hayır
enerjiCLHF>: (
molekül = $:molekül
bellek = 16000000
temelGaussTemel Kümesi>: (
isim = '3-21G'
molekül = $:molekül
)
)
)
)
Moleküler geometri için % optimizer nesnesi
tercihEFCOpt>: (
geçiş_durumu = evet
mode_following = evet
max_yiterasyon = 20
fonksiyon = $..:mol
GüncellemePowell Güncellemesi>: ()
yakınsama : (
kartezyen = evet
enerji = $..:..:mol
)
)
)
onworks.net hizmetlerini kullanarak mpqc'yi çevrimiçi kullanın