Open jeanbraun opened 2 years ago
Hi Jean,
The first issue is a bug (thanks for reporting it): in the line below the shift value should be -1 instead of 1.
The second issue is actually expected behavior in xarray-simlab, which could be clarified in the documentation. For all output variables, snapshots are saved between the run_step
and finalize_step
simulation stages. So in your example the value of the junk
variable is incremented before being saved (you should increment it within the finalize_step
stage instead to get the desired behavior). This is because we currently make no distinction between intent='out'
and intent='inout'
variables and because variables with intent='out'
may have undefined (or outdated) values before executing run_step
.
I admit that it was probably a design mistake and a better solution might be to save snapshots before run_step
for "inout" variables and after run_step
for "out" variables (and probably get rid of finalize_step
).
Hello @benbovy,
I noted a strange behavior with the framework. It is illustrated in the following basic model. It should produce an output array that goes from 0 to 1 by updating the a variable
junk
by one unit per time step. At every time step it also prints the value ofjunk
as well as thestep_start
andstep_end
times.Two features seem unrealistic: first, the end times are smaller than the start times and the first end time is not defined; second, the result seems to be stored in the final array
ds_out.empty__junk
with a negative offset of -1 and the result for the last time step is repeated from the previous one (i.e., the output should be[0,1,2,3,4,5,6,7,8,9,10]
whereas it is[1,2,3,4,5,6,7,8,9,10,10]
).Am I doing something wrong or is it a problem with the framework? I am surprised that we would not have noted this behavior before. I attach a description of the environment I am using for this.
Thanks in advance for your help
Jean
xsimlab.yml.txt xsimlab.list.txt