-
-
Notifications
You must be signed in to change notification settings - Fork 199
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
Refactor checkConditions() code #542
Comments
Other checkConditions() related issues to take into account in this refactor: |
This issue is also related: #283 |
Based on a chat with @llorracc last week, my understanding is that there are three classes of conditions:
In the current code, there is only one method for testing for the violation of these conditions. But since one set of tests matters for solving the model, and another set of tests matters for simulating it, it follows that these tests should be handled separately and executed at different times. |
Right; the original code, though messy, did give varying responses attuned to these varying conditions.
I don't agree with that. People using these kinds of models are almost always going to want to simulate them, and it would be best for them to be forewarned at the time when they are solving the model if there will be problems simulating it. No point in working hard on calibrating or solving the solution part only to find that it is useless for your purposes when you get to the sim part. |
Do you mean varying responses in the print statements?
I don't disagree with this. But is it always a problem if a simulation does not have a steady-state distribution? I would propose that:
Even if you disagree and believe both checks should happen before running the solver, I think the main thing I'm getting at is that the two checks for model properties (nondegeneracy and ergodicity) should be separated in the code so it's possible to call one without the other. A user who knows what they are doing might want to calibrate a model and then test for one property, then the other. A designer of a dashboard might want to prevent a user from selecting values that lead to degeneracy, but not non-ergodicity. They can easily be different functions. |
Has this been resolved? |
The checkConditions() code is a bit messy.
Here's one reason:
525cb7e#commitcomment-37457605
There is a lot more that could be done to streamline this code.
The text was updated successfully, but these errors were encountered: