Difference between revisions of "Mekanika Fluida - Josiah Enrico S (1906356286)"
JosiahEnrico (talk | contribs) (→Title: Modelica-based Simulation of Viscous Flow Through Pipes using Finite Element Formulation) |
JosiahEnrico (talk | contribs) (→Methodology) |
||
Line 10: | Line 10: | ||
== Methodology == | == Methodology == | ||
+ | |||
+ | {| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;" | ||
+ | |- | ||
+ | | | ||
+ | model Tugas_Besar_Mekflu | ||
+ | |||
+ | // ==================================== DEFINITION PHASE ==================================== | ||
+ | |||
+ | parameter Real miu = 0.3 "dynamic viscosity"; | ||
+ | parameter Real rho = 900 "density"; | ||
+ | |||
+ | parameter Real Qinlet = 5e-4 "flow rate inlet"; | ||
+ | parameter Real Pinlet = 39182 "pressure inlet"; | ||
+ | parameter Real Poutlet = -3665 "pressure inlet"; | ||
+ | parameter Integer boundary[:] = {1, 6} "Boundary Point"; | ||
+ | |||
+ | parameter Integer nPipe = 6 "number of piping"; | ||
+ | parameter Integer nPoint = 6 "number of point connected"; | ||
+ | final constant Real pi=2*Modelica.Math.asin(1.0); | ||
+ | |||
+ | //Inputing pipe connection, length (L) and diameter (D) | ||
+ | parameter Real data[nPipe,2] = [ 70.71, 0.1 ; | ||
+ | 50.99, 0.075 ; | ||
+ | 50 , 0.075 ; | ||
+ | 53.85, 0.05 ; | ||
+ | 70.71, 0.05 ; | ||
+ | 60 , 0.1 ]; | ||
+ | |||
+ | parameter Integer no[nPoint,2] = [ 1, 2; | ||
+ | 2, 3; | ||
+ | 2, 4; | ||
+ | 3, 5; | ||
+ | 4, 5; | ||
+ | 5, 6]; | ||
+ | |||
+ | //Solution | ||
+ | Real Pressure[nPoint], Flowrate[nPipe], Reynolds[nPipe]; | ||
+ | |||
+ | protected | ||
+ | Real g[nPoint,nPoint], G[nPoint,nPoint], id[nPoint,nPoint]=identity(nPoint), P[nPoint], Res; | ||
+ | |||
+ | // ==================================== SOLUTION PHASE ==================================== | ||
+ | |||
+ | algorithm | ||
+ | //Iterating to create global matrice | ||
+ | for i in 1:nPipe loop | ||
+ | Res:= pi*data[i,2]^4/(128*data[i,1]*miu); | ||
+ | |||
+ | g:=zeros(nPoint,nPoint); | ||
+ | g[no[i,1],no[i,1]]:= Res; | ||
+ | g[no[i,1],no[i,2]]:= -Res; | ||
+ | g[no[i,2],no[i,1]]:= -Res; | ||
+ | g[no[i,2],no[i,2]]:= Res; | ||
+ | |||
+ | G:= G+g; | ||
+ | end for; | ||
+ | |||
+ | //Implementing boundary | ||
+ | for i in boundary loop | ||
+ | for j in 1:nPoint loop | ||
+ | G[i,j]:= id[i,j]; | ||
+ | end for; | ||
+ | end for; | ||
+ | |||
+ | //Solving pressure in each point connected | ||
+ | P[boundary[1]]:= Pinlet; | ||
+ | P[boundary[2]]:= Poutlet; | ||
+ | Pressure:= Modelica.Math.Matrices.solve(G,P); | ||
+ | |||
+ | //Solving flowrate in each pipe | ||
+ | for i in 1:nPipe loop | ||
+ | Flowrate[i]:= pi*data[i,2]^4/(128*data[i,1]*miu)*(Pressure[no[i,1]]-Pressure[no[i,2]]); | ||
+ | end for; | ||
+ | |||
+ | //Solving Reynolds Number in each pipe flow | ||
+ | for i in 1:nPipe loop | ||
+ | Reynolds[i]:= 4*rho*Flowrate[i]/(pi*miu*data[i,2]); | ||
+ | end for; | ||
+ | |||
+ | end Tugas_Besar_Mekflu; | ||
+ | |} | ||
== Result and Analysis == | == Result and Analysis == |
Revision as of 23:18, 6 June 2021
Contents
Title: Modelica-based Simulation of Viscous Flow Through Pipes Using Finite Element Formulation
Abstract
Introduction
Objectives
Methodology
model Tugas_Besar_Mekflu // ==================================== DEFINITION PHASE ==================================== parameter Real miu = 0.3 "dynamic viscosity"; parameter Real rho = 900 "density"; parameter Real Qinlet = 5e-4 "flow rate inlet"; parameter Real Pinlet = 39182 "pressure inlet"; parameter Real Poutlet = -3665 "pressure inlet"; parameter Integer boundary[:] = {1, 6} "Boundary Point"; parameter Integer nPipe = 6 "number of piping"; parameter Integer nPoint = 6 "number of point connected"; final constant Real pi=2*Modelica.Math.asin(1.0); //Inputing pipe connection, length (L) and diameter (D) parameter Real data[nPipe,2] = [ 70.71, 0.1 ; 50.99, 0.075 ; 50 , 0.075 ; 53.85, 0.05 ; 70.71, 0.05 ; 60 , 0.1 ]; parameter Integer no[nPoint,2] = [ 1, 2; 2, 3; 2, 4; 3, 5; 4, 5; 5, 6]; //Solution Real Pressure[nPoint], Flowrate[nPipe], Reynolds[nPipe]; protected Real g[nPoint,nPoint], G[nPoint,nPoint], id[nPoint,nPoint]=identity(nPoint), P[nPoint], Res; // ==================================== SOLUTION PHASE ==================================== algorithm //Iterating to create global matrice for i in 1:nPipe loop Res:= pi*data[i,2]^4/(128*data[i,1]*miu); g:=zeros(nPoint,nPoint); g[no[i,1],no[i,1]]:= Res; g[no[i,1],no[i,2]]:= -Res; g[no[i,2],no[i,1]]:= -Res; g[no[i,2],no[i,2]]:= Res; G:= G+g; end for; //Implementing boundary for i in boundary loop for j in 1:nPoint loop G[i,j]:= id[i,j]; end for; end for; //Solving pressure in each point connected P[boundary[1]]:= Pinlet; P[boundary[2]]:= Poutlet; Pressure:= Modelica.Math.Matrices.solve(G,P); //Solving flowrate in each pipe for i in 1:nPipe loop Flowrate[i]:= pi*data[i,2]^4/(128*data[i,1]*miu)*(Pressure[no[i,1]]-Pressure[no[i,2]]); end for; //Solving Reynolds Number in each pipe flow for i in 1:nPipe loop Reynolds[i]:= 4*rho*Flowrate[i]/(pi*miu*data[i,2]); end for; end Tugas_Besar_Mekflu; |