Skip to content

Repository files navigation

Deep Learning in Computational Mechanics
an honest reference

Note

This work is incomplete and under active development.

About

neuralmech is a collection of ml-enhanced physics solvers & optimizers answering

When and where is deep learning useful in numerical simulation?

NeuralMech

Features

deep learning in computational mechanics book 2 deep learning in computational mechanics book 1

As this project is ongoing, feedback is highly welcome. Finished chapters are available on request under a personal-use, non-redistribution license — feel free to reach out via email. By requesting a copy, you agree to the license terms included in the document.

Chapters available on request
  • Computational Mechanics Meets Artificial Intelligence (chapter 1)
  • Fundamental Machine Learning (chapter 2)
  • Artificial Neural Networks (chapter 3)
neural network expressivity
  • Neural Network Architectures (chapter 4)
  • Probabilistic Machine Learning (chapter 5)
  • Governing Equations (chapter 8)
  • Numerical Methods (chapter 9)
Chapters in progress
  • Machine Learning Algorithms (chapter 6)
  • Practical Machine Learning (chapter 7)
  • Machine Learning in Computational Mechanics (chapter 10)
  • Neural Surrogates (chapter 11)
  • Neural Solvers (chapter 12)
  • Physics-Informed Neural Networks (chapter 13)
  • Constitutive Modeling with Neural Networks (chapter 14)
  • Generative Artificial Intelligence (chapter 15)
  • Neural Optimization (chapter 16)
full waveform inversion
  • Large Language Models (chapter 17)
  • Simulation Acceleration via GPUs (chapter 18)
matrix-free finite element method on GPU
  • Deep Reinforcement Learning (chapter 19)
  • Computational Mechanics After Artificial Intelligence (chapter 20)

Requirements

  • install via requirements
pip install -r requirements.txt

Note

The requirements are currently broader than necessary and will be trimmed down later.

mlhp

mlhp is included as a git submodule. To clone recursively use

git clone --recurse-submodules https://github.com/cmpmech/neuralmech

cuwave

  • the GPU finite difference wave solver behind the wave and transient topology optimization drivers
  • covered by the requirements, or install it on its own with
pip install cuwave
  • needs a cupy matching the installed CUDA toolkit

cufluid

  • the GPU lattice Boltzmann fluid solver behind the fluid drivers
  • currently private and ongoing work, included as a git submodule in solvers/cufluid; it will be released as a pip package soon
  • with access, install it from the submodule with
pip install -e solvers/cufluid

Structure

data/ generated data (small, but gitignored if large)
external_data/ data generation tools with data in data (large, excluded from main repo)
models/ trained networks
results/ results for postprocessing
projects/ main drivers; see projects
DL.py deep learning utilities
NN.py network architectures
ML.py classical machine learning models
postprocessing.py postprocessing helpers
solvers/ classical physics solvers

Contact

neuralmech@pm.me

License

MIT; see LICENSE.