IMAT+FEA Extended Functionality


IMAT+FEA offers significant additional functionality that extends IMAT's capabilities into Simulation. With IMAT+FEA you can work with a much broader range of data from different analytical solvers and utilize the significant strength and capabilities provided by IMAT. It provides the ability to interface with NASTRAN, Abaqus, and Femap, in addition to I-deas. Details of what IMAT+FEA supports for each analysis package is described in more detail below. The imported data is placed into the IMAT data types, so it is easy to use in MATLAB, and all of the existing IMAT functionality is readily available.

All of the IMAT+FEA functionality ships with the IMAT toolbox, but requires a separate license to access. You can use either tokens or a perpetual license to access these useful features. Please contact us for more information.

NASTRAN

IMAT+FEA can import data from NASTRAN bulk data (icluding DMI and DMIG), Punch, and Output2 files, using the readnas command. When importing from PCH or OP2 formats, readnas will prompt you with a GUI of the directory of the file's contents, allowing you to select the entities you with to import. You can also supply input arguments to readnas to use it in a batch mode that does not prompt you with a GUI.

While readnas supports a large amount of data natively, it also has the ability to read datablocks from the OP2 file in their "raw" (unprocessed) format. This is useful for cases where IMAT does not natively support the given dataset, or when you wish to perform low-level modifications to the OP2 file datablocks. IMAT+FEA provides several helper functions (typecast_op2 and several functions that begin with parseop2table) to assist in processing "raw" datablocks. The parseop2table functions are provided as m-files so you can have some useful examples of how to go about processing raw datablocks.

The companion function expandDMI will expand DMI-formatted matrices into its full double representation. Once these matrices are in MATLAB, you can use the powerful matrix-handling capabilities in MATLAB. The companion function mat2subst converts substructure matrices imported from OP2 into the structure format used by IMAT+Modal.

You can write directly to a NASTRAN OP2 file using writenas. Note that writenas only accepts the "raw" structure format returns by readnas. The companion function create_op2table converts IMAT datatypes to this raw format. Please see the help for create_op2table for a list of supported datatypes.

Abaqus

Abaqus results can be imported using readodb. This function reads user xyData and both history and field data from any steps in the ODB. xyData and history data imports into MATLAB as imat_fn objects. Nodal field data imports into imat_shp objects, and other field data is imported into result objects. This function also provides a GUI interface to allow you to select which entities to read from the ODB. readodb will prompt you with a GUI, from which you can select the results you wish to import. You can also view a directory of the contents of the xyData and step history and field data, from which you can select individual records to read. Alternately, you can supply readodb with command-line arguments that allow you to read the data in batch mode without being prompted with the GUI.

Femap

IMAT+FEA provides two primary means of communicating with Femap. The first is through the Neutral file, and the second is directly through COM, also known as ActiveX. The latter interface necessarily requires you to be on the Windows platform.

readneu imports selected datasets from a Femap Neutral file.

writeFemap can export data either to a Femap Neutral file, or directly to a Femap session (Windows only) through COM (ActiveX). Nearly all of the native IMAT objects are supported.

MATLAB has buillt-in functions to interface with other Windows COM-aware programs. The functions actxserver and actxGetRunningServer initiate access to another COM process. The functions get and set access COM object properties, and invoke executes COM object methods. Due to the nature of how Femap makes itself available through COM and the way MATLAB works, the MATLAB native COM interface has limitations in the Femap methods it can access through its interface. Any of the methods that have output arguments will not work through the native MATLAB interface. Because of this, IMAT+FEA provides a companion function called Femap_invoke. This function supports a subset of the methods that do not work through the MATLAB invoke function. If you attempt to use a method that Femap_invoke is aware of, it will use its interface to invoke that method. Otherwise it will attempt to use the MATLAB native invoke function. You should use Femap_invoke for all Femap method calls.

VTKPLOT

To use the VTK plotting capabilities, use the vtkplot function. This function will take an imat_fem object, along with an optional imat_shp or result object, and create a visualization of the FEM in a new MATLAB figure. An imat_vtkplot handle object will be returned, which can be used to manipulate the figure from the command line. The figure itself contains a number of menus, buttons, and toolbar items that will further modify the display. For complete information on these items, browse through the help for vtkplot and its associated methods. A brief example of vtkplot’s usage is included below.

A VTK plot is generated by using vtkplot.

>> vtkplot(fem);                % fem is an imat_fem



Displacement shapes can be added to the figure by passing them in when you call vtkplot. Shapes that will be used for deformed plots must be animat_shp.Including them will enable all of the animation-specific features, such as the ability to animate and save an animation to an AVI file.

>> vtkplot(fem,shp)             % shp is an imat_shp



Alternatively, contour data can be displayed by passing in a result object when the plot is created. Data at Nodes and Data on Elements data formats are currently supported. Data at Nodes on Elements data can be used, if it is first converted into Data on Elements data by using the criterion method. Passing in result data will enable the Contour menu. From here, the different components of the result can be viewed individually.

>> vtkplot(fem,res)             % res is a result



Contour data can be included with displacement data, as well. The order of the inputs is not important.

>> vtkplot(fem,res,shp)



An array of groups can also be added to the plot by passing it in on the command line. The groups must be an imat_group. Passing in groups allows you to use them to display subsets of the FEM.

>> vtkplot(fem,group);          % group is an imat_group



In addition to controlling the display throughl vtkplot input arguments, you can make modifications after generating the plot by using the imat_vtkplot object returned by vtkplot. Some examples are provided below.

There are two ways to set the plot view besides through the figure menus.

>> vtkplot(fem,'view','xz')



>> obj = vtkplot(fem)           % obj is an imat_vtkplot object

>> obj.view('xz');



You can change the deformation scale of the displacement shapes. An equivalent imat_vtkplot method is not available.

>> vtkplot(fem,'scale',5.2)



You can change the figure title. An equivalent imat_vtkplot method is not available.

>> vtkplot(fem,'title','FEM Figure Title');



You can also control the visibility of the deformed and/or undeformed display.

>> vtkplot(fem,shp,'undeformed')



>> obj = vtkplot(fem,shp)

>> obj.visible('undeformed',1);     % Turn on the undeformed display

>> obj.visible('deformed',0);       % Turn off the deformed display



This example forces the undeformed geometry to be shaded.

>> vtkplot(fem,shp,'undeformed','shaded')



>> obj = vtkplot(fem,shp)

>> obj.displaystyle('undeformed','shaded');



You can animate the mode shapes by cycling through the shapes. This means that each frame is a subsequent shape. This is useful for animating transient output such as an Operating Deflection Shape.

>> vtkplot(fem,shp,'cycleshapes')



Create the figure without the button(s) at the bottom using the argument shown below.

>> vtkplot(fem,'nogui')


Previous

Next