> in the code and re-implemented it. In serial version, all works fine so far. > However, when running in parallel, I am seeing an issue in the method > PlasticityContactProblem::update_solution_and_constraints. > > In particular, it turns out that the value of > > const unsigned int index_z = dof_indices[q_point]; > > might be out of the range of
If you do a loop over all locally owned and locally relevant cells than all dof values of a ghosted vector should exist. If you see an error, something else must be incorrect (like the IndexSets). > PETScWrappers::MPI::Vector lambda( this->locally_relevant_dofs, > this->mpi_communicator); This looks suspicious. Does this really create a ghosted vector in PETSc? I thought this would fail (at least in debug mode). Finally, it looks like you modified it to only look at locally owned cells to build constraints. The problem with this is that processors also need to know about constraints on ghost cells, not only locally owned cells. You no longer compute them, which means the solution might become incorrect around processor boundaries. It probably (hopefully?) works without adaptivity because each locally owned DoF is within at least one locally owned cell, but imagine a case where a dof on a ghost cells is constrained and interacts with a hanging node the current processor owns. You will not handle this case correctly. I don't quite remember if there is an easy way to do this, but I remember writing a debug function that checks if a ConstraintMatrix is consistent in parallel. This was a while back, but I can try to find it. -- Timo Heister http://www.math.clemson.edu/~heister/ -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.