# ANSYS Fluent interpolation file — IP (`.ip`)

The **IP** format is the ANSYS Fluent interpolation file, storing one or more
fields over a set of points, following
[FEconv](https://github.com/victorsndvg/FEconv).

| | |
|---|---|
| **Format name** | `ip` |
| **Extensions** | `.ip` |
| **Read / Write** | ✓ / ✓ |
| **Extra dependencies** | — |

## Reading & writing

```python
import meshioplusplus

field = meshioplusplus.read("field.ip")         # geometry-less Mesh
meshioplusplus.ip.write("out.ip", field)        # version-3 text
```

## File structure

Version, spatial dimension, point count, component count, the component names,
then a section of all values for each coordinate (`x`, `y`, and in 3-D `z`) and
a section of all values for each field component. In version **3** each section
is wrapped in `(`/`)`; version **2** has no parentheses:

```
3
2
34800
3
x-velocity
pressure
y-velocity
(-0.068062
 -0.0680413
 ... )
( ... )
```

## Data mapping

IP is read into a geometry-less `Mesh` (no cells) whose `points` come from the
coordinate sections and with one `point_data` entry per field component. On
write, a **version-3** file is produced; multi-component `point_data` arrays are
split into scalar component columns (named `<key>_0`, `<key>_1`, …).

## Quirks & limitations

- Only **text** IP files (versions 2 and 3) are supported; binary variants
  (versions 4 and 5) are not.
- Fields are treated as nodal (points from the coordinate sections). Attaching
  the values to an element mesh (Fluent's barycenter convention) is left to the
  caller.

## Notes

- Implemented against the [FEconv](https://github.com/victorsndvg/FEconv)
  format documentation (FEconv is GPL; no code or data is copied — fixtures are
  generated by round-trip).
