Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strange behavior when algebraic loop solution misses tolerance #1336

Open
rruusu opened this issue Oct 31, 2024 · 2 comments
Open

Strange behavior when algebraic loop solution misses tolerance #1336

rruusu opened this issue Oct 31, 2024 · 2 comments

Comments

@rruusu
Copy link

rruusu commented Oct 31, 2024

Description

When algebraic loop solution produces a warning about not reaching the desired tolerance, the simulation may produce unreasonably erroneous results.

This seems to be caused by omitted transfer of values from outputs to inputs after said warning occurs.

Expected behavior

Even if the tolerance is only barely missed, the effects on the overall solution tolerance should be proportionate.

Version and OS

  • Version: OMSimulator v2.1.2.post5-gce342b6-mingw-notlm-debug
  • OS: Windows 11, 64-bit
@rruusu
Copy link
Author

rruusu commented Oct 31, 2024

The culprit seems to be this return statement in oms::SystemSC::stepUntil that terminates the loop over all connections, even if the return value indicates just a warning. In this case, the simulation continues with some connections omitted entirely.

@lochel
Copy link
Member

lochel commented Nov 9, 2024

Thanks, good catch. Do you have an (preferably minimal) example to trigger this problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants