# PLaSK User Manual

#### Page Contents

- `optical`
  - Solver classes
  - Functions
  - Descriptions
    - Function Details
      - `BesselCyl()`
      - `EffectiveFrequencyCyl()`
      - `EffectiveIndex2D()`
      - `Fourier2D()`
      - `Fourier3D()`

# `optical`

Optical solvers.

This package combines all optical solvers and helper functions that can create solver classes without a need to explicitly import the proper binary module.

Example

    >>> import optical
    >>> optical.BesselCyl('mysolver')
    <optical.modal.BesselCyl at 0x42ac2b8>

## Solver classes

`effective.EffectiveIndex2D`([name]) | Calculate optical modes and optical field distribution using the effective index method in two-dimensional Cartesian space.
`effective.EffectiveFrequencyCyl`([name]) | Calculate optical modes and optical field distribution using the effective frequency method in two-dimensional cylindrical space.
`modal.Fourier2D`([name]) | Optical Solver using Fourier expansion in 2D.
`modal.Fourier3D`([name]) | Optical Solver using Fourier expansion in 3D.
`modal.BesselCyl`([name]) | Optical Solver using Bessel expansion in cylindrical coordinates.

## Functions

`BesselCyl`([name]) | Create BesselCyl solver.
`EffectiveFrequencyCyl`([name]) | Create EffectiveFrequencyCyl solver.
`EffectiveIndex2D`([name]) | Create EffectiveIndex2D solver.
`Fourier2D`([name]) | Create Fourier2D solver.
`Fourier3D`([name]) | Create Fourier3D solver.

## Descriptions

### Function Details

optical.BesselCyl(name='')

  Create BesselCyl solver.

  This function automatically loads `modal` submodule and creates `BesselCyl` class.

  Parameters:

    name (str) – Solver name.

optical.EffectiveFrequencyCyl(name='')

  Create EffectiveFrequencyCyl solver.

  This function automatically loads `effective` submodule and creates `EffectiveFrequencyCyl` class.

  Parameters:

    name (str) – Solver name.

optical.EffectiveIndex2D(name='')

  Create EffectiveIndex2D solver.

  This function automatically loads `effective` submodule and creates `EffectiveIndex2D` class.

  Parameters:

    name (str) – Solver name.

optical.Fourier2D(name='')

  Create Fourier2D solver.

  This function automatically loads `modal` submodule and creates `Fourier2D` class.

  Parameters:

    name (str) – Solver name.

optical.Fourier3D(name='')

  Create Fourier3D solver.

  This function automatically loads `modal` submodule and creates `Fourier3D` class.

  Parameters:

    name (str) – Solver name.