Introduction

Nabla is a powerful finite element method solver designed specifically for electromagnetic field analysis in low frequency domain. It provides researchers and engineers with the tools to solve complex electromagnetic problems with high accuracy and efficiency.

Nabla is suitable for a wide range of applications including: machine design, transformer analysis, inductor modeling, etc.

Quick Start Guide

Step 1: Create Geometry

  1. Import CAD geometry or draw using built-in tools
  2. Define regions
  3. Assign material properties

Step 2: Set Boundary Conditions

  1. Identify boundary edges
  2. Apply appropriate boundary conditions
  3. Define excitation sources

Step 3: Generate Mesh

  1. Set mesh refinement parameters
  2. Generate the mesh
  3. Verify mesh quality

Step 4: Solve and Analyze

  1. Configure solver parameters
  2. Run the solver
  3. Visualize and analyze results
  4. Export data for further processing

Maxwell's Equations

Nabla solves various forms of Maxwell's equations depending on the problem type:

2D Magnetostatics

The magnetic field is computed using the vector potential A:

∇ × (ν∇ × A) = J

where ν = 1/μ is the reluctivity and J is the current density.

2D Time-Domain with Eddy-Currents

For transient problems including eddy-currents:

∇ × (ν∇ × A) + σ∂A/∂t = J

Geometry

Model geometry can be created using the built-in drawing tools or imported from standard CAD format: dxf

In-build tools allow creating basic shapes (lines, circles, rectangles) and combining them into complex geometries.

Geometry example

Regions

Material regions should be assigned to different parts of the geometry in the "Model Properties" pannel.

Regions example

Each region can have different material properties such as permeability, conductivity, etc. You can interractively select and assign regions in the graphics window. Regions are highlighted with distinct colors and a marker for easy identification.

Region Properties

After defining regions in your geometry, you need to assign material properties to each region.

Region Properties

Nonlinear Materials

Nabla supports nonlinear magnetic materials by allowing users to define BH curves for regions. Materials section in the Model Properties pannel provides options to create user-defined nonlinear materials or select from a library of common materials.

Material Properties

BH curves can be input as tabulated data points or selected from predefined curves for standard materials like silicon steel, ferrites, etc.

Nonlinear Materials: BH Curve

Nabla can compute Eddy-Current and Hysteresis (Iron) losses based on the defined specific loss curves. The data should be defined as specific loss (W/kg) vs. peak flux density (B in Tesla) at different frequencies.

Nonlinear Materials: Specific Loss

Nabla uses Steinmenz model for calculating Iron losses:

Piron = khfBα + kef2B2

Alternatively, users can provide Steinmenz coefficients kh, α, ke directly in the Region Properties Section of "Fit Curve" of selected material.

Boundary Conditions

Boundary conditions are applied to the edges of the geometry to define how the electromagnetic fields behave at the boundaries. Select edges (use Ctrl+Click for multiple selection) in the graphics window and then "right-click" to open "Assign BC's" context menu for applying boundary conditions.

Boundary Conditions

There are several types of boundary conditions available:

  • Dirichlet - fixed potential
  • Neumann - specified flux
  • Periodic
  • Anti-Periodic

Periodic and Anti-Periodic boundary conditions are used to model repeating structures by linking pairs of edges. For the linear edges the Periodic and Anti-Periodic BCs are applied as:

BC for linear edges

For arc and circle edges the Periodic and Anti-Periodic BCs are applied as:

BC for arc and circle edges

Circular BCs can be used to model rotational symmetry by linking edges around a center point. An angle of symmetry as well as a center point must be specified for the primary edge. For the primary edge a "secondary boundary marker" (an unique integer identifier) must be specified to identify the linked edge. For the secondary edge the "secondary boundary" checkbox must be selected and the same "secondary boundary marker" value must be provided.

BC - circular

Parallel BCs are used to model symmetry along a line. Similar to Circular BCs, a "secondary boundary marker" must be specified to link the primary and secondary edges. The direction of the symmetry line and the distance from the primary edge to the secondary edge must also be provided.

BC - parallel

The special type of BCs: Stationary and Moving sliding mesh are used to model motion (linear or rotational) between two parts of the geometry. This approach allows simulating relative motion without remeshing the entire geometry that saves computational resources. Additional "sliding band elements" are created automatically in the region between the stationary and moving parts to ensure proper field continuity.

BC - stationary line
BC - moving line
BC - stationary arc
BC - moving arc

Excitation

