All Projects → MachineLearningJournalClub → MLJC-UniTo-ProjectX-2020-public

MachineLearningJournalClub / MLJC-UniTo-ProjectX-2020-public

Licence: MIT license
Public repository for the proposal “Physics-Informed Machine Learning Simulator for Wildfire Propagation” - MLJC University of Turin - ProjectX2020 Competition (UofT AI)

Programming Languages

Jupyter Notebook
11667 projects
fortran
972 projects
julia
2034 projects
TeX
3793 projects
c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to MLJC-UniTo-ProjectX-2020-public

Differentialequations.jl
Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components
Stars: ✭ 2,023 (+6425.81%)
Mutual labels:  partial-differential-equations, differential-equations, scientific-machine-learning
SciMLBenchmarks.jl
Benchmarks for scientific machine learning (SciML) software and differential equation solvers
Stars: ✭ 195 (+529.03%)
Mutual labels:  partial-differential-equations, differential-equations, scientific-machine-learning
LatentDiffEq.jl
Latent Differential Equations models in Julia.
Stars: ✭ 34 (+9.68%)
Mutual labels:  differential-equations, scientific-machine-learning, sci-ml
Schrodingers-Equation-Solution-by-Neural-Network-NN-
Artifitial Neural Networks for Solving Ordinary and Partial Differential Equations, in this case, Schrodinger's Equation for One Particle in a 1-Dimentional Box
Stars: ✭ 18 (-41.94%)
Mutual labels:  partial-differential-equations, differential-equations
DiffEqPhysics.jl
A library for building differential equations arising from physical problems for physics-informed and scientific machine learning (SciML)
Stars: ✭ 46 (+48.39%)
Mutual labels:  differential-equations, scientific-machine-learning
CellMLToolkit.jl
CellMLToolkit.jl is a Julia library that connects CellML models to the Scientific Julia ecosystem.
Stars: ✭ 50 (+61.29%)
Mutual labels:  differential-equations, scientific-machine-learning
numerics
library of numerical methods using Armadillo
Stars: ✭ 17 (-45.16%)
Mutual labels:  partial-differential-equations, differential-equations
BoundaryValueDiffEq.jl
Boundary value problem (BVP) solvers for scientific machine learning (SciML)
Stars: ✭ 23 (-25.81%)
Mutual labels:  differential-equations, scientific-machine-learning
DiffEqCallbacks.jl
A library of useful callbacks for hybrid scientific machine learning (SciML) with augmented differential equation solvers
Stars: ✭ 43 (+38.71%)
Mutual labels:  differential-equations, scientific-machine-learning
RootedTrees.jl
A collection of functionality around rooted trees to generate order conditions for Runge-Kutta methods in Julia for differential equations and scientific machine learning (SciML)
Stars: ✭ 24 (-22.58%)
Mutual labels:  differential-equations, scientific-machine-learning
pydens
PyDEns is a framework for solving Ordinary and Partial Differential Equations (ODEs & PDEs) using neural networks
Stars: ✭ 201 (+548.39%)
Mutual labels:  partial-differential-equations, differential-equations
diffeqr
Solving differential equations in R using DifferentialEquations.jl and the SciML Scientific Machine Learning ecosystem
Stars: ✭ 118 (+280.65%)
Mutual labels:  differential-equations, scientific-machine-learning
DiffEqUncertainty.jl
Fast uncertainty quantification for scientific machine learning (SciML) and differential equations
Stars: ✭ 61 (+96.77%)
Mutual labels:  differential-equations, scientific-machine-learning
Sundials.jl
Julia interface to Sundials, including a nonlinear solver (KINSOL), ODE's (CVODE and ARKODE), and DAE's (IDA) in a SciML scientific machine learning enabled manner
Stars: ✭ 167 (+438.71%)
Mutual labels:  differential-equations, scientific-machine-learning
MultiScaleArrays.jl
A framework for developing multi-scale arrays for use in scientific machine learning (SciML) simulations
Stars: ✭ 63 (+103.23%)
Mutual labels:  differential-equations, scientific-machine-learning
Kinetic.jl
Universal modeling and simulation of fluid dynamics upon machine learning
Stars: ✭ 82 (+164.52%)
Mutual labels:  differential-equations, scientific-machine-learning
DiffEqDevTools.jl
Benchmarking, testing, and development tools for differential equations and scientific machine learning (SciML)
Stars: ✭ 37 (+19.35%)
Mutual labels:  differential-equations, scientific-machine-learning
cmna-pkg
Computational Methods for Numerical Analysis
Stars: ✭ 13 (-58.06%)
Mutual labels:  partial-differential-equations, differential-equations
GlobalSensitivity.jl
Robust, Fast, and Parallel Global Sensitivity Analysis (GSA) in Julia
Stars: ✭ 30 (-3.23%)
Mutual labels:  differential-equations, scientific-machine-learning
DiffEqOnlineServer
Backend for DiffEqOnline, a webapp for scientific machine learning (SciML)
Stars: ✭ 24 (-22.58%)
Mutual labels:  differential-equations, scientific-machine-learning

