scpn_fusion.nuclear – Nuclear¶
The nuclear engineering subpackage provides tritium breeding blanket neutronics, plasma-wall interaction models, erosion physics, and thermoelectric MHD effects.
Blanket Neutronics¶
Reduced-order neutronics surrogate models for blanket studies.
This module provides lightweight, deterministic utilities used by engineering workflows and tests:
BreedingBlanketfor 1D radial transport and tritium breeding estimates.VolumetricBlanketReportfor compact aggregate material-balance outputs.
The implementation intentionally omits Monte-Carlo detail and is suitable for fast iteration, benchmarking, and regression checks in the native solver pipeline.
- class scpn_fusion.nuclear.blanket_neutronics.VolumetricBlanketReport(tbr, total_production_per_s, incident_neutrons_per_s, blanket_volume_m3, tbr_ideal=0.0)[source]¶
Bases:
objectReduced 3D blanket surrogate summary.
- Parameters:
- class scpn_fusion.nuclear.blanket_neutronics.BreedingBlanket(thickness_cm=100, li6_enrichment=1.0, r_inner_cm=200.0)[source]¶
Bases:
object1D Cylindrical Neutronics Transport Code for TBR calculation.
Simulates neutron attenuation in a blanket annulus (r_inner to r_outer).
- solve_transport(incident_flux=100000000000000.0, rear_albedo=0.0)[source]¶
Solve steady-state cylindrical diffusion-reaction equation for neutron flux Phi(r).
-D * (1/r * d/dr(r * dPhi/dr)) + Sigma_rem * Phi = 0.
- calculate_tbr(phi)[source]¶
Integrate Tritium production over the blanket volume (Cylindrical).
TBR = (Rate of Tritium Production) / (Rate of Incoming Neutrons).
- calculate_volumetric_tbr(major_radius_m=6.2, minor_radius_m=2.0, elongation=1.7, radial_cells=24, poloidal_cells=72, toroidal_cells=48, incident_flux=100000000000000.0, port_coverage_factor=0.8, streaming_factor=0.85, blanket_fill_factor=1.0)[source]¶
Reduced 3D blanket-volume surrogate built on top of the 1D transport profile.
Assumptions: - 1D depth attenuation from solve_transport is reused as the radial blanket profile. - Blanket shell is toroidal with shaped poloidal section via elongation. - Incident-angle weighting captures first-order poloidal asymmetry.
- scpn_fusion.nuclear.blanket_neutronics.run_breeding_sim(*, thickness_cm=80.0, li6_enrichment=0.9, incident_flux=100000000000000.0, rear_albedo=0.0, save_plot=True, output_path='Tritium_Breeding_Result.png', verbose=True)[source]¶
Run deterministic blanket breeding simulation and return summary metrics.
- class scpn_fusion.nuclear.blanket_neutronics.MultiGroupBlanket(thickness_cm=80.0, li6_enrichment=0.9, n_cells=100, r_inner_cm=200.0)[source]¶
Bases:
object3-group neutron transport for tritium breeding ratio calculation.
- Energy groups:
Group 1 (fast): E > 1 MeV (source: 14.1 MeV D-T neutrons) Group 2 (epithermal): 1 eV < E < 1 MeV (down-scattered) Group 3 (thermal): E < 1 eV (thermalised, main Li-6 capture)
- Includes:
Energy-dependent cross sections per group
Down-scatter from fast → epithermal → thermal
Beryllium (n,2n) multiplication in fast group
Li-6(n,t) capture in all groups (dominant in thermal)
This is a significant upgrade over the single-group BreedingBlanket above.
Nuclear Wall Interaction¶
Nuclear-engineering façade for plasma-vacuum vessel interaction diagnostics.
The module assembles reduced-order wall-load, ash-poisoning, sputtering, and
materials-lifespan analyses on top of equilibrium fields from
FusionBurnPhysics. It is intentionally deterministic and intended for
high-throughput engineering workflow checks rather than full fidelity safety
certification.
- scpn_fusion.nuclear.nuclear_wall_interaction.default_iter_config_path()[source]¶
Resolve repository-local default ITER configuration path.
- Return type:
- class scpn_fusion.nuclear.nuclear_wall_interaction.NuclearEngineeringLab(config_path)[source]¶
Bases:
FusionBurnPhysicsSimulate the nuclear interaction between Plasma and the Reactor Vessel.
Helium Ash accumulation.
Neutron Flux distribution on the First Wall.
Material Damage (DPA).
- Parameters:
config_path (str)
- generate_first_wall()[source]¶
Define the geometry of the reactor wall (Vacuum Vessel).
Approximated as a D-shaped contour surrounding the plasma.
- simulate_ash_poisoning(burn_time_sec=1000, tau_He_ratio=5.0, pumping_efficiency=1.0)[source]¶
Simulate the drop in fusion power due to Helium buildup.
tau_He_ratio: Ratio of Helium particle confinement to Energy confinement (tau_He / tau_E). If ratio > 10, the reactor chokes.
- calculate_neutron_wall_loading()[source]¶
Ray-Tracing calculation of 14.1 MeV neutrons hitting the wall.
- calculate_cad_wall_loading(vertices, faces, source_points_xyz=None, source_strength_w=None)[source]¶
Reduced CAD loading estimate on imported STEP/STL meshes.
- scpn_fusion.nuclear.nuclear_wall_interaction.run_nuclear_sim(config_path=None, *, save_plot=True, output_path='Nuclear_Engineering_Report.png', verbose=True, lab_factory=<class 'scpn_fusion.nuclear.nuclear_wall_interaction.NuclearEngineeringLab'>)[source]¶
Run a full reduced-order nuclear engineering diagnostic bundle.
- Parameters:
config_path (
str|None) – Path to an ITER-format JSON configuration. WhenNone,iter_config.jsonis resolved from the repository root.save_plot (
bool) – Whether to generate and save the plotting summary.output_path (
str) – Plot output path ifsave_plotis true.verbose (
bool) – Emit human-readable progress and summary text.lab_factory (
Callable[[str],Any]) – Factory used to create the analysis engine, exposed for tests.
- Return type:
- Returns:
Mapping with final ash fraction, wall-load metrics, lifespan range, and plot status used by callers and benchmark harnesses.
PWI Erosion¶
Plasma-wall interaction sputtering and erosion surrogates.
This module defines a compact deterministic model for sputtering yields and erosion-rate estimates. The routines are designed for fast sweeps and workflow-level guardrail checks in the native nuclear analysis stack.
- class scpn_fusion.nuclear.pwi_erosion.SputteringPhysics(material='Tungsten', redeposition_factor=0.95)[source]¶
Bases:
objectSimulates plasma-wall interaction sputtering and macroscopic erosion.
- scpn_fusion.nuclear.pwi_erosion.run_pwi_demo(*, material='Tungsten', redeposition_factor=0.95, flux_particles_m2_s=1e+24, temp_min_eV=10.0, temp_max_eV=100.0, num_points=50, angle_deg=45.0, save_plot=True, output_path='PWI_Erosion_Result.png', verbose=True)[source]¶
Run deterministic PWI erosion scan and return summary.
TEMHD Peltier Stabiliser¶
TEMHD-stabilized divetor flow surrogate for reduced-order thermal studies.
- class scpn_fusion.nuclear.temhd_peltier.TEMHD_Stabilizer(layer_thickness_mm=5.0, B_field=10.0)[source]¶
Bases:
objectImplicit 1D heat solver for TEMHD-stabilized liquid-metal divertors.
- scpn_fusion.nuclear.temhd_peltier.run_temhd_experiment(*, layer_thickness_mm=5.0, B_field=10.0, flux_min_MW_m2=0.0, flux_max_MW_m2=100.0, flux_points=20, settle_steps_per_flux=20, dt_s=0.5, save_plot=True, output_path='TEMHD_Corrected.png', verbose=True)[source]¶
Run deterministic TEMHD flux-ramp experiment and return summary metrics.