← Back to team overview

dolfin team mailing list archive

Re: [Question #109900]: L2-scaling

 

On Mon, May 10, 2010 at 12:00:35PM -0000, Marie Rognes wrote:
> Question #109900 on DOLFIN changed:
> https://answers.launchpad.net/dolfin/+question/109900
>
> Marie Rognes posted a new comment:
> Marie Rognes wrote:
> > Anders Logg wrote:
> >> On Thu, May 06, 2010 at 08:42:19PM -0000, Marie Rognes wrote:
> >>
> >>> Question #109900 on DOLFIN changed:
> >>> https://answers.launchpad.net/dolfin/+question/109900
> >>>
> >>> Marie Rognes proposed the following answer:
> >>> Anders Logg wrote:
> >>>
> >>>> Question #109900 on DOLFIN changed:
> >>>> https://answers.launchpad.net/dolfin/+question/109900
> >>>>
> >>>> Anders Logg proposed the following answer:
> >>>> On Thu, May 06, 2010 at 02:52:33PM +0200, Marie Rognes wrote:
> >>>>
> >>>>
> >>>>> Achim Schroll wrote:
> >>>>>
> >>>>>
> >>>>>> New question #109900 on DOLFIN:
> >>>>>> https://answers.launchpad.net/dolfin/+question/109900
> >>>>>>
> >>>>>> for a plain Poisson eqn with pure Neumann b.c., how to specify
> >>>>>> the scaling condition u*dx = 0 ?
> >>>>>>
> >>>>>>
> >>>>> If you have a recent dolfin, you can introduce a constant c acting
> >>>>> as a Lagrange multiplier corresponding to the constraint. See
> >>>>> example below.
> >>>>>
> >>>>> from dolfin import *
> >>>>>
> >>>>> mesh = UnitSquare(32, 32)
> >>>>> V = FunctionSpace(mesh, "CG", 1)
> >>>>> Q = FunctionSpace(mesh, "R", 0)
> >>>>> M = V * Q
> >>>>>
> >>>>> (u, c) = TrialFunctions(M)
> >>>>> (v, d) = TestFunctions(M)
> >>>>>
> >>>>> f = Expression("x[0]*x[1]*sin(pi*x[0])")
> >>>>>
> >>>>> a = dot(grad(v), grad(u))*dx + d*u*dx + c*v*dx
> >>>>> L = v*f*dx
> >>>>>
> >>>>> pde = VariationalProblem(a, L)
> >>>>> u_h = pde.solve()
> >>>>>
> >>>>> plot(u_h[0])
> >>>>> interactive()
> >>>>>
> >>>>>
> >>>> But make sure to not name that space 'M' if you try this with a UFL
> >>>> file or you will get a strange error (since 'M' is reserved in form
> >>>> files).
> >>>>
> >>>> Anyway, I'm wondering about the dofmap for the "R" element. It sets
> >>>> _global_dimension to m.num_entities[2] which is the global number of
> >>>> cells, but then it maps all dofs to 0. Is that right? Shouldn't the
> >>>> global dimension be 1?
> >>>>
> >>>>
> >>>>
> >>> Yes, it is a bug for non-mixed elements(!). I noticed but didn't really
> >>> want to start fixing before
> >>> the weekend. It's on the todo-list though.
> >>>
> >>
> >> ok! I thought I might have missed the point but then I think I know
> >> what's going on. Very cool feature.
> >>
> >>
> >
> > It is a true hack that I added for testing purposes. But it seems
> > useful, so let's keep it. I'll clean it up a bit (and fix that bug.)
> >
> >> Btw, you can add that demo now. ;-)
> >>
> >
> > Great.
>
>
> Added. Where should I put documentation?

Here:

https://launchpad.net/fenics-doc

--
Anders

Attachment: signature.asc
Description: Digital signature


References