Element Reference
Supported circuit elements, source models, and adapter-facing element behavior.
This chapter is the canonical supported-subset reference for Circuit elements, directives, models, validation behavior, and limitations.
Element Reference
This section lists the accepted element statements and their current syntax. Parsing support and analysis-domain support are distinct. NPORT is AC-only; native S-parameter blocks also have a fixed-step transient path. Nonlinear devices and switches are intended for the transient solver. ModelSpace asset preservation is a separate contract from native netlist execution.
Passive Elements
R - Resistor
Rname n+ n- value
Value in ohms. Positive, non-zero.
L - Inductor
Lname n+ n- value
Value in henries. Positive, non-zero.
C - Capacitor
Cname n+ n- value
Value in farads. Positive, non-zero.
K - Mutual Inductor Coupling
Kname L1 L2 coupling_coefficient
Coupling coefficient from -1 through 1. References two inductor instance names.
Independent Sources
V - Independent Voltage Source
Vname n+ n- [DC dc_value] [waveform]
I - Independent Current Source
Iname n+ n- [DC dc_value] [waveform]
Waveform functions: SIN, PULSE, PWL, EXP, SFFM, AM. Parameter
order follows standard SPICE convention.
LTI Region Membership and Independent Response
Ideal independent voltage and current sources are LTI region members. A prescribed waveform changes the excitation, not the network operator. This applies to DC and to the supported time-dependent waveforms above.
Native ModelSpace import declares these sources with lti=true,
host_only=false, and the source, lti, and tdse_region_eligible
capabilities. Use the imported declarations unchanged when selecting a region.
An imported source with conflicting declarations is an SDK defect; report it
and reimport with the corrected SDK instead of editing qualification flags.
Region Pack construction separates two contributions:
- The port operator suppresses independent excitation: a zero voltage source becomes a short and a zero current source becomes an open circuit.
- The native Circuit source response becomes Pack IR: open-circuit voltage
for Z/Thevenin, or short-circuit current for Y/Norton. Runtime includes this
contribution through
tdse_step_ir().
The fixed generator_equivalent/thevenin_v1 model is also LTI: it is an
independent voltage source behind constant R/L. Its impedance remains in the
port operator. Import approximation disclosures still apply independently of
LTI eligibility. Dynamic generators and feedback-dependent models require
their own supported model definitions.
LTI classification does not guarantee a nonsingular port representation. Native qualification and solving still check topology, parameters, boundaries, and events. See Region Qualification.
B - Behavioral Source
Bname n+ n- V=<supported waveform expression>
Bname n+ n- I=<supported waveform expression>
The current implementation accepts the supported source waveform functions; it is not a general SPICE expression evaluator.
Controlled Sources
E - VCVS (Voltage-Controlled Voltage Source)
Ename n+ n- nc+ nc- voltage_gain
G - VCCS (Voltage-Controlled Current Source)
Gname n+ n- nc+ nc- transconductance
F - CCCS (Current-Controlled Current Source)
Fname n+ n- vsource_name current_gain
H - CCVS (Current-Controlled Voltage Source)
Hname n+ n- vsource_name transresistance
All four constant-gain controlled-source models are LTI. Current-controlled sources require the referenced voltage-source branch inside the selected region. Control terminals and dependencies cannot be cut across its boundary.
Semiconductor Devices
D - Diode
Dname anode cathode [is=val] [n=val] [vt=val]
Shockley diode model with the listed positive inline parameters.
Q - BJT (Bipolar Junction Transistor)
Qname C B E [S] model_name [AREA area]
Simplified Ebers-Moll model using IS, BF, BR, and VT from a .model
card of type NPN or PNP; it is not a full Gummel-Poon implementation.
Other BJT model parameters are rejected rather than silently ignored.
M - MOSFET
Mname D G S B model_name [W w] [L l] [M multiplier]
LEVEL=1 only (Shichman-Hodges, 1968). Unsupported LEVEL values:
LEVEL 2 (Grove-Frohman), LEVEL 3 (semi-empirical), LEVEL 6 (MOS6),
LEVEL 49 (BSIM3v3), LEVEL 54 (BSIM4). Frequency-domain blocks can represent
a supplied linearized response; they do not replace a nonlinear BSIM model.
Accepted model parameters are KP, VTO (or VT0), LAMBDA, and LEVEL;
other MOS model parameters are rejected rather than silently ignored.
The SPICE-to-ModelSpace-to-host path retains Q/M terminals, polarity and parameters and emits these same native Q/M statements. These models execute in Circuit and remain ineligible for an LTI Runtime region.
Switches
S - Voltage-Controlled Switch
Sname n+ n- nc+ nc- model_name [ON|OFF]
.model type SW with positive RON/ROFF (ROFF >= RON). Set thresholds
with VON/VOFF or with center/hysteresis VT/VH.
W - Current-Controlled Switch
Wname n+ n- vsource_name model_name [ON|OFF]
.model type CSW with positive RON/ROFF (ROFF >= RON). Set thresholds
with ION/IOFF or with center/hysteresis IT/IH.
ModelSpace import preserves voltage control terminals, current control branch, thresholds, and whether an initial state was explicitly specified. A native controller cannot also be overridden by a ModelSpace event schedule. A two-terminal event switch uses its declared event schedule instead.
Frequency-Domain Elements
NPORT - Touchstone Import
NPORT name p1 n1 [p2 n2 ...] FILE=path [TYPE=Y|Z]
Supports Touchstone Y/Z datasets such as .ynp, .znp, .y2p, and .z2p.
S datasets are not accepted by NPORT. AC analysis only.
S-Parameter Block
Sname nports p1 n1 [p2 n2 ...] FILE=path [Z0=value]
S-parameter block referencing a Touchstone .sNp or .ts file. This syntax
is distinguished from a voltage-controlled switch because the second token is
the positive port count and a Touchstone file token is present. Native netlist
execution supports AC and fixed-step transient convolution. Variable-step
transient execution does not support this block. The transient path samples
the supplied data on its FFT grid; it does not perform causality correction.
Use the qualified Circuit-to-Pack workflow when causality correction is
required. ModelSpace import currently preserves these frequency assets and
does not reconstruct them as executable host components.
Power-System Elements
XTAPZ - Tapped Series Impedance
XTAPZ name bus1 bus2 tap=value r=value x=value [phase=deg] [freq=hz]
tap, r, and x are required key/value options. tap and freq must be
positive; phase defaults to zero and freq defaults to 60 Hz.
Import preserves the element's reference frequency (omega_ref in
ModelSpace); the case frequency supplies a default only when it is absent.
ModelSpace Native Model Contracts
The installed registry contains 32 exact model identifiers. Host support and
LTI eligibility are determined by both kind and model; an unknown model
is rejected even if its kind resembles a supported resistor or source.
| Kind and model | Native Circuit representation | LTI region |
|---|---|---|
resistor, capacitor, inductor: linear_v1 | R, C, L | Yes |
conductance.linear_v1 | R with value 1/G | Yes |
controlled_source: vcvs_v1, vccs_v1, cccs_v1, ccvs_v1 | E, G, F, H | Yes, with control dependencies |
voltage_source, current_source: ideal_v1 | V, I and native IR | Yes |
generator_equivalent.thevenin_v1 | V behind fixed R/L | Yes |
line_pi.linear_v1 | Series R/L and half shunt C at each end | Yes |
shunt.linear_v1, shunt_load.linear_v1 | Fixed G/B converted to R and C or L | Yes |
load_zip.static_v1, zip_load.constant_z_v1 | Fixed G/B load | Yes |
snubber.rc_v1 | Series R/C | Yes |
mutual_coupling.linear_v1 | K with both referenced inductors | Yes |
tapped_impedance.linear_v1 | XTAPZ | Yes |
transformer_2w.linear_leakage_tap_v1, transformer_3w.linear_leakage_v1 | Native tapped branches | Yes |
diode.shockley_v1, diode.ideal_piecewise_v1 | D or declared piecewise switch approximation | No |
bjt.bjt_gummel_poon_lite_v1, mosfet.mos_level1_v1 | Q, M with supported model cards | No |
switch: ideal_event_v1, ideal_v1, model_parameters_v1 | Native S/W or scheduled control | No |
breaker.ideal_event_v1, fault.shunt_event_v1 | Native switch/event circuit | No |
frequency_domain_asset.sampled_matrix_v1 | Complete S/Y/Z frequency samples; native AC and region Pack; no direct host EMT | Yes |
external_unsupported.preserved_v1 | Preserved provenance; not executable | No |
load_zip.static_v1 stores a constant-impedance approximation, not voltage-
dependent constant-current or constant-power ZIP feedback. Its approximation
disclosure remains applicable even though the resulting operator is LTI.
The accepted lowerer aliases are line_pi.pi_v1,
shunt.admittance_v1, shunt_load.admittance_v1, and
load_zip.constant_z_v1; these do not add new electrical models.
Native construction initializes LTI declarations for every recognized fixed model. Region qualification additionally checks parameters, topology, dependencies and events. Provided numeric parameters must be finite numbers; invalid values are rejected without resistance clamping or branch removal. A zero-R/zero-L line has a native zero-voltage short. A shunt with an explicit second terminal uses that terminal as its return; one-terminal shunts use the case reference node.
Other Netlist Statements
Subcircuits
.SUBCKT / .ENDS / X
.SUBCKT name node1 node2 ...
...
.ENDS
Xinstance node1 node2 ... subckt_name
Subcircuits are expanded (flattened) at parse time.
Directives Ignored with a Parse Warning
These SPICE directives are recognized but produce a parse warning:
.temp, .ic, .nodeset, .option, .options, .dc, .op, .tf,
.meas, .measure, .plot, .func, .global,
.if/.elseif/.else/.endif,
.title, .csparam
Unsupported Elements
These produce a parse error with the element name for identification:
| Kind | Name | Alternative |
|---|---|---|
| J | JFET | Use M (MOSFET) or controlled sources |
| T | Lossless transmission line | Use lumped RLC equivalents |
| O | Lossy transmission line | Use lumped RLC equivalents |
| U | Uniform RC line | Use discrete RC ladder |
| Z | MESFET (GaAs FET) | Use M (MOSFET) |
NPORT transient analysis, MOSFET LEVEL > 1, and saturable magnetics are also unsupported.
Sampled frequency model in ModelSpace
Touchstone import persists frequency_data.frequencies_hz and interleaved
frequency_data.matrix_ri in the canonical case. Matrix order is frequency,
row, column, real/imaginary. Terminals are ordered p1,n1,p2,n2.
param_type selects S, Y or Z; z0 specifies the S reference impedance.
Interpolation (linear or log) and extrapolation (hold or linear) are
model parameters. Native Circuit samples this model before Builder causality
correction. The corrected spectrum goes directly to kernel construction.
The imported case executes without reading the source Touchstone file.
