@echo off
chcp 936 >nul
title 分子世界 · 案例运行器 · 并行
cd /d "%~dp0"

set "NPROC=4"
if not "%~1"=="" set "NPROC=%~1"

echo.
echo ============================================================
echo   分子世界 · 探微寻幽   LAMMPS 算例运行器（MS-MPI 并行）
echo ============================================================
echo.
echo   工作目录：%CD%
echo   进程数  ：%NPROC%
echo.

set "INP="
for %%f in (in.*) do if not defined INP set "INP=%%f"
if not defined INP goto :noinput
if not exist "%INP%" goto :noinput

echo   输入脚本：%INP%
echo.
echo   注意：并行运行需要两个条件
echo         1. 使用文件名含 MSMPI 的 LAMMPS 版本，
echo            本课程默认安装的 GUI 版不含 MPI；
echo         2. 用 msmpisetup.exe 装好 Microsoft MPI。
echo         只装了 GUI 版的话，请改用 run-serial.bat。
echo.
pause

where mpiexec >nul 2>nul
if errorlevel 1 goto :nompi
where lmp >nul 2>nul
if errorlevel 1 goto :nolmp

echo   正在并行运行……
echo   ------------------------------------------------------------
echo   提示：并行时屏幕输出是块缓冲的，不会实时刷新；
echo         想看进度请用记事本打开 log.lammps。
echo   ------------------------------------------------------------
mpiexec -n %NPROC% lmp -in "%INP%"
echo   ------------------------------------------------------------
echo.
echo   运行结束，请查看 log.lammps 与轨迹文件。
echo.
pause
exit /b 0

:noinput
echo   [--] 本目录下没有找到 in.* 输入脚本。
echo        请把 in.lj 或 in.cu 与本脚本放在同一个文件夹里。
echo.
pause
exit /b 1

:nompi
echo   [--] 没有找到 mpiexec，无法并行运行。
echo        请先安装 Microsoft MPI，装完必须重开终端。
echo        安装方法见第 1 章 1.4 节。
echo.
pause
exit /b 1

:nolmp
echo   [--] 没有找到 lmp 命令，请先安装 LAMMPS。
echo.
pause
exit /b 1
