Skip to main content

Simvue Connectors - MOOSE


Simvue

Allow easy connection between Simvue and MOOSE (Multiphysics Object Oriented Simulation Environment), allowing for easy tracking and monitoring of physics simulations in real time.

Website

Implementation

A customised MooseRun class has been created which automatically does the following:

  • Uploads the MOOSE input file and application Makefile as input artifacts
  • Launches the MOOSE simulation as a process, triggering an alert if it encounters an error or exception
  • Uploads information from the MOOSE input file as metadata
  • Uploads information from the top of the console log (MOOSE version, parallelism information, mesh information etc) as metadata
  • Uploads key information from the console log as events
  • Creates an alert which notifies the user if a step fails to converge
  • Uploads any variable values being written to CSV files as metrics
  • Adds relevant metadata and tags to the run if the MOOSE Terminator stopped the run early
  • Once complete, upload the any output files as artifacts

Installation

To install and use this connector, first create a virtual environment:

python -m venv venv

Then activate it:

source venv/bin/activate

And then use pip to install this module:

pip install simvue-moose

Configuration

The service URL and token can be defined as environment variables:

export SIMVUE_URL=...
export SIMVUE_TOKEN=...

or a file simvue.toml can be created containing:

[server]
url = "..."
token = "..."

The exact contents of both of the above options can be obtained directly by clicking the Create new run button on the web UI. Note that the environment variables have preference over the config file.

Usage example

from simvue_moose.connector import MooseRun

...

if __name__ == "__main__":

    ...

    # Using a context manager means that the status will be set to completed automatically,
    # and also means that if the code exits with an exception this will be reported to Simvue
    with MooseRun() as run:

        # Specify a run name, along with any other optional parameters:
        run.init(
          name = 'my-moose-simulation',                                 # Run name
          metadata = {'initial_temp': 30},                              # Metadata
          tags = ['moose', 'conduction'],                               # Tags
          description = 'MOOSE simulation of thermal conduction.',      # Description
          folder = '/moose/conduction/coffee_cup'                       # Folder path
        )

        # Set folder details if necessary
        run.set_folder_details(
          metadata = {'mesh': 'coffee_cup'},                            # Metadata
          tags = ['moose'],                                             # Tags
          description = 'MOOSE simulations of thermal conduction'       # Description
        )

        # Can use the base Simvue Run() methods to upload extra information, eg:
        run.save_file(os.path.abspath(__file__), "code")

        # Can add alerts specific to your simulation, eg:
        run.create_metric_threshold_alert(
          name="temperature_above_eighty",        # Name of Alert
          metric="temperature",                   # Metric to monitor
          frequency=1,                            # Frequency to evaluate rule at (mins)
          rule="is above",                        # Rule to alert on
          threshold=80,                           # Threshold to alert on
          notification='email',                   # Notification type
          trigger_abort=True                      # Abort simulation if triggered
        )

        # Launch the MOOSE simulation
        run.launch(
            moose_application_path='path/to/my/moose/app',    # Path to MOOSE application
            moose_file_path='path/to/my/input_file.i',        # Path to MOOSE input file
            track_vector_postprocessors=True,                 # Whether to track vector postprocessors
            run_in_parallel=True,                             # Whether to run in parallel using MPI
            num_processors=2                                  # Number of cores to use if in parallel

            )

License

Released under the terms of the Apache 2 license.

Citation

To reference Simvue, please use the information outlined in this citation file.

Metadata

Release files for simvue-moose 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simvue-moose 1.1.0
File Size Uploaded
simvue_moose-1.1.0.tar.gz 19.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simvue-moose 1.1.0
File Interpreter ABI Platform
simvue_moose-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.6 kB

Release files / simvue_moose-1.1.0.tar.gz

Download URL simvue_moose-1.1.0.tar.gz
Size 19.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f7ffae66652cc593a9abe8a93031bedf0a79ac82a4cae1c6be343d1f55547f57
BLAKE2b-256 checksum
How to use checksums
7ac6ad16d71fc10ca23354e43286bfaadbcd8dc349d0ea6d158bcf27185931b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / simvue_moose-1.1.0-py3-none-any.whl

Download URL simvue_moose-1.1.0-py3-none-any.whl
Size 19.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
014d40632cab8edf6225e527b5be544b9843393322a1c71b5ff64ee036d31a0b
BLAKE2b-256 checksum
How to use checksums
652a7077e1c23216bb4300cade6a18651311b40f80c3b84b36cf33ea16cb5d23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page