Contents   Functions      PDF Index |
Purpose
Read from Universal Files.
Syntax
ufread ufread('FileNameOrList') UFS = ufread('FileName') UFS = ufread('FileList*.uff')
Description
The Universal File Format is a set of ASCII file formats widely used to exchange analysis and test data. As detailed below ufread supports test related UFF (15 grid point, UFF55 analysis data at node, UFF58 response data at DOF) and with the FEMLink extension FEM related datasets.
ufread with no arguments opens a GUI to let you select a file and displays the result using feplot and/or iiplot. ufread('FileName') opens an feplot or iiplot figure with the contents. UFS=ufread('FileName') returns either a FEM model (if only model information is given) or a curve stack UFS pointing to the universal files present in FileName grouped by blocks of files read as a single dataset in the SDT (all FRFs of a given test, all trace lines of a given structure, etc.). You can specify a file list using the * character in the file name.
You get a summary of the file contents by displaying UFS
>> UFS UFS = UFF curve stack for file 'example.uff' {1} [.Node (local) 107x7, .Elt (local) 7x156] : model 2 [.w (UFF) 512x1, .xf (UFF) 512x3] : response data 3 [.po (local) 11x2, .res (local) 11x318] : shape data
which indicates the content of each dataset in the stack, the current data set between braces { }, the type and size of the main data fields. For response data (UFF type 58), the data is only imported when you refer to it (UFS(i) call) but it is imported every time you do so unless you force loading into memory using UFS(i)=UFS(i).
The UFS object gives you direct access to the data in each field. In the example above, you can display the modeshapes using
cf = feplot;
cf.model = UFS(1);
cf.def = UFS(3);
When loading response data, you may want to transfer all options from the universal file to an iiplot stack entry using calls of the form ci.Stack{'curve','Test'}=UFS(3).If you need to extract partial sets of DOF, consider fe_def SubDof.
Grid points stored in a node matrix (see node ) in a UFS(i).Node field.
The format is a (4I10,1P3E13.5) record for each node with fields
[NodeID PID DID GID x y z]
where NodeID are node numbers (positive integers with no constraint on order or continuity), PID and DID are coordinate system numbers for position and displacement respectively (this option is not currently used), GID is a node group number (zero or any positive integer), and x y z are the coordinates.
UFF55 Analysis data at nodes are characterized by poles .po and residues .res (corresponding to DOFs .dof) and correspond to shape at DOF datasets (see more info under the xfopt help).
The information below gives a short description of the universal file format. You are encouraged to look at comments in the ufread and ufwrite source codes if you want more details.
Header1 | (80A1). The UFF header lines are stored in the .header field |
Header2 | (80A1) |
Header3 | (80A1) DD-MMM-YY and HH:MM:SS with format (9A1,1X,8A1) |
Header4 | (80A1) |
Header5 | (80A1) |
Fun | (6I10) This is stored in the .fun field |
SpeInt | (8I10) NumberOfIntegers on this line (3-N are type specific), NumberOfReals on the next line, SpeInt type specific integers (see table below for details) |
SpeRea | Type specific real parameters |
NodeID | (I10) Node number |
Data | (6E13.5) Data At This Node : NDV Real Or Complex Values (real imaginary for data 1, ...) |
Records 9 And 10 Are Repeated For Each Node. |
Type specific values depend on the Signification value and are stored in the .r55 field.
0 Unknown | [ 1 1 ID Number] |
[0.0] | |
1 Static | [1 1 LoadCase] |
[0.0] | |
2 Normal model | [2 4 LoadCase ModeNumber] |
[FreqHz ModalMass DampRatioViscous DampRatioHysteretic] | |
3 Complex | [2 6 LoadCase ModeNumber] |
eigenvalue | [ReLambda ImLambda ReModalA ImModalA ReModalB ImModalB] |
4 Transient | [2 1 LoadCase TimeStep] |
[TimeSeconds] | |
5 Frequency | [2 1 LoadCase FreqStepNumber] |
response | [FrequencyHz] |
6 Buckling | [1 1 LoadCase] |
[Eigenvalue] |
UFF58 Functions at nodal DOF (see Response data) are characterized by frequencies w, a data set xf, as well as other options. The information below gives a short description of the universal file format. You are encouraged to look at comments in the ufread and ufwrite source codes if you want more details. Functions at nodal DOFs are grouped by type and stored in response data sets of UFS.
Header1 | (80A1) Function description |
Header2 | (80A1) Run Identification |
Header3 | (80A1) Time stamp DD-MMM-YY and HH:MM:SS with format (9A1,1X,8A1) |
Header4 | (80A1) Load Case Name |
Header5 | (80A1) |
DOFID | This is stored in .dof field (which also has a file number as address in column 3). Values are
|
DataForm | (3I10,3E13.5) |
DFormat (2 : real, single precision, 4 : real, double precision, 5 : complex, single precision, 6 : complex, double precision), NumberOfDataPoints, XSpacing (0 - uneven, 1 - even (no abscissa values stored)), XMinimum (0.0 if uneven), XStep (0.0 if spacing uneven), ZAxisValue (0.0 if unused) | |
XDataForm | (I10,3I5,2(1X,20A1)) DataType (list with xfopt('_datatype')), lue length unit exponents, fue force, tue temperature, AxisLabel, AxisUnits |
Note : exponents are used to define dimensions. Thus Energy (Force * Length) has [fue lue tue]=[1 1 0]. This information is generally redundant with DataType. | |
YNDataForm | Ordinate (or ordinate numerator) Data Form (same as XDataForm |
YDDataForm | Ordinate Denominator Data Characteristics |
ZDataForm | Z-axis Data Characteristics |
DataValue | a series of x value (if uneven x spacing, always with format E13.5), real part, imaginary part (if exists) with precision (E13.5 or E20.12) depending on DFormat. |
UFF82 Trace Line matrix LDraw where each non-empty row corresponds to a line to be traced. All trace lines, are stored as element groups of UFS(1).Elt.
LDraw can be used to create animated deformation plots using feplot.
Opt | (3I10) LineNumber, NumberOfNodes, Color |
Label | (80A1) Identification for the line |
Header3 |
( ,1:2) [NumberOfNodes GroupID]
( ,3:82) [LineName] (which should
correspond to the group name)
( ,83:end) [NodeNumbers] (NumberOfNodes of them, with zeros to break the line)
Header stored as a string matrix header (with 7 rows).
These universal file formats are supported by the SDT FEMLink extension.
SDT | UNV element (UNV Id) |
beam1 | rod (11), linear beam (21) |
tria3 | thin shell lin triangle (91), plane stress lin tri (41), plan strain lin tri (51), flat plate lin triangle (74) |
tria6 | thin shell para tri (92), plane stress para tri (42), plane strain para tri (51), flat plate para tri (62), membrane para tri (72) |
quad4 | thin shell lin quad (94), plane stress lin quad (44), plane strain lin quad (54), flat plate lin quad (64), membrane lin quad (71) |
quadb | thin shell para quad (95), plane stress para quad (54), plane strain para quad(55), flat plate para quad (65), membrane para quad(75) |
tetra4 | solid lin tetra (111) |
tetra10 | solid para tetra (118) |
penta6 | solid lin wedge (112) |
penta15 | solid para wedge (113) |
hexa8 | solid lin brick (115) |
hexa20 | solid para brick (116) |
rigid | rigid element (122) |
bar1 | node-node trans spring (136), node-node rot spring (137) |
mass2 | lumped mass (161) |
These universal file formats are supported by the SDT FEMLink extension.
All materials properties are read, but obviously only those currently supported by the SDT are translated to the corresponding row format (see m_elastic and section 7.4).
These universal file formats are supported by the SDT FEMLink extension.
All element (physical) properties are read, but obviously only those currently supported by the SDT are translated to the corresponding row format (see p_beam, p_shell, section 7.3).
These universal file formats are supported by the SDT FEMLink extension.
Note that the list of FEMLink supported dataset is likely to change between manual editions. Please get in touch with SDTools if a dataset you want to read is not supported.
See also