This commit is contained in:
Lisa Pizzo 2026-01-27 09:47:21 +01:00
commit 77678f31c6

View 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