-
Notifications
You must be signed in to change notification settings - Fork 123
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
different "meaning" of report_step in writeTimeStep is not catered for #768
Comments
BTW: As restart information is not written for substeps at least the restart information is not affected. In the example the intermediate substeps 1,2 will not be written. |
Let's continue the debugging session a little more:
|
opm-output gets its report step from the simulator and it's up to the simulator code to give the correct step. Obviously this surfaces in opm-output, but the root is likely in the simulator. |
Also, currently output expects data to be added in a linear fashion, i.e. write( 1 ) must come before write( 2 ) ... write( n ), n must be strictly increasing. We might relax this restriction later but that's a lot of work. |
Ergo, this is a real bug. May I ask what the report step is used for in |
@dr-robertk So the real questions are: Where is the report_step manipulated in the adaptive time stepper ? I have troubles to find this. |
@jokva report_step is also passed to |
@blattms probably is, yeah. Good catch. The |
Just to be sure that I comprehend how this output writing is supposed to work: Let us say we simulate from report step 0 (0 days) over report step 1 (3 days) up to report step 2 (5 days), the adaptive time stepper chooses a constant step size of 1 day, and GEO_MODIFIER at report step 1, then the following is written
Would it matter to output/ert if we would use the wellstate that was used in the computation, e.g on day 3 the wellstate as of report step 0? |
Sorry: Output in itself is complicated an very much in flux. Getting it to work on MPI is unrealistic while the rate of change is so high. |
Yes. I haven't thoroughly tested this particular case, but it's the last write of report step N that ends up showing up in report step N, and it does not accumulate within one time step. The underlying assumption is that data given to output from the simulator is complete and correct. |
Ooops, seems like I broke the report step number used when writing in my local version. It should to the writing with acending report step in master, Thanks for the help and sorry for the noise. @jokva Thanks for the answer. That might help. Closing as invalid |
Splendid, hope it works out. I'd like to re-emphasise that output has no concept of adaptive time stepping and probably never wants to care. It's a rather stupid construction really, and assumes that whoever calls the shots have these things under control. |
I am reporting this here but the problem is also in EclipseWriter::writeTimeStep.
The problem is that report_step is used to get the Well definitions from the Parser, but this only works for non-adaptive time stepping. During adaptive time stepping writeTimeStep might be called like in this gdb session (report_step=0, 1, 2, 1):
What I am wondering is what this means for the call
this->impl->rft.writeTimeStep
if report_step is actually the number of the adaptive timestep.The problem is there for the parallel output where the report_step is used to create the WellState from the parser.
The text was updated successfully, but these errors were encountered: