[dune-fem] Solution of a linear system, where blocks have different size

Sacconi, Andrea a.sacconi11 at imperial.ac.uk
Wed Apr 25 10:53:46 CEST 2012


Hi Tobias,

thanks for your answer!

I started exactly from the Stokes tutorial, and I'm still modifying the code to adapt the Uzawa solver to my Schur complement approach.

My question basically comes from my supervisor, who would like to know if it's possible to use a solver for the entire system.
So, is it possible? Is there in DUNE-FEM (and / or DUNE-ISTL) any class useful in solving such a coupled system, without any elimination of one of the two unknowns?
No matter how awkward or uncommon it is ...

I'll be adapting the Uzawa file, but I'd like also to do in the second way, as my supervisor asked me to do.

Many thanks!

Andrea

PS, yes, it did. Thanks again!
__________________________________________________________

Andrea Sacconi
PhD student, Applied Mathematics
AMMP Section, Department of Mathematics, Imperial College London,
London SW7 2AZ, UK
a.sacconi11 at imperial.ac.uk

________________________________________
From: Tobias Malkmus [tomalk at mathematik.uni-freiburg.de]
Sent: 25 April 2012 07:04
To: Sacconi, Andrea
Subject: Re: [dune-fem] Solution of a linear system, where blocks have different size

Hi Andrea

Maybe you should also have a look into the dune-fem-howto stokes example.

There you can find an Uzawa Solver for problems like

|A B^T | x  = f
|B  0  | y  = g


To use this uzawa solver you have to provide the operator B and A^-1.
The implemented uzawa algorithm solves this saddelpoint problem iterative.

As far as i know adding the addtional Matrix C should not be so difficult.


Best Tobias

Ps. did the patch i send you worked for your problem ?


On 04/24/2012 08:47 PM, Dedner, Andreas wrote:
> If you wanted to do a more standard type method (e.g.
> first compute y then x) this might work.
>
> You already have:
> OperatorA
> OperatorB
> OperatorC
>
> Define:
> OperatorAinv using for example the ISTL binding
> (e.g., Dune::ISTLCGOp< DiscreteFunctionType, LinearOperatorType >)
> Then define a SchurOperator evaluating to
> -BA^{inv}B^T+C
> e.g.
> SchurOperator::evaluate(u,v)
> {
> OperatorC(u,v);
> OperatorB(u,bu);
> OperatorAinv(bu,abu);
> OperatorB(abu,babu);
> v += babu;
> }
> Then you can use one of the matrix free inverse operator
> implementation found in dune-fem:
> Dune::CGInverseOperator< DiscreteFunctionType >
> solver( SchurOperator, solverEps, solverEps );
> then solver(g,y);
> should give the right value for y using AInv and B
> you should get x
>
> DiscreteFunctionType is in this case the type for y.
>
> I almost think that doing the full system in one go might
> be almost more complicated....
>
> Best
> Andreas
>
> ------------------------------------------------------------------------------------------
> *From:* dune-fem-bounces+a.s.dedner=warwick.ac.uk at dune-project.org
> [dune-fem-bounces+a.s.dedner=warwick.ac.uk at dune-project.org] on behalf
> of Sacconi, Andrea [a.sacconi11 at imperial.ac.uk]
> *Sent:* Tuesday, April 24, 2012 5:44 PM
> *To:* dune-fem at dune-project.org
> *Subject:* [dune-fem] Solution of a linear system, where blocks have
> different size
>
> Hi everyone,
>
> suppose I need to solve the following linear systems:
>
> | A - B^T| | x | = 0
> | B C | | y | = g
>
> x = -A^{inv}B^Ty
>
> (-BA^{inv}B^Ty+C)y = g
>
> I have already implemented the three operators A, B and C.
> I would like to use a direct / iterative solver in order to solve the
> entire system, i.e. without any formal elimination of one of the two
> variables.
>
> Pay attention that x and y are, in practice, a scalar-valued and a
> vector-valued function, so their algebraic counterparts have different
> sizes, i.e. the four blocks don't have identical dimensions.
> Is it possible to implement such a solver in DUNE-FEM, maybe interfacing
> with DUNE-ISTL, "gluing" the four blocks to get the solution after the
> "black-box" solver has been used?
>
> Cheers,
>
> Andrea
>
> __________________________________________________________
>
> Andrea Sacconi
> PhD student, Applied Mathematics
> AMMP Section, Department of Mathematics, Imperial College London,
> London SW7 2AZ, UK
> a.sacconi11 at imperial.ac.uk
>
>
> _______________________________________________
> dune-fem mailing list
> dune-fem at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-fem


--
Tobias Malkmus                 <tomalk at mathematik.uni-freiburg.de>

Mathematisches Institut               Tel: +49 (0) 761 203 5651
Abt. für Angewandte Mathematik        Universität Freiburg
Hermann-Herder-Str. 10
79104 Freiburg





More information about the dune-fem mailing list