-
-
Notifications
You must be signed in to change notification settings - Fork 566
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
Issue 2382 separate model classes #2385
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…-team/PyBaMM into issue-2382-separate-model-classes
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Create new classes for
ParameterisedEquations
andDiscretisedEquations
. Fixes #2382To maintain backwards compatibility with the inplace processing, these are assigned to the
equations
attribute of theBaseModel
class (and hence all model classes). Theequations
attribute starts asSymbolicEquations
, which allows assignment of rhs, algebraic, etc. After setting parameters, it becomesParameterisedEquations
, which no longer allows modifications of attributes after they are assigned in the init function. After discretisation, it becomesDiscretisedParameters
(no assignment possible).The
variables
attribute of theParameterisedEquations
andDiscretisedEquations
classes is theOnTheFlyUpdateDict
, which initially has no entries. Entries are updated by setting parameters/discretising the variable the first time it is called (similarly to howsolution.update
works). This fixes #2242In future, we can follow this style for the base solver, creating new equations such as
JaxEquations
,CasadiEquations
, andPythonEquations
, and hence cleaning up a lot of the code inBaseSolver
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.
Key checklist:
$ flake8
$ python run-tests.py --unit
$ cd docs
and then$ make clean; make html
You can run all three at once, using
$ python run-tests.py --quick
.Further checks: