I am using Matlab with a CFD solver. In my code there is this a for loop, and at the end of each iteration some job submitted to the solver. I want Matlab to wait till I get the solution files from the solver, and proceed to next iteration afterwards, with this newly created solution files. It takes more or less 3 hours to get the solution files so is there any way that I can pause Matlab for 3 hours between sucsessive iterations??
Any help would be appriciated. Thank you in advance.
No products are associated with this question.
Yes, use a timer for this; not a while-loop!
What I would do is put a 'StartDelay' on the timer for say 2hrs and 45 minutes. Then check every 10s or whatever (The timer's 'Period'). Until the file is found or whatever else you are using to know when the CFD simulation is complete.
Then simply have the 'TimerFcn' stop the timer and the 'StopFcn' do whatever else you need to do.
If you have Parallel Computing Toolbox, you can set up an integration with your cluster (I'm guessing it's PBS Pro or Torque), and you could use the batch() command to submit your job. You can then check the state of the job as it progresses through the queued, executing and finished stages. It might work for your situation.
If you don't have PCT, setting up the timer to look for the files or exit condition would be a nice and clean approach.