Package: bout-runners
Manage yourBOUT++runs through pythonOverviewBOUT Runnersis a package to manage and orchestrate yourBOUT++runs.
More specifically it’s a tool:That automatically makes your projectWhere you can override default parameters, and parameters found inBOUT.inpWhere you can submit a single run, or even a chain of runs either locally, or to a clusterThat automatically stores parameters and other metadata in a database (inspired bysacred)Logs the entire processRead the fulldocumentationatReadTheDocsGetting StartedThe simplest way to useBOUT Runnersis by executing the following script in the root of your project directory (usually where yourMakefileresides).
In this example we are usingBOUT-dev/examples/conductionas the rootfrombout_runners.runner.bout_runnerimportBoutRunnerBoutRunner().run()The metadata from all the runs from this project can be found by executingfrombout_runners.metadata.status_checkerimportStatusCheckerstatus_checker=StatusChecker()status_checker.check_and_update_status()frombout_runners.metadata.metadata_readerimportMetadataReadermetadata_reader=MetadataReader()metadata=metadata_reader.get_all_metadata()Themetadatavariable is aDataFrame, and contains the following tablerun.idrun.latest_statusrun.namerun.start_timerun.stop_timerun.submitted_timeall_boundaries.evolve_bndryconduction.chifile_modification.bout_git_shafile_modification.bout_lib_modifiedfile_modification.project_executable_modifiedfile_modification.project_git_shafile_modification.project_makefile_modifiedglobal.appendglobal.async_sendglobal.datadirglobal.dump_formatglobal.dump_on_restartglobal.incintshearglobal.mxgglobal.mygglobal.non_uniformglobal.noutglobal.optionfileglobal.periodicxglobal.restartglobal.restart_formatglobal.settingsfileglobal.stopcheckglobal.timestepglobal.twistshiftglobal.wall_limitglobal.zmaxglobal.zmininput.transform_from_field_alignedmesh.calcparallelslices_on_communicatemesh.dymesh.extrapolate_xmesh.extrapolate_ymesh.ixseps1mesh.ixseps2mesh.maxregionblocksizemesh.nxmesh.nymesh.nzmesh.paralleltransformmesh.staggergridsmesh.symmetricglobalxmesh.symmetricglobalymesh.typemesh_ddz.fft_filteroutput.enabledoutput.floatsoutput.flushoutput.flushfrequencyoutput.guardsoutput.init_missingoutput.opencloseoutput.paralleloutput.shiftinputoutput.shiftoutputrestart.enabledrestart.floatsrestart.flushrestart.flushfrequencyrestart.guardsrestart.init_missingrestart.opencloserestart.parallelrestart.shiftinputrestart.shiftoutputsolver.adams_moultonsolver.atolsolver.cvode_max_ordersolver.cvode_stability_limit_detectionsolver.diagnosesolver.func_itersolver.is_nonsplit_model_diffusivesolver.max_timestepsolver.maxlsolver.min_timestepsolver.mmssolver.mms_initialisesolver.monitor_timestepsolver.mxordersolver.mxstepsolver.noutsolver.output_stepsolver.rtolsolver.start_timestepsolver.typesolver.use_jacobiansolver.use_preconsolver.use_vector_abstolsplit.number_of_nodessplit.number_of_processorssplit.processors_per_nodesystem_info.machinesystem_info.nodesystem_info.processorsystem_info.releasesystem_info.systemsystem_info.versiont.bndry_allt.evolve_bndryt.functiont.scale01complete2020-06-09_07-14-39_9812682020-06-09 07:14:532020-06-09 07:14:562020-06-09 07:14:52.94348601.022c888152e49003c34723a2638504aabc25d87ba2020-02-03 20:03:02.0000002020-06-09 07:14:39.63111822c888152e49003c34723a2638504aabc25d87ba2020-02-03 19:48:41.00000000/root/bout-dev/examples/conduction/settings_runnc100210bout.inp00ncbout.settings00.10-110110.200-1-16411001identity011bout01011101000101110100001e-12-10001-15-1000-150000.11e-05-1cvode000111x86_640f17950a0dcc4.19.76-linuxkitLinux#1 SMP Tue May 26 11:42:35 UTC 2020dirichlet_o4(0.0)0gauss(y-pi, 0.2)1.0PrerequisitesPython(versions above3.6are supported)BOUT++, which can installed as stated in themanual, or by usingbout_installInstallingThe package can be installed frompippipinstallbout-runnersOr from sourcepythonsetup.pyinstallAfter installation you can optionally callbout_runners_configin order to setup the path to yourBOUT++installation and to configure other parameters like logging.Running the testsThe test suite can be executed throughpytestor throughcodecovpytest-cov.
Installation throughpipinstallpytestorpipinstallcodecovpytest-covand run withpytestorpytest--cov=./respectivelyContributingPlease readCONTRIBUTING.rstfor details about how to contribute.AuthorsMichael Løiten-Initial workSee also the list ofcontributorswho participated in this project.LicenseThis project is licensed under theGNU LESSER GENERAL PUBLIC LICENSE- see theLICENSEfile for detailsAcknowledgmentsTheBOUT++ teamfor fast and accurate response on theBOUT++ issue trackerandslack-channel