Repository navigation
Releases: javaNoviceProgrammer/Qucs-S_Enhancements
Release list
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 li...
Qucs-S enhanced v27.0.1
Qucs-S enhanced 27.0.1
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.1
- The multiphysics solver, faster
(docs/feature_gaps/2026-10-16-claude-fem-solver-sparse-lu.md):- Sparse direct factorizations on Apple's Accelerate on macOS: an OLED
model of 681,054 unknowns from 28.2 s to 4.7 s a wavelength, the VCSEL
laser example from 74.6 s to 19.8 s; Eigen's elsewhere and on small
models. Accelerate's LU on macOS 26 and later, its Cholesky from 15.5. - Multiphysics > Settings...: the sparse solver (Automatic, Eigen or
Accelerate) and the Graphics view's GPU; each solve's log names the
solver that ran. - A Parametric Sweep's points solved at once (Points at once): a
grating's nine angles 0.18 s where they took 1.08. - Models a solver cannot determine are refused and said, where they
were "solved" into nonsense: a part left floating is named, a matrix
singular to rounding is caught by its condition
(docs/feature_gaps/2026-10-17-claude-solver-caveats.md). - A library material's semiconductor model parameters (Auger's, impact
ionization's, band gap narrowing's...) are no longer said "not read"
by a solve - a library Silicon gave 59 such warnings - and fem_edit
sets them (docs/feature_gaps/2026-10-17-claude-material-keys-warning.md).
- Sparse direct factorizations on Apple's Accelerate on macOS: an OLED
- Waves and optics:
- Native point sources in Electromagnetic Waves, Frequency Domain: a
Point Dipole and a Line Current, with the Purcell factor and the power
each port takes (the OLED model 1.22 s a wavelength, 4.08 s before). - The array-scanning method for periodic structures: a unit cell solved
across its Brillouin zone for a single source's response, Rayleigh
anomalies handled (docs/feature_gaps/2026-10-16-claude-array-scanning-method.md). - A full-vector axisymmetric eigenfrequency solver (Electromagnetic
Waves, Eigenfrequency), and a VCSEL's threshold and light-current curve
from it with the semiconductor's carriers and the quantum wells' gain. - The material library's optics checked against the refractiveindex.info
database: silicon's index refitted (its old Sellmeier had a pole in its
range), the III-Vs given absorption and dispersion.
- Native point sources in Electromagnetic Waves, Frequency Domain: a
- The GPU (Settings... > Appearance > Drawing: the GPU or the CPU, one
choice per viewer; docs/feature_gaps/2026-10-17-claude-gpu-viewers.md):- The multiphysics Graphics view and the layout viewer draw from buffers
made once: a million layout shapes panned in 13-18 ms, 33-63 ms on the
CPU. - The PDF viewer's pages as textures: a scroll's paint 0.2 ms, 2-3 ms
on the CPU. - The Markdown preview may be drawn by the GPU too (the CPU by default).
- Screenshots of GPU views (Claude's screenshot tool) now show what the
window shows.
- The multiphysics Graphics view and the layout viewer draw from buffers
- Diagrams: a graph may be any expression of a dataset's variables,
dependent and independent (v(out)/v(in), 2*L, db(...) over a swept run);
long axis labels cut in their middle. - Markdown: images in tables fit their cells and are drawn smoothly; math
typeset sharp at the screen's pixels, and found in GitHub's math blocks;
block quotes have their bars; the preview keeps its paper in a dark
theme (black text on white, as the editor) and follows theme changes. - The File Browser: the Content panel's empty area opens the project's
folder in a File Browser tab (Open in File Browser); a folder a tab
shows already is brought to the front, not opened in a second tab
(Open in New Tab, a middle click, Command with the double-click)
(docs/feature_gaps/2026-10-17-claude-file-browser-tabs.md). - The Claude Code dock: images dropped or pasted into the chat are sent to
Claude with the prompt; auto-compact on by default (under the dock's
menu); a reply's images fit the panel; Resume a Conversation's columns
can be sized; fem_model save names its model by path. - Fuzzing: eleven fuzzers on the sanitized build, six crashes and faults
found and fixed (docs/bug_hunts). - Three update checks' items fixed, each reproduced first: the quantum
wells' Kramers-Kronig index, the III-Vs' index with temperature, the
laser's threshold with the mesh, SPICE data read by its names.
Full Changelog: v27.0.0...v27.0.1
Qucs-S enhanced v27.0.0
Qucs-S enhanced 27.0.0
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.0
- Semiconductors, toward a device simulator
(docs/feature_gaps/2026-10-12-claude-fem-semiconductor-capability.md):- Heavy doping: Fermi-Dirac statistics, Slotboom's band gap narrowing
and dopants ionized in part (1e18 cm^-3 of phosphorus 76 % ionized,
of boron 48 %). - A MOSFET's mobility: Lombardi's surface scattering at an insulator,
and velocity saturation driven along each carrier's own current. - Interface traps, one level or a Dit over a range, in Poisson's
equation, recombination and small-signal: a MOS capacitor's C-V curve
stretched as theory has it, the conductance method's peaks. - Impact ionization (Chynoweth's law) with the ionization integrals: an
abrupt junction breaks down at 51.65 V for 1e16 cm^-3 (the depletion
approximation's 51.66 V). Band-to-band tunnelling (Hurkx) and
Fowler-Nordheim tunnelling through an oxide. - Electrothermal coupling: the carriers' Joule and recombination heat
as a heat physics' source, a lattice temperature for the mobilities. - Self-consistent Schroedinger-Poisson with the quantum wells: a MOS
inversion layer's electrons 2.0 nm from the oxide (classically 1.0;
Fang and Howard's 1.8). - Process simulation: an implant's doping profile, annealed by
diffusion. - A step in time lit by a mode analysis (a photodiode's pulse
response); Optical Generation counted per triangle in each medium; a
mode followed through a sweep. - Benchmarks against published devices: Virot et al.'s germanium
waveguide photodiode (1.248 A/W against 1.16 measured, 35 GHz at
-4 V) and Liu et al.'s GeSi modulator (with its gap 10 meV above the
composition law's, 6.5 dB of extinction at -2.5 V, as measured). - 3D, a written proposal (docs/proposals/2026-10-12-multiphysics-3d.md).
- Heavy doping: Fermi-Dirac statistics, Slotboom's band gap narrowing
- Quantum wells against Lumerical's MQW solver
(docs/feature_gaps/2026-10-12-claude-mqw-feature-gap-against-lumerical.md):- The k.p valence bands: Luttinger and Kohn's 4x4, or the 6x6 with the
split-off band, with Burt and Foreman's operator order across
interfaces; the in-plane k in the axial approximation, along [100] or
[110], or averaged over directions; a Valence Bands step for their
dispersion. Gain, absorption and emission integrated over k: a
compressed InGaAs well's gain 2578 /cm where parabolic holes gave
5124. - Excitons with a two-parameter variational envelope, as Lumerical's
variational method has: GaAs/AlGaAs bindings within 1.2 % of
Khramtsov et al.'s exact ones, their measured radiative decay within
4 %. The 1s line now counts both spin pairs (it was half as strong). - Broadening that grows with the field; the barriers' bulk absorption
in place of the box's states ("continuum": "bound"); the
Kramers-Kronig index (qw.dnTE, qw.dnTM: electrorefraction's change);
spontaneous emission (qw.rsp, qw.Rsp, qw.gspTE, qw.gspTM); checks at
77 K. - Examples: kp_laser_gain and gaas_eam_excitons.
- The 8x8 k.p (Kane's, "valence": "kp8"): the electrons non-parabolic,
their transitions from the spinors. Lumerical's 8x8 benchmark - De
Franceschi, Jancu and Beltram's GaAs/AlAs wells - within 0.4, 0.4 and
1.3 meV of its tight binding. - Wurtzite wells (the proposal,
docs/proposals/2026-10-13-wurtzite-quantum-wells.md): GaN, AlN, InN
and AlGaN, InGaN, InAlN, Chuang and Chang's 6x6, their strain, their
spontaneous and piezoelectric polarization and its screening by the
carriers (2.12 MV/cm in a 3 nm GaN well between Al0.3Ga0.7N, 1.79 at
1e19 cm^-3). Lumerical's 6x6 benchmark - Chuang and Chang's strained
GaN/Al0.2Ga0.8N well - within 1.3 meV for its first five subbands; the
semiconductor's Polarization Charge at interfaces between nitrides. - A plot group's dataset says its units (k in 1/nm, energies in eV); a
Lorentzian line's tails under the gain measured (qw.alphaTEfar,
qw.alphaTMfar) and warned of past 10 % of the peak
(docs/feature_gaps/2026-10-13-claude-lumerical-mqw-benchmarks.md).
- The k.p valence bands: Luttinger and Kohn's 4x4, or the 6x6 with the
- The MQW calibration (docs/feature_gaps/2026-10-12-claude-mqw-calibration.md):
one material, one gap in every physics (the library's InP 1.344 eV in
the wells as in the semiconductor); band gaps fitted to 300 K
measurements ("bands": "measured": In0.53Ga0.47As 0.750 eV); a gap
wavelength (lambdag); excitons, Gaussian and sech line shapes; a
Confinement Factor derived value; modes by polarization (TE or TM). - PDF tabs within Claude's reach
(docs/feature_gaps/2026-10-12-claude-pdf-tab-no-page-navigation.md):
show_pdf opens a PDF at a page (its number, its printed label or an
outline's entry), at the hits of a text, at a zoom or at a region of a
page; screenshot draws a page or a region from the file, the tab left
where it is; read_pdf gives pages as pictures; open_document opens a
PDF at a page; get_ui and set_ui reach the tab's own bar. - Cross-probing: a schematic closed and opened again no longer sends a
probe into a new diagram in place of the one probed before. - The MQW and semiconductor update, checked independently
(docs/feature_gaps/2026-10-13-claude-mqw-semi-update-check.md):- Electrorefraction's dn no longer depends on the energy window: with
"continuum": "bound" the wells' steps fade over 0.1 eV past the
barriers' gap into the wells' own bulk absorption, so past it the
absorption is the bulk's alone, the same in any field. A GaAs
modulator well's dn at 1.40 eV between 0 and 50 kV/cm is -5.25e-3
with the window to 2.0, 2.5 or 3.0 eV (it was -6.7e-3 and -11.2e-3);
qw.dnTEtail and qw.dnTMtail say what lies above the window. - Silicon's and germanium's electron valleys in Schroedinger-Poisson
("valleys": Si(100), Si(110), Si(111), Ge(100), Ge(110), Ge(111), or
sets of your own): each set a ladder of states of its own, their
carriers summed; each state's, each set's and all carriers per area
(qw.Ne1, qw.Nv1, qw.Ns, qw.Ps). Si(100)'s inversion layer at 2 V holds
66 % of its electrons in its two valleys, their centroid 2.31 nm from
the oxide (one valley of 0.916 m0 put it at 1.96). - Quantum-well energies shown in eV and qw.k in 1/nm; a Derived Values
global the same at each photon energy given once (12 values where
there were 3612); the Gaussian or sech line advised for gain spectra. - Eight semiconductor examples, each tested against an analytic result:
avalanche breakdown, Zener tunnelling, a gate oxide's Fowler-Nordheim
leakage, interface traps' C-V, silicon's inversion layer in its
valleys, a boron implant annealed through a mask, a resistor heating
itself, a diode's reverse recovery.
- Electrorefraction's dn no longer depends on the energy window: with
- Git > Settings...: History opens in a window of its own (now the
default) or docked in the main window below the documents. - A diagram's legend outside, on its right, clear of its traces and of its
right axis' numbers (Edit Diagram Properties > Properties > Legend;
Claude's "legend": "outside"). - Stopping a solve: Claude's fem_stop does what the model tab's Cancel
does, and both now stop a long solve at rest between its Newton steps
(a 27 s solve stopped 30 ms after it is asked, where it waited out 24 s). - Lumerical both ways:
- Results > Export: Lumerical MODE (FDE), Lumerical CHARGE, Lumerical
MQW - an .lsf script that builds the model there and saves its
project beside it; no study need be computed. - File > Import Lumerical Project... (and Claude's fem_model import): an
MQW or CHARGE .ldev, a MODE .lms or an .lsf script made a model, its
notes saying what was taken and how; an .ldf data file a dataset.
Lumerical's three MQW examples so imported solve as the benchmarks. - Lumerical does not run here: the scripts are read back, and each
model so made solves as the one it was made of - an SOI wire's index
at 1550 nm 2.445432 against 2.445439, a MOS capacitor's gate charge
within 2.1 %, a strained laser's gain within 0.2 %.
- Results > Export: Lumerical MODE (FDE), Lumerical CHARGE, Lumerical
- PDEs in time (docs/feature_gaps/2026-10-13-claude-pde-linear-transient.md):
- A PDE linear in its unknowns is solved at once, its matrix factored
once while a time step stays: a wave model's 340 steps on 152 648
unknowns in 26.6 s and 1.5 GB, where each step took 18 s and 5.9 GB. - The implicit midpoint rule (a Time Dependent step's method midpoint,
with fixed steps): no damping - a standing wave keeps 0.99979 of its
amplitude over 10 periods, where BDF2 keeps 0.98793. - A flux of the variables' rates differentiated by them: an absorbing
boundary (g = -ut/c) sends nothing back. A new example,
point_source_wave: a pulsed source's spherical wave, R u peaking at
0.932 at each radius, the analytic far field's for its source's size. - The Multiphysics tree while a job runs: the mesh "being made", the
study "computing"; its root the file's name once it is saved.
- A PDE linear in its unknowns is solved at once, its matrix factored
- Lumerical's projects in and out, checked on its own examples
(docs/feature_gaps/2026-10-14-claude-lumerical-io-update-check.md):- Imported as they are: Lumerical's MOSFET's drain current within 4 %
of Lumerical's from 0.8 to 1.8 V on its gate, its photodetector's dark
current and responsivity within 3 %, a HE...
- Imported as they are: Lumerical's MOSFET's drain current within 4 %
Qucs-S enhanced v26.1.8
Qucs-S enhanced 26.1.8
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 26.1.8
- Multiphysics: a 2D finite element solver (phase 1 of the proposal,
docs/proposals/2026-10-10-multiphysics-fem.md). A sixth panel of the
left dock holds a model's tree - parameters and functions; a geometry
of rectangles, circles, ellipses, polygons and points, moved, rotated,
scaled, mirrored, arrayed, joined, cut and intersected, Form Union
numbering its domains, boundaries and points; selections as a rule
("the boundaries of trace facing down", kept through edits) or picked
in the view; materials from a library of 18 (copper to LiNbO3) or your
own; electrostatics, electric currents and heat; a mesh sized by
curvature and narrow gaps; studies; plots and derived values - with
the chosen node's settings below it, expressions with units checked as
typed, every change a step of Undo. A .qfem model opens in a tab of
its own: Build Geometry, Build Mesh and Compute (F2), meshed and
solved in the background, each stage and its progress in a row below
the toolbar with a Cancel; colour maps, contours and arrows;
capacitance and conductance matrices, resistance, Tmax and thermal
resistance, integrals, averages, extremes, point values and a
transmission line's C, L, Z0 and eps_eff. Physics that read each
other's fields (Joule heating) are solved in turn until they agree.
Linear and quadratic elements on Eigen's sparse solvers and CDT's
triangulation (both built in, header only): 217,000 unknowns meshed in
0.45 s and solved in 0.9 s; the microstrip example gives Z0 = 50.28
ohm and eps_eff = 3.318 against qucs-transcalc's 50.26 and 3.289.
Examples: examples/multiphysics (a microstrip, a coax, a resistor that
heats). Claude's fem_describe, fem_model, fem_edit, fem_build,
fem_solve, fem_evaluate and fem_plot build, change, solve and read
models. - Multiphysics, the proposal's phases 2 to 4 and beyond:
- Heat in time (adaptive BDF2); Newton's method for what reads its own
field (k(T), radiation); solid mechanics in plane strain, plane
stress and about an axis, with thermal expansion; 2D axisymmetric for
every physics; parametric sweeps that mesh again where a parameter
shapes the geometry; DXF and SVG drawings imported and read again
when they change. - Magnetic fields at rest (B-H curves by Newton's method, magnets,
coils) and in the frequency domain (eddy currents, the skin effect);
a line's R, L, G and C per metre over frequency; Touchstone, SPICE and
Qucs subcircuit exports; GDSII and OASIS layouts cut into
cross-sections, from the layout viewer's ruler too. - A waveguide's modes on Nedelec's edge elements (complex and
anisotropic media, warmed by a heat physics, perfectly matched
layers), a mode tracked by its share of |E|^2 in chosen domains
(emw.Gamma), its loss in dB/m; waves in the plane with ports,
scattering boundaries and S-parameters as a Touchstone file; adaptive
mesh refinement from Zienkiewicz and Zhu's error estimate. - Semiconductors: the drift and diffusion of electrons and holes
(Scharfetter-Gummel currents, Newton's method from equilibrium,
ohmic, Schottky and gate contacts, recombination) at rest, in time and
small-signal (C-V curves); a contact's current weighed where it is
resolved - a junction's dark current of fA through 1e19 cm^-3
contacts, nought at equilibrium, its admittances symmetric; silicon's
plasma dispersion into the mode solver (a phase shifter's Vpi*L).
Heterojunctions by Anderson's rule (Ge on Si's bands step 0.05 and
0.52 eV). - Photodiodes and electroabsorption modulators: a direct gap's
absorption and the Franz-Keldysh effect in the mode analysis (Airy's
functions, a Gaussian broadening; Germanium, Germanium on silicon),
a mode's light as the semiconductors' Optical Generation -
photocurrent, responsivity, its response modulated through a load.
Examples: a Ge-on-Si waveguide photodiode (1.15 A/W, 27 GHz) and a
GeSi modulator (5.6 dB extinction at -3 V for 0.65 dB of loss). - Geometrical optics: rays refracted and reflected by Snell's law and
Fresnel's coefficients on the geometry's own curves, graded and
dispersive media, absorption left as a heat or generation source. - Quantum wells: the effective-mass Schroedinger equation of electrons,
heavy and light holes, in 1D through the layers and in 2D over a
cross-section (wires, dots about an axis); III-V compounds and their
alloys with Vurgaftman's band parameters, strained, tilted by a field
(the Stark effect); the levels, transitions, band diagram, absorption
and gain. - PDEs and ODEs of your own, in the coefficient or the general form, one
or several variables, nonlinear by Newton's method, in 2D or in 1D
along a line; Dirichlet, flux and zero-flux conditions; at rest, in
time and eigenvalues. - Results: cut lines and 1D plot groups written as Qucs datasets and
shown in data displays - along x a sweep's parameter, a frequency or
a transient's time as Plot against chooses, a curve per mode, no axis
of one value; a sweep of two parameters over both (I_C against V_CE,
a curve per V_BE); a graph named by its label or name = expression, a
global in its own unit (emw.loss in dB/cm), the y axis in the traces'
units, a plot group shown again in its diagram's place; plots at a
time, frequency, mode or parameter value, drawn deformed; a step's
warnings said. - 35 examples in examples/multiphysics; Claude's fem_ tools for each
physics and fem_export.
- Heat in time (adaptive BDF2); Newton's method for what reads its own
- Git, as Eclipse has it: the File Browser's files in the colours and
letters of their state, with a Git submenu by what is chosen; a Git
menu left of Help (commit, stage, discard, history, blame, fetch,
pull, push, branches, merge, stashes, tags, .gitignore, remotes,
clone); the status bar's chip of the document's branch and state;
commit and blame windows; the history a panel, docked below the
documents (dragged to any side or floated, docked again). The history
is a graph, as VS Code's and Eclipse's show it: each branch's commits
in a lane of its colour, merges and forks curving between them, the
branches and tags as labels, the changes not committed above HEAD, the
commit chosen below with its message, parents, files and changes, a
commit's menu for its branches and tags. A schematic in conflict
through a merge is kept whole and resolved with Resolve Conflict (Keep
Mine, Take Theirs, Open Both Versions), its changes shown part by
part. Claude's git_ tools (status, stage, commit, log with every
branch and git's drawing, diff, branch, resolve, clone - an option as
a URL refused).
docs/feature_gaps/2026-10-10-claude-git-integration-check.md. - A Python editor, then an IDE (docs/proposals/2026-09-30-python-editor.md):
a .py checked as it is typed by the Python it runs with (ruff or
pyflakes, mypy or pyright), completed as typed (jedi when the Python
has it), the call's signature, Go to Definition, Find All References,
Rename Symbol, Go to Symbol, an outline, Quick Fix (Alt+Shift+Return),
Organize Imports, Format Document, Selection and on Save, Cmd+/ (Ctrl+/)
to comment lines, brackets closed, folding. A Python menu (Alt+Y): Run
(F2) with its Run Settings (arguments, folder, environment, a .env),
Interrupt, Run in Shell, cells and lines in the Python Shell; a
debugger with conditional breakpoints, logpoints, Pause, Run to
Cursor, exceptions where raised, a watch list, inline values. A
simulation's results in Python (the qucs module), matplotlib's figures
in a Python Plots pane, the Shell's variables in a Data Viewer (sorted,
filtered, plotted), qucs.display() into a data display. - An image viewer: PNG, JPEG, SVG, GIF, BMP, WebP, TIFF, HEIC and what
else this Qt reads, in a tab of its own - fitted and zoomed, turned,
the pixel under the pointer, a part selected and copied, an SVG drawn
anew at every scale, an animation played, read again when its file
changes, saved as another format, printed. - An XML viewer and editor (.xml, .xsd, .xsl, .plist, .ui, .qrc...): its
text beside its tree, each following the other; checked as typed, the
error on the Problems tab; values, elements and attributes edited in
the tree; tags closed as typed, comments toggled, folding, Format and
Minify. Claude's xml tool. - The layout viewer's layers stand out from its canvas, light or dark
(3.5:1 at least, the hue kept), and a grid as KLayout has one - dots,
lines or crosses every 1, 2 or 5 times a power of ten um, with a scale
(G, View > Show Grid; show_layout's grid). - Tabs in the File Browser: Open in New Tab, a middle click or
Command-double-click (Ctrl elsewhere); each tab its folder, history,
view, filter and selection, kept for the next start. - Copy and Paste in the File Browser: an entry's menu has Copy and Paste
(into a folder, beside a file, into the folder shown), as do Command+C
and Command+V (Ctrl elsewhere) and Edit > Copy and Paste while it has
the focus. Files copied there paste in the Finder or the Explorer, and
theirs paste here; a name taken is asked about, as in a drop. - The File Browser follows t...
Qucs-S enhanced v26.1.7
Qucs-S enhanced 26.1.7
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 26.1.7
- Libraries made whole (Project > Create Library, Claude's
create_library). A part's subcircuits are named for it where it is
used (LIB_part__inner): two libraries' "inner", and the circuit's own,
stay three - they took one another's place, and a run gave another
library's results. A hierarchical part's SPICE model is read whole. A
part is named after its file, and a subcircuit in a folder of the
project keeps the library's name (mylib's inner/vres.sch is
.SUBCKT mylib_vres; it was vres); two that would be one part are
refused. A library is replaced only once the new one is made: one that
cannot be made leaves the old as it was. The SPICE files a subcircuit
uses are taken in under names of their own, with the files they
include; a library part placed inside goes into the Qucs model too; a
renamed library's parts still work. The dialog chooses its subcircuits
afresh and saves an open one with changes first. - A subcircuit's own .model cards: File > Document Settings > Library >
SPICE .model cards of its own holds the global .model card of a
Verilog-A device in a subcircuit wrapper (.model resmod va_res r=1k).
It is written at the top level of the netlist of a circuit that places
the wrapper, or a library part made of it - after its .ENDS - and the
library embeds its Verilog-A. Only cards: a .control block is refused. - Create Library embeds the Verilog-A of a .model card in a SPICE file
the subcircuit brings (a wrapper .subckt in a SPICE file beside its
.va): it was left behind, and the part, placed elsewhere, found no
model. - Libraries brought in (Claude's import_library): a SPICE library's
includes come into a folder of its own, NAME/, its include lines
rewritten to name them there - two libraries' models/params.inc stay
two, and bringing one in never changes another's results. 'name'
brings a library in under a name of its own; the answer says what a
library lacks (its folder of models, and which simulator's run stops
at it) or that a newer Qucs-S made it, as describe_part, add_component,
the Libraries panel and Check Schematic do. - A net named as a Nutmeg operator (or, and, not, eq, ne, gt, lt, ge, le,
in any case): ngspice is not started with one, and the run now says
why - it said "Failed to start simulator: Unknown error" - for no
ground and the rest too. Check Schematic gives it as an error;
set_label and rename_net warn. OR and Or passed the check and failed
in ngspice. - A wire end that lies on another wire mid-way (a T) is joined when a
schematic is read, as drawing it joins it: it was joined only when the
wire it lies on came first in the file, so two orders of the same
lines were two circuits. - Claude's run of a schematic whose subcircuit file is missing answers
at once with why: a "Cannot load document" box waited for an answer,
and the run with it, past its timeout. Under Qucsator the wrong
"Cannot simulate a text file!" is gone, and a run makes its netlist's
folder again when the cache was emptied. - With the check of commands on, a .control block that runs a program in
a library part's SPICE text, in the files it brings and what they
include, through subcircuits, is found. - Tools > Convert Data File takes a vendor's .lib, .mod or .inc as
SPICE, and refuses a Qucs library of nothing. - batch with brief answers a call that only looks (get_dataset,
get_netlist) in full. - Help > About names the commit the build is of ("Version 26.1.7
(abc1234)"), as --version and a crash report do: read from git at
every build. A build named the commit its tree was configured at,
weeks before, and the About box named none. - The write-ups: docs/bug_hunts/2026-10-07-library-import-export.md and
docs/feature_gaps/2026-10-07-claude-library-import-export-check.md.
New in 26.1.6
- GDSII and OASIS layouts in a tab of their own: a .gds, .gds2, .gdsii,
.gds.gz, .oas or .oasis file is read in the background (a progress bar
and a Cancel for a large one) by gdstk, built in. Beside it its cells
(the top ones, and in each what it places and how often) and its layers
(shown or hidden, with their shape counts), each in its colour from a
KLayout .lyp beside the layout, else a palette; the canvas light or
dark whatever the application's theme (... > Background). Pan, zoom
about the pointer, levels of hierarchy drawn and frames below them; a
click says what a shape is - layer, cell, size, a path's width, its
properties; a ruler snapped to corners and edges; a cell found by name;
read again where it was when its file is written again; Open in
KLayout. A million shapes read in 0.2 s and are drawn in 31 ms. It is
read, not edited (docs/proposals/2026-10-06-gds-oasis-layout-viewer.md). - Claude's get_layout (units, top cells, tree, layers), find_shapes (at a
point, in a region or on a layer, each with its points in um) and
show_layout (a cell, region or layers in the tab, for a screenshot). - gdstk's readers were fuzzed and fixed where a damaged file crashed
them: a damaged layout is refused, not a crash
(third_party/gdstk/README.qucs.md). - Claude designs with the Tools menu's programs: synthesize_filter (an LC
ladder or lines, as Filter synthesis makes; op-amp stages, as Active
filter synthesis makes), synthesize_attenuator, synthesize_matching
(Matching Circuit), synthesize_power_combiner, line_calc (Line
calculation) and receiver_budget (RxCalc). Each is the program's own
calculation: the programs take --json, a spec on standard input and
the result on standard output, with no window shown and no setting
read or written. A design is placed as a paste places it - into a new
schematic, or into one open at x, y or below what is there - one step
to undo, with its ports, analysis and equations for the simulator, so
it simulates as it comes. A 5th-order Chebyshev low-pass at 1 GHz is
-3 dB at 999.8 MHz; 50 ohm microstrip on FR4 at 2.4 GHz is 3.028 mm
wide; an L-match from 50 ohms to 10 - j20 ohms at 900 MHz gives S11
-48.5 dB there - with an ngspice that runs an S-parameter analysis of
one port. Stock ngspice does not: 42 stops on it and 44 and later
refuse it, so a matching design for one load does not simulate with
stock ngspice yet (two-port designs do). Found on the way, and fixed
in the windows too: the attenuator's and Matching Circuit's equations
were Qucsator's under ngspice, so their schematics did not simulate;
Matching Circuit wrote an element of no reactance (L2 0.000H, refused
by ngspice) and gave a pure reactance nan lines; the active filter's
unity-gain Sallen-Key low-pass had nan resistors, and its order
formulas could overflow an int; RxCalc read a stage's priorities
before they were set. An active Butterworth or Chebyshev filter can be
given its order: the window finds it only from the attenuation at a
stop band. - Texts drawn over something. Claude's check_schematic notes each part's
text and each net label drawn over a wire, a symbol (as it is drawn,
not its bounding box), another text, a label or a diagram, with both
boxes. edit_component's text_at "auto" moves a part's text to the
nearest free spot beside it, and arrange with labels moves only the
texts that overlap, every part and wire left where it is; on a 30-part
imported board, 18 overlaps went to none. add_component puts a new
part's text clear of what is there. A diagram whose title runs into
the axis label of the one above is said, with the y that clears it. - add_component and edit_component take pin1 (top, bottom, left, right)
for a part of two pins, instead of working out its rotation. - read_help with manual: the Qucs-S manual fetched once from its site
into the cache and searched by section from then on, offline; a page
given whole. QUCS_MANUAL_URL names another copy. - get_settings takes keys (a key, a wildcard such as Locations/*, a
label) and search words, across the application, simulator and
document settings; get_state lists the workspace's projects and says
when a document is in a project that is not the open one. - compare against a run kept with keep_as measures an equation's
variables (dB) and an eye with that run's own options, and says which
run has no number and why. - The eye diagram: a trace thicker than a pixel is drawn that thick as a
density too; a noiseless eye's Q is infinite - "Q ∞ (no noise)", null
in Claude's JSON - not 4×10^14 from rounding; a trace of few
transitions (PRBS31's start) has its unit interval found from its
shortest gap, and an estimate in doubt says so. - The Projects panel's Close Project is greyed on a project that is not
the open one: chosen there, it closed the open one. - get_dataset's 'at' at the end of a sweep, as 'to' gives it, reads the
last sample: ngspice writes 10 kHz as 9999.999999999889, and 10000 was
outside it. compare reads values the same way. - The Tools menu's programs are found wherever the app is: from a folder
with "bin" anywhere in its path - one above the app, a user named
robin - Qucs-S looked for them in the wrong folder and found none. - A library subcircuit has the part's pins: Create Library wrote each...
Qucs-S enhanced v26.1.6
Qucs-S enhanced 26.1.6
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 26.1.6
- GDSII and OASIS layouts in a tab of their own: a .gds, .gds2, .gdsii,
.gds.gz, .oas or .oasis file is read in the background (a progress bar
and a Cancel for a large one) by gdstk, built in. Beside it its cells
(the top ones, and in each what it places and how often) and its layers
(shown or hidden, with their shape counts), each in its colour from a
KLayout .lyp beside the layout, else a palette; the canvas light or
dark whatever the application's theme (... > Background). Pan, zoom
about the pointer, levels of hierarchy drawn and frames below them; a
click says what a shape is - layer, cell, size, a path's width, its
properties; a ruler snapped to corners and edges; a cell found by name;
read again where it was when its file is written again; Open in
KLayout. A million shapes read in 0.2 s and are drawn in 31 ms. It is
read, not edited (docs/proposals/2026-10-06-gds-oasis-layout-viewer.md). - Claude's get_layout (units, top cells, tree, layers), find_shapes (at a
point, in a region or on a layer, each with its points in um) and
show_layout (a cell, region or layers in the tab, for a screenshot). - gdstk's readers were fuzzed and fixed where a damaged file crashed
them: a damaged layout is refused, not a crash
(third_party/gdstk/README.qucs.md). - Claude designs with the Tools menu's programs: synthesize_filter (an LC
ladder or lines, as Filter synthesis makes; op-amp stages, as Active
filter synthesis makes), synthesize_attenuator, synthesize_matching
(Matching Circuit), synthesize_power_combiner, line_calc (Line
calculation) and receiver_budget (RxCalc). Each is the program's own
calculation: the programs take --json, a spec on standard input and
the result on standard output, with no window shown and no setting
read or written. A design is placed as a paste places it - into a new
schematic, or into one open at x, y or below what is there - one step
to undo, with its ports, analysis and equations for the simulator, so
it simulates as it comes. A 5th-order Chebyshev low-pass at 1 GHz is
-3 dB at 999.8 MHz; 50 ohm microstrip on FR4 at 2.4 GHz is 3.028 mm
wide; an L-match from 50 ohms to 10 - j20 ohms at 900 MHz gives S11
-48.5 dB there - with an ngspice that runs an S-parameter analysis of
one port. Stock ngspice does not: 42 stops on it and 44 and later
refuse it, so a matching design for one load does not simulate with
stock ngspice yet (two-port designs do). Found on the way, and fixed
in the windows too: the attenuator's and Matching Circuit's equations
were Qucsator's under ngspice, so their schematics did not simulate;
Matching Circuit wrote an element of no reactance (L2 0.000H, refused
by ngspice) and gave a pure reactance nan lines; the active filter's
unity-gain Sallen-Key low-pass had nan resistors, and its order
formulas could overflow an int; RxCalc read a stage's priorities
before they were set. An active Butterworth or Chebyshev filter can be
given its order: the window finds it only from the attenuation at a
stop band. - Texts drawn over something. Claude's check_schematic notes each part's
text and each net label drawn over a wire, a symbol (as it is drawn,
not its bounding box), another text, a label or a diagram, with both
boxes. edit_component's text_at "auto" moves a part's text to the
nearest free spot beside it, and arrange with labels moves only the
texts that overlap, every part and wire left where it is; on a 30-part
imported board, 18 overlaps went to none. add_component puts a new
part's text clear of what is there. A diagram whose title runs into
the axis label of the one above is said, with the y that clears it. - add_component and edit_component take pin1 (top, bottom, left, right)
for a part of two pins, instead of working out its rotation. - read_help with manual: the Qucs-S manual fetched once from its site
into the cache and searched by section from then on, offline; a page
given whole. QUCS_MANUAL_URL names another copy. - get_settings takes keys (a key, a wildcard such as Locations/*, a
label) and search words, across the application, simulator and
document settings; get_state lists the workspace's projects and says
when a document is in a project that is not the open one. - compare against a run kept with keep_as measures an equation's
variables (dB) and an eye with that run's own options, and says which
run has no number and why. - The eye diagram: a trace thicker than a pixel is drawn that thick as a
density too; a noiseless eye's Q is infinite - "Q ∞ (no noise)", null
in Claude's JSON - not 4×10^14 from rounding; a trace of few
transitions (PRBS31's start) has its unit interval found from its
shortest gap, and an estimate in doubt says so. - The Projects panel's Close Project is greyed on a project that is not
the open one: chosen there, it closed the open one. - get_dataset's 'at' at the end of a sweep, as 'to' gives it, reads the
last sample: ngspice writes 10 kHz as 9999.999999999889, and 10000 was
outside it. compare reads values the same way. - The Tools menu's programs are found wherever the app is: from a folder
with "bin" anywhere in its path - one above the app, a user named
robin - Qucs-S looked for them in the wrong folder and found none. - A library subcircuit has the part's pins: Create Library wrote each
subcircuit's SPICE model with a first pin, gnd, that every part from
the library tied to ground; nothing inside used it, and another
program reading the library saw a pin too many. It is left out now
unless Application Settings > Settings > Ground pin (gnd) in exported
subcircuits (off by default) asks for it - for a library that Qucs-S
26.1.5 or earlier will use. Claude's create_library takes ground_pin.
A part tells from its library's .SUBCKT line which it has, so the
libraries made before keep working. - A library part's Verilog-A in every circuit of a project, for the rare
circuit that needs the model of a device none of its parts places: a
subcircuit's File > Document Settings > Library > Always load its
Verilog-A (OSDI) in the project's circuits marks it, and Create
Library writes the mark with its component. Every ngspice circuit of a
project that has the library compiles and loads that part's
Verilog-A, placed or not; a circuit outside the project does not. The
subcircuit keeps the setting only when it is on: Qucs-S 26.1.5 and
earlier refuse a schematic that has it. - A DC bias run that fails shows no bias: the devices of the run before
were listed after a failure as if they were its own, in View >
Operating Point and in Claude's simulate, whose answer now says the
run failed. - get_settings names a check box with no text of its own by the label
of its row ("Settings/Ground pin (gnd) in exported subcircuits"), not
by its tool tip: 14 of Application Settings' keys were a paragraph. - The write-ups: docs/feature_gaps/2026-10-06-claude-wishlist.md and
2026-10-06-claude-library-export-check.md.
New in 26.1.5
- A PRBS source and an eye diagram. sources > V(PRBS) is ngspice's
PRBS source: the bits of a maximal-length shift register of 2 to 31
stages between U1 and U2, or PAM4, Gray coded on four levels (for an
ngspice built with the PRBS source). diagrams > Eye Diagram, as a
sampling oscilloscope shows one: each trace folded a few UIs at a
time, drawn as a density or as the traces, with its height and width,
jitter, levels, Q, PAM4's three eyes and a mask measured beside it.
The unit interval is the Tbit of the PRBS source the trace comes from,
else told from its crossings; Claude's get_dataset measures the same
eye. The example: NGspice features/PRBS_eye_diagram.sch. - From a stress test of schematics up to 25,000 transistors
(docs/feature_gaps/2026-10-01-stress-test-bug-report.md): more than
999 nets simulate whole - ngspice's write of them all wrote nothing,
and the run read as a success with an empty dataset; a run that
writes no results fails, the dataset from before kept. Components
free what they own (gigabytes leaked over a session of large
schematics). At 25,000 parts a check takes 0.6 s (was 187 s), an edit
1.2 s (151 s), an undo 2.4 s (76 s). Undo steps are kept compressed
and datasets read from the disk where they lie: a 100,001-point run
of 252 vectors peaks at 1.0 GB, not 3.8 GB. Claude's Select All and
move take the grounds along, and a preview keeps the selection.
Claude's check_schematic notes a transient step too long for its
sources' edges. - The Projects panel's right-click menu has Unlink Project - a linked
project's link removed from the workspace, after asking, its files
left where they are - Open Project, the project right-clicked, and
Close Project. A link that leads nowhere is listed, greyed, for Unlink
Project to remove. - The findings of a bug hunt on the PRBS source, the eye diagram and the
stress fixes (docs/bug_hunts/2026-10-01-prbs-eye-and-scale.md) fixed.
The eye folds each trace at its own source's Tbit and Coding, as the
run the data is of gave them (its netlist read as ngspice reads it:
100P is 100 ps), and says when the source ha...
Qucs-S enhanced v26.1.5
Qucs-S enhanced 26.1.5
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 26.1.5
- A PRBS source and an eye diagram. sources > V(PRBS) is ngspice's
PRBS source: the bits of a maximal-length shift register of 2 to 31
stages between U1 and U2, or PAM4, Gray coded on four levels (for an
ngspice built with the PRBS source). diagrams > Eye Diagram, as a
sampling oscilloscope shows one: each trace folded a few UIs at a
time, drawn as a density or as the traces, with its height and width,
jitter, levels, Q, PAM4's three eyes and a mask measured beside it.
The unit interval is the Tbit of the PRBS source the trace comes from,
else told from its crossings; Claude's get_dataset measures the same
eye. The example: NGspice features/PRBS_eye_diagram.sch. - From a stress test of schematics up to 25,000 transistors
(docs/feature_gaps/2026-10-01-stress-test-bug-report.md): more than
999 nets simulate whole - ngspice's write of them all wrote nothing,
and the run read as a success with an empty dataset; a run that
writes no results fails, the dataset from before kept. Components
free what they own (gigabytes leaked over a session of large
schematics). At 25,000 parts a check takes 0.6 s (was 187 s), an edit
1.2 s (151 s), an undo 2.4 s (76 s). Undo steps are kept compressed
and datasets read from the disk where they lie: a 100,001-point run
of 252 vectors peaks at 1.0 GB, not 3.8 GB. Claude's Select All and
move take the grounds along, and a preview keeps the selection.
Claude's check_schematic notes a transient step too long for its
sources' edges. - The Projects panel's right-click menu has Unlink Project - a linked
project's link removed from the workspace, after asking, its files
left where they are - Open Project, the project right-clicked, and
Close Project. A link that leads nowhere is listed, greyed, for Unlink
Project to remove. - The findings of a bug hunt on the PRBS source, the eye diagram and the
stress fixes (docs/bug_hunts/2026-10-01-prbs-eye-and-scale.md) fixed.
The eye folds each trace at its own source's Tbit and Coding, as the
run the data is of gave them (its netlist read as ngspice reads it:
100P is 100 ps), and says when the source has changed since; its
Levels are as the source is coded unless set (a PAM4 source's three
eyes); 100,000 bits are drawn as traces in about the density's time,
not 11 to 59 s a repaint. Check Schematic gives an error for a V(PRBS)
value ngspice refuses and for a DC sweep of what ngspice's dc cannot
sweep, and notes a .TR integration method ngspice does not take. A run
with no results leaves the dataset as it was, in a folder that takes
no new file too. Claude tells two parts of one name apart (R1, R1#2),
and open_document says why a document could not be opened, and why a
Verilog-A module was not loaded with ngspice 42 too, which does not
name the model. library/MESFETs.lib is back: the Curtice level 1
MESFET as ngspice B sources. - Filter by name takes regular expressions - the File Browser's, the
Projects and Content panels' and a ZIP archive's: a name is found when
it holds the text or the text, as a regular expression, finds a match
in it, whatever the case (^amp, .sch$, amp|filter, r\d+). Where a row
is a path (docs/README.TXT), the name at its end is tried too. Text
that is no regular expression (*.sch) is taken as typed, and a warning
in the box says why. - New Zip… in the File Browser's right-click menus and its ⋯ menu: an
empty ZIP archive in a tab (untitled.zip). Files and folders dropped on
it - from the File Browser, the Finder or the Explorer - or added go
in; Save asks where, offering the folder the menu was of and a name
free there (Archive.zip, Archive 2.zip). - Simulators Settings > Netlist > Include ngspice_mathfunc.inc (limexp,
step, stp), on by default. The installation's file defines those
functions of expressions written for Qucsator, which ngspice has not;
off, an ngspice netlist leaves its .INCLUDE out and names no file of
the installation. - Claude's edit_component sets 'flags' given alone - .OPTIONS options
without a value - which it answered as done and left unchanged;
'replace_equations' with no 'equations' or 'flags' to replace the list
with is refused. Each argument of edit_component given alone is tested
to change the part or be refused. - Double-click a tab and its pane fills the window: the other panes and
the docked panels are hidden; the menus, toolbars and status bar stay.
Double-click a tab again, or Restore Panels in the tab bar's corner,
and all comes back as it was, at its sizes, with any panel that came up
meanwhile (a simulation's console) in front. Also View > Panes >
Maximize Document (Ctrl+Shift+F12) and the tab's right-click menu. - Binary datasets: an ngspice or Xyce run whose output is larger than
10 MB keeps name.dat.ngspice binary - the same blocks as text, the
simulator's own doubles, every digit, an index at its end - and its
raw file is not kept beside it. For 12,503 vectors of 11,715 points
(1.17 GB): written in 0.7 s instead of 45 s, 114 MB of memory instead
of 2.5 GB, 1.2 GB on the disk instead of 4.5 GB, the last vector's
graph in 11 ms instead of 1.2 s. Smaller runs stay text, which now
keeps every digit too. The diagrams, Claude's tools and the optimizer
read both; Save as Text in the Content panel's menu writes one out as
text. - Edit > Copy Circuit as Image, also in the canvas's right-click menu:
the circuit alone onto the clipboard - its parts, wires, labels and
drawings, without the diagrams, the simulation and equation blocks and
the markers - where Copy as Image puts the whole page. - NgOpt, ngspice's optimize, has the methods the enhanced ngspice
gained: CMA-ES, Bayesian optimization (tens of simulations for a slow
circuit) and a trust region, beside differential evolution, particle
swarm, simulated annealing, Nelder-Mead and Levenberg-Marquardt.
Polish finishes a global search with a local one, More starts runs it
again from Latin-hypercube points, and a Constraints tab holds
expressions within limits while it minimizes or fits. The status log
and Claude's simulate say why the search stopped - an annealing, or a
search stopped at its iterations, read as no optimum before - each
constraint at the end and the start that won; apply_optimum writes in
nothing of no solution or a missed constraint. Claude is told every
method and when to choose it (describe_component_type .NGOPT,
ngspice_commands optimize). - Application Settings > Locations > Library Search Paths: folders of
component libraries besides the installed ones and user_lib - a team's
share, a vendor's folder - each a section of the Libraries panel, its
libraries read when opened or searched. A placed part's library is
found there when it is not where it was, Create Library saves into one
or the project, and Claude reads and sets the list and finds,
describes and places their parts. A library that cannot be read is
greyed with the reason, not a box that stopped the listing; the
subcircuit search paths are saved when applied, not only when Qucs-S
closes. - Claude makes and brings in libraries: create_library makes one of the
open project's subcircuits as Create Library does - into user_lib, the
project or a search path folder, each part with a description, a
library there replaced only when asked (the old one to the trash) -
and import_library brings a Qucs-S or SPICE library file in;
list_libraries lists them as the Libraries panel does, each part with
how to place it. get_dialog and set_dialog read and set a list's
ticks. The Libraries panel follows its folders: a library copied in,
made or taken away shows without a restart. - A library device's Verilog-A in the project: a schematic that uses a
device of a library with Verilog-A (one on the search paths, in
user_lib) gets the projectLibraries/<library>/with a relative link
to each source - in the Content panel, opened read-only with a note
saying whose it is - and its model compiled beside the link, so the
library's folder is never written; OpenVAF is given the file the link
leads to, so its includes are found. Kept when a schematic is saved,
the project opens and before a simulation; taken away with its model
when no schematic uses the device; only what Qucs-S put there, in the
record's own folder (its record says what - a record edited by hand,
or come with a project, takes none of your files away). The link is
never written through: Claude's tools and the save dialogs refuse it,
as the library's own file would change. A copy where no link can be
made (Windows, a disk without links). With no project, a library
folder that cannot be written - a read-only share - has its model
compiled into the cache. A placed part names its library by its name
when that finds it, so a schematic finds it on another computer's
search paths. A part takes the first library of its name that has it -
one of the name without it, made later in the project, no longer takes
it -, of two that have it the one the project linked its Verilog-A
from; Check Schematic says which libraries of the name there are, an...
Qucs-S enhanced v26.1.4
Qucs-S enhanced 26.1.4
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 26.1.4
- Claude's Qucs-S tools, reworked from the suggestions of a Claude session
that used them (docs/feature_gaps/2026-09-27-claude-mcp-architecture.md):
set_schematic takes parts and wires as JSON, checked against each type;
"preview": true and diff; get_netlist's netlist-to-part map; run_script
(JavaScript calling the tools, atomic when asked); the schematic, its
netlist, the dataset and the window's state as MCP resources, with change
notifications; structured results; MCP annotations, and what cannot be
undone asked about every time; questions to you in the dock before a file
is written over or unsaved changes are lost; the 22 most used tools in
every turn and short descriptions (65 tools about 9.6k tokens, from
17.5k). - qucs-s --mcp-server: the same tools with no window, over stdio, for any
MCP client ("claude mcp add qucs -- qucs-s --mcp-server"). On a machine
with no simulator installed, get_netlist and simulate say so and how to
choose one. - The Windows bundles now include Qt Qml (for run_script); the macOS disk
image grew by 2 MB for it. - From a second round of Claude's feedback on the tools
(docs/feature_gaps/2026-09-28-claude-mcp-api-feedback.md): arrange lays
a schematic out again by signal flow - parts in columns, two-pin parts
turned as schematics show them, every wire redrawn - keeping every net
(one step to undo); connect to "ground" gives a pin its own ground
symbol; set_schematic's .sch text has its values checked; an equation
block's answer lists its equations; a file edit not loaded (unsaved
changes) is told to Claude; the tools found when needed carry their full
description, and all descriptions are in plain English; get_netlist says
why a netlist could not be written, and the next one no longer leaves a
part out without a word. - From a third round (docs/feature_gaps/2026-09-28-claude-mcp-api-feedback-
round2.md): a ground's ref (GND#2) works in every tool that takes a part's
name; a number mistyped (1kk) is refused; add_analysis plots an
expression through a NutmegEq; simulate and tune save an untitled
schematic in the scratch folder; a preview leaves no file behind; a file
changed on disk is told as its file's, not the user's, even when changed
just after a save; every tool field is described. Fixed on the way: a
schematic saved with Save As did not know its new folder, so a
subcircuit or library beside it was not found until it was reopened. - The open findings of the bug hunts fixed: a spreadsheet, PDF or ZIP
archive Claude changes is loaded again, and Save asks before writing
over another program's changes; a PDF is followed through a delete;
nothing is written into a folder opened as a project (its Scratch is in
the cache directory), and the workspace and home folders are not
projects; /resume finds sessions through a symlink; a sheet named with
"%1" saves whole; dollars in indented or HTML code are not math; values
a damaged file holds (a callout's tip, xlsx columns and dates, a
waveform's cycles, a dimension's scale) stay in range; the wire healer
joins a node a lengthened diagonal wire lies over, and keeps a label on
a pin that is not there; a library named by its author's path is found
in user_lib beside the schematic. - The 32 findings of an hour of fuzzing Claude's tools
(docs/bug_hunts/2026-09-28-claude-tools.md) fixed: a call that comes
during a batch, script, tune or preview waits its turn, so a rollback
no longer takes it away; a source keeps its polarity through the JSON
form, and all 218 examples that netlist go through it unchanged; nodes
of a netlist imported in any case are one net; no message box holds up
a tool call; names are checked as the dialogs check them; a dataset
nested 100,000 deep and an eye diagram that never ended are refused. - ngspice_commands: a tool (and the resource qucs://ngspice-commands)
that tells Claude every command ngspice has - all 165 of help all and
the periodic analyses' dot cards - each in a line by category, with its
syntax, an example and how Qucs-S writes it. It asks the ngspice of the
settings what it has and says what that one lacks (a stock ngspice has
none of the 38 the enhanced build adds). scripts/check-ngspice-
examples.py runs every example through any ngspice. - From a fourth round (docs/feature_gaps/2026-09-28-claude-mcp-api-
feedback-round3.md): tune no longer writes "10k 330" into a part of
R = 330 (a number alone was read as its own unit); a SPICE run writes
its dataset where the schematic's DataSet property says, so a schematic
copied outside Qucs-S is read where it was simulated; get_dataset says
when a dataset is stale (the last run failed, or the netlist changed
since); a tool refuses an argument it does not have and names the one
meant; create_subcircuit keeps a ground on a wire stub, and a label on
a pin, in place; a ringing signal's frequency is measured where it
settles. - arrange in time proportional to the parts - 2,000 parts in a third of
a second (24 s before), 20,000 in about 2 s - and the same layout every
time (two runs differed on 66 of the 251 examples): a simulation block
no longer changes size at its first paint. A whole read of a schematic
over 200 parts lists the first 50 of each kind (236 KB to 40 KB). - From a fifth round (docs/feature_gaps/2026-09-28-claude-mcp-api-
feedback-round4.md): saving a subcircuit whose new symbol moves an
instance's pins joins each pin to its net again - a wire that ended on
it is drawn on to it, a port numbered anew is followed by its name -
and the parent's nets are compared before and after; a preview is no
edit (no stale dataset after one); an unknown key inside an argument (a
set_schematic part's rotaton) is refused as one at the top is, and
replace_component's records and redo's to are taken again - a CI check
now compares every argument a tool reads with its schema; tune follows
the value or its logarithm, whichever fits the runs, and sets a listed
value as written; simulate puts what Check Schematic found first;
names that are no file's name are refused. qucs-s --mcp-server
--workspace DIR gives a run a workspace of its own. - From end-to-end scenarios of the tools (docs/feature_gaps/2026-09-29-
claude-mcp-e2e-scenarios.md): create_subcircuit gives every part of the
group on a net that goes on outside the net's label inside (a divider's
second resistor was on nothing, and the divider read 5 V); tune draws
its secant on the value or its logarithm and the measurement or its
logarithm, whichever fits the runs (a bandwidth over a capacitance: 3
runs, not 9); check_schematic says when a library part or a subcircuit
could not be loaded. - Application Settings > Workspace: the workspace as it was, at the next
start - the project, the documents in their panes (the split, the
sizes, the one in front), the panels and tool bars, the window's size
and place - each part on or off; Forget It clears what is kept, and
after a run that did not end cleanly it asks first. The workspace
folder and "any folder is a project" moved there from Locations. - Edit Diagram Properties > Theme: the colour of each part of a diagram -
its background, the plot area, the frame, the grid (moved from
Properties), each axis (ticks, numbers, label), the title, a table's
texts, the legend's background, border and text. Each is Automatic -
as before: nothing under it on light paper, a white card on dark
paper, every part fitted to the background it is on - or a colour of
your own, with transparency. Start from Light, Dark or No background,
see it in a preview, and save it as the default for new diagrams.
Saved with the diagram; files without colours are saved as before.
Claude's add_diagram and edit_diagram take a theme too. - Edit Diagram Properties > Import: data files read into datasets beside
the schematic, as many as wanted - CSV, TSV, Excel (.xlsx, a sheet of
it), text in columns, NumPy .npy and .npz, Touchstone .s1p to .snp,
Qucs-S datasets - and listed in the Data tab next to the simulation's,
so measured and simulated curves share a diagram. Read again when the
file changes; the column that is x and a workbook's sheet chosen there. - Edit Diagram Properties > Export: a dataset's variables written to a
file for another program - CSV, TSV, an Excel workbook (a sheet for
each sweep), text in columns, NumPy arrays (.npz) or a Qucs-S dataset.
Check them, or take the diagram's traces; variables over one sweep make
a table, a row for each point, and a complex one two columns (real and
imaginary, magnitude and phase, or dB and phase). The tab says what
would be written before it is. - From the fifth and sixth rounds of Claude's feedback (docs/feature_gaps/
2026-09-29-claude-mcp-api-feedback-round6.md): create_subcircuit of parts
in a row keeps every net (a divider's R1 and R2 in one row landed both
pins of the instance on one wire, and v(mid) read 0 V); a part placed
beside another (near), a connect round a side or through points, a
label's text where it is asked, arrange keeping the parts where they are,
with an op...
Qucs-S enhanced v26.1.3
Qucs-S enhanced 26.1.3
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.
Claude Code dock
- View > Claude Code, or the Claude chip in the status bar, opens a
conversation with Claude Code beside the schematic. Claude works in the
workspace folder unless another is chosen in the dock, and the document
in front goes along with a prompt when its chip is on. Replies are drawn
as they are written: Markdown, code on a shade, and TeX math between
$...$ and$$...$$ typeset - fractions, roots, sums and integrals with
their limits, matrices, cases, aligned equations, Greek, units. - Conversations in tabs: New, or + by the tabs, opens another beside the
others, each with its own Claude Code session; a tab shows what its
conversation is about and how it stands, and closing it ends that
session. Right-click a tab (or double-click it) to rename it in place;
Reset Name gives it back its first prompt. The status bar chip says what
Claude is doing - thinking, the tool it runs, needs you - and leads to a
conversation that waits. - The tools Claude uses in a row fold into one line ("Ran 3 commands,
read amp.sch") that opens on a click, each tool on its whole command and
what it gave; each turn ends with its time and what it took. - What a turn took, when chosen: the tokens of the prompt and of the
conversation so far (every model's; a tooltip tells input, output and
the cache read and written) and their cost. The dock's menu (⋯) > Show
Usage has the four switches - all off at first - for every
conversation, its exports and /status. - What Claude may do: Ask Before Acting (a card asks before a command runs
or a file changes: Allow, Allow All Edits, Deny), Accept Edits, Auto
(Claude acts on its own and a safety check stops risky actions; the menu
greys it out for models without it), Plan Only, Bypass Permissions. - The model: the models the installed claude offers, named by what they
are ("Fable 5.1", "Opus 5 with 1M context"), the newest of each family it
does not offer yet (Opus 5.5, which needs Claude Code 2.1.280 or newer),
or any other by name. The header shows the model and the mode. Another
model or mode chosen in a conversation is taken as Claude Code runs,
from the next prompt on, and the header names it at once. - Claude drives the window. Qucs-S offers Claude tools of its own - an MCP
server inside Qucs-S, over the same stream as the conversation - to open,
show, save and close documents; read the schematic in front (its parts,
each pin's place and net, the nets, or its .sch text); change it as you
watch: place components and set their properties, move, turn, mirror and
rename them, wire pin to pin, label nets, delete, replace whole sections
from text, undo and redo, each change one step of Edit > Undo; take a
screenshot to see what it did; use any menu action and fill in and
answer the dialog it opens; run a simulation and read its outcome. Tools
that only look are used without asking; the first change asks, and Allow
Qucs-S Control lets the rest of the conversation go on (as do the Accept
Edits, Auto and Bypass modes). - Claude's edits keep the circuit as it was meant to be. A wire is laid
around what it must not touch - a wire joins every pin and junction it
runs over - and kept only when it joins its two ends' nets and nothing
else; otherwise nothing is drawn and Claude is told why. A part moved,
turned or mirrored keeps each pin on its net: its wires follow, wires of
other nets under its new pins are moved aside, and an edit that cannot
keep every net is not made. - Claude reads results as numbers, not only as pictures. It reads a
dataset's variables and measures them on the full data - values at a
given time or frequency, min, max, mean and RMS, rise and fall time,
overshoot, settling time, period, frequency, duty cycle, crossings of a
level, -3 dB bandwidth - each curve of a parameter sweep on its own. - A simulation's outcome is told truly: it succeeded when the simulator
ran to its end, reported no error and exited with 0 (ngspice's dataset
is name.dat.ngspice - before, every ngspice run was reported as failed).
Each error and warning comes with the netlist line it names, the part
of the schematic and the node; the traces left without data are named
with the reason. A run's dataset can be kept under a name and plotted
beside the next run. Claude also reads the netlist. - Diagrams by name: Claude places and changes diagrams and their traces by
their fields - type, place, size, each axis's label, log scale, limits,
grid, legend; each trace's variable, color, thickness, style, axis,
markers - and every trace shows its data at once (diagrams replaced as
text used to go blank until the document was reopened). Simulation >
Reload Simulation Data reads the datasets again. - Renaming a net renames the traces, data displays and equations that show
its voltage; taking a label away warns of the traces it leaves behind.
Claude can look up a component type: its properties in order with
defaults, units and meaning, its netlist line, and its traps (a Vpulse
is a single pulse under SPICE; Vrect repeats). - Export a conversation: the dock's menu (⋯) > Export Conversation saves
all of it - every prompt, reply and tool with its input and output - as
a PDF (drawn as in the dock, on paper, math typeset, a page number on
each page), Markdown (the replies as Claude wrote them) or plain text.
Include Tool Details (on by default, remembered) decides whether the
contents of the boxes that fold go along; off, a row of tools is its
one summary line and the export is the chat itself. - Pin a conversation to a schematic, if you want to (off by default): the
pin beside the document chip pins the schematic in front, ⋯ > Pin to a
Schematic any open one. Pinned, its prompts name that schematic rather
than the tab in front, Claude's Qucs-S tools act on it when given no
document, and a menu action brings it to the front first - so two
conversations can work on two schematics side by side. The chip shows
the pin (a click unpins it), and a Save As keeps it pinned. - Quicker: Claude's Qucs-S tools are always loaded (no turn spent finding
them first), answer in compact JSON (a third of the tokens and less),
and batch runs many of them in one call - place and wire a circuit in
one turn, each change still one step to undo. A menu action answers as
soon as it is over. - Conversations kept and resumed: those open when Qucs-S closes come back
when it opens again, and the next prompt continues their Claude Code
session (⋯ > Reopen Conversations at Start turns this off). /resume, or
⋯ > Resume a Conversation…, lists the kept ones and Claude Code's own
sessions of the folder to search and go on with; /resume
goes on with one at once. - Slash commands: typing / lists them. The dock runs /clear, /new,
/resume, /quit, /exit, /help, /model, /permissions, /rename, /export,
/status, /pin and /unpin; Claude Code's own (/compact, /context, /cost,
/init, your skills...) are sent to it as typed. - Results Claude can trust: a curve in dB (a Nutmeg equation's db(...),
written as complex numbers with no imaginary part) keeps its sign -
read as a magnitude, -44 dB became +44 and its bandwidth 224 MHz for
6.1; each variable says its units (from its name, or the equation that
defines it); bandwidth is 3 dB below the peak in dB, the peak over
sqrt(2) of a magnitude, and refused on a curve that is neither. A DC
simulation's operating point is read as one: each node's value and,
with ngspice, each device's id, gm, vgs, ... under its component; a DC
bias run's files are removed before every run, never read a day late. - Claude is told what changed since its last call that it did not change
itself: your edits, another conversation's, a simulation you ran,
documents opened or closed; get_state gives each document's revision
and who made its last edit. - Markers: add_marker at an x, the peak, 3 dB below it or a crossing
(the exact point found, the marker on the nearest sample), with its
label, precision, format, indicator and colours; edit_marker,
delete_marker; get_schematic lists them. - get_schematic lists the properties not at their defaults (or those
shown, or all), the parts named or in a region, at most 200 with what
is left out; set_schematic says what it read of each section, and
describe_format explains every field of a .sch line. export_netlist
writes a SPICE or CDL netlist to a file; get_state lists the panes and
move_to_pane arranges them; screenshot takes the document on white
paper, the canvas as you see it, or the whole window and its dialogs. - Drawing: add_painting and edit_painting draw and change texts, arrows,
lines, boxes, text boxes and callouts, tables, dimensions and TeX
formulas by their fields - on a schematic, or on its symbol - each one
step to undo; delete and select take them by number, and get_schematic
lists them by their fields. - The measurements an amplifier is judged by: THD on a transient (each
harmonic's amplitude over the last whole periods of the fundamental,
as ngspice's .four), and on a loop gain its gain, phase margin and gain
margin...
Qucs-S enhanced v26.1.2
Qucs-S enhanced 26.1.2
The first tagged release of this repository: upstream Qucs-S 26.1.1 with the
crash classes of that release fixed and a set of workflow features added.
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).
Stability
- The dataset and schematic loaders no longer crash on damaged, truncated
or hostile files; a fuzzer and a hostile-fixture suite guard them. - Undo/redo and document reload keep no dangling element pointers.
- Autosave every two minutes, recovery of modified documents after a
crash, and a crash report written on the way down. - A modal dialog no longer blocks the application while a simulation runs.
- A quiet log: starting, opening Application Settings and drawing the
toolbars printed a screenful of warnings - icons whose sub-pixel blurs
QtSvg could not draw, the unset AdmsXml and ASCO folders read as
paths, a connection to a slot that does not exist, a console font only
Linux has, and on a first start an empty font setting and a blacklist
file of no name. Each is fixed where it came from. - A schematic opens whichever simulator is selected (upstream #1468). With
ngspice selected, a schematic holding a Qucsator-only part used to be
refused - the GUI offered to put an empty subcircuit in the part's place,
which the next save wrote over the original - and undo after switching
simulators lost such parts the same way; of the 247 shipped examples
ngspice refused 30 and Qucsator 93. Now every one opens under every
simulator; parts the simulator cannot take are drawn grey and named by
Check Schematic. The component panel still offers only the selected
simulator's parts. - A random walk over the main window under the memory checkers - every
mouse mode, drags interrupted by undo or delete, the menu commands,
dialogs filled with odd values - found crashes behind a double-click on
a wire (tidied away between the two clicks), a delete in the middle of
a drag, a double-click in the symbol view (the edited component ended
up in the symbol of every open document), Save All with a subcircuit
whose pins overlap, Align and Distribute, a paste with nothing on the
clipboard, and a hang when a diagram's limits became nan. All fixed,
each with a test. - A subcircuit that includes itself, directly or through others, no
longer crashes the netlister. A property value of a megabyte (a PWL
list of many thousand points) no longer stalls the netlist for minutes
or makes an image export ask for tens of gigabytes: the canvas shows
its first 1,000 characters, and a raster export is fitted into 100
megapixels. - Large schematics load and edit in time proportional to their size:
loading, undo and every edit that tidies the wires grew with the square
of it, so at 16,000 components a load took 3 s and rotating one
resistor froze the window for 9 s. Now 0.5 s and 0.1 s. Deleting,
dragging and pasting large selections went the same way and are fixed
too. - A subcircuit pin numbered 2147483647 (typed into a Port's number) no
longer hangs opening the schematic that uses the subcircuit. - The same edit of the same schematic ends the same every time: tidying
the wires after an edit went through the connections in an order that
changed from run to run, so an edit of part of a schematic could leave
different wiring each time. It goes by place now. And a junction that
has to move goes to the closest of its connections (it could take a
farther one). - No crash on Save All after a paste that began in one tab and was
dropped into another, once the first was closed; nor on Close All (or
Close all left, right, but current) while a property was being edited
on the canvas.
Netlists
- Every built-in component was netlisted in every flavour and run through
ngspice (docs/bug_hunts/). Fixed: the 4-terminal transmission line
paired the wrong pins as a port; the symmetric transformer applied T1 and
T2 to the wrong windings; the 3 mutual inductors netlisted k12 for K13;
I(TRNOISE) used RTSAM for all three RTS times; the digital source and
the time-controlled switch played their pattern once instead of
repeating it; the VDMOS card carried a Temp that overrode the circuit
temperature and RQ=0 VQ=0 that broke its operating point; a relay with
the default Ron = 0 had no operating point; the Xyce JFET card contained
UseGlobTemp; the Xyce transient sensitivity had its .TRAN arguments in
the wrong order; XSPICE-based components were offered for Xyce. - Values follow Qucs notation: a bare "10M" is 10 mega (SPICE read it as
milli), "10 cm" is 0.1, "-1 MOhm" keeps its sign, "2*Rload" is braced so
the simulator evaluates it. - Properties the dialog showed but the SPICE netlist ignored either reach
it (the diode's ISR/NR and Cp, the JFET's N/XTI/BETATCE, the MOSFET's
NRD/NRS and Rg, a transmission line's Alpha as a lossy LTRA, the
potentiometer's contact resistance, error terms and tapers) or are
hidden under a SPICE simulator as Qucsator's (the DC block's settings,
the AC block's Noise, the delay of the controlled sources, ...). - What the simulator in use would drop from the netlist is a check
finding: a component not available for it, one without a SPICE model,
an implicit equation-defined device, a winding without its core. - The macOS bundle ships the SPICE subcircuits of the transformer, relay,
switch, coax line, winding and magnetic core (share/qucs-s/spicelibrary),
which earlier bundles left out, and finds its resources next to the app
wherever it is kept. - A .OPTIONS section keeps every line, however it is written: each line
of the editor becomes a .OPTION line of the netlist, and a line may be
an option with no value at all (noopiter, keepopinfo and the other
ngspice flags went without a word), several options at once
(gmin=1e-10 reltol=1e-4 became one option with a nonsense value), or
written out as a netlist line would be (.option method=gear). Before
that, the first option was dropped once the section had been edited.
The Xyce option package has a field of its own in the properties
dialog.
Simulation
- Check Schematic (Simulation > Check Schematic, F10): an electrical rule
check - duplicate names, open pins, loose wire ends, no ground, no
simulation block - listed on a Problems tab of the message dock; a click
on a row selects the element. Check Schematic and Subcircuits runs it
over the whole hierarchy. A simulation runs the check first and brings
the tab up on errors (the run goes ahead; the simulator has the last
word). - A ground symbol is no longer forced on every schematic: "A schematic
must have a ground symbol" under Simulation > Simulators Settings
(Before a simulation; on by default, as before). Off, ngspice, SPICE
OPUS and Xyce simulate a schematic without one - node 0 then comes from
a net labelled 0 or a component that brings it - and Check Schematic
warns instead of reporting an error. - Simulation > Generate Netlist writes the netlist of the schematic in
front into its Scratch folder and opens it, without simulating. - A Hierarchy and Netlist toolbar next to the simulation toolbar: descend
into the selected subcircuit, ascend, check this schematic only (the
yellow check) or with its subcircuits (the green one), generate and
save the netlist. - Embedded simulation console: the simulator's output, status and progress
in a dock (View > Simulation Console); Stop, Save netlist, Clear. Under
Simulation > Simulators Settings > Simulation console you can choose the
dock, a separate window, or the legacy modal window instead. - A Scratch folder per project, with a subfolder per simulated schematic,
holds the netlist, the raw output and the log of its simulation; a new
run of the same schematic updates its folder. Listed under a Scratch
category of the Content panel; Show Last Netlist / Show Last Messages
open the files of the schematic in front. - Verilog-A "Build All" from the Content panel's Verilog-A row, for
every .va of the project, and "Compile" on a .va file's row (or
"Compile N Files" on a selection of them). Open files with unsaved
changes are saved first or compiled as saved; OpenVAF's output comes
to the front of the docks at the bottom of the window, without a
warning in the log for each of its lines. - ngspice loads only the compiled Verilog-A models (.osdi) a circuit
uses: the types of the netlist's .model cards - the schematic's, its
subcircuits', and those of the libraries and include files it brings
in - against the modules each library of the project defines, one
library for each module (two builds of one module no longer clash).
The DC bias loads them too; its netlist loaded none, so a circuit with
a Verilog-A device could not show its bias. - Verilog-A is compiled when a simulation needs it: before an ngspice
simulation or the DC bias, a .va of the project that defines a module
the circuit uses is compiled with OpenVAF when its NAME.osdi is missing
or older than the source or a file it includes - edit, press F2. The
output goes to the simulation console; a source that does not compile
stops the run with OpenVAF's error. Check Schematic warns about a
Verilog-A component whose module is in no library or source of the
project. - Libraries carry their Verilog-A: with "Embed Verilog-A files in
exported libraries" (Application Settings > Settings, on by default)
Create Library puts the .va sources the subcircuits' models need, and
the files they include, into the library's folder - not the compiled
models, which run on one plat...