On Fri, 17 Jan 2014 16:54:27 -0800
Nikolaus Rath <[email protected]> wrote:

> On 01/09/2014 11:19 AM, Jan Blechta wrote:
> >>>> I would like to solve the following equation (which does not
> >>>> directly come from a PDE):
> >>>>
> >>>> \int dV f(x) * \partial_r g(x) = \int dA u(x) * \partial_n g(x)
> >>>>
> >>>> f(x) is known, u(x) is unknown, and the equation should hold for
> >>>> any g(x) that satisfy Laplace's equation.
> >>>>
> >>>> In other words, I'm looking for a weight function u(x), such that
> >>>> the surface integral of the normal derivative of any g(x)
> >>>> (weighted by u) gives the same result as the volume integral of
> >>>> the radial derivative of
> >>>> g(x) (weighted by the known function f(x)).
> >>>>
> >>>> Is it possible to do this with FEniCS?
> >>>> It seems that the equation itself is easy to express in UFL, but
> >>>> I am not sure how do deal with the fact that there are no
> >>>> boundary conditions, and that any trial function g(x) needs to
> >>>> satisfy Laplace's equation.
> >>>
> >>> Yes. Look at the demo
> >>>
> >>>      demo/documented/neumann-poisson
> >>>
> [...]
> >>
> >> However, even after going through the example, I'm not sure how I
> >> can tell FEniCS to use only trial functions satisfying Laplace's
> >> equation. In the example, the constraint on the test functions
> >> seems to fix just the constant offset. It's not clear to me to
> >> extend this to something more complicated, where the constraint
> >> itself takes the form of a PDE. Do you think you could explain in
> >> a bit more detail?
> > 
> > You change the constraint to Laplace problem, and the space R for
> > Lagrange multiplier and corresponding test function to some
> > appropriate FE subspace of Sobolev space W_0^{1,2}. Hint:
> > http://en.wikipedia.org/wiki/Lagrange_multipliers_on_Banach_spaces
> 
> 
> Alright, I did quite a bit of reading now (mostly Gockenbach, also
> looked into Bhatti, Reddy and Strang), and I think I got the part
> about natural/essential vs Neumann/Dirichlet boundary conditions (and
> also got a lot more understanding of the finite element method
> itself). Thanks for the pointers!
> 
> 
> However, I am still struggling to combine the finite element method
> with Lagrange multipliers. I think I have a good handle on Lagrange
> multipliers for constrained optimization of a scalar function or
> integral, but I fail to transfer this to FE.

Ok, potential for Poisson problem is

\Psi(u) = 1/2 \int |\nabla u|^2 - L(u)

So if you want to minimize \Psi on V = H^1(\Omega) subject to constraint
\int u = 0, you do can try to find a minimum (u, c) \in (V \times R) of

\Psi(u) - c \int u

Taking Gateaux derivative of this gives precisely formulation in
neumann-poisson demo.

> 
> 
> I tried to work through the neumann-poisson problem on my own, but I
> know I'm doing something fundamentally wrong. The approach that I
> would use to incorporate \int u = u0 into the solution is to define
> 
> V = FunctionSpace(mesh, "CG", 1)
> R = FunctionSpace(mesh, "R", 0)
> u = TrialFunction(V)
> v = TestFunctions(V)
> a1 = inner(grad(u), grad(v) * dx
> L1 = g*v*ds
> r = TestFunctions(R)
> a2 = u*r*dx
> L2 = u0*r*dx
> 
> and then solve {a1 == L1, a2 == L2} simultaneously. But obviously that

Suggested problem is singular.

> doesn't use any Lagrange multipliers. Now I can imagine to introduce a
> Laplace multiplier by minimizing norm(a1(u) - L1) subject to a2(u)=L2,
> but that seems to be just adding complication without any gain.
> 
> I know that I probably have to introduce the Lagrange multiplier
> earlier in the variational problem, but I do not see how. Could you
> maybe explain some of the intermediate steps between \int u = 0 and
> the definition of the variational form over the mixed function space?
> If I look at a = (inner(grad(u), grad(v)) + c*v + u*d)*dx, I do not
> understand how the Lagrange multiplier got introduced. Why is c
> (which I assume is the lagrange multiplier) multiplied with v? And
> why is there a second test function d?

Yes, c is a Lagrange multiplier and d is its test function. This is a
common structure of linear variational problem.

Note that as problem is linear and symmetric, derivation given above
will work because you can everytime find a potential to your problem.

Also check Stokes equations. Pressure can be understood there as a
Lagrange multiplier for div u = 0 constraint and a structure of
variational Stokes problem (for example stokes-taylor-hood demo) is
precisely the same as neumann-poisson demo.

Jan

> 
> 
> Best,
> Nikolaus
> 
> 
> 
> 
> 
> _______________________________________________
> fenics mailing list
> [email protected]
> http://fenicsproject.org/mailman/listinfo/fenics

_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to