end
out = '';
-if(lenght(varargin)~=0)
+if(length(varargin)~=0)
out = varargin{1};
end
% Adaptiv Verfeinern
marked = mark(x_fine(f2s)',ind,eta,eps);
- figure(1)
- plotShape(G_C,G_E,'s',ind);
- title('Elemente mit Fehlerschaetzer')
- colorbar
- view(2)
- plotMark(find(marked>1),G_C,G_E);
+% figure(1)
+% plotShape(G_C,G_E,'s',ind);
+% title('Elemente mit Fehlerschaetzer')
+% colorbar
+% view(2)
+% plotMark(find(marked>1),G_C,G_E);
% clear 'coordinates_fine' 'elements_fine' 'neigh_fine' 'f2s'
end
tic
+ er = [];
[G_C, G_E, G_N, f, er] = refineQuad(G_C,G_E,G_N,marked);
time(3) = toc;
% if(~isempty(er))
+% figure(10)
% plotShape(G_C,G_E,'');
% plotMark(er,G_C,G_E);
% end
% Flächeninhalt aufbauen
updateS(1:c_loop);
+% figure(11)
+% plotShape(G_ref_C,G_ref_E,'s',G_ref_t);
+% view(2)
+% colorbar
+% title('zuVerfeinern')
+
ref_old = [];
+ref_old2 = [];
%% Erster Durchlauf
%Jedes Element verfeinern
while(1==1)
ref = find(G_ref_t>1);
ref = reshape(ref,1,length(ref));
if(isequal(ref,ref_old))
+ assert(~isequal(ref_old2,G_ref_t,'Markierte sind verschieden'));
break;
end
ref_old = ref;
+ ref_old2 = G_ref_t;
if(isempty(ref))
break;
end
% plotShape(G_ref_C,G_ref_E)
% plotMark(ref,G_ref_C,G_ref_E,'xg')
% title('Zum Verfeinern Markierte Elemente')
- for ele = ref(randperm(length(ref))) %LOL Zufall bringts
+ for ele = ref % ref(randperm(length(ref))) %LOL Zufall bringts
% figure(5)
% plotShape(G_ref_C,G_ref_E)
% plotMark(ele,G_ref_C,G_ref_E,'xg')
+% view(2)
% title('Entscheidene Nachbarelemente')
% # HangingNode Check
Nt = find(G_ref_N(ele,5:8)==0);
N5t = G_ref_t(N2(i));
if(N5t == 1)
G_ref_t(N2(i))=mod(N3t(i),2)+3;
+% figure(12)
+% plotShape(G_ref_C,G_ref_E,'s',G_ref_t);
+% colorbar
+% view(2)
+% title('Nachverfeinert')
elseif(N5t == mod(N3t(i)+1,2)+3)
G_ref_t(N2(i)) = 2;
+% figure(12)
+% plotShape(G_ref_C,G_ref_E,'s',G_ref_t);
+% colorbar
+% view(2)
+% title('Nachverfeinert')
end
end
+
+
continue;
end
end
end
end
+
+
+
%% Zweiter Durchlauf
ref_old=[];
-err = 0;
+err = [];
%Jedes Element verfeinern
-while(err==0)
+while(~length(err))
ref = find(G_ref_t>1);
ref = reshape(ref,1,length(ref));
if(isequal(ref,ref_old))
+ figure(13)
+ err_col = G_ref_t;
+ if(length(err_col)<size(G_ref_E,1))
+ err_col(size(G_ref_E,1)) = 0;
+ end
+ plotShape(G_ref_C,G_ref_E,'s',err_col);
+ view(2)
+ colorbar
+ title('noch zu Verfeinern')
error('refineQuad:refine',[int2str(length(ref)) ' Elements couldn t be refined'])
- err = ref;
break;
end
ref_old = ref;
if(isempty(ref))
break;
end
- for ele = ref(randperm(length(ref))) %LOL Zufall bringts
+ for ele = ref % ref(randperm(length(ref))) %LOL Zufall bringts
% # HangingNode Check
Nt = find(G_ref_N(ele,5:8)==0);
for i = N4t %Elemente die noch verfeinert werden muessen
if(N2(i)>length(G_ref_t)||G_ref_t(N2(i))<1); %eins der neuen Elemente
figure(7)
+ err_col = G_ref_t;
+ if(length(err_col)<size(G_ref_E,1))
+ err_col(size(G_ref_E,1)) = 0;
+ end
+ plotShape(G_ref_C,G_ref_E,'s',err_col)
+ plotMark([ele],G_ref_C,G_ref_E)
+ plotMark([N2(i) ],G_ref_C,G_ref_E,'or')
title('Fehlerhaftes Element mit Nachbar')
- plotShape(G_ref_C,G_ref_E)
- plotMark([N2(i) ele],G_ref_C,G_ref_E)
+ view(2)
error('refineQuad:refine','SKRIPTFEHLER: Dieses Element darf noch nicht verfeinert sein')
err = ref;
break;