variational-surface-cutting icon indicating copy to clipboard operation
variational-surface-cutting copied to clipboard

Stuck in [qr] symbolic : 79.92 ms

Open lukkio88 opened this issue 5 years ago • 1 comments

Hi,

I have a mesh which seems to be disk topology and 2-manifold. When I use your tool (with the GUI) I get the following when I try to initialize the algorithm:

Constructed halfedge mesh with: 
    # verts =  43199
    # edges =  129573
    # faces =  86368
    # halfedges =  259104
    and 6 boundary components. 
Construction took 37.32 ms
Length scale = 29.2406
[ENERGYPLOT]#TITLE:Energy during optimization
[ENERGYPLOT]#NAMES:Length,Distortion (Dirichlet),Distortion (Hencky),Area,Visibility,Normal Deviation
[ENERGYPLOT]#XLABEL:Iteration
[ENERGYPLOT]#YLABEL:Energy Contribution
Building operators...
  ..done building operators.
[qr] symbolic: 79.92 ms

As a workaround I've tried to re-build with the option -DSUITESPARSE=OFF but when I do make -j8 I get:

/home/MeshProcessing/variational-surface-cutting/projects/cuts/core/src/fast_cholesky.cpp: In constructor \u2018FastCholesky::FastCholesky(GC::SparseMatrix<double>&)\u2019:
/home/MeshProcessing/variational-surface-cutting/projects/cuts/core/src/fast_cholesky.cpp:39:13: error: \u2018class GC::SparseMatrix<double>\u2019 has no member named \u2018to_cholmod\u2019
     mat = A.to_cholmod();
             ^
At global scope:
cc1plus: error: unrecognized command line option \u2018-Wno-unused-private-field\u2019 [-Werror]
cc1plus: all warnings being treated as errors
projects/cuts/core/CMakeFiles/cuts-core.dir/build.make:114: recipe for target 'projects/cuts/core/CMakeFiles/cuts-core.dir/src/fast_cholesky.cpp.o' failed
make[2]: *** [projects/cuts/core/CMakeFiles/cuts-core.dir/src/fast_cholesky.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:662: recipe for target 'projects/cuts/core/CMakeFiles/cuts-core.dir/all' failed
make[1]: *** [projects/cuts/core/CMakeFiles/cuts-core.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

Because I was hoping maybe using Eigen instead of SuiteSparse would've solved the issue. Any chance you can help to understand what the issue is?

lukkio88 avatar Jun 13 '20 20:06 lukkio88

Hi! Pardon the slow responses here. I really wish I had more time to dig in to this, but things are busy!

Unfortunately, I don't have easy answers. It's getting stuck at some step after the symbolic factorization (perhaps the numeric factorization), but it's hard to say where without seeing your application running. Since it's likely a numerical issue, you might try remeshing your input to have more uniform, nearly-equilateral triangles. You're much more likely to run in to numerical issues if there are skinny triangles in the mesh.

The project as-written directly interfaces with Suitesparse for efficiency, so it won't build out of the box with Eigen (even though the larger codebase machinery has some support for swapping in Eigen). I will say that in my experience, the Suitesparse solvers are pretty always more effective than Eigen's.

nmwsharp avatar Jun 24 '20 15:06 nmwsharp