FastFieldSolvers Forum
FastFieldSolvers Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
 All Forums
 FastFieldSolvers
 FastHenry2
 Infinite inductance on a straight(ish) line?
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Iljuri

Finland
4 Posts

Posted - Jan 25 2022 :  14:55:30  Show Profile  Reply with Quote
I ran into a strange issue when using a script to turn coil geometries into FastHenry input files for inductance calculation. I get errors about filaments overlapping such that their mutual inductance becomes infinite, and a warning about negative filament distance. I managed to find one such problem section from my input file. Here's a cut down version of the input file that includes the offending section:
** Segtest 1 (infinite inductance) **
.Units mm
.Default w=1.400000 h=1.400000 sigma=59600.000000 nhinc=5 nwinc=5
Nl7p65 x=-7.17 y=2.38 z=88.50
Nl7p66 x=-4.67 y=2.38 z=88.50
Nl7p67 x=-2.17 y=2.39 z=88.50
Nl7p68 x=0.33 y=2.39 z=88.50
Nl7p69 x=2.83 y=2.39 z=88.50
Nl7p70 x=5.32 y=2.40 z=88.50
Nl7p71 x=7.82 y=2.41 z=88.50
Nl7p72 x=10.32 y=2.47 z=88.50
Nl7p73 x=12.80 y=2.69 z=88.50
Nl7p74 x=15.26 y=3.02 z=88.50
Nl7p75 x=17.71 y=3.44 z=88.50
El7p65-66 Nl7p65 Nl7p66
El7p66-67 Nl7p66 Nl7p67
El7p67-68 Nl7p67 Nl7p68
El7p68-69 Nl7p68 Nl7p69
El7p69-70 Nl7p69 Nl7p70
El7p70-71 Nl7p70 Nl7p71
El7p71-72 Nl7p71 Nl7p72
El7p72-73 Nl7p72 Nl7p73
El7p73-74 Nl7p73 Nl7p74
El7p74-75 Nl7p74 Nl7p75
.External Nl7p65 Nl7p75
.Freq fmin=1e4 fmax=1e4 ndec=1
.End

Running this in FastHenry2 yields several error messages along the lines of
Severe warning: mutual inductance = infinity for two filaments:
  fil 1: from 0.00532252, 0.00177001, 0.08913 to 0.00782252, 0.00178001, 0.08913  width:0.00014 height: 0.00014
  fil 2: from 0.00283253, 0.00176001, 0.08913 to 0.00532253, 0.00177001, 0.08913  width:0.00014 height: 0.00014
Probably because there are overlapping but non-orthogonal segments in the input

Based on the error message, one would assume the problem is between segments El7p69-70 and El7p70-71. Indeed, the following two test cases that include points 65-70 and 70-75 do not cause any errors or warnings:
** Segtest 2 (no issues) **
.Units mm
.Default w=1.400000 h=1.400000 sigma=59600.000000 nhinc=5 nwinc=5
Nl7p70 x=5.32 y=2.40 z=88.50
Nl7p71 x=7.82 y=2.41 z=88.50
Nl7p72 x=10.32 y=2.47 z=88.50
Nl7p73 x=12.80 y=2.69 z=88.50
Nl7p74 x=15.26 y=3.02 z=88.50
Nl7p75 x=17.71 y=3.44 z=88.50
El7p70-71 Nl7p70 Nl7p71
El7p71-72 Nl7p71 Nl7p72
El7p72-73 Nl7p72 Nl7p73
El7p73-74 Nl7p73 Nl7p74
El7p74-75 Nl7p74 Nl7p75
.External Nl7p70 Nl7p75
.Freq fmin=1e4 fmax=1e4 ndec=1
.End
** Segtest 3 (no issues) **
.Units mm
.Default w=1.400000 h=1.400000 sigma=59600.000000 nhinc=5 nwinc=5
Nl7p65 x=-7.17 y=2.38 z=88.50
Nl7p66 x=-4.67 y=2.38 z=88.50
Nl7p67 x=-2.17 y=2.39 z=88.50
Nl7p68 x=0.33 y=2.39 z=88.50
Nl7p69 x=2.83 y=2.39 z=88.50
Nl7p70 x=5.32 y=2.40 z=88.50
El7p65-66 Nl7p65 Nl7p66
El7p66-67 Nl7p66 Nl7p67
El7p67-68 Nl7p67 Nl7p68
El7p68-69 Nl7p68 Nl7p69
El7p69-70 Nl7p69 Nl7p70
.External Nl7p65 Nl7p70
.Freq fmin=1e4 fmax=1e4 ndec=1
.End

