Skip to content
Merged
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
19 changes: 13 additions & 6 deletions hyperion/model/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ def hseq_profile(w, z, temperature, mstar, mu=2.279):
# mu = 2.279


def run_with_vertical_hseq(prefix, model, n_iter=10, mpi=False,
def run_with_vertical_hseq(prefix, model, n_iter=10, mpi=False, logfile=False,
n_processes=multiprocessing.cpu_count(),
overwrite=False):
"""
Expand Down Expand Up @@ -166,6 +166,9 @@ def run_with_vertical_hseq(prefix, model, n_iter=10, mpi=False,
The number of processes to use if ``mpi`` is ``True``
overwrite : bool, optional
Whether to overwrite previous files
logfile : bool, optional
If `True`, a logfile will be output for each iteration using `prefix`
as the base name
"""

from ..grid import CylindricalPolarGrid
Expand All @@ -186,12 +189,14 @@ def run_with_vertical_hseq(prefix, model, n_iter=10, mpi=False,
else:
n_disks = len(model.disks)

# Write out initial model
model.write(prefix + '_00000.rtin', overwrite=overwrite, merge_if_possible=False)
if not isinstance(logfile, bool):
raise TypeError('logfile should be True or False')

# Run the initial model
# Write out initial model and run
extra_kwargs = {'logfile': '{0:s}_{1:05d}.log'.format(prefix, 0)} if logfile else {}
model.write(prefix + '_00000.rtin', overwrite=overwrite, merge_if_possible=False)
mo = model.run(prefix + '_00000.rtout', overwrite=overwrite,
mpi=mpi, n_processes=n_processes)
mpi=mpi, n_processes=n_processes, **extra_kwargs)

previous = prefix + '_00000.rtout'

Expand Down Expand Up @@ -235,9 +240,11 @@ def run_with_vertical_hseq(prefix, model, n_iter=10, mpi=False,
# Override the density
m.grid['density'] = density


# Write and run
extra_kwargs = {'logfile': '{0:s}_{1:05d}.log'.format(prefix, iteration)} if logfile else {}
m.write('{0:s}_{1:05d}.rtin'.format(prefix, iteration), overwrite=overwrite)
m.run('{0:s}_{1:05d}.rtout'.format(prefix, iteration),
overwrite=overwrite, mpi=mpi, n_processes=n_processes)
overwrite=overwrite, mpi=mpi, n_processes=n_processes, **extra_kwargs)

previous = '{0:s}_{1:05d}.rtout'.format(prefix, iteration)
Loading