← Back to team overview

dolfin team mailing list archive

Re: SystemAssembler

 

On 4 October 2011 19:21, Garth N. Wells <gnw20@xxxxxxxxx> wrote:

> On 4 October 2011 18:05, Kent-Andre Mardal <kent-and@xxxxxxxxx> wrote:
> >
> >
> > On 4 October 2011 18:13, Anders Logg <logg@xxxxxxxxx> wrote:
> >>
> >> On Tue, Oct 04, 2011 at 04:17:01PM +0100, Garth N. Wells wrote:
> >> > On 4 October 2011 12:24, Anders Logg <logg@xxxxxxxxx> wrote:
> >> > > SystemAssembler does not support subdomains. It is even silently
> >> > > ignoring all other integrals than number 0.
> >> > >
> >> > > This is one of the remaining bugs for 1.0-beta2. I can try to fix it
> >> > > but would like some input on what shape the SystemAssembler is
> >> > > currently in. I haven't touched it that much before since it looks
> >> > > like a bit of code duplication to me. In particular, is it necessary
> >> > > to keep both functions cell_wise_assembly and facet_wise_assembly?
> >> > >
> >> >
> >> > It would require some performance testing to decide. I expect that,
> >> > for performance reasons, both are required.
> >>
> >> I'm getting very strange results. Here are results for assembling
> >> Poisson matrix + vector on a 32 x 32 x 32 unit cube:
> >>
> >>  Regular assembler: 0.658 s
> >>  System assembler:   9.08 s (cell-wise)
> >>  System assembler:    202 s (facet-wise)
> >>
> >> Is this expected?
> >>
> >> What are the arguments against ditching SystemAssembler (for less code
> >> duplication) and adding functionality for symmetric application of BCs
> >> on the linear algebra level?
> >>
> >
> >
> >
> > Earlier system_assemble of A and b was faster than assemble of A and b.
>
> It was faster because it was less general. After being generalised,
> the performance of SystemAssembler was to all intents and purposes the
> same as Assembler.
>
> > Something strange must have happened.
> > SystemAssemble enforce symmetric BC elementwise which
> > is much faster than doing it on linear algebra level.
>
> I'm not sure that that is true. In my experience the difference is
> marginal.
>
> Garth
>

ok, I think the reason for doing it elementwise is that I thought it was
is easier and more efficient to go through
the columns on the element level, but I might be wrong.

Kent


>
> > Kent
> >
> >>
> >> --
> >> Anders
> >>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~dolfin
> >> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >> Unsubscribe : https://launchpad.net/~dolfin
> >> More help   : https://help.launchpad.net/ListHelp
> >
> >
>

References