SemiVi

Opto-Solver

Opto-Solver

The optosolver package includes FDTD (Finite difference time domain) solver, BPM (Beam propagation method) solver, and optical mode solver.

Salient Features
  • In FDTD solver, built-in hardware (GPU) acceleration is enabled.
  • BPM and Mode solvers support both scalar or Vectorial mode-equation can be selected.

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 envelopeSVE 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