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

304_ConjugateFields not converging #50

Open
jockyuiz opened this issue Jul 14, 2021 · 4 comments
Open

304_ConjugateFields not converging #50

jockyuiz opened this issue Jul 14, 2021 · 4 comments

Comments

@jockyuiz
Copy link

The conjugacy solver in this tutorial is not converging for me. I don't know what's going wrong but it seems the non-conjugacy value gets even higher after each iteration...And the final result gets crazy. Do you know what may potentially go wrong here for me?
For constraints and mesh, I think I use the original data in the shared path. And I think I do not change anything in the code. But I don't know if I somehow rewrite it when running other programs.
Iteration data: https://pastebin.com/E3tdiWjr
inspired_mesh_b.dmat: https://pastebin.com/nX8S7LWM
inspired_mesh_bc.dmat: https://pastebin.com/VJ2Yzu6t

Also a more general question: for all the examples we tried to interpolate the field given some fixed constraints. But can we simply use a field that already exists on the mesh, i.e. the principal curvature, or take the gradient of some scalar function? For this example, a directional field that aligns with principal curvature should already be conjugate... So may we just use this directly instead of finding a deformation for an interpolated field?

@avaxman
Copy link
Owner

avaxman commented Jul 19, 2021

I will be looking now at your input. For your question: there is libigl gradient: https://github.com/libigl/libigl/blob/main/tutorial/204_Gradient/main.cpp
and libigl principal directions:
https://github.com/libigl/libigl/blob/main/tutorial/203_CurvatureDirections/main.cpp
More general versions (for instance for N-fields) will be released in the next release (with some other exposed differential geometry operators that already exist in the internal implementation).

@avaxman
Copy link
Owner

avaxman commented Jul 19, 2021

hmmm it is the original data and consequently works well for me in both linux and windows... could you say which system you use exactly?

@jockyuiz
Copy link
Author

hmmm it is the original data and consequently works well for me in both linux and windows... could you say which system you use exactly?
I am using Windows 10, x64-based system. How can I debug here to see where might go wrong?

@jockyuiz
Copy link
Author

I will be looking now at your input. For your question: there is libigl gradient: https://github.com/libigl/libigl/blob/main/tutorial/204_Gradient/main.cpp
and libigl principal directions:
https://github.com/libigl/libigl/blob/main/tutorial/203_CurvatureDirections/main.cpp
More general versions (for instance for N-fields) will be released in the next release (with some other exposed differential geometry operators that already exist in the internal implementation).

Those examples in libigl seem to be vertex-based fields. When we transfer vertex-based directional fields to face-based, is there a good way to do that? Summing up the values at three vertices and simply take the average seems not working well for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants