Gain{ }

Calling sequence

Gain{ }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional\;within\;the\;scope}}\)

Functionality

Specifies optical gain calculation. Please refer to Optical gain/absorption spectrum for the model description.

Example
Gain{
    # non-self-consistent calculation
    dEPhot = 2.0
    EphotonMin = 140
    EphotonMax = 170

    # self-consistent calculation
    dEPhotSelfConsistent = 2.0
    EphotonMinSelfConsistent = 140
    EphotonMaxSelfConsistent = 170
    NMaxSelfConsistentIterations = 50
    ConvergenceFactorGainSelfConsistent = 0.001

    # voltage range
    Vmin = 160
    Vmax = 400

    # gain clamping and wall-plug efficiency
    CavityLosses = 2.76
    FrontMirrorLosses = 2.26
    GainClamping = yes
    OverlapFactor = 0.9

    # threshold
    Threshold = yes
    RefineThreshold =

    FermiGoldenRule{
        ...
    }

    Polarization{
        ...
    }
}

The following keywords are available within this group.


GainMethod

Calling sequence

Gain{ GainMethod }

Properties
  • type: \(\mathrm{integer}\)

  • type: \(\mathrm{character\;string}\)

Functionality

Choose a method how the gain should be calculated:

  • none or -1 = no gain calculation

  • noself or 0 = gain without self-consistency

  • self or 1 = gain with self-consistency

  • noselfself or 2 = gain with and without self-consistency

Please refer to Gain/absorption calculation from NEGF linear response theory for the model description.

Example
Gain{
    GainMethod = self
}
Gain{
    GainMethod = noself
}

dEPhoto

Calling sequence

Gain{ dEPhot }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the energy spacing between two photon energies.


EphotonMin

Calling sequence

Gain{ EphotonMin }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the lower bound of the photon energy range.


EphotonMax

Calling sequence

Gain{ EphotonMax }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the upper bound of the photon energy range.


dEPhotoSelfConsistent

Calling sequence

Gain{ dEPhotSelfConsistent }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the energy spacing between two photon energies.


EphotonMinSelfConsistent

Calling sequence

Gain{ EphotonMinSelfConsistent }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the lower bound of the photon energy range.


EphotonMaxSelfConsistent

Calling sequence

Gain{ EphotonMaxSelfConsistent }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the upper bound of the photon energy range.


NMaxSelfConsistentIterations

Calling sequence

Gain{ NMaxSelfConsistentIterations }

Properties
  • type: \(\mathrm{integer}\)

Functionality

Sets the maximum number of iterations for the gain self-consistent loop.


ConvergenceFactorGainSelfConsistent

Calling sequence

Gain{ ConvergenceFactorGainSelfConsistent }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality


Vmin

Calling sequence

Gain{ Vmin }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{mV}\)

Functionality

Sets the minimum of the range of the potential drop per period to reduce gain calculation time.


Vmax

Calling sequence

Gain{ Vmax }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{mV}\)

Functionality

Sets the maximum of the range of the potential drop per period to reduce gain calculation time.


CavityLosses

Calling sequence

Gain{ CavityLosses }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{cm^{-1}}\)

Functionality

Specifies the cavity loss \(\alpha_\mathrm{cavity}\).


FrontMirrorLosses

Calling sequence

Gain{ FrontMirrorLosses }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{cm^{-1}}\)

Functionality

Sets the front mirror loss \(\alpha_\mathrm{fm}\).


GainClamping

Calling sequence

Gain{ GainClamping }

Properties
  • choices: yes; no

  • default: no

Functionality

If GainClamping = yes, gain clamping condition is considered above lasing threshold. See Gain clamping for the model description.

Note

In the case of gain clamping, the electric field value of the light (EMmode{ ElectricField }) should be either not specified or set to zero. Indeed, for gain clamping, the electric field in the cavity is adjusted self-consistently so that the modal gain \(g_c\) for this photon energy matches the specified cavity losses \(\alpha\).


OverlapFactor

Calling sequence

Gain{ OverlapFactor }

Properties
  • type: \(\mathrm{real\;number}\)

  • default: 1.0

Functionality

