Skip to Main Content

      

ANSYS BLOG

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.

Hardware:

  1. Network of computers with Ansys or MathWorks software installed

Instructions:

  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.

You might be interested in

The Autonomous Vehicle System iDAR Mimics Human Eyes | Ansys
Blog

The Autonomous Vehicle System iDAR Mimics Human Eyes | Ansys

Learn how engineers will be able to use iDAR to test sensor systems virtually, over millions of miles, in a few days.

Designing Sensors for ADAS and AVs in a Virtual World | Ansys
Blog

Designing Sensors for ADAS and AVs in a Virtual World | Ansys

Learn how engineers can link Ansys SPEOS and VRXPERIENCE to test autonomous vehicles, ADAS and automotive sensors.

Meet the Autonomous Vehicle Development Complexity Challenge
Blog

Meet the Autonomous Vehicle Development Complexity Challenge

Learn how autonomous vehicle technology developers are relying on simulation to address complexity challenges.