ORCAの入手とインストール
下記資料に具体的に記載されているので、ユーザー名とプログラムのバージョン名を除き、インストールフォルダ、実行フォルダは著者の指示にしたがった。
参考資料 macOS Arm64にORCAをインストールする https://tobiacavalli.com/writing/installing-orca-macos/
ORCAのCUI計算(コマンド処理)
環境
ORCAアプリの場所 /Users/<username>/Library/orca611/orca
実行フォルダ /Users/<username>/Desktop/orca_test
並列化に必要なアプリ Open MPI /Users/<username>/openmpi
open mpiは、最新版の509ではなく416を使用
注:新しいMac OSには、ORCAとそのサブプログラムが直接実行されないようにするセキュリティ機能がある。この機能を無効にするには、ターミナルでORCAディレクトリに移動し、次のxattrコマンドを実行する。
cd /Users/<username>/Library/orca611
xattr -d com.apple.quarantine *
注)特定の属性を削除: xattr -d <属性名> <ファイル名>
.zshrcへの追加項目
PATH(環境変数)を登録して、コマンド名だけでプログラムを呼び出せるようにする
export LD_LIBRARY_PATH=/Users/<username>/Library/orca611:$LD_LIBRARY_PATH
export PATH=/Users/<username>/Library/orca611:$PATH
export PATH=$HOME/openmpi/bin:$PATH
export LD_LIBRARY_PATH=$HOME/openmpi/lib:$LD_LIBRARY_PATH
インプットデータの作成
Avogadroで分子を描画、分子力場法でエネルギー最小化、インプットデータを作成、保存する。
保存場所 Desktop/orca_test
細かい設定はマニュアルをweb検索して追加する
ターミナル実行
シングルコア処理
% orca tetrahedron-1.inp
マルチコア並列処理
% /Users/<username>/Library/orca611/orca tetrahedron-1.inp
計算結果がターミナル上に表示され、以下のメッセージが表示されれば正常終了。
****ORCA TERMINATED NORMALLY****
ターミナルの表示結果をファイルにも書き出す場合
% orca tetrahedron-1.inp > tetrahedro-1.out
ターミナル操作をApple Scriptで行う方法
Apple Scriptの例
計算終了後、outファイルをAvogadro2で読み込み計算構造と軌道を表示する
tell application "Finder"
activate
set workDir to "/Users/<username>/Desktop/orca_test"
set selectedFile to choose file with prompt "入力ファイル(inp)を選択してください:"
-- tell application "Finder"
set fileName to name of selectedFile
display dialog "入力ファイル名: " & fileName
set AppleScript's text item delimiters to "."
set extractedText to text item 1 of fileName
tell application "Terminal"
activate
do script "source ~/.zshrc; cd /Users/kh/Desktop/orca_test; /Users/kh/Library/orca611/orca " & fileName & " > " & extractedText & ".out" -- do script 行は改行しない
-- 次のステップでAvogadro2を起動するタイミングを決定(プロセス終了の検出)
set orcaRunning to true
set maxWaitTime to 300 -- 最大待機時間 (秒)
set startTime to current date
repeat while orcaRunning is true and (current date) - startTime < maxWaitTime
delay 5 -- 5秒ごとにチェック (計算時間に合わせて調整)
try
-- プロセスが実行中かチェック (例: "orca"という名前のプロセス)
-- 'ps aux | grep orca' でプロセスを検索
set processList to do shell script "ps aux | grep -v grep | grep orca || true"
if processList is "" then
set orcaRunning to false -- orcaプロセスが見つからない場合は終了と判断
end if
on error
set orcaRunning to false -- エラーが発生した場合も終了と判断
end try
end repeat
end tell
end tell
-- Avogadro2によるoutファイルの読込みと描画(計算構造と軌道)
tell application "Avogadro2" --Avogadro2の場合はauxファイルを指定
activate
open "Macintosh HD:Users:<username>:Desktop:orca_test:" & extractedText & ".out"
end tell
重要な点
マルチコアの場合、プログラムはフルパスで指定する。
マルチコアで動かない場合、source ~/.zshrcを追加する。
source ~/.zshrc; cd /Users/<username>/Desktop/orca_test; /Users/kh/Library/orca611/orca
Avogadro2による最適化構造と分子毅道の表示
更なる試み
MoleQueueを介してAvogadro2から起動
シングルコアは以下の設定で成功したが、マルチコアは検討中
設定項目
#!/bin/bash
/Users/<username>/Library/orca611/orca $$inputFileBaseName$$.inp > $$inputFileBaseName$$.out
マルチコアを以下で実行したが正常終了しない。
#!/bin/bash
/opt/homebrew/bin/mpirun -np $$numberOfCores$$ /opt/orca611/orca $$inputFileBaseName$$.inp > $$inputFileBaseName$$.out