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
🗻 autograd tidy3d (tidygrad?) #1697
base: pre/2.7
Are you sure you want to change the base?
Conversation
7f7bcc0
to
3de6cb0
Compare
60c2f29
to
b48beda
Compare
b928bb5
to
d2c4ddb
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.
note: default behavior of copy changed so now you CAN set deep=False
(although True
is default).
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.
I will need to be able to pass the parent tasks to run()
for the server-side implementation.
basic framework for autogradding tidy3d.
autograd.ArrayBox
type annotation in traced fields. For now justMedium.permittivity
.json_encoder
for this type, to write it to json as an untracedfloat
.autograd.extend.primitive
version ofweb.run()
that tells autograd how to connect the traced-fields to the xarray values inSimulationData.data
through an adjoint simulation. Only works forAmpsDataArray
. Only uses emulated run.Todo Done
Medium
CustomMedium
PolySlab
Box
DiffractionMonitor
ModeMonitor
run_batch
supportTodo Before 2.7.0
tidy3d/plugins/autograd
autograd
from?yield
instead of returndict
inrun_async
andinvdes
autograd.numpy
where we really need it.Todo for 2.8.0
.flux
get_intensity()
get_poynting()
Todo eventually
DataArray
improvementsArrayBox
dtypes.DataArray
, right now need to grabvalues
for it to register.