Skip to content

samerps/Blender-FastHenry

Repository files navigation

Blender FastHenry

Samer Aldhaher @samerps 2024

Blender FastHenry is a Blender 4.2 extension for creating FastHenry simulations. You can model geometries (curves) and planes, and call FastHenry executable to solve for resistance, inductance and mutual inductance. The results are displayed visually in Blender.

This extension uses geometry nodes to set some parameters, such as segment width and thickness. It also uses geometry nodes to visualize ports and connecting nodes between separate curve objects.

preview

Contents

  1. Installation instructions
  2. Quick start guide
  3. Extension capabilities
  4. Limitations
  5. To do
  6. Applications and use-cases
  7. Future

1. Installation Instructions - Windows

  • Compatible only with Blender 4.2 and above

  • Download the zipfile of this Blender-FastHenry repository

  • Complete the compile/download steps for FastHenry-Sam to obtain fasthenry.exe. Note the location.

  • In Blender go to the Edit> Preferences> Get Extensions menu, use the "Install from Disk" option and select the zipfile to install the extension.

  • To enable the extension, go to Edit> Preferences> Add-Ons and find the Blender FastHenry extension. Set the FastHenry Executable path for the compiled fasthenry.exe

  • Blender FastHenry should now be available in the N panel

    • N-Panel may be collapsed by default upon start. Click the arrow to the right of the XYZ Orientation Compass to expand and if correctly installed you will see Blender FH as shown below.

MacOS and Linux versions coming soon

preferences N panel

2. Quick Start Guide

Simulation set-up

  • watch YouTube quick start video (coming soon)
    • You can verify correct installion by opening the Demos/TO-220 package.blend and comparing actions with this sample video
  • use included predefined Geometry Node Groups for curve objects and planes
  • move all curves required to be solved in a separate Curves collection
  • move all planes required to be solved in a separate Planes collection
  • set simulation parameters in N panel and set the curves and panels collections
  • run simulation
  • any objects that do not have the right properties (ex. object type, geometry node group) will be automatically moved to a new collection named rejected

BFH_curve modifier BFH_plane modifier

Visualizing results

  • results are overlaid in the view port. Each row represents the impedance at a certain frequency of a single object along with a mutually coupled object result overlay

  • use up/down keyboard arrow keys to scroll through all simulation objects, the impedance results will be updated based on the object selected. A red bounding box is drawn around the selected object

  • use the left/right keyboard arrow keys to scroll through all the mutually coupled objects for the current set. A yellow bounding box is drawn around the set mutually coupled object.

  • blue bounding boxes are drawn around each plane object

bounding boxes

3. Extension Capabilities

Ports

  • ports are automatically assigned between the first curve point and the last curve point of each curve object
  • port arrow and text visibility can be controlled in the geometry node modifier panel ports

Connected and mutually-coupled objects

  • Separate curves within the same curve object will be considered as a single object/coil, the end point of each individual curve will be automatically connected to the start point of the next curve. This connection will be automatically visually displayed as a single solid line. connected curves

  • Multiple curve objects will considered as mutually coupled. coupled curves

Planes

  • plane objects can only be parallel to the xy, xz, or yz planes, no arbitrary rotation allowed.

Electromag Nodes integration

4. Limitations

FastHenry limitations

As this extension uses FastHenry, it is bound by the same limitations of FastHenry itself, specifically:

  • cannot model material permeability, only conductors.
  • FastHenry is not field solver, it will not calculate the magnetic field.
  • rectangular cross sections only, though width and thickness can be changed per segment.
  • plane objects can only be in xy, xz and yz planes, no arbitrary rotations allowed.

Extension limitations

  • all segments within a curve will have same the width and thickness. This is in the To Do list to change
  • plane holes cannot be modelled. This is in the To Do list to change.
  • connect curve segments to planes. This is in the To Do list to change.
  • currently only one segment can connect to another. i.e. each node can only connect to two segments. This is in the To Do list to change.

5. To Do

  • ability to change the length and width for each segment within a curve.
  • specify holes in planes.
  • connect curves to planes.
  • connect multiple segments to nodes.

6. Applications and Use Cases

  • Semiconductor wire bonds and copper clip impedance extraction
  • PCB layout impedance extraction
  • RF Air core impedance calculation
  • Core-less transformers
  • Cables and wiring impedance calculation
  • Bus bar impedance calculation
  • Wireless power transfer coils modelling and coupling coefficient calculation
  • Induction heating coil design

7. Future

The source code of FastHenry is based on outdated C code and obsolete libraries. Fasthenry uses the Sparse 1.3 ( Kenneth S. Kundert) library which dates back to 1988.

My plan is to create a new solver based on the theoretical concepts of FastHenry using modern code and libraries, and to address some of its limitations.

About

Blender FastHenry - FastHenry simulations in Blender

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages