-
Notifications
You must be signed in to change notification settings - Fork 52
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
add antenna gain and efficiency figures of merit #2190
Conversation
c6f06f3
to
eb0377d
Compare
Let's start of the review with RF. Not too complicated of changes, but maybe there is room for improvement on how we package the data. See this notebook PR for how the changes can be used. |
eb0377d
to
08e522b
Compare
1st round of review. All look nice! |
08e522b
to
f620fc0
Compare
e5ec458
to
d4dec80
Compare
@weiliangjin2021 @dbochkov-flexcompute Assuming all tests pass I am done the main changes I wanted to make to enable these features. Anything else I do will be typos and docstring improvements if I see any. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very remarkable work! A few minor comments below
d4dec80
to
9f0584a
Compare
One architecture question: |
I think that is not a bad idea, but it seems like monitor data is usually associated with a monitor that directly creates it, which is the main reason I did not put it there. In some sense, @daquinteroflex @yaugenst-flex Any suggestions from outside the RF world? |
9f0584a
to
ba771b6
Compare
So there's a few reasons I'll text privately, but basically everything RF specific like this, imo should go under
Basically imagine that directory is a small world of its own that represents the current "tidy3d/components" and should be extended in a kind of self contained domain if possible |
c61a2d0
to
6ac06dc
Compare
@daquinteroflex @weiliangjin2021 Added a new commit improving docs and moving/renaming The one unique thing about |
Nice, the reorganization makes sense! So for now, unless there's going to be a set of mixed monitor + other things data types - this still fits in logically within In terms of naming, it's still a "data" container as such. If we believe this concept of "metrics data" might be extended, this could be a good name as you have it? It also kind of makes sense because it's like a "DeviceMetricsData" type. Can always refactor file location in the future depending how this changes too to |
@daquinteroflex Yea I like metrics since it is shorter than what I had before and could be used in the future for other specific types of devices. |
6ac06dc
to
36122f1
Compare
36122f1
to
a97f919
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A little bit of nitpicking, technically functions
scale_fields_by_freq_array
get_phi_slice
from_spherical_field_dataset
calc_radiation_efficiency
from_directivity_data
compute_power_wave_amplitudes_at_each_port
compute_port_VI
compute_power_wave_amplitudes
compute_power_delivered_by_port
are exposed to the user, so ideally they should have Parameters
and Returns
sections in docstrings. Or you could just add underscore to those ones that don't really need to be accessible by the user. Otherwise everything looks great to me
a97f919
to
88cf00a
Compare
add support for calculating antenna gain and related efficiencies revamped calcs in DirectivityMonitor allowing for different polarization bases added functionality for combining results from multiple port excitations reorganize smatrix plugin by adding a data module
88cf00a
to
ca98bd2
Compare
added more fields to
DirectivityData
to allow for retrieving the partial radiation intensities, directivities, and helpers to compute gain given a supplied power. Radiated power is based on flux but now includes the direction of the projection monitor, when it is 2D.Antenna parameters can be extracted by using the
TerminalComponentModeler
, where the concept of a port is needed to calculate the incident and reflected powers.For more advanced antennas, we will need the ability to calculate results with a linear combination of ports excited.
Checklist:
Relevant PRs:
Backend Test PRfor changed tests.