iMolpro 1.0.1

ウェブページ

https://github.com/molpro/iMolpro

バージョン

1.0.1

ビルド環境

-

ビルドに必要なファイル

  • Miniforge3-Linux-x86_64.sh (miniforge installer)
  • diff-projectwindow.py: csh/tcsh でも動かすための修正

--- ProjectWindow.py.org    2024-03-08 14:34:07.000000000 +0900
+++ ProjectWindow.py    2024-03-08 14:33:22.000000000 +0900
@@ -122,8 +122,12 @@
        settings['project_directory'] = os.path.dirname(self.project.filename(run=-1))

        if 'PATH' in os.environ and 'SHELL' in os.environ:
+            if re.search( 'csh', os.environ['SHELL'] ):
+                myopts = " -c 'echo $PATH'"
+            else:
+                myopts = " -l -c 'echo $PATH'"
            try:
-                os.environ['PATH'] = os.popen(os.environ['SHELL'] + " -l -c 'echo $PATH'").read() + ':' + os.environ[
+                os.environ['PATH'] = os.popen(os.environ['SHELL'] + myopts).read() + ':' + os.environ[
                    'PATH']  # make PATH just as if running from shell
            except Exception as e:
                msg = QMessageBox()

ビルド手順

#!/bin/sh

VERSION=1.0.1
#INSTALL_DIR=/apl/imolpro/${VERSION}

BASEDIR=/home/users/${USER}/Software/iMolpro/${VERSION}
MINIFORGE=${BASEDIR}/Miniforge3-Linux-x86_64.sh
IMOLPRO_GIT=https://github.com/molpro/iMolpro.git
IMOLPRO_TAG=refs/tags/${VERSION}

WORKDIR=/gwork/users/${USER}
WORKDIR_IMOLPRO=${WORKDIR}/imolpro
WORKDIR_BUILD=${WORKDIR_IMOLPRO}/build

PATCH=${BASEDIR}/diff-projectwindow.py

# ------------------------------------------------------------------------
umask 0022
export LANG=C
export LC_ALL=C

module -s purge

if [ -d ${WORKDIR_IMOLPRO} ]; then
  mv ${WORKDIR_IMOLPRO} ${WORKDIR_IMOLPRO}_erase
  rm -rf ${WORKDIR_IMOLPRO}_erase &
fi
mkdir ${WORKDIR_IMOLPRO} && cd ${WORKDIR_IMOLPRO}

sh ${MINIFORGE} -b -f -p ${WORKDIR_IMOLPRO}/miniforge3

eval "$(${WORKDIR_IMOLPRO}/miniforge3/bin/conda shell.bash hook)"

cd ${WORKDIR}
if [ -d iMolpro ]; then
  mv iMolpro iMolpro-erase
  rm -rf iMolpro-erase &
fi
git clone ${IMOLPRO_GIT}
cd iMolpro
git checkout ${IMOLPRO_TAG}

# /tmp is not only for you!
export TMPDIR=${WORKDIR_BUILD}
mkdir -p ${TMPDIR}
sed -i -e "s/\/tmp\///g" iMolpro.py database.py
# for csh... is it ok?
patch -p0 < $PATCH
# ad hoc workaround necessary only in RCCS (regarding token file protection)
conda install -c conda-forge -y --file=requirements.txt || exit 1
sed -i -e "s/\['\/bin\/sh'\]/[]/" ${WORKDIR_IMOLPRO}/miniforge3/lib/python3.*/site-packages/pymolpro/project.py

sh ./build.sh
# install dist/iMolpro-1.0.1-dirty.Linux.x86_64.tar.bz2 into $INSTALL_DIR manually

メモ

  • RCCS で利用するには X の転送が必要です。
    • Windows なら MobaXterm など、mac ならば Xquartz, Linux ならば ssh 接続時に X の forwarding を有効にするなどの準備が必要です。
    • 内蔵 JMol で分子の絵を表示することも可能なようです。
  • 独自の修正(csh での動作と /tmp の利用回避)を行っているため、1.0.1-dirty というバージョン名が表示されます。
  • molpro コマンドが PATH 中に見つかれば guided mode が有効化されます。
    • guided mode では toggle box などで設定を指定可能です。
  • 現時点では iMolpro から jsub でジョブを投入する方法は準備していません。
    • (backend の設定を行い、ジョブ投入用のユーティリティを用意すれば可能だとは思われます。公式サイトの doc/example.md に例があります。)
    • インプットの作成とログインサーバでの簡単なテスト計算は現時点でも実行できます。
  • RCCS では imolpro のモジュールを読み込めば、imolpro-molpro2023.2.0 のようなコマンドで molpro のバージョンを指定した形で iMolpro を起動できるように設定しています。
    • imolpro-molpro2023.2.0 (molpro 2023.2.0)
    • imolpro-molpro2022.3.0 (molpro 2022.3.0)
    • imolpro-molpro2021.3.1 (molpro 2021.3.1)
    • imolpro-molpro2024.1.0 (molpro 2024.1.0; 近日中に利用可能になる予定)