jax_sn.operator_creation

class SpatialBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed)[source]

Bases: ParametrisedModule

The problem’s spatial description: a mesh, an element and its materials.

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'solution_domain': <function SpatialBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
vertices: Array
connectivity: Array
element: Element
cross_sections_indexed: CrossSectionsIndexed
classmethod from_solution_domain(solution_domain: SolutionDomain, **primitives: Any)[source]

Recover a builder from an already-built SolutionDomain. Nothing is recomputed: the solution domain is stored whole and the spatial tier is projected back out. primitives supplies whatever else the rung needs (a quadrature set, a strategy, an angle, …).

Return type:

SpatialBuilder

class DiscretisationBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase)[source]

Bases: SpatialBuilder

The spatial description plus an angular discretisation.

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
RETAINED_UNDER: ClassVar[Mapping[str, Mapping[str, Callable[[Any, Any], bool]]]] = {'angular_data': {'cross_sections_indexed': <function DiscretisationBuilder.<lambda>>}}
quadrature_set: QuadratureSetBase
class SweptBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase)[source]

Bases: DiscretisationBuilder

The rungs whose operator sweeps, and therefore carry the combinatorial tier.

strategy builds the tier itself (build_default_non_differentiable_data()), so a builder cannot disagree with the operator it builds, and a strategy that comes to need more of that tier than a sweep ordering – or a knob to build it with – changes nothing here. The tier is marked non-differentiable on the registry rather than inside the derivation, so it holds on the stored and projected paths too.

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'non_differentiable_data': <function non_differentiable_data>, 'operator_data': <function operator_data>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'sweep_data': <function sweep_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'discretisation_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'non_differentiable_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'sweep_data': {'non_differentiable_data': <function SweptBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
NON_DIFFERENTIABLE: ClassVar[FrozenSet[str]] = frozenset({'non_differentiable_data', 'sweep_data'})
RETAINED_UNDER: ClassVar[Mapping[str, Mapping[str, Callable[[Any, Any], bool]]]] = {'angular_data': {'cross_sections_indexed': <function DiscretisationBuilder.<lambda>>}, 'non_differentiable_data': {'strategy': <function SweptBuilder.<lambda>>}}
class MultiGroupBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase, strategy: MultiGroupStrategy)[source]

Bases: SweptBuilder

