-
Notifications
You must be signed in to change notification settings - Fork 90
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
Matrix-free Schwarz tests fail in the absence of DTK #107
Comments
I have begun to look into this issue. It seems the reason this issue shows up w/o DTK is that when DTK is off, coupled_solution is obtained from the application via the getX() routine, whereas w/ DTK it is obtained from the STK discretization. Here is a backtrace of the error: #1 0x00007fffd40326b9 in Tpetra::MultiVector<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace>, false>::get1dView (this=0xe2ecd0) at /home/ikalash/Trilinos/packages/tpetra/core/src/Tpetra_MultiVector_def.hpp:3719 get1DView() is failing (SchwarzBC_Def.hpp:254) b/c there is something wrong with coupled_solution when obtained from the application. I haven't figured out what yet (it is not null). Thought I would post this in case @lxmota , this rings any bells, since you wrote the getX() routine and relevant code in SchwarzBC_Def.hpp that uses this routine. I will continue looking into the issue. |
This may be related to that other issue that I could not make DTK work with the TPetra vector that the getX() function returns. This is because the solution vector from STK and the one from getX(), although both TPetra vectors, have different template parameters. The getX() function is trivial. It just returns a pointer:
That pointer is passed to
and copied here:
so it just points to the solution that I'm not sure we want to spend too much time chasing this weird issue. The old Schwarz BC is now left in the code just for debugging, so I don't think it's critical that we make it work with matrix-free. |
setting of x_, xdot_, etc. using copy constructor from xT, xdotT, etc., rather than setting pointers equal to each other. With this fix, getX() returns a valid pointer to a Tpetra_Vector, for which get1DView() works.
Fixed this; see commit ee0dd11 . |
The matrix-free Schwarz test that uses this file:
tests/large/LCM/Schwarz/Cubes/cubes_matrix-free.yaml
fails with a segmentation fault here:
src/LCM/evaluators/bc/SchwarzBC_Def.hpp#L254
in the absence of DTK.
I'm not sure if matrix-free Schwarz is supposed to work without DTK, so until there is confirmation one way or another, I'm opening this issue.
Also, this other test fails in the same way:
tests/large/LCM/CrystalPlasticity/SchwarzBar/matrixFree
The text was updated successfully, but these errors were encountered: