Skip to content

MueLu: Distance Laplacian dropping for multiple dof per node in CoalesceDropFactory_kokkos #13894

Open
@maxfirmbach

Description

@maxfirmbach

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.

@cgcgcg

Steps to Reproduce

I put a first WIP unit test here CoalesceDropFactory_kokkos-multiple-dof-distance-laplacian

Metadata

Metadata

Assignees

Labels

pkg: MueLutype: bugThe primary issue is a bug in Trilinos code or tests

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions