|
[Sponsors] |
April 3, 2011, 20:27 |
Integrating/Interfacing cfx with Matlab
|
#1 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
Hi guys,
I need help from you all on whether using Matlab to control ANSYS CFX simulation is possible. The immediate goal of my work is to setup MATLAB to write the input files for CFX and then read the output data when the simulation has finished. The work then progresses into using MATLAB to initiate the simulations. I have looked through the forum, ansys help&tutorials, & google with no clear findings on how this is achieved, with Fluent being the exception. Highly appreciate if someone can shed more light on this matter and i'll ask more questions as we go. If it's vaguely possible, I'm happy to work on it and share my work with the forum community. I am familiar with Ansys CFX. To give a bit more detail, the simulation involves moving 2 bodies in respect to one another. Warmest Regards, Darren Last edited by Darren Leong; April 3, 2011 at 21:12. |
|
April 4, 2011, 20:16 |
|
#2 |
Super Moderator
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 17,871
Rep Power: 144 |
CFX can be run from the command line, so can be put in as part of a script. So if matlab can call a command line then this should be possible.
|
|
April 4, 2011, 23:20 |
|
#3 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
Thx, Glenn.
Ran some batch files from cmd and that worked, but i've yet to try it on MATLAB. Haven't used MATLAB to run external programs before so I thought to post a question here 1st for reference as the work progresses. I'm trying to get 3D mesh deformation & remeshing to work in CFX at the moment. I'll start another post on that topic when I have some results or questions since it's still a beta feature in v13. Best wishes, Darren |
|
April 27, 2011, 23:02 |
|
#4 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
Hi again,
I've got a batch of remesh simulations running in CFX through Matlab. I've only been able to use the 'edit' function in Matlab to modify the input (.CCL) files directly so far though. I'm struggling to figure out how to get Matlab to plot the results; forces and moments from transient runs. If anyone's done it before, i'll be very grateful if some guidance can be given. Best wishes, Darren |
|
April 28, 2011, 19:27 |
|
#5 |
Super Moderator
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 17,871
Rep Power: 144 |
CFX V13 has built in mesh deformation and remeshing stuff. Should be no need to couple with matlab. Have you looked at that?
CFX can output forces, moments and lots of other stuff easily by outputting it to a monitor point and then you can either manually export it from the solver manager or automatically parse it from the mon file. |
|
May 1, 2011, 21:52 |
|
#6 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
I'm using Matlab only to execute CFX-solver as an external program, e.g. changing the input variable once the setup (remeshing config and .cfx) is stable and reading the results while being handoff as possible from ANSYS interface. The only reason i'm using CFX is that it's the most familiar package to me. Alternative solvers considered are Fluent or Openfoam once the capabilities have been developed.
It would nice if I could preset to collate/process them in cfx-pre without going into solver manager and exporting it manually from there. I was hoping there might be a suffix command i can used in the batch file for this. I'm not sure of and can't locate the 'mon' file, do i need to setup for it to be created at the end of solution? The monitor plot values for transient runs are stored as individual files (.trn) for each timestep. That's about 500+ files to read just get the values out for Matlab to plot. I've not parse that many files before in Matlab. I'll work on this if there's no shortcut to it. Last edited by Darren Leong; May 2, 2011 at 10:19. |
|
May 2, 2011, 08:44 |
|
#7 |
Super Moderator
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 17,871
Rep Power: 144 |
The mon file is a temporary file which is generated in the CFX temporary folder when the simulation is running. It is deleted when the simulation completes. You can also use a cfx command - I forget which one, cfx5monitor or something like that - to extract monitor point info.
|
|
May 2, 2011, 10:25 |
|
#8 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
That's a relief to know ^_^!
Will post the findings when I get everything to work. Thanks, Glenn!! Last edited by Darren Leong; May 2, 2011 at 10:48. |
|
May 2, 2011, 20:13 |
|
#9 |
Super Moderator
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 17,871
Rep Power: 144 |
Found the command - cfx5mondata. Should do the trick for you.
|
|
May 26, 2011, 01:35 |
|
#10 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
Thanks, Glenn =)
The following is what i used and seems to be working well. !"C:\Program Files\ANSYS Inc\v130\CFX\bin\cfx5mondata" Spheresim_001.res -varrule "CATEGORY = USER POINT" -output Analysis_Results_001.dat |
|
July 26, 2011, 12:33 |
could u help
|
#11 |
New Member
lisa
Join Date: Apr 2009
Posts: 17
Rep Power: 17 |
I am new to CFX and Fortran, I am trying to read a Matlab file in a text format in CFX carry out simulation and pass the result to Matlab and do the calculation and read back it.
Is it possible in CFX. Kindly let me know. Thanks with regards sesan |
|
July 26, 2011, 19:50 |
|
#12 |
Super Moderator
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 17,871
Rep Power: 144 |
Yes, this is possible. You can either code it in fortran yourself or use MPCCI to handle the coupling. I think CFX still has MPCCI handles in it. Up to you.
|
|
July 27, 2011, 05:39 |
|
#13 |
New Member
lisa
Join Date: Apr 2009
Posts: 17
Rep Power: 17 |
Hi Glenn,
Thanks for your reply. I am also new in Fortran programming and MPCCI, Could you kindly tell me on how exactly i do or give me some tips. Thanks |
|
July 27, 2011, 07:01 |
|
#14 |
Super Moderator
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 17,871
Rep Power: 144 |
I think some of the CFX examples use fortran. Otherwise contact CFX support for examples. MPCCI is a separate piece of commercial software designed to interface between simulation codes. Google it.
|
|
September 10, 2011, 05:46 |
|
#15 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
Hi Sessan,
Follow up to your PM, I thought i post the m files here: http://www.2shared.com/file/3A-LkWtc/CFXMatlab.html They're pretty basic at the moment as I haven't looked much into it since my last post. However, I'll be working on it in the coming months and it would be great if we can as much help as possible in getting this working =) |
|
September 22, 2011, 07:53 |
hi
|
#16 |
New Member
lisa
Join Date: Apr 2009
Posts: 17
Rep Power: 17 |
Hi Darren
Thanks for the reply and sorry i culdnt get back earlier. The link in which u had sent the files is no longer valid, culd you kindly send the file again. In between could you also share your mail id for contact . Thanks in adavance for the help. Wih regards Sesan. |
|
October 4, 2011, 02:45 |
|
#17 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
||
October 4, 2011, 06:13 |
|
#18 |
New Member
lisa
Join Date: Apr 2009
Posts: 17
Rep Power: 17 |
Thanks for sharing the files.
|
|
February 14, 2012, 02:04 |
|
#19 |
Member
Darren Leong
Join Date: Dec 2010
Posts: 64
Rep Power: 16 |
For Lisa and others,
From where the previous script left off, we have the following example ______________________________________________ !"C:\Program Files\ANSYS Inc\v130\CFX\bin\cfx5solve" -def Simulation.def -ccl Simulation.ccl copyfile ('*.res','results\'); %Backup current result % To maintain the filename format for looping; easiest way is to remove the % suffix '_00#' from current result file and so on delete ('Simulation.res'); %remove previous run result !ren *.res Simulation.res % Extract data from result file to csv format !"C:\Program Files\ANSYS Inc\v130\CFX\bin\cfx5mondata" Simulation.res -varrule "CATEGORY = USER POINT" -output CFXResult.dat % Reads the most recent CFX timestep results ResultData = csvread ('CFXResult.dat',1,0); [m,n]=size(ResultData); ResultData = csvread ('CFXResult.dat',m,0); % You can now assign names to the variables to be computed by your MATLAB code Accumulated_Time =ResultData(1,1); Force_X = ResultData(1,2); % compute the new states <Your code> % For example, it computes Inlet_Speed = 5 % in m/s % Opens the .ccl file and format it into cell arrays A = fopen('Simulation.ccl','rt+'); B = textscan(A,'%s %s %s %s %s %s %s'); % number of '%s' depends on the number of space delimited columns %combines the arrays into one matrix of cell arrays C = horzcat(B{1,1},B{1,2},B{1,3},B{1,4},B{1,5},B{1,6}, B{1,7}); % you can now replace the variables of the .ccl file easily since their % position should always be the same in the matrix C{6,3} = num2str(Inlet_Speed); % assuming 6,3 is the position of the variable. %'num2str' is needed or else it'll introduce '[]' into your text file %To reconstruct your .ccl text file with the new variables [nrows,ncols]= size(C); filename='SimulationNew.ccl'; fid=fopen(filename,'W'); for row=1:nrows; fprintf(fid,'%s %s %s %s %s %s %s\r\n',C{row,:}); end delete ('Simulation.ccl'); !ren SimulationNew.ccl Simulation.ccl fclose all; % You can now continue your simulation from the previous result % with the new input variable !"C:\Program Files\ANSYS Inc\v130\CFX\bin\cfx5solve" -def Simulation.def -ccl Simulation.ccl -cont-from-file Simulation.res echo off _________________________________________ Hope it works for you all. Best wishes, Leong Last edited by Darren Leong; February 14, 2012 at 19:04. |
|
December 22, 2012, 12:39 |
|
#20 |
New Member
hi
Join Date: Dec 2012
Posts: 19
Rep Power: 14 |
Hi
I'm working on optimization problem pleas help me how to call cfx from matlab for solving and post processing? Is this problem have specific setting at CFX and matlab code? Pleas help me Thank Everyone Last edited by alikhube; December 25, 2012 at 15:53. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Cfx - matlab | camilo_costa | CFX | 15 | October 14, 2013 18:18 |
Matlab & CFX | Meri | CFX | 1 | March 16, 2006 01:39 |
CFX 7.1 and Matlab | Juan G. | CFX | 1 | March 5, 2006 22:37 |
CFX & MatLab | Walid | CFX | 4 | March 8, 2005 17:30 |
How to make data file for matlab from CFX? | cfxbeginner | CFX | 4 | October 19, 2002 08:56 |