Posted in

Pembaruan Perangkat Lunak: Sistem Program ORCA—Versi 6.0

Pembaruan Perangkat Lunak: Sistem Program ORCA—Versi 6.0
Pembaruan Perangkat Lunak: Sistem Program ORCA—Versi 6.0

ABSTRAK
Versi 6.0 dari rangkaian program kimia kuantum ORCA dirilis pada bulan Juli 2024. ORCA 6.0 merupakan titik balik utama dalam sejarah program tersebut karena mewakili penulisan ulang basis kode yang hampir lengkap yang menghasilkan: (1) peningkatan kinerja utama, (2) basis kode yang bersih dan sangat efisien yang sangat memudahkan pengembangan di masa mendatang, (3) sejumlah besar fungsionalitas baru, dan (4) kemampuan antarmuka baru yang memfasilitasi interoperabilitas dengan paket program kimia kuantum lainnya. Artikel ini menjelaskan fitur-fitur yang paling menonjol dari program tersebut.

Abstrak Grafis
Artikel ini menguraikan filosofi di balik fitur-fitur baru

1 Pendahuluan
Mengembangkan paket kimia kuantum serba guna yang berfitur lengkap adalah pekerjaan besar yang memerlukan upaya berdedikasi selama puluhan tahun untuk mencakup basis utama persenjataan kimia kuantum seperti berbagai jenis teori Hartree-Fock (HF) dan teori fungsi kerapatan (DFT), metode medan aktif ruang lengkap yang konsisten (CASSCF) diikuti oleh metode pasca-SCF seperti Møller-Plesset orde kedua (MP2), teori gugus terkopel (CC) atau varian multireferensinya seperti ruang aktif lengkap (CASPT2) atau teori gangguan valensi elektron-N (NEVPT2), interaksi konfigurasi multireferensi (MR) (MR-CI) atau bahkan MR-CC. Agar berguna dalam aplikasi kimia, program tersebut juga harus mampu mengoptimalkan geometri, menghitung sifat orde pertama dan kedua seperti momen listrik atau parameter resonansi magnetik, menghitung frekuensi harmonik analitik (Hessian), menangani keadaan tereksitasi elektronik serta efek lingkungan, pendekatan penyematan fitur untuk aplikasi makromolekul atau keadaan padat, dan mungkin juga memungkinkan perhitungan dinamika molekuler (MD). Kompleksitas tambahan muncul dari menggabungkan sebagian atau semua metode dan tugas komputasi yang disebutkan dengan serangkaian perkiraan seperti resolusi identitas (RI, juga disebut sebagai penyesuaian kepadatan, DF), [ 1 – 3 ] pertukaran rantai bola (COSX), [ 4 – 6 ] transformasi Laplace [ 7 ], atau perkiraan lokal [ 8 – 11 ] untuk menyebutkan beberapa saja.

Jelaslah bahwa paket program berfitur lengkap tersebut merupakan hasil kerja banyak individu yang akan mengerjakan kode tersebut selama beberapa dekade. Hampir selalu, paket program yang berkembang menjadi (hampir) berfitur lengkap tidak dimulai dengan rencana induk yang akan memfasilitasi pertumbuhan yang sehat dalam jangka waktu yang lama. Konsekuensi yang hampir tak terelakkan adalah, bahwa program tersebut cenderung menjadi berantakan seiring waktu, sulit dipelihara, sulit diperluas, dan hampir mustahil untuk beradaptasi dengan lanskap perangkat keras yang terus berkembang. Konsekuensi akhir dari evolusi ini adalah bahwa program tersebut pada akhirnya akan ditinggalkan ketika mahasiswa baru menolak untuk bekerja dengan kode tersebut atau harus menghabiskan sebagian besar waktu mereka untuk melawan keanehan lingkungan pemrograman.

Skenario di atas adalah contoh khas evolusi proyek perangkat lunak besar dan juga cukup menggambarkan evolusi paket ORCA hingga versi 5.0 yang dirilis pada bulan Juli 2021 [ 12 ]. Pada saat itu, ORCA sudah menjadi rangkaian kimia kuantum kedua yang paling banyak digunakan di seluruh dunia dan memiliki sekitar 35.000 pengguna akademis. Rilis ORCA 5 menandai tonggak penting dalam evolusi program karena memperkenalkan paket integral SHARK yang ternyata berkinerja tinggi dan, sebagai tambahan, memperkenalkan paradigma pemrograman baru (konsep loop-kernel-consumer [LKC]) yang menghasilkan kode yang sangat ringkas dan efisien [ 13 ]. Pada saat rilis ORCA 5.0, konsep baru ini diimplementasikan di sejumlah tempat strategis di dalam infrastruktur ORCA yang ada.

Bahasa Indonesia: Setelah ORCA 5 dirilis, basis pengguna tumbuh sangat cepat dan mencapai 80.000 pada bulan Januari 2025. Segera setelah ORCA 5 dirilis, menjadi jelas bahwa konsep pengembangan baru ini memiliki jangkauan luas dan membuka peluang unik: desain ulang basis kode secara menyeluruh. Ini jelas merupakan tugas yang menakutkan, mengingat bahwa setiap paket program kimia kuantum utama terdiri dari jutaan baris kode. Meskipun demikian, tim pengembangan ORCA menerima tantangan ini dan berhasil melihatnya hingga selesai, yang mengarah pada rilis ORCA 6.0 pada bulan Juli 2024. Sejauh pengetahuan penulis, ini adalah pertama kalinya, bahwa paket kimia kuantum utama ditulis ulang hampir dari awal. Hasilnya adalah infrastruktur baru, bersih, ramping, dan efisien yang cocok untuk evolusi jangka panjang dan pertumbuhan yang sehat yang dapat mengikuti perkembangan perangkat keras komputer. Dengan demikian, ORCA 6 sebagian besar dapat dianggap sebagai program kimia kuantum baru, tetapi mungkin satu-satunya yang ditulis dengan rencana induk tertentu yang merupakan hasil dari pengalaman hampir tiga dekade dalam mengembangkan perangkat lunak kimia kuantum.

