Intergalactic Medium State

Class providing the thermal and ionization state of the IGM—the hydrogen and helium neutral, singly-ionized, and doubly-ionized fractions, the electron fraction, the temperature, and the electron-scattering optical depth as functions of cosmic time. These quantities evolve through the epoch of reionization and affect the cooling rates, photo-ionization suppression, and the UV background modelled elsewhere in Galacticus. The instantaneous Jeans mass computed from the IGM temperature governs the filtering mass scale for baryon accretion onto low-mass halos.

Default implementation: intergalacticMediumStateRecFast

Methods

electronFractiondouble precision

Return the electron fraction (relative to hydrogen) in the IGM at the given time.

  • double precision, intent(in ) :: time

neutralHydrogenFractiondouble precision

Return the neutral fraction of hydrogen in the IGM at the given time.

  • double precision, intent(in ) :: time

singlyIonizedHydrogenFractiondouble precision

Return the singly-ionized fraction of hydrogen in the IGM at the given time.

  • double precision, intent(in ) :: time

neutralHeliumFractiondouble precision

Return the neutral fraction of helium in the IGM at the given time.

  • double precision, intent(in ) :: time

singlyIonizedHeliumFractiondouble precision

Return the singly-ionized fraction of helium in the IGM at the given time.

  • double precision, intent(in ) :: time

doublyIonizedHeliumFractiondouble precision

Return the doubly-ionized fraction of helium in the IGM at the given time.

  • double precision, intent(in ) :: time

metallicitydouble precision

Return the metallicity (mass fraction) in the IGM at the given time.

  • double precision, intent(in ) :: time

temperaturedouble precision

Return the temperature (in Kelvin) of the IGM at the given time.

  • double precision, intent(in ) :: time

massJeansdouble precision

Return the instantaneous Jeans mass (in \(\mathrm{M}_\odot\)) at the given time.

  • double precision, intent(in ) :: time

electronScatteringOpticalDepthdouble precision

Return the electron scattering optical depth from the present day back to the given time in the IGM.

  • double precision, intent(in ) :: time

  • logical , intent(in ), optional :: assumeFullyIonized

electronScatteringTimedouble precision

Return the cosmological time at which the given electron scattering opticalDepth is reached (integrating from the present day) in the IGM.

  • double precision, intent(in ) :: opticalDepth

  • logical , intent(in ), optional :: assumeFullyIonized

intergalacticMediumStateFile

An IGM state class which reads the state of the intergalactic medium from a file and interpolates in the tabulated results. The HDF5 file containing the table should have the following form:

HDF5 "igmState.hdf5" {
GROUP "/" {
   ATTRIBUTE "fileFormat" {
      DATATYPE  H5T_IEEE_F64LE
      DATASPACE  SCALAR
      DATA {
      (0): 1
      }
   }
   GROUP "Parameters" {
      ATTRIBUTE "HubbleConstant" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 67.8
         }
      }
      ATTRIBUTE "OmegaBaryon" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 0.0484
         }
      }
      ATTRIBUTE "OmegaDarkEnergy" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 0.692
         }
      }
      ATTRIBUTE "OmegaMatter" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 0.308
         }
      }
      ATTRIBUTE "Y_He" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 0.22
         }
      }
      ATTRIBUTE "temperatureCMB" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 2.725
         }
      }
   }
   DATASET "electronFraction" {
      DATATYPE  H5T_IEEE_F64LE
      DATASPACE  SIMPLE { ( 10000 ) / ( 10000 ) }
   }
   DATASET "hIonizedFraction" {
      DATATYPE  H5T_IEEE_F64LE
      DATASPACE  SIMPLE { ( 10000 ) / ( 10000 ) }
   }
   DATASET "heIonizedFraction" {
      DATATYPE  H5T_IEEE_F64LE
      DATASPACE  SIMPLE { ( 10000 ) / ( 10000 ) }
   }
   DATASET "matterTemperature" {
      DATATYPE  H5T_IEEE_F64LE
      DATASPACE  SIMPLE { ( 10000 ) / ( 10000 ) }
      ATTRIBUTE "units" {
         DATATYPE  H5T_STRING {
            STRSIZE 6;
            STRPAD H5T_STR_NULLTERM;
            CSET H5T_CSET_ASCII;
            CTYPE H5T_C_S1;
         }
         DATASPACE  SCALAR
         DATA {
         (0): "Kelvin"
         }
      }
      ATTRIBUTE "unitsInSI" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 1
         }
      }
   }
   DATASET "redshift" {
      DATATYPE  H5T_IEEE_F64LE
      DATASPACE  SIMPLE { ( 10000 ) / ( 10000 ) }
   }
}
}

