Mekanika Fluida - Josiah Enrico S (1906356286)

From ccitonlinewiki
Revision as of 23:20, 6 June 2021 by JosiahEnrico (talk | contribs) (Methodology)
Jump to: navigation, search

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