I'm still working on implementing a homotopy solver for systems of nonlinear equations. It seems that everything is working in serial, but I'm having at least one issue in parallel.
To form the (n+1) x (n+1) Jacobian, I use MatGetLocalSubMatrix, with the ISs from the DMComposite. One of the submatrices is (globally) 1 x n. I need to set one of its values, at global column j, to a particular value. My current attempt to do this involves getting the local to global mappings, with DMCompositeGetISLocalToGlobalMappings, then using ISGlobalToLocalMappingsApply with global index j. If the processor has a locally mapped index, I call MatSetValuesLocal at the local index. So far, this works, in that it seems the value is set at the appropriate point. My issue is that I must use ADD_VALUES, due to the nature of the algorithm for the other submatrices. Therefore, I need a way to ensure that the correct value is set. For example, if two processors map to the same global index, then I need a way to check this and use local values such that the sum is the correct global value. I suspect that this has a simple solution - hopefully someone has some hints. Thanks!
