Comments on basin_kernel (and wishlist)

From: Dave Goldberg <goldberg@drexel.edu>
Date: Fri Jun 02 2006 - 09:43:02 EDT

All,

I've spent the last few days working on Michael's large scale structure
script with the new basin_kernel, and while it works pretty well so far
(including a complete re-write of compute density), there are a couple
of bugs, and a list of items on the wishlist.

First, the (apparent) bugs (along with a recommended name to fix it):

1) Louis: The CVS server did not seem to want to allow a CVS add from
me. I got the following error:

cvs add: cannot open CVS/Entries for reading: No such file or directory
cvs [add aborted]: no repository

This is unfortunate because

2) Louis: the files in the "config" directory do not seem to be on the
server, and I had to grab them directly from your accoun. Please add.

3) Louis: The makefile works well, but there is a fair amount of extra
work involved in adding a random programfile. (Makefile.am edits,
etc.). I created, for example, a basin_local directory, and a
sourcefile called basin_goldberg.C, which is my master program. My
program works just fine, but I'd really like to be able to enter the simple:
make blah
and compile and link blah.C
Make knows how to do that, so I can only assume that config must be able
to as well.

----------------

Wishlist (to be delegated by Enrico)

1) i/o should be written to read csv (comma separated) files as well as
ordinary column data. The former is a very standard database output,
and after toying with SDSS I can easily see a need for it.

2) Several functions should be combined: MPI_INIT + MPI_COMM_SIZE +
MPI_Comm_rank = basin_init()
We should also have a basin_finalize() which is really just a wrapper
for MPI_finalize.

3) Region.get_attribute() should work in a smart way (e.g. search the
lists and grids appropriately).

4) While we're on the subject, several of these "get_attribute"
functions should either return a pointer, or have a version which
returns a pointer to an attribute. We shouldn't, in general, be copying
attributes.

5) The combination -- if (myid ==0) cout << blah;
is overly cumbersome. I'd like bout << blah to perform the same taske
(also berr).

6) Even though this is the "kernel", the gnuplot functionality would be
VERY nice for debugging. Most of the old gnuplot plotting functions
should work with minor tweaking.

7) An attribute should be able to return a pointer to its parent.

8) While the math functions on attributes seem to work fine, there is a
bit of a problem doing operations on elements of attributes (addition,
comparisons, etc.). This should probably be under bugs, but one might
consider it a feature.

9) I'd like Attribute.add(vector <T>, int lo, int hi) function, which
takes an attribute, and adds the elements of a vector to particular
elements.

10) Clean up .h and .C files (carefully!) for completely deprecated
functions.

11) Multidimensional attributes: Right now, we access
mygrid[i*ny*nz+j*nz+k]. I would very much like multi-dimensional access
as well: mygrid[i,j,k].

12) If statements and piecemeal definition:
A=B if {B > 0.5} else A=0.
for attributes
(or whatever syntax is reasonable).

All for now.

Dave
Received on Fri Jun 2 09:42:59 2006

This archive was generated by hypermail 2.1.8 : Fri Aug 08 2008 - 19:25:03 EDT