# FLUX field file — DEX (`.dex`)

The **DEX** format stores a single nodal field for Altair/CEDRAT **FLUX**
(electromagnetic and thermal simulation), the field companion to the FLUX mesh
([`.pf3`](./flux.md)), following
[FEconv](https://github.com/victorsndvg/FEconv).

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

## Reading & writing

```python
import meshioplusplus

field = meshioplusplus.read("field.dex")        # geometry-less Mesh
meshioplusplus.dex.write("out.dex", field)
```

## File structure

A two-line header delimited by `#`, then one row per point holding the point
coordinates (`x y z`) followed by its `NB_COMP` field values:

```
# NAME = PIECE FORMULA = mGradT
NB_REAL = 1 NB_COMP = 3 NB_POINT = 25419 #
16.8621677515026 32.8775510204082 0 -4612.18830812659 31808.9451403159 0
...
```

## Data mapping

DEX is read into a geometry-less `Mesh` (no cells) whose `points` come from the
coordinates and whose `point_data[<FORMULA>]` holds the values (shape
`(NB_POINT, NB_COMP)`, or 1-D when `NB_COMP == 1`). On write, the first
`point_data` array supplies the values, the piece name defaults to `PIECE`, and
the field name comes from the data key. Fields are at nodes only.

## 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).
