Functionality concerned with setting the radiative transfer cascade.
More...
|
| np.ndarray | gateau.cascade.blackbody (np.ndarray f_src, float T) |
| | Blackbody intensity. More...
|
| |
| np.ndarray | gateau.cascade.johnson_nyquist_psd (np.ndarray f_src, float T) |
| | Johnson-Nyquist power spectral density. More...
|
| |
| np.ndarray | gateau.cascade.get_psd_cib (np.ndarray f_src) |
| | Get single-moded power spectral density for the CIB monopole. More...
|
| |
| tuple[np.ndarray, np.ndarray] | gateau.cascade.window_trans (np.ndarray f_src, float thickness, float tandelta, float neff, bool window_AR, float T_parasitic_refl, float T_parasitic_refr) |
| | Calculates the window transmission. More...
|
| |
| np.ndarray | gateau.cascade.eta_Al_ohmic (np.ndarray f_src) |
| | Calculate Ohmic losses for aluminium over array of sky frequencies. More...
|
| |
| np.ndarray | gateau.cascade.sizer (Union[np.ndarray, float] eta, np.ndarray f_src, np.ndarray f_eta=None, int axis=None) |
| | Resize efficiency term to new size. More...
|
| |
| list[dict[any, any]] | gateau.cascade.read_from_folder (str cascade_folder, str yaml_name) |
| | Generate a cascade list from a cascade folder. More...
|
| |
|
None | gateau.cascade.save_cascade (list[dict[any, any]] cascade_list, str save_folder, str yaml_name) |
| |
| tuple[np.ndarray, np.ndarray] | gateau.cascade.get_cascade (list[dict[str, any]] cascade_list, np.ndarray f_src, bool use_cib) |
| | Calculate a cascade list, consisting of efficiency and psd per stage. More...
|
| |
|
|
float | gateau.cascade.TCMB = 2.725 |
| |
Functionality concerned with setting the radiative transfer cascade.
◆ blackbody()
| np.ndarray gateau.cascade.blackbody |
( |
np.ndarray |
f_src, |
|
|
float |
T |
|
) |
| |
Blackbody intensity.
- Parameters
-
| f_src | Source frequencies. Units: Hz. |
| T | Temperature. Units: K. |
- Returns
- Specific intensity. Units: W / m^2 / Hz / sr.
◆ eta_Al_ohmic()
| np.ndarray gateau.cascade.eta_Al_ohmic |
( |
np.ndarray |
f_src | ) |
|
Calculate Ohmic losses for aluminium over array of sky frequencies.
- Parameters
-
| f_src | Numpy array containing source frequencies. Units: Hz |
- Returns
- Array with eta values for Ohmic losses.
◆ get_cascade()
| tuple[np.ndarray,
np.ndarray] gateau.cascade.get_cascade |
( |
list[dict[str, any]] |
cascade_list, |
|
|
np.ndarray |
f_src, |
|
|
bool |
use_cib |
|
) |
| |
Calculate a cascade list, consisting of efficiency and psd per stage.
- Parameters
-
| cascade_list | List containing, per element, a dictionary containing the efficiency and coupling temperature of each stage in the cascade. For reflective stages, the dictionary should contain either:
- A single eta and temperature. This requires the following fieldnames in the dictionary: 'eta_coup' (scalar) and 'T_parasitic' (scalar).
- A tuple with efficiencies and frequencies at which these are defined, and a temperature. This requires the following fieldnames in the dictionary: 'eta_coup' (2-tuple with Numpy arrays) and 'T_parasitic' (scalar).
|
For refractive stages, the dictionary should contain:
- Thickness of dielectric in meters, fieldname 'thickness'.
- Loss tangent, fieldname 'tandelta'.
- Effective refractive index, fieldname 'neff'.
- Whether to use anti-reflective (AR) coating, fieldname 'Window_AR'.
- Temperature seen in reflection coming from the antenna, fieldname 'T_parasitic_refl'.
- Temperature seen in refraction, fieldname 'T_parasitic_refr'.
Aside from efficiencies and temperatures, each stage can have a name, set with fieldname 'name'. If multiple subsequent stages couple to the same temperature, they can also be grouped. The efficiencies will be precomposed and a total efficiency is calculated. Then, these multiple stages are merged into a single stage and treated as such. This significantly unburdens the CUDA calculation kernel and should hence be used. The fieldname for grouping is 'groupname'. Subsequent stages to be grouped together must have the same group name.
- Parameters
-
| f_src | Array with source frequencies. Units: GHz. |
| use_cib | Whether to add cosmic infrared background (CIB) monopole. Engaging this adds a single-moded modified blackbody to the CMB signal. |
- Returns
- List with list of arrays containing efficiencies as first element, and list containing arrays of psd as second element.
◆ get_psd_cib()
| np.ndarray gateau.cascade.get_psd_cib |
( |
np.ndarray |
f_src | ) |
|
Get single-moded power spectral density for the CIB monopole.
We assume here a modified blackbody spectrum with a normalization constant. The expression and beta and T_eff were obtained from McCarthy & Hill, PRD (2024). The normalization value of 0.371 MJy sr^-1 at 545 GHz was taken from Odegard et al., ApJ (2019).
- Parameters
-
| f_src | dource frequencies. Units: Hz. |
- Returns
- CIB single-moded monopole power spectral density. Units: W / Hz.
◆ johnson_nyquist_psd()
| np.ndarray gateau.cascade.johnson_nyquist_psd |
( |
np.ndarray |
f_src, |
|
|
float |
T |
|
) |
| |
Johnson-Nyquist power spectral density.
- Parameters
-
| f_src | Source frequencies. Units: Hz. |
| T | Temperature. Units: K. |
- Returns
- Power spectral density. Units: W / Hz.
◆ read_from_folder()
| list[dict[any, any]] gateau.cascade.read_from_folder |
( |
str |
cascade_folder, |
|
|
str
|
yaml_name |
|
) |
| |
Generate a cascade list from a cascade folder.
The folder should contain a YAML file containing the cascade list. Any vector-valued efficiency terms should be provided inside the folder as a CSV file, with the first column containing frequencies at which the terms are evaluated and the second column containing the terms themselves. Then, the CSV can be referenced inside the YAML by passing the CSV name (including .csv) to the eta_coup field inside the YAML.
- Parameters
-
| cascade_folder | String containing path to folder containing cascade YAML and any related CSV files. |
| yaml_name | String containing the name of the YAML file containing the cascade. |
- Returns
- List containing the cascade.
◆ sizer()
| np.ndarray gateau.cascade.sizer |
( |
Union[np.ndarray, float] |
eta, |
|
|
np.ndarray |
f_src, |
|
|
np.ndarray |
f_eta = None, |
|
|
int |
axis = None |
|
) |
| |
Resize efficiency term to new size.
Used to vectorize or interpolate on efficiency terms.
If eta is a scalar, a constant eta array is returned with the same size as f_src.
If eta is an array with eta.size != f_src.size, an array containing frequencies at which eta is evaluated should also be passed. A 1D interpolation on f_src is then performed to evaluate eta on f_src.
If efficiency is array with same size as f_src, it is returned as-is.
- Parameters
-
| eta | Efficiency term of some stage. |
| f_src | Numpy array containing source frequencies. Units: Hz. |
| f_eta | Numpy array containing frequencies at which eta is evaluated. Units: Hz. Should only be passed when 1D interpolation is required in case eta.size != f_src.size. Defaults to None. |
| axis | Axis along which to loop interpolation, in case eta is mutli-dimensional. The actual interpolation will always occur along the fastest axis. Defaults to None. |
- Returns
- Array with eta values, depending on input (see above).
◆ window_trans()
| tuple[np.ndarray,
np.ndarray] gateau.cascade.window_trans |
( |
np.ndarray |
f_src, |
|
|
float |
thickness, |
|
|
float |
tandelta, |
|
|
float |
neff, |
|
|
bool |
window_AR, |
|
|
float |
T_parasitic_refl, |
|
|
float |
T_parasitic_refr |
|
) |
| |
Calculates the window transmission.
- Parameters
-
| f_src | Source frequencies. Units: Hz. |
| thickness | Thickness of the window/lens. Units: m. |
| tandelta | Loss tangent of window/lens dielectric. |
| neff | Refractive index of dielectric. Set to 1 to remove reflections. Units : None. |
| window_AR | Whether the window is supposed to be coated by Ar (True) or not (False). |
| T_parasitic_refl | Temperature of parasitic source seen in reflection, w.r.t. instrument. |
| T_parasitic_refr | Temperature of parasitic source seen in refraction.. |
- Returns
- List containing list of arrays of efficiencies as first element, and list of arrays of psd's seen by each stage as second element.