# ThresholdSearchBesselCyl¶

<meta solver="ThresholdSearchBesselCyl">

Corresponding Python class: meta.shockley.ThresholdSearchBesselCyl.

Solver for threshold search of semiconductor laser in cylindrical geometry.

This solver performs thermo-electrical computations followed by determination ot threshold current and optical analysis in order to determine the threshold of a semiconductor laser. The search is performed by scipy root finding algorithm in order to determine the voltage and electric current ensuring no optical loss in the laser cavity.

The optical computations are done with vector method based on Bessel exansion.

Attributes: name (required) – Solver name.
Contents:
<geometry>

Geometry settings for all solvers.

Attributes: thermal (required) – Geometry used by the thermal solver. (cylindrical geometry) electrical (required) – Geometry used by the electrical, diffusion, and gain solvers. (cylindrical geometry) optical (required) – Geometry used by the optical solver. (cylindrical geometry)
<mesh>

Mesh settings for all solvers.

Attributes: thermal (required) – Mesh used by the thermal solver. (mesh) electrical (required) – Mesh used by the electrical solver. (mesh) diffusion – Mesh used by the carriers diffusion solver. (mesh) optical – Mesh used by the optical solver. (mesh) include-empty – Should empty regions (e.g. air) be included into electrical computations? (bool, default is ‘no’)
<optical>

Configuration of the optical solver

