Skip to content

NCAR/musica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MUSICA

GitHub Releases License docker macOS ubuntu windows Python Javascript tests DOI PyPI version FAIR checklist badge codecov Binder

Multi-Scale Infrastructure for Chemistry and Aerosols

MUSICA is a collection of modeling software, tools, and grids, that allow for robust modeling of chemistry in Earth's atmosphere.

At present the project encompasses these core components

  • TUV-x

    • A photolysis rate calculator
  • MICM

    • Model Independent Chemical Module
  • CARMA

    • Community Aerosol and Radiation Model for Atmospheres (integration in development)
  • Mechanism Configuration

    • The standardized format to describe atmospheric chemistry

These components are used to drive the MUSICA software ecosystem. This is a snapshot of how MUSICA can be used with different models.

MUSICA Ecosystem

Installation

MUSICA provides interfaces for multiple programming languages. Choose the installation method that best fits your needs:

Python

Python is the recommended interface for most users. Install via pip:

pip install musica

For detailed Python installation instructions, usage examples, and development information, see the Python README.

JavaScript

The JavaScript interface uses WebAssembly for cross-platform compatibility. It works in both Node.js and browser environments.

For detailed JavaScript installation instructions, usage examples, and development information, see the JavaScript README.

Fortran

The Fortran interface is designed for integration with Fortran-based atmospheric models.

For detailed Fortran installation instructions, usage examples, and development information, see the Fortran README.

C++ / CMake

For C++ development or building from source with full control over options:

Prerequisites

Minimum required packages:

  • cmake (>= 3.21)
  • pkg-config
  • netcdf
  • netcdf-fortran
  • blas
  • lapack

Building from Source

git clone https://github.com/NCAR/musica.git
cd musica
mkdir build
cd build
ccmake ..
make
make install

MUSICA automatically downloads and builds additional dependencies (pybind11, googletest, MICM, TUV-x, Mechanism Configuration, CARMA) using CMake's FetchContent. If you have these packages already installed where CMake can find them, they will be used instead of being downloaded.

Quick Start

Documentation and Resources

Official Documentation

Available grids

Pre-made grids for use in MUSICA are available here.

Developer Options

Specifying dependency versions via parameterization at configure time

Introduced in Pull Request #124, it is possible for developers to specify which versions of various dependencies should be used. These options are currently limited to those dependencies managed via FetchContent. This change allows for more easily testing musica against changes committed in different repositories and branches. The environmental variables introduced are outlined in the following table.

CMake Dependency Variables

Musica Dependency Repository Branch, Tag or Hash
Google Test GOOGLETEST_GIT_REPOSITORY GOOGLETEST_GIT_TAG
MICM MICM_GIT_REPOSITORY MICM_GIT_TAG
TUV-X TUVX_GIT_REPOSITORY TUVX_GIT_TAG
PyBind11 PYBIND11_GIT_REPOSITORY PYBIND11_GIT_TAG
Mechanism Configuration MECH_CONFIG_GIT_REPOSITORY MECH_CONFIG_GIT_TAG

Example Usage

The following examples assume the working directory is a build/ directory inside the musica source directory.

Specifying a different version of tuv-x, to ensure a change won't break anything.

$ cmake .. \
    -DTUVX_GIT_REPOSITORY="https://github.com/WardF/tuv-x.git" \
    -DTUVX_GIT_TAG=test-fix

Specifying a specific version of tuv-x by has, but using the official repository.

$ cmake .. \
    -DTUVX_GIT_TAG=a6b2c4d8745

Contributing

We welcome contributions from the community! Please see our Contributing Guide for information on how to get involved.

For a complete list of contributors and authors, see AUTHORS.md.

Citations

MUSICA can be cited in at least two ways:

  1. Cite the foundational paper that defines the vision of the MUSICA software:

    • Pfister et al., 2020, Bulletin of the American Meteorological Society
    • Use the following BibTeX entry:
      @Article { acom.software.musica-vision,
          author = "Gabriele G. Pfister and Sebastian D. Eastham and Avelino F. Arellano and Bernard Aumont and Kelley C. Barsanti and Mary C. Barth and Andrew Conley and Nicholas A. Davis and Louisa K. Emmons and Jerome D. Fast and Arlene M. Fiore and Benjamin Gaubert and Steve Goldhaber and Claire Granier and Georg A. Grell and Marc Guevara and Daven K. Henze and Alma Hodzic and Xiaohong Liu and Daniel R. Marsh and John J. Orlando and John M. C. Plane and Lorenzo M. Polvani and Karen H. Rosenlof and Allison L. Steiner and Daniel J. Jacob and Guy P. Brasseur",
          title = "The Multi-Scale Infrastructure for Chemistry and Aerosols (MUSICA)",
          journal = "Bulletin of the American Meteorological Society",
          year = "2020",
          publisher = "American Meteorological Society",
          address = "Boston MA, USA",
          volume = "101",
          number = "10",
          doi = "10.1175/BAMS-D-19-0331.1",
          pages= "E1743 - E1760",
          url = "https://journals.ametsoc.org/view/journals/bams/101/10/bamsD190331.xml"
      }
      
  2. Cite the MUSICA software and its evaluation (MUSICAv0):

    • Schwantes et al., 2022, Journal of Advances in Modeling Earth Systems
    • Use the following BibTeX entry:
      @Article{acom.software.musica,
          author = {Schwantes, Rebecca H. and Lacey, Forrest G. and Tilmes, Simone and Emmons, Louisa K. and Lauritzen, Peter H. and Walters, Stacy and Callaghan, Patrick and Zarzycki, Colin M. and Barth, Mary C. and Jo, Duseong S. and Bacmeister, Julio T. and Neale, Richard B. and Vitt, Francis and Kluzek, Erik and Roozitalab, Behrooz and Hall, Samuel R. and Ullmann, Kirk and Warneke, Carsten and Peischl, Jeff and Pollack, Ilana B. and Flocke, Frank and Wolfe, Glenn M. and Hanisco, Thomas F. and Keutsch, Frank N. and Kaiser, Jennifer and Bui, Thao Paul V. and Jimenez, Jose L. and Campuzano-Jost, Pedro and Apel, Eric C. and Hornbrook, Rebecca S. and Hills, Alan J. and Yuan, Bin and Wisthaler, Armin},
          title = {Evaluating the Impact of Chemical Complexity and Horizontal Resolution on Tropospheric Ozone Over the Conterminous US With a Global Variable Resolution Chemistry Model},
          journal = {Journal of Advances in Modeling Earth Systems},
          volume = {14},
          number = {6},
          pages = {e2021MS002889},
          doi = {https://doi.org/10.1029/2021MS002889},
          url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2021MS002889},
          eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2021MS002889},
          year = {2022}
      }
      

About

Multi-Scale Infrastructure for Chemistry Modeling

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 19