Skip to content
/ libROM Public
forked from LLNL/libROM

Model reduction library with an emphasis on large scale parallelism and linear subspace methods

License

Notifications You must be signed in to change notification settings

axla-io/libROM

 
 

Repository files navigation

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.

Features

  • Dynamic data collection
  • Dynamic mode decomposition (DMD)
  • Data compression
  • Physics-informed greedy algorithm
  • Projection-based hyper-reduction

Features to be added

  • EQP: quadrature-based hyper-reduction sampling algorithm
  • Python interface

Installation

To compile libROM with default build settings (Mac and LLNL LC Machines):

 ./scripts/compile.sh

Compilation options:

  • -a: Compile a special build for the LLNL codebase: Ardra
  • -d: Compile in debug mode.
  • -m: Compile with MFEM (required to run the libROM examples)
  • -t: Use your own cmake/toolchain
  • -u: Update all of libROM's dependencies.

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.

 spack install librom

To install libROM with MFEM using spack.

 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
 -I/path/to/libROM/lib
  • Add the following to the linker flags (LDFLAGS)
 -Wl,-rpath,/path/to/libROM/build/lib -L/path/to/libROM/build/lib
  • Add the following library
 -lROM

For example,

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

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 Arrighi (LLNL)
  • Kyle Chand (LLNL)
  • Siu Wun Cheung (LLNL)
  • Eric Chin (LLNL)
  • Youngsoo Choi (LLNL)
  • Dylan Copeland (LLNL)
  • William Fries (University of Arizona)
  • Debojyoti Ghosh (LLNL)
  • Xiaolong He (UC San Diego)
  • Kevin Huynh (LLNL)
  • Tanya Kostova-Vassilevska (LLNL)
  • Jessica Lauzon (Stanford)
  • Sean McBane (UT Austin)
  • Yeonjong Shin (KAIST)
  • Geoffrey Oxberry (LLNL)

About

Model reduction library with an emphasis on large scale parallelism and linear subspace methods

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 89.0%
  • CMake 4.3%
  • Fortran 2.9%
  • C 2.0%
  • Other 1.8%