Description
Bug Report
@trilinos/muelu
Description
Using the distance Laplacian dropping from CoalesceDropFactory_kokkos for an elasticity problem with e.g. 2 or 3 dofs per node results in a segfault.
The main reason is the coordinate input and it's handling later on. It seems like the CoalesceDropFactory_kokkos expects an expanded dof coordinate vector build from the nodal one. In our application code we assemble the nodal coordinate vector and give it to MueLu. The multigrid hierarchy checks the coordinate vector map with ReplaceCoordinateMap
and replaces it if e.g. A->getRowMap() != coordinates->getMap()
is true. The replacement is not an extension to the matrix dof map though, but more a reordering based on the reconstructed matrix node map.
--> This will break in CoalesceDropFactory_kokkos as the maps of A
and coordinates
are not the same.
If I provide the dof based coordinate vector and A->getRowMap() == coordinates->getMap()
is fullfilled, there's still a problem happening in CoalesceDropFactory_kokkos. As each dof at a point holds the same coordinates, looping over each matrix row results at some point in a zero distance breaking the 1/distance
calculation for the strength measure with either segfaulting or random behavior.
So no matter what coordinate input I choose, it breaks either way. Currently I'm not sure what the correct input should look like and what coordinate vector we should expect in CoalesceDropFactory_kokkos.
Steps to Reproduce
I put a first WIP unit test here CoalesceDropFactory_kokkos-multiple-dof-distance-laplacian