Introduction ============ What is ABCrystal? --------------------- ABCrystal is a **light-weighted** but **powerful** program for atomic and molecular **crystal structure predictions**. In one sentence, with a molecular structure and its Z, ABCrystal will give you a set of possible crystal structures (**both** atomic positions and cell are optimized) under specified pressure and crystal family in several seconds or hours by itself without any third-party software. ABCrystal Information --------------------- ABCrystal was initialized by Dr. Jun Zhang since 2015 and is still actively developed. If you have any bug reports, comments, suggestions or the possibility of cooperation on ABCrystal, please feel free to contact to Dr. Jun Zhang via E-mail: ``_ The latest version of ABCrystal can be obtained from: http://www.zhjun-sci.com/abcrystal ABCrystal Citation ------------------ .. attention:: The best way to support the development of ABCrystal is that in any published works using ABCrystal, please include the following references: - Zhang, J. `ABCrystal `_ *XX* **2024**, *XX*, XX-XX. - Zhang, J.; Dolg, M. `Global Optimization of Clusters of Rigid Molecules Using the Artificial Bee Colony Algorithm. `_ *Phys. Chem. Chem. Phys.* **2016**, *18*, 3003-3010. Installation of ABCrystal --------------------------- ABCrystal is an **out-of-box program.** When you `download ABCrystal `_, it is a .zip or .tar.gz file. Once you decompress it, ABCrystal is ready to work so actually no installation is needed. Please note that the current version of ABCrystal does not have a graphic user interface (GUI). One must use it in the command line of Windows or Linux. Below are some tips about running ABCrystal. For Windows Users +++++++++++++++++ You can call ABCrystal with its absolute path every time, or set path variable to the directory where ABCrystal resides. Assume you put ABCrystal in the directory ``D:\ABCrystal``, then right-click :guilabel:`This PC` and click :guilabel:`Properties`, :guilabel:`Advanced System Settings`, and :guilabel:`Environment Variables`. In ``System variables``, select ``PATH`` and click :guilabel:`Edit`. In the editbox, add ``;D:\ABCrystal`` at the end of the texts in it, and click :guilabel:`OK` to confirm it. .. tip:: Now, you can press :kbd:`Shift` and right-click in any explorer window and click :guilabel:`Open cmd window here` to call the command line. Type ``abcrystal`` to confirm that you can already call ABCrystal commands. For Linux Users +++++++++++++++ You can call ABCrystal with its absolute path every time, or set path variable to the directory where ABCrystal resides. Assume you put ABCrystal in the directory ``/home/you/bin/ABCrystal``, then open your ``.bashrc`` and at the end of the file, add the following statement: .. code-block:: bash :linenos: :caption: .bashrc export PATH=$PATH:/home/you/bin/ABCrystal export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/you/bin/ABCrystal then run ``source ~/.bashrc``. Type ``abcrystal`` to confirm that you can already call ABCrystal commands. Sometimes you may encounter some errors during running ABCrystal on Linux. Here are some useful tips. .. tip:: **/usr/lib64/libstdc++.so.6: version `GLIBCXX 3.4.21' not found** Please install or activate a GCC of higher version, like GCC 8.1.0. Sometimes you can try commands like ``module load gcc/8.1.0`` to solve this problem. .. tip:: **Incorrect format near ...** If you prepare an input file on Windows and copy it to Linux, ABCrystal may not recognize its format and report such an error. In this case, please transform the Windows file format into Linux one by ``dos2unix`` or using ``:set fileformat=unix`` in VIM. For OpenMP ++++++++++ ABCrystal is parallelized by OpenMP. By default, it will use up all the CPU cores by default. If you want to change this behavior, please set ``OMP_NUM_THREADS`` variable to the number of CPU cores you want to use. ABCrystal Files --------------- When you decompress ABCrystal, you will find several files, including executables and some plain text files: - ``abcrystal`` The ABCrystal essential file. - ``topgen`` It generates topology information for a molecule to be calculated. - ``testfiles`` Files for testing ABCrystal functions. - ``misc/charmm36`` Some collected CHARMM force field parameter files for ``rigidmol``. - ``misc/crystal-cp2k-dft.inp`` An input template file for CP2K to perform DFT calculations for crystals.