D for project in computational chemistry

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Wed Aug 5 16:37:36 PDT 2015

On Wednesday, 5 August 2015 at 18:49:21 UTC, bachmeier wrote:
> On Wednesday, 5 August 2015 at 17:47:49 UTC, Yura wrote:
>> The dominant languages in science now for production codes are 
>> Fortran or C/C++, may be D could become another option?
>> With kind regards,
>> Yury
> Yes. The question is whether we can put together a group of 
> developers to build the infrastructure, which is a lot more 
> than just code. That means, in particular, good documentation 
> and using it for our own projects.
> Everyone these days talks about how Python is a powerhouse 
> scientific programming language. A decade ago it was crap. I 
> know, because I watched it for years wishing I could use it. 
> There were some poorly documented, domain-specific, 
> hacked-together libraries, but Python was not for the most part 
> a suitable choice.
> There is no reason we can't do the same for D. The main 
> question is whether we are sufficiently committed to that goal. 
> Others may consider Python, Julia, and Matlab to be good enough 
> alternatives (I don't, but not everyone necessarily agrees with 
> me).

Yes - I fully agree with everything you say here.

John Colvin has done great work in putting together a scientific 
computing portal for D, and writing a wrapper so you can write D 
within an ipython notebook (and call it transparently from python 
code).  Great for rapid iteration and exploration of data, and it 
means you don't need to write the whole stack from scratch in D.

One place I started in a small way was implementing a limited 
subset of dataframe functionality.  There's not much to it, but 
it's something very handy to be able to slurp in data from csv or 
hdf5 that might not fit in a more rigid format and do spreadsheet 
type stuff with it.

So instead of an array of variants, you define a type for the 
column (every entry in the column is the same type, but different 
columns may be of different types).  In addition each column has 
a name and you can add and remove columns easily.  I've 
implemented a just about usable version of that, but it's not 
pretty, rigorous, or especially efficient.  The next stage is 
creating indexing by columns a la pandas.

Dataframes aren't intellectually very exciting, but they are very 
useful for iterative data exploration and quick prototyping since 
all of that starts with getting the data in from somewhere in a 
standard format.

The problem I have is that I have an ambitious project and too 
few resources for now.  So I can't at this stage put much time 
into making anything someone else could use.  But maybe we could 
work together on parts of this, if that would be interesting.

I am speaking to Vlad Lefenfeld about this a bit too.

On the pure numerical stuff, speak to John Colvin.

If you want you can email me laeeth laeeth dot com.


More information about the Digitalmars-d mailing list