]> Creatis software - CreaPhase.git/blobdiff - octave_packages/secs2d-0.0.8/Utilities/UDXappend2Ddata.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / secs2d-0.0.8 / Utilities / UDXappend2Ddata.m
diff --git a/octave_packages/secs2d-0.0.8/Utilities/UDXappend2Ddata.m b/octave_packages/secs2d-0.0.8/Utilities/UDXappend2Ddata.m
new file mode 100644 (file)
index 0000000..f5c2fba
--- /dev/null
@@ -0,0 +1,56 @@
+function UDXappend2Ddata(filename,p,t,u,attr_name,attr_rank,attr_shape,endfile)
+
+%
+%   UDXappend2Ddata(filename,p,t,u,attr_name,attr_rank,attr_shape)
+%
+%   Apends data to a file in DX form.
+%   Only one variable can be written to the file
+%   variable must be a scalar, vector or tensor of doubles   
+%   mesh data in the file must be consistent with this variable
+%
+%   x
+%   attr_name  = name of the variable                   (type string)
+%   attr_rank  = rank of variable data                  (0 for scalar, 1 for vector, etc.)
+%   attr_shape = number of components of variable data  (assumed 1 for scalar)
+%
+
+p = p';
+t = t';
+t = t(:,1:3);
+
+%eval(['!rm -f ',filename]);
+
+fid=fopen (filename,'a');
+Nnodi = size(p,1);
+Ntriangoli = size(t,1);
+
+fprintf(fid,'\nattribute "element type" string "triangles"\nattribute "ref" string "positions"\n\n');
+
+if ((attr_rank==0) & (min(size(u))==1))
+    fprintf(fid,'object "%s.data"\nclass array type double rank 0 items %d data follows',attr_name,Nnodi);
+    fprintf(fid,'\n %1.7e',u);
+else
+    fprintf(fid,'object "%s.data"\nclass array type double rank %d shape %d items %d data follows', ...
+        attr_name,attr_rank,attr_shape,Nnodi);
+    for i=1:Nnodi
+        fprintf(fid,'\n');
+        fprintf(fid,'    %1.7e',u(i,:));
+    end
+end
+fprintf(fid,['\nattribute "dep" string "positions"\n\n' ...
+             'object "%s" class field\n'...
+             'component "positions" value "pos"\n'...
+             'component "connections" value "con"\n'...
+             'component "data" value "%s.data"\n'],...
+              attr_name,attr_name);
+
+if(endfile)
+    fprintf(fid,'\nend\n');
+end
+
+fclose (fid);
+
+
+% Last Revision:
+% $Author: cdf $
+% $Date: 2007-05-22 21:16:23 +0200 (tir, 22 maj 2007) $