Hi David,

I was able modify the outputs as I wanted. Again, you were right: it took me a little bit of time but it was totally worth it.

Now, let me ask you another quick question. I want to add a particle to the data. Typically, I consider the relaxed data of my primary model, set up the velocity fields to zero, add a particle describing the companion and start my "real" simulation. Therefore, I need to modify the fields 'particle...' accordingly and it should be pretty easy now that I know how to use h5py.

My only problem is that I have created my own particles type and I need to specify it. In macros_and_parameters.h:

#define PARTICLE_TYPE_POINT_MASS   5

Where/how do I specify the particle type ? I can't find those parameters in the output data...

Thanks a lot,


Jean-Claude


David Collins a écrit :
your guess was totally right. I was computing with 64 bits and writing with 32 bits only. I fixed it and restarting Enzo worked well. Great !
    

Great, I'm glad that worked.  Entire fields of science have been
created because of that very issue.  It's subtle, but a killer.

  
    - change some global parameters like StopCycle, CycleDataDump,
GlobalDir,... Would it work if I only edit the files
DDnnnn/CommonEnvelopennnn ? Wouldn't it create a conflict somewhere ?
    

Changing cycle based outputs won't change the answer.  Changing
timestep based outputs (like DtDataDump, Redshift)  might introduce a
little diffusion, because there will usually be a short timestep to
make the output time right.

As long as you replace GlobalDir everywhere, you're fine.

ls -1 |grep -v grid | sed -i 's/GlobalDir.*/GlobalDir = $A'

should do it, but double check. (that's ls -One, not ls -Ell)(On some
platforms, like the native sed on OSX and AIX, sed doesn't have a -i
option, so you have to do this through some temp file.)

  
    - keep all BaryonFields the same except the velocity that I need to set
up to 0. Is there an easy way to do that ?
    

This is pretty easy with Python and h5py.  Basically,  loop over all
the grid files, open them, and re-write the file into a new
directory,but make V = 0 as you go.  Then copy all the files that
aren't *.grid* files to your new directory.  (I don't think there's a
way to kill a dataset directly, so you need to copy everything.  )

Something like:

for grid in glob.glob("*.grid"):
  file1 = h5py.File(grid,'r')
  file2 = h5py.File(other_dir + grid, 'w')
  for group in file1.listitems():
   open the group.
   for field in group:
     if field is not velocity:
          file2.create_datasete(field, shape, data=file1[group][field)
    else:
         file2.create_dataset( field, shape, data=numpy.zeros(
file1[group][field].shape) )


with the appropriate syntax improvements.


d.