Bagian utama pengembangan dilakukan oleh tim di Max Planck Institut für Kohlenforschung di Mülheim/Jerman ( https://orcaforum.kofo.mpg.de/app.php/portal ) dan di perusahaan FAccTs ( www.faccts.de ) di Cologne, Jerman, dengan kontribusi luar biasa dari sejumlah kolaborator internasional yang dirinci dalam catatan rilis dan keluaran ORCA. ORCA didistribusikan secara gratis kepada pengguna akademis ( https://orcaforum.kofo.mpg.de ) dan dapat dilisensikan untuk penggunaan komersial dari FACCTs. Kemampuan kode didokumentasikan secara ekstensif dalam manual daring ( https://www.faccts.de/docs/orca/6.0/manual/index.html ) serta serangkaian tutorial yang dikembangkan di FACCTs ( https://www.orcasoftware.de/tutorials_orca/index.html ).

Seperti yang ditunjukkan dalam versi teks ini sebelumnya [ 12 , 14 , 15 ], hal-hal penting dari ORCA meliputi (1) Performa mutakhir yang ditingkatkan secara signifikan dalam ORCA 6, (2) metodologi teoritis yang komprehensif, (3) kemudahan penggunaan, dan (4) independensi platform. Pembaruan perangkat lunak singkat ini akan memberikan gambaran umum tentang infrastruktur baru yang menjadi dasar ORCA 6 serta fungsionalitas yang ditambahkan ke ORCA sejak publikasi pembaruan 2021 untuk ORCA 5.0 [ 12 ].

2 Arsitektur ORCA 6
2.1 Struktur Cangkang
Struktur menyeluruh ORCA 6.0 ditunjukkan pada Gambar 1. Ide utama di balik organisasi adalah struktur multilayer di mana setiap lapisan berkomunikasi dengan lapisan di atas atau di bawahnya melalui antarmuka yang terdefinisi dengan baik. Ini membantu menjaga aliran logika dan data tetap koheren dan memungkinkan pengembang menavigasi proyek perangkat lunak multi-juta baris. Pada tingkat organisasi terendah, terdapat paket integral SHARK yang berfungsi sebagai “motor” ke seluruh program. Paket SHARK memiliki basis kode yang hampir tidak merujuk ke struktur data atau alat bawaan ORCA. Paket ini hanya menggunakan beberapa alat, seperti kelas matriks/vektor bawaan ORCA dan rutin BLAS dan LAPACK terkait, implementasi tensor, dan konsep “matriks-wadah” ORCA. Sisa infrastruktur SHARK terdiri dari rutin yang disederhanakan dan dioptimalkan yang diatur dalam mode berorientasi objek. Objek-objek ini terstruktur dengan kuat dan diberi nama secara koheren di pohon kode sumber. SHARK melakukan perhitungan semua integral atas fungsi dasar orbital atom (AO) dan semua transformasi integral ke orbital molekul (MO). Ia juga menerapkan sejumlah fungsi untuk pembentukan matriks mirip Fock yang menampilkan berbagai perkiraan, seperti perkiraan RI.

GAMBAR 1
Buka di penampil gambar
Presentasi PowerPoint
Struktur shell kode ORCA 6.0.
Lapisan perangkat lunak di atas SHARK adalah kode program ORCA inti. Dalam ORCA 6.0, peran utamanya adalah mengatur aliran logika melalui seluruh program, pemeliharaan data antara, dan interaksi dengan pengguna. Sementara dalam kode program ORCA terdapat panggilan langsung ke rutinitas SHARK, sebagian besar tugas komputasi intensif dipicu oleh sejumlah kecil rutinitas yang kami sebut sebagai “DRIVER”. Rutin driver ini masuk ke “hal-hal mendasar” tentang bagaimana tepatnya matriks Fock atau sisi kanan medan konsisten mandiri yang terkopel-terganggu (CP-SCF) dihitung. Rutin menentukan perkiraan apa (jika ada) yang diminta, apakah perkiraan ini tersedia, apakah suku pelarut, muatan titik eksternal, atau koreksi relativistik diperlukan, dan seterusnya. Manfaat dari struktur seperti itu adalah banyak kode yang agak rumit dapat dihilangkan dari kode ORCA inti dan juga tidak membebani basis kode SHARK. Misalnya, pengembang yang ingin mengetahui bagaimana perkiraan tertentu terhadap matriks Fock atau transformasi integral tertentu disiapkan, hanya perlu melihat ke dalam direktori DRIVER yang memiliki sejumlah rutin dengan nama yang koheren yang mengoordinasikan tugas-tugas tertentu. Jadi, pada dasarnya, infrastruktur DRIVER sangat membantu dalam menjaga kode ORCA dan SHARK tetap bersih sekaligus menyediakan tempat yang nyaman dan terpusat dalam basis kode (yang terdiri dari lebih dari 50.000 file kode sumber individual) tempat pengembang menemukan informasi yang diperlukan bersama dengan dokumentasi langsung.

Sebagian besar studi komputasional terdiri dari sejumlah besar langkah individual yang dilakukan pada, katakanlah, sekumpulan molekul terkait atau pada molekul yang sama dengan pengaturan komputasional yang berbeda, atau mungkin serangkaian kalkulasi dilakukan pada satu molekul untuk menyusun energi total yang akurat. Menjalankan pekerjaan ini secara individual memakan waktu dan rawan kesalahan. Untuk tujuan ini, banyak kelompok penelitian telah mengembangkan sekumpulan skrip shell yang menjalankan alur kerja. Meskipun ini adalah pendekatan yang sangat valid, pendekatan ini memiliki beberapa inefisiensi. Misalnya, transfer data dari program ke skrip mungkin memerlukan penguraian berkas keluaran, yang mungkin gagal jika keluaran program berubah. Orang yang telah menulis skrip asli mungkin tidak tersedia lagi, dan orang yang ingin menggunakan skrip tersebut mungkin tidak cukup memahami skrip tertentu untuk mengadaptasinya. Dalam ORCA 6.0, kami menawarkan fungsionalitas hebat yang dirancang untuk membantu mengatasi masalah alur kerja tersebut. Bahasa “Compound” adalah bahasa skrip atau pemrograman sederhana yang dapat digunakan untuk mengotomatiskan alur kerja. Keunggulan utamanya dibandingkan skrip eksternal adalah integrasinya yang mendalam dengan data ORCA. Dengan demikian, sejumlah besar hasil perhitungan, seperti energi total, energi eksitasi, sifat molekuler, geometri, atau populasi, tersedia dengan mudah di dalam skrip gabungan tertentu, dan operasi aljabar dasar serta cetakan khusus dapat dibuat dengan mudah. ​​Di sisi komersial, FACCT menawarkan alat alur kerja (disebut Weasel) yang menciptakan solusi alur kerja profesional yang sering disesuaikan dengan kebutuhan spesifik pelanggan dari industri.

Compound atau Weasel berkomunikasi dengan ORCA melalui berkas “properti”. Berkas properti berisi ringkasan hasil perhitungan dalam format yang dapat dibaca manusia maupun mesin. Selain itu, ORCA 6.0 menawarkan antarmuka JSON yang bahkan lebih canggih dan akan dijelaskan secara singkat di bawah ini.

Lapisan terakhir perangkat lunak terdiri dari antarmuka pengguna grafis (GUI). Sayangnya, tim pengembangan ORCA akademis tidak memiliki sumber daya untuk membuat GUI profesional berfitur lengkap. Oleh karena itu, sejauh ini, GUI eksternal, seperti Avogadro [ 16 ], sering digunakan untuk memvisualisasikan hasil ORCA. Tim pengembangan ORCA mendorong pengembang GUI untuk menghubungkan kode mereka ke ORCA, yang seharusnya sangat difasilitasi dalam ORCA 6.0 (dan yang lebih baru) dengan adanya antarmuka JSON [ 17 ]. GUI berfitur lengkap akan dikembangkan, di kemudian hari, oleh FACCT.

2.2 Modul Lama Dihapus di ORCA 6
Karena ORCA 6.0 sebagian besar didasarkan pada konsep organisasi baru dan basis kode yang sebagian besar telah dirombak, ada sejumlah modul lama yang dihapus dan diganti dengan modul baru yang dibuat dari awal. Yang paling menonjol, mungkin, modul SCF yang sangat sentral orca_scf menjadi korban pembaruan dan digantikan oleh dua modul baru orca_guess dan orca_leanscf (dijelaskan di bawah) yang masing-masing melakukan tebakan awal terhadap MO dan kalkulasi SCF yang sebenarnya. Kedua, modul orca_cpscf yang bertanggung jawab untuk memecahkan persamaan respons listrik atau magnetik pada tingkat SCF telah diganti dengan orca_scfresp yang jauh lebih ramping, efisien, dan bertenaga yang merupakan bagian dari kumpulan program respons yang secara kolektif membentuk inti dari filosofi sifat molekuler ORCA 6. Filosofi ini, yang dibahas di bawah, menjadikan modul orca_scfhess , orca_eprnmr , dan orca_soc , yang sebelumnya menghitung sifat SCF Hessian, EPR, dan NMR, dan integral kopling spin-orbit, masing-masing, menjadi berlebihan. Modul orca_gtoint sekarang lebih tepat disebut orca_startup dan telah didesain ulang sepenuhnya. Modul ini mengoordinasikan tugas-tugas awal seperti perhitungan pasangan kulit, perhitungan matriks satu elektron, pengaturan grid integrasi numerik, atau perhitungan dan manipulasi integral metrik-RI di antara tugas-tugas lainnya. Terakhir, modul orca_anoint , yang menghitung integral atas orbital alami atom (ANO) menjadi berlebihan karena SHARK secara internal menangani set basis yang umumnya dikontrak secara otomatis serta jauh lebih efisien dan komprehensif [ 13 ].

2.3 Program LeanSCF ORCA 6
Hampir setiap paket kimia kuantum dimulai dengan pengembangan program SCF. Oleh karena itu, kode-kode ini biasanya merupakan yang tertua dalam hal infrastruktur program. Program SCF juga cenderung menjadi bagian yang paling berantakan dari sebuah paket program setelah beberapa generasi pengembang menerapkan penyesuaian khusus tujuan yang mungkin atau mungkin tidak diimplementasikan atau didokumentasikan secara koheren. Ini juga merupakan kasus untuk program SCF lama ORCA ( orca_scf ) yang berasal dari tahun 1999. Sayangnya, menjadi sangat sulit untuk dinavigasi sehingga hampir mustahil untuk menentukan data mana yang berada di memori inti komputer pada waktu tertentu. Karena ORCA menggunakan model memori replikasi untuk strategi paralelisasinya, tuntutan memori dari program SCF menjadi hambatan utama untuk melakukan kalkulasi SCF yang sangat besar dengan, katakanlah, 30.000–100.000 fungsi basis.

Alur logika dalam orca_scf berkembang menjadi sangat rumit sehingga tidak jelas kuantitas apa yang dihitung, kapan, dan bagaimana. Misalnya, dalam penulisan ulang kode, penulis menemukan bahwa total energi dapat, dalam keadaan tertentu, dihitung hingga empat kali selama siklus SCF tertentu. Ini jelas terjadi karena pengembang ingin “berada di sisi yang aman” sehingga menyebabkan inefisiensi jenis yang ditunjukkan. Lebih buruk lagi, beberapa perhitungan ulang energi ini menggunakan kepadatan ekstrapolasi DIIS [ 18 ] sehingga menghasilkan energi non-variasional.

Atas alasan-alasan ini, diputuskan untuk menulis ulang program SCF secara menyeluruh dengan tujuan utama aliran informasi yang koheren, transparan, dan efisien dan, yang terpenting, tuntutan memori yang minimal. Program baru, orca_leanscf , mencapai tujuan-tujuan ini sekaligus secara algoritmik setara, jika tidak lebih unggul, dari program orca_scf sebelumnya . Karena penghematan memori penting, infrastruktur diciptakan yang memungkinkan program hanya memiliki jumlah minimal matriks yang diperlukan untuk berada di memori utama pada waktu tertentu. Misalnya, selama perhitungan matriks kerapatan, hanya kerapatan P dan matriks koefisien MO C yang ada di memori. Demikian pula, selama pembentukan matriks Fock F , hanya F itu sendiri dan P yang ada di memori dan selama pembaruan orbital hanya F dan C yang diperlukan. Matriks yang tidak diperlukan dihapus dari memori (“Forget”) atau disimpan di disk jika telah berubah (“Sleep”) sementara mereka dapat dibawa kembali ke memori dengan satu panggilan (“WakeUp”). Waktu yang diperlukan untuk input/output matriks ini tetap dapat diabaikan. Langkah penghematan memori kedua adalah menyimpan matriks yang hanya memerlukan akses baca (misalnya, matriks metrik dalam kalkulasi RI) dalam memori bersama. Kedua langkah tersebut secara signifikan mengurangi konsumsi memori orca_leanscf dan memungkinkan kalkulasi SCF yang sangat besar dengan lebih dari 10 4 dan mungkin mendekati 10 5 fungsi basis yang sebelumnya tidak terjangkau.

2.4 Penanganan Properti Molekuler dalam ORCA 6
Restrukturisasi dan perampingan besar-besaran berkenaan dengan kalkulasi properti molekuler telah dilakukan di ORCA 6.0. Hal ini dianggap diinginkan mengingat banyaknya metode dan modul struktur elektronik di ORCA yang dalam versi program sebelumnya masing-masing memiliki cabang propertinya sendiri. Hasilnya bukan hanya duplikasi kode yang tidak diinginkan, tetapi juga ketidakkonsistenan yang timbul dari berbagai bendera dan set fitur dalam berbagai modul serta hilangnya efisiensi dalam menghitung ulang integral properti yang sama secara berulang. Dalam ORCA 6, kami membedakan antara tiga jenis properti yang pada dasarnya berbeda:
Sifat respons molekular yang diformulasikan sebagai turunan energi keadaan dasar.
Sifat-sifat teori gangguan kuasi-degenerasi (QDPT) yang muncul dari diagonalisasi matriks QDPT pada sejumlah akar yang dihitung dengan metode tertentu.
Sifat-sifat keadaan tereksitasi, misalnya, momen transisi berbagai macam yang menghubungkan keadaan dasar elektronik dengan keadaan tereksitasi secara elektronik atau keadaan tereksitasi secara elektronik satu dengan yang lain.
Masing-masing ketiga kelompok properti memiliki infrastruktur yang khas dan efisien.

Jika kita beralih terlebih dahulu ke sifat respons, kita melihat bahwa sifat orde pertama, misalnya λ, selalu dapat dihitung sebagai:

Di sini P μν adalah matriks kerapatan dalam basis AO { μ }. Definisi matriks kerapatan bersifat spesifik metode dan bervariasi antara metode variasional (seperti Hartree-Fock, CASSCF atau Full-CI) dan metode non-variasi atau hanya sebagian (seperti MP2, CCSD, atau TD-DFT). Meskipun demikian, selalu mungkin untuk membawa turunan pertama energi berkenaan dengan gangguan satu elektron ke dalam bentuk yang konsisten dengan Persamaan ( 1 ). Properti orde kedua (atau respons) dapat diformulasikan sebagai turunan kedua energi seperti dalam:

Besaran baru dalam Persamaan ( 2 ) adalah turunan kedua Hamiltonian terhadap dua gangguan dan turunan pertama matriks kerapatan terhadap salah satu gangguan (kerapatan respons). Mengingat bahwa formalisme yang sama berlaku untuk semua gangguan listrik dan magnetik serta turunan geometri, maka masuk akal untuk memperlakukan properti dalam satu modul pusat ( orca_prop ) dan memasukkan modul tersebut dengan kerapatan khusus metode, kerapatan respons, dan integral properti.

Dengan filosofi ini, urutan langkah berikut dijalankan (lihat Gambar 2 ):
Perhitungan energi keadaan elektronik yang dimaksud dan kerapatan satu partikel. Kerapatan disimpan di tempat terpusat, “wadah kerapatan” yang berisi kerapatan aktual serta meta-data untuk mendefinisikannya secara unik.
Perhitungan integral properti yang diperlukan. Untuk tujuan ini, program utama orca , yang mengawasi seluruh perhitungan, melihat ke depan dan menentukan semua jenis integral yang diperlukan oleh modul lain di kemudian hari. Kemudian program tersebut memanggil orca_propint , program yang menghitung semua integral yang diperlukan atas AO dan menyimpannya di tempat terpusat, “wadah integral properti”.
Integral properti diperlukan untuk menghitung kerapatan respons. Kerapatan ini dihitung oleh modul terpisah, misalnya, orca_scfresp dalam kasus fungsi gelombang Hartree-Fock dan DFT, orca_casresp untuk CASSCF, sementara modul lain seperti MP2 atau AUTOCI dapat dijalankan dalam mode “energi” atau “respons” untuk menghasilkan data yang setara. Kerapatan respons juga disimpan dalam wadah kerapatan.
Program utama kemudian memanggil orca_prop, yang akan menentukan properti mana yang diminta dan, untuk setiap properti yang diminta, akan menemukan dan memanfaatkan semua kepadatan yang memenuhi syarat, kepadatan respons, dan integral properti. Program ini akan mencetak properti masing-masing dalam format standar dan menyimpannya dalam berkas properti yang tersedia bagi pengguna.

GAMBAR 2
Buka di penampil gambar
Presentasi PowerPoint
Alur informasi dalam perhitungan sifat respons di ORCA 6.0.
Cara menghitung properti ini elegan dan efisien serta menghasilkan struktur kode yang ramping karena hampir tidak ada kode yang direplikasi sementara sejumlah besar kombinasi metode/properti yang berbeda ditangani secara bersamaan. Jika metode struktur elektronik baru ditambahkan ke ORCA, yang diperlukan hanyalah menghitung energi dan kerapatan (respons) dan semua properti yang memenuhi syarat akan tersedia secara otomatis tanpa menulis satu baris kode tambahan pun. Struktur ini juga menyiratkan bahwa output mungkin berisi data perbandingan metode yang sangat berguna. Misalnya, sangat diperbolehkan untuk menghitung energi dan kerapatan Hartree-Fock, MP2, dan CCSD(T) dalam satu kali proses. Output kemudian akan berisi, misalnya, momen dipol yang dihitung untuk ketiga metode di bagian output yang berdekatan secara langsung, yang memfasilitasi perbandingan.

Konsep serupa digunakan dalam pendekatan QDPT dan properti keadaan tereksitasi. Tanpa membahas terlalu banyak detail teknis, kedua kelompok properti ini ditangani secara konsisten dengan overhead minimum menggunakan alat berorientasi objek yang sedapat mungkin tidak bergantung pada metode struktur elektronik.

Secara keseluruhan, strategi infrastruktur baru di ORCA telah menghasilkan perampingan kode yang sangat besar yang tidak hanya lebih mudah dibaca tetapi juga memungkinkan kita untuk menghapus ratusan ribu baris kode lama yang sulit dipelihara. Salah satu manfaat dari infrastruktur baru adalah, misalnya, penerapan intensitas dikroisme melingkar vibrasi (VCD). Ini adalah properti yang agak rumit yang mengandung gangguan listrik, magnetik, dan geometris [ 17 , 19 ]. Infrastruktur baru memungkinkan penerapan VCD dalam waktu sekitar 1 hari kerja (diakui diikuti oleh beberapa hari penyempurnaan dan debugging).

2.5 Peningkatan Efisiensi
Bersama dengan perampingan memori yang signifikan dari orca_leanscf , terdapat sejumlah besar peningkatan efisiensi dalam algoritme ORCA. Peningkatan tersebut terlalu teknis dan terlalu banyak untuk dijelaskan secara terperinci dalam artikel ikhtisar singkat ini, tetapi beberapa hal perlu diperhatikan:
Algoritme rantai bola (COSX) telah disempurnakan secara signifikan dan berjalan 2–4 kali lebih cepat daripada di ORCA 5 dengan tetap mempertahankan akurasi yang sama atau bahkan lebih unggul. Hal ini menghasilkan percepatan yang sangat besar dalam perhitungan DFT hibrida dan Hartree-Fock.
Algoritma Split-RI-J hingga 20% lebih cepat dari sebelumnya [ 4 ] dan sekarang mengungguli algoritma asli tahun 2003 sambil dapat diterapkan pada fungsi momentum sudut tinggi (sebelum batasnya adalah L  = 4) dan kelompok kepadatan dengan cara yang sangat efisien.
Konvergen SCF sekarang lebih kuat dan rata-rata memerlukan sekitar 20% lebih sedikit siklus daripada sebelumnya untuk mencapai konvergensi.
Analisis stabilitas SCF telah sepenuhnya dikerjakan ulang dan sekarang menampilkan semua perkiraan yang dapat dilakukan ORCA dan, tidak seperti implementasi sebelumnya, memungkinkan adanya efek pelarut. Menemukan solusi yang stabil telah diotomatisasi.
Pengoptimal geometri telah ditingkatkan dalam banyak detail yang signifikan. Pengoptimal ini lebih tangguh daripada sebelumnya dan juga jauh lebih kecil kemungkinannya untuk berakhir dalam geometri dengan frekuensi imajiner kecil (yang biasanya termasuk dalam rotasi gugus metil dan gerakan konformasi energi rendah yang serupa).
Pencari keadaan transisi nudge-elastic-band (NEB) [ 20 ] telah ditingkatkan dalam sejumlah detail yang signifikan dan sekarang akan menemukan keadaan transisi dalam jumlah iterasi yang lebih sedikit.
Efisiensi perhitungan SCF Hessian telah ditingkatkan secara signifikan dalam sejumlah cara. Pertama-tama, efisiensi perhitungan integral secara umum lebih tinggi daripada di ORCA 5. Kedua, solusi persamaan SCF yang terkopel-terganggu (CP-SCF) telah ditingkatkan secara signifikan oleh konsep “paralelisasi grup”. Dalam konsep ini, inti yang tersedia dibagi menjadi beberapa grup yang masing-masing bekerja pada subset perpindahan geometris. Karena grup tersebut independen satu sama lain dan di dalam setiap grup (4–8 proses), penskalaan paralel mendekati sempurna, hal ini menyebabkan percepatan besar dalam perhitungan Hessian pada sistem besar.
Perhitungan koefisien kopling untuk memecahkan masalah interaksi konfigurasi besar dalam perhitungan CASSCF telah ditingkatkan secara drastis [ 21 ] dan sekarang membutuhkan waktu sepersekian detik untuk sejumlah besar cangkang terbuka, sementara sebelumnya tugas yang sama mungkin memakan waktu berjam-jam.

2.6 Penyederhanaan Alur Kerja dan Antarmuka JSON ke ORCA 6
Fokus lebih lanjut dari pengembangan ORCA 6 adalah untuk menyederhanakan penanganan alur kerja tugas komputasi yang rumit dan membuatnya jauh lebih mudah untuk mengintegrasikan ORCA ke dalam solusi alur kerja eksternal.

Bahasa skrip gabungan telah diperluas dan ditingkatkan secara signifikan. Bahasa ini memiliki konstruksi pemrograman dasar seperti deklarasi variabel dan aljabar dengan variabel serta struktur pemrograman dasar seperti “for,” “if/else,” dan “while.” Yang penting, skrip dapat ditulis dengan cara yang agak umum karena setelah dipanggil dari file input ORCA tertentu, nilai variabel dalam skrip dapat dimodifikasi menggunakan perintah “with”. Demikian pula, dalam setiap langkah gabungan (yang sesuai dengan satu file input ORCA) variabel generik dapat diperkenalkan oleh perintah “&{}”, yang sangat berguna untuk menjalankan kalkulasi di mana pengaturan komputasi tertentu sedang diubah. Contoh yang berfungsi penuh untuk skrip Gabungan yang mengevaluasi energi batas basis set SCF dengan ekstrapolasi ditunjukkan pada Gambar 3 .

GAMBAR 3
Buka di penampil gambar
Presentasi PowerPoint
Contoh skrip gabungan yang menghitung batas basis set energi SCF dengan ekstrapolasi dan mengevaluasi kesalahan relatif terhadap energi CBS untuk perhitungan dengan dan tanpa ekstrapolasi. Skrip tersebut menunjukkan integrasi mendalam dengan ORCA melalui “Read,” aljabar kustom, dan cetakan kustom serta loop “for” sederhana.
Namun, aspek penting dari pekerjaan gabungan melalui skrip shell eksternal adalah integrasi mendalam dengan hasil perhitungan ORCA yang dapat diakses setelah setiap langkah menggunakan perintah “baca”. Dengan cara ini, alur kerja yang kompleks dapat dengan mudah diimplementasikan, atau rangkaian besar perhitungan tolok ukur dapat dijalankan dengan keyakinan tinggi dan upaya minimal. Dengan menggunakan infrastruktur gabungan, sejumlah besar perhitungan tingkat lanjut dapat diwujudkan yang sebelumnya tidak mungkin dilakukan; misalnya, pengoptimalan struktur geometris menggunakan energi dan gradien ekstrapolasi basis set, atau pengoptimalan kluster molekuler dengan memperhitungkan koreksi kesalahan superposisi basis set (BSSE).

Untuk menyediakan antarmuka transparan ke ORCA yang menghilangkan kebutuhan akan alat dan program eksternal untuk mengurai berkas keluaran (sesuatu yang tidak akan lagi didukung oleh tim ORCA), kami telah membuat berkas properti dan antarmuka JSON [ 17 ]. Format JSON dipilih karena merupakan standar industri untuk pertukaran data dan sejumlah besar alat pemrograman tersedia untuk memproses berkas yang ditulis dalam format JSON.

File properti adalah file ASCII yang dapat dibaca manusia dan mesin dan berisi ringkasan singkat dari berbagai properti yang dihitung selama proses ORCA, termasuk energi, komponen energi, geometri, properti molekuler, dan sebagainya. File ini dapat diterjemahkan ke format JSON menggunakan program orca_2json . Namun, antarmuka JSON dapat melakukan lebih dari itu. Menggunakan file konfigurasi yang disediakan pengguna, program orca_2json dapat digunakan untuk membuat ORCA mencetak geometri, basis set, dan berbagai integral pada atom atau MO, dan juga dapat digunakan untuk menghasilkan file GBW yang dapat digunakan untuk memasukkan ORCA. Jadi, dengan antarmuka ini, pengguna dapat menggunakan ORCA sebagai generator integral untuk program mereka sendiri, sebagai pengoptimal geometri eksternal yang akan digunakan dengan energi dan gradien mereka, atau pengguna dapat memasukkan ORCA dengan orbital mereka sendiri. Fungsionalitas ini akan menentukan antarmuka ORCA resmi, yang, mulai sekarang, merupakan satu -satunya antarmuka yang akan didukung, diperluas, dan dipelihara oleh tim ORCA.

Akhirnya, alat sitasi telah diimplementasikan yang mengumpulkan sitasi yang disarankan di akhir rangkaian ORCA tertentu dan juga meninggalkan file berformat bibtex, yang seharusnya membantu pengguna untuk mengutip referensi ORCA yang relevan dengan benar dalam publikasi mereka dan menurunkan hambatan untuk melakukannya.

3 Fungsionalitas Baru di ORCA 6
Karena panjangnya artikel ini tidak memungkinkan untuk membahas secara cermat satu subjek saja, bagian ini akan memberikan dokumentasi singkat, seperti poin-poin penting, tentang fitur-fitur baru di ORCA 6.

3.1 Metode Korelasi SCF dan Referensi Tunggal
ORCA 6 kini dilengkapi metode Delta-SCF [ 22 , 23 ]. Delta-SCF memungkinkan pengguna untuk mengkonvergensikan persamaan SCF pada pekerjaan yang hampir sembarangan. Ini dapat digunakan, misalnya, untuk perhitungan keadaan tereksitasi termasuk relaksasi elektronik atau perhitungan elemen matriks kopling elektronik dalam studi transfer elektron, untuk menyebutkan hanya dua dari sekian banyak aplikasi.

Kemampuan ROHF dari ORCA telah diperluas dengan metode yang sangat berguna yang memungkinkan pengguna untuk mengkonvergensikan persamaan SCF pada fungsi status konfigurasi yang ditentukan pengguna (General CSF-ROHF) [ 24 ]. Ini sangat berguna untuk perhitungan sistem kopel anti-feromagnetik, gugus logam transisi, dan sistem serupa.

Sementara ORCA selalu memiliki kemampuan (yang tidak terdokumentasi) untuk melakukan perhitungan SCF di hadapan medan listrik eksternal, fitur ini sekarang didukung secara resmi dan juga telah diperluas untuk memungkinkan pengoptimalan geometri, perhitungan keadaan transisi, dan sebagainya.

Daftar fungsi DFT yang didukung oleh ORCA telah diperluas dan mencakup perkembangan terbaru yang dilaporkan oleh kelompok Grimme, misalnya, fungsi keluarga SCAN dan fungsi terpisah rentang baru [ 25 – 27 ].

Modul cluster-kopel ORCA ( orca_mdci ) telah diperluas untuk memungkinkan perhitungan STEOM-CCSD pada sistem open-shell [ 28 , 29 ]. Implementasi baru ini jauh lebih efisien daripada yang asli yang dilaporkan sebelumnya [ 30 ].

ORCA 6 memungkinkan kalkulasi korelasi lokal cluster-in-molekul berfitur lengkap menggunakan MP2, CCSD(T) dan varian DLPNO-nya serta varian berkorelasi eksplisit (F12) untuk digunakan pada fragmen individual [ 31 , 32 ]. Karena kalkulasi ini melibatkan kalkulasi fragmen pada subsistem individual dari keseluruhan sistem, efisiensi paralelisasi tinggi dan konsumsi memori lebih rendah daripada, katakanlah, kalkulasi DLPNO pada keseluruhan sistem.

3.2 CASSCF
Bahasa Indonesia: Selain pengenalan program respons linear CASSCF yang disebutkan di atas, program CASSCF sebagian besar mendapat keuntungan dari infrastruktur yang dikerjakan ulang dan berjalan lebih efisien dan andal dengan perilaku konvergensi yang lebih baik daripada sebelumnya. Ekstensi yang signifikan telah menjadi ketersediaan tebakan Automated Construction of Molecular Active Spaces from Atomic Valence Orbitals (AVAS) [ 33 ], yang memungkinkan pengguna untuk konvergen ke ruang aktif yang diinginkan dengan cara yang transparan dan terkendali. ORCA 6 sekarang juga dilengkapi konvergen orde kedua yang konvergen secara kuadrat berdasarkan pendekatan trust-radius augmented Hessian (TRAH) [ 34 ] Akhirnya, seperti yang disebutkan di atas, perhitungan koefisien kopling yang ditingkatkan secara drastis sangat mempercepat langkah CI untuk yang lebih besar.

3.3 Pembuatan Kode Otomatis untuk Metode Korelasi
Sejumlah besar pekerjaan telah dilakukan untuk meningkatkan fungsionalitas kode yang dihasilkan secara otomatis untuk kalkulasi korelasi dalam kerangka modul AUTOCI. Infrastruktur telah ditingkatkan secara besar-besaran, menghasilkan kode yang efisien yang sering kali menyaingi kode tulisan tangan terbaik yang tersedia di ORCA atau di tempat lain [ 35 ]. AUTOCI juga diparalelkan, meskipun efisiensinya agak moderat mengingat bahwa operasi AUTOCI memerlukan sejumlah besar input dan output, yang mengganggu penskalaan paralel sampai batas tertentu. Namun, peningkatan kecepatannya masuk akal hingga sekitar 8–16 inti.

Berdasarkan upaya yang dilakukan pada AUTOCI, sekarang fitur gradien analitik untuk metode klaster terkopel termasuk CCSD dan CCSD(T) dengan atau tanpa inti beku untuk fungsi gelombang referensi RHF dan UHF. Selain itu, ada modul respons linier klaster terkopel yang memungkinkan kalkulasi properti respons seperti polarizabilitas. Selain metode klaster terkopel hingga dan termasuk CCSDT, ORCA 6 juga menampilkan teori perturbasi Møller-Plesset hingga orde kelima untuk referensi RHF dan UHF termasuk gradien analitik dan matriks kepadatan yang dilonggarkan.

AUTOCI telah dioptimalkan hingga ke titik di mana perhitungan yang cukup besar dapat dilakukan. Kami memperkirakan batas atas menjadi sekitar 1000 fungsi basis untuk CCSD/MP4(SD), 600–800 fungsi basis untuk gradien CCSD, dan CCSD(T)/MP4. Optimalisasi lebih lanjut tentu akan terbukti memungkinkan, dan perlu ditekankan bahwa karena pendekatan “integrasi mendalam” yang telah kami ambil [ 35 ] setiap peningkatan dalam rantai pembangkitan akan secara otomatis menguntungkan semua kode yang dihasilkan secara otomatis.

3.4 Relativitas
Peningkatan yang sangat signifikan dalam ORCA 6 adalah penerapan Hamiltonian relativistik X2C [ 36 , 37 ]. Seperti biasa dengan ORCA, X2C ditampilkan dalam varian relativistik skalar dan menampilkan koreksi perubahan gambar orde pertama dan kedua serta gradien analitik. Hessian dihitung secara semi-numerik dari gradien analitik.

3.5 Keadaan Gembira
ORCA memiliki sejumlah besar metode untuk menghitung status tereksitasi secara elektronik termasuk MRCI, CIS/TD-DFT (RPA atau RDA), ROCIS, NEVPT2, dan CASPT2, MC-RPA dan lain-lain. Semua metode ini sekarang dapat dikombinasikan dengan infrastruktur “one-photon absorption” (OPA) baru yang memungkinkan perhitungan momen transisi menggunakan Hamiltonian interaksi medan-materi yang lengkap dan tepat [ 38 ].

ORCA 6 juga dilengkapi dengan metode ROCIS spin umum (GS-ROCIS) yang memungkinkan perhitungan ROCIS di atas fungsi gelombang referensi CSF-ROHF umum. Hal ini sangat berguna dalam perhitungan spektrum molekul yang digabungkan secara antiferomagnetik atau permukaan antiferomagnetik [ 39 ].

Selain itu, sifat spektroskopi baru tersedia termasuk spektrum CD dan MCD yang diselesaikan secara vibrasi serta pendekatan baru untuk perhitungan spektrum Fluoresensi dan Fosforesensi serta laju peluruhan tanpa radiasi.

Modul VPT2 dalam ORCA juga telah diperluas secara signifikan untuk perhitungan sifat molekuler yang dirata-ratakan secara vibrasi seperti pergeseran kimia NMR, konstanta kopling spin-spin, g-tensor, dan kopling hyperfine di antara banyak peningkatan teknis lainnya.

3.6 Pemecahan dan Penanaman Eksplisit dan Implisit
Banyak perbaikan teknis telah dilakukan pada implementasi berbasis polarizable continuum (CPCM) konduktor di ORCA, termasuk skema isodensitas yang ditingkatkan untuk mesh permukaan yang digunakan, efisiensi yang jauh lebih tinggi dalam perhitungan integral melalui shark, skema “PTES” untuk perhitungan DLPNO-CCSD(T) dalam keberadaan pelarut, dan hessian analitik SMD, di antara perbaikan lainnya [ 40 ].

ORCA 6 memiliki tiga alat baru yang sangat canggih yang ditujukan untuk menangani kompleksitas konformasi. Pertama dan terutama, algoritma GOAT adalah pengoptimal global yang mampu mengidentifikasi keluarga konformer yang berada di posisi rendah dalam sistem yang kompleks [ 41 ]. Alat yang bernama DOCKER memungkinkan geometri interaksi yang optimal antara sepasang molekul yang berinteraksi ditemukan secara otomatis. Alat yang disebut SOLVATOR adalah cara yang otomatis dan efisien untuk membuat cangkang solvasi eksplisit untuk zat terlarut tertentu.

ORCA 6 juga dilengkapi dengan metode multipole cepat (FMM) untuk perhitungan skala linier kontribusi muatan titik dalam QM/MM dan perhitungan penanaman elektrostatik [ 42 ]. Hal ini menghasilkan percepatan besar dalam perhitungan dengan muatan titik yang sangat banyak (ratusan ribu hingga jutaan).

4 Kesimpulan
Seperti yang disebutkan dalam pendahuluan, ORCA 6 pada dasarnya bukanlah pembaruan atau penyempurnaan pada program yang sudah ada, tetapi pada dasarnya merupakan rangkaian program kimia kuantum yang sepenuhnya dikerjakan ulang dan sangat efisien. Ini merupakan upaya jangka panjang oleh tim pengembangan yang dimulai pada musim semi tahun 2020 dan mencapai titik puncaknya saat ini dengan dirilisnya ORCA 6.0 pada bulan Juli tahun 2024. Mungkin sekitar 90% infrastruktur inti ORCA telah ditulis ulang dan alur logika yang sama sekali baru telah diimplementasikan. Peningkatan ini telah sangat meningkatkan efisiensi ORCA 6.0 yang berjalan jauh lebih cepat daripada versi program sebelumnya. Meskipun masih ada beberapa tugas perampingan yang tersisa, ORCA 6.0 kini menyediakan alat yang sangat kuat dan praktis untuk pengembangan lebih lanjut yang efisien. Hal ini akan terwujud dalam siklus rilis yang lebih pendek dan peningkatan jumlah fitur yang diimplementasikan secara efisien di setiap rilis. Pada saat yang sama, infrastruktur yang dikerjakan ulang telah menjadi tujuan penting untuk memfasilitasi integrasi ORCA ke dalam solusi alur kerja. Untuk tujuan ini, upaya signifikan telah diinvestasikan dalam antarmuka JSON yang memungkinkan peneliti untuk menghubungkan ORCA, misalnya untuk integrasi ke dalam GUI, untuk menggunakan ORCA sebagai generator integral atau pengoptimal eksternal atau untuk koneksi ke alat analisis hilir untuk menyebutkan beberapa area aplikasi saja.

Pembuatan ORCA 6.0 merupakan sebuah pencapaian besar, kerja keras, dan dedikasi yang tinggi. Tim ORCA dengan bangga merilis versi kode ini ke masyarakat umum.

Leave a Reply

Your email address will not be published. Required fields are marked *