discrete1.materials module

Material cross-section generation and management.

This module provides tools for generating and managing neutron cross-sections for various materials used in transport calculations. It supports both enriched (uranium, plutonium, uranium-hydride) and non-enriched materials, with cross-sections loaded from precomputed data files.

The module handles: - Cross-section lookup for standard materials - Enrichment calculations for fissile materials - Special composition calculations (e.g., uranium hydride) - Vacuum/void material properties

discrete1.materials.materials(groups, materials, key=False)[source]

Create cross sections for different materials.

Generates total, scatter, and fission cross-sections for a list of materials. Handles both enriched and non-enriched materials, with proper composition calculations for mixtures.

Parameters:
  • groups (int) – Number of energy groups.

  • materials (list) – List of material names (str). Each name can include enrichment percentage using ‘-X%’ suffix.

  • key (bool, optional) – If True, return a mapping of indices to material names.

Returns:

  • numpy.ndarray – Total cross-sections (n_materials, n_groups).

  • numpy.ndarray – Scatter cross-sections (n_materials, n_groups, n_groups).

  • numpy.ndarray – Fission cross-sections (n_materials, n_groups, n_groups).

  • dict, optional – Material index to name mapping if key=True.

Notes

Supported materials are defined in __materials tuple. Enriched materials support percentage specification (e.g., ‘uranium-5%’).