Skip to main content

Manage your BOUT++ runs through python

Project description

bout runners


lint status test status docker build status language grade: python codecov percentage documentation status

pypi package number supported python versions licence

security status code standard checked with mypy

Manage your BOUT++ runs through python

Overview

BOUT Runners is a package to manage and orchestrate your BOUT++ runs. More specifically it’s a tool:

  • Which automatically makes your project

  • Where you can override default parameters, and parameters found in BOUT.inp

  • Where you can submit a single run, or even a chain of runs either locally, or to a cluster

  • Which automatically stores parameters and other metadata in a database (inspired by sacred)

  • Logs the entire process

Read the full documentation at ReadTheDocs

Getting Started

The simplest way to use BOUT Runners is by executing the following script in the root of your project directory (usually where your Makefile resides). In this example we are using BOUT-dev/examples/conduction as the root

from bout_runners.runner.bout_runner import BoutRunner
BoutRunner().run()

The metadata from all the runs from this project can be found by executing

from bout_runners.metadata.status_checker import StatusChecker
status_checker = StatusChecker()
status_checker.check_and_update_status()
from bout_runners.metadata.metadata_reader import MetadataReader
metadata_reader = MetadataReader()
metadata = metadata_reader.get_all_metadata()

The metadata variable is a DataFrame, and contains the following table

run.id

run.latest_status

run.name

run.start_time

run.stop_time

run.submitted_time

all_boundaries.evolve_bndry

conduction.chi

file_modification.bout_git_sha

file_modification.bout_lib_modified

file_modification.project_executable_modified

file_modification.project_git_sha

file_modification.project_makefile_modified

global.append

global.async_send

global.datadir

global.dump_format

global.dump_on_restart

global.incintshear

global.mxg

global.myg

global.non_uniform

global.nout

global.optionfile

global.periodicx

global.restart

global.restart_format

global.settingsfile

global.stopcheck

global.timestep

global.twistshift

global.wall_limit

global.zmax

global.zmin

input.transform_from_field_aligned

mesh.calcparallelslices_on_communicate

mesh.dy

mesh.extrapolate_x

mesh.extrapolate_y

mesh.ixseps1

mesh.ixseps2

mesh.maxregionblocksize

mesh.nx

mesh.ny

mesh.nz

mesh.paralleltransform

mesh.staggergrids

mesh.symmetricglobalx

mesh.symmetricglobaly

mesh.type

mesh_ddz.fft_filter

output.enabled

output.floats

output.flush

output.flushfrequency

output.guards

output.init_missing

output.openclose

output.parallel

output.shiftinput

output.shiftoutput

restart.enabled

restart.floats

restart.flush

restart.flushfrequency

restart.guards

restart.init_missing

restart.openclose

restart.parallel

restart.shiftinput

restart.shiftoutput

solver.adams_moulton

solver.atol

solver.cvode_max_order

solver.cvode_stability_limit_detection

solver.diagnose

solver.func_iter

solver.is_nonsplit_model_diffusive

solver.max_timestep

solver.maxl

solver.min_timestep

solver.mms

solver.mms_initialise

solver.monitor_timestep

solver.mxorder

solver.mxstep

solver.nout

solver.output_step

solver.rtol

solver.start_timestep

solver.type

solver.use_jacobian

solver.use_precon

solver.use_vector_abstol

split.number_of_nodes

split.number_of_processors

split.processors_per_node

system_info.machine

system_info.node

system_info.processor

system_info.release

system_info.system

system_info.version

t.bndry_all

t.evolve_bndry

t.function

t.scale

0

1

complete

2020-06-09_07-14-39_981268

2020-06-09 07:14:53

2020-06-09 07:14:56

2020-06-09 07:14:52.943486

0

1.0

22c888152e49003c34723a2638504aabc25d87ba

2020-02-03 20:03:02.000000

2020-06-09 07:14:39.631118

22c888152e49003c34723a2638504aabc25d87ba

2020-02-03 19:48:41.000000

0

0

/root/bout-dev/examples/conduction/settings_run

nc

1

0

0

2

1

0

bout.inp

0

0

nc

bout.settings

0

0.1

0

-1

1

0

1

1

0.2

0

0

-1

-1

64

1

100

1

identity

0

1

1

bout

0

1

0

1

1

1

0

1

0

0

0

1

0

1

1

1

0

1

0

0

0

0

1e-12

-1

0

0

0

1

-1

5

-1

0

0

0

-1

500

0

0.1

1e-05

-1

cvode

0

0

0

1

1

1

x86_64

0f17950a0dcc

4.19.76-linuxkit

Linux

#1 SMP Tue May 26 11:42:35 UTC 2020

dirichlet_o4(0.0)

0

gauss(y-pi, 0.2)

1.0

Prerequisites

Installing

The package can be installed from pip

pip install bout-runners

Or from source

python setup.py install

After installation you can optionally call

bout_runners_config

in order to setup the path to your BOUT++ installation and to configure other parameters like logging.

Running the tests

The test suite can be executed through pytest or through codecov pytest-cov. Installation through

pip install pytest

or

pip install codecov pytest-cov

and run with

pytest

or

pytest --cov=./

respectively

Contributing

Please read CONTRIBUTING.rst for details about how to contribute.

Authors

  • Michael Løiten - Initial work

See also the list of contributors who participated in this project.

License

This project is licensed under the GNU LESSER GENERAL PUBLIC LICENSE - see the LICENSE file for details

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bout_runners-2.0.0a0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

bout_runners-2.0.0a0-py2.py3-none-any.whl (10.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bout_runners-2.0.0a0.tar.gz.

File metadata

  • Download URL: bout_runners-2.0.0a0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for bout_runners-2.0.0a0.tar.gz
Algorithm Hash digest
SHA256 aaabe329a5663705f3b6d600d267f32b390d49d0837889ef183d7792d7821925
MD5 862d03583fc6d890c9bc3f34fe48180a
BLAKE2b-256 8155ce1f3bb70981aae675636508be2acd72f74000df051e0d7d5d476d6a0810

See more details on using hashes here.

File details

Details for the file bout_runners-2.0.0a0-py2.py3-none-any.whl.

File metadata

  • Download URL: bout_runners-2.0.0a0-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for bout_runners-2.0.0a0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b3040d48249f1f0ec9137d6a0c5a67d89df366508e607e021ed5aeebfd66d670
MD5 d7447084bed19ed572e1a7781a3917f2
BLAKE2b-256 c9f6e058f78153e38889a283736ca0e1823b0559faacd7ad6f177404d00a60fe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page