interpolate Morley
See original GitHub issueThe problem is to interpolate a function defined on Morley elements at a specified (x, y) point which isn’t necessarily a node; e.g. the deflection at the centre of the Kirchhoff plate in ex02, or the value of the stream-function at the centre of the circular-cylindrical cavity in ex18.
Attempting MeshTri.interpolator
with the MeshTri
returned by refinterp
fails #59; the mesh is invalid, having duplicate points.
I think interpolation involves two steps:
- Find the element (if any) that contains the point.
- Evaluate the function based on the local basis functions of that element and the elemental degrees of freedom.
and I suspect that in general the first is the harder.
Thus far, this operation is only implemented in scikit-fem as MeshTri.interpolator
(P1) and MeshTri.const_interpolator
(P0) and makes use of :
matplotlib.tri.Triangulation
,matplotlib.tri.LinearTriInterpolator
matplotlib.tri.Triangulation.get_trifinder
Perhaps the TriFinder
might be factored out of those so that it could also be used for other elements defined on linear simplicial meshes; e.g., besides Morley, also affine P2. Looking ahead, with MeshQuad._splitquads
, perhaps quadrilateral meshes too.
Issue Analytics
- State:
- Created 5 years ago
- Comments:25 (25 by maintainers)
Top GitHub Comments
cc99ad97b335c1698816c19b83fa46dc1683b6f0 should fix interpolating
ElementH2
bases. Support for multiple elements was missing inMappingAffine.F
.When you read the source code in Github and mouse over the line number, three dots apper next to it. Pressing that gives you a URL.