# GURU — общий мануал

**GURU** — набор CLI‑утилит для постобработки результатов MD/DFT (VASP) и расчёта термодинамических и ударно‑волновых характеристик. Инструменты интегрированы и используют совместимые TSV‑форматы.

---

## Установка

```bash
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -e .
```

Зависимости: Python ≥3.8, NumPy, SciPy; Matplotlib (для графиков, опционально).

---

## Сводка CLI

- `guru-thermo` — усреднение T/P/E из OUTCAR или лога TSV; расширенный вывод со структурой (V_cell, ρ) при чтении OUTCAR. Быстрый подсчёт шагов: `--dry-run`. График: `--plot` (P_sum/E_sum vs step).
  - Пример:
    ```bash
    guru-thermo -i OUTCAR --skip 500 --end 2000 --out thermo.tsv --dump-log ep_log.tsv --plot thermo.png
    ```

- `guru-msd` — MSD(t) и коэффициент самодиффузии из `XDATCAR` (+ `POTIM` из `OUTCAR`); авто/ручное окно фита; PNG‑график. Быстрый потоковый парсинг.
  - Пример:
    ```bash
    guru-msd -x XDATCAR -o OUTCAR --msd-log msd.tsv --diff-out D.tsv --plot msd.png
    ```

- `guru-thermo-phase` — присвоение `phase` (0 — твёрдое, 1 — жидкость) по `guru-msd --diff-out` в расширенный TSV `guru-thermo --out`.
  - Пример:
    ```bash
    guru-thermo-phase --thermo thermo.tsv --msd D.tsv -o thermo_with_phase.tsv --print
    ```

- `guru-iso-fit` — аппроксимация изотерм/изохор полиномами (1–3) и вычисление состояния при заданном давлении (P*). Графики P–ρ/E–ρ или P–T/E–T.
  - Пример:
    ```bash
    guru-iso-fit --mode isochor --degree 2 --pressure 0 -i rho15.tsv -o ep0.tsv --plot
    ```

- `guru-hugoniot` — решение уравнения Хюгонио вдоль изотерм/изохор, с учётом фаз (столбец `phase`). Выводит P, T, ρ, D, U, флаги экстраполяции.
  - Пример:
    ```bash
    guru-hugoniot --initial ep0.tsv --Ma 63.5 -i isotherms/T300/*.tsv --curves both -o hugo.tsv
    ```

- `guru-mc-fit` — импедансное согласование на плоскости P–u с Монте‑Карло/джекнайф; выбор модели/фазы; PNG‑графики; выгрузка выборок и статистики.
  - Пример:
    ```bash
    guru-mc-fit -i HUG_PBE.tsv -i HUG_LDA.tsv --model-choice weighted --model-probs 0.6 0.4 \
      --phase-choice union --degree 2 --resample jackknife --w 5 --sigma-w 0.1 \
      --D 7 --sigma-D 0.1 --rho0 10 --sigma-rho0 0.1 --samples 20000 --plot --out-stats stats.tsv
    ```

- `guru-tsv-cat` — объединение нескольких TSV в один с единым заголовком.
  - Пример:
    ```bash
    guru-tsv-cat -o all.tsv data/*.tsv
    ```

- `guru-rdf` — радиальная функция распределения g(r) из `XDATCAR`; парциальные RDF, сглаживание, поиск первого пика/минимума, `n1` по g(r) или по минимуму `4πρ r² g(r)`; графики g(r) и «плотности соседей»; опциональная колонка shell в TSV.
  - Пример:
    ```bash
    guru-rdf -x XDATCAR --pair 1-1 --pair 1-2 --smooth-r 0.1 --n1-bound shell \
      --shell-column --rdf-out rdf.tsv --plot rdf.png --plot-shell shell.png --stats-out rdf_stats.tsv
    ```

---

## Рекомендации

- Для больших OUTCAR используйте `guru-thermo --dry-run`, чтобы подобрать окно усреднения; если нужны только средние, не указывайте `--out/--dump-log` — статистики считаются потоково.
- Для шумных RDF включите `--smooth-r`; границу n1 можно брать по минимуму `shell` (`--n1-bound shell`).
- Поддерживайте совместимость TSV: инструменты принимают друг друга как входы (см. примеры выше).

---

## Документация

- Общий PDF: `guru_manual.pdf`
- Подробные мануалы по скриптам: см. каталог `manuals/`.
