librom
Data-driven model reduction library with an emphasis on large scale parallelism and linear subspace methods
Science Score: 62.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
32 of 46 committers (69.6%) from academic institutions -
✓Institutional organization owner
Organization llnl has institutional domain (software.llnl.gov) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (18.8%) to scientific vocabulary
Keywords
Repository
Data-driven model reduction library with an emphasis on large scale parallelism and linear subspace methods
Basic Info
- Host: GitHub
- Owner: LLNL
- License: other
- Language: C++
- Default Branch: master
- Homepage: https://www.librom.net
- Size: 54.5 MB
Statistics
- Stars: 222
- Watchers: 21
- Forks: 40
- Open Issues: 45
- Releases: 1
Topics
Metadata Files
README.md

Introduction
libROM is a free, lightweight, scalable C++ library for data-driven physical simulation methods from the intrusive projection-based reduced order models to non-intrusive black-box approaches.
The best starting point for new users interested in libROM's features is to review the examples. The code documentation provides more details about libROM's classes and functions.
Features
- Dynamic data collection
- Dynamic mode decomposition (DMD)
- Data compression
- Physics-informed greedy algorithm
- Projection-based hyper-reduction
- EQP: quadrature-based hyper-reduction sampling algorithm
- Python interface
Features to be added
Installation
To compile libROM with default build settings (Mac and LLNL LC Machines):
sh
./scripts/compile.sh
Compilation options:
- -a: Compile a special build for the LLNL codebase: Ardra
- -d: Compile in debug mode.
- -f: Specify additional compiler flags
- -m: Compile with MFEM (required to run the libROM examples)
- -g: Compile MFEM with GSLib (requires -m)
- -r: Compile unit tests (requires Googletest)
- -s: Compile and use a local SCALAPACK
- -t: Use your own cmake/toolchain
- -u: Update all of libROM's dependencies.
Compiling on LC Machines
libROM provides several CMake toolchains which can be used to compile on LLNL LC machines. For more information on installing and using libROM on specific LC machines, refer to this wiki page.
Installing via Spack
There is a Spack package for libROM; however, the version it installs is the latest public release. See the spack documentation for details on how to use Spack.
To install libROM with default options using spack.
sh
spack install librom
To install libROM with MFEM using spack.
sh
spack install librom +mfem
Compiling and linking with libROM
To compile and link an existing code with libROM, follow these steps:
- Add libROM/lib to the include path
sh -I/path/to/libROM/lib - Add the following to the linker flags (LDFLAGS)
sh -Wl,-rpath,/path/to/libROM/build/lib -L/path/to/libROM/build/lib - Add the following library
sh -lROM
For example,
sh
mpicxx myapp.cpp -I/path/to/libROM/lib -Wl,-rpath,/path/to/libROM/build/lib -L/path/to/libROM/build/lib -lROM -o myapp.out
Using Docker container
Docker container librom_env provides a containerized environment with all the prerequisites for libROM. For instruction on how to use it, check out the wiki page.
libROM CI
libROM leverages GitHub Actions for CI. The CI currently applies only to commits to pull requests. Unit tests run for all PR commits. Upon the addition of the LGTM label, both the unit tests and regression tests run. While the LGTM label is still present, all subsequent commits run both unit tests and regression tests.
To compile and run unit tests locally, build using the -r option to compile.sh or with -DENABLE_TESTS=ON. Building the unit tests will require Googletest to be installed. Unit tests can be run using ctest from the root build directory.
License
libROM is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Users may choose either license at their option.
All new contributions must be made under both the MIT and Apache-2.0 licenses.
See LICENSE-MIT, LICENSE-APACHE, COPYRIGHT, and NOTICE for details.
Up to commit 299876e0a0304f25db56f1f9e2eb2c61ef199048, libROM was previously released under the terms of the BSD-3 license.
SPDX_License-Identifier: (Apache-2.0 OR MIT)
LLNL-CODE-686965 (up to commit 299876e0a0304f25db56f1f9e2eb2c61ef199048) LLNL-CODE-766763
Authors
- Robert W. Anderson (LLNL)
- William Anderson (LLNL)
- William Arrighi (LLNL)
- Kyle Chand (LLNL)
- Siu Wun Cheung (LLNL)
- Eric Chin (LLNL)
- Youngsoo Choi (LLNL)
- "Kevin" Seung Whan Chung (LLNL)
- Dylan Copeland (LLNL)
- William Fries (University of Arizona)
- Debojyoti Ghosh (LLNL)
- Xiaolong He (UC San Diego)
- Adrian Humphry (University of Toronto)
- Kevin Huynh (LLNL)
- Coleman Kendrick (LLNL)
- Minji Kim (UNC)
- Tanya Kostova-Vassilevska (LLNL)
- Axel Larsson (Princeton)
- Jessica Lauzon (LLNL)
- Jacob Lotz (TUDelft)
- Sean McBane (UT Austin)
- Geoffrey Oxberry (LLNL)
- Yeonjong Shin (KAIST)
- Seung Won Suh (UIUC)
- Paul Tranquilli (LLNL)
- Chris Vales (Dartmouth)
- Pranav Vempati (LLNL)
- Masayuki Yano (University of Toronto)
Owner
- Name: Lawrence Livermore National Laboratory
- Login: LLNL
- Kind: organization
- Email: github-admin@llnl.gov
- Location: Livermore, CA, USA
- Website: https://software.llnl.gov
- Twitter: LLNL_OpenSource
- Repositories: 520
- Profile: https://github.com/LLNL
For over 70 years, the Lawrence Livermore National Laboratory has applied science and technology to make the world a safer place.
Citation (CITATION.cff)
icff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Choi" given-names: "Youngsoo" - family-names: "Arrighi" given-names: "William J." - family-names: "Copeland" given-names: "Dylan M." - family-names: "Anderson" given-names: "Robert W." - family-names: "Oxberry" given-names: "Geoffrey M." title: "libROM" version: 1.0.0 doi: 10.11578/dc.20190408.3, date-released: 2019-10-17 url: "https://github.com/LLNL/libROM"
GitHub Events
Total
- Issues event: 9
- Watch event: 18
- Delete event: 7
- Issue comment event: 9
- Push event: 24
- Pull request review comment event: 39
- Pull request review event: 48
- Pull request event: 14
- Fork event: 3
- Create event: 5
Last Year
- Issues event: 9
- Watch event: 18
- Delete event: 7
- Issue comment event: 9
- Push event: 24
- Pull request review comment event: 39
- Pull request review event: 48
- Pull request event: 14
- Fork event: 3
- Create event: 5
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Geoffrey Malcolm Oxberry | g****y@g****m | 237 |
| Kevin Huy-Khoa Huynh | h****4@l****v | 107 |
| Dylan Copeland | c****1@l****v | 80 |
| Jessie Lauzon | j****n@g****m | 61 |
| Siu Wun Cheung | c****6@l****v | 38 |
| arrighi2 | a****2@6****5 | 35 |
| rollbackcc | k****h@g****m | 21 |
| Sean McBane | s****e@p****m | 20 |
| Youngsoo Choi | c****5@l****v | 19 |
| Bill Arrighi | a****2@l****v | 19 |
| Kevin" Seung Whan Chung | d****8@g****m | 18 |
| William J. Arrighi | a****2@c****v | 17 |
| Coleman Kendrick | 6****k | 15 |
| William J. Arrighi | a****2@c****v | 14 |
| William J. Arrighi | a****2@s****v | 12 |
| William J. Arrighi | a****2@s****v | 11 |
| Youngsoo Choi | c****5@r****v | 9 |
| William J. Arrighi | a****2@s****v | 7 |
| Pranav Vempati | p****i@g****m | 7 |
| William J. Arrighi | a****2@r****v | 7 |
| William J. Arrighi | a****2@c****v | 7 |
| Youngsoo Choi | c****5@r****v | 6 |
| William J. Arrighi | a****2@s****v | 6 |
| William J. Arrighi | a****2@s****v | 6 |
| Chris Vales | c****8@u****u | 5 |
| Eric B. Chin | c****3@l****v | 5 |
| William J. Arrighi | a****2@s****v | 5 |
| William J. Arrighi | a****2@r****v | 5 |
| William J. Arrighi | a****2@s****v | 4 |
| William Anderson | 5****1 | 4 |
| and 16 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 50
- Total pull requests: 189
- Average time to close issues: 4 months
- Average time to close pull requests: about 1 month
- Total issue authors: 12
- Total pull request authors: 19
- Average comments per issue: 2.24
- Average comments per pull request: 1.51
- Merged pull requests: 154
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 15
- Average time to close issues: about 1 month
- Average time to close pull requests: 8 days
- Issue authors: 5
- Pull request authors: 7
- Average comments per issue: 0.13
- Average comments per pull request: 0.93
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- gokhalen (16)
- dreamer2368 (10)
- JacobLotz (8)
- YuDe95 (4)
- axla-io (4)
- chldkdtn (2)
- goxberry (1)
- sanguinariojoe (1)
- chunyu79 (1)
- hsllo (1)
- nnpp-schneier (1)
- siuwuncheung (1)
Pull Request Authors
- siuwuncheung (38)
- dylan-copeland (29)
- ckendrick (28)
- dreamer2368 (26)
- kevinhkhuynh (11)
- pranav-vempati (10)
- axla-io (7)
- chldkdtn (6)
- ptranq (6)
- cval26 (6)
- andersonw1 (5)
- ebchin (5)
- xiaolong7 (3)
- swsuh28 (3)
- sanguinariojoe (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
spack.io: librom
libROM: library for computing large-scale reduced order models
- Homepage: https://github.com/LLNL/libROM
- License: []
-
Latest release: develop
published almost 4 years ago
Rankings
Dependencies
- ./.github/workflows/run_tests * composite
- actions/checkout v3 composite
- pierotofy/set-swap-space master composite
- styfle/cancel-workflow-action 0.11.0 composite
- Ana06/get-changed-files v2.2.0 composite
- actions/checkout v3 composite
- docker/build-push-action v3 composite
- docker/login-action v2 composite
- docker/metadata-action v4 composite
- ubuntu 22.04 build