GasDispersion.jl

gas dispersion models for modelling chemical releases

https://github.com/aefarrell/GasDispersion.jl

Science Score: 26.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.7%) to scientific vocabulary

Keywords

chemical-engineering process-safety
Last synced: 11 months ago · JSON representation

Repository

gas dispersion models for modelling chemical releases

Basic Info
  • Host: GitHub
  • Owner: aefarrell
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 15.5 MB
Statistics
  • Stars: 15
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 6
Topics
chemical-engineering process-safety
Created almost 5 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

GasDispersion.jl

LICENSE Documentation Build Status Coverage

GasDispersion.jl is a set of tools for atmospheric dispersion modeling of gaseous releases, such as might occur during an emergency at a chemical plant or more routinely from a stack. This is intended to be the level of disperson modeling used support consequence analysis or QRA such as is described in Lee's Loss Prevention in the Process Industries or the CCPS Guidelines for Consequence Analysis of Chemical Releases.

Installation

GasDispersion.jl can be installed using Julia's built-in package manager. In a Julia session, enter the package manager mode by hitting ], then run the command

pkg> add GasDispersion

Example usage

Suppose we wish to model the dispersion of gaseous propane from a leak from a storage tank, where the leak is from a 10mm hole that is 3.5m above the ground and the propane is at 25°C and 4barg. Assume the discharge coefficient $c_{D} = 0.85$. This scenario is adapted from CCPS Guidelines for Consequence Analysis of Chemical Releases

First we define the scenario

```julia using GasDispersion

propane = Substance(name="propane", molarweight=0.044096, # kg/mol liquiddensity=526.13, # kg/m³ k=1.142, boilingtemp=231.02, # K latentheat=425740, # J/kg gasheatcapacity=1678, # J/kg/K liquidheatcapacity=2520) # J/kg/K

Patm = 101325 # Pa P1 = 4e5 + Patm # Pa T1 = 25 + 273.15 # K

scn = scenario_builder(propane, JetSource(); phase = :gas, diameter = 0.01, # m dischargecoef = 0.85, temperature = T1, # K pressure = P1, # Pa height = 3.5) # m, height of hole above the ground ```

This generates a Scenario defined for a gas jet discharging into dry air at standard conditions.

An alternative to supplying all of the substance properties, which can get rather onerous, is to use the library of substances and equations of state provided in Clapeyron.jl

```julia using GasDispersion, Clapeyron

propane = Substance(PropaneRef()) # uses an empirical EoS for propane

propane = Substance(PR("propane"; idealmodel=ReidIdeal)) # uses the Peng-Robinson EoS ```

Once we have this defined we can determine the concentration at any point downwind of the release point, assuming the release is a continuous plume, using

julia p = plume(scn, GaussianPlume())

Where p is a callable which returns the concentration (in vol fraction) at any point. For example at 100m downwind and at a height of 2m

```julia p(100,0,2)

output

0.0002006455298894473

```

See the documentation for details on the additional plume and puff models and worked examples.

Owner

  • Name: allan
  • Login: aefarrell
  • Kind: user
  • Location: Edmonton, AB

I am a chemical engineer with an interest in coding. Recently I've been playing around with julia.

GitHub Events

Total
  • Create event: 14
  • Commit comment event: 3
  • Release event: 1
  • Issues event: 10
  • Watch event: 3
  • Delete event: 11
  • Issue comment event: 18
  • Push event: 49
  • Pull request event: 23
Last Year
  • Create event: 14
  • Commit comment event: 3
  • Release event: 1
  • Issues event: 10
  • Watch event: 3
  • Delete event: 11
  • Issue comment event: 18
  • Push event: 49
  • Pull request event: 23

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 211
  • Total Committers: 3
  • Avg Commits per committer: 70.333
  • Development Distribution Score (DDS): 0.389
Past Year
  • Commits: 63
  • Committers: 2
  • Avg Commits per committer: 31.5
  • Development Distribution Score (DDS): 0.063
Top Committers
Name Email Commits
allan 7****l@u****m 129
aefarrell a****f@p****m 73
CompatHelper Julia c****y@j****g 9
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 30
  • Total pull requests: 42
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 7 hours
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.76
  • Merged pull requests: 41
  • Bot issues: 0
  • Bot pull requests: 9
Past Year
  • Issues: 13
  • Pull requests: 20
  • Average time to close issues: 13 days
  • Average time to close pull requests: 25 minutes
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.69
  • Average comments per pull request: 0.75
  • Merged pull requests: 20
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • aefarrell (28)
  • morripau (1)
  • JuliaTagBot (1)
Pull Request Authors
  • aefarrell (48)
  • github-actions[bot] (12)
Top Labels
Issue Labels
enhancement (13) todo (7) documentation (5) bug (4) compat (1)
Pull Request Labels
enhancement (8) todo (5) bug (5) compat (2) documentation (1)

Packages

  • Total packages: 3
  • Total downloads:
    • julia 2 total
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 18
proxy.golang.org: github.com/aefarrell/GasDispersion.jl
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 11 months ago
proxy.golang.org: github.com/aefarrell/gasdispersion.jl
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 11 months ago
juliahub.com: GasDispersion

gas dispersion models for modelling chemical releases

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2 Total
Rankings
Dependent repos count: 9.9%
Average: 37.7%
Dependent packages count: 38.9%
Stargazers count: 48.5%
Forks count: 53.5%
Last synced: 11 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia latest composite