Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clement interpolation #10

Merged
merged 24 commits into from
Apr 5, 2016
Merged

Conversation

MiroK
Copy link
Collaborator

@MiroK MiroK commented Apr 3, 2016

I have added Clement interpolation of argitrary UFL built expressions. The interpolant is constructed by precomputing and caching certain averaging operator which is then applied to construct the resulting $CG_1$ (scalar, vector, tensor) function. By running the demos you'll see that the order of convergence of the interpolant is 1.5 in $L^2$ norm (this is tested on a jungle of expressions in 1d, 2d and 3d). You'll also see that the algorithm scales linearly with number of dofs of the interpolant. The tests pass but coverage of the functionality is not 100%. In particular, I have not seen if the code works in parallel. Also, before this is merged, performance of repeated clement_interpolate vs ClementInterpolant.__call__ should be evaluated. Finally the demos could be made nicer (perhaps). More suggestions?

@MiroK MiroK self-assigned this Apr 3, 2016
@MiroK
Copy link
Collaborator Author

MiroK commented Apr 5, 2016

I added parallel tests for ClementInterpolation functionality. All tests are green. The demos are much nicer + there's a new performance demo which shows that if ClementInterpolant instance is reused you gain about 12x speed up relative to clement_interpolate. I have opened #11 as a reminder for some things to improve in the future. But for now I am done :)

@mikaem mikaem merged commit 89a1d3c into mikaem:master Apr 5, 2016
@MiroK MiroK deleted the feat-clement-interpolation branch April 6, 2016 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants