dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #12894
Re: matrix action
On Sun, Apr 5, 2009 at 2:54 PM, Anders Logg <logg@xxxxxxxxx> wrote:
> Dirichlet BC would need to be added in/after each multiplication and
> it should be possible to build it into the mult() operator and make it
> efficient.
I still think the best way to handle this is to eliminate them, as I talked
about
last time at Simula.
Matt
>
> We can add a class to handle this after the release. Any suggestions
> for a good name? ActionMatrix? Action? ActionKrylovMatrix?
>
> --
> Anders
>
>
> On Sun, Apr 05, 2009 at 08:31:58AM -0500, Robert Kirby wrote:
> > Anders, Martin:
> > Dirichlet Boundary conditions?
> >
> >
> > On Sun, Apr 5, 2009 at 5:58 AM, Martin Sandve Aln s <martinal@xxxxxxxxx>
> wrote:
> >
> > UFL defines action so you don't have to rewrite/duplicate your form:
> >
> > a = u*v*dx
> > b = action(a, f) # == f*v*dx
> >
> > Martin
> >
> >
> >
> > On Sun, Apr 5, 2009 at 10:34 AM, Anders Logg <logg@xxxxxxxxx> wrote:
> > > On Sat, Apr 04, 2009 at 08:30:39PM -0500, Robert Kirby wrote:
> > >> Thanks, I'll take a look next week.
> > >>
> > >> One thought that would take a little work but might be worth
> exploring
> > from the
> > >> ffc end would be
> > >> to define matrix actions in the form compiler that map to
> KrylovMatrix
> > rather
> > >> than Matrix.
> > >> For example, one can take the Poisson code, replacing the
> TrialFunction
> > with
> > >> Function, so that
> > >>
> > >> v = TestFunction(V)
> > >> u = Function(V)
> > >> a = dot(grad(v), grad(u))*dx
> > >>
> > >> and then generate code for a KrylovMatrix subclass. Anders and I
> > experimented
> > >> with the effects of ferari-optimization and found that they were
> most
> > profound
> > >> in this context. It also removes the assembly bottleneck since
> you
> > don't have
> > >> to beat on a sparse matrix. On the other hand, you don't have the
> > matrix to
> > >> feed to algebraic preconditioners. No free lunch.
> > >>
> > >> Rob
> > >
> > > This wouldn't require anything on the FFC end. It would just
> require a
> > > new C++ class which subclasses either of the Krylov matrices (or
> maybe
> > > a new GenericKrylovMatrix) that takes a linear form (like your 'a'
> > > above) to the constructor and calls assemble() in the overloaded
> mult().
> > >
> > > This should be easy to add.
> > >
> > >
> > >
> > > -----BEGIN PGP SIGNATURE-----
> > > Version: GnuPG v1.4.9 (GNU/Linux)
> > >
> > > iEYEARECAAYFAknYbQkACgkQTuwUCDsYZdHiCgCeOk8lUh47at3BIt9E7/Xkinw1
> > > 3KEAniQRFbDbirrEOgNznCFdPaLfKD9E
> > > =YC3r
> > > -----END PGP SIGNATURE-----
> > >
> > > _______________________________________________
> > > DOLFIN-dev mailing list
> > > DOLFIN-dev@xxxxxxxxxx
> > > http://www.fenics.org/mailman/listinfo/dolfin-dev
> > >
> > >
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/mailman/listinfo/dolfin-dev
> >
> >
>
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/mailman/listinfo/dolfin-dev
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAknZDHEACgkQTuwUCDsYZdHnpgCeNPKzb3BP2FFxuddcSyBktbVf
> G/kAn0P1cE/saGGcwhbBQ9zmWSQ6uyRM
> =3PXl
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
>
>
--
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
Follow ups
References