Skip to Main Content



July 7, 2017

MATLAB Apps For Ansys Products: Updated for Ansys 17.0

In 2013, I wrote a blog showing Ansys users how to make MATLAB apps for Ansys Fluent. Just as a quick reminder, a friend of mine, who is also an Ansys Fluent and Mechanical APDL user has a Windows Matlab code programming a Linux Fluent session. She had just updated her hardware. Everything is moved to Linux. She also needed to integrate a Mechanical APDL session.

She was asking me: “Why, can't I port my MATLAB®  code running on the platform of my choice and be able to also connect to Mechanical APDL?" She challenged me to to create a less than 20 lines code example. Back in 2013, my example was for Ansys 16.0. Here is my update for Ansys 17.0.


  1. Fluent
  2. Mechanical APDL
  3. Workbench


  1. Network of computers with Ansys or MathWorks software installed


  1. Download Ansys aaS Matlab toolbox (supports Matlab R2014b to 2016a) from Ansys Customer Portal
  2. Open the folder where the mltbx has been downloaded in a Matlab folder view.
    • double click on it and follow instructions to install
  3. Start the Ansys products in aaS mode
    • Read the downloaded pdf for suggestions
  4. Collect the aaS keys (aas_FluentId.txt, aaSMapdlId.txt and aaS_WbId.txt)  and transfer them to the MATLAB machine
    • These are the “keys” required to connect with Ansys aaS products.
  5. Now let’s code. What should it do? Well, I will keep it simple: one command per Ansys product:
    • ask a report from Fluent
    • set a variable in Mechanical APDL
    • retrieve the Workbench Schematic

%initialize aaS orb=initialize_orb(); load_ansys_aas(); %connect to ANSYS products
iCoFluentUnit=actfluentserver(orb,'aaS_FluentId.txt'); iCoMapdlUnit=actmapdlserver(orb,'aaS_MapdlId.txt');
actwbserver('aaS_WbId.txt') %execute a Fluent TUI command iFluentTuiInterpreter=iCoFluentUnit.getSchemeControllerInstance();
fluentResult=iFluentTuiInterpreter.doMenuCommandToString('report summary') %execute a Mechanical APDL command
mapdlResult=char(iCoMapdlUnit.executeCommandToString('aas_param=22')) %retrieve the content of the remote Workbench Schematic execwbcommand('systems=GetAllSystems()') querywbvariable('systems')

Well, all in all I used only 19 lines of code. My friend added her own code to create her elegant and efficient so-simulation.

Thank you for reading.

Ready to make the impossible possible?

Contact us

* = Required Field

Thank you for reaching out!

We’re here to answer your questions and look forward to speaking with you. A member of our Ansys sales team will contact you shortly.