[go: up one dir, main page]

Menu

[r7]: / src / computeSDCoefficient.m  Maximize  Restore  History

Download this file

32 lines (26 with data), 920 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function [deltaT ] = computeSDCoefficient(eps, k, mesh)
if length(eps) == 1
eps = eps * ones(1,mesh.NuTri);
elseif length(eps) == mesh.NuDoF
temp = (eps(mesh.T(:,1)) + eps(mesh.T(:,2)) + eps(mesh.T(:,3)))./3;
eps = temp(:)';
clear 'temp';
end
if length(k) == mesh.NuDoF
temp1 = (k(1,mesh.T(:,1)) + k(1,mesh.T(:,2)) + k(1,mesh.T(:,3)))./3;
temp2 = (k(2,mesh.T(:,1)) + k(2,mesh.T(:,2)) + k(2,mesh.T(:,3)))./3;
clear 'k';
k(1,:) = temp1;
k(2,:) = temp2;
end
firstNode = mesh.edges(:,1);
secondNode = mesh.edges(:,2);
h = (mesh.P(1,firstNode)-mesh.P(1,secondNode) ).^2;
h = h + ( mesh.P(2,firstNode)-mesh.P(2,secondNode) ).^2;
h = sqrt(h);
hMax = max(h(mesh.triangle2edge(1:mesh.NuTri,:))');
kNorm = sqrt(k(1,:).^2 + k(2,:).^2);
pecletZahl = 0.5*hMax.*kNorm./eps;
index =find(pecletZahl>1);
deltaT=zeros(size(pecletZahl));
deltaT(index) = hMax(index)./kNorm(index);