Bayesian optimization based on Gaussian processes (BO-GP) for CFD simulations.

Related tags

Machine LearningBO_GP
Overview

BO-GP

Bayesian optimization based on Gaussian processes (BO-GP) for CFD simulations.

The BO-GP codes are developed using GPy and GPyOpt. The optimizer is non-intrusive and can be linked to any CFD solver.

Reference:

Y. Morita, S. Rezaeiravesh, N. Tabatabaeia, R. Vinuesaa, K. Fukagata, P. Schlatter, Applying Bayesian Optimization with Gaussian Process Regression to Computational Fluid Dynamics Problems, Journal of Computational Physics, 2021.

Exmaple: Turbulent boundary layer (TBL) with non-zero pressure gradient.

See Section 5 in the above reference. The flow is simulated using OpenFOAM.

Questions/Remarks:

Questions can be forwarded to [email protected], [email protected], and [email protected].

List of included files and folders:

  • driver_BOGP.py: main driver for running the example, i.e. BO-GP of pessure-gradient TBL simulated by OpenFOAM.

  • gpOptim/: Bayesian optimization codes based on Gaussian processes, using GPy and GPyOpt.

    • workDir/
      • gpList.dat
    • gpOpt.py
  • OFcase/: OpenFOAM case folder

    • system/
      • yTopParams.in (written in main_pre.py, used by blockMeshDict & controlDict).
      • blockMeshDict
      • controlDict
      • decomposeParDict
      • fvSchemes
      • fvSolution
    • 0/
      • U,p,k,omega,nut
      • *_IC files (use inflow.py to make these files).
    • constant/
      • polyMesh/ (not included)
      • transportProperties
    • jobscript
    • OFrun.sh
  • OFpost/: Post-processing the results of OFcase.

    • main_post.py
  • OFpre/: Pre-processing the OFcase

    • main_pre.py: creating yTopParams.in using the latest parameter sample.
    • inflow/inflow_gen.py: Creating inflow conditions for RANS of TBL with pressure gradient using DNS data for the TBL with zero-pressure gradient.
  • figs/: To save figures produced when running the optimization.

    • make_movie.sh: make movie in png/ from pdf files.
  • data/: Created when running the BO-GP.

  • storage/: Created when running the BO-GP.

Settings & inputs (to run the example):

  • In driver_BOGP_example.py: U_infty, delta99_in, Nx, Ny, Nz, t, loop params, path, beta_t etc.
  • /gpOptim/gpOpt.py: number of parameters, range of parameters, tolerance, GP kernel, xi, etc.

Requirements:

  1. python3.X
  2. numpy
  3. matplotlib
  4. GPy
  5. GpyOpt
  6. OpenFOAM v.7 (or v.6)
  7. bl_data/ in OFpre/inflow/ (DNS data from here)

How to test the example for different settings:

  • To change the structure of the geometry

    • create the new inflow from precursor using OFpre/inflow/inflow_gen.py (precursor results required)
    • update the blockMeshDict
    • update the driver accordingly
  • To change the number of prosessors used for the OpenFOAM simulation

    • update nProcessors in the driver
    • update decomposeParDict
    • update jobScript
  • To change the parameterization of the upper wall

    • change qBound in gpOpt.py
    • update blockMeshDict
  • To change beta_t (target pressure-gradient parameter beta)

    • change beta_t in the driver
  • When you clone this repository and get errors, please try run:

    • mkdir data
    • mkdir storage
    • mkdir OFcase/constant/polyMesh/
Owner
KTH Mechanics
KTH Mechanics
Python Automated Machine Learning library for tabular data.

Simple but powerful Automated Machine Learning library for tabular data. It uses efficient in-memory SAP HANA algorithms to automate routine Data Scie

Daniel Khromov 47 Dec 17, 2022
A simple example of ML classification, cross validation, and visualization of feature importances

Simple-Classifier This is a basic example of how to use several different libraries for classification and ensembling, mostly with sklearn. Example as

Rob 2 Aug 25, 2022
#30DaysOfStreamlit is a 30-day social challenge for you to build and deploy Streamlit apps.

30 Days Of Streamlit 🎈 This is the official repo of #30DaysOfStreamlit — a 30-day social challenge for you to learn, build and deploy Streamlit apps.

Streamlit 53 Jan 02, 2023
PROTEIN EXPRESSION ANALYSIS FOR DOWN SYNDROME

PROTEIN-EXPRESSION-ANALYSIS-FOR-DOWN-SYNDROME Down syndrome (DS) is a chromosomal disorder where organisms have an extra chromosome 21, sometimes know

1 Jan 20, 2022
Kalman filter library

The kalman filter framework described here is an incredibly powerful tool for any optimization problem, but particularly for visual odometry, sensor fusion localization or SLAM.

comma.ai 276 Jan 01, 2023
STUMPY is a powerful and scalable Python library for computing a Matrix Profile, which can be used for a variety of time series data mining tasks

STUMPY STUMPY is a powerful and scalable library that efficiently computes something called the matrix profile, which can be used for a variety of tim

TD Ameritrade 2.5k Jan 06, 2023
SPCL 48 Dec 12, 2022
Tutorial for Decision Threshold In Machine Learning.

Decision-Threshold-ML Tutorial for improve skills: 'Decision Threshold In Machine Learning' (from GeeksforGeeks) by Marcus Mariano For more informatio

0 Jan 20, 2022
Fast Fourier Transform-accelerated Interpolation-based t-SNE (FIt-SNE)

FFT-accelerated Interpolation-based t-SNE (FIt-SNE) Introduction t-Stochastic Neighborhood Embedding (t-SNE) is a highly successful method for dimensi

Kluger Lab 547 Dec 21, 2022
Automated Time Series Forecasting

AutoTS AutoTS is a time series package for Python designed for rapidly deploying high-accuracy forecasts at scale. There are dozens of forecasting mod

Colin Catlin 652 Jan 03, 2023
ZenML 🙏: MLOps framework to create reproducible ML pipelines for production machine learning.

ZenML is an extensible, open-source MLOps framework to create production-ready machine learning pipelines. It has a simple, flexible syntax, is cloud and tool agnostic, and has interfaces/abstraction

ZenML 2.6k Jan 08, 2023
Machine Learning Algorithms ( Desion Tree, XG Boost, Random Forest )

implementation of machine learning Algorithms such as decision tree and random forest and xgboost on darasets then compare results for each and implement ant colony and genetic algorithms on tsp map,

Mohamadreza Rezaei 1 Jan 19, 2022
Bottleneck a collection of fast, NaN-aware NumPy array functions written in C.

Bottleneck Bottleneck is a collection of fast, NaN-aware NumPy array functions written in C. As one example, to check if a np.array has any NaNs using

Python for Data 835 Dec 27, 2022
Provide an input CSV and a target field to predict, generate a model + code to run it.

automl-gs Give an input CSV file and a target field you want to predict to automl-gs, and get a trained high-performing machine learning or deep learn

Max Woolf 1.8k Jan 04, 2023
Iris-Heroku - Putting a Machine Learning Model into Production with Flask and Heroku

Puesta en Producción de un modelo de aprendizaje automático con Flask y Heroku L

Jesùs Guillen 1 Jun 03, 2022
Implementation of different ML Algorithms from scratch, written in Python 3.x

Implementation of different ML Algorithms from scratch, written in Python 3.x

Gautam J 393 Nov 29, 2022
Book Item Based Collaborative Filtering

Book-Item-Based-Collaborative-Filtering Collaborative filtering methods are used

Şebnem 3 Jan 06, 2022
To-Be is a machine learning challenge on CodaLab Platform about Mortality Prediction

To-Be is a machine learning challenge on CodaLab Platform about Mortality Prediction. The challenge aims to adress the problems of medical imbalanced data classification.

Marwan Mashra 1 Jan 31, 2022
A Python Package to Tackle the Curse of Imbalanced Datasets in Machine Learning

imbalanced-learn imbalanced-learn is a python package offering a number of re-sampling techniques commonly used in datasets showing strong between-cla

6.2k Jan 01, 2023