The electronFraction, hIonizedFraction, heIonizedFraction, and matterTemperature datasets contain the relevant quantity for each redshift in the redshift dataset.

Methods

  • readFile — Read the named power spectrum file.

Parameters

  • [fileName] (string) — The name of the file from which to read a tabulated transfer function.

intergalacticMediumStateInstantReionization

The intergalactic medium is assumed to be instantaneously and fully reionized at a fixed redshift, and heated to a fixed temperature. Prior to that, the reionization state is provided by some other class.

Parameters

  • [electronScatteringOpticalDepth] (real; ≥ 0.0) — The optical depth to reionization in the instantReionization IGM state model.

  • [reionizationRedshift] (real; default 9.97d0) — The redshift of reionization in the instantReionization IGM state model.

  • [reionizationTemperature] (real; default 1.0d4) — The post-reionization temperature (in units of Kelvin) in the instantReionization IGM state model.

  • [presentDayTemperature] (real; default 1.0d3) — The present day temperature (in units of Kelvin) in the instantReionization IGM state model.

intergalacticMediumStateInternal

The state of the intergalactic medium is solved for internally.

intergalacticMediumStateMetallicityAstraeusV

An IGM state class which provides a fit to the metallicity evolution of the IGM reported by Ucci et al. (2023).

intergalacticMediumStateMetallicityFixed

An intergalactic medium state decorator class that overrides the metallicity of an underlying IGM state object with a single constant value given by [metallicity], while passing all other state properties through unchanged. This enables simple models where the IGM metallicity is assumed to be uniform and time-independent.

Parameters

  • [metallicity] (real) — The metallicity (relative to Solar) of the IGM.

intergalacticMediumStateMetallicityPolynomial

An intergalactic medium state decorator class that overrides the metallicity of an underlying IGM state with a redshift-dependent polynomial, \(Z(z)/Z_\odot = 10^{\sum_i c_i [\log_{10}(1+z)]^i}\), where the polynomial coefficients \(c_i\) are provided via [coefficients]. All other state properties are passed through unchanged.

Parameters

  • [coefficients] (real) — The polynomial coefficients, \(c_i\), in the function \(Z(z)/Z_\odot = 10^{\sum_{i=0}^N c_i [\log_{10}(1+z)]^i}\).

intergalacticMediumStateRecFast

An IGM state class which computes the state of the intergalactic medium using the RecFast code Seager et al. (2000), Wong et al. (2008). The RecFast code will be downloaded and run to compute the intergalactic medium state as needed, which will then be stored for future use.

(Default implementation)

Parameters

  • [fileName] (string) — The name of the file from which to read intergalactic medium state data. (inherited from intergalacticMediumStateFile)

intergalacticMediumStateSimple

An IGM state class which implements a simple model of reionization in which the universe is assumed to be fully neutral prior to the redshift given by [reionizationRedshift] and fully ionized thereafter. The temperature is given by [preReionizationTemperature] before reionization, and [reionizationTemperature] thereafter.

Methods

  • calculationReset — Reset memoized calculations.

Parameters

  • [reionizationRedshift] (real; default 9.97d0) — The redshift of reionization in the simple IGM state model.

  • [reionizationTemperature] (real; default 1.0d4) — The post-reionization temperature (in units of Kelvin) in the simple IGM state model.

  • [preReionizationTemperature] (real; default 10.0d0) — The pre-reionization temperature (in units of Kelvin) in the simple IGM state model.