Panzer: Commit c468d41b Breaks Charon
Created by: jmgate
@trilinos/panzer
Expectations
After @bathmatt ripped out the std::vector<int>
of LIDs in c468d41b, such that we'll only use the Kokkos::View
version instead, everything should behave the same.
Current Behavior
Charon has a particular example involving Joule heating and a heterojunction (I don't pretend to understand the example, but it seems the combination of those two factors is significant), where Panzer_ScatterDirichletResidual_Epetra_impl.hpp
runs into a problem. In the Jacobian specialization of evaluateFields()
, this bit throws because err
is 2:
if(!preserveDiagonal_) {
int err = Jac->ReplaceMyValues(row, cLIDs.size(), scatterField.dx(), &cLIDs[0]);
TEUCHOS_ASSERT(err==0);
}
I put the old vector
of LIDs back in place to compare, and here's what I'm seeing for the last cell in the workset before everything dies:
rLIDs = {83895, 83896, 83897, 83898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
rLIDsVec = {83895, 83896, 83897, 83898}
cLIDs = {83895, 83896, 83897, 83898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
cLIDsVec = {83895, 83896, 83897, 83898}
It seems the Kokkos::View
s aren't the right size, but for all prior cells in the workset, the vector
and View
versions all have 16 entries. @bathmatt, @eric-c-cyr, any idea what's going on here or how to fix it?