From bff2f9f3fecadffeb071dc851e45533eeafaa304 Mon Sep 17 00:00:00 2001 From: Nicola Demo Date: Thu, 23 Jun 2022 11:53:50 +0200 Subject: [PATCH] Update README.md (#17) * fix poisson equation on readme * delete poisson_problem.png --- README.md | 6 ++---- readme/poisson_problem.png | Bin 26673 -> 0 bytes 2 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 readme/poisson_problem.png diff --git a/README.md b/README.md index 225307a..454a4b6 100644 --- a/README.md +++ b/README.md @@ -45,10 +45,8 @@ PINN is a novel approach that involves neural networks to solve supervised learn #### Problem definition First step is formalization of the problem in the PINA framework. We take as example here a simple Poisson problem, but PINA is already able to deal with **multi-dimensional**, **parametric**, **time-dependent** problems. Consider: -

- Poisson approximation -

-where *D* is a square domain, *Gamma*s are the boundaries and *u* the unknown field. The translation in PINA code becomes a new class containing all the information about the domain, about the `conditions` and nothing more: +$$\begin{cases}\nabla u = \sin(\pi x)\sin(\pi y)\quad& \text{in}\\,D,\\\\u = 0& \text{on}\\,\partial D,\end{cases}$$ +where $D = [0, 1]^2$ is a square domain and $u$ the unknown field. The translation in PINA code becomes a new class containing all the information about the domain, about the `conditions` and nothing more: ```python class Poisson(SpatialProblem): diff --git a/readme/poisson_problem.png b/readme/poisson_problem.png deleted file mode 100644 index 59312750eafcb1577ca6b084c9f4c59193e9f071..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26673 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