Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement 2D neutral equation fixes originally part of AFN flux limiter branch #231

Open
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

mikekryjak
Copy link
Collaborator

@mikekryjak mikekryjak commented May 20, 2024

There is an outstanding PR which has fixes for neutral equations as well as the new limiter scheme. It lives on my fork at mikekryjak#5.

The flux limiter scheme has caused us lots of inexplicable slowdowns, and we were waiting with the merge until we resolved that along with the X-point temperature spike bug. With those two problems having turned out to be challenging, I think we should fix the equations in a separate PR as they are simply not correct. We can then tackle the limiter scheme methodically bit by bit.

I had to merge the other 2D neutral fixes PR into this as both are required for the tests. That other PR is causing checkerboarding in the neutral_mixed integrated test.

To do:

  • Implement the equation fixes: kappa and eta factors, perpendicular advection and conduction factors
  • Implement the viscous heating
  • Test and record impact on results and performance
  • Update docs

Original work from @bendudson:
image

Impact on results is not insubstantial, especially at the target. Performance is the same or slightly faster - probably dependent on the change in conditions rather than being more difficult numerically.

OMP
image

Target
image

Poloidal slice
image

bendudson and others added 24 commits March 1, 2024 19:34
Apply limiter/upwinding to both X and Y advection
Seems to work better for neutral perpendicular diffusion than MC.
Take field (Nn, Pn, NVn) and Dnn separately; only upwind the field,
and use cell face average values for Dnn.

Also add neutral_conduction switch.
target settings used in SOL and PFR regions, rather than SOL and PFR
settings.
Seems to help with smoothness of profiles
Same as anomalous_diffusion, obtain flows in X and Y for output
when diagnose = true.

Note: Only saves perpendicular flux, not parallel flux.
- For debugging purposes
- added setting for pressure floor. Added temporary debug flags for using floored Nn and Pn in DnnNn and DnnPn calculation (otherwise they could unbalance and lead to density loss - need more testing). There is a secondary floor which kicks in at zero gradient, this is now linked to the primary floor (but 2 orders of magnitude below).
- Kappa and eta factors
- Perpendicular advection and conduction factors
- Add viscous heating
Comes from the E AFN version on my fork
- Seems to make energy imbalance less imbalanced, but I haven't gone through the maths yet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants