Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,3 @@ jobs:
- name: Build
run: |
pixi build

# Upload
- name: Upload
if: ${{ github.ref_name == 'dev' && github.repository_owner == 'Auto-Mech'}}
run: |
pixi run --frozen -e build upload
env:
ANACONDA_API_KEY: ${{ secrets.ANACONDA_API_KEY }}
continue-on-error: true
103 changes: 103 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: release

on:
pull_request_target:
types: [closed]

permissions:
contents: write

jobs:
release:
if: >
github.event.pull_request.merged == true && (
contains(github.event.pull_request.labels.*.name, 'release:patch') ||
contains(github.event.pull_request.labels.*.name, 'release:major')
)
runs-on: ubuntu-latest
strategy:
fail-fast: true
defaults:
run:
working-directory: mechdriver

steps:
# 1. Checkout the repositories
- name: Checkout merged mechdriver
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.ref }}
fetch-depth: 0
path: mechdriver

- name: Checkout autochem
uses: actions/checkout@v4
with:
repository: Auto-Mech/autochem
path: autochem

- name: Checkout autoio
uses: actions/checkout@v4
with:
repository: Auto-Mech/autoio
path: autoio

- name: Checkout autofile
uses: actions/checkout@v4
with:
repository: Auto-Mech/autofile
path: autofile

- name: Checkout mechanalyzer
uses: actions/checkout@v4
with:
repository: Auto-Mech/mechanalyzer
path: mechanalyzer

# 2. Setup environment
- name: Set up Pixi
uses: prefix-dev/setup-pixi@v0.9.3
with:
environments: build
locked: false
manifest-path: mechdriver

- name: Fetch bot identity
id: bot
uses: raven-actions/bot-details@v1

- name: Configure git for committing
run: |
git config user.name "${{ steps.bot.outputs.name }}"
git config user.email "${{ steps.bot.outputs.email }}"

# 3. Bump version
- name: Bump version (patch)
if: contains(github.event.pull_request.labels.*.name, 'release:patch')
run: pixi run -e build bumpver update --patch

- name: Bump version (major)
if: contains(github.event.pull_request.labels.*.name, 'release:major')
run: pixi run -e build bumpver update --major

- name: Get version
id: version
run: |
echo "tag=$(pixi run current-version)" >> "$GITHUB_OUTPUT"

# 4. Build and upload conda package
- name: Build
run: |
pixi build

- name: Upload
run: |
pixi run -e build upload
env:
ANACONDA_API_KEY: ${{ secrets.ANACONDA_API_KEY }}

# 5. Create release
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.tag }}
3 changes: 3 additions & 0 deletions examples/stereo_quick/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*
!.gitignore
!inp/
8 changes: 8 additions & 0 deletions examples/stereo_quick/inp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
*
!.gitignore
!inp/
!mechanism.dat
!models.dat
!run.dat
!species.csv
!theory.dat
6 changes: 6 additions & 0 deletions examples/stereo_quick/inp/mechanism.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
REACTIONS CAL/MOL MOL

C3o2 + OH = C3o2y1r0 + H2O 1.000 0.000 0.000 # pes.subpes.channel 1.1.1
C3o2 + OH = C3o2y1r1 + H2O 1.000 0.000 0.000 # pes.subpes.channel 1.1.2

END
59 changes: 59 additions & 0 deletions examples/stereo_quick/inp/models.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@

kin global
pressures = (
0.1 1.0 10.0 100.0
)
rate_temps = (
500. 600. 700. 800. 900. 1000.
1100. 1200. 1300. 1400. 1500
1600. 1700. 1800. 1900. 2000.
)
therm_temps = (
200. 300. 400. 500. 600. 700. 800. 900. 1000. 1100. 1200.
1300. 1400. 1500. 1600. 1700. 1800. 1900. 2000. 2100. 2200.
2300. 2400. 2500. 2600. 2700. 2800. 2900. 3000.
)
rate_fit = (
fit_method = plog
pdep_temps = [500.0, 1000.0]
pdep_tol = 20.0
pdep_pval = 1.0
pdep_plow = None
pdep_phigh = None
arrfit_dbltol = 15.0
)
therm_fit = (
ref_scheme = basic
ref_enes = Best
)
end kin

spc global
ene = (
lvl1 = dft
)
rot = (
mod = rigid
)
vib = (
mod = harm
geolvl = pm3
scale = on
)
tors = (
mod = rigid
enelvl = pm3
geolvl = pm3
scale = on
)
symm = (
mod = HCO_model
geolvl = pm3
)
ts = (
tunnel = eckart
sadpt = fixed
wells = fake
nobar = pst
)
end spc
38 changes: 38 additions & 0 deletions examples/stereo_quick/inp/run.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

input
run_prefix = ./run
save_prefix = ./save
canonical = True
end input

spc
# Runs canonical enantiomers *only*
1-6
end spc

pes
# Runs non-canonical enantiomers *only*
# (To verify that `canonical = True` is working)
1: 2
end pes

els
# No conformer sampling
spc init_geom runlvl=pm3 inplvl=pm3
ts find_ts runlvl=pm3 inplvl=pm3
all conf_hess runlvl=pm3 inplvl=pm3
all conf_energy runlvl=dft inplvl=pm3
end els

thermo
write_mess kin_model=global spc_model=global cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700)
run_mess kin_model=global spc_model=global cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700) nprocs=10
run_fits kin_model=global spc_model=global cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700)
end thermo

ktp
write_mess kin_model=global spc_model=global
run_mess kin_model=global spc_model=global nprocs=10
run_fits kin_model=global spc_model=global
end ktp

8 changes: 8 additions & 0 deletions examples/stereo_quick/inp/species.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
'name','smiles','inchi','inchikey','mult','charge','canon_enant_ich'
'H2','[H][H]','InChI=1S/H2/h1H','UFHFLCQGNIYNRP-UHFFFAOYSA-N',1,0,'InChI=1S/H2/h1H'
'CH4','C','InChI=1S/CH4/h1H4','VNWKTOKETHGBQD-UHFFFAOYSA-N',1,0,'InChI=1S/CH4/h1H4'
'H2O','O','InChI=1S/H2O/h1H2','XLYOFNOQVPJJNP-UHFFFAOYSA-N',1,0,'InChI=1S/H2O/h1H2'
'OH','[OH]','InChI=1S/HO/h1H','TUJKJAMUKRIRHC-UHFFFAOYSA-N','2','0','InChI=1S/HO/h1H'
'C3o2','CC(C)O','InChI=1S/C3H8O/c1-3(2)4/h3-4H,1-2H3','KFZMGEQAYNKOFK-UHFFFAOYSA-N','1','0','InChI=1S/C3H8O/c1-3(2)4/h3-4H,1-2H3'
'C3o2y1r0','[CH2][C@@H](C)O','InChI=1S/C3H7O/c1-3(2)4/h3-4H,1H2,2H3/t3-/m0/s1','INKFUXNIEHXFJX-VKHMYHEASA-N','2','0','InChI=1S/C3H7O/c1-3(2)4/h3-4H,1H2,2H3/t3-/m0/s1'
'C3o2y1r1','[CH2][C@H](C)O','InChI=1S/C3H7O/c1-3(2)4/h3-4H,1H2,2H3/t3-/m1/s1','INKFUXNIEHXFJX-GSVOUGTGSA-N','2','0','InChI=1S/C3H7O/c1-3(2)4/h3-4H,1H2,2H3/t3-/m0/s1'
24 changes: 24 additions & 0 deletions examples/stereo_quick/inp/theory.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
level pm3
method = pm3
orb_res = RU
program = gaussian16
mem = 1.0
nprocs = 1
end level

level pm6
method = pm6
orb_res = RU
program = gaussian16
mem = 1.0
nprocs = 1
end level

level dft
method = bp86
basis = def2-sv(p)
orb_res = RU
program = gaussian16
mem = 2.0
nprocs = 1
end level
3 changes: 3 additions & 0 deletions examples/ts_conf/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*
!.gitignore
!inp/
8 changes: 8 additions & 0 deletions examples/ts_conf/inp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
*
!.gitignore
!inp/
!mechanism.dat
!models.dat
!run.dat
!species.csv
!theory.dat
5 changes: 5 additions & 0 deletions examples/ts_conf/inp/mechanism.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
REACTIONS CAL/MOL MOL

CH4 + OH = CH3 + H2O 1.000 0.000 0.000 # pes.subpes.channel 1.1.1

END
59 changes: 59 additions & 0 deletions examples/ts_conf/inp/models.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@

kin global
pressures = (
0.1 1.0 10.0 100.0
)
rate_temps = (
500. 600. 700. 800. 900. 1000.
1100. 1200. 1300. 1400. 1500
1600. 1700. 1800. 1900. 2000.
)
therm_temps = (
200. 300. 400. 500. 600. 700. 800. 900. 1000. 1100. 1200.
1300. 1400. 1500. 1600. 1700. 1800. 1900. 2000. 2100. 2200.
2300. 2400. 2500. 2600. 2700. 2800. 2900. 3000.
)
rate_fit = (
fit_method = plog
pdep_temps = [500.0, 1000.0]
pdep_tol = 20.0
pdep_pval = 1.0
pdep_plow = None
pdep_phigh = None
arrfit_dbltol = 15.0
)
therm_fit = (
ref_scheme = basic
ref_enes = Best
)
end kin

spc global
ene = (
lvl1 = dft
)
rot = (
mod = rigid
)
vib = (
mod = harm
geolvl = pm3
scale = on
)
tors = (
mod = 1dhrfa
enelvl = pm3
geolvl = pm3
scale = on
)
symm = (
mod = HCO_model
geolvl = pm3
)
ts = (
tunnel = eckart
sadpt = fixed
wells = fake
nobar = pst
)
end spc
35 changes: 35 additions & 0 deletions examples/ts_conf/inp/run.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

input
run_prefix = ./run
save_prefix = ./save
end input

spc
1-5
end spc

pes
1: 1
end pes

els
spc init_geom runlvl=pm3 inplvl=pm3
ts find_ts runlvl=pm3 inplvl=pm3
all conf_samp runlvl=pm3 inplvl=pm3
all conf_hess runlvl=pm3 inplvl=pm3 cnf_range=n100
all conf_energy runlvl=dft inplvl=pm3 cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700)
all hr_scan runlvl=pm3 inplvl=pm3 cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700) tors_model=1dhrfa
end els

thermo
write_mess kin_model=global spc_model=global cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700)
run_mess kin_model=global spc_model=global cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700) nprocs=10
run_fits kin_model=global spc_model=global cnf_range=min sort=freqs(pm3),sp(pm3),gibbs(700)
end thermo

ktp
write_mess kin_model=global spc_model=global
run_mess kin_model=global spc_model=global nprocs=10
run_fits kin_model=global spc_model=global
end ktp

6 changes: 6 additions & 0 deletions examples/ts_conf/inp/species.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
'name','smiles','inchi','inchikey','mult','charge','canon_enant_ich'
'H2','[H][H]','InChI=1S/H2/h1H','UFHFLCQGNIYNRP-UHFFFAOYSA-N',1,0,'InChI=1S/H2/h1H'
'OH','[OH]','InChI=1S/HO/h1H','TUJKJAMUKRIRHC-UHFFFAOYSA-N','2','0','InChI=1S/HO/h1H'
'H2O','O','InChI=1S/H2O/h1H2','XLYOFNOQVPJJNP-UHFFFAOYSA-N','1','0','InChI=1S/H2O/h1H2'
'CH3','[CH3]','InChI=1S/CH3/h1H3','WCYWZMWISLQXQU-UHFFFAOYSA-N','2','0','InChI=1S/CH3/h1H3'
'CH4','C','InChI=1S/CH4/h1H4','VNWKTOKETHGBQD-UHFFFAOYSA-N','1','0','InChI=1S/CH4/h1H4'
Loading