PLaSK User Manual

WasiakNewCyl Class

class gain.wasiak.WasiakNewCyl(name="")

Gain solver based on Fermi Golden Rule for Cylindrical 2D geometry.

Subclasses

LuminescenceSpectrum Luminescence spectrum class.
Spectrum Gain spectrum class.

Methods

get_fermi_levels(n[, T, reg])
get_levels([T])
initialize() Initialize solver.
invalidate() Set the solver back to uninitialized state.
luminescencespectrum(…) Get luminescence spectrum at given point
spectrum(…) Get gain spectrum at given point

Attributes

Receivers

inCarriersConcentration Receiver of the carriers concentration required for computations [1/cm³].
inTemperature Receiver of the temperature required for computations [K].

Providers

outGain Provider of the computed material gain [1/cm].
outLuminescence Provider of the computed luminescence [a.u.].

Other

Tref Reference temperature.
adjust_layers Adjust thicknesses of quantum wells?
broadening If there is no modified geometry – roughness of the thicknesses of the quantum wells.
cond_shift Additional conduction band shift for QW [eV]
fast_levels Compute levels only once and simply shift for different temperatures?
geometry Geometry provided to the solver
geometry_mod Modified geomery for broadening calculations.
id Id of the solver object.
initialized True if the solver has been initialized.
lifetime Carriers lifetime [ps].
matrix_elem optical matrix element [m0*eV]
mesh Mesh provided to the solver
roughness If there is no modified geometry – roughness of the thicknesses of the quantum wells.
strained Consider strain in QW and barriers? (True or False).
vale_shift Additional valence band shift for QW [eV]

Descriptions

Method Details

WasiakNewCyl.get_fermi_levels(n, T=None, reg=0)
WasiakNewCyl.get_levels(T=None)
WasiakNewCyl.initialize()

Initialize solver.

This method manually initialized the solver and sets initialized to True. Normally calling it is not necessary, as each solver automatically initializes itself when needed.

Returns:solver initialized state prior to this method call.
Return type:bool
WasiakNewCyl.invalidate()

Set the solver back to uninitialized state.

This method frees the memory allocated by the solver and sets initialized to False.

WasiakNewCyl.luminescencespectrum(point)
WasiakNewCyl.luminescencespectrum(c0, c1)

Get luminescence spectrum at given point

Get luminescence spectrum at given point

WasiakNewCyl.spectrum(point)
WasiakNewCyl.spectrum(c0, c1)

Get gain spectrum at given point

Get gain spectrum at given point

Receiver Details

WasiakNewCyl.inCarriersConcentration

Receiver of the carriers concentration required for computations [1/cm³].

You will find usage details in the documentation of the receiver class CarriersConcentrationReceiverCyl.

Example

Connect the reveiver to a provider from some other solver:

>>> solver.inCarriersConcentration = other_solver.outCarriersConcentration

See also

Receciver class: plask.flow.CarriersConcentrationReceiverCyl

Provider class: plask.flow.CarriersConcentrationProviderCyl

Data filter: plask.filter.CarriersConcentrationFilterCyl

WasiakNewCyl.inTemperature

Receiver of the temperature required for computations [K].

You will find usage details in the documentation of the receiver class TemperatureReceiverCyl.

Example

Connect the reveiver to a provider from some other solver:

>>> solver.inTemperature = other_solver.outTemperature

See also

Receciver class: plask.flow.TemperatureReceiverCyl

Provider class: plask.flow.TemperatureProviderCyl

Data filter: plask.filter.TemperatureFilterCyl

Provider Details

WasiakNewCyl.outGain(n=0, mesh, wavelength, interpolation='default')

Provider of the computed material gain [1/cm].

Parameters:
  • deriv (str) – Gain derivative to return. can be ‘’ (empty) or ‘conc’. In the latter case, the gain derivative over carriers concentration is returned.
  • mesh (mesh) – Target mesh to get the field at.
  • interpolation (str) – Requested interpolation method.
  • wavelength (float) – The wavelength at which the gain is computed [nm].
Returns:

Data with the material gain on the specified mesh [1/cm].

You may obtain the number of different values this provider can return by testing its length.

Example

Connect the provider to a receiver in some other solver:

>>> other_solver.inGain = solver.outGain

Obtain the provided field:

>>> solver.outGain(0, mesh, wavelength)
<plask.Data at 0x1234567>

Test the number of provided values:

>>> len(solver.outGain)
3

See also

Provider class: plask.flow.GainProviderCyl

Receciver class: plask.flow.GainReceiverCyl

WasiakNewCyl.outLuminescence(mesh, interpolation='default')

Provider of the computed luminescence [a.u.].

Parameters:
  • mesh (mesh) – Target mesh to get the field at.
  • interpolation (str) – Requested interpolation method.
Returns:

Data with the luminescence on the specified mesh [a.u.].

Example

Connect the provider to a receiver in some other solver:

>>> other_solver.inLuminescence = solver.outLuminescence

Obtain the provided field:

>>> solver.outLuminescence(mesh)
<plask.Data at 0x1234567>

See also

Provider class: plask.flow.LuminescenceProviderCyl

Receciver class: plask.flow.LuminescenceReceiverCyl

Attribute Details

WasiakNewCyl.Tref

Reference temperature. If fast_levels is True, this is the temperature used for initial computation of the energy levels [K].

WasiakNewCyl.adjust_layers

Adjust thicknesses of quantum wells?

Setting this to True, allows to adjust the widths of the gain region layers by few angstroms to improve numerical stability.

WasiakNewCyl.broadening

If there is no modified geometry – roughness of the thicknesses of the quantum wells. With modified geometry present: broadening factor. [-].

WasiakNewCyl.cond_shift

Additional conduction band shift for QW [eV]

WasiakNewCyl.fast_levels

Compute levels only once and simply shift for different temperatures?

Setting this to True stongly increases computation speed, but makes the results less accurate for high gains.

WasiakNewCyl.geometry

Geometry provided to the solver

WasiakNewCyl.geometry_mod

Modified geomery for broadening calculations.

WasiakNewCyl.id

Id of the solver object. (read only)

Example

>>> mysolver.id
mysolver:category.type
WasiakNewCyl.initialized

True if the solver has been initialized. (read only)

Solvers usually get initialized at the beginning of the computations. You can clean the initialization state and free the memory by calling the invalidate() method.

WasiakNewCyl.lifetime

Carriers lifetime [ps].

WasiakNewCyl.matrix_elem

optical matrix element [m0*eV]

WasiakNewCyl.mesh

Mesh provided to the solver

WasiakNewCyl.roughness

If there is no modified geometry – roughness of the thicknesses of the quantum wells. With modified geometry present: broadening factor. [-].

WasiakNewCyl.strained

Consider strain in QW and barriers? (True or False).

WasiakNewCyl.vale_shift

Additional valence band shift for QW [eV]