-
Notifications
You must be signed in to change notification settings - Fork 122
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
Remove Solver template parameter for AdaptiveTimeStepping::step() #5917
base: master
Are you sure you want to change the base?
Conversation
Remove the template paramater Solver used with the AdaptiveTimeStepping::solve() method. Replace the template parameter with a equivalent Solver value from Opm::Properties::
jenkins build this please |
The jenkins build reports the compile time error:
Meaning that
to use the
and recompile, I get another error
@akva2 Any idea on how to solve this? |
By defining
the compiler will use the definition of opm-simulators/opm/simulators/flow/FlowProblemBlackoilProperties.hpp Lines 65 to 66 in 6bfb60d
which uses
Note that this uses a capitial "O" in BlackOilModel, whereas the one defined in
uses a lower case "o" in BlackoilModel. What will be the best way to solve this? |
The Model in the typetag is the 'ewoms' (opm-models) type model, while the BlackoilModel.hpp is the opm model which is not the same thing. Welcome to the domain of frankenstein. There is no typetag entry for the latter. |
Yes, indeed 😅 a scary place to enter
Then as a next attempt I would simply try to do the following in
Although this actually works for most opm
which includes
which includes
If now
which will include
which defines the
which will use
which uses a which leads to the following compilation error
|
If you don't mind me asking, what problem are you trying to solve by this? You're taking a specific direction, but I guess I'm missing the bigger picture/context for this change. |
@bska Good question. In the beginning I just wanted to be able to declare the solver as a class variable of AdaptiveTimeStepping. However, I realized later that that would be difficult due to the serialization of AdaptiveTimeStepper. So currently I think of this as a merely cleanup or simplification of the current code. I was also curious why or if this template parameter was necessary. Now as as the complexity of the problem is clearer to me, we might just leave it there? Though, the difficulty of removing it might indicate some deeper issues with the type/property system that could be worth investigating. What do you think? |
@akva2 There is also path of include files such that if one includes the opm model in
and
and
and
and
and
and
and
I think this is what causes the redefinition of the
|
Removes the template parameter
Solver
used with theAdaptiveTimeStepping::solve()
method. Try to replace the template parameter with a equivalentSolver
value from theOpm::Properties::
namespace. I am currently debugging this, so I will put it in draft mode for now.