You are on page 1of 18

THESIS

DOOR:GERRIT PIERREUX

ONDERWERP: WAAROM GERRIT DWAAS IS

Contents
Introductie ..................................................................................................................................................... 4
Experimenteel ............................................................................................................................................... 5
Conclusie: .................................................................................................................................................. 6
Numeriek ....................................................................................................................................................... 7
Analytisch ...................................................................................................................................................... 8
Logisch ........................................................................................................................................................... 9
Conclusie ..................................................................................................................................................... 10
Referenties .................................................................................................................................................. 11
Dankwoord .................................................................................................................................................. 12
Annex: Matlab code .................................................................................................................................... 14

Introductie
In deze thesis zal aangetoond worden met behulp van experimentele, numerieke, analytisch en logische
bewijzen waarom Gerrit een dwaas is.

Experimenteel
Zie annex voor de test resultaten.

Conclusie:
Uit de uitgevoerde experimenten, blijkt dat Gerrit dwaas is.

Numeriek
Er is gebruik gemaakt van een MATLAB programma om gerrit zijn dwaasheid iteratief te bepalen.
Dit programma kan gevonden worden in annex.
Deze resultaten bevestigen de experimenteel verkregen resultaten.

Analytisch
Te bewijzen: Gerrit is dwaas

Bewijs: Triviaal

Logisch
Zie analytisch

Conclusie
Het is duidelijk dat het gevraagde bewezen is.

Referenties
www.google.com
www.wikipedia.com

Dankwoord
Ik dank mijn mama, mijn papa, en mijn hond Laika voor hun bijdrages aan deze tekst.

Annex: Matlab code


function mtfem(datf)
%
% function mtfem(datf)
%
% MTFEM
%
% Nonlinear structural finite eleMent analysis.
% Eindhoven University of Technology, Mechanical Engineering
%
% input:
%
datf
: model data file
%
%
% Processing of model data
% -----------------------%
% show name of datafile
fprintf(1, ' datf = %9s\n', datf)
%
% load model data
[node, nnode, elem, nelem, eltp, geom, matr, data, ...
pdof, npdof, nodf, nnodf, depn, ndepn, incr, nincr, ...
tolr, maxniter, reac, nreac, outp, noutp, outi, ...
nouti, restart] = pdat(datf);
%
% allocate nodal degrees of freedom
[dof, ndof, D] = gdof(elem, nelem, eltp, nnode, pdof, npdof, depn, ndepn);
%
% show some info on the model
fprintf(1, ['\n nelem = %9i nnode = %9i ndof = %9i', ...
' npdof = %9i\n'], nelem, nnode, ndof, npdof)
fprintf(1, [' nnodf = %9i ndepn = %9i nincr = %9i', ...
' noutp = %9i\n'] , nnodf, ndepn, nincr, noutp)
%
if nreac
end
%
%
% Incremental procedure
% --------------------%
% initialize arrays
u = zeros(ndof, 1);
du = zeros(ndof,1);
fext = spalloc(ndof, 1, 100);
fint = zeros(ndof, 1);
%
%
% initialize deformation history
hist = phist([], elem, nelem, eltp, geom, matr, data);
%

if restart
dbase = [datf,'knl'];
dbcheck = exist([dbase,'.mat']);
else
dbcheck = 0;
end
% write model data to output file
if (any(outi == 0)) & (noutp > 0) & (dbcheck == 0)
goutp(elem, nelem, node, nnode, eltp, geom, matr, data, dof, ndof, ...
hist, u, outp, noutp, outi, nouti, datf, 0, 0, 0);
end
%
iiter = 0;
iincr = 0;
conv = Inf;
dconv = 1;
refine = 0;
incrloop = 1;
niter = 0;
citer = 2;
nreduce = 0;
%
% Get previous results if restart
%
if restart
if dbcheck == 2
eval(['load ',dbase]);
fprintf(1,'\n Loading previous mtfem-kernel \n');
fintc = fint;
histc = hist;
end
end
% increment loop
while (incrloop)
%
iincr = iincr + 1;
%
up = u;
%
% load factor and change of load factor
incri = incr(iincr);
if iincr == 1
Dincri = incri;
else
Dincri = incri - incr(iincr-1);
end
% show increment number and load factor
fprintf(1, '\n iincr = %9i incri = %11.6g\n', iincr, incri)
%
% adjust force vectors
fext = gfext(nodf, nnodf, incri, nnode, dof, ndof);
fres = fext - fint;
%
% iteration loop
iiter = 0;
conv = Inf;
convold = Inf;