Logo

Physics-Informed Machine Learning Simulator for Wildfire Propagation

Generic badge

GitHub stars

GitHub watchers

The aim of this work is to evaluate the feasibility of re-implementing some key parts of the widely used Weather Research and Forecasting WRF-SFIRE simulator by replacing its core differential equations numerical solvers with state-of-the-art physics-informed machine learning techniques to solve ODEs and PDEs in order to increase its computational efficiency. The goal is to evaluate the feasibility of a real-time simulator for wildfire spread prediction based on PINNs. Our ML approach is based on Physics Informed Neural Networks implemented in the NeuralPDE.jl package, which turns an integration problem into a minimization one.

NeuralPDE Architecture Standard Integration

Model Selection

A collection of our attempts to find a proper model which suites all of our needs. We have explored different architectures within the field of Scientific Machine Learning. We started our investigations using the DiffEqFlux.jl library, which defines and solves neural ordinary differential equations (i.e. ODEs where a neural network defines its derivative function). We finally chose NeuralPDE.jl because does not require numerical solvers and is interfaced with the very high levels model representation library ModelingToolkit.jl

Interpolation

Some utility notebooks needed to implement key informations (terrain slope, wind field) in our model. It also provides better perfomances in terms of speed and computational load.

WRF

The results obtained by our simulation performed with the Weather Research Forecast system. First of all we performed a profiling with the perf tool, in order to mesure the overhead of WRF's subroutines

Later we ran several simulations of fire and atmospherical events. We then kept the result for the Isom Creek and OneFire cases, which were used to compare with the output of the neural network.

Level Set Implementation

The level-set is the mathematical core for calculating the spread of the fire. The minimization of the loss functions is the process that actually solves the PDE and constitutesthe main load for the CPU. It can be easily accelerated using GPUs. The model was implemented using the low-level interface of the NeuralPDE.jl library which contains the necessary methods for the generation of the training datasets and of theloss functions starting from the explicit form of the equations and the boundary conditions.

Level set equation solution computed by PINNs Level set equation solution computed by WRF

Euler System Implementation

This is our attempt to implement the atmospherical model of WRF using PINNS (NeuralPDE.jl). It is necessary because the level set equation (wildfire propagation) is strongly dependent on wind and other atmospheric parameters. Writing and solving the 7-equation Euler system in Julia was really challenging, in fact at the moment we are not aware of any publications where these NeuralPDE.jl and the PINNs are applied to systems of PDE of such complexity. Unfortunately, the NeuralPDE.jl library is still unable to treat this kind of problem with stability and often incurs errors due to internal divergence calculations. Despite this, we have been able to obtain convergence of the loss function, although it is not enough to present valid results. We contacted the authors of these libraries, that are still under development, and we are looking forward to continue the development.

Link to Google Drive

In the Google Drive linked above are hosted the results of the simulations performed with WRF. The results are in the standard NetCDF format and can be explored easily using the Ncview tool.

Code compatibility

All the code included is compatible with the Julia version 1.5.2.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].