-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Initialize old solution with the current solution on restart when it is not found in checkpoint #30135
base: next
Are you sure you want to change the base?
Conversation
@YaqiWang I think I understand restarting systems a bit better now, and I feel like we can easily implement a flexible restart where we can specify variables we want to restart. It's currently looping over all the variables found in the header |
Job Documentation, step Docs: sync website on 875842d wanted to post the following: View the site here This comment will be updated on new commits. |
…is not found in checkpoint idaholab#30111
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes sense to me. We do need a test for this, though.
Wouldn't a recover test that has something that depends on old values work?
@@ -19,6 +19,9 @@ | |||
const std::string RestartableEquationSystems::SystemHeader::system_solution_name = | |||
"SYSTEM_SOLUTION"; | |||
|
|||
const std::string RestartableEquationSystems::SystemHeader::system_old_solution_name = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a static definition of this vector name somewhere else? It would be nice to not hard code it here if we can get it from somewhere else
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see Moose::OLD_SOLUTION_TAG
There is a failing Bison test |
We want to be able to just load variables in a checkpoint file into individual variables like for the weighting functions in IQS with adjoint solution. |
@@ -264,6 +267,9 @@ RestartableEquationSystems::load(std::istream & stream) | |||
|
|||
bool modified_sys = false; | |||
|
|||
bool init_old_solution = !sys_header.vectors.count(SystemHeader::system_old_solution_name) && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will need to do the same for older
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If checkpoint only has current and old, which should go into older?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That can be an error? Otherwise, I would say old go to older.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If checkpoint only has current, current goes to older? That sounds too many conditionals.
Does the restart happen late enough that all objects have been initialized that request old and older states? |
Time integrator requests this in its constructor. I guess it will be safer if we throw an error if an object tries to do this when |
@loganharbour do you want to dig into this? Otherwise I can |
@YaqiWang and @NamjaeChoi have you had more time to think about this? |
@loganharbour I think Namjae and me are waiting for a help. |
Closes #30111.