# Filament catalogs

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).

### Catalog production

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.

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

### Catalog format

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.

`Header`

group are listed here (click to open). Header attributes ▾ |
---|

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. |

`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 |

Filaments datasets ▾ |
---|

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 |