Matrix Transfer between MATLAB and Ansys

Matrix Transfer*

Reading and writing matrix or arrays to MATLAB and back can be painstaking as described by SimuTech in a well written article using *TREAD or *VREAD. Wouldn't it be great to have someone else do the heavy lifting for you on formatting etc?

Fortunately there is a Matrix Market format sponsored by NIST that is also supported by Ansys and Matlab. There are two very useful MATLAB functions created just for this purpose:

  • mmread.m  for reading in the Market Matrix file into MATLAB
  • mmwrite.m for writing the matrix into a Matrix Market file

Writing Matrix or Arrays from Ansys to be Read by MATLAB
In Ansys...
/prep7
*dim, c,, 10,10, 1 ! Example Matrix
enow = 0
*do, ct, 1, 10        
    *do, ct2, 1, 10
        c(ct,ct2) = ct*ct2
    *enddo    
*enddo    

!!! Writes out Matrix to matlab
*dmat, exportmatrix, D, import, APDL, c ! export to matrix file
*export, exportmatrix, mmf, mytemp.mtx

In MATLAB, the command is simply...
c = mmread('mytemp.mtx'); % mmread.m must is in working directory

Writing Matrix from MATLAB to be Read by Ansys
In MATLAB...
m = transpose(1:10) * (1:10);  % example matrix
mmwrite('toansys.mtx', m, 'example matrix');  % writes out matrix 

In Ansys...
*dmat, importmatrix, d, import, mmf, toansys.mtx ! imports 
*dim, fromMatlab, array, 10, 10 ! pre-define matrix size
*export, importmatrix, apdl, fromMatlab, 1, 10 
! writes out to apdl named fromMatlab, 1st column to 10th column

You may now access the matrix in Ansys for example via...
q = fromMatlab(3, 4) 
*stat, q

Other Comments
The Harwell-Boeing format can also be an alternative that is also supported by *EXPORT. It might come in handy for large sparse matrix though I've not tried it myself. 

Comments

  1. Thanks, you are so selfless for share us. I learned a lot from you.

    ReplyDelete
  2. Working with engineering tools that exchange data seamlessly is an important skill in modern software and scientific computing. Exploring Final Year Projects for CSE can help students gain hands-on experience in developing applications that integrate multiple platforms, automate data processing, and improve computational efficiency across engineering domains.

    ReplyDelete
  3. The practical APDL and MATLAB examples demonstrate how interoperability can streamline simulation-driven development and reduce manual effort in engineering analysis. Learning about domains in computer science is an excellent way to discover project areas involving scientific computing, simulation automation, software integration, and numerical analysis for real-world applications.

    ReplyDelete

Post a Comment

Popular posts from this blog

Export Stiffness Matrix from Ansys

ANSYS APDL Syntax Highlighting editor

Ansys APDL - Some Neat Commands