[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DA question




On Apr 29, 2008, at 2:27 PM, Amit.Itagi@xxxxxxxxxxx wrote:

Barry,

Can this be achieved using SDA ? I am working with regular arrays, and
doing only explicit updates.

Yes. SDA actually uses the DA, it just hides the Vec concept from the user.


   Barry



Thanks

Rgds,
Amit

owner-petsc-users@xxxxxxxxxxx wrote on 04/29/2008 01:28:17 PM:


If you are running a true explicit scheme then you have no need
to ever have a "global representation" at each time step. In this
case you can use DALocalToLocalBegin() then DALocalToLocalEnd()
and pass the same vector in both locations. This will update the ghost
points but WILL NOT do any copy of the local data since it is already
in the correct locations.


  Barry

On Apr 29, 2008, at 8:54 AM, Amit.Itagi@xxxxxxxxxxx wrote:

Hi,

I spent some more time understanding DA's, and how DA's should serve
my
purpose. Since in the time domain calculation, I will have to
scatter from
the global vector to the local vector and vice-versa at every
iteration
step, I have some follow-up questions.

1) Does the scattering involve copying the part stored on the local
node as
well (i.e. part of the local vector other than the ghost values), or
is the
local part just accessed by reference ? In the first scenario, this
would
involve allocating twice the storage for the local part. Also, does
the
scattering of the local part give a big hit in terms of CPU time ?

2) In the manual, it says "In most cases, several different vectors
can
share the same communication information (or, in other words, can
share a
given DA)" and "PETSc currently provides no container for multiple
arrays
sharing the same distributed array communication; note, however,
that the
dof parameter handles many cases of interest". I am a bit confused.
Suppose
I have two arrays having the same layout on the regular grid, can I
store
the first array data on one vector, and the second array data on the
second
vector (and have a DA with dof=1, instead of a DA with dof=2), and
be able
to scatter and update the first vector without scattering/updating the
second vector ?


Thanks

Rgds,
Amit

owner-petsc-users@xxxxxxxxxxx wrote on 04/09/2008 04:09:59 PM:

Hi Amit,

Why do you need two staggered grids? I do EM finite difference
frequency
domain modeling on a staggered grid using just one DA. Works
perfectly
fine.
There are some grid points that are not used, but you just set them
to
zero
and put a 1 on the diagonal of the coefficient matrix.


Randy


Amit.Itagi@xxxxxxxxxxx wrote:
Hi Berend,

A detailed explanation of the finite difference scheme is given
here :

http://en.wikipedia.org/wiki/Finite-difference_time-domain_method


Thanks

Rgds,
Amit





Berend van Wachem

<berend@chalmers.

se>
To
Sent by: petsc-users@xxxxxxxxxxx

owner-petsc-users
cc
@mcs.anl.gov

No Phone Info
Subject
Available Re: DA question





04/09/2008 02:59

PM





Please respond to

petsc-users@xxxxx

nl.gov









Dear Amit,

Could you explain how the two grids are attached?
I am using multiple DA's for multiple structured grids glued
together.
I've done the gluing with setting up various IS objects. From the
multiple DA's, one global variable vector is formed. Is that what
you
are looking for?

Best regards,

Berend.


Amit.Itagi@xxxxxxxxxxx wrote:
Hi,

Is it possible to use DA to perform finite differences on two
staggered
regular grids (as in the electromagnetic finite difference time
domain
method) ? Surrounding nodes from one grid are used to update the
value
in
the dual grid. In addition, local manipulations need to be done
on the
nodal values.

Thanks

Rgds,
Amit