File formats
What each file next to your model is for, and whether you should ever open, edit or delete it by hand.
Nabla keeps a model as a small family of files that all share one base name (for example
motor). Only one of them, the .nbl, is meant to be edited outside the
application; the rest are working files the application writes and reads for you.
.nbl — the model
The model itself: geometry (points, lines, arcs, circles), regions, holes, boundary conditions,
materials, coils, circuits, motion zones and solver settings. This is the file you open with
File → Open Model and the one you back up or put under version
control. Its contents are plain JSON — readable, diffable, and safe to rename or copy; only
the extension is Nabla's own, so that Windows can open a model when you double-click it and so
that the model stands out from the other .json files Nabla writes beside it.
To read a .nbl in an editor that highlights by extension, tell it the file is
JSON. In VS Code that is one line in your settings:
"files.associations": {"*.nbl": "json"}.
The format version
The first line of every model file is its format version:
{
"formatVersion" : 1,
...
It says which version of the file format the model was written in — not which
version of Nabla wrote it, which is recorded separately further down as modelVersion.
The two move independently: most Nabla releases change nothing about the format.
Nabla checks it when you open a model, and there are only three outcomes. A model in the format this build understands opens normally. A model in an older format is brought up to date as it loads. A model in a newer format — written by a Nabla newer than the one you are running — is refused, with a message naming both versions: update Nabla to open it. Nothing is loaded in that case, so the model you already had open is left exactly as it was.
Models saved by earlier versions
Nabla used to save the model as .json, and before that as .ujsn. Both
still open exactly as they always did — nothing needs converting, and the file itself is
never rewritten behind your back. The first save afterwards writes a .nbl next to it
and leaves the old file untouched, so you keep a copy either way. Once you are happy with the new
file, the old one can be deleted.
Models written before Nabla 1.0 carry no format version at all, so Nabla cannot verify what it
is being handed and refuses them by default. Open one with
File → Open (legacy, unverified) — deliberately a separate
menu item, so it is a decision rather than an accident — and save it once: the save stamps it,
and it opens normally from then on. For a script or an automated run, set the environment variable
NABLA_ALLOW_UNVERSIONED=1 before starting Nabla, which does the same thing for that
run.
.poly, .1.node, .1.ele, .1.edge — the mesh
Generated when you mesh the model. .poly is the polygon description handed to the
Triangle mesh generator (the Planar Straight-Line Graph: vertices, segments and region/hole
markers); .1.node, .1.ele and .1.edge are Triangle's own
output — the mesh nodes, triangle connectivity and boundary edges. These are intermediate
files: they are regenerated every time you mesh and are safe to delete. Do not edit them by hand;
edit the geometry in Nabla and remesh instead.
.mfs — model for the solver
The input the C++ solver actually reads: geometry, materials, boundary conditions, coils, circuits, motion and your licence token, serialised into the solver's own format. Nabla writes this file immediately before calling the solver and you never need to open it. If you report a solve that misbehaves, this is one of the files support may ask for.
.ems / .bin — the electromagnetic solution
The solver's binary result file for a magnetic (electromagnetic) run: field values at every mesh
node for every simulated step. Nabla reads this back to draw contour, vector and surface plots and
to compute region results. The extension is .ems; older models still carry the
previous extension, .bin, which Nabla still reads as a fallback so nothing you solved
before the rename stops working.
.ths — the thermal solution
The equivalent binary result file for a Thermal run (steady-state or transient heat conduction). It shares the electromagnetic solution's record layout with the slots re-purposed for temperature and heat flux, so the same plotting code draws both kinds of result.
.dxf — AutoCAD geometry exchange
Used only when you explicitly import or export geometry via File → Import .dxf / Export .dxf. It is how you move a cross-section to or from a CAD package; see Geometry — DXF import and export.
.nblic and .nbreq — licensing
.nblic is your licence token: a small, signed file bound to this machine that
unlocks the tier you purchased. .nbreq is an offline activation request — you
generate one when this machine cannot reach the licence server, send it to support or through the
web activation form, and receive back a .nblic to install. Both files are specific to
one machine: never copy a .nblic between computers expecting it to activate the
second one, and never share either file, since the token is what proves your entitlement.
What to back up
- Back up the
.nblfile. It is the only file you authored and the only one that cannot be regenerated. - The mesh (
.poly,.1.*) and the solutions (.ems/.bin,.ths) are convenient to keep so you do not have to remesh and resolve, but Nabla recreates them from the.nblon demand. - The
.mfsis transient solver input; there is no reason to keep old copies around. - Never back up or share
.nblic/.nbreqalongside a model you send to someone else — they belong to your licence, not to the model.
Next steps
- Troubleshooting — when a file will not open.
- Back to the contents.