I tried to add a delay in the results callback and it works great to slow down the simulation. I will take a look at external voltages sources, to control behavioral resistors. Thanks for the good ideas!
Hi, I am trying to use ngspice to create an interactive simulation where the user can change properties of the circuits being simulated (e.g., adjust a potentiometer or close a switch). For that, I need to control the simulation speed of ngspice (slow it down) as some parameters of the circuit may need to be changed. I have tried some options, but I found some issues: Halting the simulation and resuming it. The problem with this approach is that ngspice can simulate very fast sometimes and I need...
Thanks for the explanation. But why do I get several calls for the same time step? Should I not receive one per time step or is the interp option not taken into account for the callbacks? Time and voltage does not seem to change... sdata() veccount: 27; vecindex: 54, time: 1.3499999999999992, v(4): 3.2582054796697899 sdata() veccount: 27; vecindex: 54, time: 1.3499999999999992, v(4): 3.2582054796697899 sdata() veccount: 27; vecindex: 55, time: 1.3749999999999991, v(4): 5.2878398632903876 sdata()...
Thanks for the explanation. But why do I get several calls for the same time step? Should I not receive one per time step or is the interp option not taken into account for the callbacks?
duplicated
duplicated
Yes, adding ".save @r1[p] all" fixes the crash. In any case, that line seems that it is not necessary if you wait until the background thread finishes the calculation. What it puzzles me is that it also does not crash if we do not pass the pointers to the callbacks SendData and SendInitData. What about the number of messages received in the callback of SendData? I received 8 calls for index 0, then one call per index and then suddelnly I receive hundreds or thousands of calls for some index (e.g.,...
Yes, adding ".save @r1[p] all" fixes the crash. In any case, that line seems that it is not necessary if you wait until the background thread finishes the calculation. What it puzzles me is that it also does not crash if we do not pass the pointers to the callbacks SendData and SendInitData. What about the number of messages received in the callback of SendData? I received 8 calls for index 0, then one call per index and then suddelnly I receive hundreds or thousands of calls for some index (e.g.,...