Hi all
I am running the Shakti model on ISSM. I am using the model for data assimilation. In the data assimilation process, I forecast the values of the various variables for the next time step, and then perform an analysis step, where I compare the forecast values with true data values and make changes to my forecast values to reduce the error between the forecast values and the true data values; then I run the simulation for one time step for the next forecast step again. I am confused as to what happens if I run solve over a model md that already contains results from a previous run. For example, does it use the new hydrology gap height values from the end of the previous run as its initial gap height for the current run? I tried running solve over a model which already contained md.results.TransientSolution and when I compared the initial gap height for the first run and the second run (by running md.hydrology.gap_height-md2.hydrology.gap_height), they were exactly the same.
Does this mean that both runs started with the same initial gap height? When I run md.results.TransientSolution(1).HydrologyGapHeight-md2.results.TransientSolution(1).HydrologyGapHeight, I get a non-zero difference (md and md2 have same moulin input, and most other variables also have same values, its just that I have run md2=loadmodel('md.mat') and then used md2=solve(md2,'Transient'); save md2.mat md2; ). Does this mean that md2 was using the end result Hydrology Gap Height of md as its initial Hydrology Gap Height? If so why does this new initial gap height not reflect in md2.hydrology.gap_height?
I am asking all of this because I need to change the values of the md.results.TransientSolution(end) in the analysis step as I explained above. Do I add these changed values (stored in, say an array named new_gap_height) of md.results.TransientSolution(end).HydrologyGapHeight to md2.hydrology.gap_height (where md2 is obtained by md2=loadmodel('md.mat') ) before running solve(md2,'Transient') or do I add these changed values to md2.results.TransientSolution(end).HydrologyGapHeight (i.e. by running md2.results.TransientSolution(end).HydrologyGapHeight=new_gap_height) before running solve(md2,'Transient')? If it is the second option, what happens to md2.results.TransientSolution(end).HydrologyHead and md2.results.TransientSolution(end).EffectivePressure, since these are interdependent values? Can I change the values of md2.results.TransientSolution(end).HydrologyHead without changing the values of md2.results.TransientSolution(end).EffectivePressure and run solve(md2.'Transient') without any problems? If its the first option, this situation would likely not be a problem since I can just change md2.hydrology.head=new_head(where new_head is the changed values of md.results.TransientSolution(end).HydrologyHead), and there is no field for effective pressure in class hydrologyshakti() to worry about.