From 77678f31c63c2991c446957c6b41a159eecf6c0f Mon Sep 17 00:00:00 2001 From: "lisa.pizzo" Date: Tue, 27 Jan 2026 09:47:21 +0100 Subject: [PATCH] Task 6 --- Project/AddMass_mult_rot.m | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Project/AddMass_mult_rot.m diff --git a/Project/AddMass_mult_rot.m b/Project/AddMass_mult_rot.m new file mode 100644 index 0000000..295794d --- /dev/null +++ b/Project/AddMass_mult_rot.m @@ -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