Arpad - Switch branches are somewhat tricky to implement correctly. In the case of if (analysis("static")) V(Out) <+ V0; else I(Out) <+ Scale * Cval * ddt(V(Out)); then only one contribution is done for a particular pass through the code; the I() contrib is not done at the same time that the V() is, so the V0 should be retained for the "static" part of the analysis. I've had some luck with obstinate simulators by declaring both branches: branch (t,b) out_v; branch (t,b) out_i; if (analysis("static")) V(out_v) <+ V0; else I(out_i) <+ Scale * Cval * ddt(V(out_i)); If you were switching R formulations, eg if (R < 1) V(out) <+ R * I(out); else I(out) <+ V(out) / R; and then later forgot to switch the form when doing noise: I(out) <+ white_noise(4*`P_K*$temperature / R, "thermal"); then when R<1, the V-contrib would be lost. This is case that the LRM is warning against. -GeoffreyReceived on Sat Oct 8 11:45:24 2005
This archive was generated by hypermail 2.1.8 : Sat Oct 08 2005 - 11:46:46 PDT