Crash of a single case terminates the whole optimization process

1 view (last 30 days)
Hello all,
We want to couple an in-house flow solver with an in-house optimization code, both written in Matlab as m-files (both have many subroutines and a main function). This is to optimize some geometric parameters.
Once a single flow solution case is crashed (e.g. in one of solver subroutines), the whole optimization process is crashed (the main flow solver m-file is defined as a function in the main optimization m-file).
Our aim is to continue the flow solution cases after one case is crashed (e.g. due to NaN error, etc.).
Is there a way to accomplish this without adding complex and numerous controls to the solver code? (e.g. to terminate the main solver m-file without terminating the main optimization m-file).
By the way crashes occur in the subroutines of the flow solver, not in the main flow solver m-file.
Best Regards,
Sercan

Accepted Answer

A Jenkins
A Jenkins on 9 Feb 2015
You can use a try block around your code.
for idx=1:n
try
solver_that_might_crash(idx)
catch
disp('warning, case failed, moving on...')
end
end

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by