--
You received this message because you are subscribed to the Google Groups "xyce-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xyce-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/xyce-users/1e0fc709-8c57-4817-8769-9da5a3b6382bn%40googlegroups.com.
Hi John,
Thanks for your interest in Xyce.
When a simulation fails with “Time step too small” error in Xyce, you can look at the “Transient failure history” in Xyce output to help identify the problem. You can identify if the error is caused by LTE or nonlinear solver failure. The column EstErrOverTol is related to LTE and it should be less than 1. The 3 columns for nonlinear solver show the nonlinear solver status. If the time step too small error is due to nonlinear solver failure, the column node name/index tells you which node in the circuit has the largest abs value in the residual |F| vector which is one way that led nonlinear solver to fail. You can then look at the node in the circuit to see if there is any issue in this case. The large nonlinear solver update dx is another common way for nonlinear solver to fail. Also, device convergence failure and a few other things cause nonlinear solve to fail. Both LTE and nonlinear solver failures force Xyce to cut time steps. This can affect performance and you will get time step too small error if Xyce keep cutting time steps.
From the timing statistics, it looks like each cycle takes a lot of time steps. And most of the failed steps are due to nonlinear linear solver failures 3173 out of 3461. The device evaluation takes 87% of the time which seems high. From the device count summary, there are 40 behavior sources. What expressions do you use in these sources? Are they continuous? Discontinuity in the device models can lead to nonlinear solve failures. You can also use a profiler to see which part of the device evaluation takes majority of the time for your circuit, as one of the users suggested.
BTW, does Xyce have difficulty solving DC op using default Spice strategy? Why continuation=9 is used which is rarely used pseudo transient method and is not the same pseudo transient as what is implemented in other SPICE-like simulators.
Thanks,
Ting
From: xyce-...@googlegroups.com <xyce-...@googlegroups.com>
On Behalf Of John Mayega
Sent: Thursday, January 18, 2024 6:11 AM
To: xyce-users <xyce-...@googlegroups.com>
Subject: [EXTERNAL] [xyce-users] Re: Simulations gradually slows over time and finally fails with "time step too small"
Some people who received this message don't often get email from jo...@metrio.co. Learn why this is important |
Hi John,
Thanks for the update.
Yes. Xyce cuts time steps due to nonlinear solver failure according to the history. It seems that the node 153/out_fb has the largest residual in residual vector (KCL is not satisfied in this node based on tolerance). Xyce does not take the maximum iterations (20) in this case. Instead, it only takes a few iteration and determines that it fails the nonlinear solver. It is a near convergence case and by default Xyce treats it as failure. The residual is close to RHS tolerance (1e-2 for transient analysis), but not reach the tolerance.
If you adjust RHStol using .options nonlin-tran or use .options timeint NLNEARCONV=1 (so Xyce treats near convergence as success instead of failure), you may be able to go further. But we do not normally recommend these. The default RHS tolerance of 1e-2 for transient is already pretty loose (KCL equation tolerance) and near convergence is not real convergence. One could still get convergence problem later in the simulation depending on the circuits.
Before the simulation is close to time step too small, the simulation takes small time step (1e-12 – 1e-11) due to nonlinear solver failure. Are the resistors and capacitors that are connected to node 153 expression based ones? Are these expressions continuous? Or do you set enough parasitic related parameters in the transistor model that is connected to this node?
By behavior sources, we do not mean independent sources. We mean the nonlinear behavior sources listed as B level 1 (Expression Based Voltage or Current Source) in the device count summary. Check the expressions used in these sources to see if they are continuous and smooth.
The device evaluation in this new simulation takes even more time, >90% of the run time. It is hard to know which devices led to this without the circuit or/and running a profiler on this circuit. It may or may not be a Xyce code issue.
Thanks,
Ting
From: John Mayega <jo...@metrio.co>
Sent: Friday, January 19, 2024 4:06 AM
To: XYCE <XY...@sandia.gov>
Cc: xyce-users <xyce-...@googlegroups.com>
Subject: Re: [EXTERNAL] [xyce-users] Re: Simulations gradually slows over time and finally fails with "time step too small"
You don't often get email from jo...@metrio.co. Learn why this is important |
Thank you for the feedback. It appears based on your feedback that when the simulation runs until it fails that it is a non-linear solver issue. However, before it fails the simulation slows down under similar stimulus conditions. I believe, the node which fails does not have anything special characteristics (shown below). Yes, the simulator does have difficulty solving the dc operating point with the standard settings. The only settings which seem to work are continuation=9 and/or using the "uic" option in the .tran statement.
Node of concern:
You received this message because you are subscribed to a topic in the Google Groups "xyce-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/xyce-users/SkT4cB9pHdI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to xyce-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/xyce-users/f105ad93-ffb6-42f1-8cd0-acf23e6c6eban%40googlegroups.com.