Difference between revisions of "Mekanika Fluida - Josiah Enrico S (1906356286)"

From ccitonlinewiki
Jump to: navigation, search
(Title: Modelica-based Simulation of Viscous Flow Through Pipes using Finite Element Formulation)
(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

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;

Result and Analysis

Conclusions

Acknowledgement

References