dconv = 1;
dconvchk = 0;
while ((conv > tolr) & (iiter < maxniter) & (dconv > 0))
%
%
%
%

show iteration number


iiter = iiter + 1;
fprintf(1, ' iiter = %9i', iiter)
generate tangential stiffness matrix
K = gk(elem, nelem, node, eltp, geom, matr, data, dof, ndof, hist, up,

du);
%
store K to compute reaction forces
Kreac = K;
%
%
eliminate dependent degrees of freedom
if ndepn > 0
idofd = 1:ndepn;
idofi = (ndepn+1):ndof;
K = K(idofi, idofi) + D' * K(idofd, idofi) ...
+ K(idofi, idofd) * D + D' * K(idofd, idofd) * D;
fres = fres(idofi, :) + D' * fres(idofd, :);
end
%
%
partition for prescribed dofs
if npdof > 0
idofp = 1:npdof;
idoff = (npdof+1):(ndof-ndepn);
fres = fres(idoff, :);
if (iiter == 1)
fres = fres - K(idoff, idofp) * Dincri * pdof(:, 3);
end
K = K(idoff, idoff);
end
%
%
solve system
du = K \ fres;
%
%
add prescribed dofs
if (npdof > 0)
if (iiter == 1)
du = [Dincri * pdof(:, 3); du];
else
du = [zeros(npdof, 1); du];
end
end
%
%
add dependent dofs
if ndepn > 0
du = [D * du; du];
end
%
%
construct new solution
up = up + du;
%
%
compute reaction forces
fext = fint + Kreac*du;
%

%
%
%
%
%

calculate new internal nodal forces


[fint, hist] = gfint(elem, nelem, node, eltp, geom, matr, data, ...
dof, ndof, hist, up, du);
residual load vector
fres = fext - fint;
determine and show convergence parameter
conv = gconv(fres, fext, ndof, D, ndepn);
fprintf(1, ' conv = %10.5g\n', conv)
if iiter > citer
dconv = convold-conv;
end
convold = conv;
if ~(conv < Inf)
dconv = -1 ;
end
end

%
%
if ((iiter <= maxniter) & (dconv > 0) & (conv < tolr))
niter = iiter;
u = up;
%
process deformation history
hist = phist(hist, elem, nelem, eltp, geom, matr, data);
fintc = fint;
histc = hist;
%
% Output reaction forces / displacements
%
if nreac >= 1
% save reaction forces vs. displacement
displa = u(dof(reac(1,1),reac(1,2)))';
for ireac = 1:nreac
forc(ireac, :) = [reac(ireac, 3) fint(dof(reac(ireac,
3),reac(ireac, 4)))];
end
eval(['save ', datf,'REAC',mat2str(iincr), ' forc displa ;']);
reacti = [];
end
%
% generate output
reacti = [];
if (any(iincr == outi)) & (noutp > 0)
goutp(elem, nelem, node, nnode, eltp, geom, matr, data, dof, ...
ndof, hist, u, outp, noutp, outi, nouti, datf, iincr, ...
nreac, reacti);
end
if restart
eval(['save ',dbase ,' u fint hist reacti nincr incr iincr outi nouti'
]);
end
end
%
if (dconv <= 0) | (iiter >= maxniter & conv > tolr)
fprintf(1, '\n Reducing load step\n')
nreduce = nreduce + 1;

iincr = iincr - 1;
incr=[incr(1:iincr),(incr(iincr)+incr(iincr+1))/2,incr(iincr+1:nincr)];
nincr=length(incr);
nouti=length(outi);
noutii=nouti-nnz(outi>=iincr);
outi(noutii+1:nouti)=outi(noutii+1:nouti)+1;
fint = fintc;
hist = histc;
refine = refine+1;
if refine == 20
fprintf(1,'\n Excessive refining of the load step ! ')
error(' No convergence, use other solution-algorithm !\n')
end
else
refine = 0;
end
%
incrloop = (iincr < length(incr));
end
%
%
fprintf(1, '\n\n\n')
%
%