Coder Social home page Coder Social logo

jacoblotz / librom-fork Goto Github PK

View Code? Open in Web Editor NEW

This project forked from llnl/librom

0.0 0.0 0.0 55.3 MB

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

Home Page: https://www.librom.net

License: Other

Shell 2.71% C++ 88.33% C 1.59% Fortran 2.31% MATLAB 0.79% CMake 3.84% Dockerfile 0.43%

librom-fork's Introduction

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

Features to be added

  • 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

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.

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)
  • "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)
  • Tanya Kostova-Vassilevska (LLNL)
  • Jessica Lauzon (Stanford)
  • Sean McBane (UT Austin)
  • Yeonjong Shin (KAIST)
  • Geoffrey Oxberry (LLNL)
  • Pranav Vempati (LLNL)
  • Masayuki Yano (University of Toronto)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.