Implementation Tracker #27

Open
opened 2024-05-04 18:00:10 +02:00 by so-rose · 0 comments

Nodes

Analysis

  • Extract (See #54)

  • Viz (See #55)

  • Math / Operate Math (See #54)

  • Math / Map Math (See #54)

  • Math / Filter Math (See #54)

  • Math / Reduce Math (See #54)

  • Math / Transform Math (See #54)

Inputs

  • Wave Constant

  • Scene (see #17)

  • Constants / Expr Constant (see #37)

  • Constants / Bool Constant

  • Constants / Scientific Constant

    • Nicer (boxed?) node information, maybe centered headers, in a box, etc. .
  • Constants / Unit System Constant

    • Reconsider the need.
    • Re-implement basically from scratch.
    • Implement builtin presets, including "Tidy3D" and "Blender", shown in the label row.
  • Constants / Blender Constant

  • Web Importers / RIIO Web Importer (see #56)

  • Web Importers / Tidy3D Web Runner (see #66)

  • File Import / Data File Import (see #56)

  • File Import / Tidy3D File Import

Outputs

  • Viewer

    • Consider a "debug" mode to help the user not need to look at everything that can be played with.
    • Auto-enable plot when creating.
    • Test/support multiple viewers at the same time.
    • Pop-up w/multiline string as alternative to console print.
    • Handle per-tree viewers, so that switching trees doesn't "bleed" state from the old tree.
  • Web Export / Tidy3D Web Exporter (see #66)

  • File Export / JSON File Export

    • Reevaluate its purpose.
  • File Export / Tidy3D File Export

    • Implement HDF-based export of Tidy3D-exported object (which includes ex. mesh data and such)
    • Also JSON (but indicate somehow that ex. mesh data doesn't come along for the ride).
  • File Export / Data File Export

    • Implement datatype dropdown to guide format on disk.
    • Implement unit system input to guide conversion to numpy data type.
    • Standardize 1D and 2D array loading/saving on numpy's savetxt with gzip enabled.

Sources

  • Temporal Shape (see #67)

  • Point Dipole Source

  • Plane Wave Source (see #63)

  • Uniform Current Source (see #68)

  • TFSF Source (see #68)

  • Gaussian Beam Source (see #68)

  • Astigmatic Gaussian Beam Source (see #68)

  • EH Array Source (see #68)

  • EH Equiv Array Source (see #68)

Mediums

  • Library Medium

    • Implement wavelength-based IOR plot.
  • DataFit Medium (see #56)

  • PEC Medium

  • Isotropic Medium

  • Anisotropic Medium

  • Sellmeier Medium

  • Drude Medium

  • Drude-Lorentz Medium

  • Debye Medium

  • Pole-Residue Medium

  • Non-Linearity / chi_3 Susceptibility Non-Linearity

  • Non-Linearity / Two-Photon Absorption Non-Linearity

  • Non-Linearity / Kerr Non-Linearity

Structures

  • BLObject Structure

  • GeoNodes Structure

    • Implement a panel system, to make GN trees with a ton of inputs (most of which are not usually needed) actually useful.
    • Propertly map Menu input sockets to the GN group.
  • Primitive Structures / Line Structure

  • Primitive Structures / Plane Structure

  • Primitive Structures / Box Structure

  • Primitive Structures / Sphere Structure

  • Primitive Structures / Cylinder Structure

  • Primitive Structures / PolySlab Structure

Bounds

  • Boundary Conds
  • Boundary Cond / PML Bound Cond
    • 1D plot visualizing the effect of parameters on a 1D wave function
  • Boundary Cond / Bloch Bound Cond
    • Implement "simple" mode aka "periodic" mode in Tidy3D
    • 1D plot visualizing the effect of parameters on a 1D wave function
  • Boundary Cond / Absorbing Bound Cond
    • 1D plot visualizing the effect of parameters on a 1D wave function

Monitors

  • EH Field Monitor

    • Rethink how to specify / explain the spatial and temporal subdivisions.
    • Can't see a 2D plane from cross section; should be a very small cube instead of a plane.
  • Power Flux Monitor

    • Rethink how to specify / explain the spatial subdivisions.
    • Can't see a 2D plane from cross section; should be a very small cube instead of a plane.
  • Permittivity Monitor

  • Diffraction Monitor

  • Projected E/H Field Monitor / Cartesian Projected E/H Field Monitor

  • Projected E/H Field Monitor / Angle Projected E/H Field Monitor

  • Projected E/H Field Monitor / K-Space Projected E/H Field Monitor

Simulations

  • Combine

    • Rethink how is most intuitive and easy to
    • When something connects to the virtual socket, add another socket non-destructively (depends on #30).
    • Use generic Expr socket mode to combine numerical types into either Expr or Data socket.
    • Explicit about lower structures taking precedence.
  • Sim Domain

  • FDTDSim (see #58)

  • Sim Grid

  • Sim Grid Axes / Auto Sim Grid Axis

  • Sim Grid Axes / Manual Sim Grid Axis

  • Sim Grid Axes / Uniform Sim Grid Axis

  • Sim Grid Axes / Data Sim Grid Axis

GeoNodes

  • Tests / Monkey (suzanne deserves to be simulated, she may need manifolding up though :))

  • Tests / Wood Pile

  • Structures / Primitives / Line

  • Structures / Primitives / Plane

  • Structures / Primitives / Box

  • Structures / Primitives / Sphere

  • Structures / Primitives / Cylinder

  • Structures / Primitives / Ring

  • Structures / Arrays / Cyl

  • Structures / Arrays / Box

  • Structures / Arrays / Sphere

  • Structures / Arrays / Cylinder

  • Structures / Arrays / Ring

  • Structures / Hex Arrays / Cyl

  • Structures / Hex Arrays / Box

  • Structures / Hex Arrays / Sphere

  • Structures / Hex Arrays / Cylinder

  • Structures / Hex Arrays / Ring

  • Structures / Cavity Arrays / L-Cavity Cylinder

  • Structures / Cavity Arrays / H-Cavity Cylinder

  • Structures / Lattice Arrays / FCC Sphere

  • Structures / Lattice Arrays / BCC Sphere

Sockets

  • Expr (see #37)

Basic

  • Any
  • Bool
  • String
  • File Path
  • Color

Blender

  • Object
  • Collection
  • Image
  • GeoNodes
  • Text
  • Material

Maxwell

  • Bound Conds

  • Bound Cond

  • Medium

  • Medium Non-Linearity

  • Source

  • Temporal Shape

  • Structure

  • Monitor

  • FDTD Sim

  • Sim Domain

  • Sim Grid

  • Sim Grid Axis

  • Simulation Data

  • Monitor Data

Tidy3D

  • Cloud Task
    • Remove the existing task selector when making a new task.
    • Implement "new folder" feature w/popup operator.
    • Implement "delete task" feature w/popup confirmation.

Physical

  • Unit System
  • Polarization

Performance

Unconfirmed

  • The GN-update feels slow with many nodes, even when the previewing node is disconnected.

Confirmed

  • GN Push: Optimize repeated GN value pushing w/sympy expression hashing.
# Nodes ## Analysis - Extract (See #54) - Viz (See #55) - Math / Operate Math (See #54) - Math / Map Math (See #54) - Math / Filter Math (See #54) - Math / Reduce Math (See #54) - Math / Transform Math (See #54) ## Inputs - [x] Wave Constant - Scene (see #17) - Constants / Expr Constant (see #37) - [ ] Constants / Bool Constant - [x] Constants / Scientific Constant - [ ] Nicer (boxed?) node information, maybe centered headers, in a box, etc. . - [ ] Constants / Unit System Constant - [ ] Reconsider the need. - [ ] Re-implement basically from scratch. - [ ] Implement builtin presets, including "Tidy3D" and "Blender", shown in the label row. - [ ] Constants / Blender Constant - Web Importers / RIIO Web Importer (see #56) - Web Importers / Tidy3D Web Runner (see #66) - File Import / Data File Import (see #56) - [x] File Import / Tidy3D File Import ## Outputs - [x] Viewer - [x] Consider a "debug" mode to help the user not need to look at **everything** that can be played with. - [x] Auto-enable plot when creating. - [ ] Test/support multiple viewers at the same time. - [ ] Pop-up w/multiline string as alternative to console print. - [ ] Handle per-tree viewers, so that switching trees doesn't "bleed" state from the old tree. - Web Export / Tidy3D Web Exporter (see #66) - [x] File Export / JSON File Export - [ ] Reevaluate its purpose. - [ ] File Export / Tidy3D File Export - [ ] Implement HDF-based export of Tidy3D-exported object (which includes ex. mesh data and such) - [ ] Also JSON (but indicate somehow that ex. mesh data doesn't come along for the ride). - [ ] File Export / Data File Export - [ ] Implement datatype dropdown to guide format on disk. - [ ] Implement unit system input to guide conversion to numpy data type. - [ ] Standardize 1D and 2D array loading/saving on numpy's savetxt with gzip enabled. ## Sources - [x] Temporal Shape (see #67) - [x] Point Dipole Source - Plane Wave Source (see #63) - Uniform Current Source (see #68) - TFSF Source (see #68) - Gaussian Beam Source (see #68) - Astigmatic Gaussian Beam Source (see #68) - EH Array Source (see #68) - EH Equiv Array Source (see #68) ## Mediums - [x] Library Medium - [ ] Implement wavelength-based IOR plot. - DataFit Medium (see #56) - [ ] PEC Medium - [ ] Isotropic Medium - [ ] Anisotropic Medium - [ ] Sellmeier Medium - [ ] Drude Medium - [ ] Drude-Lorentz Medium - [ ] Debye Medium - [ ] Pole-Residue Medium - [ ] Non-Linearity / `chi_3` Susceptibility Non-Linearity - [ ] Non-Linearity / Two-Photon Absorption Non-Linearity - [ ] Non-Linearity / Kerr Non-Linearity ## Structures - [ ] BLObject Structure - [x] GeoNodes Structure - [ ] Implement a panel system, to make GN trees with a ton of inputs (most of which are not usually needed) actually useful. - [ ] Propertly map Menu input sockets to the GN group. - [ ] Primitive Structures / Line Structure - [ ] Primitive Structures / Plane Structure - [x] Primitive Structures / Box Structure - [x] Primitive Structures / Sphere Structure - [x] Primitive Structures / Cylinder Structure - [ ] Primitive Structures / PolySlab Structure ## Bounds - [x] Boundary Conds - [x] Boundary Cond / PML Bound Cond - [ ] 1D plot visualizing the effect of parameters on a 1D wave function - [x] Boundary Cond / Bloch Bound Cond - [x] Implement "simple" mode aka "periodic" mode in Tidy3D - [ ] 1D plot visualizing the effect of parameters on a 1D wave function - [x] Boundary Cond / Absorbing Bound Cond - [ ] 1D plot visualizing the effect of parameters on a 1D wave function ## Monitors - [x] EH Field Monitor - [x] Rethink how to specify / explain the spatial and temporal subdivisions. - [ ] Can't see a 2D plane from cross section; should be a very small cube instead of a plane. - [x] Power Flux Monitor - [x] Rethink how to specify / explain the spatial subdivisions. - [ ] Can't see a 2D plane from cross section; should be a very small cube instead of a plane. - [x] Permittivity Monitor - [ ] Diffraction Monitor - [ ] Projected E/H Field Monitor / Cartesian Projected E/H Field Monitor - [ ] Projected E/H Field Monitor / Angle Projected E/H Field Monitor - [ ] Projected E/H Field Monitor / K-Space Projected E/H Field Monitor ## Simulations - [x] Combine - [ ] Rethink how is most intuitive and easy to - [ ] When something connects to the virtual socket, add another socket non-destructively (depends on #30). - [ ] Use generic Expr socket mode to combine numerical types into either Expr or Data socket. - [ ] Explicit about lower structures taking precedence. - [x] Sim Domain - [x] FDTDSim (see #58) - [ ] Sim Grid - [ ] Sim Grid Axes / Auto Sim Grid Axis - [ ] Sim Grid Axes / Manual Sim Grid Axis - [ ] Sim Grid Axes / Uniform Sim Grid Axis - [ ] Sim Grid Axes / Data Sim Grid Axis # GeoNodes - [ ] Tests / Monkey (suzanne deserves to be simulated, she may need manifolding up though :)) - [ ] Tests / Wood Pile - [ ] Structures / Primitives / Line - [ ] Structures / Primitives / Plane - [x] Structures / Primitives / Box - [x] Structures / Primitives / Sphere - [ ] Structures / Primitives / Cylinder - [x] Structures / Primitives / Ring - [ ] Structures / Arrays / Cyl - [ ] Structures / Arrays / Box - [ ] Structures / Arrays / Sphere - [ ] Structures / Arrays / Cylinder - [x] Structures / Arrays / Ring - [ ] Structures / Hex Arrays / Cyl - [ ] Structures / Hex Arrays / Box - [ ] Structures / Hex Arrays / Sphere - [ ] Structures / Hex Arrays / Cylinder - [ ] Structures / Hex Arrays / Ring - [ ] Structures / Cavity Arrays / L-Cavity Cylinder - [ ] Structures / Cavity Arrays / H-Cavity Cylinder - [ ] Structures / Lattice Arrays / FCC Sphere - [ ] Structures / Lattice Arrays / BCC Sphere # Sockets - Expr (see #37) ## Basic - [x] Any - [x] Bool - [x] String - [x] File Path - [ ] Color ## Blender - [ ] Object - [ ] Collection - [ ] Image - [ ] GeoNodes - [ ] Text - [ ] Material ## Maxwell - [x] Bound Conds - [x] Bound Cond - [x] Medium - [ ] Medium Non-Linearity - [x] Source - [x] Temporal Shape - [x] Structure - [x] Monitor - [x] FDTD Sim - [x] Sim Domain - [ ] Sim Grid - [ ] Sim Grid Axis - [x] Simulation Data - [x] Monitor Data ## Tidy3D - [x] Cloud Task - [ ] Remove the existing task selector when making a new task. - [ ] Implement "new folder" feature w/popup operator. - [ ] Implement "delete task" feature w/popup confirmation. ## Physical - [ ] Unit System - [ ] Polarization # Performance ## Unconfirmed - The GN-update feels slow with many nodes, even when the previewing node is disconnected. ## Confirmed - [ ] GN Push: Optimize repeated GN value pushing w/sympy expression hashing.
so-rose pinned this 2024-05-04 19:14:57 +02:00
so-rose added the
tracker
feature
labels 2024-05-04 19:15:07 +02:00
so-rose added a new dependency 2024-05-05 09:57:53 +02:00
so-rose added a new dependency 2024-05-05 09:58:04 +02:00
so-rose added a new dependency 2024-05-05 16:45:36 +02:00
so-rose added a new dependency 2024-05-05 16:45:43 +02:00
so-rose added a new dependency 2024-05-05 18:13:40 +02:00
so-rose added a new dependency 2024-05-05 18:20:28 +02:00
so-rose added a new dependency 2024-05-05 20:53:18 +02:00
so-rose added a new dependency 2024-05-07 10:14:37 +02:00
so-rose added a new dependency 2024-05-07 10:14:46 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Depends on
You do not have permission to read 8 dependencies
Reference: so-rose/oscillode#27
There is no content yet.