
Learn to solve pinns with Nvidia modulus, using PyTorch to implement 1d burgers, 1d wave, and Navier-Stokes cavity flow, plus 2d heat sink simulations in Colab and on gpu.
The course teaches solving pinns using NVIDIA Modulus, with PyTorch, starting from 1D Burgers, initial and boundary conditions, to Navier–Stokes and 2D heat sink, with deployment on Colab and Windows.
Learn how deep learning uses neural networks with input, hidden, and output layers to extract patterns, and train by adjusting weights, biases, activation functions, and backpropagation to minimize loss.
Physics-informed neural networks (PINNs) fuse neural models with physics laws to solve partial differential equations, using boundary and initial conditions as data and a PDE-residual loss to train.
Solve the burgers equation by training a neural network that maps space and time to u, capturing du/dt, du/dx, and the viscous term d^2u/dx^2, under initial and boundary conditions.
Define a neural network to input boundary and initial conditions, build a (mesh or meshless) x-t domain for Burgers equation, and prepare data with CUDA-enabled or CPU device.
Define optimizers and assign data to device, with x requiring gradient and y not. Use Adam first for rough network optimization, then LBFGS for precise tuning with specified hyperparameters.
Implement the PINN loss with data and PDE terms, using MSE. Compute du/dt and du/dx via autograd for Burgers equation, then backpropagate to update the model.
Train a PINN model with NVIDIA Modulus by implementing a training function, using Adam optimization, balancing PDE losses, and enforcing a sine wave initial condition with zero boundary condition.
Evaluate the PINN model on a smaller domain, predict the solution over X and T, and contour-plot results to illustrate a sine wave converging toward a step in burgers equation.
Explore how the wave equation, a partial differential equation, models how disturbances propagate in a medium, with initial and boundary conditions and c squared, solved via PINNs in NVIDIA Modulus.
Learn to run pins using nvidia modulus in Google Colab by creating a new notebook, selecting a t4 gpu, and installing python 3.8, pip, tensorboard, pandas, and nvidia models.
Set up the Colab workflow by writing a Python file that defines a 1D wave equation class for Nvidia Modulus, using SymPy with inputs x, t, and a speed c.
Define the 1d wave equation and create a yaml modulus config file with defaults, a fully connected architecture, tensorflow exponential scheduler, and adam loss; specify initial, boundary, and interior data.
Import numpy as np, sympy symbols, and modulus components to build a 1d wave equation main file, setting domain, constraints, validators, and node generation.
Pass the configuration to modulus and define the main run, using a WaveNet with inputs x and t to predict u, and set domain with L pi.
Define the initial condition and interior point constraints for a wave equation in a PINNs model using NVIDIA Modulus, balance losses with lambda weighting, and apply boundary conditions.
Add validator functionality by generating a mesh of x and t points, applying the analytical solution sin(x) cos(t) + sin(t), and validating the network in batched 128-point passes.
Configure and run a wave equation solver in NVIDIA Modulus on GPU, loading wave equation main, configuration main.yaml, and wave 1D main to train and monitor losses.
Download validator and interior data from the output, view predicted and true values in Paraview or Python, and compare results for the 1D wave equation using interior and boundary points.
Post-process PINN results from NVIDIA Modulus by loading interior and validation data, plotting 1D wave results in 3D and scatter views, and comparing predictions to the analytical solution.
Learn to migrate code from Nvidia modulus to Nvidia physics Nemo by updating imports and config defaults from modulus to physics Nemo.
Set up NVIDIA Modulus on your personal computer with Windows Subsystem for Linux, install Ubuntu 20.04.6 LTS, enable virtualization, and run Modulus with Python 3.8 after updating.
Solve the cavity flow problem by applying non-slip walls and the upper-lip boundary u=1, v=0, using Navier–Stokes with a zero-equation turbulence model for mu = mu_base + mu_t.
Configure a yaml well configuration file as input to the well file, detailing defaults, a fully connected architecture, a tf exponential scheduler, the Adam optimizer, summation loss, and just-in-time false.
Create the cavity main Python file, import necessary libraries (os, warnings, torch, modulus), and configure Navier‑Stokes with a zero‑equation turbulence model in Modulus, using the config YAML.
Set up the main run file and running code for PINNs with NVIDIA Modulus, defining the cavity geometry and rectangle parameters, then configure the equation, boundary conditions, and solve.
Define the Navier–Stokes and zero equation, configure a Modulus-based 2D steady-state DNN with input x and y, outputting u, v, and p via a fully connected network.
Define boundary and initial conditions for a cavity flow using Navier-Stokes and Stokes equations, setting top-wall velocity and interior no-slip constraints with interior point criteria.
Learn how to set up and solve a cavity flow with NVIDIA Modulus, including configuring the solver and running the computation on gpu via the cavity main workflow.
Extract and plot results from PINNs using NVIDIA Modulus. Open Paraview, export the cavity constraint data, and visualize the interior point results.
Post-process cavity flow results by loading CSV in a Jupyter notebook, visualizing x, y, z with u, v, and p via 3D and scatter plots, and plan monitoring for convergence.
Perform pretrained model inference by configuring evaluation mode, generating a mesh with x and y, building input data (x, y, SDF), and running the model to obtain and visualize results.
Model a 2d heat channel flow with a heat exchanger transferring heat. Compute the normalized temperature c = (T - T0)/(Tinlet - T0) under constant pressure and non-slip walls.
Define the config file as a yaml for NVIDIA Modulus, setting defaults, architecture, optimizer, and learning rate scheduler. Configure training with batch sizes, domain points, and integral continuity for convergence.
Import the needed libraries and build a Modulus workflow by configuring files and writing Python code for Navier–Stokes and advection–diffusion simulations.
Set up the main run file for PINNs with NVIDIA Modulus, configure channel length and width, heat sink fins and gap, viscosity, and inlet velocity, then run under main guard.
Define the geometry by constructing a channel with heat sinks, inlets, and outlets. Define heat sinks as rectangles and fins with gaps, and subtract them from the channel.
Define the Navier–Stokes and advection–diffusion equations in a two-dimensional steady-state setup using a zero-equation turbulence model and dual neural networks for flow and heat.
Define inlet parabola and outlet constraints, heat sink and channel walls, and interior flow equations for a physics-informed neural network using NVIDIA Modulus; enforce integral continuity with SDF values.
Add a domain monitor to track heat sink force and convergence. Sample 100 points and compute x and y force components from pressure and area using a lambda function.
learn how to run and debug an NVIDIA Modulus PINNs workflow on Linux, including preparing code and configuration files, resolving syntax and YAML issues, and executing the solver.
Extract and analyze simulation results from monitors like force x, force y, and interior flow and heat, then post-process with Paraview to assess convergence.
Plot and analyze post-processed PINN outputs with NVIDIA Modulus. Examine u and v velocity, pressure trends, and temperature diffusion in a channel.
Apply PINNs with NVIDIA Modulus to solve the 2d linear elasticity (Navier) equation, linking forces, displacement, and hoop stress as a parameter across Young's modulus, Poisson's ratio, lambda and mu.
Define a YAML config for PINNs with NVIDIA Modulus, including a fully connected network, TensorFlow exponential scheduler, Adam optimizer, and detailed step and geometry settings.
Import needed libraries for a modulus PINN project, including SymPy, modulus modules, geometry primitives (rectangle and circle), and pointwise boundary and interior constraints for linear elasticity plane stress PDE.
Define and run a physics-informed neural network for linear elasticity by configuring NVIDIA Modulus with Config.yaml, setting lamé parameters, dimensionless scaling, and predicting displacements and stresses.
Define the geometry of an aircraft panel and window using simple shapes, set origins and dimensions, and use circles and triangles to create fillet regions that define material.
Define the geometry by constructing a high-resolution zoom region within the window, composing panels, windows, auxiliaries, and circles, then subtracting corners to obtain the usable geometry for the PINN setup.
Explore parameterization for physics-informed neural networks on NVIDIA Modulus by dimensionless scaling, defining hoop stress bounds, and feeding x, y coordinates alongside stress ranges to build a fast, generalizable model.
Define the domain and apply boundary constraints for left, right, bottom, top, and a window; implement interior constraints with point-wise interior conditions, traction settings, and NVIDIA Modulus PINNs.
Define NumPy inputs and generate 100,000 sample points for case inferencing in pinns using NVIDIA Modulus, then set outputs for displacements and stresses with a batch size of 4096.
Run and troubleshoot PINNs workflows in NVIDIA Modulus, resolve config and naming issues, execute patch-based models for linear elasticity and stress problems, and perform post-processing to visualize results.
Process PINN results with NVIDIA Modulus by converting VTB to CSV, plotting with Python or Paraview, and analyzing stress in x and y and displacement in v for convergence.
Description
This is a introductory course that will prepare you to work with Physics-Informed Neural Networks (PINNs) using The library of Modulus [Physics-Nemo]. We will cover the fundamentals of Solving partial differential equations (PDEs) using Physics-Informed Neural Networks (PINNs) from its basics and March towards solving PINNs with Modulus [Physics-Nemo].
What skills will you Learn:
In this course, you will learn the following skills:
Understand the Math behind solving partial differential equations (PDEs) with PINNs.
Write and build Machine Learning Algorithms to solve PINNs using Pytorch.
Write and build Machine Learning Algorithms to solve PINNs using Modulus [Physics-Nemo].
Postprocess the results.
Use opensource libraries.
Define your own PDEs to solve them or use built in equations (such as the N.S equations in Modulus [Physics-Nemo]).
We will cover:
How to deploy Modulus [Physics-Nemo] on your own computer GPU and in Google Collab.
Physics-Informed Neural Networks (PINNs) Solution for 1D Burgers Equation using pytorch.
Physics-Informed Neural Networks (PINNs) Solution for 1D wave Equation using Modulus [Physics-Nemo].
Physics-Informed Neural Networks (PINNs) Solution for cavity flow problem using Modulus [Physics-Nemo].
Physics-Informed Neural Networks (PINNs) Solution for 2D heat sink flow problem using Modulus [Physics-Nemo].
If you do not have prior experience in Machine Learning or Computational Engineering, that's no problem. This course is complete and concise, covering the fundamentals of Machine Learning/ Physics-Informed Neural Networks (PINNs). Let's enjoy Learning Modulus [Physics-Nemo] together.