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