Hi. The new, more efficient, "eval" branch of TwoPunctures is generating a problem in certain cases. I had a job using this code (brought over from the trunk to my ET_2013_05 release), and it failed with an assertion error in TP_utilities.c, within the "d3tensor" allocation routine. I'm attaching a sample parameter file and the associated SCROUT + SCRERR for a small version of this case. It was run on 2 Nehalem nodes (8 cores each; no OpenMP), using an executable compiled with -O3 level optimisation using Intel-2013 compilers and SGI's MPT implementation of MPI.
Here's the actual error message in the SCROUT+ERR file:
TP_utilities.c:146: TP_d3tensor: Assertion `retval[i][nch]-retval[i][ncl] == (nch-ncl)*depth' failed.
I've looked at the d3tensor allocation routine in TP_utilities.c, and it seems to have several problems:
it has an actual bug in line 115:
retval = malloc(sizeof(CCTK_REAL)(nrh-nrl+1)(nch-ncl+1)*(nrh-nrl+1));
--- the last factor should be (ndh-ndl+1), ''not'' (nrh-nrl+1)
even without that bug, the size allocated is too long by one in each dimension, when called by other TP routines, as, in fact, are all these TP_utilities routines.
the way in which memory is allocated seems to assume contiguous memory chunks (I suspect this is the real problem, given the error message).
all the routines in TP_utilities.c use "int" and "long" instead of "CCTK_INT"