Direkt zum Inhalt | Direkt zur Navigation

UniBwM » LRT » LRT 1 » Prof. Gerdts » Teaching » Finite Elemente » Blatt8_Aufgabe31_Vorl.m

Blatt8_Aufgabe31_Vorl.m

Blatt8_Aufgabe31_Vorl.m — Objective-C source code, 1 kB (1.468 bytes)

Dateiinhalt

% Materialparameter
E = ...; %in N/m^2
nu = 0.3; %dimensionslos
rho = 7850; %in kg/m^3
% Lame-Parameter etc.
mu = E/2/(1+nu);
lambda = ...;
q = -lambda^2/(lambda + 2*mu); %-2*lambda*nu/(1-nu) + nu^2/(1-nu)^2 *(lambda + 2*mu);
%
% Erzeugung des Gitters 
%p sind die Koordinaten der Punkte
%e die Ecken
%t die Tetraeder/Dreiecke
[p,e,t] = initmesh(decsg ([3 4 10 10 0 0 1 0 0 1]'), 'hmax', 0.05);
n = size(p,2);
%
% Assemblierung der ’kleinen’ Matrizen
A11 = [ 2*mu + lambda + q , 0 ; 0 , mu ];
A12 = [ 0 , lambda + q ; mu , 0 ];
A22 = [ ... , ... ; ... , ... ];
[K1, M1, dummy] = assema(p,t,A11(:),1,0);
[K2, dummy , dummy] = assema(p,t,A12(:),0,0);
K3 = K2';
[K4, dummy , dummy] = assema(p,t,A22(:),0,0);
% Zusammenbauen
K = [K1 K2; K3 K4];
M = [M1 sparse(n,n); sparse(n,n) M1];
% Moegliche Belastungen
% Gewicht
F = [M1 sparse(n,n); sparse(n,n) M1]*[zeros(n,1); ones(n,1)]*(...);
% Zug
%F = F + [M1 sparse(n,n); sparse(n,n) 0*M1]*ones(2*n,1)*1 * 10^8;
%
% Dirichlet-Rand am linken Ende
index_d = find(p(1,:)==0);
index_d = [index_d index_d + n];
% Alles ohne Dirichlet-Rand
index_nd = setdiff(1:2*n, index_d);
% Das reduzierte System
Kr = K(index_nd , index_nd);
Mr = M(index_nd , index_nd);
Fr = F(index_nd);
u = zeros(2*n, 1);
u(index_nd) = ...\Fr;
%
% ’Teilen’ des Ergebnisses
u1 = u(1:n);
u2 = u(n+1: end);
%
%Die Verschiebungen
d = [u1'; u2'];
abs_d = sqrt(u1.^2 + u2.^2);
%
%Plotten
pdeplot(p+10*d,e,t,'xydata',...,'mesh','off');
colormap jet
axis equal