p_laplacian
The p-Laplacian Problem on the Unit Square
p_laplacian,
a FENICS code which
uses the finite element method to solve a version of the p-Laplacian
equation over the unit square.
Solve the nonlinear PDE:
- div gamma(u) grad u = f in Omega = [0,1]x[0,1]
u = 0 on dOmega
where:
gamma(u) = ( epsilon^2 + |grad u|^2) ) ^ ( (p-2)/2 )
= ( epsilon^2 + wx^2 + wy^2 ) ^ ( (p-2)/2 )
epsilon = 1.0E-05
f(x,y) = 2*pi*pi*sin(pi*x) * sin(pi*y)
The parameter epsilon artificially keeps gamma(u) bounded above 0,
guaranteeing that the power (p-2)/2 is meaningful, and the equation
is solvable.
Note that I have installed FENICS using Docker, and so to run this
script I issue the commands:
-
cd $HOME/fenicsproject/p_laplacian
-
fenicsproject run
-
python3 p_laplacian.py
-
exit
Licensing:
The GNU LGPL license.
Reference:
-
John Barrett, W B Liu,
Finite Element Approximation of the p-Laplacian,
Mathematics of Computation,
Volume 61, Number 204, pages 423-537, October 1993.
-
Patrick Farrell, Hans Petter Langtangen, Marie Rognes, Garth Wells,
Implementing finite element models in Python/FEniCS:
steady nonlinear PDEs,
MMSC: Python in Scientific Computing,
May 6, 2015
-
Hans Petter Langtangen, Anders Logg,
Solving PDEs in Python - The FEniCS Tutorial Volume 1.
Source Code:
Last revised on 29 October 2018.