PLaSK library
|
Public Member Functions | |
__init__ (self, name='') | |
get_lam (self) | |
get_vert_optical_determinant (self, vlam) | |
plot_vert_optical_determinant (self, vlams, **kwargs) | |
Public Member Functions inherited from meta.shockley.threshold.ThresholdSearch | |
reconnect (self) | |
on_initialize (self) | |
on_invalidate (self) | |
compute_thermoelectric (self) | |
step (self, volt, save=False) | |
get_optical_determinant (self, lam) | |
get_junction_concentrations (self, interpolation='linear') | |
get_junction_gains (self, axis=None, interpolation='linear') | |
get_gain_spectrum (self, lams, pos=0., junction=0) | |
plot_junction_concentration (self, bounds=True, interpolation='linear', label=None, **kwargs) | |
plot_junction_gain (self, axis=None, bounds=True, interpolation='linear', label=None, **kwargs) | |
plot_gain_spectrum (self, lams, pos=0., junction=0, comp=None, **kwargs) | |
plot_optical_determinant (self, lams, **kwargs) | |
compute (self, save=True, invalidate=False, group='ThresholdSearch', stepsave=False) | |
save (self, filename=None, group='ThresholdSearch', optical_resolution=None) | |
get_optical_field (self, resolution=None) | |
get_optical_field_horizontal (self, resolution=None, interpolation='linear') | |
get_optical_field_vertical (self, pos=0.01, offset=0.5, resolution=None, interpolation='linear') | |
plot_optical_field (self, resolution=None, geometry_color='0.75', geometry_alpha=0.35, geometry_lw=1.0, **kwargs) | |
plot_optical_field_horizontal (self, resolution=None, bounds=True, interpolation='linear', **kwargs) | |
plot_optical_field_vertical (self, pos=0.01, offset=0.5, resolution=None, interpolation='linear', **kwargs) | |
Public Member Functions inherited from meta.shockley.thermoelectric.ThermoElectric | |
load_xpl (self, xpl, manager) | |
get_total_current (self, nact=0) | |
get_temperature (self) | |
get_voltage (self) | |
get_vertical_voltage (self, at=0) | |
get_junction_currents (self, refine=16, interpolation='linear') | |
plot_temperature (self, geometry_color='0.75', mesh_color=None, geometry_alpha=0.35, mesh_alpha=0.15, geometry_lw=1.0, mesh_lw=1.0, **kwargs) | |
plot_voltage (self, geometry_color='0.75', mesh_color=None, geometry_alpha=0.35, mesh_alpha=0.15, geometry_lw=1.0, mesh_lw=1.0, **kwargs) | |
plot_vertical_voltage (self, at=0., **kwargs) | |
plot_junction_current (self, refine=16, bounds=True, interpolation='linear', label=None, **kwargs) | |
Public Member Functions inherited from plask::Solver | |
bool | initCalculation () |
This should be called on beginning of each calculation method to ensure that solver will be initialized. | |
Solver (const std::string &name="") | |
Construct uninitialized solver. | |
virtual | ~Solver () |
Virtual destructor (for subclassing). Do nothing. | |
virtual void | loadConfiguration (XMLReader &source, Manager &manager) |
Load configuration from given source . | |
void | parseStandardConfiguration (XMLReader &source, Manager &manager, const std::string &expected_msg="solver configuration element") |
Load standard configuration (geometry, mesh) tags from source . | |
bool | isInitialized () |
Check if solver is already initialized. | |
void | invalidate () |
This method should be and is called if something important was changed: calculation space, mesh, etc. | |
virtual std::string | getClassName () const =0 |
Get name of solver. | |
std::string | getId () const |
Get solver id. | |
std::string | getName () const |
virtual std::string | getClassDescription () const |
Get a description of this solver. | |
template<typename ArgT = double, typename ValT = double> | |
DataLog< ArgT, ValT > | dataLog (const std::string &chart_name, const std::string &axis_arg_name, const std::string &axis_val_name) |
template<typename ArgT = double, typename ValT = double> | |
DataLog< ArgT, ValT > | dataLog (const std::string &axis_arg_name, const std::string &axis_val_name) |
template<typename ... Args> | |
void | writelog (LogLevel level, std::string msg, Args &&... params) const |
Log a message for this solver. | |
Public Attributes | |
dlam | |
lpm | |
lpn | |
Public Attributes inherited from meta.shockley.threshold.ThresholdSearch | |
diffusion | |
gain | |
optical | |
threshold_voltage | |
threshold_current | |
modeno | |
ivb | |
vtol | |
maxiter | |
quick | |
optical_resolution | |
skip_thermal | |
Public Attributes inherited from meta.shockley.thermoelectric.ThermoElectric | |
thermal | |
electrical | |
tfreq | |
Static Public Attributes | |
thermal = attribute(_Thermal.__name__+"()") | |
electrical = attribute(_Electrical.__name__+"()") | |
diffusion = attribute(_Diffusion.__name__+"()") | |
gain = attribute(_Gain.__name__+"()") | |
optical = attribute("EffectiveFrequencyCyl()") | |
float | tfreq = 6.0 |
vmin = None | |
vmax = None | |
int | vtol = 1e-5 |
int | maxiter = 50 |
maxlam = attribute("optical.lam0") | |
float | dlam = 0.02 |
int | lpm = 0 |
int | lpn = 1 |
tuple | optical_resolution = (800, 600) |
bool | skip_thermal = False |
Static Public Attributes inherited from meta.shockley.threshold.ThresholdSearch | |
float | tfreq = 6.0 |
vmin = None | |
vmax = None | |
tuple | optical_resolution = (800, 600) |
int | vtol = 1e-5 |
bool | quick = False |
int | maxiter = 50 |
bool | skip_thermal = False |
Protected Member Functions | |
_optargs (self) | |
_parse_xpl (self, tag, manager) | |
_get_info (self) | |
Protected Member Functions inherited from meta.shockley.threshold.ThresholdSearch | |
_get_lam (self) | |
_quickstep (self, arg) | |
_get_in_junction (self, func, axis=None) | |
_plot_in_junction (self, func, axis, bounds, kwargs, label) | |
Protected Member Functions inherited from meta.shockley.thermoelectric.ThermoElectric | |
_read_attr (self, tag, attr, solver, type=None, pyattr=None) | |
_parse_fem_tag (self, tag, manager, solver) | |
_save_thermoelectric (self, h5file, group) | |
_plot_hbounds (self, solver) | |
_get_defines_info (self) | |
Protected Member Functions inherited from plask::Solver | |
virtual void | onInitialize () |
Initialize the solver. | |
virtual void | onInvalidate () |
This method is called by invalidate() to reset stored values. | |
Protected Attributes | |
_Optical | |
Protected Attributes inherited from meta.shockley.threshold.ThresholdSearch | |
_invalidate | |
_sn | |
_max_concentration | |
_max_gain | |
_quickscale | |
Protected Attributes inherited from plask::Solver | |
bool | initialized |
true only if solver is initialized | |
Static Protected Attributes | |
_Thermal = thermal.static.StaticCyl | |
_Electrical = electrical.shockley.ShockleyCyl | |
_Diffusion = electrical.diffusion.DiffusionCyl | |
_Gain = gain.freecarrier.FreeCarrierCyl | |
dict | _OPTICAL_ROOTS = {'optical-root': 'root', 'optical-stripe-root': 'stripe_root'} |
Static Protected Attributes inherited from meta.shockley.threshold.ThresholdSearch | |
dict | _OPTICAL_ROOTS = {} |
_Diffusion = None | |
_Gain = None | |
_Optical = None | |
str | _optarg = 'lam' |
str | _lam0 = 'lam0' |
Static Protected Attributes inherited from meta.shockley.thermoelectric.ThermoElectric | |
_Thermal = None | |
_Electrical = None | |
Properties | |
outTemperature = property(lambda self: self.thermal.outTemperature, doc=_Thermal.outTemperature.__doc__) | |
outHeatFlux = property(lambda self: self.thermal.outHeatFlux, doc=_Thermal.outHeatFlux.__doc__) | |
outThermalConductivity | |
outVoltage = property(lambda self: self.electrical.outVoltage, doc=_Electrical.outVoltage.__doc__) | |
outCurrentDensity | |
outHeat = property(lambda self: self.electrical.outHeat, doc=_Electrical.outHeat.__doc__) | |
outConductivity = property(lambda self: self.electrical.outConductivity, doc=_Electrical.outConductivity.__doc__) | |
outCarriersConcentration | |
outGain = property(lambda self: self.gain.outGain, doc=_Gain.outGain.__doc__) | |
outLightMagnitude = property(lambda self: self.optical.outLightMagnitude, doc=_doc.outLightMagnitude) | |
outLoss = property(lambda self: self.optical.outLoss, doc=_doc.outLoss) | |
outWavelength = property(lambda self: self.optical.outWavelength, doc=_doc.outWavelength) | |
outRefractiveIndex = property(lambda self: self.optical.outRefractiveIndex, doc=_doc.outRefractiveIndex) | |
outLightE = property(lambda self: self.optical.outLightE, doc=_doc.outLightE) | |
Additional Inherited Members | |
Static Protected Member Functions inherited from meta.shockley.thermoelectric.ThermoElectric | |
_iter_levels (geometry, mesh, *required) | |
Solver for threshold search of semiconductor laser. 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 computations can be executed using `compute` method, after which the results may be save to the HDF5 file with `save` or presented visually using ``plot_...`` methods. If ``save`` parameter of the :meth:`compute` method is *True* the fields are saved automatically after the computations. The file name is based on the name of the executed script with suffix denoting either the launch time or the identifier of a batch job if a batch system (like SLURM, OpenPBS, or SGE) is used.
Definition at line 749 of file threshold.py.
meta.shockley.threshold.ThresholdSearchCyl.__init__ | ( | self, | |
name = '' |
|||
) |
Reimplemented from meta.shockley.threshold.ThresholdSearch.
Definition at line 876 of file threshold.py.
|
protected |
Reimplemented from meta.shockley.threshold.ThresholdSearch.
Definition at line 974 of file threshold.py.
|
protected |
Reimplemented from meta.shockley.threshold.ThresholdSearch.
Definition at line 917 of file threshold.py.
|
protected |
Reimplemented from meta.shockley.threshold.ThresholdSearch.
Definition at line 920 of file threshold.py.
meta.shockley.threshold.ThresholdSearchCyl.get_lam | ( | self | ) |
Get approximate wavelength for optical computations. This method returns approximate wavelength for optical computations. By default if browses the wavelength range starting from :attr:`maxlam`, decreasing it by :attr:`dlam` until radial mode :attr:`lpn` is found. You can override this method or set it to a a fixed value to use custom mode approximation. Example: >>> solver = ThresholdSearchCyl() >>> solver.get_lam = 980. >>> solver.compute()
Reimplemented from meta.shockley.threshold.ThresholdSearch.
Definition at line 885 of file threshold.py.
meta.shockley.threshold.ThresholdSearchCyl.get_vert_optical_determinant | ( | self, | |
vlam | |||
) |
Function computing ‘vertical determinant’ of the optical solver. Args: vlam (float or array): ‘Vertical wavelength’ to compute the vertical determinant for (nm). Returns: float or array: Optical vertical determinant.
Definition at line 940 of file threshold.py.
meta.shockley.threshold.ThresholdSearchCyl.plot_vert_optical_determinant | ( | self, | |
vlams, | |||
** | kwargs | ||
) |
Function plotting ‘vertical determinant’ of the optical solver. Args: vlams (array): ‘Vertical wavelengths’ to plot the determinant for (nm). **kwargs: Keyword arguments passed to the plot function.
Definition at line 959 of file threshold.py.
|
staticprotected |
Definition at line 771 of file threshold.py.
|
staticprotected |
Definition at line 770 of file threshold.py.
|
staticprotected |
Definition at line 772 of file threshold.py.
|
protected |
Definition at line 878 of file threshold.py.
|
staticprotected |
Definition at line 774 of file threshold.py.
|
staticprotected |
Definition at line 769 of file threshold.py.
|
static |
Definition at line 801 of file threshold.py.
|
static |
Definition at line 841 of file threshold.py.
meta.shockley.threshold.ThresholdSearchCyl.dlam |
Definition at line 932 of file threshold.py.
|
static |
Definition at line 798 of file threshold.py.
|
static |
Definition at line 804 of file threshold.py.
|
static |
Definition at line 848 of file threshold.py.
meta.shockley.threshold.ThresholdSearchCyl.lpm |
Definition at line 933 of file threshold.py.
|
static |
Definition at line 855 of file threshold.py.
meta.shockley.threshold.ThresholdSearchCyl.lpn |
Definition at line 934 of file threshold.py.
|
static |
Definition at line 835 of file threshold.py.
|
static |
Definition at line 838 of file threshold.py.
|
static |
Definition at line 807 of file threshold.py.
|
static |
Definition at line 862 of file threshold.py.
|
static |
Definition at line 868 of file threshold.py.
|
static |
Definition at line 810 of file threshold.py.
|
static |
Definition at line 795 of file threshold.py.
|
static |
Definition at line 825 of file threshold.py.
|
static |
Definition at line 818 of file threshold.py.
|
static |
Definition at line 832 of file threshold.py.
|
static |
Definition at line 786 of file threshold.py.
|
static |
Definition at line 785 of file threshold.py.
|
static |
Definition at line 782 of file threshold.py.
|
static |
Definition at line 788 of file threshold.py.
|
static |
Definition at line 784 of file threshold.py.
|
static |
Definition at line 777 of file threshold.py.
|
static |
Definition at line 793 of file threshold.py.
|
static |
Definition at line 789 of file threshold.py.
|
static |
Definition at line 790 of file threshold.py.
|
static |
Definition at line 792 of file threshold.py.
|
static |
Definition at line 776 of file threshold.py.
|
static |
Definition at line 779 of file threshold.py.
|
static |
Definition at line 781 of file threshold.py.
|
static |
Definition at line 791 of file threshold.py.