Skip to content

Commit e591077

Browse files
authored
Merge pull request #237 from jan-janssen/clear_no_close
Extend external LammpsLibrary interface
2 parents 91eb7af + 8b954da commit e591077

File tree

4 files changed

+21
-15
lines changed

4 files changed

+21
-15
lines changed

calphy/alchemy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def run_averaging(self):
127127

128128
# close object and process traj
129129
lmp = ph.write_data(lmp, "conf.equilibration.data")
130-
lmp.close()
130+
self.lammps_close(lmp=lmp)
131131
# Preserve log file
132132
logfile = os.path.join(self.simfolder, "log.lammps")
133133
try:
@@ -503,7 +503,7 @@ def run_integration(self, iteration=1):
503503
for idx in range(len(swap_combos)):
504504
lmp.command(f"unfix swap{idx}")
505505
# lmp.command("unfix swap_print")
506-
lmp.close()
506+
self.lammps_close(lmp=lmp)
507507
# Preserve log file
508508
logfile = os.path.join(self.simfolder, "log.lammps")
509509
try:

calphy/liquid.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def melt_structure(self, lmp):
131131

132132
# if melting cycle is over and still not melted, raise error
133133
if not melted:
134-
lmp.close()
134+
self.lammps_close(lmp=lmp)
135135
# Preserve log file
136136
logfile = os.path.join(self.simfolder, "log.lammps")
137137
try:
@@ -215,7 +215,7 @@ def run_averaging(self):
215215
self.check_if_solidfied(lmp, "traj.equilibration_stage1.dat")
216216
self.dump_current_snapshot(lmp, "traj.equilibration_stage2.dat")
217217
lmp = ph.write_data(lmp, "conf.equilibration.data")
218-
lmp.close()
218+
self.lammps_close(lmp=lmp)
219219
# Preserve log file
220220
logfile = os.path.join(self.simfolder, "log.lammps")
221221
try:
@@ -437,7 +437,7 @@ def run_integration(self, iteration=1):
437437
lmp.command("uncompute c2")
438438

439439
# close object
440-
lmp.close()
440+
self.lammps_close(lmp=lmp)
441441
# Preserve log file
442442
logfile = os.path.join(self.simfolder, "log.lammps")
443443
try:

calphy/phase.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ def check_if_melted(self, lmp, filename):
279279
""" """
280280
solids = ph.find_solid_fraction(os.path.join(self.simfolder, filename))
281281
if solids / lmp.natoms < self.calc.tolerance.solid_fraction:
282-
lmp.close()
282+
self.lammps_close(lmp=lmp)
283283
# Preserve log file on error
284284
logfile = os.path.join(self.simfolder, "log.lammps")
285285
try:
@@ -296,7 +296,7 @@ def check_if_solidfied(self, lmp, filename):
296296
""" """
297297
solids = ph.find_solid_fraction(os.path.join(self.simfolder, filename))
298298
if solids / lmp.natoms > self.calc.tolerance.liquid_fraction:
299-
lmp.close()
299+
self.lammps_close(lmp=lmp)
300300
# Preserve log file on error
301301
logfile = os.path.join(self.simfolder, "log.lammps")
302302
try:
@@ -611,7 +611,7 @@ def run_iterative_pressure_convergence(self, lmp):
611611
laststd = std
612612

613613
if not converged:
614-
lmp.close()
614+
self.lammps_close(lmp=lmp)
615615
# Preserve log file on error
616616
logfile = os.path.join(self.simfolder, "log.lammps")
617617
try:
@@ -736,7 +736,7 @@ def run_iterative_constrained_pressure_convergence(self, lmp):
736736
lmp.command("unfix 2")
737737

738738
if not converged:
739-
lmp.close()
739+
self.lammps_close(lmp=lmp)
740740
# Preserve log file on error
741741
logfile = os.path.join(self.simfolder, "log.lammps")
742742
try:
@@ -1249,7 +1249,7 @@ def reversible_scaling(self, iteration=1):
12491249
lmp.command("undump d1")
12501250

12511251
# close the object
1252-
lmp.close()
1252+
self.lammps_close(lmp=lmp)
12531253
# Preserve log file
12541254
logfile = os.path.join(self.simfolder, "log.lammps")
12551255
if os.path.exists(logfile):
@@ -1449,8 +1449,8 @@ def temperature_scaling(self, iteration=1):
14491449
)
14501450
lmp.command("run %d" % self.calc._n_sweep_steps)
14511451

1452-
lmp.close()
1453-
# Preserve log file
1452+
self.lammps_close(lmp=lmp)
1453+
# Preserve log file
14541454
logfile = os.path.join(self.simfolder, "log.lammps")
14551455
if os.path.exists(logfile):
14561456
os.rename(
@@ -1587,7 +1587,7 @@ def pressure_scaling(self, iteration=1):
15871587
)
15881588
lmp.command("run %d" % self.calc._n_sweep_steps)
15891589

1590-
lmp.close()
1590+
15911591
# Preserve log file
15921592
logfile = os.path.join(self.simfolder, "log.lammps")
15931593
if os.path.exists(logfile):
@@ -1643,3 +1643,9 @@ def clean_up(self):
16431643

16441644
with open(os.path.join(self.simfolder, "metadata.yaml"), "w") as fout:
16451645
yaml.safe_dump(metadata, fout)
1646+
1647+
def lammps_close(self, lmp):
1648+
if self._lmp is None:
1649+
lmp.close()
1650+
else:
1651+
lmp.clear()

calphy/solid.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def run_interactive_averaging(self):
293293
self.check_if_melted(lmp, "traj.equilibration_stage2.dat")
294294
lmp = ph.write_data(lmp, "conf.equilibration.data")
295295
# close object and process traj
296-
lmp.close()
296+
self.lammps_close(lmp=lmp)
297297
# Preserve log file
298298
logfile = os.path.join(self.simfolder, "log.lammps")
299299
try:
@@ -593,7 +593,7 @@ def run_integration(self, iteration=1):
593593

594594
# close object
595595
if not self.calc.script_mode:
596-
lmp.close()
596+
self.lammps_close(lmp=lmp)
597597
# Preserve log file
598598
logfile = os.path.join(self.simfolder, "log.lammps")
599599
try:

0 commit comments

Comments
 (0)