{"push_id":556206388,"size":1,"distinct_size":1,"ref":"refs/heads/snes-dmshell","head":"054b1ac3226ae094a5f4b8ac2396a5986cf4a460","before":"20c3377432617b8eed1aeceb0b7a02a16bd4c4ef","commits":[{"sha":"054b1ac3226ae094a5f4b8ac2396a5986cf4a460","author":{"email":"4c36d8e3f25368d435b150707d5aeb1aa1329c85@imperial.ac.uk","name":"Lawrence Mitchell"},"message":"nlvs: use a DMShell to wrap up the context for SNES solvers\n\nRather than setting the function and jacobian evaluation using instance\nmethods that are part of the NLVS, instead build a DMShell that contains\napplication context that lives inside the SNES.  This has two effects:\n\n1. It breaks the reference cycle in NLVS, meaning that we don't have to\n   do anything special to collect it anymore.\n\n2. It will ease the introduction of more transparent multigrid setups,\n   where we will use appropriate DM coarsening to provide context and\n   per-level setup automatically, rather than having to set up the\n   SNESes by hand on every level.","distinct":true,"url":"https://api.github.com/repos/firedrakeproject/firedrake/commits/054b1ac3226ae094a5f4b8ac2396a5986cf4a460"}]}