[firedrake] Issues with LMA of vertical derivative on extruded meshes

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Tue Jan 6 09:47:14 GMT 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 06/01/15 08:52, Eike Mueller wrote:
> Hi Lawrence,
> 
> thanks for the explanation, so my understanding is that in general
> PyOP2 is not aware of the COFFEE optimisation, and the wrapper code
> that is generated in my PyOP2 parloop can’t handle the padding.

Yes, that's right.  You can follow this issue
https://github.com/coneoproject/COFFEE/issues/14 to see if anything
will change.  I hope so, since it's not a very nice model.

> Since I call a PyOP2 parloop directly, I don’t have any control
> over the wrapper code and at the moment it sounds like the only
> thing I can do is switch off the COFFEE optimisation (which, I
> suppose, has implications everwhere in the code, so I really
> shouldn’t do this).

You can do the following in build_lma:

def build_lma(...):
    parameters["coffee"]["O2"] = False
    existing_code
    parameters["coffee"]["O2"] = True


That way the optimisations are only switched off for that one section.

> Isn’t then there a problem with all PyOP2 parloops, and are you
> going to do something about this?

So the problem is that you're doing something that isn't explicitly
supported by the PyOP2 data model: using a Kernel designed for
assembling into a Mat to assemble into a Dat.  It happens to work in
some cases.

I think it is probably useful to properly support a "build_lma_matrix"
style abstraction, but I haven't thought properly about how to do it
right.

Lawrence
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with undefined - http://www.enigmail.net/

iQEcBAEBAgAGBQJUq68hAAoJECOc1kQ8PEYvxYsH/RyIE4fr3WKapkstsmWckEZX
MzGN+C2Zl+oYp4VYDDqb8WtjNoVDl0CzqyAeywLDIUOCktFYD/HFLIcE8q3eSVIA
sAAo/Lt6g0rqBaR6cFyqLWSC4DIcAJAYdEKFfHsOxRxJY1sSzOWMhdl6i35FjMpg
nTZtUMWZd0gXeLXr44FW2aaHbGlJzgjFrlrLx21kXpt1B+ZM5jl2kDJ9N7gU+l8b
GUQsDh/jEuOYKP9lKmLgGktIHTEBh7BTPK2jv36iSqZ2jJ7OExAszAympGPkyTd1
bYcaFXwKQ8IWjbvYfNdQLvOYgbxtGoQuFg5V34q4WOkJ7yb+QRdlyl0Jj/Som4U=
=CFSf
-----END PGP SIGNATURE-----



More information about the firedrake mailing list