Sets the overlap factor between the cavity mode and the active region. If not specified, the default value is assumed to be 1.0 (i.e. perfect overlap between the active region and cavity mode).


Threshold

Calling sequence

Gain{ Threshold }

Properties
  • type: \(\mathrm{choice}\)

  • choices: yes; no

Functionality

If yes, the voltage sweep is performed until the threshold condition is fulfilled (i.e. the maximum gain matches CavityLosses). The threshold bias and current are then interpolated based on the calculated bias points.

Note

Temperature-voltage sweep is available in the C# version and will be implemented in the C++ version as well. Here, the value of the last calculated bias value below threshold bias is used as a starting point of the following bias sweep at the next temperature.


RefineThreshold

Calling sequence

Gain{ RefineThreshold }

Properties
  • type: \(\mathrm{choice}\)

  • choices: yes; no

Functionality


Gauge

Calling sequence

Gain{ Gauge }

Properties
  • type: \(\mathrm{choice}\)

Functionality

Specifies the gauge for the Hamiltonian. This is relevant for light-carrier interaction. Calculation is faster in the Coulomb gauge.

  • 0 or Lorenz will use the Lorentz gauge.

  • 1 or Coulomb will use the Coulomb gauge.

Example
Gain{
    Gauge = "Lorenz"
}

SelfConsistentBoundary

Calling sequence

Gain{ SelfConsistentBoundary }

Properties
  • type: \(\mathrm{choice}\)

  • choices: yes; no

Functionality

Switches on the periodic boundary condition for the gain calculation between periods. Please see Gain/absorption calculation from NEGF linear response theory for the model description.

Example
Gain{
    SelfConsistentBoundary = yes
}

FermiGoldenRule{ }

Calling sequence

Gain{ FermiGoldenRule{ } }

Dependencies
Functionality

If this group is present, calculate optical gain spectrum from Fermi’s golden rule, dipole/momentum matrix elements, and density matrix. See Gain/absorption calculation from Fermi’s golden rule for the model description.

Example
Gain{
    FermiGoldenRule{
        Linewidth = 20
        EphotonMin = 20
        EphotonMax = 400
    }
}

FermiGoldenRule{ Linewidth }

Calling sequence

Gain{ FermiGoldenRule{ Linewidth } }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Specifies the linewidth of the Gaussian broadening.


FermiGoldenRule{ LinewidthMin }

Calling sequence

Gain{ FermiGoldenRule{ LinewidthMin } }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the lower bound of linewidth when the linewidth is extracted from Green’s functions (not yet implemented).


FermiGoldenRule{ EphotonMin }

Calling sequence

Gain{ FermiGoldenRule{ EphotonMin } }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the lower bound of the photon energy range.


FermiGoldenRule{ EphotonMax }

Calling sequence

Gain{ FermiGoldenRule{ EphotonMax } }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the upper bound of the photon energy range.


Polarization{}

Calling sequence

Gain{ Polarization{ } }

Functionality

When FermiGoldenRule{ Linewidth } is defined in the input file, Polarization specifies the electric field polarization used for Fermi’s golden rule. The simulation \(z\) axis is along the growth direction.

Example
Gain{
    # TE polarization
    Polarization{
        Re = [1, 0, 0]
        Im = [0, 0, 0]
    }

    # TM polarization
    Polarization{
        Re = [0, 0, 1]
        Im = [0, 0, 0]
    }
}

Polarization{ Re }

Calling sequence

Gain{ Polarization{ Re } }

Properties
  • type: \(\mathrm{vector\;of\;3\;real\;numbers}\)

  • unit: \(\mathrm{-}\)

Functionality

Specifies the real part of the polarization vector. The complex vector is internally normalized to \(|\epsilon|^2=1\).


Polarization{ Im }

Calling sequence

Gain{ Polarization{ Im } }

Properties
  • type: \(\mathrm{vector\;of\;3\;real\;numbers}\)

  • default: [0.0, 0.0, 0.0]

  • unit: \(\mathrm{-}\)

Functionality

Specifies the imaginary part of the polarization vector. The complex vector is internally normalized to \(|\epsilon|^2=1\).


Last update: 29/10/2024