[firedrake] difference between matrix-action and form-action
Lawrence Mitchell
lawrence.mitchell at imperial.ac.uk
Mon Apr 27 12:19:46 BST 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 27/04/15 12:04, Eike Mueller wrote:
> Dear firedrakers,
>
> Assume I have assembled a UFL form in the HDiv space:
>
> form_uu = [a UFL form] mat_uu = assemble(form_uu,bcs=bcs)
This assembles an operator with bcs applied, useable in a linear
solver. The rows /and/ columns corresponding to the BC nodes are the
identity.
> then shouldn’t the following two experssions fo exactly the same
> thing?
>
> version A: with v.dat.vec as y: with u.dat.vec_ro as x:
> mat_uu.M.handle.mult(x,y)
So this computes I_{Gamma} + A_{Omega \ Gamma}, i.e. on the boundary
nodes y is x elsewhere it's Ax.
> version B: v = self._mutilde._form_action(u)
This computes the action of A on u /without/ boundary conditions.
What are you expecting to see?, Ax on the non-boundary condition
nodes, bc-value on the boundary values?
> as fas as I can tell, only version B gives the correct result in my
> case.
Lawrence
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAEBAgAGBQJVPhtOAAoJECOc1kQ8PEYv+VAIAMqhJa+dIZSlSu20g2BSecv6
WFTlDq/gyTu1kQs3mYrwrPTzAUbLt5jMjZMZdUdQVyXnQC4H1i3zBJch5z9smMmT
SDL6zIn120XYK+CjAD8snbpRLU/DPvdJ9DMo0QQ1c9swUSLdLxFEnxYuB2OQXqKI
nDF2c0T13+uiYQe9m7DzEHMEmN0TB4NZvez8X/6xPb/2lp0U1wwJDxU/7+nk9DDw
Qe5RIf5VVzUg21RhtvDAdZqp4AylBPq7GEpUwmcetv4PqYnjgcQMOYQaZGUW1AuC
qxVMP29VsjIUCjUlyE9KL7oBBshBjwci4icpkpgP8DC7YnuQrGvqWrgLBOIMHfI=
=NtfA
-----END PGP SIGNATURE-----
More information about the firedrake
mailing list