Skip to content

Merge jzh/dev to master #26

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,120 @@ Built using [Minimal Mistakes](https://github.com/mmistakes/minimal-mistakes) an

This repository contains all the code for the blastnet.github.io website. Most of the Minimal Mistakes features and layouts are not used (and will likely never be used) and so they have been removed for a smoother and lighter build experience. Yet, some new features like the data counters have also been added. Therefore, please read this documentation carefully.

## Getting started

In order to build the site, a local installation of [Jekyll](https://jekyllrb.com) and [Ruby](https://www.ruby-lang.org/en/) is required.

### MacOS

MacOS comes preinstalled with Ruby, but it is generally not recommended to use the system Ruby. Therefore, first install `chruby` and `ruby-install` with [Homebrew](https://brew.sh/) (if you don't have Homebrew on your Mac, install that first!).
```bash
brew install chruby ruby-install
```

Now, install a stable version of Ruby (e.g. 3.4.1):
```bash
ruby-install ruby 3.4.1
```

Configure the shell to automatically use `chruby` so that the system Ruby will not cause issues:
```bash
echo "source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh" >> ~/.zshrc
echo "source $(brew --prefix)/opt/chruby/share/chruby/auto.sh" >> ~/.zshrc
echo "chruby ruby-3.4.1" >> ~/.zshrc # run 'chruby' to see actual version
```

Finally, **quit and relaunch the terminal**, then verify Ruby is working (`ruby -v`) and install Jekyll:
```bash
gem install jekyll
```

### Linux (Debian, Ubuntu, Mint)

Linux OS generally does not come preinstalled with Ruby, so you will need to install it yourself. Personally, I recommend using a Ruby manager like `rvm`, but you can just install the Ruby library and other prerequisites like so:
```bash
sudo apt-get install ruby-full build-essential zlib1g-dev
```

It is recommended to install gems (packages) on a user basis, running these lines of code in terminal will set this up (optional):
```bash
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```

Install Jekyll and Bundler:
```
gem install jekyll bundler
```

### Windows

Install RubyInstaller for Windows from https://rubyinstaller.org/downloads/ and ensure that you tick ridk install at the end to install MSYS2 and development tools. Click Enter twice. If you did not tick, then open a session in Powershell and type:
```
ridk install
```

In Powershell, verify installation with
```ruby -v
gem -v
```

Install Jekyll and the bundler with
```
gem install jekyll bundler
```

---

## Building the site

First, clone the repository:
```bash
git clone https://github.com/ihmegroup/website
```

You can also fork the repository and clone that, if you prefer.

Then, `cd website` and install dependencies:
```bash
bundle install
```

The site is now ready to be built using the following command:
```bash
bundle exec jekyll build
```

If you'd like to preview, you can also run
```bash
bundle exec jekyll serve
```
which will build the site and run a daemon on your local machine.

There are some options/flags that this command takes, the most pertinent of which is `--livereload` (which will cause the browser to refresh every time the site is rebuilt, i.e., every time a file is updated). If you run into an error saying the port is unavailable, chances are that you have another instance of Jekyll running already (either because you are also working on another site at the moment, or because you forgot to terminate Jekyll the last time). If you'd like to work on multiple Jekyll sites at the same time, you can specify a different port (e.g. `--port 4001`). The default port is `4000`, so to preview the site in your browser, enter the URL `localhost:4000`.

### Important

Make sure to correctly set the `url` and `baseurl` fields in `_config.yml` before building the webpage. The url should be `fxlab.stanford.edu` and baseurl blank, do not delete it.

---

## Pushing to production

**Never push to production on Fridays!** (jk)

Once the site has been built, all the relevant files will be in the `_site` folder, ready to be uploaded to the Stanford domain. I also recommend cleaning up the CSS to remove unused classes, which speeds up loading time and reduces filesize, this can be done by running

```bash
purgecss -c purgecss.config.js
```
which will replace the CSS files in the `_site/assets/css/` folder with the purged css files.

If using Github pages, simply run `bundle exec jekyll clean` to remove the build files, then commit changes and push to the `main` branch. I do recommend making major code-breaking or other stylistic changes on a development branch or fork, before making a pull request to the main branch.

---

## Steps to add new dataset to BlastNet

1. Upload all data to Kaggle
Expand Down
91 changes: 91 additions & 0 deletions _datasets/ho2024.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
layout: datapage
excerpt: (4 cases)
title: H2/CH4 Turbulent Jet Flows
description: H2/CH4 Fuel Mixtures, Turbulent Round Jet Premixed Flame DNS
header:
teaser: /assets/img/ho2024_ico.png
categories: reacting
---

<div class="sidebar__right" style="top:200px; text-align: center;">
<img src="./assets/img/ho2024.png" alt="Image 1">
</div>

## Description

The DNS configurations by Ho et al. [1] investigates four turbulent round jet flames fueled by 0, 10, 50, and 80% hydrogen by volume, with the rest by methane, while maintaining the jet Reynolds number at 10,300. The jet is preheated to 450 K and the coflow is set to the adiabatic combustion products. The setup is initialized with combustion products at adiabatic flame temperature and at atmospheric pressure. A reduced mechanism with Quasi-Steady State chemistry is used, resulting in 16 transported species and 7 QSS species. The original simulation domain size is 25D×16D×16D, though note that the sponge layer data has been removed from this dataset, resulting in a 19.3D×5D×5D domain. After removal of the sponge layer, the grid sizes are 1739×620×620, 1749×486×486, 1730×571×571, and 1831×654×654 for the H0, H10, H50, and H80 cases, respectively. Five snapshots of each case is provided.

The DNS is performed using the code NTMIX-CHEMKIN, which solves fully compressible Navier-Stokes equations along with energy and species conservation equations in Cartesian coordinates. The solver uses an eight-order explicit central spatial difference scheme and a third-order Runge-Kutta time integration scheme. Ideal gas law and mixture-averaged species-specific properties are used for the simulations. Further details of the DNS configuration and solver are provided in Ho et al. [1].

## Quick Info
* Contributors: Jen Zen Ho, Mohsen Talei
* <a href="https://doi.org/10.1016/j.ijhydene.2024.07.283">DOI</a>
* <a href="./assets/bib/ho2024.bib">.bib</a>

## Links to different cases

<script src="./assets/js/table.js"></script>

<table align="center">
<tr class="header">
<th style="width:2%;">ID</th>
<th style="width:10%;">Conditions</th>
<!-- <th style="width:60%;">TPY</th> -->
<!-- <th style="width:8%;">Grid</th> -->
<th style="width:10%;">Size (GB)</th>
<!-- <th style="width:60%;">Article</th> -->
<th style="width:8%;">Links</th>
</tr>
<tr>
<td align="center"> 0 </td>
<td align="center">0% H<sub>2</sub> 100% CH<sub>4</sub></td>
<td align="center">790</td>
<td align="center">
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h0-1">Kaggle<sub>1</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h0-1-info.json">info.json<sub>1</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h0-2">Kaggle<sub>2</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h0-2-info.json">info.json<sub>2</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h0-3">Kaggle<sub>3</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h0-3-info.json">info.json<sub>3</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h0-4">Kaggle<sub>4</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h0-4-info.json">info.json<sub>4</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h0-5">Kaggle<sub>5</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h0-5-info.json">info.json<sub>5</sub></a><BR>
</td>
</tr>
<tr>
<td align="center"> 1 </td>
<td align="center">10% H<sub>2</sub> 90% CH<sub>4</sub></td>
<td align="center">490</td>
<td align="center">
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h10-1">Kaggle<sub>1</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h10-1-info.json">info.json<sub>1</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h10-2">Kaggle<sub>2</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h10-2-info.json">info.json<sub>2</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h10-3">Kaggle<sub>3</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h10-3-info.json">info.json<sub>3</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h10-4">Kaggle<sub>4</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h10-4-info.json">info.json<sub>4</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h10-5">Kaggle<sub>5</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h10-5-info.json">info.json<sub>5</sub></a><BR>
</td>
</tr>
<tr>
<td align="center"> 2 </td>
<td align="center">50% H<sub>2</sub> 50% CH<sub>4</sub></td>
<td align="center">654</td>
<td align="center">
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h50-1">Kaggle<sub>1</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h50-1-info.json">info.json<sub>1</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h50-2">Kaggle<sub>2</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h50-2-info.json">info.json<sub>2</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h50-3">Kaggle<sub>3</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h50-3-info.json">info.json<sub>3</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h50-4">Kaggle<sub>4</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h50-4-info.json">info.json<sub>4</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h50-5">Kaggle<sub>5</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h50-5-info.json">info.json<sub>5</sub></a><BR>
</td>
</tr>
<tr>
<td align="center"> 3 </td>
<td align="center">80% H<sub>2</sub> 20% CH<sub>4</sub></td>
<td align="center">878</td>
<td align="center">
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h80-1">Kaggle<sub>1</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h80-1-info.json">info.json<sub>1</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h80-2">Kaggle<sub>2</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h80-2-info.json">info.json<sub>2</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h80-3">Kaggle<sub>3</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h80-3-info.json">info.json<sub>3</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h80-4">Kaggle<sub>4</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h80-4-info.json">info.json<sub>4</sub></a><BR>
<a href="https://www.kaggle.com/datasets/blastnet/h2ch4-jet-h80-5">Kaggle<sub>5</sub></a>, <a href="./assets/json/ho2024/h2ch4-jet-h80-5-info.json">info.json<sub>5</sub></a><BR>
</td>
</tr>
</table>

## References
[1]. J. Z. Ho, M. Talei, and R. L. Gordon. Direct numerical simulation of stoichiometric hydrogen/methane premixed jet flames. International Journal of Hydrogen Energy 81, pp. 831-841 (2024).
13 changes: 13 additions & 0 deletions assets/bib/ho2024.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
@article{hoDirectNumericalSimulation2024,
title = {Direct Numerical Simulation of Stoichiometric Hydrogen/Methane Premixed Jet Flames},
author = {Ho, Jen Zen and Talei, Mohsen and Gordon, Robert L.},
year = {2024},
month = sep,
journal = {International Journal of Hydrogen Energy},
volume = {81},
pages = {831--841},
issn = {03603199},
doi = {10.1016/j.ijhydene.2024.07.283},
urldate = {2024-08-06},
langid = {english}
}
Binary file added assets/img/ho2024.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/ho2024_ico.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/ico_creation_tool.pptx
Binary file not shown.
92 changes: 92 additions & 0 deletions assets/json/ho2024/h2ch4-jet-h0-1-info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"global": {
"dataset_id": "H0_1",
"Nxyz": [
1739,
620,
620
],
"snapshots": 1,
"time-step [s]": 0.0042147965522166065,
"variables": [
"RHO_kgm-3",
"UX_ms-1",
"UY_ms-1",
"UZ_ms-1",
"ET_m2s-2",
"P_Pa",
"YN2",
"YH2",
"YH",
"YO",
"YO2",
"YOH",
"YH2O",
"YHO2",
"YH2O2",
"YCO",
"YCO2",
"YCH3",
"YCH4",
"YCH2O",
"YC2H4",
"YC2H6"
],
"compression": "None",
"grid": {
"x": "./grid/X_m.dat",
"y": "./grid/Y_m.dat",
"z": "./grid/Z_m.dat"
},
"bc": {
"Ujet": "Injected turbulence using Taylors hypothesis with Re_j = 10300, ux_rms/u_centerline = 0.04, l_t = 0.3D, D = 2.3e-3 m",
"Ucoflow": "2% of the mean jet velocity",
"Tjet [K]": 450,
"Tcoflow": "Adiabatic flame temperature",
"Pamb [Pa]": 101325,
"Mixture": "100% CH4, Equivalence ratio = 1"
},
"ic": {
"UX": "Coflow velocity",
"T": "Adiabatic flame temperature",
"Pamb [Pa]": 101325,
"Mixture": "Burnt gas"
},
"doi": "https://doi.org/10.1016/j.ijhydene.2024.07.283",
"contributors": "Jen Zen Ho and Mohsen Talei",
"description": "Turbulent Round jet CH4-air Premixed Flame DNS",
"chem_thermo_tran": {
"fortran_f90": "./chem_thermo_tran/QSS_NPR_RFFCM.F90",
"reaction-less_cti": "./chem_thermo_tran/QSS_RFFCM.cti",
"before-QSS_cti": "./chem_thermo_tran/RFFCM.cti"
},
"notes": "Sponge layers removed from this data. Inlet sponge x_end = 0.7D, outlet sponge x_start = 20D, yz_sponge = 5D. A mechanism with QSS was used for the simulation - this is the Fortran F90 file. In addition, a reaction-less cti file is given for convenience to calculate gas properties, and the reduced mechanism, based on FFCM 1.0, that was used to generate the QSS mechanism is also provided."
},
"local": [
{
"id": 0,
"RHO_kgm-3 filename": "./data/RHO_kgm-3.dat",
"UX_ms-1 filename": "./data/UX_ms-1.dat",
"UY_ms-1 filename": "./data/UY_ms-1.dat",
"UZ_ms-1 filename": "./data/UZ_ms-1.dat",
"ET_m2s-2 filename": "./data/ET_m2s-2.dat",
"P_Pa filename": "./data/P_Pa.dat",
"YN2 filename": "./data/YN2.dat",
"YH2 filename": "./data/YH2.dat",
"YH filename": "./data/YH.dat",
"YO filename": "./data/YO.dat",
"YO2 filename": "./data/YO2.dat",
"YOH filename": "./data/YOH.dat",
"YH2O filename": "./data/YH2O.dat",
"YHO2 filename": "./data/YHO2.dat",
"YH2O2 filename": "./data/YH2O2.dat",
"YCO filename": "./data/YCO.dat",
"YCO2 filename": "./data/YCO2.dat",
"YCH3 filename": "./data/YCH3.dat",
"YCH4 filename": "./data/YCH4.dat",
"YCH2O filename": "./data/YCH2O.dat",
"YC2H4 filename": "./data/YC2H4.dat",
"YC2H6 filename": "./data/YC2H6.dat"
}
]
}
Loading
Loading