High throughput simulation for crystalline interfaces
Project description
InterOptimus
Crystal interface search and optimization with MLIP acceleration, optional VASP, and Jobflow / jobflow-remote execution.
This distribution focuses on the JSON-driven IOMaker pipeline (submit → lattice match → MLIP → optional DFT → reports and fetch tooling).
Highlights
- Lattice matching, termination screening, single / double interface builds
- MLIP global minimization; optional VASP (cluster workers)
- One-shot config:
interoptimus-simple -c your.yamlorrun_simple_iomaker(...) - Outputs include
io_flow.json,io_report.txt,pairs_summary.txt,opt_results.pkl(useiomaker_fetch_results/remote_submithelpers after server submit)
Installation
From PyPI (after publish):
# Core only (lattice match, jobflow, interface pipeline). MLIP calculators need the extra:
pip install "InterOptimus[mlip]" # torch + orb-models + sevenn + deepmd-kit
# Common combinations:
pip install "InterOptimus[mlip,web,yaml]" # MLIP backends + browser UI + YAML configs
pip install InterOptimus # minimal deps; add [mlip] before running MLIP steps
From a git checkout:
pip install -e .
See GETTING_STARTED for first-time server setup (MongoDB, jobflow-remote, POTCAR, MLIP checkpoints). Links use HEAD so they stay valid on the PyPI project description and on GitHub.
Quick start (recommended)
# 1) Copy and edit paths / cluster / workers
cp InterOptimus/agents/simple_iomaker.example.json my_run.json
vim my_run.json
# 2) On the login node, after JOBFLOW / JFREMOTE / conda are configured:
interoptimus-simple -c my_run.json
Python API:
from pathlib import Path
import json
from InterOptimus.agents.simple_iomaker import (
run_simple_iomaker,
iomaker_status,
iomaker_fetch_results,
)
with open("my_run.json") as f:
result = run_simple_iomaker(json.load(f))
print(iomaker_status(result))
# When finished:
# iomaker_fetch_results(result, copy_images_to=Path("./out"))
Lower-level builder (already-normalized settings dict):
from InterOptimus.agents.iomaker_job import (
LocalBuildConfig,
execute_iomaker_from_settings,
normalize_iomaker_settings_from_full_dict,
)
Full parameter reference: simple_iomaker_parameters.
Optional: browser GUI (local runs)
pip install -e '.[web]'
interoptimus-web
The web UI drives the same run_simple_iomaker pipeline as the CLI; session directories default to ~/.interoptimus/web_sessions/ (override with INTEROPTIMUS_DESKTOP_SESSIONS or INTEROPTIMUS_WEB_SESSIONS). Optional relaxation telemetry uses INTEROPTIMUS_VIZ_LOG + INTEROPTIMUS_VIZ_ENABLE (see InterOptimus.viz_runtime).
Requirements
- Python ≥ 3.10
- Core stack:
pymatgen,interfacemaster,atomate2,jobflow,jobflow-remote,qtoolkit, … (seesetup.py) - MLIP stack (optional): install
InterOptimus[mlip]fortorch,orb-models,sevenn, anddeepmd-kit, or install those packages into your environment manually. MatRIS is not on PyPI; install from the upstream project if you usecalc=matris.
Layout
InterOptimus/
├── itworker.py # InterfaceWorker (physics + optimization)
├── matching.py # Lattice matching & screening
├── jobflow.py # IOMaker + Jobflow makers
├── mlip.py # MLIP calculators + checkpoint resolution
├── agents/
│ ├── simple_iomaker.py # CLI + run_simple_iomaker / status / fetch / rerun helpers
│ ├── iomaker_job.py # BuildConfig + execute_iomaker_from_settings
│ ├── remote_submit.py # submit_io_flow_locally, progress, fetch
│ └── server_env.py # interoptimus-env
├── web_app/ # FastAPI UI + job_worker (interoptimus-web)
├── session_workflow.py # web session driver (form → run_simple_iomaker)
├── result_bundle.py # curated result/ artifact folder
└── docs/
License
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file interoptimus-0.1.0.tar.gz.
File metadata
- Download URL: interoptimus-0.1.0.tar.gz
- Upload date:
- Size: 165.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7337b3e29e902b31b5db97d22c3ab118d6f6e361cd58569acb365baf5cfd18e1
|
|
| MD5 |
d4fa9e1d94e2ae32f62f95a448057fc9
|
|
| BLAKE2b-256 |
82a81d8176e106a8050471abaf6ba6378666540d834f595051e2e958a4714b36
|
File details
Details for the file interoptimus-0.1.0-py3-none-any.whl.
File metadata
- Download URL: interoptimus-0.1.0-py3-none-any.whl
- Upload date:
- Size: 175.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5f055f1923eec69060ec6229e9fb71d71506f37704265da11adb3a07a266f14
|
|
| MD5 |
05353080f3080c88ab3641d3aa257f65
|
|
| BLAKE2b-256 |
768b74c4e3d99aecbac6e5d556a422e4a9b7f1b716b0c993091fbb680da51e9d
|