Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
hwpang committed Apr 25, 2024
1 parent 1f37bfd commit b96b603
Show file tree
Hide file tree
Showing 28 changed files with 17,529 additions and 194 deletions.
20 changes: 8 additions & 12 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v1
with:
version: 1.8
version: '1.10'
- uses: actions/cache@v1
env:
cache-name: cache-artifacts
Expand All @@ -24,21 +24,17 @@ jobs:
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- uses: conda-incubator/setup-miniconda@v2
with:
environment-file: environment.yml
python-version: 3.7
activate-environment: rms_env
- name: Fix PyCall linking
run: |
julia -e 'ENV["PYTHON"]=ENV["CONDA"] * "/envs/rms_env/bin/python"; using Pkg; Pkg.add("PyCall"); Pkg.build("PyCall")'
- uses: julia-actions/julia-buildpkg@v1
- name: Build
run: |
julia -e 'using Pkg; Pkg.develop(PackageSpec(path="../ReactionMechanismSimulator.jl")); Pkg.build("ReactionMechanismSimulator");'
current_path=${{ github.workspace }}
export JULIA_CONDAPKG_ENV="$current_path/rms_env"
julia -e 'using Pkg; Pkg.develop(Pkg.PackageSpec(path="../ReactionMechanismSimulator.jl/")); Pkg.build("ReactionMechanismSimulator");'
- name: Run tests
run: |
julia -e 'using Pkg; Pkg.test("ReactionMechanismSimulator";coverage=true)'
current_path=${{ github.workspace }}
export JULIA_CONDAPKG_ENV="$current_path/rms_env"
julia -e 'using Pkg; Pkg.test("ReactionMechanismSimulator"; coverage=true)'
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v1
with:
Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,17 @@ jobs:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: 1.8
- uses: conda-incubator/setup-miniconda@v2
with:
environment-file: environment.yml
python-version: 3.7
activate-environment: rms_env
version: '1.10'
- name: Install dependencies
run: |
julia -e 'ENV["PYTHON"]=ENV["CONDA"] * "/envs/rms_env/bin/python"; using Pkg; Pkg.add("PyCall"); Pkg.build("PyCall")'
julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate();'
current_path=${{ github.workspace }}
export JULIA_CONDAPKG_ENV="$current_path/rms_env"
julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.build("ReactionMechanismSimulator");'
- name: Build and deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token
DOCUMENTER_DEBUG: true
run: julia --color=yes --project=docs docs/make.jl
run: |
current_path=${{ github.workspace }}
export JULIA_CONDAPKG_ENV="$current_path/rms_env"
julia --color=yes --project=docs docs/make.jl
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,8 @@
*.dot
docs/build/
.DS_Store
deps/build.log
deps/build.log
.CondaPkg/
rms_env/
*.cov
Manifest.toml
1 change: 1 addition & 0 deletions CondaPkg.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
channels = ["defaults", "mjohnson541", "rmg", "conda-forge", "cantera"]
14 changes: 6 additions & 8 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ version = "1.0.0"
[deps]
Calculus = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9"
Colors = "5ae59095-9a9b-59fe-a467-6f913c188581"
Conda = "8f4d0f93-b110-5947-807f-2305c1781a2d"
CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab"
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838"
Expand All @@ -21,8 +21,8 @@ ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a"
PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46"
PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"
PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee"
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
PythonPlot = "274fc56d-3b97-40fa-a1cd-1b4a50311bf9"
QuartzImageIO = "dca85d43-d64c-5e67-8c65-017450d5d020"
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
Expand All @@ -39,12 +39,11 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"

