Data-driven physics-informed prediction of turbulent flow statistics past bridge piers in large-scale rivers using convolutional neural networks
Description
The machine learning codes (in Python) are uploaded. These codes can be used for:
1- first-order flow statistics prediction;
2- second-order flow statistics predictions; and
3- flow predictions by considering the "divergence-free" constraint.
A series of sample training datasets are also included as " trainingdata.zip". Plus, some sample results (prediction results) are placed in "resultdata.zip."
Below, we explain how to use each of these codes:
The codes here works in the following steps:
1. run readdata.py to preprocess data from ASCII tecplot format to binary numpy format.
this step can be skipped since all data are prepared in ./train, ./test and ./check
2. run main.py to train the CNN for u, v, w components separately.
3. run check.py to run the trained model and output the predictions.
4. run fluctuation.py to calculate u', v', w' for second-order statistics code.
contents in subfolders:
flc1 --u' v' w' data
input --input data of CNN, instantaneous flow fields
target --LES flow fields, target for training and testing
output --CNN predictions
Below are more details of the fil contents:
1. code
1.1 1st order statistics
1.1.1 main.py is the main code to train CNN
1.1.2 readdata.py is the preprocessing code to convert ASCII tecplot file to numpy file
1.1.3 reverse.py do the data augmentation by reversing the flow field
1.1.4 check.py produce the prediction using trained CNN
1.1.5 data.py, dataset.py and model.py are sub-functions called by main.py
1.2 2nd order statistics
1.2.1 main.py is the main code to train CNN
1.2.2 readdata.py is the preprocessing code to convert ASCII tecplot file to numpy file
1.2.3 check.py produce the prediction using trained CNN
1.2.4 data.py, dataset.py and model.py are sub-functions called by main.py
1.3 divergence-free
1.3.1 main.py is the main code to train CNN
1.3.2 readdata.py is the preprocessing code to convert ASCII tecplot file to numpy file
1.3.3 check.py produce the prediction using trained CNN
1.3.4 SelfDefLoss.py, dataset.py and model.py are sub-functions called by main.py
2. trainingdata
2.1 Result020000.plt to Result029000.plt are instantaneous LES results used to train the CNN.
2.2 Result150000-avg.plt is the time-averaged LES results used to train the CNN.
3. resultdata
3.1 River1 This folder contains the results of River 1
3.1.1 CNN_UV.plt is the CNN predicted time-averaged u and v velocity components
3.1.2 CNN_W.plt is the CNN predicted time-averaged w velocity component
3.1.3 CNN_2nd Order Statistics.plt is the CNN predicted 2nd order statistics components
3.1.4 LES Results.plt is the LES time-averaged results
3.1.5 RANS Results.plt is the RANS results
3.1.6 div_with dive-free.dat is the divergence result of the CNN with physical constraint
3.1.7 div_without dive-free.dat is the divergence result of the CNN without physical constraint
Files
1st order statistics.zip
Files
(1.9 GB)
| Name | Size | Download all |
|---|---|---|
|
md5:539ebdc82bfeedf5d046084c3c040985
|
10.7 kB | Preview Download |
|
md5:70a455eeb410bac717b2b8b6441090a3
|
7.8 kB | Preview Download |
|
md5:a6821745f97a7ca327de014ef2ac88bb
|
10.5 kB | Preview Download |
|
md5:b0aa7442935d6e579ad9e27c0d7e4758
|
20.9 kB | Preview Download |
|
md5:14c11fbd114ebbc5cc22b23187eb80ad
|
365.5 kB | Preview Download |
|
md5:3764d532e54a1b6fb93fbe761b35830c
|
484.6 kB | Preview Download |
|
md5:0d70456f06cfe1f760ed10dc526ff8a0
|
424.5 kB | Preview Download |
|
md5:22ff7789a104d57f1ea78276a7bd49b3
|
568.8 kB | Preview Download |
|
md5:0172d9bf5e39cf7d9985b35976e61f98
|
232.2 kB | Preview Download |
|
md5:c40ebc320e40ff6c8fc8e1aabaa9069c
|
958.7 MB | Preview Download |
|
md5:ef2da938238359cd4a50b88e424d92b4
|
963.1 MB | Preview Download |
Additional details
Related works
- Is cited by
- arXiv:2106.11276 (arXiv)