On Sun, Apr 5, 2009 at 2:54 PM, Anders Logg <[email protected]> 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 <[email protected]> > 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 <[email protected]> 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 > > > [email protected] > > > http://www.fenics.org/mailman/listinfo/dolfin-dev > > > > > > > > _______________________________________________ > > DOLFIN-dev mailing list > > [email protected] > > http://www.fenics.org/mailman/listinfo/dolfin-dev > > > > > > > _______________________________________________ > > DOLFIN-dev mailing list > > [email protected] > > 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 > [email protected] > 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
_______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