[compat]
Calculus = "0.4,0.5"
Colors = "0.11,0.12"
Conda = "1"
CondaPkg = "0"
CSV = "0.10"
DataFrames = "1"
SciMLSensitivity = "^7"
Expand All @@ -58,8 +57,8 @@ ModelingToolkit = "8"
OrdinaryDiffEq = "^6"
Parameters = "0.12"
PreallocationTools = "0.4"
PyCall = "1"
PyPlot = "2"
PythonCall = "0"
PythonPlot = "1"
QuartzImageIO = "0.7"
RecursiveArrayTools = "2.17"
ReverseDiff = "1.9"
Expand All @@ -72,5 +71,4 @@ Symbolics = "4"
Tracker = "0.2"
Unitful = "^1.3"
YAML = "0.4"
Zygote = "0.5,0.6"
julia = "^1.6"
35 changes: 15 additions & 20 deletions deps/build.jl
Original file line number Diff line number Diff line change
@@ -1,21 +1,16 @@
using PyCall
using Conda
packages = Conda._installed_packages()
if !("rmg" in packages) && !("rmgmolecule" in packages) && (PyCall.pyversion.major != 3 || PyCall.pyversion.minor != 7)
const Pkg = Base.require(Base.PkgId(Base.UUID("44cfe95a-1eb2-52ea-b672-e2afdf69b78f"), "Pkg"))
Conda.rm("mamba")
Conda.add("conda=4")
Conda.add("mamba")
Conda.update()
Conda.add("python=3.7")
try
Conda.rm("numpy") #get around MKL problem
catch e
using CondaPkg
using PythonCall
packages = keys(CondaPkg.current_packages())
if !("rmg" in packages) && !("rmgmolecule" in packages)

if !(v"3.7" <= PythonCall.C.python_version() && PythonCall.C.python_version() <= v"3.9")
CondaPkg.add("python"; version="3.9")
end
Conda.add("nomkl")
Conda.add("numpy")
Conda.add_channel("mjohnson541")
Conda.add_channel("hwpang")
Conda.add("rmgmolecule")
Pkg.build("PyCall")
end
CondaPkg.add("rmgmolecule"; version=">=0.3.0", channel="mjohnson541")
CondaPkg.add("matplotlib", channel="conda-forge")
CondaPkg.add("rdkit", channel="conda-forge")
CondaPkg.add("pydot", channel="conda-forge")
end

const Pkg = Base.require(Base.PkgId(Base.UUID("44cfe95a-1eb2-52ea-b672-e2afdf69b78f"), "Pkg"))
Pkg.build("PythonCall")
11 changes: 6 additions & 5 deletions docs/src/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,10 @@ The above instructions will automatically handle Julia-Python linking. However,

```
import Pkg
Pkg.add("PyCall")
ENV["CONDA_JL_HOME"] = PATH_TO_YOUR_ENV
Pkg.build("Conda")
ENV["PYTHON"] = PATH_TO_PYTHON
Pkg.build("PyCall")
ENV["JULIA_CONDAPKG_BACKEND"] = "Null"
ENV["JULIA_PYTHONCALL_EXE"] = "/path/to/python"
Pkg.add("CondaPkg")
Pkg.build("CondaPkg")
Pkg.add("PythonCall")
Pkg.build("PythonCall")
```
11 changes: 0 additions & 11 deletions environment.yml

This file was deleted.

