I regularly undertake computational fluid dynamics (CFD) modelling simulation for large (ish) projects and am looking for a better way to manage different file versions. I have some (only in one kind of workflow) experience with git and svn, though am fairly convinced they don't satisfy all my needs here.
A typical workflow is this:
Setup the initial file for a calibration simulation.
Tweak this file and rerun (repeat step 1)
When happy with the calibration, setup the validation run from the best set of parameters
When calibration/validation all completed, set up files for design runs: ie. Scenario A, Scenario B, Scenario C
Whoops, you forgot to output something critical in Scenario C, so you have to make a slight change and then re-run the simulation
Current practice is to rename each successive run 001, 002, etc. This makes things unclear when the 'best' calibration might not have been the highest run number, ie. you tested a few more things, but they didnt necessarily improve things. Or, this is confusing when you need to do comparisons between the results of the latest Scenario simulations, and Scenarios A and B are both 001, but Scenario C is 002.
Ideally a version control system would be able to log each successive commit and show comparisons to older versions. A bonus would be being able to track the 'Best' version in the branch, ie. the best calibration simulation so far and be able to quickly revert to that version.
Secondly the system needs to allow creation of a new file from the template of a given version of an existing file. Ie. When creating the files for the scenario simulations, A B and C, start with a copy of the latest calibration/validation setup, then make changes that define the different scenarios (different time of simulation, different geometry, etc.) and commit those Scenarios - Then be able to do a quick compare between scenarios, and see which versions they all have in common.
Thirdly, a last feature that may break the possible uses of many systems is to be able to have several versions of a file checked out in a folder at any one time. Ie. before the weekend i might set up 10 simulations with slightly different parameters and run them all in a batch so that on Monday morning I can pick the best, then collapse the tree to the best current one.
Ideally this would have a nice GUI (think github for windows) that can see the recent changes of any file, and commit one files changes individually, and most importantly revert a single file to a previous version individually. I want to basically only have the desired calibration, validation, Scenario A, B and C files in the folder at any time, but with the option to checkout several versions of one, and collapse these later.
A look around online suggests such a niche system doesnt exist, and i am not adverse to creating something myself. But does anyone have a good work for an existing system (Git?) that may cover all or at least most of my requirements? Or perhaps any tools online that I can start with and hack together in some form? or best of all, a wonder system that covers the lot...