I have an array of values which are in my application ordering and I wish to reorder these to the petsc ordering. To do this I use AOApplicationToPetscPermuteInt, or PermuteReal, which works really well in serial but not so much in parallel.
In parallel I want to have it so that each processor has it's local portion of the array, so that the sum of the lengths of the arrays on each processor add up to the sum of the indices in the AO ordering. However when I use AOApplicationToPetscPermute I get a segmentation fault, which I've traced to the fact that AOApplicationToPetscPermute assumes each processor has an array which is the number of indices in the AO ordering as opposed to only the length of the local portion of the AO. The permutations that I am doing are all local to each processor, but my AO has been defined globally since elsewhere in my code I need access to off processor entries. Do you have any suggestions on how I can solve this problem with the least amount of headache. Thanks, Laslo
