35 lines
1.3 KiB
Matlab
35 lines
1.3 KiB
Matlab
function save_mesh2_mini( xc, ia, e, basename)
|
|
% Save the 3D triangular mesh in the minimal way (only coordinates and vertex connectivity)
|
|
% in binary file.
|
|
% The indexing in the connectivity is changed to C-style (starts with 0)
|
|
%
|
|
% coordinates xc: [2][nnode]
|
|
% connectivity ia: [4][nelem] with t(4,:) are the subdomain numbers
|
|
% edges e: [7][nedges] boundary edges
|
|
% e([1,2],:) - start/end vertex of edge
|
|
% e([3,4],:) - start/end values
|
|
% e(5,:) - segment number
|
|
% e([6,7],:) - left/right subdomain
|
|
% basename: file name without extension
|
|
% data from
|
|
% output from <https://de.mathworks.com/help/pde/ug/initmesh.html initmesh>
|
|
%
|
|
fname = [basename, '.bin'];
|
|
offset = 1; % index difference from C to Matlab
|
|
|
|
nnode = size(xc,2);
|
|
ndim = size(xc,1);
|
|
nelem = size(ia,2);
|
|
nvert_e = 3;
|
|
|
|
fileID = fopen(fname,'w');
|
|
fwrite(fileID, nnode, 'int'); % number of nodes
|
|
fwrite(fileID, ndim, 'int'); % space dimension
|
|
fwrite(fileID, nelem, 'int'); % number of elements
|
|
fwrite(fileID, nvert_e, 'int'); % number of vertices per element
|
|
|
|
fwrite(fileID, xc(:), 'double'); % coordinates
|
|
tmp=ia(1:3,:)-offset;
|
|
fwrite(fileID, tmp(:), 'double'); % connectivity
|
|
|
|
end
|