Inputs and units
Python inputs
Input files are executable Python scripts: assignments and expressions run in
order, so define a value before using it. Comments start with #; parameter
names and string values are case sensitive. Values can be scalars, lists,
arrays or expressions supported by the selected model. For example:
T = 300.0 # float: temperature in K
subnumber_e = 3 # integer: electron subband count
mat_type = "Zincblende" # string: crystal system
Quantum_Regions = False # boolean: optional region selection
A shebang is useful when executing a script directly on Unix-like systems, but
is not required when loading it with aestimo -i. Python 3 reads UTF-8 source
by default. Define variables before expressions that use them.
A Python input defines attributes consumed by StructureFrom. The source
repository’s examples/ directory contains complete inputs, including
sample_1qw_barrierdope_ingaas.py.
Important fields include:
Field |
Meaning / input unit |
|---|---|
|
Temperature, K. |
|
Solver selection; |
|
Spatial grid spacing, nm. |
|
Upper limit for grid point count. |
|
Crystal system, e.g. |
|
Requested electron and hole subband counts. |
|
Applied electric field, V/m. |
|
Bias sweep start, end and step, V. |
|
Device area, cm². |
|
Optical generation rate, cm⁻³ s⁻¹. |
The modern seven-field material layer format is:
# thickness_nm, material, mole, mole_y, doping_cm3, doping_type, layer_type
material = [
[10.0, "GaAs", 0.0, 0.0, 0.0, "n", "w"],
[20.0, "AlGaAs", 0.3, 0.0, 1e17, "n", "b"],
]
This fragment only illustrates the layer format; start a calculation from a
complete input. w denotes a well and b a barrier. Alloy fractions and the
second composition field depend on the chosen material. Older notebooks can
use earlier formats and require adaptation.
The solver converts several input quantities to SI internally. Do not change input units to match internal arrays without checking the loader and model.
JSON projects
Use Save Project in the GUI to obtain the current JSON structure. The CLI
maps layers to material and translates these common fields:
JSON field |
Solver field |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Numeric solver index extracted from the selection string. |
Other device-specific options should follow a preset for the corresponding workflow. These tables describe common fields, not an exhaustive schema.
Using a GUI project from the CLI
The CLI accepts JSON, but its loader does not reproduce every GUI worker or
post-processing study. The table above describes the mappings actually made
by the CLI. For example, GUI fields field, sub_e, sub_h, bc_left and
bc_right are not automatically the Python fields Fapplied, subnumber_e,
subnumber_h and surface.
Use the GUI for its device-specific characterization and study workflows. For a controlled CLI calculation, start from a Python example or review the JSON-to-solver mapping and the model settings explicitly. Loading the same JSON is not a guarantee that both interfaces run the same calculation.
Numerical controls
The historical config.py module contains shared convergence, plotting and
output settings. Input attributes also provide controls for some device solvers;
not every control is read from the same location.
For Mode 10, dd_residual_tolerance, dd_current_atol and dd_current_rtol
control residual and spatial total-current acceptance. Read the
current-conservation audit before changing
these settings. Tightening a tolerance can cause a calculation to fail rather
than establish mesh convergence.
See Models and materials for the current scheme dispatcher and its restrictions, and Troubleshooting for convergence checks.