]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[del] refine Mesh template entfernt
authortreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sat, 22 Oct 2011 21:14:27 +0000 (21:14 +0000)
committertreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sat, 22 Oct 2011 21:14:27 +0000 (21:14 +0000)
git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@60 26120e32-c555-405d-b3e1-1f783fb42516

src/nMesh/exmpl_2DLShape.mat [deleted file]
src/nMesh/exmpl_2DQuad.mat [deleted file]
src/nMesh/exmpl_2DQuad2.mat [deleted file]
src/nMesh/exmpl_3DCube.mat [deleted file]
src/nMesh/exmpl_3DFichCube.mat [deleted file]
src/nMesh/plotShape.m [deleted file]
src/nMesh/quadNorm.m [deleted file]
src/nMesh/refineQuad.m [deleted file]

diff --git a/src/nMesh/exmpl_2DLShape.mat b/src/nMesh/exmpl_2DLShape.mat
deleted file mode 100644 (file)
index 3b6e437..0000000
Binary files a/src/nMesh/exmpl_2DLShape.mat and /dev/null differ
diff --git a/src/nMesh/exmpl_2DQuad.mat b/src/nMesh/exmpl_2DQuad.mat
deleted file mode 100644 (file)
index 4e1a628..0000000
Binary files a/src/nMesh/exmpl_2DQuad.mat and /dev/null differ
diff --git a/src/nMesh/exmpl_2DQuad2.mat b/src/nMesh/exmpl_2DQuad2.mat
deleted file mode 100644 (file)
index eedc589..0000000
Binary files a/src/nMesh/exmpl_2DQuad2.mat and /dev/null differ
diff --git a/src/nMesh/exmpl_3DCube.mat b/src/nMesh/exmpl_3DCube.mat
deleted file mode 100644 (file)
index 448514e..0000000
Binary files a/src/nMesh/exmpl_3DCube.mat and /dev/null differ
diff --git a/src/nMesh/exmpl_3DFichCube.mat b/src/nMesh/exmpl_3DFichCube.mat
deleted file mode 100644 (file)
index af81397..0000000
Binary files a/src/nMesh/exmpl_3DFichCube.mat and /dev/null differ
diff --git a/src/nMesh/plotShape.m b/src/nMesh/plotShape.m
deleted file mode 100644 (file)
index cf5f42e..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-function plotShape(coordinates, elements, varargin)
-%
-% plotShape(coordinates,elements)
-% plotShape(coordinates,elements,'FLAG')
-%
-% Diese Funktion Zeichnet alle Vierecke mit ausgefuellten Flaechen.
-% FLAG:
-% c -> Koordinaten als rote Kreise darstellen
-% b -> nur Kanten der Elemente einzeichnen
-% n -> Normen auf ein Element einzeichnen (mit Laenge 1)
-% a -> Normen auf ein Element einzeichnen (Laenge durch Flaecheninhalt)
-%
-% P.Schaefer
-
-%% Parameterueberpruefung
-c = 0;
-e = 1;
-n = 0;
-optargin = size(varargin,2);
-if(optargin>1)
-    error('Zu viele Argumente');
-elseif(optargin==1)
-    if(ismember('b',varargin{1}))
-        e = 0;
-    end
-    if(ismember('c',varargin{1}))
-        c = 1;
-    end
-    if(ismember('a',varargin{1}))
-        n = 2;
-    elseif(ismember('n',varargin{1}))
-        n = 1;
-    end
-end
-
-%% Koordinaten einzeichnen
-if(c)
-    scatter3(coordinates(:,1),coordinates(:,2),coordinates(:,3),'r');
-    hold on
-end
-
-%% Flächen
-eles = size(elements,1);
-if(e)
-    for idx = 1:eles
-        current = coordinates(elements(idx,[1:4,1])',:);
-%         current(3,:) = current(3,:)-current(1,:)+current(2,:);
-        fill3(current(:,1),current(:,2),current(:,3),'b'); % Zeichnet Oberflaeche
-        hold on
-    end
-else
-    for idx = 1:eles
-        current = coordinates(elements(idx,[1:4,1])',:);
-%         current(3,:) = current(3,:)-current(1,:)+current(2,:);
-        plot3(current(:,1),current(:,2),current(:,3),'b'); % Zeichnet nur Kanten
-        hold on
-    end
-end
-
-if(n)
-    if(n==2)
-        anorm = quadNorm(coordinates,elements,'w');
-    else
-        anorm = quadNorm(coordinates,elements);
-    end
-    for idx = 1:eles
-        current = sum(coordinates(elements(idx,[2,4])',:),1)/2;
-        current = [current ; current+anorm(idx,:);coordinates(elements(idx,1)',:)];
-        plot3(current(:,1),current(:,2),current(:,3),'r'); % Zeichnet Oberflaeche
-        scatter3(current(2,1),current(2,2),current(2,3),'xr');
-        hold on
-    end
-end
-
-xlabel 'x'
-ylabel 'y'
-zlabel 'z'
-
-hold off
-
-end
-
diff --git a/src/nMesh/quadNorm.m b/src/nMesh/quadNorm.m
deleted file mode 100644 (file)
index 18b0f85..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-function n = quadNorm(coordinates, elements,varargin)
-%
-% norm = quadNorm(coordinates, elements)
-% norm = quadNorm(coordinates, elements, 'FLAG')
-%
-% Diese Funktion Berechnet die Orthogonalen mit Laenge 1 über alle Flächen
-% FLAG:
-% w -> Laenge entspricht Flaecheninhalt
-%
-% P.Schaefer
-
-%% Parameterueberpruefung
-w = 1;
-
-optargin = size(varargin,2);
-if(optargin>1)
-    error('Zu viele Argumente');
-elseif(optargin==1)
-    if(ismember('w',varargin{1}))
-        w = 0;
-    end
-end
-
-    %Numbers needed
-    s_ele = size(elements,1);
-    
-
-%%  calculate the Norm
-    n = zeros(size(elements,1),3);
-    for i = 1:s_ele
-        % normalized Vector on every triangle
-        tri = elements(i,:);
-        a = (coordinates(tri(2),:)-coordinates(tri(1),:));
-        b = (coordinates(tri(4),:)-coordinates(tri(1),:));
-        N = cross(a',b');
-        if(w)
-            N = N/norm(N);
-        end
-        n(i,:) = N;
-    end
-
-end
-
-
-
diff --git a/src/nMesh/refineQuad.m b/src/nMesh/refineQuad.m
deleted file mode 100644 (file)
index c212b4f..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-function [coo,ele,nei,f2s] = refineQuad(coordinates,elements,neigh,type)
-%
-%  [coordinates,elements,fa2so] = refineQuad(coordinates,elements,type)
-%
-% Verfeinert die markierten Elemente mit dem entsprechenden TYP und gibt
-% auch die F2S Beziehungen zurück. type muss von der Länge der Anzahl der
-% Elemente entsprechen oder genau 1 und die Einträge können 1,2,3,4 sein.
-%
-% der Typ zu jedem Element entspricht dabei:
-% 1- keine Verfeinerung
-% 2- 4 neue Elemente
-% 3- 2 neue Elemente, übereinander
-% 4- 2 neue Elemente, nebeneinander
-%
-% P. Schaefer
-
-
-%Type wenn nur ein Wert: aufblaehen
-if([1 1] == size(type))
-    type = repmat(type, size(elements,1),1);
-end
-
-%Globale Variabelen aufbauen
-global G_ref_E;
-global G_ref_C;
-global G_ref_N;
-global G_ref_f2s;
-global G_ref_t;
-
-%Elementanzahl speichern
-c_loop = size(elements,1);
-
-%Globale Variablen zuweisen
-G_ref_E = elements;
-G_ref_C = coordinates;
-G_ref_N = neigh;
-G_ref_t = type;
-G_ref_f2s = repmat([1:c_loop]',1,4);
-
-%Parameter Freigeben (Speicher...)
-clear elements coordinates neigh type
-
-%Jedes Element verfeinern
-for i = 1:c_loop
-  refine(i);
-end
-
-%Rueckgabe zuweisen
-coo = G_ref_C;
-ele = G_ref_E;
-nei = G_ref_N;
-f2s = G_ref_f2s;
-
-%Doppelte Koordinaten loeschen
- [coo l pos] = unique(coo,'rows');
- ele = pos(ele);
-
- %Globale Variablen freigeben
-clear G_ref_E G_ref_C G_ref_N G_ref_f2s G_ref_t
-end
-
-
-function refine(ele)
-% global G_ref_E;
-% global G_ref_C;
-global G_ref_N;
-% global G_ref_f2s;
-global G_ref_t;
-
-if(G_ref_t(ele)==1)
-  return;
-end
-
-% Ueberpruefe Nachbarn auf Nodes
-N = G_ref_N(ele,G_ref_N(ele,5:8)==0);
-N2 = N(N~=0);
-if(~isempty(N2))
-  N3=mod(find((G_ref_N(N2',:)==ele)')-1,4)+5; % ACHTUNG noch mal überprüfen
-  N4=N2(diag(G_ref_N(N2',N3'))~=0);
-  
-  % wenn ungueltig verfeinere sie (link auf Soll verfeinert werden?)
-  if(~isempty(N4))
-    for i = 1:length(N4)
-%       if(G_ref_t(N4(i))<=2)
-        G_ref_t(N4(i))=2; %WIRD GNADENLOS AUF 2 GESETZT
-        refine(N4(i));
-%       else
-%         mod(find(G_ref_N(N4(i),:)==ele)-1,2)
-%       end
-    end
-  end
-end
-
-
-% verfeinere dieses element
-refineE(ele);
-
-% setze Nachbarschafts relationen
-updateN(ele);
-
-end
-
-function refineE(ele)
-% Element wird gnadenlos Verfeinert
-global G_ref_E;
-global G_ref_C;
-%global G_ref_N;
-global G_ref_f2s;
-global G_ref_t;
-
-    c_ele = size(G_ref_E,1);
-    c_coo = size(G_ref_C,1);
-    
-    
-    el = G_ref_E(ele,:);
-    if(G_ref_t(ele)==1)
-      disp 'Warning: Type = 1';
-        return;
-    elseif(G_ref_t(ele)==2)
-        G_ref_C(c_coo+1,:) = (G_ref_C(el(1),:)+G_ref_C(el(2),:))/2;
-        G_ref_C(c_coo+2,:) = (G_ref_C(el(2),:)+G_ref_C(el(3),:))/2;
-        G_ref_C(c_coo+3,:) = (G_ref_C(el(3),:)+G_ref_C(el(4),:))/2;
-        G_ref_C(c_coo+4,:) = (G_ref_C(el(1),:)+G_ref_C(el(4),:))/2;
-        G_ref_C(c_coo+5,:) = (G_ref_C(el(1),:)+G_ref_C(el(3),:))/2;
-
-        G_ref_E(ele,:) = [c_coo+4,c_coo+5,c_coo+3,el(4)];
-        G_ref_E(c_ele+1,:) = [c_coo+5,c_coo+2,el(3),c_coo+3];
-        G_ref_E(c_ele+2,:) = [c_coo+1,el(2),c_coo+2,c_coo+5];
-        G_ref_E(c_ele+3,:) = [el(1),c_coo+1,c_coo+5,c_coo+4];
-    
-        G_ref_f2s(ele,1:3)=c_ele+3:-1:c_ele+1;
-    elseif(G_ref_t(ele)==3)
-        G_ref_C(c_coo+1,:) = (G_ref_C(el(1),:)+G_ref_C(el(4),:))/2;
-        G_ref_C(c_coo+2,:) = (G_ref_C(el(2),:)+G_ref_C(el(3),:))/2;
-        
-        G_ref_E(ele,1) = c_coo+1;
-        G_ref_E(ele,2) = c_coo+2;
-        
-        G_ref_E(c_ele+1,:) = [el(1),el(2),c_coo+2,c_coo+1];
-        G_ref_f2s(ele,[1 2])=c_ele+1;
-     elseif(G_ref_t(ele)==4)
-        G_ref_C(c_coo+1,:) = (G_ref_C(el(1),:)+G_ref_C(el(2),:))/2;
-        G_ref_C(c_coo+2,:) = (G_ref_C(el(4),:)+G_ref_C(el(3),:))/2;
-        
-        G_ref_E(ele,2) = c_coo+1;
-        G_ref_E(ele,3) = c_coo+2;
-        
-        G_ref_E(c_ele+1,:) = [c_coo+1,el(2),el(3),c_coo+2];
-        G_ref_f2s(ele,[2 3])=c_ele+1;
-    end
-    
-    G_ref_t(ele) = 1;
-    
-end
-
-function updateN(ele)
-% Nachbarschaften werden neu gesetzt (nach N und f2s)
-global G_ref_E;
-% global G_ref_C;
-global G_ref_N;
-global G_ref_f2s;
-
-
-%Innere Beziehungen setzen
-% ...
-
-this = G_ref_N(ele,:);
-split = G_ref_f2s(ele,:);
-S = find(mod((this(1:4)~=0).*(this(5:8)==0),2))' %An welchen Kanten habe ich Nachbarn
-D = find(this(5:8)~=0)'
-MS = mod(find((G_ref_N(this(S),:)==ele)')-1,4)+1  %An welchen Kanten bin ich Nachbar
-MD = mod(find((G_ref_N(this([D D+4]),:)==ele)')-1,4)+1
-MD = reshape(MD,2,lenght(MD)/2);
-
-G_ref_N(split,1:8) = 0;
-
-if(split(1)==split(2))
-  G_ref_N(split([1 3])',1:4) = [ 0 0 split(3) 0;split(1) 0 0 0];
-      % Beziehungen fuer Kanten mit einem Nachbar
-    for i = 1:length(S)
-      if(mod(S(i),2)==0)
-        G_ref_N(this(S(i)),[MS(i) MS(i)+4]) = [split(S(i)) split(mod(S(i),4)+1)];
-        G_ref_N([split(S(i)) split(mod(S(i),4)+1)]',S(i))=this(S(i));
-      else
-        G_ref_N(this(S(i)),MS(i)) = split(S(i));
-        G_ref_N(split(S(i)),S(i)) = this(S(i));
-      end
-    end
-  
-    % Beziehungen fuer Kanten mit zwei Nachbarn
-    for i = 1:length(D)
-      if(mod(S(i),2)==0)
-        if(length(unique([G_ref_E(this(D(i)),:) G_ref_E(split(D(i)),:)]))==7)
-          G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
-          G_ref_N(this(D(i)+4),MD(2,i)) = split(mod(D(i),4)+1);
-          G_ref_N(split(D(i)),D(i)) = this(D(i));
-          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i)+4);
-        else
-          G_ref_N(this(D(i)),MD(1,i)) = split(mod(D(i),4)+1);
-          G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
-          G_ref_N(split(D(i)),D(i)) = this(D(i)+4);
-          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i));      
-        end
-      else
-        G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
-        G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
-        G_ref_N(split(D(i)),[D(i) D(i)+4]) = [this(D(i)) this(D(i)+4)];
-      end
-    end
-  
-elseif(split(1)==split(4))
-  G_ref_N(split([1 2])',1:4) = [ 0 split(2) 0 0;0 0 0 split(1)];
-    % Beziehungen fuer Kanten mit einem Nachbar
-    for i = 1:length(S)
-      if(mod(S(i),2)==1)
-        G_ref_N(this(S(i)),[MS(i) MS(i)+4]) = [split(S(i)) split(mod(S(i),4)+1)];
-        G_ref_N([split(S(i)) split(mod(S(i),4)+1)]',S(i))=this(S(i));
-      else
-        G_ref_N(this(S(i)),MS(i)) = split(S(i));
-        G_ref_N(split(S(i)),S(i)) = this(S(i));
-      end
-    end
-  
-    % Beziehungen fuer Kanten mit zwei Nachbarn
-    for i = 1:length(D)
-      if(mod(S(i),2)==1)
-        if(length(unique([G_ref_E(this(D(i)),:) G_ref_E(split(D(i)),:)]))==7)
-          G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
-          G_ref_N(this(D(i)+4),MD(2,i)) = split(mod(D(i),4)+1);
-          G_ref_N(split(D(i)),D(i)) = this(D(i));
-          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i)+4);
-        else
-          G_ref_N(this(D(i)),MD(1,i)) = split(mod(D(i),4)+1);
-          G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
-          G_ref_N(split(D(i)),D(i)) = this(D(i)+4);
-          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i));      
-        end
-      else
-        G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
-        G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
-        G_ref_N(split(D(i)),[D(i) D(i)+4]) = [this(D(i)) this(D(i)+4)];
-      end
-    end
-  
-else
-  G_ref_N(split',1:4) = [0 split(2) split(4) 0; 0 0 split(3) split(1);...
-                         split(2) 0 0 split(4); split(1) split(3) 0 0];
-  
-    % Beziehungen fuer Kanten mit einem Nachbar
-    for i = 1:length(S)
-      G_ref_N(this(S(i)),[MS(i) MS(i)+4]) = [split(S(i)) split(mod(S(i),4)+1)];
-      G_ref_N([split(S(i)) split(mod(S(i),4)+1)]',S(i))=this(S(i));
-    end
-  
-    % Beziehungen fuer Kanten mit zwei Nachbarn
-    for i = 1:length(D)
-      if(length(unique([G_ref_E(this(D(i)),:) G_ref_E(split(D(i)),:)]))==7)
-        G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
-        G_ref_N(this(D(i)+4),MD(2,i)) = split(mod(D(i),4)+1);
-        G_ref_N(split(D(i)),D(i)) = this(D(i));
-        G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i)+4);
-      else
-        G_ref_N(this(D(i)),MD(1,i)) = split(mod(D(i),4)+1);
-        G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
-        G_ref_N(split(D(i)),D(i)) = this(D(i)+4);
-        G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i));      
-      end
-    end
-  
-end
-
-
-
-
-
-end
-