Skip to content

Add a material library and dispersion#70

Draft
QuentinWach wants to merge 15 commits intomainfrom
matter
Draft

Add a material library and dispersion#70
QuentinWach wants to merge 15 commits intomainfrom
matter

Conversation

@QuentinWach
Copy link
Copy Markdown
Owner

@QuentinWach QuentinWach commented Feb 17, 2026

…port

- Introduced a static library of over 55 predefined materials with detailed metadata and lookup functions.
- Added dispersive material models including Sellmeier, Drude, Lorentz, and Debye, with conversion capabilities to standard materials.
- Updated README to reflect new material functionalities and usage notes.
- Implemented tests for material library and dispersive models to ensure accuracy and reliability.
- Consolidated material models into the design module, introducing new classes for PEC and PMC materials.
- Removed obsolete medium-related classes and functions from the components module.
- Updated material library to streamline access to material definitions and enhance compatibility with design workflows.
- Revised README to reflect changes in material structure and usage.
- Moved material library components to the design module, enhancing organization and accessibility.
- Added a comprehensive material library with a new API for material handling, including various material types and their properties.
- Removed deprecated material library files and classes to streamline the codebase.
- Updated README to reflect the new material library structure and usage instructions.
- Replaced the deprecated material_library.py with a new library.py for improved organization and functionality.
- Introduced a comprehensive function-based material registry, supporting various material types and their properties.
- Updated README to reflect the new library structure and usage instructions.
- Removed obsolete material library data files and scripts to streamline the codebase.
- Eliminated PECMaterial and PMCMaterial classes along with their instances and related functions from the materials module.
- Updated imports and exports across the codebase to reflect the removal of these materials.
- Revised README to remove references to deprecated materials.
- Introduced `show()` methods for various material classes including `Material`, `CustomMaterial`, `Material2D`, and `AnisotropicMaterial` to display their properties and dispersion characteristics.
- Created a new `material_plots.py` module containing utility functions for plotting material responses.
- Updated the README with examples demonstrating the new visualization features.
- Added tests to ensure the `show()` methods function correctly across different material types.
- Introduced native support for dispersive materials in the simulation framework, allowing for accurate modeling of frequency-dependent behaviors.
- Added methods for converting dispersive material properties into canonical pole representations, facilitating integration with the solver.
- Updated the simulation and field classes to handle dispersive materials, including new methods for advancing electric fields with ADE corrections.
- Enhanced the README to include details on the new dispersive material functionalities and usage instructions.
- Implemented tests to validate the behavior of dispersive materials and ensure consistency across simulation methods.
…ation methods

- Added a new method for creating a JIT-compiled dispersive E-update function in the Simulation class, improving performance for dispersive materials.
- Updated the run_fast method to utilize the new dispersive E-update function, ensuring accurate updates of ADE states during simulation.
- Enhanced the README to clarify the behavior of run_jit_scan with dispersive materials, including fallback mechanisms when sources are present.
- Introduced tests to validate the correct functioning of dispersive updates and fallback scenarios in the simulation framework.
- Renamed `run_fast` to `run` in the Simulation class, consolidating simulation execution under a unified API.
- Updated the README to clarify the behavior of the new `run` method and its compatibility with visualization options.
- Modified tests to reflect the changes in method names and ensure consistent behavior across simulation scenarios.
- Removed the deprecated `run_jit_scan` method, streamlining the simulation interface.
- Introduced a new module for dispersion validation, including utilities for estimating transfer functions and extracting effective refractive indices.
- Added a showcase example for pulse-through-slab dispersion validation, demonstrating the usage of the new features.
- Updated the README to include information on the new dispersion validation capabilities and usage instructions.
- Implemented tests to ensure the functionality of dispersion validation methods and showcase execution.
- Refactored the dispersion showcase example to support multiple material cases (SiO2, Gold, Water) with configurable parameters.
- Simplified the simulation workflow by consolidating case definitions and improving readability.
- Updated the simulation execution to handle both cases with and without slabs, providing a clearer comparison of results.
- Added warnings for non-finite fields during simulation to improve robustness and user feedback.
- Simplified the material selection process by introducing a centralized CASE_PRESETS dictionary for key parameters.
- Enhanced the simulation workflow with dedicated functions for retrieving material properties and building designs.
- Improved error handling for unsupported material keys, providing clearer feedback to users.
- Streamlined the code structure for better readability and maintainability.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant