Browse Source

update to the limit function for ps compatibility.

The output will stay between the two limits given.
Tere is no prescription which of the two is upper
or lower.
This function will not solve all PS-Spice
compatible model convergence issues. We better look
for a built-in function with smooth, steadily
differentiable corners.
pre-master-46
Holger Vogt 5 years ago
parent
commit
d0a8e6ac51
  1. 4
      src/frontend/inpcom.c

4
src/frontend/inpcom.c

@ -7636,7 +7636,9 @@ static struct card *pspice_compat(struct card *oldcard)
new_str = copy(".param gmin = 1e-12");
nextcard = insert_new_line(nextcard, new_str, 3, 0);
/* add funcs limit, pwr, pwrs, stp, if, int */
new_str = copy(".func limit(x, a, b) { max(min(x, a), b) }");
/* LIMIT( Output Expression, Limit1, Limit2)
Output will stay between the two limits given. */
new_str = copy(".func limit(x, a, b) { ternary_fcn(a>b, max(min(x, a), b), max(min(x, b), a)) }");
nextcard = insert_new_line(nextcard, new_str, 4, 0);
new_str = copy(".func pwr(x, a) { pow(x, a) }");
nextcard = insert_new_line(nextcard, new_str, 5, 0);

Loading…
Cancel
Save