SimulationPlanar

The SimulationPlanar class can be initiated in Lua script by

s = SimulationPlanar.new()

Most of the function provided in base class can be used except for the following changes.

Failure

The following function are unavailable and cannot be called for a SimulationPlanar object.

OptPrintIntermediate()

Note

The following functions are added and specific to SimulationPlanar object.

SetKParallel(end)
  • Arguments:

    1. end: [double], the end of the integral. It is a normalized number with respect to .
  • Output: None

  • Note: this function is essentially doing where the integral is evaluated either using Gauss-legendre methdod or Gauss-kronrod adaptive method.

GetPhiAtKParallel(omega index, k parallel value)
  • Arguments:

    1. omega index: [int], the index of omega where is evaluated. To be consistent with Lua, this index starts from .
    2. k parallel: [double], the value where is evaluated. It should be a normalized value with respect to .
  • Output: [double], value of .

IntegrateKParallel()
  • Arguments: None

  • Output: None

  • Note: before using this function, make sure the flux integral can be reduced to a integral. In principle, the cases when all the materials possess only scalar dielectric or diagonal forms can use this function.

OptUseQuadgl(degree)
  • Arguments:

    1. degree: [int, optional], using Gauss-legendre method in the integral and set the degree of legendre polynomial in IntegrateKParallel(). If degree is not given, it is set to be .
  • Output: None

OptUseQuadgk()
  • Arguments: None

  • Output: None

  • Note: this function uses Gauss-kronrod adaptive integral algorithm in IntegrateKParallel(). The simulation will use this function if the integral option is not specified.