open fea object in GUI

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

open fea object in GUI

mgriffith
I'm not sure if this is possible, but I would like to have a .m file to handle setting up my geometry and boundary conditions and then switch to the GUI to handle meshing/solving and post. It seems like this should be possible, but I'm not sure how to do it. It seems like there should be some way to either pass the fea object to the GUI, or alternatively save an .fea file from a matlab script and then be able to load that into the GUI.

Thank you for the help,

Matt
Reply | Threaded
Open this post in threaded view
|

Re: open fea object in GUI

Precise Simulation
Administrator
mgriffith wrote
I'm not sure if this is possible, but I would like to have a .m file to handle setting up my geometry and boundary conditions and then switch to the GUI to handle meshing/solving and post. It seems like this should be possible, but I'm not sure how to do it. It seems like there should be some way to either pass the fea object to the GUI, or alternatively save an .fea file from a matlab script and then be able to load that into the GUI.
Dear Matt,

Yes, there are a few options to achieve this:

1) You can create your geometry in an .m script file or in the Matlab CLI, and then import it into the FEATool GUI using the "Import Geometry" > "From MATLAB Workspace..." option in the "Geometry" menu (note that you can only import a geometry with the same space dimension as your model, that is you can't import a 3D geometry in to a 2D model etc.).

2) You can also save an inital ".fea" model (.fea model files are simply renamed .mat files), load it into your .m file script, change the geometry with something like

  load( 'my_model_file.fea' ,'-mat' );   % load model data struct and assign to variable name "fea"

  % (Re-)create geometry.

  fea.geom = my_new_geometry;

  save( 'my_new_model_file.fea', 'fea', '-v7' );

The new/modified model file can now be loaded into the FEATool GUI.

3) You can also save the model as a ".fes" script file and open, and edit it in a text editor. The .fes is just a JSON text file describing the GUI actions, so identifying and modifying the parameters should be quite simple.


If you also would like to automatcally/programatically import the geometry from the m-file script, that is also technically possible by "searching for and grabbing" the corresponding uicontrol GUI handles, and calling the callbacks, for example:

  h_uimenu_imp_geom = findall( 0, 'Label', 'Import Geometry' );
  h_uimenu_from_wsp = findall( h_uimenu_imp_geom, 'Label', 'From MATLAB Workspace...' );

  c_cbf = get( h_uimenu_from_wsp, 'Callback' );   % Get callback function.
  c_cbf{4}{1}( h_uimenu_from_wsp, [], c_cbf{4}{2:end} )   % Call callback function.
Reply | Threaded
Open this post in threaded view
|

Re: open fea object in GUI

mgriffith
Thank you so much. I completely missed the import options in the top navigation, also it is good to know that the .fea is just a .mat file. Now all I have to do is just learn how to get my problem to converge and I'll be all set. I've been using Matlab for years, but this is my first time with CFD/FEA wish me luck there is quite a bit to learn.