Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make waveports able to discriminate different TEM modes. #328

Open
CosimoMV opened this issue Jan 16, 2025 · 5 comments
Open

Make waveports able to discriminate different TEM modes. #328

CosimoMV opened this issue Jan 16, 2025 · 5 comments
Labels
enhancement New feature or request

Comments

@CosimoMV
Copy link

All TEM modes in a transmission line have the same propagation constant and so Waveports cannot distinguish between them.
For example, in a transmission line like a coupled stripline exist two different modes: odd (the currents in the strips are equal in amplitude but in opposite directions) and even modes (the currents in the strips are equal in amplitude and in the same direction). At the moment is impossible to use waveports in a similar case, because is impossible to excite odd- and even modes, but only some combination of them and probably some surface mode.

Different modes are related with different symmetries (see last posts of #251, but in that case the coupled microstrip has different propagation constants for odd- and even modes, because doesn't support true TEM modes.)

@CosimoMV CosimoMV added the enhancement New feature or request label Jan 16, 2025
@hughcars
Copy link
Collaborator

hughcars commented Jan 22, 2025

Hi @CosimoMV,

Thank you for raising the issue, wave ports can be pretty tricky to configure right now, so we're always looking for improvements. If there are multiple modes with identical propagation constant, then the ordering of the modes in the waveport solve will indeed likely not be stable meaning choosing a fixed index in the configuration will give variable results. My understanding is this is because the solve is highly unlikely to uncover exactly the same ordering each time, as the ordering will be defined by numerical precision (x - ~eps vs x + ~eps).

I haven't been able to think of a definitively more satisfactory solution than the suggested symmetry tricks so far, but if you have some suggestions we'd be open to working with you on them. One possible idea might be in a tie break to sort by the power, as if I understand correctly, an even mode would have non-zero integrated Poynting vector, but the odd mode would might have a different value. This "lexicographic" sorting would however need a notion of equality between modes, which opens the door on tolerances for these choices, (how close do two propagation constants need to be before we deem them identical and re-order their indexes based on the power?)

Hugh

@CosimoMV
Copy link
Author

CosimoMV commented Feb 5, 2025

Honestly, I see no other way but to use the symmetry of modes to be able to distinguish them (also seeing how other softwates do it). As for the Poynting vector, I would say that it all depends on the normalisation used and not on an intrinsic quality of the modes, and I don't see how it can be used to distinguish them.
The simplest way I can think of is to use a subset of the Waveport surface with the appropriate PEC or PEM boundary condition (corresponding to the symmetry of the mode you want to excite). Once the eigenproblem in the reduced area has been solved, the mode found must be extended over the entire Waveport surface using the user-defined symmetry relations.

@hughcars
Copy link
Collaborator

hughcars commented Feb 5, 2025

If I understand correctly, I would think the best approach there is for a user to separate their waveport based on their expected symmetry (for instance the subset of the surface you are describing), and solving on that independently for each subset. Then using the mode index for each of these "sub waveports" the appropriate combination might be achieved. This would amount to effectively picking the sign on each of the "half modes" manually. A user specification of a symmetry relation is a pretty complicated thing to achieve, (you're effectively adding action at a distance to the finite element solution, which in general is a bad idea, as you'll have to build a 1:1 map of dofs according to the symmetry, and even then, there might not be such a map if the mesh wasn't perfectly symmetric). What about the approach of splitting of the waveport into the two pieces prevents you from discriminating between the odd and even modes? Or is the issue that direction based normalization is making the modes on each waveport always point in?

@CosimoMV
Copy link
Author

CosimoMV commented Feb 7, 2025

Your idea seems much better than mine! At this point it would be enough to use a normal waveport and add user-defined boundary conditions, and then solve the 2D eigen-problem in the various zones. Would that leave only the problem of normalising the complete eigen-mode (considered on the total surface)?

@hughcars
Copy link
Collaborator

hughcars commented Feb 7, 2025

The normalization of the modes will be done independently on each piece, but given they'll be symmetric or anti-symmetric, they'll have the same magnitude anyway, so the overall normalization would just be off by a factor of 2. To do this you should split the waveport into two pieces, one for each side of the cpw (similar to what's done in the cpw example). Have you tried this? This doesn't require any changes in Palace and you'd be able to do this right now. The option to change the "tie-break" on the waveport to change sign would likely require some changes here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants