Hi,
I am working on Cutouts of selected halos/subgroups; I basically reprocess them through a radiative transfer software. Instead of remapping the particle data onto grids, the software can handle/create Voronoi grids by itself.
However, as far as I understand it, this brings in a problem with the boundaries in the case of the cutouts. As I understand it, the cutouts contain only the particles associated with the halo, not all the particles within a specific spatial region. First of all, is this correct?
If so, that means in my use case, those particles whose direct neighbors have not been associated with the corresponding halo miss neighbors, which will lead to very large Voronoi cells further outside. This seems to imply that there is a need for some sort of "closure" on this, like e.g. adding mass-less boundary particles (I am actually only interested in the metal content, so setting the outskirts to zero density would actually help me already). Is there any experience with this kind of problem?
Best regard,
Christoph.
Dylan Nelson
2 Nov '17
Hi Christoph,
You are right, that the gas cell Coordinates produce a consistent, periodic Voronoi tessellation (as used within the simulation code) only for the full snapshot.
In either a subhalo/halo cutout, or in a subbox, you have a boundary problem. The Voronoi geometry will be corrupted there, as you point out.
If you must use the cutouts, then you should use the full halo cutouts, instead of the subhalo cutouts, which will include slightly more particles to larger distance. Then, best to just assume that the outer X% (e.g. 10% or so, at your discretion, or you could explicitly check) in radial distance should be ignored, and only the gas density/metal at smaller distances than this can be realistically believed to have the correct Voronoi geometry.
If you have trouble actually constructing the Voronoi mesh because of these large/boundary cells, then you can arbitrarily add buffer/padding cells outside the particle region - i.e., to improve the numerical stability of your mesh construction algorithm, where in any case there is no physical meaning.
Christoph Behrens
2 Nov '17
Hi Dylan,
Thanks for your quick reply, that is very helpful!
Christoph Behrens
3 Nov '17
Hi Dylan,
I could get a reasonable looking projection if I set a lot of the particles in the outskirts to mass=0. So that seems to work, albeit I have to cut a lot of the particles. Would it also be an option to use a SPH kernel deposition with the smoothing length as given in the snapshot data, and distribute the mass of the particles onto grids?
Dylan Nelson
4 Nov '17
I was under the impression that your RT code used a Voronoi mesh, but if not, then trying the gas cells as another representation would be ok, representing an approximation. Treating cells as SPH kernels with smoothing length given by the radius of a sphere of volume equal to the cell volume is something we often do.
If you mean to deposit the gas cell mass onto a uniform Cartesian grid, then it would be good to do this carefully, e.g. there should be no holes, since the gas field is defined everywhere in space, and the deposition should be mass conserving.
Christoph Behrens
4 Nov '17
Hi Dylan,
The code can both convert to an AMR structure in an SPH-like fashion and use Voroni grids... thanks for your answer, we will compare both approaches!
Christoph Behrens
10 Nov '17
Hi Dylan,
We have compared this for some subhalos. What we find is that the results are consistent betweeen SPH/Voronoi, but only if we scale the smoothingLength down by a factor of 2 or 3. I just want to make sure that the units are correct here; the smoothing length is really given in ckpc/h as indicated in the documentation, right?
If we do not scale the smoothingLength, then the matter distribution is visibly more extended than in the Voronoi case.
Dylan Nelson
10 Nov '17
Hi Christoph,
Apologies, I didn't realize you were actually using the SmoothingLength field, I had also forgotten this exists! I would not use this, it isn't something we ever do.
Rather, what I meant by "smoothing length given by the radius of a sphere of volume equal to the cell volume" is to load the Volume field of each cell, then calculate a smoothing length for it as h = (Volume * 3.0 / (4*np.pi))**(1.0/3.0).
Christoph Behrens
10 Nov '17
Hi Dylan,
Ah, okay. My fault, I assumed it was the same. Now the results look very similar. Thank you!
Hi, I am working on Cutouts of selected halos/subgroups; I basically reprocess them through a radiative transfer software. Instead of remapping the particle data onto grids, the software can handle/create Voronoi grids by itself. However, as far as I understand it, this brings in a problem with the boundaries in the case of the cutouts. As I understand it, the cutouts contain only the particles associated with the halo, not all the particles within a specific spatial region. First of all, is this correct?
If so, that means in my use case, those particles whose direct neighbors have not been associated with the corresponding halo miss neighbors, which will lead to very large Voronoi cells further outside. This seems to imply that there is a need for some sort of "closure" on this, like e.g. adding mass-less boundary particles (I am actually only interested in the metal content, so setting the outskirts to zero density would actually help me already). Is there any experience with this kind of problem?
Best regard,
Hi Christoph,
You are right, that the gas cell
Coordinates
produce a consistent, periodic Voronoi tessellation (as used within the simulation code) only for the full snapshot.In either a subhalo/halo cutout, or in a subbox, you have a boundary problem. The Voronoi geometry will be corrupted there, as you point out.
If you must use the cutouts, then you should use the full halo cutouts, instead of the subhalo cutouts, which will include slightly more particles to larger distance. Then, best to just assume that the outer X% (e.g. 10% or so, at your discretion, or you could explicitly check) in radial distance should be ignored, and only the gas density/metal at smaller distances than this can be realistically believed to have the correct Voronoi geometry.
If you have trouble actually constructing the Voronoi mesh because of these large/boundary cells, then you can arbitrarily add buffer/padding cells outside the particle region - i.e., to improve the numerical stability of your mesh construction algorithm, where in any case there is no physical meaning.
Hi Dylan,
Thanks for your quick reply, that is very helpful!
Hi Dylan,
I could get a reasonable looking projection if I set a lot of the particles in the outskirts to mass=0. So that seems to work, albeit I have to cut a lot of the particles. Would it also be an option to use a SPH kernel deposition with the smoothing length as given in the snapshot data, and distribute the mass of the particles onto grids?
I was under the impression that your RT code used a Voronoi mesh, but if not, then trying the gas cells as another representation would be ok, representing an approximation. Treating cells as SPH kernels with smoothing length given by the radius of a sphere of volume equal to the cell volume is something we often do.
If you mean to deposit the gas cell mass onto a uniform Cartesian grid, then it would be good to do this carefully, e.g. there should be no holes, since the gas field is defined everywhere in space, and the deposition should be mass conserving.
Hi Dylan, The code can both convert to an AMR structure in an SPH-like fashion and use Voroni grids... thanks for your answer, we will compare both approaches!
Hi Dylan, We have compared this for some subhalos. What we find is that the results are consistent betweeen SPH/Voronoi, but only if we scale the smoothingLength down by a factor of 2 or 3. I just want to make sure that the units are correct here; the smoothing length is really given in ckpc/h as indicated in the documentation, right? If we do not scale the smoothingLength, then the matter distribution is visibly more extended than in the Voronoi case.
Hi Christoph,
Apologies, I didn't realize you were actually using the
SmoothingLength
field, I had also forgotten this exists! I would not use this, it isn't something we ever do.Rather, what I meant by "smoothing length given by the radius of a sphere of volume equal to the cell volume" is to load the
Volume
field of each cell, then calculate a smoothing length for it ash = (Volume * 3.0 / (4*np.pi))**(1.0/3.0)
.Hi Dylan, Ah, okay. My fault, I assumed it was the same. Now the results look very similar. Thank you!