qtcad.device.leverarm module
Tool to calculate the lever arm of a gate or lead.
- class qtcad.device.leverarm.Solver(d, label, voltages, dot_region=None, in_path=None, out_path=None, poisson_params=None, schrod_params=None, out_path_digits=3, geo_file=None)
Bases:
Solver
This class provides a convenient way to get the lever arm of a gate or lead.
- Attributes:
label (string) – Name of an object or list of objects for which we want the lever arm. The object can correspond either to a boundary (e.g., a gate or Schottky boundary) at which a potential \(\varphi_\mathrm{bias}\) is applied, or a region in which the Fermi level is shifted by \(-e\varphi_\mathrm{bias}\).
V (1D array) – Bias voltages.
energies (2D array) – Energy eigenvalues for each bias configuration. First index runs over biases and second index over the different eigenenergies.
- __init__(d, label, voltages, dot_region=None, in_path=None, out_path=None, poisson_params=None, schrod_params=None, out_path_digits=3, geo_file=None)
Constructor of the lever arm Solver class.
After construction of the solver object, the non-linear Poisson and Schrödinger’s equations are solved for the specified range of applied potentials.
- Parameters:
d (device object) – Device for which we want to find the lever arm of some gate or lead.
label (string) – Name of an object or list of objects for which we want the lever arm. The object can correspond either to a boundary (e.g., a gate or Schottky boundary) at which a potential \(\varphi_\mathrm{bias}\) is applied, or a region in which the Fermi level is shifted by \(-e\varphi_\mathrm{bias}\).
voltages (1d array) – Array of voltages at which the energies will be calculated.
dot_region (list or None, optional) – List of region labels forming the submesh where the dot is defined and the Schrodinger calculation will be performed. Each label must be a string. If None, uses the entire device.
in_path (string, optional) – Path to the solution to Poisson’s equation (phi, in hdf5 format) for the first applied voltage.
out_path (string, optional) – Path where solutions to Poisson’s equation will be saved.
poisson_params (SolverParams object, optional) – Solver parameters for Poisson solver.
schrod_params (SolverParams object, optional) – Solver parameters for Schrodinger solver.
out_path_digits (int, optional) – Number of digits on voltage value in output path name
geo_file (string or None, optional) – path to .geo_unrolled file containing the geometry of the problem. If geo_file is None then Poisson’s equation is solved over the mesh saved in
d
, and the mesh is static. Ifgeo_file
is not None, adaptive meshing will be used.
Note
The eigenenergies for each bias configuration of the sweep are stored in the
energies
attribute of thisSolver
object.
- solve(state=0, degree=1)
Polynomial fit of energies - Lever arm.
- Parameters:
state (int) – Index of energy eigenvalue we want to fit. Default is ground state.
degree (int) – Degree of polynomial fit. Default is 1 - linear fit.
- Returns:
1d array – Polynomial fit. Coefficients of fit given in decreasing order for degree. Units employed for the fit are J for energy and V for voltage.