How can I run ANSYS from MATLAB？
138 views (last 30 days)
Would you tell me about the cause and solution for stooping of ANSYS run from MATLAB?
I want to run ANSYS from MATLAB, and I tried "Shell Escape Function" (I wrote the DOS comand after "!").
However ANSYS stopped running at the stage of the solution .
It only indicates ANSYS stopped working.
I think DOS command is not wrong, because it run from CMD.exe, and it runs without problems partway.
I suspect the cause is stack overflow, but I do not know how to identify that.
My PC environment is
Windows 7 Enterprise Intel Core i7 970 16.0GB
More Answers (6)
Nicolai Bloch on 27 Jul 2015
Edited: Nicolai Bloch on 27 Jul 2015
I also had this issue receiving a error return code -1073741571 (alias c00000fd), which is a Windows error code indicating a stack overflow. Since this is really a system level error, ANSYS doesn't produce any error messages in its own log/error file. Support told me that the problem is related to a particular piece of 3rd party software (OpenMP) used by MATLAB. As of 2014b, when running system commands, the stack size is limited to 512k through an environment variable called KMP_STACKSIZE. It is possible to verify the existence and value of this environment variable by issuing the following command listing all the variables (in Windows):
(produces a list of all environment variables currently set...)
For ANSYS to be able to run, you need to increase the stack size before calling the ANSYS executable. You can do this by wrapping the ANSYS call in a batch script or you can do the following:
>>System('SET KMP_STACKSIZE=2048k & "C:\path_to_ansys\ansys[version].exe" [input arguments..]')
I haven't played around with the stack size enough to find a critical value (may also be mesh size/solver dependent). At least the above setting worked for me.
Ola on 20 Nov 2014
Hi, i have the exact same problem as you Yusuke. Ansys stops working just as it's about to calculate the solution. The odd thing is that it works perfectly fine if i run my batch file outside of matlab. Sadly I have not yet found the solution for this problem, but was hoping that you could replay the answer if or when you find it. If not, then i'll try to post my solution if i find one, good luck.
Georg on 3 Jun 2015
I can confirm this behavior when running Matlab 2014b and 2015a with any verison of ANSYS. At the same time it works perfectly with Matlab 2013a. That really annoying. I tried two different ways of initiating the Ansys execution:
cmd = sprintf(['"' ansys_path '"' ...
' -b' ...
' -j ' jobname ...
' -i "' skriptFileName '.inp"' ...
' -o "' outputFilename '.txt"' ...
[o, txt] = system(cmd, '-echo')
... just like:
rt = java.lang.Runtime.getRuntime()
p = rt.exec(cmd)
crashes with something I think is a stack overflow.
When running the java-code from e.g. Netbeans (jdk 1.8) it works perfectly. Also the execution from the command prompt works perfectly. So I assume it's definetly a Matlab related problem.
Seth on 7 Apr 2016
Thank you - this thread was a big help to me several times (I forgot about the problem and rediscovered it a few times) ;-)