librom

Data-driven model reduction library with an emphasis on large scale parallelism and linear subspace methods

https://github.com/llnl/librom

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

large-scale math-physics model-reduction modeling parallel-computing reduced-order-models scientific simulation subspace-learning
Last synced: 6 months ago · JSON representation ·

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
large-scale math-physics model-reduction modeling parallel-computing reduced-order-models scientific simulation subspace-learning
Created almost 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation Notice Copyright

README.md

libROM Logo

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

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

All Time
  • Total Commits: 834
  • Total Committers: 46
  • Avg Commits per committer: 18.13
  • Development Distribution Score (DDS): 0.716
Past Year
  • Commits: 21
  • Committers: 7
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.714
Top Committers
Name Email 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...

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
question (6) enhancement (5) help wanted (5) bug (4) RFR (3)
Pull Request Labels
RFR (132) enhancement (21) bug (10) WIP (8) Test (5) LGTM (4) invalid (1)

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

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 17.3%
Forks count: 18.1%
Average: 23.2%
Dependent packages count: 57.3%
Last synced: 6 months ago

Dependencies

.github/workflows/checkout_repo/action.yml actions
.github/workflows/ci.yml actions
  • ./.github/workflows/run_tests * composite
  • actions/checkout v3 composite
  • pierotofy/set-swap-space master composite
  • styfle/cancel-workflow-action 0.11.0 composite
.github/workflows/docker.yml actions
  • 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
.github/workflows/run_tests/action.yml actions
docker/Dockerfile docker
  • ubuntu 22.04 build