Skip to content

Conversation

@ajdittmann
Copy link

Description of Changes

I have attempted to add WENO-Z reconstruction, following Borges et al. 2008 and the improvements suggested in Castro et al. 2011.

So far I have only tested linear waves in 1D, but it seems to get errors OOM below PPM at similar computational cost (I've found slightly longer runtimes on average, but within the run-to-run variance). These were using RK3 time stepping.

linear_wave

@pdmullen
Copy link
Collaborator

Thanks for the contribution, @ajdittmann! Implementation looks good to me!

I believe you'll find that our version of PPM actually performs quite poorly on linear wave tests. We did not implement its extremum-preserving variant (if we did, I assume that this would be competitive with WENO-Z).

Nevertheless, this was a conscious decision because we did not want to have to introduce floors on our reconstructed states.... something that I believe WENO-Z would also require. All this being said --- is now the time to thread through all these floors on reconstructed states?

@ajdittmann
Copy link
Author

Hrm, you may be right @pdmullen. I tried limiting the values to the left and right values as in the PPM implementation and the errors became similar.

I personally favor adding floors after reconstruction for any/all higher-order options given the potential for improvement.

ajdittmann and others added 8 commits August 20, 2025 16:21
Co-authored-by: Adam M. Dempsey <adamdemps@gmail.com>
Co-authored-by: Adam M. Dempsey <adamdemps@gmail.com>
Co-authored-by: Adam M. Dempsey <adamdemps@gmail.com>
Co-authored-by: Adam M. Dempsey <adamdemps@gmail.com>
Co-authored-by: Adam M. Dempsey <adamdemps@gmail.com>
Co-authored-by: Adam M. Dempsey <adamdemps@gmail.com>
Co-authored-by: Adam M. Dempsey <adamdemps@gmail.com>
@pdmullen
Copy link
Collaborator

Hrm, you may be right @pdmullen. I tried limiting the values to the left and right values as in the PPM implementation and the errors became similar.

I personally favor adding floors after reconstruction for any/all higher-order options given the potential for improvement.

If we do, maybe such "corrections" belong in correct_recon ... where we currently manipulate reconstructions of radiation variables? We had already thought that this utility might be extended to dust where we might fall back to pcm depending on stokes number.

@adamdempsey90
Copy link
Collaborator

Hrm, you may be right @pdmullen. I tried limiting the values to the left and right values as in the PPM implementation and the errors became similar.
I personally favor adding floors after reconstruction for any/all higher-order options given the potential for improvement.

If we do, maybe such "corrections" belong in correct_recon ... where we currently manipulate reconstructions of radiation variables? We had already thought that this utility might be extended to dust where we might fall back to pcm depending on stokes number.

that was my thinking as well.

@adamdempsey90
Copy link
Collaborator

Hrm, you may be right @pdmullen. I tried limiting the values to the left and right values as in the PPM implementation and the errors became similar.
I personally favor adding floors after reconstruction for any/all higher-order options given the potential for improvement.

If we do, maybe such "corrections" belong in correct_recon ... where we currently manipulate reconstructions of radiation variables? We had already thought that this utility might be extended to dust where we might fall back to pcm depending on stokes number.

that was my thinking as well.

We now have the floors on the reconstructed states, so let's get this up to date and merged @ajdittmann

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.

3 participants