Opto-Solver

The optosolver package includes FDTD (Finite difference time domain) solver, BPM (Beam propagation method) solver, and optical mode solver.
Salient Features |
|
Salient features - FDTD solver
- In FDTD solver, materials with wavelength dependent real and imaginary permittivity are modeled.
- Dispersive material models -- Drude, Debye, Lorentz, and Kerr models are available.
- Use plane-wave source with uniform beam, Gaussian beam, or mode-beam, also dipole source.
- Apply BCs -- reflective, periodic (+ oblique incidence), PML
- Built-in hardware acceleration enabled
Modeling dispersive regions
- Dispersive materials are modeled by ``Auxiliary Differential Equation'' method.
- Specify parameters corresponding each pole are set as lists.
- As an illustration, commands in the config file look as follows:
Dispersive*DispersiveRegSi:
{ PoleFreq = [2.31E15, 2.18E15, 2.08E15];
DampFact = [5.5E12, 4.353E12, 10.88E12]; } - For exact entry in the config file, please refer to the user-guide and the examples therein.
Results Visualization
- Pointsensor: Saves temporal data at given point in a csv file.
- Movie: Saves temporal data at the cross-section as a movie.
- TimeAverage: Stores temporal average of the data.
- PhaseCalculator: Calculates magnitude and phase of the data at a time-point. Also, saves an xdmf script for visualization in paraview.
- Detector: Checks if the given quantity has stabilized over time. When yes, stops the simulation.
- The solver creates an xdmf file for visualization in paraview.
- Magnitude of Electric Field
Phase of Electric Field
Easy-to-use Config file
- Include a new device structure.
- Define the source window.
- Apply specific boundary conditions.
- Set solver parameters.
- As an illustration, a commands in the config file look as follows:
File: { Device = "fdtdSiWG_str.cfg";}
Solver: { MaximumTime = 15E-14; }
Source*left: {
Type = "PlaneWave";
BeamShape = "ModeBeam";
Position: ([-0.6, -0.2, 0.], [-0.6, 0.2, 0.]);
}
Boundary*xbdr: { Axis = ["Xmin", "Xmax"];
Model = "CPML"; PMLLayers = 20.;}
Boundary*ybdr: {
Axis = [ "Ymin", "Ymax", "Zmin", "Zmax"];
Model = "CPML"; PMLLayers = 20.; } - For exact commands in the config file, please refer to the user-guide and the examples therein.
Salient features - BPM solver
- The BPM solver calculates spatially varying envelopes (SVEs) of electric field and magnetic flux along the waveguide propagation direction.
- It support, materials with constant / wavelength dependent real and imaginary permittivity.
- Scalar or vectorial mode-equation can be selected.
- Bi-directional BPM solver supported (experimental basis).
- Supports both 2D and 3D structures.
BPM Solver - Results Visualization
- The solver stores envelopes of electric and magnetic field vectors in hdf file.
- The solver creates an xdmf file for visualization in paraview.
Magnitude of electric field envelope
SVE of Ez
Salient features - Mode solver
- The Mode solver calculates optical modes of 2D device structure or 2D/1D cross-section of 3D/2D device structures.
- It supports materials with constant / wavelength dependent real and complex permittivity.
- Scalar or vectorial mode-equation can be selected.
- Either power method or ARPAK routines can be used for mode calculation.
- Can calculate multiple modes near the effective index.
- Supports reflective BC at the boundaries.
Mode Solver - Results Visualization
- The solver stores normalized electric and magnetic field vectors in hdf file.
- The solver creates an xdmf file for visualization in paraview.
- Magnitude of electric field envelope
SVE of Ez