Hi everyone (again),
I've got a new particle IO patch here:
It should now handle long double particle positions (I might be the only target audience for that) as well as sphere's. Additionally, it should be okay with handling integer fields like particle type and particle ID. Stephen has said he'd give a go with testing it using his HOP and other stuff, and if that goes okay I think it is ready for prime time -- this should speed up particle access considerably... I think there might be some lingering issues with memory leaks, but I am still looking into that; first step is making sure it doesn't break anything.
On Wed, Jan 6, 2010 at 9:01 PM, Matthew Turk email@example.com wrote:
Stephen's gotten a lot of great stuff stuck into the SVN trunk, and I'm trying to make sure that the particle support is there for him. The new ParticleIO is getting close to being "ready for primetime", but I'm going to need some help testing it. I've uploaded a patch:
What this will do is co-opt the particle IO from a standard dict-like access of an AMR3DData instance and, if it's a particle type, pass it through the ParticleIO(.py) object. Right now this will only affect Regions -- everything else will simply operate as normal. (i.e., spheres will just get passed on through.) As a note, the new ParticleIO is set up to do two-passes through a region, first counting the particles that will end up in the object and then reading them. This speeds up IO considerably, as it reduces the number of array creation operations to a minimum.
(My sample script for testing is here, but I'd prefer if you could test in a real-world application... http://paste.enzotools.org/show/289/ )
If possible, could a few of you test this out, and let me know if this patch interferes with any normal behavior? I'm running my own tests here and it's looking *okay*, but it should get tested in the field a bit before being committed. After that, I'll add the necessary methods for spheres, and then the ParticleIO should be mostly handled by the new mechanism.
Thanks for any ideas and testing!