InternalFluidFlow

A toolbox for internal fluid flow for Julia

https://github.com/aumpierre-unb/internalfluidflow.jl

Science Score: 41.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.7%) to scientific vocabulary

Keywords

chemical-engineering fluid-mechanics
Last synced: 9 months ago · JSON representation ·

Repository

A toolbox for internal fluid flow for Julia

Basic Info
  • Host: GitHub
  • Owner: aumpierre-unb
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 536 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 15
Topics
chemical-engineering fluid-mechanics
Created almost 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

InternalFluidFlow.jl

DOI License: MIT version pkgeval

Installing and Loading InternalFluidFlow

InternalFluidFlow can be installed and loaded either from the JuliaHub repository (last released version) or from the maintainer's repository.

Last Released Version

The last version of InternalFluidFlow can be installed from JuliaHub repository:

julia using Pkg Pkg.add("InternalFluidFlow") using InternalFluidFlow

If InternalFluidFlow is already installed, it can be updated:

julia using Pkg Pkg.update("InternalFluidFlow") using InternalFluidFlow

Pre-Release (Under Construction) Version

The pre-release (under construction) version of InternalFluidFlow can be installed from the maintainer's repository.

julia using Pkg Pkg.add(path="https://github.com/aumpierre-unb/InternalFluidFlow.jl") using InternalFluidFlow

Citation of InternalFluidFlow

You can cite all versions (both released and pre-released), by using DOI 105281/zenodo.7019888. This DOI represents all versions, and will always resolve to the latest one.

The InternalFluidFlow Module for Julia

InternalFluidFlow provides the following functions:

  • Re2f
  • f2Re
  • h2fRe
  • doPlot

Re2f

Re2f computes the Darcy friction f factor given the Reynolds number Re and the relative roughness ε.

Pipe is assumed to be smooth (default is ε = 0). The upper limit for relative roughness is ε = 0.05. If given relative roughness ε > 0.05 is out of bounds then relative roughness is reassigned to ε = 0.05 for tubulent flow. Unless msgs = false is given, user will noticed.

If lam = false is given then Re2f disregards the laminar flow bounds (Re < 4e3).

If turb = false is given then Re2f disregards the turbulent flow bounds (Re > 2.3e3).

If fig = true is given a schematic Moody diagram is plotted as a graphical representation of the solution.

Re2f is a main function of the InternalFluidFlow toolbox for Julia.

Syntax:

