Information of MDSPASS2
Latest source codes and binary are now available at GitHub:
https://github.com/yoshiumeno/mdspass2
Download and install
At this moment, the use of MDSPASS2 is limited to our collaborative research projects.
If you wish to download or use the software, please make sure to contact Umeno Laboratory in advance.
for Windows (binary distribution)
- Download the latest ZIP file from here.
- Extract the ZIP file and navigate to the extracted folder.
- Double-click mdspass2.exe in the folder to run the program.
- mdspass2.exe.manifest must be located in the same directory.
- The DLL files included in the extracted folder (glut32.dll, libpng15.dll, zlib1.dll) are required to run mdspass2. Place them in the same directory as mdspass2.exe or in C:\Windows\System.
for Linux/Mac (compile from source)
1. Installing the required development environment and libraries
*For setting up the environment for GLUI programming, please also refer to the information below. If you only need to use GLUI for programming, it is sufficient to follow the instructions up to "Installing GLUI."
Because gcc (g++), glut, glui, lapack (blas), and libpng are required, please install them with reference to the instructions below. (These steps are only hints; please look up additional details as needed.)
<For Linux> (also described in README.j included with the mdspass2 source files)
- Installing freeglut
In environments using yum package management (e.g., CentOS):
> sudo yum install freeglut
> sudo yum install freeglut-devel
In environments using apt-get (e.g., Ubuntu):
> sudo apt-get install freeglut3-dev
- Installing GLUI
Obtain the source (e.g., latest version glui-2.36.tgz) from http://glui.sourceforge.net/.
Go to the src directory and modify the makefile as follows:
(1) Uncomment the two lines under "FreeGLUT",
change /usr/X11R6/lib -lfreeglut to /usr/lib -lglut,
and change /usr/X11R6/include to /usr/include.
(2) Comment out the two lines under "GLUT."
Run make, then copy libglui.a and glui.h to the appropriate locations (e.g., /usr/lib/libglui.a and /usr/include/GL/glui.h).
*Please note that GLUI contains several bugs (e.g., double-click not working in the file browser, directory cannot be changed, the first file listed cannot be selected, files not shown in alphabetical order). We provide a custom bug-fixed version (included in the mdspass2 source distribution), so you may compile that version instead.
- Installing libpng
For yum:
> sudo yum install libpng-devel
For apt-get:
> sudo apt-get install libpng-dev
*Depending on your environment, libXmu and libXi may be required (if make reports missing -lXmu or -lXi).
For yum:
> sudo yum install libXmu-devel
> sudo yum install libXi-devel
For apt-get:
> sudo apt-get install libxmu-dev libxi-dev
- Installing lapack/blas
For yum:
> sudo yum install lapack
> sudo yum install blas
> sudo yum install lapack-devel
For apt-get:
> sudo apt-get install libatlas-base-dev liblapack-dev
<For Mac>
Updated in January 2024 after confirming installation on macOS Ventura (ver. 13.6.3)
Updated in December 2025 after confirming installation on macOS Sequioa (ver. 15.7.2)
- Installing gcc
Install Xcode. It can be downloaded for free from the Mac App Store. (If macOS prompts you to upgrade your system version during installation, please follow the instructions.)
Install the Command Line Tools for Xcode. Open Xcode and select:
File -> Xcode -> Open Developer Tool -> More Developer Tools, then choose "Command Line Tools" from the list (select the version appropriate for your system).
Instead, run "xcode-select --install" on Terminal. (This seems easier.)
- Installing Homebrew
Visit the Homebrew website, where you will find a command instructing you to "copy and paste the following line into the terminal."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(It is recommended to visit the website and copy the command directly for safety.)
During installation, you will be prompted to press Enter and then to enter your password; the rest should proceed automatically.
If you see a message like "Next steps: Run these commands in your terminal to add Homebrew to your PATH:", just follow the instruction.
In the terminal, run brew doctor.
If the message Your system is ready to brew. appears, the installation was successful.
- Installing the required libraries
- Download
lib4mdspass2.tar.gz from here.
- Extract it with
tar xvfz lib4mdspass2.tar.gz, which will create a directory named lib4mdspass2; move into it (cd lib4mdspass2).
- Follow the instructions in the README file. Specifically, execute the following steps:
- Create directories to store the libraries
sudo mkdir /usr/local
sudo mkdir /usr/local/lib
sudo mkdir /usr/local/include
sudo mkdir /usr/local/include/GL
- Compile and install GLUI
cd glui-2.36_bugfix2
cd src
make
sudo cp lib/libglui.a /usr/local/lib/
sudo cp include/GL/glui.h /usr/local/include/GL
cd ../..
- Compile and install libpng
cd libpng-1.6.34
./configure
make
sudo make install
- Install lapack
brew install lapack
2. Compiling mdspass2 (for both Linux and Mac; for Mac, editing the Makefile is required as described in section 3 below)
- Download the source files
For Linux: here
For Mac: here
Download the latest tarball (mdspass2.<date>.tar.gz).
- Extract it with
tar xvfz <filename>.
- Move into the created directory (mdspass2.<date>).
- Run
make clean; make to compile. You may see warnings, but as long as no errors occur, the compilation is successful.
- Run with
./mdspass2.
(Note)
To specify a home directory: ./mdspass2 <DIR>
To specify an atomic configuration file: ./mdspass2 <DIR> CONFIG
To specify both an atomic configuration file and a setting file: ./mdspass2 <DIR> CONFIG SETDAT
A pot/ directory must exist under your home directory, and the potential data files should be placed inside it.
Known problems
Unexpected crashes with Segmentation Fault (Linux)
(2019.12.03) In rare cases, the program may suddenly terminate with a segmentation fault even when no specific operation was performed (for example, the program crashes while running MD continuously, and the step at which it crashes varies depending on the case). If this occurs, changing the graphics card driver may resolve the issue.
(There was a case in which a machine equipped with an NVIDIA graphics card experienced this problem, and switching the default "nouveau" driver to an "additional proprietary driver" resolved the issue.)
Update history
Sep 6 2021
- Merged with the ReaxFF-compatible version developed separately (2020/7/22). ReaxFF can now be used, at least in a basic form.
Jul 13 2021
- Fixed an issue in
e_force_tersoff.cpp where problems occurred when atoms interacted with more than one replica image in a small simulation cell.
- Significantly revised the NEB analysis and added an option to specify the spring constant (functionality still experimental and may require further improvement).
Dec 15 2020
- Fixed a bug where ensemble switching in RECIPE did not work. When RECIPE loads a new SETDAT file and the ensemble setting has changed,
md_set() is now called. (Added the variable ensemble_p to store the ensemble setting.)
May 20 2020
- On Ubuntu 20.04, a segmentation fault occurred when selecting atoms by mouse pick (no problem up to Ubuntu 19.10). The Linux version was fixed and updated. (Related article)
Dec 16 2017
- Compilation errors were found on macOS (possibly due to incompatibility with gcc), so a modified source version for Mac was uploaded.
May 2 2013
- Implemented the AIREBO potential (excluding the torsional term). For example, van der Waals interactions between layers in multi-layer CNTs are now
properly computed.
*Testing for hydrocarbon systems may still be insufficient.
Apr 5 2013
- Partially corrected the Write config function (for CONFIG.OUT.ABS, corrected the unit of atomic coordinates from meters to ?).
Mar 19 2013
- Added the Edit configuration function. In the Create config popup window, expanding the "Edit atom" rollup opens a panel for adding/deleting atoms, moving atoms, and changing species.
- Added NEB analysis mode, accessible via the Extra button. The initial configuration is loaded from CONFIG.NEB.INI, and the final configuration from CONFIG.NEB.END. After NEB analysis, the node configurations between INI and END are saved as files such as CONFIG.NEB.01. The energy curve is written to
feneb.d (including intermediate states during relaxation) and feneb_last.d (final curve only).
- Added Phonon analysis mode, accessible via the Extra button. Prepare a unit cell beforehand (e.g., N=2 for Si) and run the calculation. The phonon dispersion curve (discrete points) is written to
phonon.d.
- Added the ability to measure the distance between two atoms and the bond angle among three atoms. The panel opens via the Measure button in the Extra popup window.
Jan 31 2013
Jan 29 2013
- Added stress-control functionality using the Parrinello?Rahman method.
- Stress tensors and cell shape matrices are now output to
stress.d and cell.d, respectively (see the first line of each file for format).
- Added a damper to suppress excessive cell-shape contraction in the Parrinello?Rahman method (Algorithm = NPH+PRdamper, NPT+PRdamper). The damper value can be adjusted in the Stress window. The Hv Limit sets an upper bound on the rate of change of the cell-shape matrix, though it may not be necessary.
- Added a function for simultaneous relaxation of atomic positions and cell shape (adjusting the cell shape to match the target stress) (Algorithm = Full relaxation).
- (Bug fixed!) Fixed bugs in ADP, EAM Mishin, GEAM, and Morse (incorrect stress calculation when using a small cell).
Jan 22 2013
- (Bug fixed!) Fixed a bug in CNT corrugation mode where the load applied to the CNT (CNTprs displayed in the Control panel) was computed incorrectly. Accordingly, removed CNTprs (load per atom) and replaced it with CNTload (total load on the CNT).
- (Minor bug fixed) In the Set param --> Special settings for CNT window, corrected the unit of Fmax in the Ring section from (N) to (eV/?).
- In the MD viewer window, corrected the units of atomic coordinates displayed upon clicking an atom to ?.
Jan 20 2013
- Added a function to load potential parameters from a file. Pressing the Pot file button newly added under Set parameter opens a popup window where a potential parameter file can be selected (place parameter files under the
pot/ directory beneath the current directory). Currently supports only the Dipole potential.
- Added a Calc button to the main window. It updates the energy, forces, and stress without performing MD.
Dec 30 2012
- Slightly improved the performance of ADP and other potentials.
- Added a function to color atoms by Energy and CSP (Central Symmetry Parameter).
Dec 20 2012
- Added support for ADP (Angular Dependent Potential) (currently Sn only; parameters are hard-coded).
- Made it possible to switch whether atoms are always wrapped inside the cell box under periodic boundary conditions.
Nov 29 2012
- Fixed an issue in CNT corrugation mode where external load was computed only in wall mode; now CNTprs values are displayed in ring mode as well.
Nov 28 2012
- Enabled displaying only the forces on atoms due to external loading.
- Enabled drawing the ring in ring mode of CNT corrugation mode.
- Previously, the bookkeeping radius (frc) had to be set directly via SETDAT, which depended on the potential cutoff radius (rc). To simplify this, the difference between rc and frc (frc_margin) can now be specified instead.
- Correspondingly, cutoff radii and related values can now be viewed in the Set param window. The frc_margin can be entered in the "B-keep margin" box.
- Added a Stress button. Pressing it opens a popup window displaying the global stress acting on the cell. Results can also be checked by comparison with numerical differentiation. Local stress per atom is displayed when clicking an atom.