Thank your for the reply.

I have tried it, but could not get it to work. For it to work, I have to know at which vector entry the epsilon in the FD approximation is to be added. It is an input for my inexpensive function, and I could not find a way to pass it in using MFFD context.

I have been trying to get it working with PETSC_COMM_WORLD too with no luck. My guess is that my FormRHSFunction becomes a collective function on WORLD, so I cannot generate many separate copies each doing its own thing. For this reason I am trying to move it to SELF, but I cannot do that if I cannot find a way to represent my WORLD matrix input fully on each process.

Sorry I am stuck in the same question, but any ideas on how to move a matrix from WORLD to SELF, similar to the way it is possible with vectors using VecScatter?



On 19-03-2018 21:08, Smith, Barry F. wrote:

On Mar 19, 2018, at 12:00 PM, Ali Berk Kahraman <[email protected]> 
wrote:

Dear All,

I have to create my Jacobian numerically using an FD function I have written, 
but the problem is that the function evaluation FormRHSFunction creates 
PETSC_COMM_WORLD objects in it, and takes 1 PETSC_COMM_WORLD matrix as an 
input.  So I cannot work it on parallel (every processor calculating its own 
portion of Jacobian), I tried but the machine gets confused.
    Huh. It is fine to have the function work on PETSC_COMM_WORLD, and it can 
be in parallel.
My initial idea was to create the objects in PETSC_COMM_SELF type within the 
RHS function, but the input COMM_WORLD matrix standed where it was. So my 
question is, is there a way to get a complete copy of a distributed matrix on 
all the processors as seq matrices?

I cannot use the Petsc's version FD function because the FormRHSFunction I call 
to create the Jacobian is slightly different than the original FormRHSFunction. 
The original function is too expensive, so I only calculate the relevant parts 
of it in the Jacobian function.
    You can do this with MatCreateMFFD() and set your inexpensive function as 
the function.

Best Regards,

Ali Berk Kahraman
M.Sc. Student, Mechanical Engineering
Bogazici Uni. Istanbul, Turkey


Reply via email to