Port some Hermes-3 finite volume operators (rebased)#3335
Conversation
Includes bug fix: ```diff - BoutReal gL = n.c - n.L; - BoutReal gR = n.R - n.c; + BoutReal gL = n.c - n.m; + BoutReal gR = n.p - n.c; ```
Co-authored-by: Peter Hill <peter.hill@york.ac.uk>
|
A couple of points that haven't been done:
|
Sorry, I tried to follow to the comment, and from there to two PRs, but I failed to see what operators you would like to add here?
✔️ done in #3405 |
Compile finite volume implementation only once
Preview: Use cell area and volume for finite volume code
|
I found some MMS tests in hermes-3 that fail with this PR. I will have look whether they can be moved to BOUT++ and fixed. |
We need to ensure that fv_ops_impl.hxx is never parsed before fv_ops.hxx, as fv_ops.hxx provides default arguments, which is forbiddef for a redeclaration. To ensure this, fv_ops.hxx is included in fv_ops_impl.hxx, so that fv_ops_impl.hxx can be included and fv_ops.hxx can appear afterwards without causing an error.
|
The MMS tests should be fixed by f893f3d CI run here: https://github.com/boutproject/hermes-3/actions/runs/28581902968 |
Was testing _cell_volume.has_value() rather than _cell_area_zlow.has_value(). Added regression test.
Field-aligned operation returns a flow diagnostic, but this is not currently done for FCI. Set to zero and document behavior.
Short descriptions of the ported operators, SuperBee slope limiter, and metric derived quantity caching.
Rebase of #3200 on top of #3320 and #3334