Replies: 1 comment
-
|
The fundamental problem here is that your structure is producing a very fine mesh in places. The x and y coordinates of the 45deg microstrip after the transformation don't line up perfectly with the corners of the microstrip trace corners. The mesher therefore sees miniscule features there that it tries to account for. It might be possible to adjust the transform to get the results to line up nicely with the microstrips, but I haven't tried. A better approach would be to construct a polygon for the trace. There's a public-facing function for this, but you currently have to do a little manual work to get it to integrate with the PCB structure. It might be worth me adding a class that handles this. But, the current form really isn't so bad. In any event, take a look at the following code. I've butchered your example a bit, but it should be easy for you to fix that. The important point is how I created the polygon trace. Let me know if that's unclear. A few other thoughts: the spacing between the x-axis microstrips is a bit small, which will increase your simulation time. There's no problem with that and I expect the penalty won't be that bad, but it's worth being aware of. If you intend to fabricate this exact structure and want to know the behavior then of course you want to simulate this as is. But, if all you really care about is the effect of the 45 degree bend in the trace it might be worth widening that gap a little to improve the simulation time. It's also worth noting that while the openems blow-up in this case was probably caused by the really fine mesh, there are cases where openems will blow up from reasonable models. I was simulating a simple coax line the other day over a wide bandwidth to visualize non-TEM wave propagation and openems also saw infinite energy problems. The solution was to simulate narrower bandwidths in parts. The same is true for the horn antenna in the examples. This isn't something caused by pyems and I don't have a firm grasp on why it happens yet. Anyway, just something to be aware of. Let me know if you run into any issues. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I'm trying to simulate a 45-degree turn in a microstrip. In the code, I basically created a horizontal microstrip and then rotated it by 45 degrees with a
CSTransform. However, my code and simulation setup cause openEMS to blow up with infinite energy without producing any meaningful output.Without the rotation, the simulation runs without blowing up. I suspect the problem is caused by
propagation_axis=Axis("x")in theMicrostripclass. It can only be either horizontal or vertical. I suspect that rotating it by 45 degrees breaks some assumptions made in pyems, thus the code is incorrect, but I'm not knowledgeable enough to be sure.What is the correct way to perform this simulation?
3D View
Code
This file contains some board definitions and two utility functions for creating a rotated microstrip.
This is the main simulation code.
Beta Was this translation helpful? Give feedback.
All reactions