NEOPAX._transport_equations¶
Attributes¶
Classes¶
Base class for transport equations. Subclasses must implement __call__. |
|
Base class for transport equations. Subclasses must implement __call__. |
|
Base class for transport equations. Subclasses must implement __call__. |
|
Base class for transport equations. Subclasses must implement __call__. |
|
Functions¶
|
|
|
|
|
|
|
|
|
|
|
Reconstruct electron density from ion densities and species charges. |
|
Keep the closure temperature fixed for species whose temperature equation |
|
Clamp Er state values at configured Dirichlet boundaries. |
|
Expand a reduced density RHS back to full physical species ordering. |
|
Plasma permittivity on the transport grid using a precomputed geometry prefactor. |
|
Decorator to register equation classes in the registry. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Build the list of equation instances to evolve using prebuilt runtime |
|
Backward-compatible wrapper that builds the required runtime objects from |
Module Contents¶
- NEOPAX._transport_equations.DENSITY_STATE_TO_PHYSICAL = 1e+20¶
- NEOPAX._transport_equations.PARTICLE_FLUX_PHYSICAL_TO_STATE = 1e-20¶
- NEOPAX._transport_equations.HEAT_FLUX_PHYSICAL_TO_STATE = 1e-23¶
- NEOPAX._transport_equations._minmod_pair(a, b)¶
- NEOPAX._transport_equations._minmod3(a, b, c)¶
- NEOPAX._transport_equations._mc_limited_face_states(profile_ghost)¶
- NEOPAX._transport_equations._temperature_face_states(temperature_ghost, reconstruction_mode)¶
- NEOPAX._transport_equations._cell_centered_flux_faces(flux, reconstruction_mode)¶
- NEOPAX._transport_equations.enforce_quasi_neutrality(state, species)¶
Reconstruct electron density from ion densities and species charges. Returns a new TransportState with quasi-neutral electron density.
- NEOPAX._transport_equations.project_fixed_temperature_species(state, temperature_active_mask=None, fixed_temperature_profile=None, density_floor=DEFAULT_TRANSPORT_DENSITY_FLOOR)¶
Keep the closure temperature fixed for species whose temperature equation is disabled by projecting pressure = n * T_fixed on the working state.
- NEOPAX._transport_equations.apply_er_dirichlet_boundary_state(state, er_bc_model)¶
Clamp Er state values at configured Dirichlet boundaries.
- NEOPAX._transport_equations._expand_density_rhs_to_full_shape(density_rhs, template_density, species)¶
Expand a reduced density RHS back to full physical species ordering.
- NEOPAX._transport_equations._plasma_permitivity_from_prefactor(state, species_mass, permitivity_prefactor)¶
Plasma permittivity on the transport grid using a precomputed geometry prefactor.
- NEOPAX._transport_equations.__equation_registry: Dict[str, Type]¶
- NEOPAX._transport_equations.register_equation(name: str)¶
Decorator to register equation classes in the registry.
- class NEOPAX._transport_equations.EquationBase¶
Base class for transport equations. Subclasses must implement __call__.
- abstractmethod __call__(state, models, field, species, energy_grid, database, solver_parameters, bc=None, **kwargs)¶
- NEOPAX._transport_equations.get_equation(name: str) Type¶
- NEOPAX._transport_equations.list_equations()¶
- class NEOPAX._transport_equations.DensityEquation¶
Bases:
EquationBaseBase class for transport equations. Subclasses must implement __call__.
- dr_cells: jax.Array¶
- Vprime: jax.Array¶
- Vprime_half: jax.Array¶
- flux_model: callable¶
- flux_faces_builder: callable¶
- active_species_mask: jax.Array¶
- independent_density_mask: jax.Array¶
- face_flux_builder: callable = None¶
- density_bc_model: object = None¶
- particle_flux_reconstruction: str = 'closure_face_flux'¶
- particle_face_closure_mode: str = 'reconstructed'¶
- source_model: callable = None¶
- species: object = None¶
- name: str = 'density'¶
- _mode_requests_face_fluxes(mode_value)¶
- _use_model_face_particle_fluxes()¶
- enforce_dirichlet_boundary_rhs(state, density_rhs)¶
- debug_components(state, fluxes=None, source_outputs=None)¶
- __call__(state, fluxes=None, source_outputs=None)¶
- NEOPAX._transport_equations.build_density_equation(field, flux_model, source_model, bc_density, species, bc_temperature=None, bc_er=None, reconstruction='linear', active_species_mask=None, particle_flux_reconstruction='closure_face_flux', particle_face_closure_mode='reconstructed', density_floor=DEFAULT_TRANSPORT_DENSITY_FLOOR, temperature_floor=DEFAULT_TRANSPORT_TEMPERATURE_FLOOR)¶
- class NEOPAX._transport_equations.TemperatureEquation¶
Bases:
EquationBaseBase class for transport equations. Subclasses must implement __call__.
- dr_cells: jax.Array¶
- Vprime: jax.Array¶
- Vprime_half: jax.Array¶
- flux_model: callable¶
- flux_faces_builder: callable¶
- temperature_ghost_builder: callable¶
- charge_qp: jax.Array¶
- active_species_mask: jax.Array¶
- face_flux_builder: callable = None¶
- temperature_bc_model: object = None¶
- convection_reconstruction: str = 'tvd_mc'¶
- heat_flux_reconstruction: str = 'tvd_mc'¶
- include_neo_convection: bool = True¶
- include_turbulent_convection: bool = True¶
- include_classical_convection: bool = True¶
- include_work_term: bool = True¶
- source_model: callable = None¶
- species: object = None¶
- name: str = 'temperature'¶
- _mode_requests_face_fluxes(mode_value)¶
- _use_model_face_heat_fluxes()¶
- _use_model_face_particle_fluxes()¶
- enforce_dirichlet_boundary_rhs(state, density_rhs, pressure_rhs)¶
- debug_components(state, fluxes=None, source_outputs=None)¶
- __call__(state, fluxes=None, source_outputs=None)¶
- NEOPAX._transport_equations._build_species_faces_builder(field, bc_model, reconstruction='linear')¶
- NEOPAX._transport_equations._build_species_ghost_builder(bc_model)¶
- NEOPAX._transport_equations.build_temperature_equation(field, flux_model, source_model, species, bc_temperature, bc_density=None, bc_gamma=None, bc_er=None, active_species_mask=None, charge_qp=None, include_neo_convection=True, include_turbulent_convection=True, include_classical_convection=True, include_work_term=True, convection_reconstruction='tvd_mc', heat_flux_reconstruction='tvd_mc', reconstruction='linear', density_floor=DEFAULT_TRANSPORT_DENSITY_FLOOR, temperature_floor=DEFAULT_TRANSPORT_TEMPERATURE_FLOOR)¶
- class NEOPAX._transport_equations.ElectricFieldEquation¶
Bases:
EquationBaseBase class for transport equations. Subclasses must implement __call__.
- dr_cells: jax.Array¶
- Vprime: jax.Array¶
- Vprime_half: jax.Array¶
- flux_model: callable¶
- species_mass: jax.Array¶
- charge_qp: jax.Array¶
- permitivity_prefactor: jax.Array¶
- gamma_faces_builder: callable¶
- er_diffusive_flux_builder: callable¶
- er_bc_model: object = None¶
- source_mode: str = 'ambipolar_local'¶
- permitivity_mode: str = 'neopax_local'¶
- Er_relax: float = 1.0¶
- DEr: float = 1.0¶
- boundary_mode: str = 'standard'¶
- ntss_B0_mid: float = 0.0¶
- ntss_psfactor_mid: float = 1.0¶
- ntss_density_indices: jax.Array = None¶
- name: str = 'Er'¶
- _charge_flux_from_gamma(Gamma)¶
- _er_diffusion(Er)¶
- _charge_flux_and_ambi_term(state, Gamma, plasma_permitivity)¶
- debug_components(state, fluxes=None)¶
- __call__(state, fluxes=None)¶
- enforce_dirichlet_boundary_rhs(state, er_rhs)¶
- ap_linear_split(state)¶
Return diagonal linearization and explicit source for optional AP preconditioning. Uses only attributes set at construction and the current state.
- NEOPAX._transport_equations.build_electric_field_equation(field, species_names, flux_model, species_mass, charge_qp, bc_gamma, bc_er, Er_relax=1.0, DEr=1.0, source_mode='ambipolar_local', permitivity_mode='neopax_local', reconstruction='linear', boundary_mode='standard')¶
- NEOPAX._transport_equations._resolve_er_boundary_mode(config, solver_cfg)¶
- NEOPAX._transport_equations.build_equation_system(config, species, field, flux_model, source_models=None, solver_cfg=None, boundary_models=None)¶
Build the list of equation instances to evolve using prebuilt runtime objects. This avoids rebuilding geometry, databases, and flux models inside the equation builder and keeps compile closures smaller.
- NEOPAX._transport_equations.build_equation_system_from_config(config, species)¶
Backward-compatible wrapper that builds the required runtime objects from config before delegating to
build_equation_system.
- class NEOPAX._transport_equations.ComposedEquationSystem¶
- equations: tuple¶
- density_equation: object | None = None¶
- temperature_equation: object | None = None¶
- er_equation: object | None = None¶
- species: object | None = None¶
- density_floor: object¶
- temperature_floor: object¶
- temperature_active_mask: object | None = None¶
- fixed_temperature_profile: object | None = None¶
- er_bc_model: object | None = None¶
- _prepare_working_state(state)¶
- _resolve_equations()¶
- build_lagged_response(state)¶
- evaluate_with_lagged_response(t, state, runtime, lagged_response)¶
- _evaluate_state(state, lagged_response=None)¶
- __call__(t, state, runtime)¶
Call all equations with state, return a TransportState matching the state structure. Always output all three fields, setting missing ones to zero arrays of the correct shape. When electrons are present, evaluate the RHS on a quasi-neutral working state, but keep electron density out of the solved density subsystem. This matches the NTSS-style pattern: evolve independent ion/impurity density rows, reconstruct electron density algebraically for the working state and accepted/output states.
- vector_field(t, y, args)¶
Torax-style vector field for JAX ODE solvers: (t, y, args) -> dy/dt y is the state, args[0] is the runtime dict.