flaport / fdtd

A 3D electromagnetic FDTD simulator written in Python with optional GPU support
https://fdtd.readthedocs.io
MIT License
455 stars 116 forks source link

extract Sparameters #9

Open joamatab opened 4 years ago

joamatab commented 4 years ago

how would you extract Sparameters from a GDS file?

flaport commented 4 years ago

That's probably one of the next features I'll implement. When I find the time 😉

0xDBFB7 commented 3 years ago

for reference, I think I have a (very) rough draft of this - source impedance measurement, anyhow. remind me to PR when things settle down

edit: whoops, looks like you've been hard at work on this, with SAX, disregard

flaport commented 3 years ago

Hey Daniel,

SAX for now does not tackle this, in stead it does circuit simulations for components for which you already have the S-parameters. A way to extract the S-parameters with this FDTD simulator is still not implemented.

So any contribution in this regard is more than welcome! 🙂

Thanks!

flaport commented 3 years ago

Hey @0xDBFB7 , just pinging you to make sure you read the previous message. I would love to have an easy way to get the S-parameters, so If you have something that works please feel free to open a PR 🙂

0xDBFB7 commented 3 years ago

Thanks for the reminder @flaport , very sorry if the delay messed up your schedule. Writing up some notes now - it's really an extremely simple algorithm, though not sure how best to integrate it with the SAX / 'fdtd' apis; what I have right now is extremely ugly

flaport commented 3 years ago

Hey @0xDBFB7 , no worries! no schedule was hurt by this 😉. As you can see, this has been an open issue for a while (mostly due to lack of time from myself), so I'm pretty excited someone wants to tackle it! So certainly don't feel pressured!

I'd say, let's not focus too much on the SAX api yet... SAX is still pretty much in a proof-of-concept phase and that API will certainly still change.

I would focus for now on just implementing it for the numpy backend of this library... maybe add it to a new submodule/file for now and open a draft PR, then we can discuss further there on how to best integrate it with the reset of the library and potentially clean it up a bit....

But like I said... take your time! I'm not in a hurry so neither should you be. I might just ping you once in a while 😉