Skip to content

Output

Result formatting, export, and reporting.

output

Output formatting and reporting for HYRR results.

Converts result dataclasses to DataFrames, text summaries, and Excel files. Uses Polars for DataFrame operations.

result_to_polars

result_to_polars(result: StackResult) -> pl.DataFrame

Convert a StackResult to a Polars DataFrame.

One row per isotope per layer with columns: - layer_index, isotope, Z, A, state, half_life_s - production_rate, activity_Bq, saturation_yield_Bq_uA - energy_in_MeV, energy_out_MeV, delta_E_MeV, heat_kW

Parameters:

Name Type Description Default
result StackResult

Complete simulation result.

required

Returns:

Type Description
DataFrame

Polars DataFrame with all isotope results.

layer_result_to_polars

layer_result_to_polars(layer_result: LayerResult) -> pl.DataFrame

Convert a single LayerResult to a Polars DataFrame.

Same columns as result_to_polars but for a single layer (no layer_index).

Parameters:

Name Type Description Default
layer_result LayerResult

Single layer simulation result.

required

Returns:

Type Description
DataFrame

Polars DataFrame with isotope results for one layer.

depth_profile_to_polars

depth_profile_to_polars(layer_result: LayerResult) -> pl.DataFrame

Convert depth profile to a Polars DataFrame.

Columns: depth_cm, energy_MeV, dedx_MeV_cm, heat_W_cm3.

Parameters:

Name Type Description Default
layer_result LayerResult

Single layer simulation result.

required

Returns:

Type Description
DataFrame

Polars DataFrame with depth profile data.

activity_timeseries_to_polars

activity_timeseries_to_polars(isotope_result: IsotopeResult) -> pl.DataFrame

Convert activity time series to a Polars DataFrame.

Columns: time_s, time_hours, activity_Bq, activity_GBq.

Parameters:

Name Type Description Default
isotope_result IsotopeResult

Single isotope simulation result.

required

Returns:

Type Description
DataFrame

Polars DataFrame with activity time series.

result_summary

result_summary(result: StackResult) -> str

Generate a text summary similar to ISOTOPIA output format.

Includes beam parameters, layer info, and isotope production table.

Parameters:

Name Type Description Default
result StackResult

Complete simulation result.

required

Returns:

Type Description
str

Formatted text string.

purity_at

purity_at(result: StackResult | LayerResult, cooling_time_s: float, isotope: str) -> float

Calculate radionuclidic purity at a specific cooling time.

Purity = A_target / A_total at the specified cooling time.

Parameters:

Name Type Description Default
result StackResult | LayerResult

StackResult or LayerResult containing isotope data.

required
cooling_time_s float

Cooling time after end of irradiation [s].

required
isotope str

Name of target isotope.

required

Returns:

Type Description
float

Purity as fraction (0.0 to 1.0).

Raises:

Type Description
ValueError

If the isotope is not found in the results.

result_to_excel

result_to_excel(result: StackResult, path: str) -> None

Export results to an Excel file.

Writes the main isotope table to the file. Requires the xlsxwriter package (optional dependency of Polars).

Parameters:

Name Type Description Default
result StackResult

Complete simulation result.

required
path str

Output file path (.xlsx).

required