julia Re2f(; # Darcy friction factor Re::Number, # Reynolds number ε::Number=0, # relative roughness lam::Bool=true, # default is search within laminar bounds turb::Bool=true, # default is search within turbulent bounds msgs::Bool=true, # default is show warning messages fig::Bool=false # default is hide plot )::Moody

Examples:

Compute the Darcy friction factor f given the Reynolds number Re = 120,000 and the relative roughness ε = 3e-3.

julia flow = Re2f( # Darcy friction factor Re=120e3, # Reynolds number ε=3e-3 # relative roughness ) flow.Re # Re of the flow flow.f # f of the flow

Compute the Darcy friction factor f given the Reynolds number Re = 120,000 and the relative roughness ε = 6e-2. In this case, relative roughness is reassigned to ε = 5e-2 for turbulent flow.

julia Re2f( # Darcy friction factor Re=120e3, # Reynolds number ε=6e-2 # relative roughness )

Compute the Darcy friction factor f given the Reynolds number Re = 3,500 and the relative roughness ε = 6e-3 and show results on a schematic Moody diagram.

julia Re2f( # Darcy friction factor Re=3500, # Reynolds number ε=6e-3, # relative roughness fig=true # show plot )

f2Re

f2Re computes the Reynolds number Re given the Darcy friction factor f and the relative roughness ε for both laminar and turbulent regime, if possible.

f2Re returns solutions found both within laminar (Re < 4e3) and within turbulent (Re < 2.3e3) bounds.

Pipe is assumed to be smooth (default is ε = 0). The upper limit for relative roughness is ε = 0.05. If given relative roughness ε > 0.05 is out of bounds then relative roughness is reassigned to ε = 0.05 for tubulent flow. Unless msgs = false is given, user will noticed.

If lam = false is given then f2Re disregards the laminar flow bounds (Re < 4e3).

If turb = false is given then f2Re disregards the turbulent flow bounds (Re > 2.3e3).

It is possible that no solution be found neither within laminar nor within turbulent bounds (see on examples). Unless msgs = false is given, user will noticed.

If fig = true is given a schematic Moody diagram is plotted as a graphical representation of the solution.

Syntax:

julia f2Re(; # Reynolds number f::Number, # Darcy friction factor ε::Number=0, # relative roughness, default is smooth pipe lam::Bool=true, # default is search within laminar bounds turb::Bool=true, # default is search within turbulent bounds msgs::Bool=true, # default is show warning messages fig::Bool=false # default is hide plot )::Moody

Examples:

Compute the Reynolds number Re given the Darcy friction factor f = 2.8e-2 and the pipe relative roughness ε = 5e-3. In this case, only laminar solution is possible:

julia flow = f2Re( # Reynolds number f=2.8e-2, # Darcy friction factor ε=5e-3 # relative roughness ) flow.Re # Re of the laminar flow flow.f # f of the turbulent flow

Compute the Reynolds number Re given the Darcy friction factor f = 1.8e-2 and the pipe relative roughness ε = 5e-3. In this case, only turbulent solution is possible:

julia f2Re( # Reynolds number f=1.8e-2, # Darcy friction factor ε=5e-3 # relative roughness )

Compute the Reynolds number Re given the Darcy friction factor f = 1.2e-2 and the pipe relative roughness ε = 9e-3. In this case, both laminar and turbulent solutions are impossible:

julia f2Re( # Reynolds number f=1.2e-2, # Darcy friction factor ε=9e-3 # relative roughness )

Compute the Reynolds number Re given the Darcy friction factor f = 0.028 for a smooth pipe and plot and show results on a schematic Moody diagram. In this case, both laminar and turbulent solutions are possible:

julia flow = f2Re( # Reynolds number f=0.028, # Darcy friction factor fig=true # show plot ) lam, turb = flow; # laminar flow and turbulent flow lam.Re # Re of the laminar flow turb.f # f of the turbulent flow

h2fRe

h2fRe computes the Reynolds number Re and the Darcy friction factor f given the head loss h in cm, the pipe hydraulic diameter D in cm or the flow speed v in cm/s or the volumetric flow rate Q in cc/s (D or Q or v), the pipe length L in cm (default L = 100 cm), the pipe roughness k in cm or the pipe relative roughness ε (ε or k), the fluid density ρ in g/cc (default ρ = 0.997 g/cc), the fluid dynamic viscosity μ in g/cm/s (default μ = 0.0091 g/cm/s), and the gravitational accelaration g in cm/s/s (default g = 981 cm/s/s).

h2fRe returns solutions found both within laminar (Re < 4e3) and within turbulent (Re < 2.3e3) bounds.

Pipe is assumed to be 100 cm long (default is L = 100).

Fluid is assumed to be water at 25 °C, with 0.997 g/cc density and 0.0091 g/cm/s dynamic viscosity (default is ρ = 0.997 and μ = 0.0091).

Gravitational acceleration is assumed to be 981 cm/s/s (default is g = 981).

Notice that default parameters are given in the cgs unit system and all parameters must be given in a consistent unit system.

The upper limit for relative roughness is ε = 0.05. If either given or calculated relative roughness ε > 0.05 is out of bounds then relative roughness is reassigned to ε = 0.05 for tubulent flow. Unless msgs = false is given, user will noticed.

If lam = false is given then h2fRe disregards the laminar flow bounds (Re < 4e3).

If turb = false is given then h2fRe disregards the turbulent flow bounds (Re > 2.3e3).

It is possible that no solution be found neither within laminar nor within turbulent bounds (see on examples). Unless msgs = false is given, user will noticed.

If fig = true is given a schematic Moody diagram is plotted as a graphical representation of the solution.

Syntax:

julia h2fRe(; # Reynolds number Re and Darcy friction factor f h::Number; # head loss in cm L::Number=100, # pipe length in cm ε::Number=NaN, # pipe relative roughness k::Number=NaN, # pipe roughness in cm D::Number=NaN, # pipe hydraulic diameter in cm v::Number=NaN, # flow speed in cm/s Q::Number=NaN, # volumetric flow rate in cc/s ρ::Number=0.997, # fluid dynamic density in g/cc μ::Number=0.0091, # fluid dynamic viscosity in g/cm/s g::Number=981, # gravitational accelaration in cm/s/s lam::Bool=true, # default is search within laminar bounds turb::Bool=true, # default is search within turbulent bounds msgs::Bool=true, # default is show warning messages fig::Bool=false # default is hide plot )::Moody

Examples:

Compute the Reynolds number Re and the Darcy friction factor f given the head loss h = 262 mm, the pipe hydraulic diameter D = 10 mm, the pipe length L = 25 m and the pipe relative roughness ε = 0, the fluid density ρ = 0.989 g/cc and the fluid dynamic viscosity μ = 0.89 cP. In this case, both laminar and turbulent solutions are possible (at their limit bounds!):

julia flow = h2fRe( # Reynolds number Re and Darcy friction factor f h=262e-1, # head loss in cm D=10e-1, # volumetric flow rate in cc/s L=25e2, # pipe length in cm ε=0, # pipe relative roughness ρ=0.989, # fluid dynamic density in g/cc μ=8.9e-3, # fluid dynamic viscosity in g/cm/s fig=true # show plot ) lam, turb = flow; # laminar flow and turbulent flow lam.Re # Re of the laminar flow turb.f # f of the turb flow

Compute the Reynolds number Re and the Darcy friction factor f given the head loss h = 270 mm, the pipe hydraulic diameter D = 10 mm, the pipe length L = 25 m and the pipe relative roughness ε = 0.02, the fluid density ρ = 0.989 g/cc and the fluid dynamic viscosity μ = 0.89 cP. This is an extraordinary situation as there is no solution within laminar bounds (Re < 4e3) and within turbulent bounds (Re > 2.3e3) and h2fRe returns Nothing:

julia h2fRe( # Reynolds number Re and Darcy friction factor f h=270e-1, # head loss in cm D=10e-1, # volumetric flow rate in cc/s L=25e2, # pipe length in cm ε=0.02, # pipe relative roughness ρ=0.989, # fluid dynamic density in g/cc μ=8.9e-3, # fluid dynamic viscosity in g/cm/s fig=true # show plot )

Compute the Reynolds number Re and the Darcy friction factor f, given the head loss h = 40 cm, the pipe hydraulic diameter D = 10 mm, the pipe length L = 25 m and the pipe roughness k = 0.30 mm, for water flow. In this case, pipe roughness is converted to relative roughness ε = k / D and h2fRe is called again:

julia h2fRe( # Reynolds number Re and Darcy friction factor f h=40, # head loss in cm D=10e-1, # pipe hyraulic diameter in cm L=25e2, # pipe length in cm k=0.30e-1 # pipe roughness in cm )

Compute the Reynolds number Re and the Darcy friction factor f given the head loss per meter h/L = 1.6 cm/m, the volumetric flow rate Q = 8.6 L/s, the pipe length L = 25 m, the pipe roughness k = 0.08 cm, the fluid density ρ = 0.989 g/cc and the fluid dynamic viscosity μ = 0.89 cP.

julia h2fRe( # Reynolds number Re and Darcy friction factor f h=1.6*25, # head loss in cm Q=8.6e3, # volumetric flow rate in cc/s L=25e2, # pipe length in cm k=0.08, # pipe roughness in cm ρ=0.989, # fluid dynamic density in g/cc μ=8.9e-3 # fluid dynamic viscosity in g/cm/s )

Compute the Reynolds number Re and the Darcy friction factor f, given the head loss h = 0.30 m, the flow speed v = 25 cm/s, the pipe length L = 25 m, the pipe roughness k = 0.02 cm for water flow and show results on a schematic Moody diagram. In this case, both laminar and turbulent solutions are possible:

julia h2fRe( # Reynolds number Re and Darcy friction factor f h=0.30e2, # head loss in cm v=25, # flow speed in cm/s L=25e2, # pipe length in cm k=0.02, # pipe roughness in cm fig=true # show plot )

Compute the Reynolds number Re and the Darcy friction factor f, given the head loss h = 0.12 m, the flow speed v = 23 cm/s, the pipe length L = 25 m, the pipe roughness k = 0.3 cm for water flow and show results on a schematic Moody diagram. In this case, both laminar and turbulent solutions are possible, however laminar flow is extended to Re = 4e3 and relative roughness is reassigned to maximum ε = 5e-2 for tubulent flow:

julia flow = h2fRe( # Reynolds number Re and Darcy friction factor f h=0.12e2, # head loss in cm v=23, # flow speed in cm/s L=25e2, # pipe length in cm k=0.3, # pipe roughness in cm fig=true # show plot ) lam, turb = flow; # laminar flow and turbulent flow lam.Re # Re of the laminar flow lam.ε # ε of the laminar flow turb.f # f of the turbulent flow turb.ε # ε of the turbulent flow

doPlot

doPlot produces a schematic Moody diagram including the the turbulent line for given relative roughness ε (default is smooth pipe, ε = 0).

Syntax:

julia doPlot(; ε::Number=0, # pipe relative roughness back::Symbol=:white # background color )

Examples:

Build a schematic Moody diagram with transparent background with one extra line for turbulent flow with ε = 4.5e-3.

julia doPlot( ε=4.5e-3, # extra turbulent line in Moody diagram back=:transparent # transparent background ) using Plots savefig("moodyDiagram_transparent.svg")

See Also

McCabeThiele.jl, Psychrometrics.jl, PonchonSavarit.jl.

Copyright © 2022 2023 2024 Alexandre Umpierre

email: aumpierre@gmail.com

Owner

  • Name: Alexandre Umpierre
  • Login: aumpierre-unb
  • Kind: user
  • Location: Brasilia/Brazil

Chemical Engineering teacher at University of Brasilia

Citation (CITATION)

You can cite all versions (including pre-release version) by using the
DOI 10.5281/zenodo.7019888.
This DOI represents all versions, and will always resolve to the latest one.

To cite (and export citation for various formats)
the last released version, please check
https://zenodo.org/account/settings/github/repository/aumpierre-unb/InternalFluidFlow.jl.

GitHub Events

Total
Last Year

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 441
  • Total Committers: 2
  • Avg Commits per committer: 220.5
  • Development Distribution Score (DDS): 0.408
Past Year
  • Commits: 297
  • Committers: 2
  • Avg Commits per committer: 148.5
  • Development Distribution Score (DDS): 0.279
Top Committers
Name Email Commits
aumpierre-unb a****e@g****m 261
Alexandre Umpierre 1****b 180

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 22
juliahub.com: InternalFluidFlow

A toolbox for internal fluid flow for Julia

  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Dependent packages count: 38.9%
Average: 43.9%
Forks count: 53.5%
Stargazers count: 73.2%
Last synced: 10 months ago