Repository navigation
Qucs-S enhanced v27.0.2
Qucs-S enhanced 27.0.2
Claude Code in Qucs-S: a dock where you talk with Claude Code about your
circuits, simulations and files - and where Claude can open, change and
simulate schematics in the window in front of you. One bundle per platform
is attached (macOS Apple Silicon and Intel, Linux x86_64 and arm64, Windows
x64 and arm64); SHA256SUMS.txt lists them. The macOS bundles are ad-hoc
signed, not notarised: right-click the app and choose Open on first launch.
No bundle includes ngspice: install it separately and point Application
Settings > Locations > Ngspice at it if it is not on PATH (on Windows at
ngspice_con.exe). Nor Claude Code: the dock needs the claude program
installed (claude.com/claude-code) and signed in once in a terminal.
New in 27.0.2
- Photodiodes under strong light, the nine pieces their physics lacked
(docs/feature_gaps/2026-10-20-claude-photodiode-circuit-and-slices.md
and the seven write-ups after it, 2026-10-20 and 2026-10-21):- A contact behind a circuit: V0 through a series resistance and a
load, or a bias tee's, a pad's capacitance across; its own voltage
solved with the carriers at rest, in time and small-signal (semi.Vc,
IL, VL, PL) - the bias collapse a large photocurrent causes. - A waveguide photodiode cut along its length into slices of equal
light, solved together: its input end saturates first (0.928 of its
pairs collected at 5 mW against the last slice's 0.970). - The light's heat in semi.H, its integral the contacts' I V and the
light absorbed exactly; a lattice temperature in the bands, the
saturation velocities and impact ionization; a direct gap's
absorption at the absorber's temperature. - The light and the carriers in turn: a Stationary step after a Mode
Analysis solved again until the pairs made settle - Franz-Keldysh in
the lit device's own field, its free carriers, band filling and
temperature (germanium on silicon at 5 mW absorbs 6 % less). - A heterojunction's carriers emitted over its step: thermionic
emission and tunnelling through its spike. - Hot carriers: the carriers' temperature from an energy balance drives
their mobility, so carriers entering a high field overshoot their
saturation velocity; transferred electrons' velocity falls past its
peak (semi.Tn, semi.Tp). - Distortion: a Harmonics derived value, a global's harmonics over the
last whole periods of a step in time, HDn in dBc and THD - a
photodiode's compression under strong modulated light. - Noise: the semiconductor's Noise option, each frequency step's noise
by the impedance field method - the carriers' diffusion, the pairs
made and recombined, the ionizations: a resistor's 4kT G to every
digit, a lit photodiode's 2q I, an APD's excess noise McIntyre's
(semi.Sn_, in_, Fshot_, SnL_ through a load, NEP_). - An avalanche diode with velocity saturation past its old wall: the
18 October round's diode found no solution past -22.7 V, now it
sweeps to -50 V, 1.7 V from breakdown, its multiplication McIntyre's
(1.3614 against 1.3687 at -40 V). An edge whose two triangles'
cotangents all but cancel no longer gives impact ionization a current
its saturated mobilities made up.
- A contact behind a circuit: V0 through a series resistance and a
- The mode analysis: a Mode Overlap - a mode with another of the study, a
Gaussian beam or a mode from a file, moved by an offset (its power
overlap and loss in dB; a fibre against Marcuse's Gaussian 0.99388) -
and a Mode Profile export, the six components on a grid as MATLAB .mat,
NumPy .npz or CSV, also from a 2D plot group's menu
(docs/feature_gaps/2026-10-20-claude-mode-overlap-and-profiles.md). - A process flow for the multiphysics models
(docs/feature_gaps/2026-10-20-claude-process-flow.md): a Process Flow
geometry runs its steps on a 2D cross-section - substrate, epitaxial
stack, deposit, etch, planarize, strip, selective epitaxy, fill - with
masks from a layout's layers along a cut, and leaves its regions for
the materials and physics; then its dopants: implants through the
topography (Pearson profiles), anneals, oxidation, III-V zinc diffusion
and well intermixing - a semiconductor's doping and a quantum well's
bands from the flow. - Quantum wells' coupled excitons: with k.p bands the subbands followed
along k (at high fields their TE line was lost), the electron and hole
drawn together - the Lumerical electro-absorption modulator's measured
TE transmission met to 1 to 4 %
(docs/feature_gaps/2026-10-20-claude-coupled-exciton-strength.md). - Diagrams: a trace hidden, the Data tab's Shows box's last item - kept
with its style, not drawn, nor in the legend or the axes' limits; and
for Claude, add_trace and edit_trace's "hidden"
(docs/feature_gaps/2026-10-20-claude-hide-a-trace.md). - Closing a sheet just edited no longer calls into it half-closed; keys
Claude sends to a field reach it while its window is still being
activated. - Quantum wells: excitons of the subbands coupled - the spectrum's Exciton
"Coupled subbands (k space)": every electron-hole subband pair on one
in-plane k grid, the Coulomb attraction within and between the pairs,
one Hamiltonian's bound states and continuum - the 2s and higher, the
continuum's own enhancement, a dark (indirect) pair's exciton mixing
with a bright one's. Parabolic and 4x4/6x6 k.p bands. The exact
GaAs/AlGaAs heavy-hole binding approached as subbands are coupled
(20 nm: 6.894 meV with 4 states, exact 6.911); one pair's binding and
line within 0.02 % of a real-space solution of the same exciton
(docs/feature_gaps/2026-10-19-claude-coupled-subband-excitons.md).
With k.p bands the heavy and light holes mix in the attraction too:
each valence spinor at each k, its parts in channels of the exciton's
angular momentum, so the heavy-hole exciton has no TM line (0.0035 of
TE, 0.18 before) and its binding does not depend on the bands' phases;
the continuum widened past the line's width is warned of, with
"excitonsize" to set the solve's size, its ripple quoted at its peaks
(docs/feature_gaps/2026-10-19-claude-coupled-exciton-hh-lh-mixing.md,
docs/feature_gaps/2026-10-20-claude-coupled-exciton-a4ff84a-check.md).
A reviewer's independent real-space reference agrees: the hh1
exciton's binding to 0.02 meV, the lh1 line to 0.1 meV. - Quantum wells' default plots: one set per kind of study, none for a
study with plot groups of its own; a Valence Bands study's own E(k)
("The Valence Bands", qw.Ev* in eV), where it was given a spectrum's. - The Multiphysics panel's expressions offer the names they may use as
they are typed: "emw." lists the mode analysis's variables with their
units and what they are, a plot's the globals too (their values where
the study has one solution), Ctrl+Space every name
(docs/feature_gaps/2026-10-19-claude-expression-completion.md). - Claude in Qucs-S: its tools lighter and quicker, by what the dock's
sessions did (docs/feature_gaps/2026-10-19-claude-mcp-efficiency.md,
docs/feature_gaps/2026-10-19-claude-mcp-efficiency-check.md):- The tools in every turn follow what is open: a model's tools where a
model is open or its project has one (sessions of a model searched for
them three times or more first), a schematic's wiring where one with
parts is; the documents' and menus' tools always; get_state says
which. - The diagram tools half their size, a kind of diagram's own options
folded (their names said, the whole in describe_tool); the
multiphysics format's properties a line each, a third shorter. - A dialog that waits says what it reads, and set_dialog answers it at
once (four turns before); an action not named as it is gets the
nearest named; a text answer reaches Claude as it is, not escaped in
JSON. - The Multiphysics panel through the tools: set_ui picks a model tree's
row by its number or path and commits the field it sets; send_input's
keys reach the list of names open below a field (and a field's own
Ctrl+A comes before the window's Select All); get_ui and set_ui read
and choose the list's rows, and the pictures show it
(docs/feature_gaps/2026-10-19-claude-coupled-line-rf-check.md). - fem_evaluate's 'point' picks a Valence Bands study's k by number, and
a point past the last is refused, not answered with the last;
fem_plot clears an older plot group's diagram from the group's
display and says so; a brief batch says which model fem_model saved,
and what each other call made or set
(docs/feature_gaps/2026-10-20-claude-coupled-exciton-a4ff84a-check.md). - send_input's typed characters reach a completion list's field with
the list open, whether or not the window has the focus. - A new document's first edit is counted like the others: get_state
says who made it, and a conversation is told when the user changes a
document it made; a sheet's first edit after it is opened, and its
reading again when changed on disk, too.
- The tools in every turn follow what is open: a model's tools where a
- The hunt of 19 October's findings fixed
(docs/bug_hunts/2026-10-19-apd-round-and-ci.md,
docs/feature_gaps/2026-10-19-claude-apd-hunt-fixes.md): impact
ionization near a junction no longer counts a hole current's rounding as
pairs (a near-breakdown sweep now reaches -51.4 V on every mesh, the
multiplication the same on every mesh); a sweep that stops goes on from
its next point when solved again; closing a model while it meshes or
sets up a solve takes a fraction of a second, not ten; a temperature
sweep no longer stops where its last point's solution does not carry;
the Lumerical import's counts checked; two examples' settings and one's
refinement corrected. - Settings: the File Types table, the Locations lists and the Contents
list take the dialog's height. - Avalanche photodiodes and breakdown
(docs/feature_gaps/2026-10-18-claude-lumerical-apd.md):- The way to the contacts' voltages starts each step on the line of the
last two solutions and adapts its steps: the reviewer's 34-point APD
sweep to breakdown in 39 s, 1401 s with the build before; the same
currents. - A sweep cancelled, or a point of it without a solution, keeps the
points before, and says where and why. - While it solves, the model tab (and Claude's fem_solve and
fem_describe) says its point of the sweep, the contact's voltage and
step, and Newton's step and residual. - Impact Ionization's driving field may be the field, each carrier's
quasi-Fermi gradient or the field along its current: by the field, a
steep doping's field at rest ionized and broke the reviewer's model
down early. semi.In and semi.Ip are the most of every field line's,
with where (semi.xion, semi.yion); from the equations, the impact
current semi.Iion, the pairs made otherwise semi.Igen, their
multiplication semi.Mion and the impact pairs at a point semi.Gion. - The Lumerical APD project imported: dark current 0.95 to 1.16 of the
Lumerical results from -4.5 to -9.5 V, breakdown at -9.9 V (the
Lumerical run past -9.98), photocurrent 1.04 to 1.16, gain 9.37 against 9.91 at
-9 V; bandwidth 31 GHz at gain 13 with the quasi-Fermi or along-current
field (Lumerical about 30 GHz at 12). - A small signal's first frequency right with Fermi-Dirac statistics and
saturated mobilities (it read Boltzmann's degeneracy).
- The way to the contacts' voltages starts each step on the line of the
- Photodetectors (docs/feature_gaps/2026-10-18-claude-lumerical-vertical-photodetector.md):
Surface Recombination's Apply to majority carriers: off at an ohmic
contact, its minority carriers recombine at the surface's velocity, the
majority held - a contact of finite recombination velocity. The
Lumerical CHARGE script export writes the switch, and the import reads it. The
generation's help says how a frequency step modulates it. Two faults of
damaged Lumerical MQW projects fixed: a crash (a stored result's sizes
past 2^64) and a hang (a layer count of two billion). - Lumerical: a model exported as a CHARGE script and read back is the
model again - its graded dopings, its own models and recombination, its
surface recombination (with its temperature model) and generation, its
parameters, functions and mesh: the reviewer's photodiode's dark current
within 0.1 % of the model's, where it came back 366 times. The script
writes surface recombination and imported generation as native Lumerical
objects, and a project's surface recombination of temperature is read
(docs/feature_gaps/2026-10-18-claude-update-check-2e349c6.md). - Transmission lines
(docs/feature_gaps/2026-10-18-claude-coupled-line-rf-wishlist.md):- Coupled lines: a Line Parameters node of several signal terminals
gives their C, C0, L, R and G matrices per metre and their modes - a
symmetric pair's even and odd (Z0, n_eff, attenuation, both effective
permittivities, Zdiff and Zcm), other lines' by eigen-decomposition
with their voltages, currents and characteristic impedance matrix.
Exported as a 2N-port Touchstone file (a pair's mixed-mode too), as
SPICE sections with their mutual L, R, C and G, or as a Qucs coupled
line part. A ground-signal-signal-ground pair's whole table from one
node, where the matrices were reduced by hand. - A single line's n_eff and quasi-static effective permittivity (C/C0)
beside (beta/k0)^2; R per metre shown in Ohm/m. - Magnetic fields' coils have roles - fixed current, fixed voltage,
floating, grounded - and the coils' matrix is given reduced against a
reference coil. - Claude's tools: fem_model new makes a relative path's folders and
leaves no tab after a failed write; fem_describe's format of one group
is that group's text alone; fem_evaluate reads a Line Parameters
node's values (lp1.Z0_odd, or lp1 for all of them); a model's 1D plot
dataset is judged stale by the model's solve, not by its data
display's diagrams; the mixed-mode Touchstone file says its option
line's R is the single-ended reference
(docs/feature_gaps/2026-10-19-claude-coupled-line-rf-check.md).
- Coupled lines: a Line Parameters node of several signal terminals
- Quantum wells (docs/feature_gaps/2026-10-18-claude-lumerical-mqw-benchmarks-round2.md):
a Valence Bands step finds every state bound in the wells too (Every
bound state too), and a graph of qw.Ev* draws each state found - a
Lumerical MQW project imported asks for both: its three-well wurtzite
benchmark gives the paper's nine subbands with nothing set by hand. - Semiconductors: a heterojunction's band step abrupt at the nodes by
default (a toy laser's current no longer changes with its mesh by tens
of percent); "Graded over an element" kept as an option. Incomplete
ionization's small-signal capacitance symmetric (the dopants' ions in
each continuity's store), its transient's contact currents conserved.
A heterojunction meshed coarser than a Debye length where its current
crosses it is said, the current then the mesh's; a contact's charge
described as the field's flux at it, not the junction's
(docs/feature_gaps/2026-10-17-claude-update-check-a690d27.md).
A Layered Region's columns graded toward a material's side walls - a
buried active region's, an oxide aperture's edge -: the current no
longer set by the lateral element size (a toy laser 57.8 uA on 200 nm
columns and 35.6 on 50, now 29.8 and 29.5; the VCSEL example 1.38 mA at
1.9 V, where 100 nm columns gave 1.42); the size at the walls a new
property (docs/feature_gaps/2026-10-18-claude-lateral-columns-at-walls.md). - The viewers drawn by the CPU by default; the GPU an opt-in, viewer by
viewer, on a new tab, Settings... > Viewers (the PDF viewer, the Markdown
preview, the layout viewer, the multiphysics Graphics view)
(docs/feature_gaps/2026-10-17-claude-viewers-tab.md):- The GPU through Qt's RHI: Metal on macOS, Direct3D 11 on Windows,
OpenGL elsewhere; no OpenGL modules used
(docs/feature_gaps/2026-10-17-claude-rhi-viewers.md). - Chosen, the GPU draws as the CPU does: the PDF viewer's pixels the
CPU's, the Markdown preview's too (a few in ten thousand apart at
150 %), the layout viewer's within a pixel. - A million layout shapes panned in 6 ms at most; a layout's layer shown
or hidden at once on the GPU (4 ms where the cell was flattened again). - With a viewer on the GPU, the window no longer flashes as the first
of them opens (docs/feature_gaps/2026-10-18-claude-gpu-window-flash.md).
- The GPU through Qt's RHI: Metal on macOS, Direct3D 11 on Windows,
- The program starts on a Mac before macOS 15.5 again (it stopped at
launch, missing an Accelerate function of 15.5's); Accelerate's Cholesky
on every macOS (docs/feature_gaps/2026-10-18-claude-macos-start-before-15-5.md). - Zooming made smooth:
- The PDF viewer: a pinch or a Ctrl-scroll zooms from the tiles at hand,
the page sharp a moment after; the toolbar's and the menu's steps
eased, the point under the pointer kept
(docs/feature_gaps/2026-10-17-claude-pdf-smooth-zoom.md). - A data display of many curves zooms without choking: a page of 60
curves of 2,000 points from 118 ms a step to 20.
- The PDF viewer: a pinch or a Ctrl-scroll zooms from the tiles at hand,
- Markdown: a table right under a line of text (a "Label:" line) is a
table, as on GitHub - the Claude Code dock's replies too
(docs/feature_gaps/2026-10-18-claude-panel-table-after-text.md). - The File Browser: a right click on entries chosen keeps them all chosen,
its menu's Copy, Copy Paths and Move to Trash for every one of them. - The Claude Code dock: Cmd+C and Cmd+A copy and choose the conversation's
text (they went to the document behind it - and Cmd+X, Delete and
Backspace in any text one reads cut or deleted a schematic's chosen parts
out of sight: now nothing)
(docs/feature_gaps/2026-10-18-claude-copy-keys-and-chosen-entries.md);
the Python console's reply to a line typed as it starts no longer
carries its banner. - Third-party names written as adjectives, not possessives, and marked at
their first use, as their owner's guidelines ask
(docs/feature_gaps/2026-10-18-claude-trademark-adjectives-and-marks.md). - The PDF viewer: selecting text no longer stops the program for seconds
(11.5 s on a paper's first page, now 21 ms)
(docs/feature_gaps/2026-10-17-claude-pdf-selection-hang.md). - An update check's items fixed, each reproduced first: a scan's log says
its frequencies' count, its cells' solver chosen on their size, a plot of
a field the polarization leaves nought is said, the constants listed
with their units, the layout viewer's drawn counts on the GPU. - Eigen's sparse LU (Linux, Windows, older macOS) given a matrix whose
pattern had changed analyses it again: it wrote past its arrays. - Three layout tests that failed on a Retina display pass; a layer's
swatch whole at any screen ratio. - The hunt of 17 October's findings fixed
(docs/bug_hunts/2026-10-17-zoom-and-viewers.md): a PDF zoom beside a
page no longer jumps; a graph in an SVG, PDF or EPS export keeps its
round caps and every point; selecting text on a PDF of many labels
quicker; the console tool's interrupt answers at once when nothing runs. - A data display's lines no longer go missing on a Retina screen when
zoomed in (docs/feature_gaps/2026-10-17-claude-dpl-zoom-retina.md). - The hunt of 18 October's findings fixed
(docs/bug_hunts/2026-10-18-rhi-and-retina.md,
docs/feature_gaps/2026-10-18-claude-rhi-hunt-fixes.md):- A schematic's or data display's zoom keeps the point under the
pointer (it moved up to 6.5 points a step), and a touchpad scrolls it
at any zoom. - The GPU viewers lighter at full screen: a layout's pan 13 ms to 9, the
Graphics view's 30 to 19; selecting text in the Markdown preview on
the GPU 6.9 ms a step to 1.1. - Later PDF pages and the Markdown preview at 150 % as sharp on the GPU
as on the CPU; the layout's outlines where the CPU draws them. - A GPU viewer that cannot draw falls back to the CPU, where it stayed
blank; QUCS_GPU=0 keeps the Graphics view on the CPU from its menu and
both settings dialogs; its wheel follows the Mouse wheel setting, and
a trackpad pans it. - A crash of the Graphics view on the GPU, showing rays, fixed.
- A schematic's or data display's zoom keeps the point under the
Full Changelog: v27.0.1...v27.0.2