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

Wee-Beng TAY zonexo at gmail.com
Sun Oct 31 11:54:31 CDT 2010


Hi,

It seems that some of you mention some adaptive mesh packages. I know of 
paramesh, pflotran and libmesh. Are there any other packages?

Thank you very much and have a nice day!

Yours sincerely,

Wee-Beng Tay


On 30/10/2010 10:46 PM, Mohammad Mirzadeh wrote:
> Thanks guys. I will definitely spend sometime and consider these 
> packages. The truth is I really like the structure of PETSc and I want 
> to stick with it as much as possible.
>
> If I can use any of these packages to replace for my data structure in 
> the grid generation phase, I'll probably be able to port most of my 
> code from serial into parallel. Hopefully it will be good enough (in 
> the long term) that I can eventually publish it and be of help to the 
> community.
>
> Thanks,
> Mohammad
>
> On Sat, Oct 30, 2010 at 10:06 AM, Pearl Flath <pflath at ices.utexas.edu 
> <mailto:pflath at ices.utexas.edu>> wrote:
>
>     Mohammad,
>     You could also look into p4est, which also interfaces with the
>     deal II library (and deal II has wrappers for calling either PETSc
>     or Trilinos).
>
>     "The p4est software library enables the dynamic management of a
>     collection of adaptive octrees, conveniently called a forest of
>     octrees. p4est  is designed to work in parallel and scale to
>     hundreds of thousands of processor cores." http://p4est.org/
>
>     Best,
>     Pearl Flath
>
>
>     On Sat, Oct 30, 2010 at 10:32 AM, Aron Ahmadia
>     <aron.ahmadia at kaust.edu.sa <mailto:aron.ahmadia at kaust.edu.sa>> wrote:
>
>         Mohammad,
>
>         I am sure some of the other users and developers here will have
>         different opinions on the correct way to approach this.
>
>         It sounds like you may benefit even more from investigating
>         several of
>         the packages that manage meshes and grids on parallel
>         architectures.
>         There are some very general toolkits for managing adaptive
>         grids and
>         meshes out there, one could start with Sieve or deal.ii.  If
>         one of
>         these packages is suitable for you, I strongly suggest you
>         consider
>         reusing as much of their frameworks as possible to avoid
>         "rewriting
>         the wheel" so to speak.
>
>         Cheers,
>         Aron
>
>         On Sat, Oct 30, 2010 at 9:07 AM, Mohammad Mirzadeh
>         <mirzadeh at gmail.com <mailto:mirzadeh at gmail.com>> wrote:
>         > 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 <mailto: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
>         <mailto: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/20101031/14b24547/attachment-0001.htm>


More information about the petsc-users mailing list