What if we include both of those edges? A test input file that has the points from range 68-72 yields warnings about filaments overlapping, but no infinite inductance:
** Segtest 4 (overlap warnings) **
.Units mm
.Default w=1.400000 h=1.400000 sigma=59600.000000 nhinc=5 nwinc=5
Nl7p68 x=0.33 y=2.39 z=88.50
Nl7p69 x=2.83 y=2.39 z=88.50
Nl7p70 x=5.32 y=2.40 z=88.50
Nl7p71 x=7.82 y=2.41 z=88.50
Nl7p72 x=10.32 y=2.47 z=88.50
El7p68-69 Nl7p68 Nl7p69
El7p69-70 Nl7p69 Nl7p70
El7p70-71 Nl7p70 Nl7p71
El7p71-72 Nl7p71 Nl7p72
.External Nl7p68 Nl7p72
.Freq fmin=1e4 fmax=1e4 ndec=1
.End

Somehow, however, if we include only the two problem segments and nothing else, we get the infinite inductance errors again, as well as warnings about filament distance being negative.
** Segtest 5 (infinite inductance) **
.Units mm
.Default w=1.300000 h=1.300000 sigma=59600.000000 nhinc=5 nwinc=5
Nl7p69 x=2.83 y=2.39 z=88.50
Nl7p70 x=5.32 y=2.40 z=88.50
Nl7p71 x=7.82 y=2.41 z=88.50
El7p69-70 Nl7p69 Nl7p70
El7p70-71 Nl7p70 Nl7p71
.External Nl7p69 Nl7p71
.Freq fmin=1e4 fmax=1e4 ndec=1
.End

What confuses me about this is that the offending section appears to be almost straight. Any overlap should be minimal at best compared to segment length, certainly less than in some input files I've successfully ran with the program.

Any help with this issue would be appreciated.

Iljuri

Finland
4 Posts

Posted - Jan 25 2022 :  15:02:29  Show Profile  Reply with Quote
For some reason, it seems I can't edit my post, so I'll mention this here: in Segtest 5, it seems I had changed segment heights and widths from 1.4 mm to 1.3 mm for debugging purposes and neglected to change it back. The same errors arise even if Segtest 5 is ran with w=h=1.4, the same parameters as the other input files.
Go to Top of Page

Enrico

479 Posts

Posted - Jan 26 2022 :  12:44:31  Show Profile  Reply with Quote
Hi Iljuri,

you hit a corner case, which is caused by coplanar, almost parallel filaments. The filaments in question are the ones into which your segment is broken up automatically by the multipole algorithm (btw you can try deactivating option -a as your segments are anyway short enough; but this will not solve the issue per se).

One possible workaround is having a slightly less smooth approximation of the coil turns; I believe this is not impacting significantly the accuracy of the result and can sidestep the quasi-parallel issue.

I will in the meanwhile see what can be done in the code to consider this special case, too.

Best Regards,
Enrico


Go to Top of Page

Iljuri

Finland
4 Posts

Posted - Jan 26 2022 :  16:41:57  Show Profile  Reply with Quote
Hello,

thanks for the explanation. I found that by removing segment discretization into smaller filaments (by setting nhinc=nwinc=1) caused the errors to disappear. Of course, doing so means that skin effect is not well-simulated, but I am in luck; the coils I'm computing inductance for are intended to be constructed of litz wire, which consists of small individually isolated strands. This means that treating each segment as one block likely actually makes the simulation reflect the actual coil better than discretizing it into filaments would, making this a useful change even barring any corner case error scenarios.
Go to Top of Page

Enrico

479 Posts

Posted - Jan 29 2022 :  12:17:54  Show Profile  Reply with Quote
Hi Iljuri,

I think I fixed the issue for good. I uploaded the new FastHenry2 for you to test on

ht*p://w*w.fastfieldsolvers.com/download/FastHenry2_3.6.3.exe

(just replace ht*p and w*w with the proper letters - this is mangled to avoid scams)

Just download and replace FastHenry2 in the installation directory renaming it to "FastHenry2.exe"

Kindly let me know if this works for you with no issues.

Thank you
Enrico

Go to Top of Page

Iljuri

Finland
4 Posts

Posted - Feb 02 2022 :  14:23:56  Show Profile  Reply with Quote
Hi,

sorry for the late reply. The update has fixed the issue; none of the test files in the original post cause errors anymore, and the full input files they are originally extracted from seem to all run without issues as well.

Thank you for the assistance!
Go to Top of Page

Enrico

479 Posts

Posted - Feb 02 2022 :  15:20:10  Show Profile  Reply with Quote
Ok, I'll update the distribution package as well later on with this latest version.

Best,
Enrico
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
FastFieldSolvers Forum © 2020 FastFieldSolvers S.R.L. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.06