You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would very helpful to have the functions of time be written to disk, including their updates. Currently we do some subtle writing of the FoTs into volume data. Specifically, the FoTs are read from the cache at write time, not when the event is called. Doing it in the event would pose the challenge of how do you select which FoTs to write, since because the cache may be mutated at any time, different elements may send different FoTs. Trying to select which FoTs to use would be very complicated...
The current proposal after talking with @knelli2 is:
Add a H5 subfile that allows us to write FoTs to disk.
The subfile would contain groups for each FoT by name.
Each group holds subgroups indexing the FoT, e.g. 0.fot, 1.fot where it is guaranteed that 0.fot is valid for times before1.fot. This is to support changing the implementation of an FoT in the middle of an evolution. We need this for BNS where we want to change from Quaternion to QuaternionSettleToConstant
Each #.fot subgroup holds a serialized initial state of the FoT called initial_state that is just the vector of chars.
Each #.fot subgroup holds a Updates.dat that has the entries for calls to the FoT's update function.
Each #.fot has an attribute that specifies the validity range of the FoT.
Once we can write the FoTs, add that class interface can read back and create the functions of time. It's still not clear exactly what to return, maybe for each FoT some vector-like structure with validity ranges?
Update all the python code to get FoTs from the reductions file instead of it being in the volume file.
Remove writing the FoTs into the volume file.
This will also make it easier to read in FoTs for restarts, and will also make it easier to plot the FoT parameters over time to try and diagnose problems.
The text was updated successfully, but these errors were encountered:
It would very helpful to have the functions of time be written to disk, including their updates. Currently we do some subtle writing of the FoTs into volume data. Specifically, the FoTs are read from the cache at write time, not when the event is called. Doing it in the event would pose the challenge of how do you select which FoTs to write, since because the cache may be mutated at any time, different elements may send different FoTs. Trying to select which FoTs to use would be very complicated...
The current proposal after talking with @knelli2 is:
0.fot
,1.fot
where it is guaranteed that0.fot
is valid for times before1.fot
. This is to support changing the implementation of an FoT in the middle of an evolution. We need this for BNS where we want to change from Quaternion to QuaternionSettleToConstant#.fot
subgroup holds a serialized initial state of the FoT calledinitial_state
that is just the vector of chars.#.fot
subgroup holds aUpdates.dat
that has the entries for calls to the FoT'supdate
function.#.fot
has an attribute that specifies the validity range of the FoT.This will also make it easier to read in FoTs for restarts, and will also make it easier to plot the FoT parameters over time to try and diagnose problems.
The text was updated successfully, but these errors were encountered: