Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backup key files and folder from an RMG run before restarting it #159

Merged
merged 2 commits into from
Aug 18, 2024
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
59 changes: 44 additions & 15 deletions t3/runners/rmg_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
Should be executed locally on the head node using the t3 environment.
"""

from typing import TYPE_CHECKING, List, Optional, Tuple

import datetime
import os
import shutil
import time
from typing import TYPE_CHECKING, List, Optional, Tuple

from arc.job.local import _determine_job_id, change_mode, execute_command, parse_running_jobs_ids, submit_job
from arc.job.local import (_determine_job_id, change_mode, execute_command,
parse_running_jobs_ids, submit_job)

from t3.imports import local_t3_path, settings, submit_scripts

Expand Down Expand Up @@ -229,18 +230,20 @@ def run_rmg_in_local_queue(project_directory: str,
with open(rmg_input_path, 'r') as f:
content = f.read()
seed_path = os.path.join(project_directory, 'seed')
if restart_rmg and restart_string not in content and os.path.isdir(seed_path) and os.listdir(seed_path):
if os.path.isfile(os.path.join(project_directory, 'restart_from_seed.py')):
if os.path.isfile(os.path.join(project_directory, 'input.py')):
os.rename(src=os.path.join(project_directory, 'input.py'),
dst=os.path.join(project_directory, 'input.py.old'))
os.rename(src=os.path.join(project_directory, 'restart_from_seed.py'),
dst=os.path.join(project_directory, 'input.py'))
elif os.path.isfile(os.path.join(project_directory, 'input.py')):
with open(os.path.join(project_directory, 'input.py'), 'r') as f:
content = f.read()
with open(os.path.join(project_directory, 'input.py'), 'w') as f:
f.write("restartFromSeed(path='seed')\n\n" + content)
if restart_rmg:
backup_rmg_files(project_directory=project_directory)
if restart_string not in content and os.path.isdir(seed_path) and os.listdir(seed_path):
if os.path.isfile(os.path.join(project_directory, 'restart_from_seed.py')):
if os.path.isfile(os.path.join(project_directory, 'input.py')):
os.rename(src=os.path.join(project_directory, 'input.py'),
dst=os.path.join(project_directory, 'input.py.old'))
os.rename(src=os.path.join(project_directory, 'restart_from_seed.py'),
dst=os.path.join(project_directory, 'input.py'))
elif os.path.isfile(os.path.join(project_directory, 'input.py')):
with open(os.path.join(project_directory, 'input.py'), 'r') as f:
content = f.read()
with open(os.path.join(project_directory, 'input.py'), 'w') as f:
f.write("restartFromSeed(path='seed')\n\n" + content)
job_status, job_id = submit_job(project_directory=project_directory,
logger=logger,
memory=memory,
Expand Down Expand Up @@ -380,6 +383,32 @@ def get_new_memory_for_an_rmg_run(job_log_path: str,
return new_mem


def backup_rmg_files(project_directory: str):
"""
Backup the RMG files before restarting from seed.

Args:
project_directory (str): The path to the RMG folder.
"""
restart_backup_dir = os.path.join(project_directory,
f'restart_backup_{datetime.datetime.now().strftime("%b%d_%Y_%H-%M-%S")}')
os.mkdir(restart_backup_dir)
os.mkdir(os.path.join(restart_backup_dir, 'chemkin'))
files = ['RMG.log',
os.path.join('chemkin', 'chem_annotated.inp'),
os.path.join('chemkin', 'chem_edge_annotated.inp'),
]
folders = ['pdep']
for file in files:
if os.path.exists(os.path.join(project_directory, file)):
shutil.copy(src=os.path.join(project_directory, file),
dst=os.path.join(restart_backup_dir, file))
for folder in folders:
if os.path.exists(os.path.join(project_directory, folder)):
shutil.copytree(src=os.path.join(project_directory, folder),
dst=os.path.join(restart_backup_dir, folder))


# def get_names_by_sub_folders(pwd: str) -> List[str]:
# """
# Get the names of the runs.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy RMG log file
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy chem.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
ELEMENTS
H
D /2.014/
T /3.016/
C
CI /13.003/
O
OI /17.999/
N
Ne
Ar
He
Si
S
F
Cl
Br
I
X /195.083/
END

SPECIES
Ar ! Ar
Ne ! Ne
furfuryl(1) ! furfuryl(1)
END



THERM ALL
300.000 1000.000 5000.000

! Thermo library: primaryThermoLibrary
Ar Ar 1 G 200.000 6000.000 1000.00 1
2.50000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2
-7.45375000E+02 4.37967000E+00 2.50000000E+00 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00-7.45375000E+02 4.37967000E+00 4

! Thermo library: primaryThermoLibrary
Ne Ne 1 G 200.000 6000.000 1000.00 1
2.50000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2
-7.45375000E+02 3.35532000E+00 2.50000000E+00 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00-7.45375000E+02 3.35532000E+00 4

! Thermo library: 2FFOH_thermo
furfuryl(1) C 5H 6O 2 G 10.000 3000.000 992.72 1
6.39130000E+00 3.56842000E-02-1.91804000E-05 4.95507000E-09-4.98206000E-13 2
-3.04566000E+04-4.85274000E+00 3.89525000E+00 2.62426000E-02 2.45489000E-05 3
-4.41978000E-08 1.68630000E-11-2.90002000E+04 1.20103000E+01 4

END



REACTIONS KCAL/MOLE MOLES

! Reaction index: Chemkin #1; RMG #1
! Library reaction: C2H2_init
! Flux pairs: acetylene(2), C4H4(17); acetylene(2), C4H4(17);
acetylene(2)+acetylene(2)<=>C4H4(17) 1.000e+00 0.000 0.000
PLOG/ 0.000987 1.280e+54 -12.650 68.650 /
PLOG/ 0.000987 1.770e+88 -24.080 73.900 /
PLOG/ 0.009869 3.090e+36 -7.640 56.790 /
PLOG/ 0.009869 1.490e+62 -14.560 79.730 /
PLOG/ 0.098690 2.690e+52 -11.490 76.010 /
PLOG/ 0.098690 2.480e+41 -9.120 58.940 /
PLOG/ 0.986900 2.640e+44 -8.980 74.000 /
PLOG/ 0.986900 3.000e+33 -6.640 56.150 /
PLOG/ 9.869000 4.300e+23 -3.600 52.310 /
PLOG/ 9.869000 7.660e+33 -5.840 69.450 /
PLOG/ 98.690000 6.500e+26 -3.750 67.720 /
PLOG/ 98.690000 9.560e+11 0.000 47.720 /

! Reaction index: Chemkin #1221; RMG #45542
! PDep reaction: PDepNetwork #226
! Flux pairs: CHCHO(202), C2H2O(15133);
CHCHO(202)(+M)<=>C2H2O(15133)(+M) 1.000e+00 0.000 0.000
TCHEB/ 300.000 2000.000 /
PCHEB/ 0.005 98.692 /
CHEB/ 6 4/
CHEB/ -1.944e+00 2.172e+00 7.470e-04 -1.384e-03 /
CHEB/ 7.878e+00 4.088e-02 1.565e-03 -2.606e-03 /
CHEB/ -1.853e-01 3.476e-02 1.717e-03 -2.170e-03 /
CHEB/ -4.447e-02 2.642e-02 1.817e-03 -1.576e-03 /
CHEB/ -2.767e-02 1.779e-02 1.748e-03 -9.650e-04 /
CHEB/ -2.493e-02 1.046e-02 1.480e-03 -4.577e-04 /

END

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy chem edge file
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy chem edge annotated file
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Ar
1 Ar u0 p4 c0

Ne
1 Ne u0 p4 c0

furfuryl(1)
1 O u0 p2 c0 {4,S} {7,S}
2 O u0 p2 c0 {3,S} {13,S}
3 C u0 p0 c0 {2,S} {4,S} {8,S} {9,S}
4 C u0 p0 c0 {1,S} {3,S} {5,D}
5 C u0 p0 c0 {4,D} {6,S} {10,S}
6 C u0 p0 c0 {5,S} {7,D} {11,S}
7 C u0 p0 c0 {1,S} {6,D} {12,S}
8 H u0 p0 c0 {3,S}
9 H u0 p0 c0 {3,S}
10 H u0 p0 c0 {5,S}
11 H u0 p0 c0 {6,S}
12 H u0 p0 c0 {7,S}
13 H u0 p0 c0 {2,S}

Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
Ar
1 Ar u0 p4 c0

Ne
1 Ne u0 p4 c0

furfuryl(1)
1 O u0 p2 c0 {4,S} {7,S}
2 O u0 p2 c0 {3,S} {13,S}
3 C u0 p0 c0 {2,S} {4,S} {8,S} {9,S}
4 C u0 p0 c0 {1,S} {3,S} {5,D}
5 C u0 p0 c0 {4,D} {6,S} {10,S}
6 C u0 p0 c0 {5,S} {7,D} {11,S}
7 C u0 p0 c0 {1,S} {6,D} {12,S}
8 H u0 p0 c0 {3,S}
9 H u0 p0 c0 {3,S}
10 H u0 p0 c0 {5,S}
11 H u0 p0 c0 {6,S}
12 H u0 p0 c0 {7,S}
13 H u0 p0 c0 {2,S}

C8H11O(18549)
multiplicity 2
1 O u0 p2 c0 {2,S} {4,S}
2 C u0 p0 c0 {1,S} {5,S} {6,S} {10,S}
3 C u0 p0 c0 {5,S} {8,S} {11,S} {12,S}
4 C u0 p0 c0 {1,S} {7,S} {13,S} {14,S}
5 C u1 p0 c0 {2,S} {3,S} {15,S}
6 C u0 p0 c0 {2,S} {7,D} {16,S}
7 C u0 p0 c0 {4,S} {6,D} {17,S}
8 C u0 p0 c0 {3,S} {9,D} {18,S}
9 C u0 p0 c0 {8,D} {19,S} {20,S}
10 H u0 p0 c0 {2,S}
11 H u0 p0 c0 {3,S}
12 H u0 p0 c0 {3,S}
13 H u0 p0 c0 {4,S}
14 H u0 p0 c0 {4,S}
15 H u0 p0 c0 {5,S}
16 H u0 p0 c0 {6,S}
17 H u0 p0 c0 {7,S}
18 H u0 p0 c0 {8,S}
19 H u0 p0 c0 {9,S}
20 H u0 p0 c0 {9,S}

