Using PETSc in structured c-grid for CFD and multigrid

Ben Tay zonexo at gmail.com
Wed Jan 31 21:32:40 CST 2007


Hi,

somone suggested that I treat that face as a dirichlet boundary condition.
after 1 or a few iterations, the face value will be updated and it will be
repeated until covergerence. I wonder if that is possible as well?

It'll make the job much easier, although the iteration may take longer...



On 2/1/07, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>
> The glueing might be able to be handled by using periodic for that
> dimension of the DA you create. But this gets tricky if you have any
> nodes that have "an extra degree of freedom".
>
>   Barry
>
>
> On Wed, 31 Jan 2007, Berend van Wachem wrote:
>
> > Hi Ben,
> >
> > The challenge in your problem is how you "glue" the C grid in the back;
> > there you will need to do some additional scattering. I would set-up
> > the IS for this, and then use that to scatter the values
> > into "ghostcells" which will be present on the block(s).
> >
> > Berend.
> >
> > > Thank you Berend! I'll go through DA again. I'm also looking at
> > > HYPRE. Its way of creating grids and linking them seems intuitive.
> > > Btw, is there a mailing list for HYPRE similar to PETSc to discuss
> > > problems? I find that their explanation are quite brief.
> > >
> > > I tried to install HYPRE 2.0 on windows using cygwin but it failed.
> > > I then install it as an external software thru PETSc. I think it's
> > > installing HYPRE 1.0 or something. But similarly, there's illegal
> > > operation.
> > >
> > > Installing HYPRE 2.0 on my school's linux worked, though there's
> > > seems to be some minor error. So what's the best way to employ
> > > multigird? Is it to install as an external software thru PETSc or
> > > just use HYPRE on its own?
> > >
> > > Btw, it will be great if you can send me parts of your code
> > > regarding DA.
> > >
> > > Thank you very much!
> > >
> > > On 1/26/07, Berend van Wachem <berend at tfd.chalmers.se> wrote:
> > > > Hi,
> > > >
> > > > I am not an expert - but have used PETSc for both structured and
> > > > unstructured grids.
> > > >
> > > > When you use an unstructured code for a structured grid, there is
> > > > additional overhead (addressing, connectivity) which is redundant;
> > > > this information is not required for solving on a structured grid.
> > > > I would say this is maximum a 10% efficiency loss for bigger
> > > > problems - it does not affect solving the matrix, only in
> > > > gathering your coefficients. I would not rewrite my CFD code for
> > > > this.
> > > >
> > > > If you only deal with structured grids, using the PETSc DA
> > > > framework should work for you - you are not saving all
> > > > connectivity. The DA framework is not difficult at all, according
> > > > to my opinion. Look at a few examples that come with PETSc. I use
> > > > a block structured solver - using multiple DA's within one
> > > > problem. Let me know if you are interested in this, and I can send
> > > > you parts of code.
> > > >
> > > > Multigrid is certainly possible (I would reccomend through HYPRE,
> > > > discussed on the mailinglist, although I still have problems with
> > > > it), but the question is how efficient it will be for your CFD
> > > > problem. For an efficient multigrid in CFD, it is important to
> > > > consider the coefficient structure arising from the momentum
> > > > equations - the grouping of cells should occur following the
> > > > advection term. Only then will you achieve linear scaling with the
> > > > problem size. For instance, consider a rotating flow in a square
> > > > box. Most multigrid algorithms will group cells in "squares" which
> > > > will not lead to a significant improvement, as the flow
> > > > (advection, pressure grad) does not move in these squares. In
> > > > fact, to have an efficient multigrid algorithm, the cels should be
> > > > grouped along the circular flow. As this cannot be seen directly
> > > > from the pressure coefficients, I doubt any "automatic" multigrid
> > > > algorithm (in Hypre or Petsc) would be able to capture this, but
> > > > don't quote me on it - I am not 100% sure. So concluding, if you
> > > > want to do efficient multigridding for CFD, you will need to point
> > > > out which cells are grouped into which structure, based upon the
> > > > upwind advection coefficients.
> > > >
> > > > Good luck,
> > > >
> > > > Berend.
> > > >
> > > > > Hi,
> > > > >
> > > > > I was discussing with another user in another forum
> > > > > (cfd-online.com)
> > > >
> > > > about
> > > >
> > > > > using PETSc in my cfd code. I am now using KSP to solve my
> > > > > momentum and poisson eqn by inserting values into the matrix. I
> > > > > was told that using PETSc
> > > > > this way is only for unstructured grids. It is very inefficient
> > > > > and much slower if I'm using it for my structured grid because I
> > > > > am not
> > > >
> > > > exploiting
> > > >
> > > > > the regular structure of my grid.
> > > > >
> > > > > Is that true? I'm solving flow around airfoil using c-grid.
> > > > >
> > > > > So how can I improve? Is it by using DA? I took a glance and it
> > > > > seems quite
> > > > > complicated.
> > > > >
> > > > > Also, is multigrid available in PETSc? Chapter 7 discusses about
> > > > > it but
> > > >
> > > > it
> > > >
> > > > > seems very brief. Is there a more elaborate tutorial besides
> > > > > that c examples?
> > > > >
> > > > > Hope someone can give me some ideas.
> > > > >
> > > > > Thank you.
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20070201/3b7d51a7/attachment.htm>


More information about the petsc-users mailing list