Electronic – ngspice not printing currents for any circuit

currentspice

I'm reading an EE book that references SPICE so to follow along on my linux machine I installed ngspice. I can't output current for any circuits! I've tried passing the file with -r option and multiple circuits. Can never get a current output!

I googled and tried other posts this but nothing seems to work. I'm starting to wonder if this is an install / configuration issue?

Starting with a simple series circuit with the intent to print voltage at each resistor and current at my source I loaded the following netlist:

series circuit
v1 1 0
r1 1 2 3k
r2 2 3 10k
r3 3 0 5k
.dc v1 9 9 1
.print dc v(1,2) v(2,3) v(3,0) i(v1)
.end

and received errors:
Warning: v1: has no value, DC 0 assumed
Warning: can't parse '0': ignored

My voltage outputs are correct per hand calcs so I know ngspice is calculating the right current.

reducing .print line to just get current::

.print i(v1)

yields error:

Error: .print: no i(v1) analysis found.

I've also tried defining my source different as:

v1 1 0 dc 9

same errors.

I've tried many different circuits and can never get ngspice to output current for my sources (I have created 0 voltage sources near resistances on parallel circuits as well).
The voltage outputs are all correct

I also tried a netlist with no .print line (I thought I've seen others with default output):

series circuit
v1 1 0 dc 9
r1 1 2 3k
r2 2 3 10k
r3 3 0 5k
.end

with this error:

Note: No ".plot", ".print", or ".fourier" lines; no simulations run

isn't there a default output without needing a .print line?

More importantly is there a configuration file not setup properly? thoughts?

any direction is greatly appreciate… Thank you

Best Answer

Your first circuit is correct, you don't have errors, just warnings. You can ignore the warning about v1 or define it with a value like v1 1 0 9. I've just tested your initial circuit with ngspice (linux) and it did give the correct value for the current (-5.00000e-04) through the source v1.

.print i(v1)

yields error:

Error: .print: no i(v1) analysis found.

You forgot the analysis type parameter before the output variable: .print dc i(v1).

Note: As mentioned on this answer How to plot current in ngspice? with ngspice you only can get currents through independent voltage sources. If you have a more complex circuit you would need to add a zero volt source (in series) with the component to get its current.