1 |
function ret_struct=read_ucd(inpname); |
---|
2 |
%READ_UCD read an .inp file, an AVS-Unstructured Cell Data file with |
---|
3 |
% uniform cell topology of type TRI. |
---|
4 |
% |
---|
5 |
% For an unknown reason, AVS uses the suffix '.inp' to indicate |
---|
6 |
% a input file for a UCD structure and not the obvious '.ucd', |
---|
7 |
% even though the AVS routines which use UCD structures are called |
---|
8 |
% UCD routines. OPNML will adhere to this convention as well. |
---|
9 |
% This unfortunately conflicts with the filename suffix for |
---|
10 |
% the FUNDY series of FEM models. |
---|
11 |
% |
---|
12 |
% This routine is provided as an "interface" between the |
---|
13 |
% AVS-UCD datatype and OPNML/MATLAB in the loosest sense. |
---|
14 |
% Currently, only the TRANSECT code and the transect routines |
---|
15 |
% in QUODDY3.3 and later output a UCD-structure file. |
---|
16 |
% The .trn (transect) filetype is obsolete. |
---|
17 |
% |
---|
18 |
% Input: If inpname is omitted, READ_UCD enables a file browser |
---|
19 |
% with which the user can specify the .inp file. |
---|
20 |
% |
---|
21 |
% Otherwise, READ_UCD takes as input the filename of the |
---|
22 |
% transect data file, including the .inp suffix. |
---|
23 |
% |
---|
24 |
% Output: The output of READ_UCD is a fem_grid_struct containing the |
---|
25 |
% transect information. The output structure can be passed |
---|
26 |
% directly to OPNML routines like COLORMESH2D, LCONTOUR, etc. |
---|
27 |
% The actual data for the transect is attached to the structure |
---|
28 |
% in the field .data. This .data field is as wide |
---|
29 |
% as the number of columns in the node-data specification |
---|
30 |
% part of the .inp file. Vector components will be returned |
---|
31 |
% as three scalars, NOT 1 vector. |
---|
32 |
% |
---|
33 |
% Read the "man" page for TRANSECT (type "man transect" at a UNIX |
---|
34 |
% prompt) for more information on the transect output formats. |
---|
35 |
% |
---|
36 |
% Make sure a semi-colon is used at the end of the command; |
---|
37 |
% otherwise READ_UCD will return the output arrays to the screen. |
---|
38 |
% |
---|
39 |
% Since OPNML/MATLAB routines are based on linear triangular |
---|
40 |
% finite elements in 2-D, READ_UCD only reads UCD structures |
---|
41 |
% with cell-topologies of type TRI. No other cell-types, or |
---|
42 |
% mixtures of cell-types, are allowed into OPNML/MATLAB through |
---|
43 |
% this routine. THIS CLEARLY DOES NOT APPLY TO AVS. |
---|
44 |
% |
---|
45 |
% Call as: transdata=read_ucd(inpname); |
---|
46 |
% |
---|
47 |
% Written by : Brian O. Blanton (Jun 98) |
---|
48 |
% |
---|
49 |
|
---|
50 |
err1=['READ_UCD requires 0 or 1 input arguments.']; |
---|
51 |
err2=['READ_UCD requires exactly 1 output arguments.']; |
---|
52 |
err3=['Argument to READ_UCD must be a string (filename)']; |
---|
53 |
|
---|
54 |
if nargin==0 & nargout==0 |
---|
55 |
disp('Call as: transdata=read_ucd(inpname);') |
---|
56 |
return |
---|
57 |
end |
---|
58 |
|
---|
59 |
if nargin > 1 |
---|
60 |
error(err1) |
---|
61 |
end |
---|
62 |
|
---|
63 |
if nargout ~=1 |
---|
64 |
error(err2) |
---|
65 |
end |
---|
66 |
|
---|
67 |
if ~exist('inpname') |
---|
68 |
[inpname,fpath]=uigetfile('*.inp','Which .inp'); |
---|
69 |
if inpname==0,return,end |
---|
70 |
else |
---|
71 |
if ~isstr(inpname),error(err3),end |
---|
72 |
fpath=[]; |
---|
73 |
end |
---|
74 |
|
---|
75 |
[et,xt,yt,zt,data]=read_ucd_mex5(inpname); |
---|
76 |
keyboard |
---|
77 |
% Generate a fem_grid_struct for return |
---|
78 |
ret_struct.name='trans'; |
---|
79 |
ret_struct.x=xt; |
---|
80 |
ret_struct.y=yt; |
---|
81 |
ret_struct.z=zt; |
---|
82 |
ret_struct.e=et; |
---|
83 |
ret_struct.bnd=detbndy(et); |
---|
84 |
ret_struct.data=data; |
---|
85 |
|
---|
86 |
|
---|
87 |
|
---|
88 |
return |
---|
89 |
|
---|
90 |
|
---|
91 |
% |
---|
92 |
% Brian O. Blanton |
---|
93 |
% Department of Marine Sciences |
---|
94 |
% 15-1A Venable Hall |
---|
95 |
% CB# 3300 |
---|
96 |
% Uni. of North Carolina |
---|
97 |
% Chapel Hill, NC |
---|
98 |
% 27599-3300 |
---|
99 |
% |
---|
100 |
% 919-962-4466 |
---|
101 |
% blanton@marine.unc.edu |
---|
102 |
% |
---|
103 |
|
---|