← Back to team overview

dolfin team mailing list archive

Re: Dirichlet bc functions

 



Anders Logg wrote:
On Sun, Nov 02, 2008 at 06:29:25PM +0000, Garth N. Wells wrote:

Anders Logg wrote:
On Sun, Nov 02, 2008 at 05:52:21PM +0000, Garth N. Wells wrote:
Do we want to insist that Dirichlet bc functions that do not appear inside a form are constructed with a FunctionSpace? DirichletBC is supplied with a FunctionSpace, so if the bc Function does not have a FunctionSpace, we could attach one automatically.

Garth
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev
I think this is already handled. Look in the Poisson demo. It uses a
Constant to set the BC and it does not have a FunctionSpace attached
to it. The DirichletBC class now uses its own FunctionSpace rather
than the one that the Function has (if any). There is a check (in
DirichletBC::check()) that checks that the FunctionSpace for the
Function is the same as the one in the DirichletBC.

It works for Constant, but not for Functions. I was getting an error when Function::interpolate is called. Function::interpolate leads to eval being called, in which case there is a test for the FunctionSpace which fails. Constant provides its own eval and therefore doesn't have a problem.

For now, I've added a test in DirichletBC for the FunctionSpace. What we can add is an attach function if there is no FunctionSpace associated.

Garth

In which demo does this show up? Is there a simple way I can comment
something out to reproduce the error so I understand what goes wrong?


Look at /demo/nls/nonlinearpoisson/cpp.

If you change

  DirichletBoundaryCondition g(V, t);

to

  DirichletBoundaryCondition g(t);

it will break down.

Garth




------------------------------------------------------------------------

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References