def test_subcircuit(self): circuit = Circuit('') circuit.include('.../mosdriver.lib') circuit.X('test', 'mosdriver', '0', '1', '2', '3', '4', '5') circuit.BehavioralSource('test', '1', '0', voltage_expression='if(0, 0, 1)', smoothbsrc=1) print(circuit)
circuit.gnd, 'PlateIn', 'PlateCtrl', circuit.gnd, transconductance=par.Cryo_gain) circuit.VoltageControlledCurrentSource(6, circuit.gnd, 'ColdPlate', 'ColdHeaterCtrl', circuit.gnd, transconductance=par.Cold_transcd) #Behavioral models circuit.BehavioralSource( 1, circuit.gnd, 'Heatercurrent', current_expression='4*SQRT(MAX(V(HeaterCtrl)*(2.01-V(HeaterCtrl)),0))') circuit.NonLinearCurrentSource(3, 'PlateIn', circuit.gnd, expression='V(PlateIn, 0)', table=par.Cryo_table) circuit.NonLinearCurrentSource(7, 'ColdPlate', circuit.gnd, expression='V(ColdPlate, 0)', table=par.Cold_table) #Emissive surface models
# from pylab import * import matplotlib.pyplot as plt import PySpice.Logging.Logging as Logging logger = Logging.setup_logging() from PySpice.Spice.Netlist import Circuit from PySpice.Unit import * from PySpice.Spice.BasicElement import BehavioralSource circuit = Circuit('Pulse') source = circuit.BehavioralSource('source', 'in', circuit.gnd, voltage_expression='time^4*exp(-1000*time)') # look like a " is simply discarded # source = circuit.BehavioralSource('source', 'in', circuit.gnd, voltage_expression = '"time^4*exp(-1000*time)') circuit.R(1, 'in', 'out', u_kOhm(9)) circuit.R(2, 'out', circuit.gnd, u_kOhm(1)) print(circuit) simulator = circuit.simulator(simulator='ngspice-shared') # the commented out version next line works #simulator = circuit.simulator(simulator='ngspice-subprocess') transient = simulator.transient(step_time=u_ms(1e-3), end_time=u_ms(20), log_desk=True)