-
Notifications
You must be signed in to change notification settings - Fork 9
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
Feature Request: Warm Start #6
Comments
I've added a "RunControl": {
"WarmStart": true
} Then at least CAPE will get out of your way and not set |
Ok! So commit "RunControl": {
"WarmStart": true
} This will just tell The second method actually has CAPE do all the work for you, and works a little bit like this: "RunControl": {
"WarmStart": true,
"WarmStartFolder": "../../poweroff/m%(mach).2fa%(alpha).1f",
"WarmStartProject": null
} When you try to start a case, it's going to look for a grid file and a The WarmStartProject flag is optional, and it's primary feature is allowing you to start the new (warm-started) case from an adapted mesh in source folder. So you could set this to I should probably add a WarmStartIter flag so that the case won't start unless the source folder has run to an explicit step (currently it'll run as long as any Regarding your "seed conditions" concept, one way to do this is something like this: "RunControl": {
"WarmStart": true,
"WarmStartFolder": "../%(mach).2fa0.0"
} This will try to warm-start each case from a similarly-named case but at I think I've got a good solution here, but I'm interested to hear your thoughts! |
I think this is a great start! I'm also thinking that this can be used to drive a simulation to a certain number of steps, and then setting up a new folder where we can dump out plt files for every boundary_animation_freq steps so that we can average those plt files for visualizations. This would be a nice ability because FUN3D otherwise periodically generates plt files every boundary_animation_freq steps for the entire iteration history (rather than say for steps > N), which can be cumbersome. |
@nasa-ddalle, could you elaborate on what you mean by:
The statement confuses me because in my mind the run/solver settings of the simulation that was used to generate the warm start files can inherently be different than those that consumes said warm start results. I am probably not quite understanding what you are trying to say. In any case though, this is a great simplifier to the current workflow we are having to use. @rbreslavsky, in your last post, you are referring to mimicking what's happening on the Cart3D side with respect to solution averaging, correct? If that's the case, I think that's probably a feature independent of the warm start. I think the "right" way to implement something like this is not to continually start/stop the simulation at a given output frequency, but rather to run everything in one shot and average at the end. The guiding principle here is that compute is expensive, but storage is cheap. I am not familiar enough with Cart3D to advocate changing what Derek has done on that side of things, but for FUN3D, I think the most efficient thing to do is run up until you are ready to start averaging, say that's phase N, then go into phase N+1 with your output/averaging frequency set, run until the end, and then have a CAPE post-processing method just average the outputs into a final file. @nasa-ddalle, any thoughts? Again, we should probably separate this out into a separate issue :). |
@vcoralic We're on the same page, it's just a little bit of a challenging sentence for me to write out clearly...
In this case the |
I'd like to request warm start capability as a feature for pyFun. Right now, this is possible by using shell commands to copy over previously run simulation files from other "seed" runs, but requires diligent tracking of phases and phase iteration count
Perhaps the feature could work by indicating one or more seed conditions (alpha, Mach, etc) in the run matrix, or a seed run case number. It would also be nice to be able to drop the seed run iteration history as an option (
restart = 'on_nohistorykept
).The text was updated successfully, but these errors were encountered: