mcdc.MaterialMG#

class mcdc.MaterialMG(name: str = '', capture: ndarray[tuple[Any, ...], dtype[float64]] | None = None, scatter: ndarray[tuple[Any, ...], dtype[float64]] | None = None, fission: ndarray[tuple[Any, ...], dtype[float64]] | None = None, nu_s: ndarray[tuple[Any, ...], dtype[float64]] | None = None, nu_p: ndarray[tuple[Any, ...], dtype[float64]] | None = None, nu_d: ndarray[tuple[Any, ...], dtype[float64]] | None = None, chi_p: ndarray[tuple[Any, ...], dtype[float64]] | None = None, chi_d: ndarray[tuple[Any, ...], dtype[float64]] | None = None, speed: ndarray[tuple[Any, ...], dtype[float64]] | None = None, decay_rate: ndarray[tuple[Any, ...], dtype[float64]] | None = None)#

Multigroup neutron-interaction properties assigned to simulation cells.

Parameters:
  • name (str, optional) – User-facing material name.

  • capture (ndarray, optional) – Capture macroscopic cross section by incident group.

  • scatter (ndarray, optional) – Scattering production matrix in [outgoing_group, incident_group] order. Column sums define the scattering cross section.

  • fission (ndarray, optional) – Fission macroscopic cross section by incident group.

  • nu_s (ndarray, optional) – Mean number of neutrons emitted per scattering event by incident group.

  • nu_p (ndarray, optional) – Prompt-fission neutron yield by incident group.

  • nu_d (ndarray, optional) – Delayed-fission neutron yield in [delayed_group, incident_group] order.

  • chi_p (ndarray, optional) – Prompt-fission spectrum. A one-dimensional spectrum is shared by all incident groups; a matrix uses [outgoing_group, incident_group] order.

  • chi_d (ndarray, optional) – Delayed-fission spectrum in [outgoing_group, delayed_group] order.

  • speed (ndarray, optional) – Particle speed by energy group.

  • decay_rate (ndarray, optional) – Delayed-neutron precursor decay rate by delayed group.

Notes

At least one of capture, scatter, or fission is required and determines the number of energy groups. Cross sections are expected in inverse centimetres.

Examples

Define a one-group purely absorbing material:

>>> import numpy as np
>>> import mcdc
>>> absorber = mcdc.MaterialMG(
...     name="Absorber",
...     capture=np.array([1.0]),
... )

Define a two-group scattering material:

>>> scatterer = mcdc.MaterialMG(
...     name="Scatterer",
...     capture=np.array([0.05, 0.10]),
...     scatter=np.array([
...         [0.70, 0.10],
...         [0.20, 0.50],
...     ]),
...     nu_s=np.array([1.0, 1.0]),
... )

Define a one-group prompt-fission material:

>>> fuel = mcdc.MaterialMG(
...     name="Fuel",
...     capture=np.array([0.10]),
...     fission=np.array([0.20]),
...     nu_p=np.array([2.50]),
... )