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
A Powerful Serverless Analysis Toolkit That Takes Trial And Error Out of Machine Learning Projects

KXY: A Seemless API to 10x The Productivity of Machine Learning Engineers Documentation https://www.kxy.ai/reference/ Installation From PyPi: pip inst

KXY Technologies, Inc. 35 Jan 02, 2023
CyLP is a Python interface to COIN-OR’s Linear and mixed-integer program solvers (CLP, CBC, and CGL)

CyLP CyLP is a Python interface to COIN-OR’s Linear and mixed-integer program solvers (CLP, CBC, and CGL). CyLP’s unique feature is that you can use i

COIN-OR Foundation 161 Dec 14, 2022
Data Efficient Decision Making

Data Efficient Decision Making

Microsoft 197 Jan 06, 2023
Predict the output which should give a fair idea about the chances of admission for a student for a particular university

Predict the output which should give a fair idea about the chances of admission for a student for a particular university.

ArvindSandhu 1 Jan 11, 2022
Cool Python features for machine learning that I used to be too afraid to use. Will be updated as I have more time / learn more.

python-is-cool A gentle guide to the Python features that I didn't know existed or was too afraid to use. This will be updated as I learn more and bec

Chip Huyen 3.3k Jan 05, 2023
PyHarmonize: Adding harmony lines to recorded melodies in Python

PyHarmonize: Adding harmony lines to recorded melodies in Python About To use this module, the user provides a wav file containing a melody, the key i

Julian Kappler 2 May 20, 2022
Karate Club: An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs (CIKM 2020)

Karate Club is an unsupervised machine learning extension library for NetworkX. Please look at the Documentation, relevant Paper, Promo Video, and Ext

Benedek Rozemberczki 1.8k Jan 03, 2023
Neighbourhood Retrieval (Nearest Neighbours) with Distance Correlation.

Neighbourhood Retrieval with Distance Correlation Assign Pseudo class labels to datapoints in the latent space. NNDC is a slim wrapper around FAISS. N

The Learning Machines 1 Jan 16, 2022
Scikit learn library models to account for data and concept drift.

liquid_scikit_learn Scikit learn library models to account for data and concept drift. This python library focuses on solving data drift and concept d

7 Nov 18, 2021
Data science, Data manipulation and Machine learning package.

duality Data science, Data manipulation and Machine learning package. Use permitted according to the terms of use and conditions set by the attached l

David Kundih 3 Oct 19, 2022
A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function.

pmdarima Pmdarima (originally pyramid-arima, for the anagram of 'py' + 'arima') is a statistical library designed to fill the void in Python's time se

alkaline-ml 1.3k Dec 22, 2022
This is the material used in my free Persian course: Machine Learning with Python

This is the material used in my free Persian course: Machine Learning with Python

Yara Mohamadi 4 Aug 07, 2022
A Python library for detecting patterns and anomalies in massive datasets using the Matrix Profile

matrixprofile-ts matrixprofile-ts is a Python 2 and 3 library for evaluating time series data using the Matrix Profile algorithms developed by the Keo

Target 696 Dec 26, 2022
This is an auto-ML tool specialized in detecting of outliers

Auto-ML tool specialized in detecting of outliers Description This tool will allows you, with a Dash visualization, to compare 10 models of machine le

1 Nov 03, 2021
vortex particles for simulating smoke in 2d

vortex-particles-method-2d vortex particles for simulating smoke in 2d -vortexparticles_s

12 Aug 23, 2022
A toolkit for geo ML data processing and model evaluation (fork of solaris)

An open source ML toolkit for overhead imagery. This is a beta version of lunular which may continue to develop. Please report any bugs through issues

Ryan Avery 4 Nov 04, 2021
Stacked Generalization (Ensemble Learning)

Stacking (stacked generalization) Overview ikki407/stacking - Simple and useful stacking library, written in Python. User can use models of scikit-lea

Ikki Tanaka 192 Dec 23, 2022
pywFM is a Python wrapper for Steffen Rendle's factorization machines library libFM

pywFM pywFM is a Python wrapper for Steffen Rendle's libFM. libFM is a Factorization Machine library: Factorization machines (FM) are a generic approa

João Ferreira Loff 251 Sep 23, 2022
[DEPRECATED] Tensorflow wrapper for DataFrames on Apache Spark

TensorFrames (Deprecated) Note: TensorFrames is deprecated. You can use pandas UDF instead. Experimental TensorFlow binding for Scala and Apache Spark

Databricks 757 Dec 31, 2022
A linear equation solver using gaussian elimination. Implemented for fun and learning/teaching.

A linear equation solver using gaussian elimination. Implemented for fun and learning/teaching. The solver will solve equations of the type: A can be

Sanjeet N. Dasharath 3 Feb 15, 2022