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, pot_solver=None, solver_params=None, out_path_digits=3)
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, pot_solver=None, solver_params=None, out_path_digits=3)
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 (string, SubMesh or list) – Submesh corresponding to the dot region, or string or list of strings labeling region of the device (Gmsh physical groups), or list of tuples defining two corners of a box where the dot is defined and the Schrodinger calculation will be performed. If None, use 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.
pot_solver (Solver object or None, optional) – Solver that will solve for the electric/confinement potential. Possible options are the Solver objects from the
poisson
,schrodinger_poisson
, orquantum_well
modules. If None, the non-linear PoissonSolver is used.solver_params (SolverParams object, optional) – Solver parameters for lever arm 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.
- class qtcad.device.leverarm.SolverParams(inp_dict=None)
Bases:
SolverParams
Parameters to pass to a lever arm solver.
- Attributes:
pot_solver_params (SolverParams object) – Parameters to pass to the solver that solves for the electric/confinement potential.
schrod_solver_params (SolverParams object) – Parameters to pass to the Schrodinger solver.
pot_args (list) – Arguments to pass to the solver that solves for the electric/confinement potential.
pot_kwargs (dict) – Keyword arguments to pass to the solver that solves for the electric/confinement potential.
- __init__(inp_dict=None)
Instantiate the SolverParams object.
- Parameters:
inp_dict (dict, optional) – Dictionary specifying certain solver parameters to be used instead of their default values.