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