Matrix Transfer between MATLAB and Ansys
Matrix Transfer*
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.
nice
ReplyDeleteThanks, you are so selfless for share us. I learned a lot from you.
ReplyDeleteWorking 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.
ReplyDeleteThe 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