Skip to content

Installation and Setup

Shane edited this page Feb 4, 2021 · 6 revisions

This page walks through downloading the code and the associated data files.

For this walkthrough, we assume the (small) code files are to be placed in a folder ~/Desktop/combustion/ and the (large) data files are to be placed in a folder /storage/combustion/. In the code examples, $ indicates the command line.

Download the Code

The preferred way to use and contribute to this repository is to create a fork of the source repository Willcox-Research-Group/ROM-OpInf-Combustion-2D, then create a local clone of the new fork. On the command line, run

$ git clone https://<username>@github.com/<username>/ROM-OpInf-Combustion-2D.git ~/Desktop/combustion

where <username> is your GitHub username.

To get updates to the code, set the source repository as an upstream remote:

$ cd ~/Desktop/combustion
$ git remote add upstream https://github.com/Willcox-Research-Group/ROM-OpInf-Combustion-2D.git
$ git config --local pull.rebase false

The following commands then update the repository.

$ cd ~/Desktop/combustion       # Navigate to the folder.
$ git checkout master           # Switch to the main branch.
$ git pull upstream master      # Pull updates from the source repository.

Install Dependencies

This repository requires Python 3 and is built on standard packages in the SciPy ecosystem, namely numpy, scipy, h5py, and matplotlib. The central parts of the code also use the rom_operator_inference. All dependencies are listed in requirements.txt and can be installed via pip.

$ python3 -m pip install --upgrade pip
$ python3 -m pip install -r ~/Desktop/combustion/requirements.txt

See the dependency graph for package version requirements.

Download GEMS Data from Globus

A dataset [3] of 30,000 high-fidelity solution snapshots produced by the General Equation and Mesh Solver (GEMS) is publicly available and hosted by Globus. See this page and the Globus docs for login instructions. To transfer the data set, the machine that will host it locally must first be set up as a globus endpoint. The following shell commands summarize the process.

# Create the data folder if needed.
$ mkdir -p /storage/combustion

# Download the latest version of the Globus personal client (e.g., for a Linux machine).
$ wget https://downloads.globus.org/globus-connect-personal/linux/stable/globusconnectpersonal-latest.tgz
$ tar -vzxf globusconnectpersonal-latest.tgz     # Unpack the archive.
$ cd globusconnectpersonal-*                     # Enter the created folder.

# Set up the endpoint. This requires an auth code from Globus online.
$ ./globusconnectpersonal -setup --no-gui

# Start the endpoint server.
$ nohup ./globusconnectpersonal -start -restrict-paths rw/storage/combustion &

At this point, select the following files from the collection on Globus to transfer to the endpoint:

  • grid.dat
  • Data_150000to159999.tar
  • Data_160000to169999.tar
  • Data_170000to179999.tar
  • Data_180000to189999.tar
  • Data_190000to199999.tar
  • Data_200000to209999.tar
  • Data_210000to219999.tar

Download Data from Globus

When the download process is finished, shut down the endpoint server with the following command.

$ ./globusconnectpersonal -stop

Code Configuration

In config.py, set the BASE_FOLDER variable to the directory where the processed data should be placed, preferably as an absolute path. This can be the folder containing the raw .tar data files or another folder.

# In ~/Desktop/combustion/config.py

BASE_FOLDER = "/storage/combustion"

This folder must exist in order for the code to run.

Problem Statement: computational domain, state variables, and description of the data.

Installation and Setup: how to download the source code and the data files.

File Summary: short descriptions of each file in the repository.

Documentation: how to use the repository for reduced-order model learning.

Results: plots and figures, including many additional results that are not in the publications.

References: short list of primary references.

Clone this wiki locally