This repository has been archived by the owner on Nov 9, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
Problems with hyperlynx.ulp polygon export and Octave 5.2.0 #14
Comments
I think it's time to retire the hyp2mat tool.
Concerning your problem: if using FDTD, geometrical features should
coincide, or be widely spaced.
You can add a new element at zero calculation cost if coordinates
coincide with existing elements.
You can add a new element at moderate calculation cost if coordinates
are more or less evenly distributed.
If coordinates differ only slightly you get problems.
WHat I would do in your case is model the pcb using csxcad. There you
can put the coordinates exactly where you want them, and avoid these
small rounding errors which cause calculations to explode.
regards,
koen
…On Thu, 30 Apr 2020 13:51:58 -0700 oataggart ***@***.***> wrote:
I'm trying to use EAGLE 9.5.0, hyperlynx-NEW.ulp, Octave 5.2.0, and
OpenEMS to layout and simulate PCB antennas. But I'm having trouble
even running the hyp2mat tutorial. No version of hyperlynx.ulp that
I can find will properly export the tutorial layout. Here's a list
of things I've tried and the results.
**Case 0: Directly use msl.HYP file provided in the hyp2mat tutorial**
This works fine. A nice clean mesh is created, the FDTD timestep is
2.51662e-013 and the OpenEMS simulation completes in about 1
minute. ![case0_mesh](https://user-images.githubusercontent.com/64612120/80755491-e6feb580-8afe-11ea-89e0-e7ae927a226e.png)
**Case 1: Create a fresh msl.HYP file from msl.brd using
hyperlynx-NEW.ulp or Export -> Hyperlynx** The 0-width polygons (i.e.
polygon objects with an edge width of 0) in msl.brd cause a failure
in hyperlynx-NEW.ulp. The ULP takes ~5 minutes to run and the
produced HYP file is enormous at 463 MB. OpenEMS fails to import
this huge HYP file with the following message:
> command: "c:/openEMS/hyp2mat/matlab\..\hyp2mat.exe" --verbose
> --output-format csxcad --output pcb.m
"msl.HYP"
error: error executing "c:/openEMS/hyp2mat/matlab\..\hyp2mat.exe"
--verbose --output-format csxcad -- output pcb.m "msl.HYP"
error: called from
ImportHyperLynx at line 190 column 5
tutorial_hyp2mat at line 34 column 5
**Case 2: Change the polygon edge width to 0.1 mm and export with
hyperlynx-NEW.ulp or Export -> Hyperlynx** From openEMS.de wiki:
> polygon edges are always drawn with width 0 (zero).
If I change the polygon edge with to 0.1 mm or any other value,
hyperlynx-NEW.ulp runs quickly and produces a normal-size HYP file
(20 kB). But the non-0 width polygons cause DetectEdges.m to create
extremely fine mesh cells at the polygon edge. The tiny cells lead to
a small FDTD timestep (1.33064e-014 s) and therefore the simulation
never
finishes. ![case2_mesh](https://user-images.githubusercontent.com/64612120/80757039-89b83380-8b01-11ea-8d7c-6a8c8646cf2a.png)
**Case 3: Use 0-width polygons with an old hyperlynx.ulp version from
EAGLE 5.11** I tried a very old version of hyperlynx.ulp from EAGLE
5.11. The ULP is dated 17.08.2005. This version of the ULP quickly
exports the layout with 0-width polygons to a small HYP file (5 kB).
But now the Hyperlynx import fails with the following message:
> command: "c:/openEMS/hyp2mat/matlab\..\hyp2mat.exe" --verbose
> --output-format csxcad --output pcb.m
"msl.HYP"
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
warning: padstack without metal:
board size:
x = 0.00 : 20.00 mm
y = 0.00 : 20.00 mm
z = 0.00 : 1.50 mm
layers:
signal 23.84 um eps_r 1.00 'Top'
dielectric 0.75 mm eps_r 4.80 'DL01'
signal 23.84 um eps_r 4.80 'Route2'
dielectric 0.75 mm eps_r 4.80 'DL02'
signal 23.84 um eps_r 1.00 'Bottom'
Valid ports:
error: port not found: C1.1
error: called from
GetHyperLynxPort at line 73 column 5
tutorial_hyp2mat at line 37 column 40
Bottom line is, nothing I've tried works. Any suggestions?
|
Thanks for the quick response Koen. I'm sorry to hear this tool is nearing retirement age, but thanks for maintaining it for so long. I'm still just wondering if there was a specific older version of hyperlynx.ulp that was used to create the tutorial HYP file... Coming from an EE/PCB design background, I always find it easier to "draw" layouts as opposed to "coding" them with CSXCAD. Is there any graphical tool that I can use to create layouts for OpenEMS? hyp2mat itself is not necessarily the problem, it's more the way it interacts with hyperlynx.ulp. It might be challenging to code a complex structure like this in CSXCAD: |
On Fri, 01 May 2020 07:58:11 -0700 oataggart ***@***.***> wrote:
Thanks for the quick response Koen. I'm sorry to hear this tool is
nearing retirement age, but thanks for maintaining it for so long.
I'm still just wondering if there was a specific older version of
hyperlynx.ulp that was used to create the tutorial HYP file...
Coming from an EE/PCB design background, I always find it easier to
"draw" layouts as opposed to "coding" them with CSXCAD. Is there any
graphical tool that I can use to create layouts for OpenEMS? hyp2mat
itself is not necessarily the problem, it's more the way it interacts
with hyperlynx.ulp. It might be challenging to code a complex
structure like this in CSXCAD:
![an1088](https://user-images.githubusercontent.com/64612120/80814788-7b6a2600-8b9a-11ea-9b1c-0838a9c95f8d.jpg)
OK. In that case, I would suggest hacking a small tool that converts
svg to csxcad. Perhaps in python, or whatever language you like that
already has a svg import. Limit yourself to drawing those things that
map 1:1 to csxcad objects. Limit yourself to double-sided pcbs; make up
a simple rule what goes on top and what goes on bottom. Perhaps
everything drawn in color a on top, in color b at the bottom?
If you begin small - say, only polygons - a tool like that
ought to be easy to get running.
Perhaps model vias as solid cylinders. If you try to model them as
thin-walled hollow cylinders compute time will increase.
Don't model the copper as a 10 micron thick 3d structure. This would
cause grid lines very closely together on the z axis. Instead model the
copper as a conductive sheet.
Use only integer math. If you use floating point you will get rounding
errors, and two objects that touch each other then suddenly become two
objects with a small distance between them, and you get closely spaced
grid lines.
Perhaps output a python script instead of matlab?
regards,
koen
|
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
I'm trying to use EAGLE 9.5.0, hyperlynx-NEW.ulp, Octave 5.2.0, and OpenEMS to layout and simulate PCB antennas. But I'm having trouble even running the hyp2mat tutorial. No version of hyperlynx.ulp that I can find will properly export the tutorial layout. Here's a list of things I've tried and the results.
Case 0: Directly use msl.HYP file provided in the hyp2mat tutorial
This works fine. A nice clean mesh is created, the FDTD timestep is 2.51662e-013 and the OpenEMS simulation completes in about 1 minute.
Case 1: Create a fresh msl.HYP file from msl.brd using hyperlynx-NEW.ulp or Export -> Hyperlynx
The 0-width polygons (i.e. polygon objects with an edge width of 0) in msl.brd cause a failure in hyperlynx-NEW.ulp. The ULP takes ~5 minutes to run and the produced HYP file is enormous at 463 MB. OpenEMS fails to import this huge HYP file with the following message:
Case 2: Change the polygon edge width to 0.1 mm and export with hyperlynx-NEW.ulp or Export -> Hyperlynx
From openEMS.de wiki:
If I change the polygon edge with to 0.1 mm or any other value, hyperlynx-NEW.ulp runs quickly and produces a normal-size HYP file (20 kB). But the non-0 width polygons cause DetectEdges.m to create extremely fine mesh cells at the polygon edge. The tiny cells lead to a small FDTD timestep (1.33064e-014 s) and therefore the simulation never finishes.
Case 3: Use 0-width polygons with an old hyperlynx.ulp version from EAGLE 5.11
I tried a very old version of hyperlynx.ulp from EAGLE 5.11. The ULP is dated 17.08.2005. This version of the ULP quickly exports the layout with 0-width polygons to a small HYP file (5 kB). But now the Hyperlynx import fails with the following message:
Bottom line is, nothing I've tried works. Any suggestions?
The text was updated successfully, but these errors were encountered: