[petsc-users] a question about DAE Function
Matthew Knepley
knepley at gmail.com
Tue Jun 4 14:32:12 CDT 2013
On Tue, Jun 4, 2013 at 3:13 PM, Jin, Shuangshuang <Shuangshuang.Jin at pnnl.gov
> wrote:
> Hello, I have a question regarding how to set up the IFunction for
> TSSetIFunction. Please see the detailed illustration below:
>
> Inside my IFunction, I have one of the f equations defined as:
>
> if (i >= xstart && i < xstart+xlen) {
> f[i+2] = sin(x[i])*x[i+2] + cos(x[i])*x[i+3];
>
1) You should not be setting f[i+2]. You always set the residual local to
your process.
> for (k = 0; k < n; k++) {
> f[i+2] += -(cos(x[k])*a[k])*b) -
> (sin(x[k])*c[k])*d); (1)
> }
> }
>
2) This in effect says that your Jacobian is completely dense, or that your
problem is fully coupled. I see two
choices:
a) Use scalable dense linear algebra, like Elemental, and formulate your
operations as linear algebra
b) If this is a boundary integral equation, consider using the FMM
technology
Either way, this is not a PDE, and so using that PETSc parallel paradigm is
wrong.
Matt
> Where x is an distributed array, a and c are constant arrays, b and d are
> constants. n is the length of the global length of x.
>
> The problem is, since x is distributed across all the processes, each
> process only owns a piece of items of x, when I do (1) as written above, no
> matter which processor f[i+2] is on, it has to grab all the x array data
> from other processors, which means I have to do a scattering of x array in
> advance to make the x[k] value available. This is quite an inefficient way
> given the scattering of vector would happen in each iteration when the
> IFuntion is called.
>
> I am wondering if this is the only way I have to deal with this problem,
> or am I trapped in a wrong direction?
>
> Your comments are highly appreciated!
>
> Thanks,
> Shuangshuang
>
>
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130604/396f8dfd/attachment.html>
More information about the petsc-users
mailing list