[petsc-users] Packages Similar to PETSc in C++?

Mohammad Mirzadeh mirzadeh at gmail.com
Sat Oct 30 01:07:31 CDT 2010


Aron,

Thanks for the quick reply. It's really great that PETSc has such an awesome
community.

Anyway, I am working on adaptive Cartesian grids for which I use
Octree/Quadtree data structures. Naturally, then, I have components like
cells, nodes, neighbors, child/parent, etc and my whole domain is consisted
of arrays of these types. That is, if I happen to have 100 cells and 200
nodes, for example, I create an array for the whole domain by calling,

Array<Cell> *CellArray = new Array<Cell> [100];
Array<Node> *NodeArray = new Array<Node> [200];

Now the problem is I want to be able to distribute this in parallel and have
an array of cells or nodes. I understand that one of doing this is to change
my data structure such that is consistent with PETSc only accepting double.
I was hoping I could prevent that by using a package that allow for
templates. That being said, I am not an expert on PETSc by any measure! As a
result I highly appreciate any ideas and comments if you think this is
possible to do with PETSc.

All the best,
Mohammad

On Fri, Oct 29, 2010 at 10:44 PM, Aron Ahmadia <aron.ahmadia at kaust.edu.sa>wrote:

> Dear Mohammad,
>
> As a user of PETSc for the last 8 years, since my days as an
> undergraduate, and now as a professional staff scientist at a
> supercomputing center, I can say with some confidence that there are
> no codes like PETSc in C++ or any other language in terms of quality
> of implementation, documentation, and support.  Can you tell us a
> little more about your current implementation?  It is true that PETSc
> does not support multiple types in the same build, but you do get your
> choice of floating-point values and real or complex types.  Also,
> PETSc has several C++ components within it, and one of the supported
> ways of building it is in 'C++' mode, see -c-language in the configure
> options.
>
> If you insist on departing us (we'll miss you), I suggest you look at
> Sandia's Trilinos package: http://trilinos.sandia.gov/
>
> Good Luck,
> Aron
>
> On Sat, Oct 30, 2010 at 7:54 AM, Mohammad Mirzadeh
> <m.mirzadeh at engineering.ucsb.edu> wrote:
> > Dear all,
> > I was wondering if anyone can refer me to a package similar to PETSc but
> > that is written in c++? Right now I have a large code written in c++ for
> > doing CFD simulations that I need to transform from serial to parallel.
> > Initially I was thinking of PETSc and tried using it but found that PETSc
> is
> > written in C and thus does not allow to have arrays (in parallel) of
> > arbitrary type. I have a big data structure and it is much easier for me
> to
> > retain the current structure and form of the code. As a result I was
> > wondering if you guys know of any similar package in C++ ?(in the sense
> that
> > it can provide with efficient linear solvers in parallel while hiding
> most
> > of MPI from the user)
> > I could think of HYPRE but then again I am not sure it is written in C++.
> > Thanks,
> > Mohammad
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20101029/76f991bd/attachment.htm>


More information about the petsc-users mailing list