jax_sn.operator_creation¶
- class SpatialBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed)[source]¶
Bases:
ParametrisedModuleThe 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¶
- 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.primitivessupplies whatever else the rung needs (a quadrature set, a strategy, an angle, …).- Return type:
- class DiscretisationBuilder(vertices: Array, connectivity: Array, element: Element, cross_sections_indexed: CrossSectionsIndexed, quadrature_set: QuadratureSetBase)[source]¶
Bases:
SpatialBuilderThe 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:
DiscretisationBuilderThe rungs whose operator sweeps, and therefore carry the combinatorial tier.
strategybuilds 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:
SweptBuilderThe 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:
SingleGroupBuilderBaseThe 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:
SingleGroupBuilderBaseThe 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:
SingleGroupBuilderBaseThe 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:
SpatialBuilderThe 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:
DiscretisationBuilderThe 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:
DiscretisationBuilderThe 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:
DiscretisationBuilderThe 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:
TransportBuilderTransport 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:
TransportBuilderTransport 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_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_levelspins the width the leveled sweep pads its level arrays to; leave itNoneunless the sweep is rebuilt under a trace (seemaximum_number_of_levels).
Submodules¶
- jax_sn.operator_creation.builders module
TopologyBuildface_template()fem_matrices()topology_build()face_normals()geometric_domain()domain()precomputed_geometric_data()spatial_data()solution_domain()angular_data()discretisation_data()non_differentiable_data()sweep_data()operator_data()multi_group_operator()single_group_data()single_group_operator()single_group_chain_operator()single_group_source_operator()mass_data()mass_operator()moment_data()moment_operator()discrete_data()discrete_operator()scatter_data()scatter_operator()transport_sweep_data()transport_data()single_angle_transport_operator()multi_angle_transport_operator()SpatialBuilderDiscretisationBuilderSweptBuilderMultiGroupBuilderSingleGroupBuilderBaseSingleGroupBuilderSingleGroupChainBuilderSingleGroupSourceBuilderMassBuilderMomentBuilderDiscreteBuilderScatterBuilderTransportBuilderSingleAngleTransportBuilderMultiAngleTransportBuilder
- jax_sn.operator_creation.default_strategies module