# GURU — руководство по `guru-viscosity` (RU)

**Назначение.** Оценка динамической и кинематической вязкости. На текущем этапе реализован метод Стокса–Эйнштейна (SE) с использованием радиуса первого пика RDF и коэффициента самодиффузии.

---

## Формула (вариант SE)

```
D * eta = k_B * T / (2 π d)
```

где `eta` — динамическая вязкость [Па·с], `D` — коэффициент самодиффузии [м²/с], `T` — температура [К], `d` — радиус первого пика `g(r)` [м]. Кинематическая вязкость `nu = eta / rho` [м²/с], если известна плотность `rho` (кг/м³).

---

## Синтаксис

```bash
guru-viscosity --method se \
  --msd diffusion.tsv --rdf-stats rdf_stats.tsv --thermo thermo.tsv \
  [--rdf-curve all] [--rho RHO_g_cc] \
  [-o viscosity.tsv] [--print]
```

**Входные данные**
- `--msd` — TSV из `guru-msd --diff-out` (читает `D_m2_per_s`).
- `--rdf-stats` — TSV из `guru-rdf --stats-out` (читает `r_peak_A`); `--rdf-curve` выбирает кривую (по умолчанию `all`).
- `--thermo` — TSV из `guru-thermo --out` для чтения `T_mean` (и `density_g_cm3`, если есть). Если плотность отсутствует — задайте `--rho` (г/см³) для расчёта `nu`.

**Выход**
- TSV: `method  T[K]  D[m2/s]  r_peak_A  eta_Pa_s  nu_m2_s  rho_kg_m3`.
- При `--print` значения дополнительно печатаются в консоль (или всегда, если `-o` не задан).

---

## Пример

```bash
guru-msd -x XDATCAR -o OUTCAR --diff-out diffusion.tsv
guru-rdf -x XDATCAR --stats-out rdf_stats.tsv
guru-thermo -i OUTCAR --out thermo.tsv

guru-viscosity --method se \
  --msd diffusion.tsv --rdf-stats rdf_stats.tsv --thermo thermo.tsv \
  -o viscosity.tsv --print
```

---

## Примечания
- Единицы: `r_peak_A` переводится в метры; `D` — в м²/с; `eta` — Па·с; `nu` — м²/с.
- Если `density_g_cm3` отсутствует в thermo TSV — используйте `--rho`.
- В дальнейшем планируется добавление методов Грина–Кубо и на основе автокорреляторов поперечного потока.

