← Back to team overview

dolfin team mailing list archive

Re: systems of linear elliptic PDEs

 

Hi Johan,

    Thanks for your help. The book I mentioned is "Multigrid"
by Ulrich Trottenberg, C.Oosterlee, A. Schuller, Academic Press.
I am happy to know my problem can be handled by using DOLFIN.
However, so far I am totally new to DOLFIN, now I think
I should look inside the DOLFIN, and surely I will post
my further questions to this list.
    Again, thank you very much, I appreciate it.


-- 
Best wishes,
Bing Jian
bjian@xxxxxxxxxxxx


On Sat, 24 Jul 2004, Johan Jansson wrote:

> On Thu, Jul 22, 2004 at 04:32:58PM -0400, Bing Jian wrote:
> > Hi,
> >     I'm looking for a solver for systems of linear elliptic PDEs,
> > To be specific, if you happen to have Trottenberg's Multigrid book
> > on hand, could you please turn to page 290?
> >     My system to be solved is a linear elliptic 2*2 system of
> > PDEs in 2 dimensions, or maybe 3*3 system in 3 dimensions, depending
> > on the real problem. However, here I just assume 2*2 system in 2D
> > case.
> >    If I write the system in
> >                  Lu = f
> >    then
> >      L is a 2*2 matrix of differential operators, with diagonal
> > elements have second order diff operators (also with first and
> > zero order terms) and non-diagonal elements only have first and
> > zero order terms. All the coefficients are also functions of
> > (x,y) with know numerical values. I am not math guy and just
> > reading some books on numerical PDEs, hope my description
> > is clear.
> >     I saw from the website of DOLFIN that solvers to systems of PDEs
> > have been recently added into the DOLFIN, I am wondering if
> > my problem can be solved by DOLFIN. I am familar with C++ programming,
> > so there is possibility, I can try to figure out the details.
> >     Many thanks in advance!
> >
>
> Hi Bing,
>
> Your problem should definitely be solvable in DOLFIN. I'm not familiar
> with the book you're referring to, but your description of the problem
> is clear.
>
> DOLFIN expects the problem to be input in variational form (or weak
> form), so you would have to multiply the equation by a test function v
> = (v_1, v_2) and integrate on both sides. For the terms with second
> order derivatives, you have to move one of the derivatives to the test
> function (due to the elements being linear).
>
> You can look at the stationary elasticity module or the vector wave
> module for some examples (the stationary elasticity equation isn't
> time dependent, so it should be very similar to the one you're
> describing).
>
> The left hand side of the scalar wave equation (with backward Euler
> time discretization) looks like this in the DOLFIN module (from
> Wave.h):
>
>       return (1 / k * u * v + k * (grad(u), grad(v))) * dx;
>
> You can use a ddx() notation as well for individual derivatives
> (gradients are expanded):
>
>       return (1 / k * u * v + k * (ddx(u) * ddx(v) + ddy(u) + ddy(v)) * dx;
>
> while the left hand side of the vector wave equation looks like this
> (from WaveVector.h):
>
>       return
>         (1 / k * u(0) * v(0) + k *
>          (ddx(u(0)) * ddx(v(0)) + ddy(u(0)) * ddy(v(0)))) * dx +
>         (1 / k * u(1) * v(1) + k *
>          (ddx(u(1)) * ddx(v(1)) + ddy(u(1)) * ddy(v(1)))) * dx;
>
> (Note: I changed u.ddx() to ddx(u) for clarity, both are allowed, but
> the latter probably preferred.)
>
> Hope this helps,
>   Johan
>
>




Follow ups

References