FastHenry is the premium inductance solver originally developed at M.I.T. on Unix platform. A de-facto golden reference standard, FastHenry extracts the inductances and resistances of any arbitrary 3D conductive geometry by solving the Maxwell equations in quasi-static regime. For more information, visit our website.
=========================================
FastHenry
=========================================
FastHenry is the premium inductance solver originally developed at M.I.T. on Unix platform. A de-facto golden reference standard, FastHenry extracts the inductances and resistances of any arbitrary 3D conductive geometry by solving the Maxwell equations in quasi-static regime.
This repository contains the source code, in three separated branches.
The 'master' branch contains the original FastHenry distribution from M.I.T. plus bug fixes and porting to 64 bits and 32 bits Linux systems by FastFieldSolvers S.R.L. (http://www.fastfieldsolvers.com).
Remark: in this branch the original 'README' file has been renamed 'README.mit'. Refer to the README.mit file for further details on this branch.
The 'WinMSVS' branch contains the FastHenry2 code. FastHenry2 is the FastFieldSolvers S.R.L. Windows porting of FastHenry, including a GUI. It compiles under the free for open source projects MS Visual Studio 2013 Community Edition (for exact details about MS VS2013 licensing please refer to its terms and conditions from MicroSoft)
The 'WRCad' branch contains the FastHenry enhancements made by Whiteley Research Inc. (http://www.wrcad.com/) for supporting superconductive elements. Code compiles for Linux 32/64 bits as well as for Windows in shell only mode, using MinGW.
For pre-compiled binaries, details, branch descriptions, and instructions for compiling please visit http://www.fastfieldsolvers.com/download.htm.
Access to the download pages is free, and you may access anonymously if you want.
Running fasthenry together.inp -d grids -x trace1 in the ./example folder works out-of-the-box.
Unfortunately the generated Mat-files (Grid1_0.mat, Grid1_1.mat) can not be read by my Octave (3.4) respective Scipy.io (Python 3.7). Matlab is not in my hands.
Is there any information about the root cause in the written Mat-file?
When I try to compile the master branch the following error is thrown:
make[2]: Leaving directory '/home/rsmarinho/fasthenry/FastHenry2/src/fasthenry/sparse'
cc -o fasthenry -O -DFOUR -m64 induct.o gmres.o savemat_mod.o readGeom.o joelself.o writefastcap.o SetupMulti.o calcp.o SetupComputePsi.o mulSetup.o BreakupSeg.o Precond.o addgroundplane.o findpaths.o fillM.o cx_ludecomp.o parse_command_line.o default_opts.o Prec_cost.o hole.o dist_betw_fils.o mutual.o newPrecond.o deg_mutual.o barnoldi.o regurgitate.o mulGlobal.o mulDo.o mulMulti.o mulLocal.o mulMats.o direct.o uglieralloc.o capsolve.o find_nonuni_path.o read_tree.o contact.o sparse/sparse.a -lm
/usr/bin/ld: gmres.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: readGeom.o:(.bss+0x20): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: joelself.o:(.bss+0x60): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: writefastcap.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: SetupMulti.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: calcp.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: SetupComputePsi.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: mulSetup.o:(.bss+0x2000): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: BreakupSeg.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: Precond.o:(.bss+0x0): multiple definition of fp'; induct.o:(.bss+0x1e8): first defined here
/usr/bin/ld: Precond.o:(.bss+0x20): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: addgroundplane.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: findpaths.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: fillM.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: cx_ludecomp.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: parse_command_line.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: default_opts.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: Prec_cost.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: hole.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: dist_betw_fils.o:(.bss+0x20): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: mutual.o:(.bss+0x20): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: newPrecond.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: deg_mutual.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: barnoldi.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: regurgitate.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: mulGlobal.o:(.bss+0x400): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: mulDo.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: mulMulti.o:(.bss+0x60): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: mulLocal.o:(.bss+0x20): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: mulMats.o:(.bss+0x60): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: direct.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: capsolve.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: find_nonuni_path.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here /usr/bin/ld: read_tree.o:(.bss+0x0): multiple definition of timestuff'; induct.o:(.bss+0x200): first defined here
/usr/bin/ld: contact.o:(.bss+0x0): multiple definition of `timestuff'; induct.o:(.bss+0x200): first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:26: fasthenry] Error 1
make[1]: Leaving directory '/home/rsmarinho/fasthenry/FastHenry2/src/fasthenry'
make: *** [Makefile:17: fasthenry] Error 2
I'm running Fedora 33 with gcc:
$ gcc --version
gcc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)
Maybe a definition problem I do not know how to solve.