-
Notifications
You must be signed in to change notification settings - Fork 25
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 TTim to compute per log t-interval #74
Conversation
Release 0.6.7
- convert to dict: (self.tintervals, self.p) - rename npint to nppar - create separate compute_laplace_parameters_interval() - add initialize_interval() method - move laplace init to intialize()
- rename potential to potentialall - rename potentialone to potential
- add solve_interval() method
- convert eigvec, eigval, coef, lab to dictionaries - add initialize_interval() method
- convert term, flowcoef, dischargeinf and dischargeinflayers to dictionaries - add initialize_interval method
rename potinfone to potinf
- convert self.parameters to dict - add initialize_interval method - modify setflowcoef()
- make it Abstract BaseClass - force overloading of abstractmethods - add initialize_interval() - rename potential to potentialall - add new potential method with t_int as additional argument - rewrite potinflayers to use t_int - npint -> nppar
- use t_int for accessing arrays from dictionary variables
- npint -> nppar - use enumerate
Great start!
|
fix divide by zero error Still gotta clarify the lababs array
Good idea, we can use dtype=complex instead.
Yea this is a temporary thing, I wasn't sure yet if we still want to have a method that is maybe slightly more efficient in calculating the heads across all time-intervals. But good idea to add the underscore if it's only for testing.
I thought it would be nice if logtintervals was always sorted, even after solving a separate intervals in a random order. So that's why.
This should be very simple to add back in. The way I programmed it now was to check whether t_int was in Model.logtintervals, but we can easily add back a comparison to the actual intervals, or add a special case for the final interval.
Agreed! |
- TODO: check the adjustments for the methods currently not used by the Well class and example notebook
Not quite there yet
No errors, but not the right answer yet
could maybe be simpler
headwell not yet
Next up: w.discharge and w.headinside
Fixed storing parameters in solve, and potinflayers, unitpotentiallayers. |
Useful for testing
ttim/well.py
Outdated
def initialize_interval(self, t_int): | ||
super().initialize_interval(t_int) | ||
self.parameters[t_int] = np.zeros( | ||
(self.model.ngvbc, self.nparam, self.model.nppar), "D" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dtype=complex
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is now fixed. What is still undesirable is that now all Well classes have an initialize_interval
function. Seems repetitive. Let's discuss.
I think this PR can be closed and deleted as we have decided, for good reasons, that we are not going to do this. |
First attempt at refactoring TTim. Changes only done for Well Element and everything needed to compute the Theis solution.
If this looks okay, I'll implement the changes for all Elements.