I am starting using Matlab to generate a Elmermesh structure. The part I want to generate is the boundary of the structure and the sequence has been described by the Note.
The Code as follow:
Code: Select all
g=zeros((yges+xges)*2+yges*xges,4);
yges=40;
xges=10;
%Flaeche 1 und 2
k_2=yges*2+2;
for i=1:2
g(i,:)=[i*2+2 i*2 i*2-1 i*2+1];
g(yges+i,:)=[k_2+i*2 k_2+i*2+2, k_2+i*2+1 k_2+i*2-1];
end
for i=3:yges-1
g(i,:)=[i*2+2 i*2+1, i*2-1 i*2];
g(yges+i,:)=[k_2+i*2+1 k_2+i*2+2, k_2+i*2 k_2+i*2-1];
end
g(yges,:)=[yges*2-1 yges*2 yges*2+2 yges*2+1];
g(2*yges,:)=[k_2+yges*2-1 k_2+yges*2 k_2+yges*2+2 k_2+yges*2+1];
%Flaeche 3
k_3=k_2+2*yges+2;
g(2*yges+1,:)=[1 k_3+1 k_3+2 3];
for i=2:xges-1
g(2*yges+i,:)=[k_3+2*i-3 k_3+2*i-1 k_3+2*i k_3+2*i-2];
end
g(2*yges+xges,:)=[k_3+2*(xges-1)-1 yges*2+3 yges*2+5 k_3+2*(xges-1)];
%Flaeche 4
k_4=k_3+2*(xges-1);
g(2*yges+xges+1,:)=[k_4+2 k_4+1 k_2-1 k_2];
for i=2:xges-1
g(2*yges+i,:)=[k_4+2*i k_4+2*i-1 k_4+2*i-3 k_3+2*i-2];
end
g(2*(yges+xges),:)=[k_3 k_3-1 k_4+2*(xges-1)-1 k_4+2*(xges-1)];
%Flaeche 5
k_5=k_4+2*(xges-1);
%Allgemein
for j=0:xges-1
for i=1:yges
g(2*(xges+yges)+j*yges+i,:)=[k_5+(j-1)*(yges-1)+i k_5+j*(yges-1)+i k_5+j*(yges-1)+i-1 k_5+(j-1)*(yges-1)+i-1];
end
end
%Rand x=0(ausser y_max)
%erst zwei Quadrats
g(2*(yges+xges)+1,1)=2;
g(2*(yges+xges)+1,4)=1;
g(2*(yges+xges)+2,1)=5;
g(2*(yges+xges)+2,4)=2;
for i=3:yges-1
g(2*(yges+xges)+i,1)=2*i+1;
g(2*(yges+xges)+i,4)=2*i-1;
end
%Rand x=max(ausser y_max)
%erst zwei Quadrats
g(2*(yges+xges)+yges*(xges-1)+1,2)=k_2+2;
g(2*(yges+xges)+yges*(xges-1)+1,3)=k_2+1;
g(2*(yges+xges)+yges*(xges-1)+2,2)=k_2+5;
g(2*(yges+xges)+yges*(xges-1)+2,3)=k_2+2;
for i=3:yges-1
g(2*(yges+xges)+yges*(xges-1)+i,2)=k_2+2*i+1;
g(2*(yges+xges)+yges*(xges-1)+i,3)=k_2+2*i-1;
end
%Rand y=0
g(2*(yges+xges)+1,3)=k_3+1;
g(2*(yges+xges)+yges*(xges-1)+1,4)=k_3+2*(xges-1)-1;
for i=2:xges-1
g(2*(yges+xges)+i,3)=k_3+2*i-1;
g(2*(yges+xges)+i,4)=k_3+2*i-3;
end
%Rand y=max(4 nodes)
g(2*(yges+xges)+yges,:)=[k_4+1 k_5+yges-2 yges*2-1 yges*2+1];
for i=2:xges-1
g(2*(yges+xges)+i*yges,:)=[k_4+2*i-1 k_5+i*(yges-2) k_5+(i-1)*(yges-2) k_4+2*i-3];
end
g(2*(yges+xges)+yges*xges,:)=[k_3-1 k_3-3 k_5+(xges-1)*(yges-1) k_5-1];
%Flaeche 6
k_6=k_5+(xges-1)*(yges-1);
%Allgemein
for j=0:xges-1
for i=1:yges
g(2*(xges+yges)+xges*yges+j*yges+i,:)=[k_6+(j-1)*(yges-1)+i k_6+j*(yges-1)+i k_6+j*(yges-1)+i-1 k_6+(j-1)*(yges-1)+i-1];
end
end
%Rand x=0(ausser y_max)
%erst zwei Quadrats
g(2*(yges+xges)+xges*yges+1,1)=4;
g(2*(yges+xges)+1,4)=3;
g(2*(yges+xges)+2,1)=6;
g(2*(yges+xges)+2,4)=4;
for i=3:yges-1
g(2*(yges+xges)+i,1)=2*i+2;
g(2*(yges+xges)+i,4)=2*i;
end
%Rand x=max(ausser y_max)
%erst zwei Quadrats
g(2*(yges+xges)+xges*yges+yges*(xges-1)+1,2)=k_2+4;
g(2*(yges+xges)+xges*yges+yges*(xges-1)+1,3)=k_2+3;
g(2*(yges+xges)+xges*yges+yges*(xges-1)+2,2)=k_2+6;
g(2*(yges+xges)+xges*yges+yges*(xges-1)+2,3)=k_2+4;
for i=3:yges-1
g(2*(yges+xges)+xges*yges+yges*(xges-1)+i,2)=k_2+2*i+2;
g(2*(yges+xges)+xges*yges+yges*(xges-1)+i,3)=k_2+2*i;
end
%Rand y=0
g(2*(yges+xges)+1,3)=k_3+3;
g(2*(yges+xges)+yges*(xges-1)+1,4)=k_3+2*(xges-1);
for i=2:xges-1
g(2*(yges+xges)+xges*yges+i,3)=k_3+2*i;
g(2*(yges+xges)+xges*yges+i,4)=k_3+2*i-2;
end
%Rand y=max(4 nodes)
g(2*(yges+xges)+xges*yges+yges,:)=[k_4+2 k_6+yges-2 yges*2 yges*2+2];
for i=2:xges-1
g(2*(yges+xges)+xges*yges+i*yges,:)=[k_4+2*i k_6+i*(yges-2) k_6+(i-1)*(yges-2) k_4+2*i-2];
end
g(2*(yges+xges)+2*yges*xges,:)=[k_3 k_3-2 k_6+(xges-1)*(yges-1) k_5];
meshBoundary=zeros(2*(xges+yges)+2*xges*yges,5);
for i=1:2*(xges+yges)+2*xges*yges
meshBoundary(i,1)=i;
meshBoundary(i,2)=g(i,1);
meshBoundary(i,3)=g(i,2);
meshBoundary(i,4)=g(i,3);
meshBoundary(i,5)=g(i,4);
end
[file_out_me,path_out_l] = uiputfile('mesh.boundary','Save file name');
FileOut_me=[path_out_l,file_out_me];
fid=fopen(FileOut_me,'wt');
for k = 1:(2*(xges+yges)+2*xges*yges)
fprintf(fid, '%i %i %i %i %i\n',meshBoundary(g,:));
end;
fclose('all');
The problem is I cannot get results from the program.
I am an beginner about this and maybe I have not explained so clearly. If you guys have questions, please tell me. Thank you all!