Issue |
A&A
Volume 689, September 2024
|
|
---|---|---|
Article Number | A13 | |
Number of page(s) | 9 | |
Section | Numerical methods and codes | |
DOI | https://doi.org/10.1051/0004-6361/202450658 | |
Published online | 27 August 2024 |
Tetrahedral grids in Monte Carlo radiative transfer
Sterrenkundig Observatorium, Universiteit Gent,
Krijgslaan 281,
9000
Gent, Belgium
e-mail: arno.lauwers@ugent.be
Received:
8
May
2024
Accepted:
18
July
2024
Context. To understand the structures of complex astrophysical objects, 3D numerical simulations of radiative transfer processes are invaluable. For Monte Carlo radiative transfer, the most common radiative transfer method in 3D, the design of a spatial grid is important and non-trivial. Common choices include hierarchical octree and unstructured Voronoi grids, each of which has advantages and limitations. Tetrahedral grids, commonly used in ray-tracing computer graphics, can be an interesting alternative option.
Aims. We aim to investigate the possibilities, advantages, and limitations of tetrahedral grids in the context of Monte Carlo radiative transfer. In particular, we want to compare the performance of tetrahedral grids to other commonly used grid structures.
Methods. We implemented a tetrahedral grid structure, based on the open-source library TetGen, in the generic Monte Carlo radiative transfer code SKIRT. Tetrahedral grids can be imported from external applications or they can be constructed and adaptively refined within SKIRT. We implemented an efficient grid traversal method based on Plücker coordinates and Plücker products.
Results. The correct implementation of the tetrahedral grid construction and the grid traversal algorithm in SKIRT were validated using 2D radiative transfer benchmark problems. Using a simple 3D model, we compared the performance of tetrahedral, octree, and Voronoi grids. With a constant cell count, the octree grid outperforms the tetrahedral and Voronoi grids in terms of traversal speed, whereas the tetrahedral grid is poorer than the other grids in terms of grid quality. All told, we find that the performance of tetrahedral grids is relatively poor compared to octree and Voronoi grids.
Conclusions. Although the adaptively constructed tetrahedral grids might not be favourable in most media representative of astrophysical simulation models, they still form an interesting unstructured alternative to Voronoi grids for specific applications. In particular, they might prove useful for radiative transfer post-processing of hydrodynamical simulations run on tetrahedral or unstructured grids.
Key words: radiative transfer
© The Authors 2024
Open Access article, published by EDP Sciences, under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
This article is published in open access under the Subscribe to Open model. Subscribe to A&A to support open access publication.
1 Introduction
Nearly all our astronomical knowledge is based on the observation and detailed analysis of radiation we obtain from astronomical sources over the electromagnetic spectrum. Through processes like absorption, scattering, and re-emission, this radiation is affected and altered by the medium it passes through. As a result, detailed modelling of these interactions, that is, radiative transfer simulations, is required. This is particularly important if we want to generate synthetic observations for snapshots of (magneto)hydrodynamical simulations that can directly be compared to observations.
The 3D radiative transfer problem is a notoriously hard nut to crack, and various approaches have been proposed. The Monte Carlo method (Whitney 2011; Steinacker et al. 2013; Noebauer & Sim 2019) is the most widely used method for various types of radiative transfer problems. The method is intuitive, conceptually straightforward, and, contrary to other methods such as finite difference techniques, easily applicable to 3D problems. In the past few years, advanced and powerful Monte Carlo radiative transfer codes have been developed for a variety of radiative transfer applications, such as dust, resonant line, atomic and molecular line, X-ray, UV ionising radiation, and neutrino radiative transfer (e.g. Pinte et al. 2006; Dullemond et al. 2012; Reissl et al. 2016; Harries et al. 2019; Li et al. 2020; Camps & Baes 2020; Smith et al. 2023, to name just a few generic examples).
Three-dimensional Monte Carlo radiative transfer codes generally need a grid onto which the medium is discretised. This grid contains a large number of cells within which all physical properties are considered uniform. Early Monte Carlo radiative transfer simulations often employed simple grids such as spherical shells or regular Cartesian grids. For modern applications, and in particular for the radiative transfer post-processing of hydrodynamical simulations, this approach is not ideal, as these simulations typically cover a large dynamic range in densities. The standard approach to dealing with this complexity is to use hierarchical Cartesian grids, such as octree or binary trees. Many Monte Carlo radiative transfer codes are equipped with such grids (Kurosawa & Hillier 2001; Saftly et al. 2013, 2014, Juvela 2019).
More recently, unstructured Voronoi grids have gained popularity. Several Monte Carlo radiative transfer codes have now been equipped with Voronoi grids (Camps et al. 2013; Hubber et al. 2016; Koepferl et al. 2017; Smith et al. 2020; Byrohl et al. 2021; Tessore et al. 2021). The use of Voronoi grids in radiative transfer, and in computational methods in general, has several advantages. Voronoi meshes have the ability to deal with arbitrary complex geometries with a large dynamical range, without any preferential directions. Since a Voronoi grid is completely determined by the position of the generating nodes, it is easy to adapt the cell sizes and grid resolution according to user-defined criteria. In general, Voronoi grids allow the dynamical range in densities to be closely reflected with as few cells as needed.
Voronoi grids are not the only type of unstructured meshes used in computational geometry. Tetrahedral meshes – tessellations in which all cells are tetrahedra – are an interesting alternative. Tetrahedral grids are very popular in computer graphics and 3D reconstruction applications (e.g. Georgii & Westermann 2006; Marmitt & Slusallek 2006; Maria et al. 2017; Morrical et al. 2023). A tetrahedron is the most elementary polyhedron: each tetrahedron has only four vertices and six edges, and is bounded by four triangular faces. In comparison, an average Voronoi cell in a 3D Voronoi tessellation has approximately 27 vertices and 41 edges, and is bounded by approximately 16 convex polygonal faces (van de Weygaert 1994). Tetrahedral grids are therefore ‘simpler’ than Voronoi grids and more economical in terms of storage.
In addition to their ability to efficiently represent media with a large dynamical range, the most important characteristic of grids in the context of Monte Carlo radiative transfer is whether grid traversal can be implemented in a robust and effective manner. Grid traversal essentially comes down to determining, for a path defined by a starting position and direction, the ordered list of cells crossed along this path and the individual path length contributions covered within each individual cell. In many Monte Carlo radiative transfer simulations, grid traversal is responsible for a large fraction of the computational time.
For Voronoi grids, grid traversal is non-trivial and requires the calculation of the intersection points of the path and each of the faces of the cell (Camps et al. 2013; Hubber et al. 2016). One might expect that grid traversal through a tetrahedral grid would be more efficient than through a Voronoi grid. A tetrahedron has only four faces, so even using a naive algorithm in which we calculate the intersection points of the path and each of the faces, it can probably be quite efficient (remember that Voronoi cells have, on average, almost four times as many faces). Moreover, efficient grid traversal algorithms have been developed for tetrahedral grids in the field of computer graphics (Platis & Theoharis 2003; Marmitt & Slusallek 2006; Lagae & Dutré 2008; Maria et al. 2017).
In this work, we explored the use of tetrahedral grids in Monte Carlo radiative transfer. More specifically, we implemented tetrahedral grids and an advanced grid traversal algorithm in the Monte Carlo radiative transfer code SKIRT (Camps & Baes 2015, 2020). In Sects. 2 and 3 we discuss the construction and traversal of tetrahedral grids in SKIRT, and in Sect. 4 we validate our implementation using established benchmark models. We then compare the efficiency of tetrahedral and other grids in Sect. 5 and discuss these results in a broader context in Sect. 6. Finally, we present our conclusions in Sect. 7.
2 Tetrahedral grid construction in SKIRT
2.1 The SKIRT radiative transfer code
SKIRT (Camps & Baes 2015, 2020) is a generic 3D Monte Carlo radiative transfer code. Originally conceived as a dust radiative transfer code (Baes et al. 2003, 2011), it has transformed into a more generic tool that can be applied to various radiative transfer applications. Apart from dust radiative transfer, it can now perform Lya resonant line radiative transfer (Camps et al. 2021), non-local thermodynamic equilibrium line radiative transfer for selected ions, atoms, and molecules (Matsumoto et al. 2023), X-ray radiative transfer (Vander Meulen et al. 2023), and HI radiative transfer (Gebek et al. 2023). The efficiency of the code is maximised through many optimisation mechanisms and a hybrid parallelisation strategy (Baes 2008; Steinacker et al. 2013; Baes et al. 2016, 2022; Verstocken et al. 2017).
The SKIRT code is equipped with a diverse suite of options to discretise the medium. Apart from the standard spherical, cylindrical and Cartesian grids, the user can select octree grids (Saftly et al. 2013), k-d tree grids (Saftly et al. 2014), and Voronoi grids (Camps et al. 2013). The availability of these different options makes SKIRT a suitable environment to investigate the accuracy and efficiency of tetrahedral grids.
![]() |
Fig. 1 DT of a set of 30 random points drawn from a uniform distribution. |
2.2 Delaunay triangulation
A triangulation of a set of points is a subdivision of the convex hull of those points into non-overlapping simplices. In 3D this is sometimes called a tetrahedralisation as the simplices are tetra-hedra. The Delaunay triangulation (DT) of a set of 3D points {pi} is the set of non-overlapping tetrahedra whose vertices are points, pi, that do not lie inside the circumsphere of any tetrahedron in the triangulation. This last condition is also called the Delaunay condition. This ensures a unique triangulation if and only if no more than four points lie on the same sphere. However, even if five or more points lie on the same sphere, we can usually still find a non-unique triangulation. An example of a DT can be seen in Fig. 1.
Generating the DT from a set of given input of points is a well-known problem in computational geometry (Borouchaki & Lo 1995; Cignoni et al. 1998). The 2D DT has the useful property that it maximises the smallest angle in each triangle, resulting in regular triangles with nearly square bounding boxes. On the other hand, the 3D DT does not have this property; cells tend to be elongated and very irregular (Musin 1997; Chew 1997; Maur 2002). For many applications an isotropic grid is preferred, making regular tetrahedra the more desirable choice. In order to improve the quality of a tetrahedral grid one can move the vertices, change the Delaunay condition, or add so-called Steiner points in appropriate locations. Several techniques have already been developed for this purpose, such as Delaunay refinement (Shewchuk 1998).
2.3 TetGen
Given the intricacy of the problem, we chose to use the third-party library TetGen (Si 2015) for the construction of tetrahedral grids in SKIRT. TetGen is a C++ quality tetrahedral mesh generator that is widely used in computational fluid dynamics simulations (e.g. Shirokov 2021; Mayer et al. 2009; Bonfiglioli et al. 2013).
TetGen uses a constrained Delaunay refinement algorithm (Shewchuk & Si 2014) and offers various features for creating a robust computational grid to perform radiative transfer on. First of all is the ability to generate constrained triangulations, forcing grid cells to adhere to a specified input surface. In our case, this would typically be the simulation’s bounding box. This means that the simulation’s domain is fully covered with grid cells, rather than only partially by the convex hull of the triangulation. Additionally, and most importantly, TetGen supports a mesh sizing function, allowing users to define a function in the grid space that determines the cell refinement. An example of this could be a scalar density field to determine the desired resolution. In practice, TetGen achieves this by letting the user set a function tetunsuitable, which should return true if the tetrahedron must be optimised. This is usually done by applying various local mesh operations, such as adding Steiner points. The tetunsuitable function can represent any condition chosen by the user, such as a maximum ratio of edge lengths, volume, or dihedral angle. If desired, it could also be made anisotropic. It should also be noted that TetGen performs additional relaxing and smoothing operations after applying the mesh sizing function to the entire domain. As a result, the user-defined conditions are not strictly met in all cells. While these operations can be disabled, doing so typically results in a lower-quality grid.
![]() |
Fig. 2 TetGen’s mesh sizing function applied in SKIRT. Right: cut through the density field for a dusty spiral model. Left: cut through the triangulation built using TetGen by constraining the minimum mass fraction per tetrahedron to 10−5. |
2.4 TetGen in SKIRT
For our specific purpose of discretising a given density field in the SKIRT radiative transfer code, we needed a recipe on which the refinement algorithm is based. Mimicking the strategy applied for hierarchical grids in SKIRT (Saftly et al. 2013, 2014), we chose limiting the total mass fraction inside a cell as our default option. This naturally results in a higher resolution in regions with a larger density. An example of this adaptive grid construction is displayed in Fig. 2. We employed an additional subdivision criterion, which is also used in the hierarchical tree grids in SKIRT as described by Saftly et al. (2014). We subdivided the cell if the quantity
(1)
exceeds some user-defined threshold qmax ≤ 1. In this expression, ρmin and ρmax represent the minimum and maximum values of the density in the cell, which are estimated by generating a large number of random positions in the cell (see Sect. 2.5). This additional criterion avoids the use of cells with large density gradients.
In addition to adaptively constructing the grid, tetrahedral grids can be directly imported from hydrodynamical simulations or generated using other tools. Furthermore, when supplied with particle data, such as from a smoothed-particle hydrodynamic simulation, TetGen can generate the corresponding DT of the point set. The uniform density in each cell can then be derived by interpolating the input densities at the vertices.
2.5 Generating random points
After the construction of a grid, the properties of each cell, such as the mass density, must be determined. In the SKIRT radiative transfer code, this is achieved by sampling a user-defined number of random points in each cell and averaging the underlying density at these locations. This requires an algorithm to efficiently sample random points in an arbitrary tetrahedron. A simple option could consist of generating random points inside the bounding box of the tetrahedron and subsequently checking whether they fall inside the tetrahedron. However, more efficient techniques for generating uniformly distributed random points within a tetrahedron exist, and we used the algorithm described by Cignoni & Rocchini (2005).
3 Grid traversal
3.1 Plücker coordinates
Plücker coordinates offer a method for representing directed lines in 3D space using 6D vectors (Shoemake 1998; Platis & Theoharis 2003). Given a directed line R defined by a point r and a direction k, its Plücker coordinates can be expressed as
(2)
We can now define the permuted inner product or Plücker product of two directed lines R and S as
(3)
The sign of this product determines the relative orientation between two directed lines. We have
(4)
This allows us to efficiently find the exit face when tracing a photon path through a tetrahedron, as will be discussed in the next section.
3.2 Traversal algorithm
We use the term ‘ray’ to indicate a given photon path represented by its Plücker coordinates. Considering the edges of a tetrahedron as directed lines from one vertex to another, a ray exits a face if the clockwise-ordered1 edges yield a negative Plücker product with the ray. In other words, if the Plücker products computed around clockwise-ordered edges move clockwise around the ray, we have an exiting ray. Conversely, if they are all anticlockwise, indicated by positive Plücker products, we have an entering ray.
A naive approach would be to calculate these three Plücker products for each of the four faces. However, despite the edges having a different orientation when associated with each face, there is no need to recalculate the products, as flipping the orientation of the edge simply flips the sign of the resulting Plücker product. We can thus reduce the number of required Plücker products to six, one for each edge. This approach was applied by Platis & Theoharis (2003). However, we usually know the entry face of the ray and thus only need to check the other three faces. This, with some additional optimisations, was used by Marmitt & Slusallek (2006) to reduce the number of Plücker products to 2.67 on average. Other approaches exist, such as using three to six scalar triple products, as described in Lagae & Dutré (2008).
On the other hand, Maria et al. (2017) described a very efficient method that only requires two Plücker products. This is illustrated in Fig. 3. We label the faces using the opposite vertices and use face 0 as the entry face. We started by computing the Plücker product of the edge 1 → 0 with the ray. If this results in a (anti-)clockwise orientation, we next used the edge that is (anti-)clockwise viewed from vertex 0. We computed the Plücker product of this new edge and the ray. If these two calculated Plücker products have an opposite sign, then the exit face is the face bounded by these two edges. This can be understood if we remember that the edges of the entry face have a known orientation with the ray2, as it is the entering face. Using this additional information for the last edge, means we have found three edges with a clockwise orientation in a clockwise order. If instead they have an equal sign, then the remaining edge, which we do not check, will have an opposite-signed Plücker product. This will make face 1 the exit face, which can be understood with an argument analogous to the above.
Since all the possible edges we have to check intersect at the same point, vertex 0, we can shift our coordinate frame such that the origin coincides with this vertex. This will speed up the computation by ensuring the Plücker coordinates, Eq. (2), of the edges have a vanishing moment VE. We will, however, need to shift the ray to this new coordinate system by updating its moment to
(5)
where υ0 are the coordinates of vertex 0. Once the exit face is found we can find the distance to this face using
(6)
where n is normal to the intersected face. We can then move the ray forwards by a distance s.
However, when starting the algorithm we did not have the entering face information. Thus, for the first step, we needed to take a slightly different approach, which was also suggested by Maria et al. (2017). Once we determined the tetrahedron containing the ray position, we calculated the Plücker product with an arbitrary edge. This orientation indicates which of the two adjacent faces cannot be the exit face. Subsequently, we can apply the previous algorithm, using this face as the ‘fake’ entry face. The algorithm will still work even if this face is not the true entering face.
We should also mention that there are a few (rarely occurring) edge cases, such as the ray going through a vertex or edge, that need to be handled with care. We used a simple plane intersection test whenever the leaving face might be ambiguous to resolve these edge cases.
![]() |
Fig. 3 Algorithm, as described by Maria et al. (2017), that finds the exit face (coloured) using only two Plücker products (left) and the corresponding decision tree (right). The leaf nodes in the tree are the possible exit faces, numbered according to the opposite vertices. |
3.3 Locating the ray origin
A Monte Carlo radiative transfer simulation differs from a traditional ray-tracing simulation in that each ray’s origin is generated randomly, so that the cell containing this position needs to be determined every time a ray is fired. To accomplish this, we adopted a strategy inspired by Camps et al. (2013) and constructed a k-d search tree using the centroids of the tetrahedra. When we wanted to find the cell containing a given point, we located the closest centroid using the k-d tree and used our traversal algorithm to traverse from the found centroid towards the given input point. It is important to note that the nearest centroid often does not belong to the tetrahedron containing the input point. If, during traversal, the distance travelled exceeds the distance between the found centroid and the input point, we have found the desired tetrahedron. In the very rare event the algorithm fails, we can resort to a loop to check all tetrahedra.
It is also a viable option to use a breadth-first search over the neighbours around the found cell. We conducted several tests and found that using the traversal algorithm is very reliable and the most efficient.
4 Validation
To verify our implementation, we performed two dust radiative transfer benchmarks, comparing our results with those calculated using a regular cylindrical SKIRT grid as well as with results from other radiative transfer codes.
Pascucci et al. (2004). The Pascucci et al. (2004) benchmark features a central T Tauri star embedded in a circumstellar disc with an inner cavity free of dust. The density structure of the disc represents that of a massless Keplerian disc. The challenge of the radiative transfer problem is that the density distribution provides a significant density gradient in the inner part of the disc. The benchmark performs a panchromatic simulation and focuses on the spectral energy distributions (SEDs); it is thus less sensitive to the individual paths taken and will validate other aspects, such as calculated path lengths and absorption. In the original work, five different radiative transfer codes participated to the benchmark, and all of them reproduce the SEDs very well, with relative differences generally below 10%, except for the most challenging cases (high optical depth and edge-on orientation). We ran the benchmark simulations with SKIRT, using both tetrahedral and regular cylindrical grids, with 30 and half a million cells, respectively. As shown in Fig. 4, our results reproduce the benchmark results very well, with an absolute relative error of 1.5% and 2% for i = 12.5° and i = 77.5°, respectively.
Pinte et al. (2009). The Pinte et al. (2009) benchmark builds on the Pascucci et al. (2004) benchmark but extends it to more challenging values. The optical depth extends to larger values (up to 106 in the midplane), scattering is anisotropic instead of isotropic, and scattering polarisation is included. With images using SKIRT polarisation (Peest et al. 2017), this benchmark provides a very strong test for the accuracy of the individual photon paths. The results for this benchmark are depicted in Fig. 5. The SKIRT results corresponding to the cylindrical and tetrahedral grids are in close agreement, with an average error of only 0.3% and 0.5% for i = 69.5° and i = 87.1°, respectively. The tetrahedral and cylindrical grid respectively used 41 and 6 million cells. The artefacts observed in the outer regions of the polarisation maps stem from using a photon count that was not scaled with the amount of cells required by our 3D grid. When attempting to accurately represent the 2D medium with a 3D grid, a significantly greater number of cells was necessary compared to the larger cylindrical cells. However, we did not proportionately increase the photon count, resulting in fewer photons per cell within the 3D grid. Consequently, in the outer regions where the flux is typically 20 orders of magnitude lower than in the central region, some cells end up with zero flux, leading to an undefined polarisation degree in those areas.
![]() |
Fig. 4 Results from the benchmark described by Pascucci et al. (2004). The simulation was performed on both a regular (cylindrical) and a tetrahedral grid in SKIRT and using six other radiative transfer codes. The figure shows the SED for two inclinations, i = 12.5° and i = 77.5°, relative to the disc, and for optical depths of 0.1, 1, 10, and 100. The solid and dotted lines represent the results using our grid and the regular grid in SKIRT, respectively. The coloured areas represent the minimum and maximum from the other radiative transfer codes’ benchmark results. |
5 Comparison to other grids
We next compared the performance of the tetrahedral grid to that of the unstructured Voronoi grid and the hierarchical octree grid already present in SKIRT. To this end, we constructed a simple but fully 3D model, and we ran simulations with various grid types and cell counts. We measured the simulation run time and evaluated the grid quality using a metric based on synthetic observations of this model.
The simulation model used for our tests is defined in a cubical spatial domain. The cube contains a dust medium defined by ten superposed, arbitrarily placed Plummer spheres with varying radii and dust masses. The spheres are cut off at the boundaries of the cube. There are also three random point sources placed at arbitrary locations within the cube and thus embedded in the medium. We performed monochromatic simulations that generate parallel-projected 100 by 100 pixel images of this system for three different sight lines. We exclusively used the scattered flux to eliminate the error from the bright point sources in the images. One of these images is shown in Fig. 6. The dust density in the cube varies by four orders of magnitude, and the optical depth from the centre of the cube to its boundary ranges from 2.5 to 450. While this geometry is quite artificial, for our purposes it should be fairly representative of many astrophysical simulation models.
We ran simulations of the test model with varying cell counts. Constructing a Voronoi grid with a given cell count is straightforward: we can simply specify the number of Voronoi sites to be sampled from the dust distribution. However, tetrahedral and octree grids are created adaptively. For these grid types, we varied the maximum dust mass fraction allowed in a grid cell to control the cell count. A stricter mass fraction limit will cause extra cells, especially in regions with higher density.
The leftmost panel of Fig. 7 shows the runtime of our test model simulations as a function of the number of grid cells. As expected, the slopes of the curves are similar for the three grid types. At constant cell count, the octree grid significantly outperforms the other grids. This is unsurprising given the simple Cartesian cell geometry and in view of the extensively optimised implementation as documented by Saftly et al. (2013, 2014). On the other hand, at constant cell count, the Voronoi grid is substantially slower than the tetrahedral grid. Again, this is not surprising because, compared to tetrahedrons, Voronoi cells have a more complex geometry and on average have more neighbouring cells.
Comparing run time at constant cell count tells only half of the story. Some grid types may require fewer cells, and thus a correspondingly shorter runtime, to achieve the same results. We thus needed a metric to evaluate the ‘quality’ of the spatial grid employed in the simulation. This is ultimately determined by the accuracy of the generated synthetic observables. We therefore defined a quality measure based on the images generated by our test setup. We first produced a reference image for each sight line by running the simulation using a very high-resolution octree grid and a large number of photon packets, ensuring that the fluxes in each pixel are numerically converged. To derive a quality metric for a given test run, we calculated the absolute value of the relative error on the flux in each pixel, as compared to the corresponding reference pixel. The final quality metric is then defined as the mean value of these relative errors for all pixels in the image.
The rightmost panel of Fig. 7 shows this quality metric for the three sight lines of our test model simulations, as a function of the number of grid cells. At constant cell count, the tetrahedral grid produces a significantly higher relative error than the other grid types. Or equivalently, for a given level of accuracy, the tetrahedral grid requires a substantially larger number of cells. Notably, the sight line along the Cartesian axes (i=0° a=0°) shows an overall worse quality, especially for the octree grid. This can be attributed to discretisation effects caused by having both the sight line and all cells in the grid lined up with the coordinate axes. This occurs for both the octree grid and highresolution octree reference, which explains why this can also be seen in the unstructured grids.
The grid performance is compared more directly in Fig. 8, where we plot the relative error as a function of simulation runtime. To avoid an unfair comparison, we excluded the sight line at zero inclination and the azimuth from this summary plot, instead averaging the relative errors for the two other sight lines. For a given runtime, the tetrahedral grid consistently produces a larger relative error than the other grid types, at least in the relevant range where the relative error is below 10%. Compared to the octree grid, the tetrahedral grid requires more cells for the same quality and it runs more slowly for an equal cell count (see Fig. 7), which causes the substantial overall performance gap shown in Fig. 8. Compared to the Voronoi grid, the tetrahedral grid runs faster for equal cell count, but this advantage is insufficient to compensate for the extra number of cells required for the same quality.
The conclusions drawn using our smooth test model cannot necessarily be generalised to simulation models with other properties. For example, we expect that unstructured grids will perform much better for models with steep density gradients, resembling hard boundaries such as those often encountered in computational fluid dynamics, where tetrahedral grids are prevalent. This is especially true if the gradients are not lined up with the coordinate axes, putting the Cartesian octree grid at a disadvantage. Furthermore, constructing the tetrahedral grid using other refinement options could also improve its performance.
![]() |
Fig. 5 Results from the benchmark described by Pinte et al. (2009). The simulation was performed on both a regular cylindrical and a tetrahedral grid in SKIRT and using three other radiative transfer codes. The polarisation degree and the difference to the means of all benchmark results are shown for the two inclinations i = 69.5° and i = 87.1° relative to the disc. |
![]() |
Fig. 6 Image of the scattered flux from our test model with 10 Plummer spheres of dust and three point sources. The dynamic range of the flux is close to six orders of magnitude. |
![]() |
Fig. 7 Comparison of the tetrahedral grid with the octree Voronoi and grids. Left: simulation runtime of our test model as a function of the number of grid cells. Right: mean of the relative flux residuals, compared pixel by pixel to the corresponding reference image for three sight lines, as a function of the number of grid cells. |
![]() |
Fig. 8 Comparison of the tetrahedral grid with the Voronoi and octree grids, now showing the relative error (the mean of the pixel-by-pixel flux residuals) as a function of simulation runtime. The colour indicates the number of grid cells used. |
6 Discussion
6.1 Hierarchical versus unstructured grids
Tetrahedral grids form a potentially interesting spatial grid structure for Monte Carlo radiative transfer, with advantages and disadvantages with respect to other grid types. One of the interesting characteristics of tetrahedral grids is that they are unstructured. In this sense, they are similar to Voronoi grids, which have been implemented in several Monte Carlo radiative transfer codes (Camps et al. 2013; Hubber et al. 2016; Koepferl et al. 2017; Smith et al. 2020; Byrohl et al. 2021; Tessore et al. 2021). One of the advantages of unstructured grids is that they are more flexible and adaptable, and the individual grids cells are not aligned along any preferential directions. In other words, unstructured grids provide a tessellation of the medium without the rigidity of a Cartesian grid.
Another advantage is that they can be made to conform to any desired geometry in such a way that a minimum number of grid cells is required for a given spatially varying resolution. In the context of radiative transfer, this is important for two different reasons. First, many radiative transfer problems require the calculation of the medium’s secondary emission. This requires the measurement of the radiation field in every cell with sufficient statistics, which, in turn, requires sufficient photon packets passing through each cell. Secondly, the grid traversal is not the only and not necessarily the most time-consuming aspect of Monte Carlo radiation transfer. Sometimes the calculation of the emissivity of the grid cells can be a substantial computational effort too. A typical example is thermal emission by dust, which in the case of multiple populations of transiently heated grains can be a computationally costly operation (Désert et al. 1986; Draine & Li 2001; Camps et al. 2015). Another example is the calculation of the level populations for atoms or molecules in the frame of Monte Carlo non-local thermodynamic equilibrium line radiative transfer (Matsumoto et al. 2023). For both of these reasons, minimising the number of grid cells for a given resolution is thus beneficial for the simulation run time.
Unstructured meshes also have some drawbacks. They are generally more complex to build and store than hierarchical grids and require more memory usage. In the context of Monte Carlo radiative transfer, the grid traversal time is particularly important. Grid traversal through a hierarchical grid is generally fast and it can be optimised using dedicated methods (Saftly et al. 2013). For Voronoi grids the traversal is relatively slow since the grid cells have many faces, and each of these faces needs to be tested to determine the exit point for a given photon path (Camps et al. 2013). For tetrahedral grids, grid traversal is significantly faster than in Voronoi grids. In a tetrahedral grid, each cell has obviously only four faces, compared to 16 faces on average for a grid cell in a 3D Voronoi mesh (van de Weygaert 1994). Moreover, efficient algorithms based on Plücker coordinates and Plücker products have been designed for grid traversal through tetrahedral grids. For the same number of cells, however, the traversal is still not as efficient as in hierarchical octree grids.
6.2 Post-processing hydrodynamical simulations
The main reason why unstructured grids are interesting in the context of Monte Carlo radiative transfer is linked to post-processing hydrodynamical simulations. Full-scale hydro-dynamical simulations are a powerful tool for studying the evolution of nearly all astronomical objects, and radiative transfer post-processing of such simulation outputs is needed to generate realistic mock observables that can be compared to real observations. The increased popularity of radiative transfer on Voronoi grids is primarily driven by the emergence of Lagrangian hydrodynamical solvers that operate on such unstructured Voronoi grids. The AREPO code (Springel 2010; Weinberger et al. 2020) is the most widely used one, but other solvers have been developed (Duffell & MacFadyen 2012; Yalinewich et al. 2015; Vandenbroucke & De Rijcke 2016; Chang et al. 2017; Vandenbroucke & Wood 2018) or are being developed (Schaller et al. 2024). It is beneficial to use the same grid for the hydrodynamical calculations and the radiative transfer post-processing. Voronoi-based radiative transfer postprocessing has been applied to generate mock observations for galaxies generated from moving-mesh cosmological hydrodynamical simulations, such as IllustrisTNG and AURIGA (e.g. Rodriguez-Gomez et al. 2019; Schulz et al. 2020; Camps et al. 2021; Popping et al. 2022; Guzmán-Ortega et al. 2023; Bottrell et al. 2024).
The hydrodynamical equations can also be solved on tetrahedral grids. There has been a long history of tetrahedral grids in computational fluid dynamics simulations, in particular in engineering and material science applications (Biswas & Strawn 1994, 1996; Löhner & Baum 1992; Ng et al. 2009; Xie et al. 2014, 2022). The advantage of tetrahedral meshes is that they are very flexible and suited to fit within complex shapes with hard boundaries, such as buildings, turbines, or airplane wings. In astrophysical hydrodynamics we usually have no strong fixed boundaries for the computational domain. Nevertheless, hydrodynamical simulations on tetrahedral meshes have also been explored for astrophysical applications (Bruls et al. 1999; Lionello & Schnack 2002; Kulikov et al. 2020; Kulikov 2021a,b). If one wants to post-process such simulation outputs using radiative transfer on the same grid as used for the hydro-dynamical simulations, the methodology discussed in this paper is required.
Tetrahedral grids might also prove useful for post-processing moving-mesh hydrodynamical simulations. However, in Monte Carlo radiative transfer it is commonly assumed that all physical quantities, such as density, are uniform within each cell (Whitney 2011; Steinacker et al. 2013). In finite-volume hydrodynamics, of which moving-mesh hydrodynamics is a special case, the hydro-dynamical simulations are solved using Gudonov’s method, that is, by considering Riemann problems at all cell boundaries (Toro 1997; Springel 2010). Rather than the total masses in each Voronoi cell, the densities at the mesh-generating points are fundamental properties, and the assumption of a uniform density within each cell (the standard assumption in radiative transfer post-processing) is not consistent with the hydrodynamics method.
In principle, we can avoid this inconsistency by performing the radiative transfer on the dual Delaunay tetrahedral grid rather than on the original Voronoi grid. Instead of assuming a uniform density in each of the tetrahedra cells, we can interpolate the density at each point based on the density values at the vertices of each tetrahedron, which are, by definition, the generating points of the moving-mesh simulation. An approach along this line has been implemented for Cartesian grids in the original version of SKIRT by Baes et al. (2003). Rather than assigning a uniform density in each cuboidal grid cell, we used trilinear interpolation based on the values of the density at the eight vertices. As a result, the optical depth along a given path increases as a cubic function rather than as a linear function of the distance travelled along the path within each cell. This increased the run time for grid traversal by a factor of three. On the other hand, for a fixed number of cells the accuracy of the density of the interpolated grid is much larger, which compensates the longer run times.
The main drawback of applying a similar approach to tetrahedral grids is its complexity. A planar triangulation of n points results in 𝒪(n) triangles, but this does not apply to higher dimensions, where it is super-linear with an 𝒪(n2) complexity.
7 Conclusions
The proper discretisation of Monte Carlo radiative transfer simulations is crucial for obtaining accurate results. However, it is an intricate and complicated problem, as the ‘ideal’ spatial grid should satisfy different, sometimes conflicting, criteria. Research into the advantages and disadvantages of different types of grids has been an important topic in the framework of the SKIRT Monte Carlo radiative transfer code (e.g., Baes et al. 2003; Camps et al. 2013; Saftly et al. 2013, 2014).
Tetrahedral grids have long been used in engineering applications, and more recently have been used for ray tracing in computer graphics. Coupled with its use in fluid and hydrodynamical simulations, these grid are promising tools in the context of Monte Carlo radiative transfer.
We have successfully implemented a working tetrahedral grid structure within SKIRT. Our implementation uses the popular TetGen quality tetrahedral mesh generator (Si 2015), while for the grid traversal we implemented a very efficient method based on Plücker coordinates and Plücker products (Shoemake 1998; Maria et al. 2017).
The main conclusions of this work are the following:
Tetrahedral grids are a very flexible grid structure that can be applied in a variety of simulations. The grid can be adaptively constructed using an underlying input medium, directly imported from an external source, or built from particle data;
The correct implementation of the grid construction and the grid traversal algorithm were validated using 2D radiative transfer benchmark problems (Pascucci et al. 2004; Pinte et al. 2009). The SKIRT results based on tetrahedral grids and on regular 2D cylindrical grids reproduce the benchmark results very well;
We compared the performance of tetrahedral, octree, and Voronoi grids using a simple 3D model. We find that, with a constant cell count, grid traversal through an octree grid is significantly more efficient than through a tetrahedral grid, which in turn is more efficient than a Voronoi grid. On the other hand, the tetrahedral grid has a lower grid quality compared to the other grid types. Combining these results, we find that, for a given runtime, the tetrahedral grid is consistently a lower-quality option than the other grid types; - Despite the relatively poor performance of tetrahedral grids compared to Voronoi and octree grids, tetrahedral grids remain an interesting option for radiative transfer simulations, in particular for post-processing hydrodynamical simulations run on tetrahedral or unstructured grids.
Acknowledgements
B.V. acknowledges support by the Fund for Scientific Research Flanders (FWO-Vlaanderen, project 11H2121N).
References
- Baes, M. 2008, MNRAS, 391, 617 [NASA ADS] [CrossRef] [Google Scholar]
- Baes, M., Davies, J. I., Dejonghe, H., et al. 2003, MNRAS, 343, 1081 [NASA ADS] [CrossRef] [Google Scholar]
- Baes, M., Verstappen, J., De Looze, I., et al. 2011, ApJS, 196, 22 [Google Scholar]
- Baes, M., Gordon, K. D., Lunttila, T., et al. 2016, A&A, 590, A55 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Baes, M., Camps, P., & Matsumoto, K. 2022, A&A, 666, A101 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Biswas, R., & Strawn, R. C. 1994, Appl. Numer. Math., 13, 437 [Google Scholar]
- Biswas, R., & Strawn, R. C. 1996, Appl. Numer. Math., 20, 337 [CrossRef] [Google Scholar]
- Bonfiglioli, A., Grottadaurea, M., Paciorri, R., & Sabetta, F. 2013, Comput. Fluids, 73, 162 [Google Scholar]
- Borouchaki, H., & Lo, S. 1995, Comput. Methods Appl. Mech. Eng., 128, 153 [NASA ADS] [CrossRef] [Google Scholar]
- Bottrell, C., Yesuf, H. M., Popping, G., et al. 2024, MNRAS, 527, 6506 [Google Scholar]
- Bruls, J. H. M. J., Vollmöller, P., & Schüssler, M. 1999, A&A, 348, 233 [NASA ADS] [Google Scholar]
- Byrohl, C., Nelson, D., Behrens, C., et al. 2021, MNRAS, 506, 5129 [NASA ADS] [CrossRef] [Google Scholar]
- Camps, P., & Baes, M. 2015, Astron. Comput., 9, 20 [Google Scholar]
- Camps, P., & Baes, M. 2020, Astron. Comput., 31, 100381 [NASA ADS] [CrossRef] [Google Scholar]
- Camps, P., Baes, M., & Saftly, W. 2013, A&A, 560, A35 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Camps, P., Misselt, K., Bianchi, S., et al. 2015, A&A, 580, A87 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Camps, P., Behrens, C., Baes, M., Kapoor, A. U., & Grand, R. 2021, ApJ, 916, 39 [NASA ADS] [CrossRef] [Google Scholar]
- Chang, P., Wadsley, J., & Quinn, T. R. 2017, MNRAS, 471, 3577 [NASA ADS] [CrossRef] [Google Scholar]
- Chew, L. P. 1997, in Proceedings of the Thirteenth Annual Symposium on COMPUTATIONAL Geometry, 391 [CrossRef] [Google Scholar]
- Cignoni, P., Montani, C., & Scopigno, R. 1998, Comput Aided Des., 30, 333 [Google Scholar]
- Cignoni, P. & Rocchini, C. 2005, Generating random points in a tetrahedron, in Graphics Tools - The JGT Editors’ Choice, http://vcg.isti.cnr.it/Publications/2885/CR85a [Google Scholar]
- Désert, F. X., Boulanger, F., & Shore, S. N. 1986, A&A, 160, 295 [NASA ADS] [Google Scholar]
- Draine, B. T., & Li, A. 2001, ApJ, 551, 807 [NASA ADS] [CrossRef] [Google Scholar]
- Duffell, P. C., & MacFadyen, A. I. 2012, ApJ, 755, 7 [NASA ADS] [CrossRef] [Google Scholar]
- Dullemond, C. P., Juhasz, A., Pohl, A., et al. 2012, Astrophysics Source Code Library [record ascl:1282.815] [Google Scholar]
- Gebek, A., Baes, M., Diemer, B., et al. 2023, MNRAS, 521, 5645 [NASA ADS] [CrossRef] [Google Scholar]
- Georgii, J., & Westermann, R. 2006, IEEE Trans. Visual. Comput. Graph., 12, 1345 [CrossRef] [Google Scholar]
- Guzmán-Ortega, A., Rodriguez-Gomez, V., Snyder, G. F., Chamberlain, K., & Hernquist, L. 2023, MNRAS, 519, 4920 [CrossRef] [Google Scholar]
- Harries, T. J., Haworth, T. J., Acreman, D., Ali, A., & Douglas, T. 2019, Astron. Comput., 27, 63 [NASA ADS] [CrossRef] [Google Scholar]
- Hubber, D. A., Ercolano, B., & Dale, J. 2016, MNRAS, 456, 756 [NASA ADS] [CrossRef] [Google Scholar]
- Juvela, M. 2019, A&A, 622, A79 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Koepferl, C. M., Robitaille, T. P., Dale, J. E., & Biscani, F. 2017, ApJS, 233, 1 [NASA ADS] [CrossRef] [Google Scholar]
- Kulikov, I. 2021a, J. Phys. Conf. Ser., 2028, 012001 [CrossRef] [Google Scholar]
- Kulikov, I. 2021b, J. Appl. Ind. Math., 15, 277 [CrossRef] [Google Scholar]
- Kulikov, I., Vorobyov, E., Chernykh, I., & Elbakyan, V. 2020, J. Phys. Conf. Ser., 1640, 012003 [NASA ADS] [CrossRef] [Google Scholar]
- Kurosawa, R., & Hillier, D. J. 2001, A&A, 379, 336 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Lagae, A., & Dutré, P. 2008, Comput. Graph. Forum, 27, 1303 [CrossRef] [Google Scholar]
- Li, Y., Gu, M. F., Yajima, H., Zhu, Q., & Maji, M. 2020, MNRAS, 494, 1919 [NASA ADS] [CrossRef] [Google Scholar]
- Lionello, R., & Schnack, D. D. 2002, in AGU Fall Meeting Abstracts, SH52A-0492 [Google Scholar]
- Löhner, R., & Baum, J. D. 1992, Int. J. Numer. Methods Fluids, 14, 1407 [Google Scholar]
- Maria, M., Horna, S., & Aveneau, L. 2017, in Proceedings of the 12th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP 2017), 1, Porto, Portugal, 236 [CrossRef] [Google Scholar]
- Marmitt, G., & Slusallek, P. 2006, in Proceedings of the Eighth Joint Eurographics/IEEE VGTC Conference on Visualization, EUROVIS’06 (Goslar, DEU: Eurographics Association), 235 [Google Scholar]
- Matsumoto, K., Camps, P., Baes, M., et al. 2023, A&A, 678, A175 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Maur, P. 2002, Delaunay Triangulation in 3D, Tech. Rep. DCSE/TR-2002-02, University of West Bohemia in Pilsen [Google Scholar]
- Mayer, U. M., Gerstenberger, A., & Wall, W. A. 2009, Int. J. Numer. Methods Eng., 79, 846 [Google Scholar]
- Morrical, N., Sahistan, A., Güdükbay, U., Wald, I., & Pascucci, V. 2023, IEEE Trans. Visual. Comput. Graph., 29, 537 [Google Scholar]
- Musin, O. R. 1997, in Proceedings of the Thirteenth Annual Symposium on Computational Geometry, 424 [CrossRef] [Google Scholar]
- Ng, Y. L., Yusoff, M. Z., & Shuaib, N. H. 2009, in 2009 3rd International Conference on Energy and Environment (ICEE), 330 [CrossRef] [Google Scholar]
- Noebauer, U. M., & Sim, S. A. 2019, Living Rev. Computat. Astrophys., 5, 1 [CrossRef] [Google Scholar]
- Pascucci, I., Wolf, S., Steinacker, J., et al. 2004, A&A, 417, 793 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Peest, C., Camps, P., Stalevski, M., Baes, M., & Siebenmorgen, R. 2017, A&A, 601, A92 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Pinte, C., Ménard, F., Duchêne, G., & Bastien, P. 2006, A&A, 459, 797 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Pinte, C., Harries, T. J., Min, M., et al. 2009, A&A, 498, 967 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Platis, N., & Theoharis, T. 2003, J. Graph. Tools, 8, 37 [CrossRef] [Google Scholar]
- Popping, G., Pillepich, A., Calistro Rivera, G., et al. 2022, MNRAS, 510, 3321 [CrossRef] [Google Scholar]
- Reissl, S., Wolf, S., & Brauer, R. 2016, A&A, 593, A87 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Rodriguez-Gomez, V., Snyder, G. F., Lotz, J. M., et al. 2019, MNRAS, 483, 4140 [NASA ADS] [CrossRef] [Google Scholar]
- Saftly, W., Camps, P., Baes, M., et al. 2013, A&A, 554, A10 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Saftly, W., Baes, M., & Camps, P. 2014, A&A, 561, A77 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Schaller, M., Borrow, J., Draper, P. W., et al. 2024, MNRAS, 530, 2378 [NASA ADS] [CrossRef] [Google Scholar]
- Schulz, S., Popping, G., Pillepich, A., et al. 2020, MNRAS, 497, 4773 [NASA ADS] [CrossRef] [Google Scholar]
- Shewchuk, J. 1998, SoCG98: 14th ACM Symposium on Computational Geometry, Minneapolis Minnesota USA [Google Scholar]
- Shewchuk, J., & Si, H. 2014, Proceedings of the 30th Annual Symposium on Computational Geometry, 290 [CrossRef] [Google Scholar]
- Shirokov, I. A. 2021, Math. Models Comput. Simul., 13, 1148 [CrossRef] [Google Scholar]
- Shoemake, K. 1998, Ray Tracing News, 11, https://www.realtimerendering.com/resources/RTNews/html/rtnv11n1.html#art3 [Google Scholar]
- Si, H. 2015, ACM Trans. Math. Softw., 41, 11 [CrossRef] [Google Scholar]
- Smith, A., Kannan, R., Tsang, B. T. H., Vogelsberger, M., & Pakmor, R. 2020, ApJ, 905, 27 [CrossRef] [Google Scholar]
- Smith, A., Safranek-Shrader, C., Bromm, V., et al. 2023, COLT: Monte Carlo radiative transfer and simulation analysis toolkit, Astrophysics Source Code Library, [record ascl:2386.834] [Google Scholar]
- Springel, V. 2010, MNRAS, 401, 791 [Google Scholar]
- Steinacker, J., Baes, M., & Gordon, K. D. 2013, ARA&A, 51, 63 [CrossRef] [Google Scholar]
- Tessore, B., Pinte, C., Bouvier, J., & Ménard, F. 2021, A&A, 647, A27 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Toro, E. 1997, Riemann Solvers and Numerical Methods for Fluid Dynamics (Berlin: Springer) [CrossRef] [Google Scholar]
- van de Weygaert, R. 1994, A&A, 283, 361 [NASA ADS] [Google Scholar]
- Vandenbroucke, B., & De Rijcke, S. 2016, Astron. Comput., 16, 109 [NASA ADS] [CrossRef] [Google Scholar]
- Vandenbroucke, B., & Wood, K. 2018, Astron. Comput., 23, 40 [NASA ADS] [CrossRef] [Google Scholar]
- Vander Meulen, B., Camps, P., Stalevski, M., & Baes, M. 2023, A&A, 674, A123 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
- Verstocken, S., Van De Putte, D., Camps, P., & Baes, M. 2017, Astron. Comput., 20, 16 [NASA ADS] [CrossRef] [Google Scholar]
- Weinberger, R., Springel, V., & Pakmor, R. 2020, ApJS, 248, 32 [Google Scholar]
- Whitney, B. A. 2011, Bull. Astron. Soc. India, 39, 101 [NASA ADS] [Google Scholar]
- Xie, B., Ii, S., Ikebata, A., & Xiao, F. 2014, J. Computat. Phys., 277, 138 [CrossRef] [Google Scholar]
- Xie, B., Huang, Y., & Xiao, F. 2022, J. Computat. Phys., 463, 111299 [NASA ADS] [CrossRef] [Google Scholar]
- Yalinewich, A., Steinberg, E., & Sari, R. 2015, ApJS, 216, 35 [NASA ADS] [CrossRef] [Google Scholar]
All Figures
![]() |
Fig. 1 DT of a set of 30 random points drawn from a uniform distribution. |
In the text |
![]() |
Fig. 2 TetGen’s mesh sizing function applied in SKIRT. Right: cut through the density field for a dusty spiral model. Left: cut through the triangulation built using TetGen by constraining the minimum mass fraction per tetrahedron to 10−5. |
In the text |
![]() |
Fig. 3 Algorithm, as described by Maria et al. (2017), that finds the exit face (coloured) using only two Plücker products (left) and the corresponding decision tree (right). The leaf nodes in the tree are the possible exit faces, numbered according to the opposite vertices. |
In the text |
![]() |
Fig. 4 Results from the benchmark described by Pascucci et al. (2004). The simulation was performed on both a regular (cylindrical) and a tetrahedral grid in SKIRT and using six other radiative transfer codes. The figure shows the SED for two inclinations, i = 12.5° and i = 77.5°, relative to the disc, and for optical depths of 0.1, 1, 10, and 100. The solid and dotted lines represent the results using our grid and the regular grid in SKIRT, respectively. The coloured areas represent the minimum and maximum from the other radiative transfer codes’ benchmark results. |
In the text |
![]() |
Fig. 5 Results from the benchmark described by Pinte et al. (2009). The simulation was performed on both a regular cylindrical and a tetrahedral grid in SKIRT and using three other radiative transfer codes. The polarisation degree and the difference to the means of all benchmark results are shown for the two inclinations i = 69.5° and i = 87.1° relative to the disc. |
In the text |
![]() |
Fig. 6 Image of the scattered flux from our test model with 10 Plummer spheres of dust and three point sources. The dynamic range of the flux is close to six orders of magnitude. |
In the text |
![]() |
Fig. 7 Comparison of the tetrahedral grid with the octree Voronoi and grids. Left: simulation runtime of our test model as a function of the number of grid cells. Right: mean of the relative flux residuals, compared pixel by pixel to the corresponding reference image for three sight lines, as a function of the number of grid cells. |
In the text |
![]() |
Fig. 8 Comparison of the tetrahedral grid with the Voronoi and octree grids, now showing the relative error (the mean of the pixel-by-pixel flux residuals) as a function of simulation runtime. The colour indicates the number of grid cells used. |
In the text |
Current usage metrics show cumulative count of Article Views (full-text article views including HTML views, PDF and ePub downloads, according to the available data) and Abstracts Views on Vision4Press platform.
Data correspond to usage on the plateform after 2015. The current usage metrics is available 48-96 hours after online publication and is updated daily on week days.
Initial download of the metrics may take a while.