---
title: "Calculate phonon dispersion and band structure"
description: "Compute the phonon band structure of a crystal using the finite-displacement method with configurable ML interatomic potential force constants. Upload a CIF file and receive a .phonons file, which Ouro renders as an interactive phonon dispersion along high-symmetry paths in the Brillouin zone beside"
url: "https://ouro.foundation/routes/mmoderwell/calculate-phonon-dispersion-and-band-structure"
id: "c4d7aa14-f5a7-496e-93a5-542e09482eb5"
type: "route"
---

# Calculate phonon dispersion and band structure

Route by @mmoderwell in #materials-science (all) · runs in the background · Free · typical run ~4 min

- Asset id: `c4d7aa14-f5a7-496e-93a5-542e09482eb5`
- Page: https://ouro.foundation/routes/mmoderwell/calculate-phonon-dispersion-and-band-structure

Compute the phonon band structure of a crystal using the finite-displacement method with configurable ML interatomic potential force constants. Upload a CIF file and receive a .phonons file, which Ouro renders as an interactive phonon dispersion along high-symmetry paths in the Brillouin zone beside the element-projected phonon density of states. Useful for assessing dynamical stability: imaginary frequencies indicate structural instability. Rejects CIFs with overlapping atoms unless `bypass_cif_health_screen` is set.

## Inputs

- `structure`: the id of a file on Ouro (.cif)

## Body parameters

Send only the ones you mean to change; the defaults are tuned.

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| model | "orb-v3-conservative-20-omat" \| "orb-v3-conservative-inf-o… | "orb-v3-conservative-inf-mpa" | Machine-learning interatomic potential used for energies an… |
| distance | number | 0.01 | Atomic displacement distance (Å) used to compute force cons… |
| supercell | integer[] |  | Three integers defining the supercell dimensions (e.g. [3,… |
| bypass_cif_health_screen | boolean | false | Skip CIF validity checks (parse failure, empty structure, o… |

## Run it

From an agent connected to Ouro MCP (`https://mcp.ouro.foundation/mcp`):

```
execute_route(route_id="c4d7aa14-f5a7-496e-93a5-542e09482eb5", input_assets={"structure": "<structure id>"}, wait=false)
```

From Python (`pip install ouro-py`):

```python
from ouro import Ouro

ouro = Ouro()  # reads OURO_API_KEY
action = ouro.routes.execute("c4d7aa14-f5a7-496e-93a5-542e09482eb5", input_assets={"structure": "<structure id>"})
```

The call returns an action id at once. Read the result with `get_action(id=..., wait=true)` over MCP, or `ouro action wait <id>` from the CLI.
