Coder Social home page Coder Social logo

llnl / scaleuprom Goto Github PK

View Code? Open in Web Editor NEW
11.0 6.0 4.0 7.9 MB

Scalable Reduced Order Model with Discontinuous Galerkin Domain Decomposition

License: MIT License

CMake 2.71% C++ 89.09% MATLAB 1.13% Python 4.92% GLSL 1.67% Dockerfile 0.18% Shell 0.29%
math-physics

scaleuprom's Introduction

Introduction

scaleupROM is a projection-based reduced order model (ROM) with discontinuous Galerkin domain decomposition (DG-DD). It aims to construct a robust, efficient, large-scale ROM that is trained only from small scale component samples, for various physics partial differential equations. scaleupROM is mainly built upon MFEM and libROM.

Features

  • Discontinuous Galerkin domain decomposition
  • Projection-based reduced order model
  • EQP for nonlinear partial differential equations
  • Supporting physics equations:
    • Poisson equation
    • Stokes flow
    • Steady Navier-Stokes flow
    • Linear elasticity

Features to be added

  • Nonlinear elasticity
  • Time-dependent Navier-Stokes flow

Installation

Prerequisites

Instruction

See the wiki page for the detailed instruction.

For LC dane, the installation script is provided. You can simply run:

./script/install_dane.bash

Using Docker container

Docker container scaleuprom_env provides a containerized environment with all the prerequisites for scaleupROM:

License

scaleupROM is distributed under the MIT license. For more details, see the LICENSE File.

SPDX-License-Identifier: MIT

LLNL-CODE-857975

Authors

  • "Kevin" Seung Whan Chung (LLNL)
  • Youngsoo Choi (LLNL)
  • Pratanu Roy (LLNL)
  • Thomas Moore (QUT)
  • Thomas Roy (LLNL)
  • Tiras Y. Lin (LLNL)
  • Sarah E. Baker (LLNL)
  • Axel Larsson (Princeton)
  • Cole Kendrick (LLNL)

scaleuprom's People

Contributors

chldkdtn avatar ckendrick avatar dreamer2368 avatar larsson4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

scaleuprom's Issues

Potential bug in `gmsh2mfem`

Hi, I'm encountering an error when running
This gives an error:
First create the lshape.msh file by opening lshape.msh in Gmsh and saving, then run from the utilities folder
./gmsh2mfem -m gmsh/lshape.msh -o 1

Gives me the output:
./gmsh2mfem: error while loading shared libraries: libmfem.so.4.5.2: cannot open shared object file: No such file or directory

Fully discontinuous-Galerkin formulation for steady Navier-Stokes flow

Current discretization for steady Navier-Stokes flow employs DG method only for viscous interface constraint. When the DG method is fully employed over all interior faces, the convergence rate becomes sub-optimal. The proper full-DG formulation for steady NS flow isn't figured out yet.

Lighten/improve the infrastructure

Several milestones to lighten/improve the infrastructure of the code:

Remove TrainMode

TrainMode::INDIVIDUAL refers to training POD basis per individual subdomain. Even if some subdomains are of the same component, they collect different snapshots and train different POD basis.

In actual production runs, TrainMode::INDIVIDUAL is not really used any more. Furthermore, the same feature can be executed from TrainMode::UNIVERSAL, just using the same mesh for two different components (at the different location). For SubmeshTopologyHandler, this means we're having the same number of components as the number of subdomains, as opposed to one component representing all subdomains.

Having two (unnecessary) different modes and supporting them throughout the workflow is complicating the overall code. The overall structure can be lightened by removing this feature.

Datatype for BasisTag

Unlike single-component ROM, ROM basis for multi-component system has multiple tags: by its component, by variable. The aforementioned TrainMode also changes the component name, further complicating the code.

Considering a future development for interior/interface basis separation, we would want to make a struct for basis tag, containing its component, variable, etc.

Implementation of changing lambdas and mus over subdomain interface

void LinElastSolver::BuildDomainOperators()
{
   // SanityCheckOnCoeffs();
   as.SetSize(numSub);
 
   for (int m = 0; m < numSub; m++)
   {
      as[m] = new BilinearForm(fes[m]);
      as[m]->AddDomainIntegrator(new ElasticityIntegrator(*(lambda_c[m]), *(mu_c[m])));
 
      if (full_dg)
      {
         as[m]->AddInteriorFaceIntegrator(
             new DGElasticityIntegrator(*(lambda_c[m]), *(mu_c[m]), alpha, kappa));
      }
   }
 
   a_itf = new InterfaceForm(meshes, fes, topol_handler); 
   a_itf->AddIntefaceIntegrator(new InterfaceDGElasticityIntegrator(lambda_c[0], mu_c[0], alpha, kappa));
}

How should the last line be handled?

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.