Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

How to pause matlab a specific amount of time between iterations??

Asked by Ceren GURKAN on 31 Jan 2013

Hello everyone,

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.

0 Comments

Ceren GURKAN

Products

No products are associated with this question.

3 Answers

Answer by Sean de Wolski on 31 Jan 2013
Accepted answer

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.

7 Comments

Jan Simon on 31 Jan 2013

Yes, Sean, this is a clean approach: Wait until the process has finished. Then you can be sure, that the process has finished :-)

Sean de Wolski on 31 Jan 2013

But it kind of depends on how this intantiate the CFD suimulation. We're just guessing right now.

Ceren GURKAN on 1 Feb 2013

Guys thank you for all these commands, I am sending the jobs to the CFD solver with say "qsub batchfile_case1" command as you guess. I will try the suggestions and update status here :) Any other commands would be appriciated though.

Sean de Wolski
Answer by Jason Ross on 1 Feb 2013

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.

0 Comments

Jason Ross
Answer by Ryan G on 31 Jan 2013
Edited by Ryan G on 31 Jan 2013

You could enter a while loop until you are able to retrieve the data.

You could also potentially use a timer object to test for solution files periodically and continue on once they are found.

0 Comments

Ryan G

Contact us