Added method=gear back to ngspice simulation to fix convergence bug.

This commit is contained in:
Matt Guthaus 2018-02-07 21:07:11 -08:00
parent e8f658d356
commit 54c21f6282
1 changed files with 8 additions and 6 deletions

View File

@ -209,12 +209,14 @@ def write_control(stim_file, end_time):
""" Write the control cards to run and end the simulation """ """ Write the control cards to run and end the simulation """
# UIC is needed for ngspice to converge # UIC is needed for ngspice to converge
stim_file.write(".TRAN 5p {0}n UIC\n".format(end_time)) stim_file.write(".TRAN 5p {0}n UIC\n".format(end_time))
# if OPTS.spice_name == "ngspice": if OPTS.spice_name == "ngspice":
# # ngspice sometimes has convergence problems if not using gear method # ngspice sometimes has convergence problems if not using gear method
# # which is more accurate, but slower than the default trapezoid method # which is more accurate, but slower than the default trapezoid method
# stim_file.write(".OPTIONS POST=1 RUNLVL=4 PROBE method=gear\n") # Do not remove this or it may not converge due to some "pa_00" nodes
# else: # unless you figure out what these are.
stim_file.write(".OPTIONS POST=1 RUNLVL=4 PROBE\n") stim_file.write(".OPTIONS POST=1 RUNLVL=4 PROBE method=gear\n")
else:
stim_file.write(".OPTIONS POST=1 RUNLVL=4 PROBE\n")
# create plots for all signals # create plots for all signals
stim_file.write("* probe is used for hspice/xa, while plot is used in ngspice\n") stim_file.write("* probe is used for hspice/xa, while plot is used in ngspice\n")