Excitation sources such as current-carrying conductors or coils can be defined to drive the electromagnetic fields in the model. The excitation source can be assigned to in "Magnetization and Current" section of the Region Properties pannel: Current density (MA/m²) for conductors or Coercive force (kA/m) & Direction of Magnetization for permanent magnets.

Excitation example 01

Another way to define excitation source is via Coil definition in the Model Properties pannel.

Coil definition - 01

Then in the Coil Properties section, you can define coil parameters such as number of turns, current type, and additional coil properties.

Coil properties - 01

Then in the Region Properties pannel, you can assign the defined coil to a specific region by selecting the coil from the "Set Coil" section. Alternatively, you can also assign coil to region via "right-click" context menu in the graphics window after selecting the region.

Excitation example 02

Meshing

Mesh size can be specified for each region in the "Mesh Propertioes" section of the Region Properties pannel.

Meshing example - 01

The default element size is defined in the Model Tree pannel. Nabla allows precisely controlling mesh density by specifying subdivisions for individual edges and then selecting the meshing method in the Model Tree pannel.

Meshing example - 02

You can select edges in the Geometry Editor and then "right-click" to open the "Shape Properties" context menu for specifying the number of subdivisions or element edge length for the selected edges.

Meshing example - 03

Alternatively, you can "Double-Click" on an edge in the Shapes list of the Model Properties pannel to open the Shape Properties dialog.

Meshing example - 03

Circuit Editor

The Circuit Editor allows you to create and manage circuit components and connections within your model. The Circuit Editor can be accessed from the Model Tree pannel by clicking on the "Circuit Editor" tab at the bottom of the main window. The following circuit components are available:

Circuit Editor example - 01
  • Coil (if defined in the model)
  • Resistor
  • Inductor
  • Capacitor
  • Voltage Source
  • Current Source
  • Voltmeter
  • Wire
  • Ground

The Circuit EElements can be added to the circuit workspace by dragging and dropping them from the component list on the left side of the Circuit Editor. Once added, you can connect the components by clicking on the terminals and dragging to create wires. You can orient the components using "Ctrl+R" keys. Double-clicking on a component opens its properties dialog where you can set parameters such as resistance, inductance, capacitance, voltage, and current values. You can also use "Circuit" section in the Model Properties pannel to define and manage circuit components.

Circuit Editor example - 02

Each circuit must have a ground component to establish a reference point for voltages in the circuit.

Solver Parameters

Solver parameters such as convergence criteria, maximum iterations, and solver type can be configured in the Model Tree pannel. There are two solver types available in Nabla: Conjugate Gradient (CG) and Simplicial LDLT. Conjugate Gradient is suitable for large sparse systems, while Simplicial LDLT is preferred for smaller dense systems. Static or Transient analysis can be selected based on the problem requirements.

Solver Parameters example - 01

Postprocessing

Nabla provides various postprocessing tools to visualize and analyze the results via "Field Analysis" tab in the Model Tree pannel. You can view field distributions, flux lines, and other relevant quantities directly in the graphics window. Animation is supported for transient simulations to observe how fields evolve over time.

Postprocessing example - 01

The "Simulation Results" section in the Model Tree pannel allows you more detailed analysis of the results:

  • Field extraction along specified paths or edges
  • Integral calculations such as Normal Flux, Joule Losses or Iron Losses
  • Extract circuit parameters and export data for further analysis
  • Extract torque for rotating machinery simulations

Postprocessing example - 02

You can also specify custom paths in the graphics window via line or arc contours for extracting field data.

Postprocessing example - 03

Shortcuts

Nabla provides several keyboard shortcuts to enhance productivity while working with the software:

  • Ctrl+Left Click - multiple edge or region selection
  • F2 - Rename selected item
  • Ctrl+R - Rotate selected component (in Circuit Editor)
  • Ctrl+I - Invert selected edges (in Geometry Editor)
  • Ctrl+S - Save current model
  • Ctrl+O - Open existing model
  • Ctrl+N - Create new model
  • Ctrl+Shift+S - Save As (the model will be saved in the current working directory)
  • Delete - Delete selected item(s)

File Formats

Nabla model comprises and supports several file formats that store different aspects of the simulation setup:

  • *.ujsn - unified JSON format for storing model data
  • *.mfs - model for solver: an input file for solver
  • *.poly - geometry data file: an input for
  • *.dxf - CAD geometry file (if imported): a standard CAD format supported by many CAD software
  • triangle mesh generator:
  • *_solution.bin - binary file containing simulation results
  • a bunch of files generated by triangle mesh generator:

API Reference

Coming soon...

Core Functions

Coming  soon...