Attributes: m – Angular mode number m (0 for LP0x, 1 for LP1x, etc.). (int, default 1) n – Radial mode number n (1 for LPx1, 2 for LPx2, etc.). (int, default 1) lam0 – This is a wavelength at which refractive index is retrieved from the structure. If this parameter is None, material parameters are computed each time, the wavelenght changes even slightly (this is most accurate, but can be very inefficient. (float) update-gain – If this attribute is set to ‘yes’, material parameters are always recomputed for layers with gains. This allows to set ‘lam0’ for better efficiency and still update gain for slight changes of wavelength. (bool, default is ‘no’) domain – Computational domain. If set to finite, the field is expanded in Fourier-Bessel series over a finite domain (geometry + PMLs). For infinite domain, the field is represented by its Hankel transform. (‘finite’ or ‘infinite’, default is ‘infinite’) size – Expansion size. (int, default 12) group-layers – Should similar layers be grouped for better performance. (bool, default is ‘yes’) k-method – Method of selecting wavevectors for numerical Hankel transform in infinite domain. (‘uniform’, ‘laguerre’, or ‘manual’, default is ‘uniform’) k-scale – Scale factor for wavevectors used in infinite domain. Multiplied by the expansion size and divided by the geometry width it is a maximum considered wavevector. (float, default 10) k-list – A list of relative wavevetors ranges. The numbers should be relative to the inverse of the structure width. The actual wavevectors used in the computations are the avrages of each two adjacent values specified here and the integration weights are the sizes of each interval. (list of floats) transfer – Layers transfer algorithm. Can be either reflection transfer, admittance transfer or automatic, in which case the reflection computations will use reflection transfer and eigenmode search is done with admittance transfer. (‘auto’, ‘reflection’, or ‘admittance’, default is ‘auto’) lam – Initial wavelength for optical search. If this value is set, the computations are started from this value. If this value is set, the radial mode number n is ignored. Note that it is safer to leave this empty and allow the solver to look for it automatically, however, it may increase the time of optical computations. (float [nm]) maxlam – Maximum wavelength considered for the optical mode search. (float [nm]) dlam – Step, by which the wavelength is swept while searching for the approximate mode. (float [nm], default 0.05 nm)
<root>

Configuration of the root-finder used in threshold search.

Attributes: bcond (required) – Number of the voltage boundary condition to vary during the threshold search. (int) vmin – Minimum voltage to search threshold for. It should be below the threshold. (float) vmax – Maximum voltage to search threshold for. It should be above the threshold. (float) vtol – Tolerance on voltage in the root search. (float [V], default 1e-05 V) maxiter – Maximum number of root finding iterations. (int, default 50)
<voltage>

Voltage boundary conditions. See subsection Boundary conditions.

<temperature>

Temperature boundary conditions. See subsection Boundary conditions.

<heatflux>

Heat Flux boundary conditions. See subsection Boundary conditions.

<convection>

Convective boundary conditions. See subsection Boundary conditions.

This boundary condition does not have value attribute. Use coeff for convection coefficient and ambient for ambient temperature instead.

<radiation>

Radiative boundary conditions. See subsection Boundary conditions.

This boundary condition does not have value attribute. Use emissivity for surface emissivity and ambient for ambient temperature instead.

<optical-interface>

Matching interface position in the stack for optical solver.

Attributes: position – Interface will be located as close as possible to the vertical coordinate specified in this attribute. (float [µm]) object – Name of the geometry object below which the interface is located. (geometry object) path – Optional path name, specifying particular instance of the object given in the object attribute. (geometry path)
<optical-vpml>

Vertical absorbing perfectly matched layer boundary conditions parameters.

Attributes: factor – PML scaling factor. (complex, default is ‘1-2j’) dist – PML distance from the structure. (float [µm], default 10.0 µm) size – PML size. (float [µm], default 2.0 µm)
<optical-pml>

Side absorbing perfectly matched layer boundary conditions parameters.

Attributes: factor – PML scaling factor. (complex, default 1.0) shape – PML shape order (0 → flat, 1 → linearly increasing, 2 → quadratic, etc.). (float, default 1) dist – PML distance from the structure. (float [µm], default 20.0 µm) size – PML size. (float [µm], default 0.0 µm)
<junction>

Configuration of the effective model of p-n junction.

Attributes: beta# – Junction coefficients. This is an inverse of the junction thermal voltage. (float [1/V]) js# – Reverse bias current densities. (float [A/m2]) pnjcond – Initial vertical conductivity of the junctions. (float [S/m], default 5.0 S/m)
<contacts>

Properties of the contact layers.

Attributes: pcond – p-contact conductivity. (float [S/m], default 5.0 S/m) ncond – n-contact conductivity. (float [S/m], default 50.0 S/m)
<loop>

Configuration of the self-consistent thermo-electric loop.

Attributes: skip-thermal – Skip thermal computations. The structure is assumed to have a constant temperature inittemp. This can be used to look for the threshold under pulse laser operation. (bool, default is ‘no’) tfreq – Number of electrical iterations per single thermal step. As temperature tends to converge faster, it is reasonable to repeat thermal solution less frequently. (int, default 6) inittemp – Initial temperature used for the first computation. (float [K], default 300 K) maxterr – Maximum allowed temperature error. (float [K], default 0.05 K) maxcerr – Maximum allowed current density error. (float [%], default 0.05 %)
<tmatrix>

Matrix configuration for the thermal solver.

Attributes: algorithm – Algorithm used for solving set of linear positive-definite equations. (‘cholesky’, ‘gauss’, or ‘iterative’, default is ‘cholesky’) itererr – Maximum allowed residual error for the iterative algorithm. (float, default 1e-08) iterlim – Maximum number of iterations for the iterative algorithm. (int, default 10000) logfreq – Number of iterations after which the progress is logged. (int, default 500)
<ematrix>

Matrix configuration for the electrical solver.

Attributes: algorithm – Algorithm used for solving set of linear positive-definite equations. (‘cholesky’, ‘gauss’, or ‘iterative’, default is ‘cholesky’) itererr – Maximum allowed residual error for the iterative algorithm. (float, default 1e-08) iterlim – Maximum number of iterations for the iterative algorithm. (int, default 10000) logfreq – Number of iterations after which the progress is logged. (int, default 500)
<diffusion>

Diffusion solver configuration.

Attributes: fem-method – Order of the finite-element method. (‘linear’ or ‘parabolic’, default is ‘parabolic’) accuracy – Required relative accuracy. (float [%], default 0.01 %) abs-accuracy – Required absolute minimal concentration accuracy. (float [cm-3], default 5e+15 cm-3) maxiters – Maximum number of allowed iterations before attempting to refine mesh. (int, default 20) maxrefines – Maximum number of allowed mesh refinements. (int, default 5) interpolation – Current density interpolation method name. (‘linear’ or ‘spline’, default is ‘spline’)
<gain>

Gain solver parameters.

Attributes: lifetime – Average carriers lifetime. This parameter is used for gain spectrum broadening. (float [ps], default 0.1 ps) matrix-elem – Value of the squared matrix element in gain computations. If it is not set it is estimated automatically. (float [eV×m0]) strained – Boolean attribute indicating if the solver should consider strain in the active region. If set to yes then there must a layer with the role “substrate” in the geometry. The strain is computed by comparing the atomic lattice constants of the substrate and the quantum wells. (bool, default is ‘no’)
<optical-root>

Parameters of the root-finding algorithm in optical solver.

Attributes: method – Root finding algorithm. (‘muller’, ‘broyden’, or ‘brent’, default is ‘muller’) tolx – Maximum change of the effective frequency parameter which is allowed for convergent solution. (float, default 1e-06) tolf-min – Minimum value of the determinant sufficient to assume convergence. (float, default 1e-07) tolf-max – Maximum value of the determinant required to assume convergence. (float, default 1e-05) maxstep – Maximum step in one iteration of root finding. Significant for the Broyden’s method only. (float, default 0.1) maxiter – Maximum number of root finding iterations. (int, default 500) alpha – Parameter ensuring sufficient decrease of determinant in each step (Broyden method only). (float, default 1e-07) lambda – Minimum decrease ratio of one step (Broyden method only). (float, default 1e-08) initial-range – Initial range size (Muller method only). (complex, default 0.001)
<output>

Settings for the solver output.

Attributes: optical-res-x – Number of points along the horizontal axis for the saved and plotted optical field. (int, default 800) optical-res-y – Number of points along the vertical axis for the saved and plotted optical field. (int, default 600)