/FEniCS-examples

Example Python codes for FEniCS

Primary LanguagePythonMIT LicenseMIT

FEniCS-examples

Example Python codes for FEniCS


bvp1.py is the simplest example and solves the linear 2-point boundary value problem

-u"(x)=-1 

with the boundary conditions

u(0) = 0, u'(1) = 1

bvp2.py solves a system of two coupled boundary value problems

-u1" +  u2  = f1
 u1  -  u2" = f2

with the boundary conditions

u1(0)=0, u1(1)=1
u2(0)=1, u2(1)=0

nl_system3.py solves a system of 3 nonlinear boundary value problems

-u1" + u2' + u3  +                        u1*u3 = f1
-u1' - u2" + u3  +                   - 16*u2*u3 = f2
 u1  + u2  - u3" +  u1*u3 - 16*u2*u3 +    u3^2  = 0 

with the boundary conditions

u1(0) = 0,  u1(1) = 1
u2(0) = 1,  u2(1) = 0
u3(0) = 0,  u3(1) = 0

adv_diff.py solves the advection diffusion equation

u_t + a*u_x = d*u_xx

with a given initial condition and homogeneous Neumann conditons

u_x(-1) = u_x(+1) = 0

`newton.py' solves the nonlinear boundary value problem

(exp(a*u)*u')' = 0
u(0) = 0, u(1) = 1

Using a manual Newton's method with continuation/homotopy


`newton_sys2.py' solves the two coupled nonlinear boundary value problems

-u1" + a*exp(u2)*u1 = 0
-u2" + a*exp(u1)*u2 = 0

u1(0) = 0,  u1(1) = 1
u2(1) = 1,  u2(0) = 0    

finite_well.py computes eigenvalues and eigenfunctions for a finite potential quantum well.


'nonuniform.py' constructs a nonuniform 1D grid with clustering at desired locations and then solves a boundary value problem which has a rapidly varying solution at those locations.

-[p(x)u']' = 1 

 u(0) = u(1) = 0

 p(x) = 1.001 + cos(4*pi*x)

'quantum_dot.py' computes the ground state in a hemispherical quantum dot using the inverse iteration with repeated Cholesky solves via PETScLUSolver