| 8040c1f3 | 01-Oct-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
Plex: move DMPlexProjectionFunction() back to libdm
When I first implemented hanging constraints, I moved DMPlexProjectFunction() to libksp because I used a global solve to determine the values of d
Plex: move DMPlexProjectionFunction() back to libdm
When I first implemented hanging constraints, I moved DMPlexProjectFunction() to libksp because I used a global solve to determine the values of dofs on an anchor point that is not in the closure of any cell. This was a hack, as those values do not require a global solve, but can be determined with functionals evaluated on the anchor point: -dm_plex_max_projection_height > 0 allows functionals to be evaluated on these anchor points, so the global solve is no longer necessary.
To see the effect, you can modify the scripts to run ex3 in src/dm/impls/plex/examples/tests: set -dm_plex_max_projection_height 0 in the runex3_nonconforming_{simplex,tensor}_{2,3} examples, and projecting a function fails.
I did not move DMPlexProjectField() back into libdm because it evaluates field jets, not just field values, and doing this on non-cells isn't straightforward.
show more ...
|