Metadata-Version: 2.4
Name: rapmat
Version: 0.2.19
Summary: Rapmat - rapid materials discovery using MLIPs and random search
Project-URL: Homepage, https://github.com/milevevvvv/rapmat
Author-email: Michael Levenets <milevev256@gmail.com>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: ase>=3.27.0
Requires-Dist: chemparse>=0.3.2
Requires-Dist: dscribe==2.1.2
Requires-Dist: filelock>=3.13.0
Requires-Dist: matplotlib>=3.8.0
Requires-Dist: matscipy>=1.2.0
Requires-Dist: numba>=0.63.1
Requires-Dist: phonopy>=2.47.1
Requires-Dist: platformdirs>=4.9.4
Requires-Dist: pydantic>=2.12.5
Requires-Dist: pymatgen>=2025.10.7
Requires-Dist: pyxtal>=1.1.2
Requires-Dist: seekpath>=2.2.1
Requires-Dist: spglib>=2.7.0
Requires-Dist: surrealdb>=2.0.0
Requires-Dist: tabulate>=0.10.0
Requires-Dist: tomli-w>=1.2.0
Requires-Dist: torch<2.10.0,>=2.9.0
Requires-Dist: torchvision>=0.24.1
Requires-Dist: urwid>=2.6.0
Provides-Extra: all-calculators
Requires-Dist: mattersim>=1.2.0; extra == 'all-calculators'
Requires-Dist: nequip>=0.16.2; extra == 'all-calculators'
Requires-Dist: upet>=0.2.1; extra == 'all-calculators'
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Provides-Extra: mattersim
Requires-Dist: mattersim>=1.2.0; extra == 'mattersim'
Provides-Extra: nequip
Requires-Dist: nequip>=0.16.2; extra == 'nequip'
Provides-Extra: upet
Requires-Dist: upet>=0.2.1; extra == 'upet'
Description-Content-Type: text/markdown

# rapmat

Rapid materials discovery TUI tool, based on random crystal generation and machine learning interatomic potentials.

# Features

- **Random crystal structure search** - generate candidate structures with [PyXTal](https://github.com/qzhu2017/PyXtal)
- **Multiple MLIP backends** - relax them with MatterSim, NequIP or UPET

# Installation

Nvidia GPU is highly recommended.
Linux is recommended as well as all backends are currently supported on linux systems.
[Conda](https://www.anaconda.com/docs/getting-started/miniconda/install/overview) may be [useful](https://www.anaconda.com/docs/getting-started/working-with-conda/conda-intro-tutorial).

## Linux

Install `pytorch<2.10.0` with CUDA support if you have an NVIDIA GPU, otherwise skip this step:

```bash
pip install torch==2.9.1 torchvision --index-url https://download.pytorch.org/whl/cu126
```

Then install rapmat:

```bash
# basic install
pip install rapmat

# mattersim support
pip install rapmat[mattersim]

# all calculators at once
pip install rapmat[all-calculators]
```

Run its TUI:

```bash
rapmat
```

## Windows

On windows systems only Upet and Mattersim (if built with prerequisites installed) MLIPs are supported.
One of the ways to overcome windows limitations is WSL2, check [Nvidia](https://docs.nvidia.com/cuda/wsl-user-guide/index.html) or [Ubuntu](https://ubuntu.com/wsl/docs/latest/howto/gpu-cuda/) guides.


# Usage

## Basic concepts

A study defines the system (e.g. Al-O) you are working on and the calculation settings like calculator, forces convergence criterion or pressure.
A Run defines a specific `formula x [formula units range]`: e.g. `Al2O3 x 6..8` constituting the unit cell being calculated.

Each run is assigned to its study. One study may have multiple runs, but not vice versa. 
Runs in one study may overlap, but you can view and perform actions such as deduplication or thickness filtering for only one run at a time. 
