Jurnal Linuxku: Running banyak file input ORCA dengan skrip bash

Mungkin sebagai awal aku akan menceritakan latar belakangnya. Jadi aku ikut membantu project yang berhubungan dengan penelitian salah seorang temanku. Temanku ini meneliti di laboratorium eksperimen, nah.., aku mengerjakan bagian komputasinya. Belakangan memang penelitian itu saling dikomparasi antara penelitian eksperimen dengan penelitian komputasi atau teoretis. Penelitian model seperti ini bisa menguntungkan baik bagi peneliti eksperimen maupun peneliti teoretis.

Keuntungan yang didapatkan oleh peneliti eksperimen adalah mampu meminimalkan penggunaan bahan-bahan berbahaya, seperti benda radioaktif, beracun dan korosif. Keuntungan lain yang lain adalah penelitian teoretis dapat menghemat banyak biaya, sebab peneliti eksperimen tidak perlu melakukan percobaan dengan metode coba-coba di laboratorium yang mungkin menghabiskan banyak biaya dan bahan kimia. Ditambah lagi, dampak yang diterima lingkungan akibat limbah kimia dapat dikurangi secara signifikan. Keuntungan yang didapatkan oleh para peneliti teoretis adalah pengembangan metode yang luaran instrumen-intrumen tertentu (misalnya IR dan H-NMR) dapat mendekati luaran instrumen yang sebenarnya.

Nah, Aku punya ide untuk penelitiannya, namun itu berakibat pada banyak file input ORCA yang harus dilakukan kalkulasi, yaitu sebanyak 49 file input. Aku sendiri sebenarnya juga ada kesibukan lain yang harus diurus. Lantas aku berpikir, bagaimana jika dibuatkan skrip Bash untuk melakukan running file-file input itu secara berurutan. Akhirnya jiwa isengku muncul dan sambil baca-baca web tutorial dan syntax, jadilah skrip itu. Skripnya seperti ini:

OK, penjelasan skripnya seperti ini. Skrip yang penting adalah baris pertama hingga 12, kemudian 18 sampai 29.

  1. Baris pertama menunjukkan bahwa skrip ini dijalankan dengan bash
  2. Baris ke-3 hingga ke-12 merupakan fungsi yang gunanya untuk mengganti folder dan membuat file input ORCA-nya.
  3. Baris ke-4 digunakan untuk pindah folder atau direktori.
  4. Baris ke-5 digunakan untuk penunjukkan lokasi folder atau direktori.
  5. Baris ke-6 digunakan untuk menambahkan "! B3LYP FREQ" $2 "PAL4" ke file freq.inp. Sifatnya melakukan overwrite ke file freq.inp.
  6. Baris ke-7 digunakan untuk menambahkan satu baris kosong pada file freq.inp.
  7. Baris ke-8 digunakan untuk manambahkan "%FREQ SCALFREQ" $3 "END" ke file freq.inp.
  8. Baris ke-9 digunakan untuk menambahkan "* XYZFILE 0 1 ../asamsitrat.xyz" ke file freq.inp
  9. Baris ke-10 digunakan untuk menambahkan satu baris kosong pada file freq.inp
  10. Baris ke-11 digunakan untuk menunjukkan atau melakukan cetak ke layar file freq.inp
  11. Baris ke-18 merupakan array yang isinya seperti itu.
  12. Baris ke-19 merupakan array yang isinya keyword untuk ORCA.
  13. Baris ke-20 merupakan array yang isinya angka skala yang nantinya dikalikan untuk hasil.
  14. Baris ke-22 hingga baris ke-29 merupakan perulangan untuk membuat folder sesuai dengan nama yang tertera pada array yang telah dibuat (Baris ke-24), menampilkan status (Baris ke-25), menjalankan fungsi yang telah dibuat (Baris ke-26), menjalankan program ORCA (Baris ke-27) dan pindah directory (Baris ke-28).

Nah.., begitulah kira-kira hasil keisengan hari ini. Sejujurnya, ini masih kode sumber yang kotor. Artinya, masih ada fungsi yang tidak beguna (Baris ke-14 hingga 16). Semoga bisa berguna dan bermanfaat ya.