← Back to team overview

ufl team mailing list archive

Re: [Question #215444]: how does FEniCS apply the Dirichlet boundary conditions on unitcircle

 

You can read more in detail about this in the FEniCS book. Search for
DirichletBC. You can also get some usefull information by

>>> help(DirichletBC)

in a Python session.

As far as I can see there is nothing wrong with your script.

Johan

On 11/29/2012 03:55 AM, Huadong GAO wrote:
> Question #215444 on UFL changed:
> https://answers.launchpad.net/ufl/+question/215444
> 
>     Status: Answered => Open
> 
> Huadong GAO is still having a problem:
> First thanks Johan's help.   A simple python code is attached below. I use quadratic element
> solving Poisson Equation on the UnitCircle domain, I do not know how FEniCS apply the Dirichlet boundary conditions. I mean the how to determine the value at the midpoint of the boundary edge ?
> 
> ######################################
> from dolfin import *
> 
> mesh = UnitCircle(5)
> V = FunctionSpace(mesh, "Lagrange", degree=2)
> 
> u = TrialFunction(V)
> v = TestFunction(V)
> 
> #--------------------------------------------
> f = Expression("1.0")
> u_e = Expression("exp(x[0]+x[1]-t)",t=0)
> #--------------------------------------------
> 
> a = inner(nabla_grad(u),nabla_grad(v))*dx
> v = f*v*dx
> 
> def boundary(x,on_boundary):
>     return on_boundary
> 
> bc = DirichletBC(V,u_e,boundary)
> 
> A = assemble(a)
> b = assemble(v)
> bc.apply(A,b)
> u = Function(V)
> solver = KrylovSolver("gmres", "ilu")            
> solver.solve(A, u.vector(), b)
> 
> plot(mesh)
> plot(u)
> interactive()
> ######################################
> 



Follow ups

References