The full multigroup operator \(I - M T^{-1} H D S\).

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'multi_group_operator': <function multi_group_operator>, 'non_differentiable_data': <function non_differentiable_data>, 'operator_data': <function operator_data>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'sweep_data': <function sweep_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'discretisation_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'non_differentiable_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'operator_data': {'multi_group_operator': <function MultiGroupBuilder.<lambda>>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'sweep_data': {'non_differentiable_data': <function SweptBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: MultiGroupStrategy
class SingleGroupBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase, energy_group: int, strategy: SingleGroupStrategy)[source]

Bases: SingleGroupBuilderBase

The full single-group operator \(I - M T^{-1} H D S_{gg}\).

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'non_differentiable_data': <function non_differentiable_data>, 'operator_data': <function operator_data>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'single_group_data': <function single_group_data>, 'single_group_operator': <function single_group_operator>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'sweep_data': <function sweep_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'discretisation_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'non_differentiable_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'operator_data': {'single_group_data': <function SingleGroupBuilderBase.<lambda>>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'single_group_data': {'single_group_operator': <function SingleGroupBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'sweep_data': {'non_differentiable_data': <function SweptBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: SingleGroupStrategy
class SingleGroupChainBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase, energy_group: int, strategy: SingleGroupChainStrategy)[source]

Bases: SingleGroupBuilderBase

The chain operator \(M T^{-1} H D\).

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'non_differentiable_data': <function non_differentiable_data>, 'operator_data': <function operator_data>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'single_group_chain_operator': <function single_group_chain_operator>, 'single_group_data': <function single_group_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'sweep_data': <function sweep_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'discretisation_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'non_differentiable_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'operator_data': {'single_group_data': <function SingleGroupBuilderBase.<lambda>>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'single_group_data': {'single_group_chain_operator': <function SingleGroupChainBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'sweep_data': {'non_differentiable_data': <function SweptBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: SingleGroupChainStrategy
class SingleGroupSourceBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase, energy_group: int, strategy: SingleGroupSourceStrategy)[source]

Bases: SingleGroupBuilderBase

The source operator \(M T^{-1} H\).

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'non_differentiable_data': <function non_differentiable_data>, 'operator_data': <function operator_data>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'single_group_data': <function single_group_data>, 'single_group_source_operator': <function single_group_source_operator>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'sweep_data': <function sweep_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'discretisation_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'non_differentiable_data': {'operator_data': <function SweptBuilder.<lambda>>}, 'operator_data': {'single_group_data': <function SingleGroupBuilderBase.<lambda>>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'single_group_data': {'single_group_source_operator': <function SingleGroupSourceBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'sweep_data': {'non_differentiable_data': <function SweptBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: SingleGroupSourceStrategy
class MassBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, strategy: MassStrategy, additional_shape: Tuple[int, ...])[source]

Bases: SpatialBuilder

The mass operator. Needs no angular discretisation, so it hangs off the spatial spine.

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'mass_data': <function mass_data>, 'mass_operator': <function mass_operator>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'mass_data': {'mass_operator': <function MassBuilder.<lambda>>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'solution_domain': <function SpatialBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: MassStrategy
additional_shape: Tuple[int, ...]
class MomentBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase, strategy: FluxMomentStrategy)[source]

Bases: DiscretisationBuilder

The discrete-to-moment operator \(M\).

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'moment_data': <function moment_data>, 'moment_operator': <function moment_operator>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'moment_data': {'moment_operator': <function MomentBuilder.<lambda>>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: FluxMomentStrategy
class DiscreteBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase, strategy: FluxMomentStrategy)[source]

Bases: DiscretisationBuilder

The moment-to-discrete operator \(D\).

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discrete_data': <function discrete_data>, 'discrete_operator': <function discrete_operator>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'discrete_data': {'discrete_operator': <function DiscreteBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: FluxMomentStrategy
class ScatterBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase, strategy: ScatterStrategy, energy_group_out: int, energy_group_in: int)[source]

Bases: DiscretisationBuilder

The group-to-group scatter \(S_{\tilde{g}g}\).

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'angular_data': <function angular_data>, 'discretisation_data': <function discretisation_data>, 'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'scatter_data': <function scatter_data>, 'scatter_operator': <function scatter_operator>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'topology_build': <function topology_build>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'angular_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>}, 'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'scatter_data': {'scatter_operator': <function ScatterBuilder.<lambda>>}, 'spatial_data': {'discretisation_data': <function DiscretisationBuilder.<lambda>>, 'solution_domain': <function SpatialBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}}
strategy: ScatterStrategy
energy_group_out: int
energy_group_in: int
class SingleAngleTransportBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, angle: Array, energy_group: int, forward_strategy: SingleAngleForwardStrategy, inversion_strategy: SingleAngleInversionStrategy)[source]

Bases: TransportBuilder

Transport for one direction.

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'sweep_data': <function transport_sweep_data>, 'topology_build': <function topology_build>, 'transport_data': <function transport_data>, 'transport_operator': <function single_angle_transport_operator>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'solution_domain': <function SpatialBuilder.<lambda>>, 'transport_data': <function TransportBuilder.<lambda>>}, 'sweep_data': {'transport_data': <function TransportBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}, 'transport_data': {'transport_operator': <function SingleAngleTransportBuilder.<lambda>>}}
forward_strategy: SingleAngleForwardStrategy
inversion_strategy: SingleAngleInversionStrategy
class MultiAngleTransportBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, angle: Array, energy_group: int, forward_strategy: MultiAngleForwardStrategy, inversion_strategy: MultiAngleInversionStrategy)[source]

Bases: TransportBuilder

Transport batched over the angle axis.

DERIVATIONS: ClassVar[Mapping[str, Callable]] = {'domain': <function domain>, 'face_normals': <function face_normals>, 'face_template': <function face_template>, 'fem_matrices': <function fem_matrices>, 'geometric_domain': <function geometric_domain>, 'precomputed_geometric_data': <function precomputed_geometric_data>, 'solution_domain': <function solution_domain>, 'spatial_data': <function spatial_data>, 'sweep_data': <function transport_sweep_data>, 'topology_build': <function topology_build>, 'transport_data': <function transport_data>, 'transport_operator': <function multi_angle_transport_operator>}
PROJECTIONS: ClassVar[Mapping[str, Mapping[str, Callable]]] = {'domain': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'face_normals': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'face_template': {'geometric_domain': <function SpatialBuilder.<lambda>>}, 'fem_matrices': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'geometric_domain': {'domain': <function _geometric_domain_of>}, 'precomputed_geometric_data': {'spatial_data': <function SpatialBuilder.<lambda>>}, 'spatial_data': {'solution_domain': <function SpatialBuilder.<lambda>>, 'transport_data': <function TransportBuilder.<lambda>>}, 'sweep_data': {'transport_data': <function TransportBuilder.<lambda>>}, 'topology_build': {'geometric_domain': <function _topology_build_of>}, 'transport_data': {'transport_operator': <function MultiAngleTransportBuilder.<lambda>>}}
forward_strategy: MultiAngleForwardStrategy
inversion_strategy: MultiAngleInversionStrategy
class DefaultMultiGroupStrategy[source]

Bases: object

classmethod default_multi_group_strategy(batch_size: int | None = None, checkpoint=True)[source]
classmethod default_multi_group_pallas_strategy(batch_size: int | None = None, checkpoint: bool = True)[source]
classmethod default_multi_group_warp_strategy(batch_size: int | None = None, checkpoint: bool = True, maximum_number_of_levels: int | None = None)[source]

maximum_number_of_levels pins the width the leveled sweep pads its level arrays to; leave it None unless the sweep is rebuilt under a trace (see maximum_number_of_levels).

Submodules