nekrom

Model-Order Reduction Framework for Nek5000

https://github.com/nek5000/nekrom

Science Score: 52.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
  • Academic email domains
  • Institutional organization owner
    Organization nek5000 has institutional domain (nek5000.mcs.anl.gov)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Model-Order Reduction Framework for Nek5000

Basic Info
  • Host: GitHub
  • Owner: Nek5000
  • License: mit
  • Language: Fortran
  • Default Branch: master
  • Homepage:
  • Size: 2.01 MB
Statistics
  • Stars: 16
  • Watchers: 5
  • Forks: 5
  • Open Issues: 60
  • Releases: 1
Created almost 8 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

readme.md

NekROM - Model Order Reduction Framework for Nek5000

This package include tools to help apply model-order reduction (MOR) to data produced by Nek5000 to generate reduced-order models (ROM). The generated ROMs can be run either in the Fortran driver embedded inside the Nek5000 userchk subroutine or can be run separately by provided driver scripts in Matlab, Python, and Julia. Users can also provide their own drivers which read the ROM operators and QOI factors from the ops/ and qoi/ directories.

Documentation

Documentation for NekROM is available at https://nekrom.readthedocs.io/en/latest/ or can be built locally following the instructions in doc/README.md.

Setup & Procedure

Set shell variables (in .bashrc for BASH users):

export MOR_DIR="/path/to/NekROM" export PATH="$MOR_DIR/bin:$PATH"

Required files in NekROM case directory:

  • Nek5000 case files e.g., .rea, .map, SIZE
  • \$caserom.usr, .usr file specific for NekROM cases (see $MOR_DIR/examples)
  • LMOR, specifies compile-time parameters
  • $case.mor, specifies run-time parameters
  • file.list, contains list of paths to the snapshots (relative path)

Optional file:

  • avg.list, contains list of paths to the average files

After ensuring the required files are in the case directory, run makerom $caserom to make a Nek5000 executable for ROM.

Parameters

Compile-time parameters (for setting memory allocation size) can be found in LMOR.

  • ls, maximum number of snapshots
  • lb, maximum number of total modes

run-time parameters can be found in $case.mor.

  • [general], header for general parameters
    • mode, off = offline, on = online, all = offline + online
    • field, v = velocity, t = temperature, vt = velocity + temperature
    • nb, number of POD modes (must be less than lb, default == lb)
  • [pod], header for pod parameters
    • type, l2 = $L^2$ POD modes, h10, $H^1_0$ POD modes
    • mode0, avg = average 0th mode, state = user-defined in ub,vb,wb,tb
    • augment, 0 = no ABM, 1 = 0th interactions, 2 = diagonals, 3 = 1 + 2
  • [qoi], header for qoi parameters
    • freq, frequency of QOI dump, if <1 freq=iostep
    • drag, drag based on OBJ data

Contribution

Our procedure for updating the code is exclusively through pull requests (no pushing). Please submit issues and PR to https://github.com/Nek5000/NekROM. PRs should be the smallest coherent change to the code-base. Issue titles should describe the issue e.g., 'Error in x', 'Missing x', etc. PR titles should describe the modification made e.g., 'Fixed x', 'Improved x, etc. See the documentation for the coding style of this project when contributing.

Parameter File Support

In addition to the .rea support for setting internal parameters, .mor files are supported for par-like dictionary. The possible key/values are described in templates/mpar.template.

Owner

  • Name: NEK
  • Login: Nek5000
  • Kind: organization

fast high-order scaleable CFD

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: NekROM
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Kento
    family-names: Kaneko
    email: kento.kaneko@epfl.ch
    affiliation: EPFL
  - given-names: Ping-Hsuan
    family-names: Tsai
    email: pinghsuan@vt.edu
    affiliation: Virginia Tech
    orcid: 'https://orcid.org/0009-0003-2388-7580'
  - given-names: Nicholas
    family-names: Christensen
    email: njchris2@illinois.edu
    affiliation: University of Illinois at Urbana-Champaign
  - given-names: Paul
    family-names: Fischer
    email: fischerp@illinois.edu
    affiliation: University of Illinois at Urbana-Champaign
repository-code: 'https://github.com/Nek5000/NekROM'
abstract: >-
  This package include tools to help apply model-order
  reduction (MOR) to data produced by Nek5000 to generate
  reduced-order models (ROM). The generated ROMs can be run
  either in the Fortran driver embedded inside the Nek5000
  userchk subroutine or can be run separately by provided
  driver scripts in Matlab, Python, and Julia. Users can
  also provide their own drivers which read the ROM
  operators and QOI factors from the ops/ and qoi/
  directories.
keywords:
  - Model order reduction
  - Spectral element method
  - Boussinesq
license: MIT
date-released: '2025-03-10'

GitHub Events

Total
  • Issues event: 12
  • Watch event: 4
  • Delete event: 3
  • Issue comment event: 31
  • Push event: 87
  • Pull request review comment event: 7
  • Pull request review event: 14
  • Pull request event: 36
  • Fork event: 2
  • Create event: 15
Last Year
  • Issues event: 12
  • Watch event: 4
  • Delete event: 3
  • Issue comment event: 31
  • Push event: 87
  • Pull request review comment event: 7
  • Pull request review event: 14
  • Pull request event: 36
  • Fork event: 2
  • Create event: 15

Dependencies

.github/workflows/integ.yml actions
  • actions/checkout v2 composite
.github/workflows/integ_t.yaml actions
  • actions/checkout v2 composite
.github/workflows/unit.yml actions
  • actions/checkout v2 composite
.github/workflows/unit_rbf.yaml actions
  • actions/checkout v2 composite
.github/workflows/unit_rf.yaml actions
  • actions/checkout v2 composite