Task 6
This commit is contained in:
parent
8703a753eb
commit
77678f31c6
1 changed files with 35 additions and 0 deletions
35
Project/AddMass_mult_rot.m
Normal file
35
Project/AddMass_mult_rot.m
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
function M = AddMass_mult_rot(model, M, c_wall, c_fluid, c_air)
|
||||||
|
mesh = model.Mesh;
|
||||||
|
nodes = mesh.Nodes;
|
||||||
|
elements = mesh.Elements;
|
||||||
|
|
||||||
|
Nelems = size(elements,2);
|
||||||
|
|
||||||
|
regions = zeros(Nelems,1);
|
||||||
|
regions(findElements(mesh,'region','Face',1)) = 1;
|
||||||
|
regions(findElements(mesh,'region','Face',2)) = 2;
|
||||||
|
regions(findElements(mesh,'region','Face',3)) = 3;
|
||||||
|
|
||||||
|
for e = 1:Nelems
|
||||||
|
vert = elements(:,e);
|
||||||
|
|
||||||
|
x = nodes(1,vert); % r-coordinates
|
||||||
|
y = nodes(2,vert); % z-coordinates
|
||||||
|
|
||||||
|
Ae = polyarea(x,y); % element area
|
||||||
|
rbar = mean(x); % mean radius (axisymmetric weight)
|
||||||
|
|
||||||
|
switch regions(e) % Select heat capacity
|
||||||
|
case 1
|
||||||
|
c = c_wall;
|
||||||
|
case 2
|
||||||
|
c = c_fluid;
|
||||||
|
case 3
|
||||||
|
c = c_air;
|
||||||
|
end
|
||||||
|
% Axisymmetric element mass matrix
|
||||||
|
Me = rbar * c * Ae / 12 * [2 1 1; 1 2 1; 1 1 2];
|
||||||
|
% Assemble
|
||||||
|
M(vert,vert) = M(vert,vert) + Me;
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Add table
Add a link
Reference in a new issue