Skip to content

Releases: SiEPIC/gds_fdtd

v0.4.0

Choose a tag to compare

@mustafacc mustafacc released this 05 Aug 07:43

complete rewrite on how the solvers work. Everything is now more modular and easier to extend.

Added
New Solver System
Base fdtd_solver class that both Tidy3D and Lumerical solvers inherit from
fdtd_solver_tidy3d class that uses Tidy3D's ComponentModeler for S-parameters
fdtd_solver_lumerical class that works with Lumerical FDTD (with GPU support)
fdtd_port class so ports work the same way in both solvers
Better field monitor system that lets each solver handle visualization differently
Multi-Modal Simulations
Both TE and TM polarizations in the same simulation
Tidy3D ComponentModeler integration for better S-parameter accuracy
S-parameter extraction for all mode combinations
PDL and mode conversion analysis tools
Logging System (logging_config.py)
Logs everything that happens during simulations
Writes detailed logs to files in the working directory
Shows different amounts of detail in console vs. file logs
Creates log files with timestamps and component names automatically
Better S-Parameter Handling (sparams.py)
Tools to validate S-parameter results
Export to multiple formats (.dat, JSON, Touchstone)
Check energy conservation and reciprocity
Calculate group delay and bandwidth
Documentation
Complete documentation website using Sphinx
Guides for how the solvers work and how to use them
Setting up multi-modal simulations
Working with S-parameters
Creating technology files
Troubleshooting common problems
Automatic API documentation
Deployed to GitHub Pages
Changed
Breaking Changes
Removed old lum_tools.py and t3d_tools.py modules
All solvers now inherit from the base fdtd_solver class
Import solvers from gds_fdtd.solver_tidy3d and gds_fdtd.solver_lumerical now
Changed some method names to be consistent between solvers
How Things Work Now
Both solvers use the same parameter names and structure
Simulation domain size is calculated automatically from your component
Each component gets its own subdirectory for output files
Better error messages when parameters don't make sense
Tidy3D Solver Changes
Now uses ComponentModeler instead of manual S-parameter calculation
Better handling of cloud simulation submission and monitoring
Field visualization uses Tidy3D's native plotting functions
Supports all TE/TM mode combinations in one simulation
Lumerical Solver Changes
Works with Lumerical 2024 GPU acceleration syntax
Better integration with technology files for layer building
S-parameter sweeps are set up automatically
Shows estimated memory and computation requirements
Fixed
Port detection from GDS files works better now
Material assignment from technology files is more reliable
Fixed buffer calculations and port extensions
S-parameter magnitudes and phases are calculated correctly
Field monitors are placed exactly where they should be
File organization works the same on different operating systems

v0.3.10

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 14 May 03:46
  • Added "buffer" as a parameter for Lumerical, #8

v0.3.9

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 11 May 07:57
  • requirements of python 3.10 instead of 3.11

v0.3.8

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 11 May 07:51
  • fix path for halfring function

v0.3.7

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 11 May 05:27
  • updated examples
  • updated unit tests
  • updated Update_Halfring_CML for ebeam_dc_halfring_straight

v0.3.6

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 08 May 17:33
  • update compact model library, for ebeam_dc_halfright_straight PCell

v0.3.5

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 07 May 04:54
v0.3.5

v0.3.4

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 07 May 04:41
v0.3.4

v0.3.3

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 07 May 04:39
v0.3.3

v0.3.2

Choose a tag to compare

@lukasc-ubc lukasc-ubc released this 07 May 03:24
Update lum_tools.py