Skip to content
Back to skills

Ltspice

ASecurity

Build LTspice netlists, automate measurements, and investigate convergence or switching-converter simulation behavior.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 22, 2026
ai-agentspythongobashnodeperformance

Works with

  • cursor
  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 3 files and shows the line behind each finding

Scanned October 22, 2026

npx -y skills add alivirgo/Major-AI-Skills --skill ltspice --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ltspice?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ltspice
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alivirgo-ltspice/badge)](https://www.skillsdirectory.com/skills/alivirgo-ltspice)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ltspice
description: "Build LTspice netlists, automate measurements, and investigate convergence or switching-converter simulation behavior."
category: eda
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["ltspice", "spice-simulation", "analog-devices", "circuit-design", "convergence-tuning", "switch-mode-power", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
---

# Analog Devices LTspice Circuit Simulation AI Skill Guide (Claude)

## Overview & Engine Architecture
Analog Devices LTspice is a high-performance SPICE simulation engine engineered specifically for non-linear power electronics, switch-mode power supplies (SMPS), RF amplifiers, and mixed-signal circuits. LTspice features a **modified Berkeley SPICE3 core with proprietary solver enhancements**, multiple numerical integration engines (**Modified Trapezoidal, Trapezoidal, and Gear**), compact binary waveform format (**`.raw`**), and a native schematic format (**`.asc`**). Claude operates as a Principal Analog Power Electronics Engineer and SPICE Modeling Specialist, specializing in **switching converter stability & efficiency analysis**, **SPICE numerical convergence tuning**, **batch CLI parametric automation**, and **custom `.subckt` model integration**.

### LTspice Core Engine & Simulation Subsystems

```
┌─────────────────────────────────────────────────────────────┐
│                 LTspice Simulation Architecture             │
│                                                             │
│  Schematic & Netlist Ingestion                              │
│  ├── `.asc` Schematic & Hierarchy Parser                    │
│  ├── SPICE Netlist Generator (`.cir` / `.net`)              │
│  └── Sub-Circuit (`.subckt`) & Vendor Model Library Loader  │
│                                                             │
│  Mathematical Solver & Waveform Engine                      │
│  ├── Modified Nodal Analysis (MNA Matrix Solver)            │
│  ├── Dynamic Timestep Controller & Gear/Trap Integration    │
│  ├── Waveform Binary Streamer (`.raw` Data Engine)          │
│  └── Waveform Post-Processor (`.MEAS` Directive Evaluator)  │
└─────────────────────────────────────────────────────────────┘
```

---

## Operational Capabilities & Agent Directives

1. **SPICE Convergence Troubleshooting**: Remediate fatal `Time step too small` errors and infinite iteration loops on high-frequency switching converters by tuning integration methods (`method=Gear`), damping parameters, and timestep limits.
2. **Automated Batch Parametric Runs**: Author headless CLI scripts (`LTspice.exe -b -Run`) pairing with Python to iterate component values across temperature and tolerance corners.
3. **Measurement Directive Formulation (`.MEAS`)**: Construct precise `.MEAS` statements to compute power supply ripple, efficiency ($\eta = P_{\text{out}} / P_{\text{in}}$), bandwidth, slew rate, and total harmonic distortion (THD).
4. **Third-Party Model Ingestion**: Convert vendor PSpice, TINA-TI, and HSPICE models into native LTspice `.subckt` definitions, fixing pin ordering and unsupported mathematical functions.

---

## Production Python Automation: Automated Synchronous Buck Converter Efficiency Sweeper

Save this script as `run_buck_efficiency_sweep.py` (requires `pip install PyLTSpice` or runs standalone with binary parsing):

```python
"""
LTspice Automated SMPS Efficiency Characterization Tool
Executes batch simulations sweeping load currents (0.5A to 5.0A) and logs efficiency.
"""

import sys
import os
import subprocess
import re

LTSPICE_EXE = r"C:\Program Files\ADI\LTspice\LTspice.exe"

NETLIST_TEMPLATE = """* Synchronous Buck Converter Parametric Testbench
.param Rload_val = {r_load}
.param Vin_val = 12.0

* Power Stage
Vin IN 0 {Vin_val}
S1 IN SW GATE1 0 MYSW
S2 0 SW GATE2 0 MYSW
L1 SW OUT 10u Rser=10m
C1 OUT 0 100u Rser=5m
Rload OUT 0 {r_load}

* Ideal Gate Drive Signals (500kHz, 40% Duty Cycle)
Vgate1 GATE1 0 PULSE(0 10 0 10n 10n 800n 2u)
Vgate2 GATE2 0 PULSE(10 0 0 10n 10n 800n 2u)

.model MYSW SW(Ron=10m Roff=1Meg Vt=5)

* Simulation & Convergence Options
.tran 0 2m 1.8m 10n startup
.options method=Gear maxstep=10n

* Measurement Directives
.meas TRAN Vout_avg AVG V(OUT)
.meas TRAN Iout_avg AVG I(Rload)
.meas TRAN Pin_avg AVG -V(IN)*I(Vin)
.meas TRAN Pout_avg PARAM Vout_avg * Iout_avg
.meas TRAN Efficiency PARAM (Pout_avg / Pin_avg) * 100.0

.backanno
.end
"""

def sweep_efficiency(output_dir: str):
    os.makedirs(output_dir, exist_ok=True)
    load_resistances = [10.0, 5.0, 2.5, 1.25, 1.0] # Sweeping from ~0.5A to 5.0A at 5V output
    results = []

    print(f"--- [STARTING LTSPICE EFFICIENCY SWEEP: {len(load_resistances)} POINTS] ---")

    for idx, r_val in enumerate(load_resistances):
        cir_path = os.path.join(output_dir, f"sim_run_{idx}.cir")
        log_path = os.path.join(output_dir, f"sim_run_{idx}.log")

        with open(cir_path, "w") as f:
            f.write(NETLIST_TEMPLATE.format(r_load=r_val))

        # Run Headless Batch Simulation
        cmd = [LTSPICE_EXE, "-b", "-Run", cir_path]
        subprocess.run(cmd, check=True)

        # Parse .MEAS Results from Log File
        eff_val = 0.0
        pout_val = 0.0
        if os.path.exists(log_path):
            with open(log_path, "r") as lf:
                log_content = lf.read()
                eff_match = re.search(r"efficiency:\s+pout_avg/pin_avg\*100\.0=([\d\.]+)", log_content, re.IGNORECASE)
                pout_match = re.search(r"pout_avg:\s+vout_avg\*iout_avg=([\d\.]+)", log_content, re.IGNORECASE)
                
                if eff_match:
                    eff_val = float(eff_match.group(1))
                if pout_match:
                    pout_val = float(pout_match.group(1))

        print(f"  • Load R: {r_val:>5.2f} Ω | Power Out: {pout_val:>5.2f} W | Efficiency: {eff_val:>6.2f} %")
        results.append((r_val, pout_val, eff_val))

    print("\nEfficiency sweep completed successfully.")

if __name__ == "__main__":
    out_dir = r"C:\Temp\LTspice_Sweep"
    sweep_efficiency(out_dir)
```

---

## Technical Troubleshooting Matrix

| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **`Analysis: Time step too small` on Switching Circuit** | Numerical solver trapped in infinite slope transition on fast switching edges or non-linear diode recovery. | 1. In Simulation Command, add: `.options method=Gear maxstep=10n`.<br>2. Add small parasitic series resistance to inductors (`Rser=1m`) and capacitors (`Rser=5m`).<br>3. Set `cshunt=1e-15` to stabilize high-impedance floating nodes. |
| **Trapezoidal Ringing / Spurious High-Frequency Noise** | The standard Trapezoidal integration method oscillates around sharp square-wave step discontinuities. | 1. Change solver integration method to **Gear** (`.options method=Gear`) or **Modified Trap**.<br>2. In Control Panel $\rightarrow$ *SPICE*, ensure **Integration Method** is set to `Gear` or `Modified Trap`. |
| **Third-Party Model Ingestion Fails: `Unknown subckt / Syntax error`** | PSpice/HSPICE models using nested `.LIB` calls, proprietary table functions, or mismatched node count. | 1. Check `.SUBCKT` header for number of pins vs symbol pin count.<br>2. Replace `.FUNC myfunc(x) = ...` with `.PARAM myfunc(x) = ...`.<br>3. Flatten nested library includes into direct `.INCLUDE` directives. |
| **Simulation Runs Extremely Slow (<10ns/sec)** | Excessive timestep refinement caused by ideal switch model without transition slope (`Ron`, `Roff`, `Vt`). | 1. Ensure switch models define finite transition slopes: `.model MYSW SW(Ron=10m Roff=1Meg Vt=2.5 Vh=-1.0)`.<br>2. Avoid zero rise/fall times in voltage pulse generators (`trise=10n`, `tfall=10n`). |

---

## Command Line Syntax & Operational Recipes

```bash
# 1. Run Headless Batch Simulation on Schematic File
"C:\Program Files\ADI\LTspice\LTspice.exe" -b -Run "C:\Circuits\PowerSupply.asc"

# 2. Run Batch Netlist Simulation and Generate ASCII Waveforms
"C:\Program Files\ADI\LTspice\LTspice.exe" -b -ascii "C:\Circuits\Filter.cir"

# 3. macOS CLI Execution (via Application Bundle)
/Applications/LTspice.app/Contents/MacOS/LTspice -b -Run ~/Circuits/Amp.asc
```

### Essential File Locations
- **Windows User Models & Symbols**: `%USERPROFILE%\Documents\LTspice\lib`
- **Windows Global Installation**: `C:\Program Files\ADI\LTspice`
- **macOS Preferences**: `~/Library/Application Support/LTspice`

---

## Agent Operational Directive
> **MANDATORY**: For switch-mode power supply (SMPS) simulations, always specify non-zero rise and fall times (`trise`, `tfall`), add parasitic ESR (`Rser`) to passive elements, and set `.options method=Gear maxstep=...` to guarantee numerical convergence.

Files in this skill

  • SKILL.md8.9 KB
  • gemini.md7.7 KB
  • gpt.md7.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.