Task 7
This commit is contained in:
parent
676353349d
commit
946d9c46cc
1 changed files with 42 additions and 0 deletions
42
Project/Init_Solution_mult.m
Normal file
42
Project/Init_Solution_mult.m
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
function u0 = Init_Solution_mult(model, u_wall, u_fluid, u_air)
|
||||||
|
mesh = model.Mesh;
|
||||||
|
nodes = mesh.Nodes;
|
||||||
|
elements = mesh.Elements;
|
||||||
|
|
||||||
|
Nnodes = size(nodes,2);
|
||||||
|
Nelems = size(elements,2);
|
||||||
|
|
||||||
|
u0 = zeros(Nnodes,1); %initialize solution vector
|
||||||
|
|
||||||
|
regions = zeros(Nelems,1);
|
||||||
|
regions(findElements(mesh,'region','Face',1)) = 1; % wall
|
||||||
|
regions(findElements(mesh,'region','Face',2)) = 2; % fluid
|
||||||
|
regions(findElements(mesh,'region','Face',3)) = 3; % air
|
||||||
|
|
||||||
|
% Creates a boolean array to ensure each node is assigned a temperture only
|
||||||
|
% once
|
||||||
|
nodeAssigned = false(Nnodes,1);
|
||||||
|
|
||||||
|
for e = 1:Nelems
|
||||||
|
vert = elements(:,e); %current element
|
||||||
|
switch regions(e) %determines which temperature to assign
|
||||||
|
case 1
|
||||||
|
u_val = u_wall;
|
||||||
|
case 2
|
||||||
|
u_val = u_fluid;
|
||||||
|
case 3
|
||||||
|
u_val = u_air;
|
||||||
|
end
|
||||||
|
|
||||||
|
%loops over the three nodes of the current element
|
||||||
|
% if a node has not been assinged -> u_val andmarks assigned in the
|
||||||
|
% boolean vector
|
||||||
|
for k = 1:3
|
||||||
|
i = vert(k);
|
||||||
|
if ~nodeAssigned(i)
|
||||||
|
u0(i) = u_val;
|
||||||
|
nodeAssigned(i) = true;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Add table
Add a link
Reference in a new issue