[petsc-users] Krylov for Implicit CFD

Pavanakumar Mohanamuraly m.pavanakumar at gmail.com
Thu May 3 02:44:29 CDT 2012


Hi,

Currently I am planning to use Petsc Krylov solver for implicit time
integration of my CFD code. I need some pointer on the implementation. I am
providing a detailed list of things I am not very clear with in both the
documentation and the mailing list archives.

--> The equations to be solved is of the form :  [ I / \delta t + J ] \delta
U^n = - R[ U^n ]

--> The Jacobian J is hard to evaluate exactly and hence we use the finite
difference method to evaluate J. I want to use a matrix-free approach so
all I need is the action of this J on some vector v.

--> Jv = \frac{\partial R}{\partial U}v = ( R[ U^n + hv ] - R[ U^] ) / h, h
is some parameter. Since I is identity matrix and \delta t is fixed this
diagonal matrix is trivial to evaluate. Thus [ I / \delta t + J ] is
available as a user define function in my solver.

1) Vector U^n is from an unstructured node distribution and is partitioned
outside of Petsc. I have both the global indexing and local indexing
information along with the ghost node information.
2) I have already defined functions to move data across the ghost nodes
given the local variable address and memory stride/offset information.
3) In Jacobian-vector Jv evaluation, one has to exchange the ghost cell
values of vector v with adjacent processor before the calculation is done.
4) I can write the Jacobian-vector Jv evaluation function to perform ghost
node exchange before evaluation but I am not clear as to how I can
interface my local arrays and local / global indexing information into
Petsc.
5) I understand that I have to create a Matrix Shell for the matrix free
method and define my user-defined function to evaluate the matrix-vector
product given an input vector. But it is not clear as to how Petsc
understands how I order my vectors locally and how that corresponds to the
global indexes.
6) I cannot use the DA object as it is for structured/contiguous
partitioning .i.e., the local indices don't correspond to contiguous global
ordering/indexing.
7) I also don't want to use the unstructured mesh and decomposition
routines in Petsc and I already have my own.

Can this be done in Petsc ?

Thanking you in anticipation.

Regards,


-- 

Pavanakumar Mohanamuraly
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120503/306c7f6f/attachment.htm>


More information about the petsc-users mailing list