Changelog

All notable changes to RSoft PLTools will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Comprehensive documentation site with GitHub Pages

  • Sphinx-based API documentation generation

  • GitHub Actions workflow for automatic documentation building

  • Command-line interface for FemSIM simulations

  • Advanced visualization tools for effective index analysis

  • Custom taper profile support

  • Parameter sweep utilities for optimization

Changed

  • Improved error handling and validation

  • Enhanced configuration management system

  • Better integration between BeamPROP and FemSIM workflows

Fixed

  • Documentation formatting and cross-references

  • Import issues with optional dependencies

[0.1.0] - 2024-12-13

Added

  • Initial release of RSoft PLTools

  • Core photonic lantern design functionality

  • Mode selective lantern support

  • RSoft simulation file generation

  • BeamPROP and FemSIM integration

  • Configuration management system

  • Fiber layout visualization

  • Basic plotting and analysis tools

Features

  • Lantern Design

    • Photonic lantern creation with customizable parameters

    • Mode selective lantern (MSL) generation

    • Hexagonal and circular fiber layouts

    • Automated geometry calculations

  • Simulation Support

    • RSoft CAD file generation

    • BeamPROP simulation orchestration

    • FemSIM effective index analysis

    • Subprocess management for simulations

  • Analysis Tools

    • Monitor data plotting

    • Effective index visualization

    • Parameter sweep analysis

    • Outlier detection and data cleaning

  • Configuration System

    • JSON-based hierarchical configuration

    • Dynamic parameter expressions

    • Runtime configuration modification

    • Template-based segment definitions

Dependencies

  • Python 3.6+

  • NumPy 1.2+

  • Matplotlib 2.0+

  • Pandas

  • SciPy

  • Seaborn

Known Issues

  • Some docstring formatting issues in Sphinx generation

  • Missing tqdm dependency for progress bars

  • Limited error messages for simulation failures


Development Notes

Version 0.1.0 Architecture

The initial release implements a layered architecture:

  1. Base Circuit Layer (rsoft_circuit.py)

    • Core RSoft simulation file generation

    • Builder pattern with component factories

    • Type-safe enums for simulation parameters

  2. Simulation Layer (rsoft_simulations.py)

    • Simulation orchestration with subprocess management

    • Error handling and validation

    • Support for multiple RSoft packages

  3. Domain Model Layer (lantern/, geometry/)

    • Photonic device modeling with inheritance

    • Composition with FiberConfigurator and SegmentManager

    • Strategy pattern for different lantern types

  4. Utilities Layer (utils/)

    • File I/O operations

    • Plotting and visualization

    • Configuration management

  5. Application Layer (simulations/, examples/)

    • High-level workflows

    • Example implementations

    • Parameter scanning utilities

Future Roadmap

Version 0.2.0 (Planned)

  • Enhanced mode coupling analysis

  • Optimization algorithms for taper design

  • Web-based configuration interface

  • Performance improvements for large simulations

  • Additional fiber types and materials

Version 0.3.0 (Planned)

  • Machine learning integration for design optimization

  • 3D visualization capabilities

  • Export to commercial simulation packages

  • Advanced post-processing tools

Contributing

When contributing to RSoft PLTools:

  1. Documentation: Update both code docstrings and user documentation

  2. Testing: Add tests for new functionality

  3. Changelog: Update this changelog with your changes

  4. Version: Follow semantic versioning principles

Migration Guide

From Pre-Release to v0.1.0

If you were using development versions before the official release:

  1. Configuration Files: Update configuration format to new JSON schema

  2. Import Statements: Update imports to use new module structure

  3. Function Names: Some utility functions have been renamed for consistency

  4. Dependencies: Install new required packages (pandas, scipy, seaborn)

Example Migration

Old (Pre-release):

from rsoft_tools import create_lantern
from rsoft_tools.utils import plot_results

lantern = create_lantern(cores=6, taper=50000)
plot_results(lantern.output_file)

New (v0.1.0):

from rsoft_cad.lantern import PhotonicLantern
from rsoft_cad.utils.rsoft_file_plot import plot_monitor_data

lantern = PhotonicLantern()
core_map = lantern.create_lantern(highest_mode="LP02", taper_length=50000)
plot_monitor_data("simulation_results/monitor.dat")

For detailed API changes and migration assistance, please refer to the API Reference and GitHub Issues.