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.

Really nice information, its very useful to so many people

ReplyDeleteCadd Centre Chennai

Auto Cad course in Chennai

solidworks course in chennai

ansys training in chennai

cfd courses in chennai