| c0cbe899 | 28-Oct-2016 |
Toby Isaac <tisaac@uchicago.edu> |
DMPlex: reduce max iterations for point location.
As I mentioned in a previous commit, there are valid trilinear hexahedra for which Newton's method will inevitable converge to roots outside the ref
DMPlex: reduce max iterations for point location.
As I mentioned in a previous commit, there are valid trilinear hexahedra for which Newton's method will inevitable converge to roots outside the reference element, even when there is also a root in the reference element. So, given that we are accepting imperfection from point location (a method that is not guaranteed to work for all valid element maps), I chose a maximum number of iterations that seems to be sufficient for even some hard-case deformed elements.
show more ...
|
| 9d150b73 | 19-Aug-2016 |
Toby Isaac <tisaac@uchicago.edu> |
DMPlex: implement point inversion for multilinear maps.
This is implemented by a fixed number of Newton iterations. In 2D, I know that this is a contraction map for a non-degenerate element, and wi
DMPlex: implement point inversion for multilinear maps.
This is implemented by a fixed number of Newton iterations. In 2D, I know that this is a contraction map for a non-degenerate element, and will always converge to the right solution. The same cannot be said in 3D. There are non-degenerate trilinearly mapped hexahedra for which any Newton iteration, damped or undamped, can converge to a spurious solution outside of the element, even if there is a solution inside the element. One could go about a costly procedure of trying to determine if the target coordinate is inside of the region defined by the mapped boundary of the reference cell, but this is an expensive procedure. For now, I am relying on the elements not being so deformed that Newton doesn't converge. I spent much longer than I should have trying to come up with a better solution to this problem. I should write the whole thing up.
WIP: implementation of all point location routines
DMPlex: added complementary DMPlexReferenceToCoordinates() methods
For affine, this just wraps CoordinatesRefToReal. For tensor, it uses the tensor structure. In general, the basis space of the PetscDS is used to map points.
WIP: DMPlex: test point inversion.
It seems to work, but the test is flawed for simplicial elements
DMPlex: point location is working for implicit discretizations
Now to do the work for non-implicit (e.g. isoparametric) meshes
show more ...
|