2 changes: 1 addition & 1 deletion iJulia/Automatic Mechanism Analysis Example.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"outputs": [],
"source": [
"using Sundials\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
2 changes: 1 addition & 1 deletion iJulia/ConstantPH2Combustion.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"outputs": [],
"source": [
"using DifferentialEquations\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
2 changes: 1 addition & 1 deletion iJulia/ConstantTPH2Combustion.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"using DiffEqBase\n",
"using Sundials\n",
"using DiffEqSensitivity\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
2 changes: 1 addition & 1 deletion iJulia/ConstantTVOctaneOxidation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"outputs": [],
"source": [
"using DifferentialEquations\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
2 changes: 1 addition & 1 deletion iJulia/ConstantVH2Combustion.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"outputs": [],
"source": [
"using DifferentialEquations\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
2 changes: 1 addition & 1 deletion iJulia/Gas-Catalyst Interface.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"outputs": [],
"source": [
"using ReactionMechanismSimulator\n",
"using PyPlot\n",
"using PythonPlot\n",
"using DifferentialEquations\n",
"using Sundials"
]
Expand Down
2 changes: 1 addition & 1 deletion iJulia/ParametrizedTConstantVOctaneOxidation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"outputs": [],
"source": [
"using DifferentialEquations\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
2 changes: 1 addition & 1 deletion iJulia/ParametrizedTPH2Combustion.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"outputs": [],
"source": [
"using DifferentialEquations\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
2 changes: 1 addition & 1 deletion iJulia/ParametrizedVH2Combustion.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"outputs": [],
"source": [
"using DifferentialEquations\n",
"using PyPlot\n",
"using PythonPlot\n",
"using ReactionMechanismSimulator"
]
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"source": [
"using ReactionMechanismSimulator\n",
"using ReactionMechanismSimulator.Sundials\n",
"using ReactionMechanismSimulator.PyPlot"
"using ReactionMechanismSimulator.PythonPlot"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1429,7 +1429,7 @@
"source": [
"using ReactionMechanismSimulator\n",
"using ReactionMechanismSimulator.Sundials\n",
"using ReactionMechanismSimulator.PyPlot"
"using ReactionMechanismSimulator.PythonPlot"
]
},
{
Expand Down
14 changes: 7 additions & 7 deletions src/Parse.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Unitful
using YAML
using PyCall
using PythonCall
using StaticArrays

module Calc
Expand Down Expand Up @@ -131,7 +131,7 @@ function getatomdictfromrdkit(mol)
atmD = Dict{String,Int64}()
molecularweight = 0.0
for atm in mol.GetAtoms()
v = elementdict[atm.GetAtomicNum()]
v = elementdict[PythonCall.pyconvert(Int64, atm.GetAtomicNum())]
if v in keys(atmD)
atmD[v] += 1
else
Expand All @@ -140,9 +140,9 @@ function getatomdictfromrdkit(mol)
end
nbonds = length(mol.GetBonds())
try
molecularweight = Desc.MolWt(mol)/1000.0
catch
@warn("unable to compute molecular weight")
molecularweight = PythonCall.pyconvert(Float64, Desc.MolWt(mol)) / 1000.0
catch e
@warn("unable to compute molecular weight: $e")
end
return atmD,nbonds,molecularweight
end
Expand All @@ -151,15 +151,15 @@ export getatomdictfromrdkit
function getatomdictfromrmg(mol)
atmD = Dict{String,Int64}()
for atm in mol.atoms
v = elementdict[atm.element.number]
v = elementdict[PythonCall.pyconvert(Int64, atm.element.number)]
if v in keys(atmD)
atmD[v] += 1
else
atmD[v] = 1
end
end
nbonds = length(mol.get_all_edges())
molecularweight = mol.get_molecular_weight()
molecularweight = PythonCall.pyconvert(Float64, mol.get_molecular_weight())
return atmD,nbonds,molecularweight
end
function getatomdictsmiles(smiles)
Expand Down
4 changes: 2 additions & 2 deletions src/Plotting.jl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using PyPlot
using PythonPlot

"""
Plot the mole fractions of the simulation bsol from t0 to tf
Expand Down Expand Up @@ -484,7 +484,7 @@ function plottimescales(Jy;taumax=1e6,taumin=1e-18,taures=10.0^0.5,usediag=true)
else
taus = 1.0./abs.(eigvals(Jy))
end
PyPlot.hist([x==Inf ? 0.0 : x for x in taus],bins=10.0.^(log10(taumin):log10(taures):log10(taumax)))
PythonPlot.hist([x == Inf ? 0.0 : x for x in taus], bins=10.0 .^ (log10(taumin):log10(taures):log10(taumax)))
xscale("log")
xlabel("Species Time Scale [sec]")
ylabel("Counts")
Expand Down
Loading

0 comments on commit b96b603

Please sign in to comment.