◀ Back
Filament catalogs are produce using the code DisPerSE.
We provide a catalog for each snapshot of each simulation run, provided there is a sufficient number of tracer galaxies in the corresponding catalogs (see below).
Briefly, DisPerSE employs the Discrete Morse theory to identify cosmic filaments from the topology of the density field. The latter can be either directly provided or computed using the Delaunay Tessellation Field Estimator from a set of tracers.
The catalogs provided are built following the second approach.
To suppress the effect of shot noise, the estimated density is smoothed using a moving average that includes all connected vertices to a given vertex.
In practice, filaments are defined by a set of segments connecting local maxima to saddle points, i.e. tracing the ridges, of the density field. We choose to discard all filaments with detection significance below 3 standard deviations.
Additionally, DisPerSE ensures the smoothness of the computed skeleton by shifting the extremities of contiguous segments to their middle point.
As a final step, bifurcating filaments (i.e. those connecting the same critical point to different saddle points) are split by introducing bifurcation points. This procedure avoids double-counting of the shared part of the filament.
For THESAN, we provide two types of catalogs. Each one is stored in a sub-directory with the corresponding name.
- FixedMassTracers. These catalogs employ as tracers subhaloes with a fixed minimum stellar mass of \( M_{stars} \geq 10^8 M_\odot / h\) in all snapshots. This represents the traditional approach employed in studies of cosmic filaments.
- FixedNumberTracers. These catalogs employ as tracers a fixed number of subhaloes in all snapshots. This number is determined (together with other parameters) at \(z=5.5\) by simultaneously maximizing the number of massive haloes hosting a filament's extremity and the number of filament's extrema residing in haloes. This approach follows the recent proposition in Galarraga-Espinosa et al. (2023, in prep.) and is thoroughly described in the THESAN data release paper.
The filament catalogs are then produced running DisPerSE as follow:
delaunay_3D trace_catalog.dat -btype periodic
netconv trace_catalog.dat.NDnet -smoothData field_value 1
mse trace_catalog.dat.NDnet.SD.NDnet -forceLoops -robustness -manifolds -upSkl -nsig 3
skelconv trace_catalog.dat.NDnet.SD.NDnet_s3.up.NDskl -to NDskl_ascii -smooth 1 -breakdown
The output from DisPerSE is re-arranged in an HDF5 file with a structure similar to other THESAN data product.
Each catalog contains three main groups: an Header
, whose attributes contain general information about the simulation and filaments,
a CriticalPoint
group, whose datasets contain the properties of the critical points of the density field identified by DisPerSE, and
a Filaments
group, whose datasets host the propertied of the filaments identified by DisPerSE.
The available attributes in the Header
group are listed here (click to open).
Attribute |
Dimensions |
Units |
Description |
BoundingBox |
6 |
\(kpc/h\) |
Coordinates of two corners of the bounding box (computed by DisPerSE) that encloses all tracer points. The six values correspond to \( x_{min}, y_{min}, z_{min}, x_{max}, y_{max}, z_{max} \) of the tracers. |
BoxSize |
1 |
\({\rm ckpc} / h\) |
Spatial extent of the periodic box (in comoving units). |
HubbleParam |
1 |
\(100\,{\rm km/s/Mpc}\) |
Hubble constant (little \(h\) in standard units). |
NumCriticalPoints |
1 |
- |
Number of critical points identified by DisPerSE. |
NumDimensions |
1 |
- |
Number of dimensions of the space of tracer points. Always equal to 3 for THESAN. |
NumFilaments |
1 |
- |
Number of filaments identified by DisPerSE. |
Omega0 |
1 |
- |
The cosmological density parameter for matter. |
OmegaBaryon |
1 |
- |
The cosmological density parameter for baryonic matter. |
OmegaLambda |
1 |
- |
The cosmological density parameter for the cosmological constant. |
Redshift |
1 |
- |
The redshift corresponding to the current output. |
Time |
1 |
- |
The scale factor \(a=1/(1+z)\) corresponding to the current output. |
UnitLength_in_cm |
1 |
- |
Code length units in cm. |
UnitMass_in_g |
1 |
- |
Code mass units in g. |
UnitVelocity_in_cm_per_s |
1 |
- |
Code velocity units in cm/s. |
The available datasets in the CriticalPoint
and Filaments
groups are listed here (click to open).
CriticalPoints datasets ▾ |
Dataset |
Dim. |
Units |
Description |
AssociatedFields |
(NumCriticalPoints, NumAssociatedFields) |
- |
Value of fields associated to each critical point. The number and name of these fields are stored in the NumAssociatedFields and AssociatedFieldsNames attributes of the CriticalPoints dataset |
BoundaryFlag |
NumCriticalPoints |
- |
|
Coordinates |
(NumCriticalPoints, 3) |
\(kpc/h\) |
Coordinates of each critical point |
CriticalIndex |
NumCriticalPoints |
- |
Critical index of each critical point |
DensityDTFE |
NumCriticalPoints |
? |
Density estimate for each Critical point |
IndexFilament |
NumFilaments |
- |
Index of the filament associated to each critical point |
IndexOtherFilamentExtreme |
NumFilaments |
- |
Index of the critical point at the other extreme of the filament associated to each given critical point |
NumConnectedFilaments |
NumCriticalPoints |
- |
Number of filaments connected to each critical point |
OffsetFilamentAndExtreme |
NumCriticalPoints |
- |
Offset of the first filament or critical point associated to each critical point in the IndexFilament and IndexOtherFilamentExtreme arrays |
PersistencePairIndex |
NumCriticalPoints |
- |
Index of the persistence pair of each critical point |
Dataset |
Dim. |
Units |
Description |
AssociatedFields |
(NumFilaments, NumAssociatedFields) |
- |
Value of fields associated to each filament. The number and name of these fields are stored in the NumAssociatedFields and AssociatedFieldsNames attributes of the Filament dataset |
CoordinatesSamplingPoints |
(NumSamplingPoints, 3) |
\(kpc/h\) |
Coordinates of the sampling points associated to each filament |
IndexExtremalCriticalPoints |
(NumSamplingPoints, 2) |
- |
Index of the critical points at the extremities of each filament |
NumSamplingPoints |
NumFilaments |
- |
Number of sampling points associated to each filament |
OffsetSamplingPoints |
NumFilaments |
- |
Offset of the first sampling point or critical points pair associated to each filament in the CoordinatesSamplingPoints and IndexExtremalCriticalPoints arrays |