Skip to content
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

Request: Enable restarting at EOL node #945

Closed
keckler opened this issue Oct 18, 2022 · 8 comments
Closed

Request: Enable restarting at EOL node #945

keckler opened this issue Oct 18, 2022 · 8 comments
Labels
feature request Smaller user request

Comments

@keckler
Copy link
Member

keckler commented Oct 18, 2022

Sometimes there are calculations performed at the EOL step. Right now, if you want to restart to that point, the best you can do is to restart to the last (cycle, node), but that still puts you at the beginning of that (cycle, node) (at least that is my understanding), and then you have to traverse all the interfaces at the time point.

It'd be nice to be able to skip all the calcs of the last (cycle, node) and just go straight to the EOL step.

Seems like this should be possible.

@john-science john-science added the feature request Smaller user request label Oct 22, 2022
@john-science
Copy link
Member

It sounds like most people in this scenario would just load the Database, after the simulation is done, to do analysis.

Is there a reason using the "restart" logic is easier than that?

@keckler
Copy link
Member Author

keckler commented Oct 24, 2022

Well, I'm not talking about some minor post-processing calculations here. I have numerous interfaces in the stack that have interactEOL() hooks with heavy calculations. I guess what you're saying is possible, but then I'd have to trigger the interfaces myself, instead of just running through the stack.

In the past few days, I've had to redo those EOL calculations numerous times, and it's been a little annoying having to repeat all the calculations from the last cycle/node before being able to get to the EOL step.

To me, EOL is a step, and restarting at that step seems like it should be possible.

This is just a request, not urgently needed. But somewhere that the code is currently lacking that could be improved.

@john-science
Copy link
Member

john-science commented Oct 24, 2022

That makes sense.

Let's see, the relevant lines of code are here:

startCycle = self.cs["startCycle"]
startNode = self.cs["startNode"]
with Database3(reloadDBName, "r") as inputDB:
loadDbCs = inputDB.loadCS()
# pull the history up to the cycle/node prior to `startCycle`/`startNode`
dbCycle, dbNode = getPreviousTimeNode(
startCycle,
startNode,
self.cs,
)

And that gets called by Database3._activateDB().

I believe this would be a minimal-effort, low-impact change. I'm on board.

@john-science
Copy link
Member

@keckler This ticket is still assigned to you. That's cool with me, but if you aren't planning on working on it, please un-assign it.

(You are not being singled out, I am going through all the ARMI tickets.)

@keckler keckler removed their assignment Mar 17, 2024
@keckler
Copy link
Member Author

keckler commented Mar 17, 2024

Just unassigned myself.

@john-science
Copy link
Member

There is a PR currently open that should greatly simplify this ticket.

Essentially, the EOL will be correctly in place now, and differentiable from the last cycle, node combination. Now we just need to update getPreviousTimeNode() with some way to access the EOL data in the DB:

def getPreviousTimeNode(cycle, node, cs):

We could allow for "EOL" to be provided as a string. Or use -1 to represent it, or something.

But it should be quite doable now.

@john-science
Copy link
Member

@keckler Can we close this ticket now?

@keckler
Copy link
Member Author

keckler commented Aug 1, 2024

Yes, I suppose that after #1100 , the EOL isotopics are no longer stored. So this ticket is now irrelevant.

@keckler keckler closed this as not planned Won't fix, can't repro, duplicate, stale Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Smaller user request
Projects
None yet
Development

No branches or pull requests

2 participants