-
Notifications
You must be signed in to change notification settings - Fork 18
Installation and Setup
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.
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.
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.
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
When the download process is finished, shut down the endpoint server with the following command.
$ ./globusconnectpersonal -stop
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.