Skip to content

Add ionising core feature#576

Open
sun51027 wants to merge 29 commits into
boutproject:neutrals-flux-limmitersfrom
sun51027:core_ionising
Open

Add ionising core feature#576
sun51027 wants to merge 29 commits into
boutproject:neutrals-flux-limmitersfrom
sun51027:core_ionising

Conversation

@sun51027

@sun51027 sun51027 commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Principle of the “ionising core” feature: Neutrals that reach the core boundary are removed from the domain and their flux is added to the boundary condition on the flux of ions from the core. In other words, neutrals are ionised when hit the core boundary and turn back as ions.

It aims to make the neutral core boundary treatment more physical, as well as to replicate the core boundary feature used in SOLPS.

New features are added:

  1. ionising_core=true: remove neutral particles/momentum/energy flow toward the core boundary, while neutral particle flow return as ion particle flow.
  2. ionise_as: ion species, e.g. d -> d+, t -> t+
  3. ionising_core_return_mom_energy=true: neutral momentum/energy flow will return as ion momentum/energy flow
  4. ionising_core_iz_energy_loss: User defined variable for electron energy pay for ionisation. The default value is 13.6 (eV). Can be set to 0 to disable this feature.

WIP: Ionisation at core: neutral goes into core, coming back as ion


To-do

  • Renamed module from core_ionisingionising_core

  • Add flag ionisation_energy_loss

    • If true: cost energy from electrons to ionise neutral
    • Formula: electron energy source -= ionise_particle_flow / vol
    • Rename: ionisation_energy_lossionising_core_iz_energy_loss
    • Set as a user-defined variable for user to choose the energy cost for ionisation.
  • Add flag only_particle_flow (SOLPS-like) (

    • Aims to reproduce SOLPS's feature, which only account for paritcle flux, not energy/momentum flux
    • Rename: only_particle_flow → ionising_core_return_mom_energy
  • Use parallel momentum instead of one-way momentum flux (radial momentum)

  • Write and pass regression / unit tests

  • Documentation

@sun51027 sun51027 added the enhancement New feature or request label Jun 9, 2026
@mikekryjak

Copy link
Copy Markdown
Collaborator

I see that this PR contains this one: #451
Can you change this PR to reference that branch instead of the master branch for now? This will make it easier to see changes. Right now, because this PR contains both branches and neither is merged, the diff shows changes from both changes at the same time.

Once I merge #556, we can point this PR at master.

@sun51027 sun51027 changed the base branch from master to neutrals-flux-limmiters June 17, 2026 13:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants