The IMAT_FEM class consists of several properties and methods. Only one FEM is permitted per IMAT_FEM object. In other words, the object must be scalar (1x1). The methods in this class perform checking to ensure that the data is consistent and complete. For example, it checks all of the node IDs referenced by the elements and tracelines to make sure that they all exist in the IMAT_NODE property. It also checks to make sure that all of the coordinate systems referenced in the IMAT_NODE property exist in the IMAT_CS property.
The four properties and their descriptions are shown in the table below. The contents of each of these objects are described in the following sections.
Property Name | Description |
.cs | Coordinate system class (IMAT_CS) |
.node | Node data class (IMAT_NODE) |
.elem | Element data class (IMAT_ELEM) |
.tl | Traceline data class (IMAT_TL) |
The IMAT_CS class contains coordinate system definitions. This class has the properties listed in the table below.
.part | Part information ({1x2} cell array) |
.id | Coordinate system labels ([nx1] numeric vector) |
.name | Coordinate system names ({nx1} cell array of strings) |
.color | Coordinate system colors ([nx1] numeric vector) |
.type | Coordinate system types ([nx1] numeric vector) |
.matrix | Coordinate system transformation matrices ([4x3xn] double matrix) |
The part property is a cell array, where the first element is an integer specifying the part UID, and the second field is a string containing the part name. This field is not used by IMAT, but is provided for completeness.
The id property is an nx1 numeric vector containing the coordinate system labels. These labels should be positive and unique. The coordinate system label '1' is reserved for the global (part) Cartesian coordinate system.
The name property is an nx1 cell array of strings containing the coordinate system names. Each name is a string. The strings can be varying lengths (hence the need for a cell array). The length of the cell array must be the same as the length of the id field.
The color property is an nx1 numeric vector containing the coordinate system colors. The colors are positive numbers representing colors using the color scheme defined by I-deas. The length of the color vector must be the same as the length of the id field.
The type property is an nx1 numeric vector containing the coordinate system types. The coordinate system type is 0 for Cartesian, 1 for cylindrical, and 2 for spherical.
The matrix property is an 4x3xn double matrix containing the coordinate system transformation matrices. For each transformation matrix, the top 3x3 matrix partition contains the transformation matrix [T] between the global origin and a Cartesian coordinate system aligned with the current coordinate system. The fourth row in the transformation matrix, [o], contains the offset between the global origin and the current coordinate system origin. For example, if [n] a 3x1 vector containing node coordinates in the global Cartesian system and [l] is a 3x1 vector containing node coordinates in the local (Cartesian) system, the equation to transform from global to local coordinates is represented as
[l]=[T][n-o']
After transforming global Cartesian to local Cartesian, the local coordinates can then be transformed to cylindrical or spherical as necessary.
The IMAT_NODE class contains node definitions. This class has the properties listed in the table below.
Property Name | Description |
.id | Node labels ([nx1] numeric vector) |
.cs | Node coordinate systems ([nx3] numeric vector) |
.type | Entity type (1=node, 2=spoint) |
.color | Node colors ([nx1] numeric vector) |
.coord | Node coordinates ([nx3] double vector) |
The id property is an nx1 numeric vector containing the node labels. These labels should be positive and unique.
The cs property is an nx3 numeric matrix containing the node coordinate system labels. The number of rows in this matrix must match the length of the id proprety. Column 1 contains the reference (also called export or definition) coordinate system labels. Column 2 contains the displacement coordinate system labels. Both of these coordinate systems are used by I-deas. Column 3 contains coordinate system information for use in MATLAB. These coordinate system labels refer to the coordinate system in which the nodal coordinates in the IMAT_NODE object are stored.
The type property is an nx1 numeric vector containing the entity types. A value of 1 indicates node, and 2 indicates scalar point, or spoint. The length of the type vector must be the same as the length of the id field.
The color property is an nx1 numeric vector containing the node colors. The colors are positive numbers representing colors using the color scheme defined by I-deas. This scheme is shown in the table below. The length of the color vector must be the same as the length of the id field.
Number | Color |
0 | Black |
1 | Blue |
2 | Gray Blue |
3 | Light Blue |
4 | Cyan |
5 | Dark Olive |
6 | Dark Green |
7 | Green |
8 | Yellow |
9 | Golden Orange |
10 | Orange |
11 | Red |
12 | Magenta |
13 | Light Magenta |
14 | Pink |
15 | White |
16+ | User-defined |
The coord property in an nx3 double matrix containing the node coordinates. Each row contains the coordinates for a particular node in the coordinate system specified in column 3 of the cs property. If the coordinate system is Cartesian, the coordinates are specified in X-, Y-, and Z-order. If the coordinate system is cylindrical, coordinates are specified in R-, Theta- (degrees), and Z-order. If the coordinate system is spherical, coordinates are specified in R-, Phi-, and Theta-order (degrees). The coordinate system magnitude is assumed to be in the current units system. Angles are stored in units of radians. Please see the I-deas documentation for more information on coordinate system definitions. All of the coordinate systems specified in the coord property must be contained in the coordinate system object.
The IMAT_ELEM class contains all of the relevant element data. The properties and their descriptions are shown in the table below. The contents of each of these properties are described below. Some of the properties in the element structure are not used by IMAT, but are provided so that no data is lost in a round trip between I-deas and MATLAB.
Property Name | Description |
.id | Element labels ([nx1] numeric vector) |
.type | Element type ([nx1] numeric vector) |
.color | Element colors ([nx1] numeric vector) |
.prop | Element physical and material properties ([nx2] numeric vector) |
.beamdata | Element beam orientation and cross-sections ([nx3] numeric vector) |
.conn | Traceline connectivity ({nx1} cell array of numeric row vectors) |
The id property is an nx1 numeric vector containing the element labels. These labels should be positive and unique.
The type property is an nx1 numeric vector containing the element type descriptions. The element types correspond to those used by NASTRAN. Each type of element has a unique number, as shown in the table below. The length of the type vector must be the same as the length of the id property. To get a more complete list of element types and classes, use the IMAT_ELEM method get_elemtypes, as shown below. It will return a structure containing information describing the element types.
>> et = imat_elem.get_elemtypes()
et =
type: [1x48 double]
desc: {1x48 cell}
nnode: [1x48 double]
nnoderange: {48x1 cell}
nnodemap: [903x2 double]
class: [1x903 double]
classdata: {20x3 cell}
Class | Type Number | Element Type |
1-D | ||
34 | CBAR | |
100 | CBARA | |
2 | CBEAM | |
69 | CBEND | |
10 | CONROD | |
92 | CONROD (nonlinear) | |
1 | CROD | |
3 | CTUBE | |
24 | CVISC | |
2-D | ||
271 | CPLSTN3 | |
272 | CPLSTN4 | |
273 | CPLSTN6 | |
274 | CPLSTN8 | |
62 | CQDMEM | |
127 | CQUAD | |
33 | CQUAD4 | |
64 | CQUAD8 | |
82 | CQUADR | |
228 | CQUADR (newer formulation) | |
232 | CQUADR (newer formulation) | |
243 | CQUADX4 | |
245 | CQUADX8 | |
4 | CSHEAR | |
74 | CTRIA3 | |
75 | CTRIA6 | |
70 | CTRIAR | |
227 | CTRIAR (newer formulation) | |
233 | CTRIAR (newer formulation) | |
133 | CTRIAX | |
53 | CTRIAX6 | |
242 | CTRAX3 | |
244 | CTRAX6 | |
3-D | ||
67 | CHEXA | |
68 | CPENTA | |
255 | CPYRAM | |
39 | CTETRA | |
76 | CHEXPR | |
77 | CPENPR | |
79 | CPYRAMPR | |
78 | CTETPR | |
93 | CHEXA (nonlinear) | |
91 | CPENTA (nonlinear) | |
85 | CTETRA (nonlinear) | |
Other | ||
102 | CBUSH | |
40 | CBUSH1D | |
20 | CDAMP1 | |
21 | CDAMP2 | |
11 | CELAS1 | |
12 | CELAS2 | |
38 | CGAP | |
86 | CGAP (nonlinear) | |
29 | CONM1 | |
30 | CONM2 | |
901 | RBAR (numbering is IMAT-only) | |
902 | RBE2 (numbering is IMAT-only) | |
903 | RBE3 (numbering is IMAT-only) |
The color property is an nx1 numeric vector containing the element colors. The colors are positive numbers representing colors using the color scheme defined by I-deas. The length of the color vector must be the same as the length of the id field.
The prop property is an nx2 numeric vector containing the element physical and material property IDs. This property is not used by IMAT, but is provided for completeness. The first column contains physical property ID numbers, and the second contains material property ID numbers. These are positive numbers. The number of rows in this matrix must be the same as the length of the id property.
The beamdata property is an nx3 numeric vector containing beam element information. This property is not used by IMAT, but is provided for completeness. The first column contains beam orientation node numbers. The second column contains the fore-end beam cross section number, and the third column contains the aft-end beam cross section number. The .beamdata property contains positive numbers for beam elements. Rows that correspond to non-beam elements contain zeros. The number of rows in this matrix must be the same as the length of the id field.
The conn property is an nx1 cell array of numeric row vectors containing the element connectivity. The element connectivity contains a series of node IDs corresponding to the number of nodes necessary to define that element. The nodes specified in the element should all be contained in the node object. Please note that the node ordering for parabolic elements is NASTRAN-centric, where the corner nodes are specified first, followed by the midside nodes.
The IMAT_TL class contains all of the relevant traceline data. The properties and their descriptions are shown in the table below. The contents of each of these properties are described below.
Property Name | Description |
.id | Traceline labels ([nx1] numeric vector) |
.color | Traceline colors ([nx1] numeric vector) |
.desc | Traceline descriptions ({nx1} cell array of strings) |
.conn | Traceline connectivity ({nx1} cell array of numeric row vectors) |
The id property is an nx1 numeric vector containing the traceline labels. These labels should be positive and unique.
The color property is an nx1 numeric vector containing the traceline colors. The colors are positive numbers representing colors using the color scheme defined by I-deas. The length of the color vector must be the same as the length of the id field.
The desc property is an nx1 cell array of strings containing the traceline descriptions. Each description is a string. The description strings can be varying lengths (hence the need for a cell array). The length of the cell array must be the same as the length of the id property.
The conn property is an nx1 cell array of numeric row vectors containing the traceline connectivity. The traceline connectivity contains a series of node IDs. The traceline can contain breaks, which are specified by a node number of 0. When a break is encountered, the traceline will stop being drawn at the node before the break and will continue starting with the node after the break. You must have between 2 and 250 nodes in the traceline (breaks are counted as a node), and you can have multiple breaks. The nodes specified in the traceline should all be contained in the node object.