C8H12O2(20177)
1 O u0 p2 c0 {3,S} {6,S}
2 O u0 p2 c0 {10,D}
3 C u0 p0 c0 {1,S} {4,S} {5,S} {8,S}
4 C u0 p0 c0 {3,S} {7,S} {10,S} {11,S}
5 C u0 p0 c0 {3,S} {14,S} {15,S} {19,S}
6 C u0 p0 c0 {1,S} {9,S} {12,S} {13,S}
7 C u0 p0 c0 {4,S} {16,S} {17,S} {18,S}
8 C u0 p0 c0 {3,S} {9,D} {21,S}
9 C u0 p0 c0 {6,S} {8,D} {20,S}
10 C u0 p0 c0 {2,D} {4,S} {22,S}
11 H u0 p0 c0 {4,S}
12 H u0 p0 c0 {6,S}
13 H u0 p0 c0 {6,S}
14 H u0 p0 c0 {5,S}
15 H u0 p0 c0 {5,S}
16 H u0 p0 c0 {7,S}
17 H u0 p0 c0 {7,S}
18 H u0 p0 c0 {7,S}
19 H u0 p0 c0 {5,S}
20 H u0 p0 c0 {9,S}
21 H u0 p0 c0 {8,S}
22 H u0 p0 c0 {10,S}

C3H4O2(20308)
multiplicity 3
1 O u0 p2 c0 {3,S} {9,S}
2 O u0 p2 c0 {5,D}
3 C u0 p0 c0 {1,S} {4,S} {5,S} {6,S}
4 C u1 p0 c0 {3,S} {7,S} {8,S}
5 C u1 p0 c0 {2,D} {3,S}
6 H u0 p0 c0 {3,S}
7 H u0 p0 c0 {4,S}
8 H u0 p0 c0 {4,S}
9 H u0 p0 c0 {1,S}

C4H6O2(20309)
multiplicity 3
1 O u0 p2 c0 {3,S} {12,S}
2 O u0 p2 c0 {6,D}
3 C u0 p0 c0 {1,S} {4,S} {6,S} {7,S}
4 C u0 p0 c0 {3,S} {5,S} {8,S} {9,S}
5 C u1 p0 c0 {4,S} {10,S} {11,S}
6 C u1 p0 c0 {2,D} {3,S}
7 H u0 p0 c0 {3,S}
8 H u0 p0 c0 {4,S}
9 H u0 p0 c0 {4,S}
10 H u0 p0 c0 {5,S}
11 H u0 p0 c0 {5,S}
12 H u0 p0 c0 {1,S}

C3H7O(20310)
multiplicity 2
1 O u0 p2 c0 {2,S} {11,S}
2 C u0 p0 c0 {1,S} {3,S} {4,S} {5,S}
3 C u0 p0 c0 {2,S} {6,S} {7,S} {8,S}
4 C u1 p0 c0 {2,S} {9,S} {10,S}
5 H u0 p0 c0 {2,S}
6 H u0 p0 c0 {3,S}
7 H u0 p0 c0 {3,S}
8 H u0 p0 c0 {3,S}
9 H u0 p0 c0 {4,S}
10 H u0 p0 c0 {4,S}
11 H u0 p0 c0 {1,S}

[CH]CC-2(20311)
multiplicity 3
1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S}
2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S}
3 C u2 p0 c0 {1,S} {9,S}
4 H u0 p0 c0 {1,S}
5 H u0 p0 c0 {1,S}
6 H u0 p0 c0 {2,S}
7 H u0 p0 c0 {2,S}
8 H u0 p0 c0 {2,S}
9 H u0 p0 c0 {3,S}

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
! Species Shape LJ-depth LJ-diam DiplMom Polzblty RotRelaxNum Data
! Name Index epsilon/k_B sigma mu alpha Zrot Source
Ar 0 136.500 3.330 0.000 0.000 0.000 ! NOx2018
Ne 0 148.600 3.758 0.000 0.000 0.000 ! Epsilon & sigma estimated with fixed Lennard Jones Parameters. This is the fallback method! Try improving transport databases!
furfuryl(1) 2 501.522 6.610 0.000 0.000 0.000 ! Epsilon & sigma estimated with Tc=651.33 K, Pc=32.77 bar (from Joback method)
C2H2O(15133) 2 357.876 4.998 0.000 0.000 0.000 ! Epsilon & sigma estimated with Tc=464.77 K, Pc=54.07 bar (from Joback method)
Loading
Loading