-
Notifications
You must be signed in to change notification settings - Fork 72
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
Edge collapse cause Numerical Issue in solving L2 projection #302
Comments
I have a fix for this I will push it today. |
I have checked your pull request: Fix mass matrix in L2 projection #303. However, it still can't work. Got |
Strange... it is working for me. Can you run it in debug mode? The easiest way to do this is to run the sim in release until it crashes and then use the restart data to restart in debug mode. For example
Can you also try the updated in-timestep data? I made some changes to |
When I restart I still get:
But I will try the updated in-timestep data next. |
Is this run in debug mode (i.e. run CMake with |
It is run in debug mode. I still got:
|
Can you use |
|
Ah, okay. I am using CHOLMOD instead of MKL Pardiso. I can try to reproduce it on a Linux machine with MKL support. In the meantime try to switch to CHOLMOD on your side and see if that fixes the issue. |
Thanks! But how can I switch to CHOLMOD? |
Change
in
|
Thanks! It works with CHOLMOD. |
Describe the bug
Thanks for your amazing work!
However, when I run your in-timestep-remeshing code, I encountered Segmentation fault (core dumped). I find that this bug encounters the first time successfully collapsing an edge, and occurs in
constrained_L2_projection()
function,al_solver.solve_reduced(nl_solver, problem, sol);
when the Newton solver (in PolySolve) uses
linear_solver0>analyze_pattern(hessian, hessian.rows());
.I guess it's a bug related to edge collapse or L2 projection because when I try sizing field method, after successfully collapsing the first edge, in
unconstrained_L2_projection()
function, it causes Numerical Issue insolver->factorize(M)
.I find that it may due to
Eigen::PardisoLLT
solver used in Newton solver orEigen::SimplicialLDLT
solver used inunconstrained_L2_projection
requires that the matrix to be positive-definite. However, in the above cases, the determinate of the matrix is zero.This bug can be forcely solved by adding a small positive diagonal matrix before using these solvers, however, it will leads to cpu down (get stucked in solver) and terminal killed. So I guess there's some underlying bug.
To re-produce the bug, you can try:
./PolyFEM_bin -j in-timestep-remeshing-data/scripts/masticator/h=0.1.json
I'm using the json file in https://github.com/zfergus/in-timestep-remeshing-data.git.
Platform
The text was updated successfully, but these errors were encountered: