Add combined nonconservative GPU volume and boundary condition kernels#3065
Draft
MarcoArtiano wants to merge 3 commits into
Draft
Add combined nonconservative GPU volume and boundary condition kernels#3065MarcoArtiano wants to merge 3 commits into
MarcoArtiano wants to merge 3 commits into
Conversation
Contributor
Review checklistThis checklist is meant to assist creators of PRs (to let them know what reviewers will typically look for) and reviewers (to guide them in a structured review process). Items do not need to be checked explicitly for a PR to be eligible for merging. Purpose and scope
Code quality
Documentation
Testing
Performance
Verification
Created with ❤️ by the Trixi.jl community. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The callback for the divergence is broken on the GPU, because we pass the full cache on the GPU, which is not filtering to not contain not-bitstype. I just avoided having these callbacks in the tests when running on the GPU by changing the
analysis_callback.Some additional notes: the volume kernel implemented only works if the volume flux is implemented following the
combine_conservative_and_nonconservative_fluxes. The boundary conditions instead are for the moment only for the original implementation of the nonconservative terms. To summarize, nonconservative systems on GPU now runs only if the volume flux is passed ascombine_conservative_and_nonconservative_fluxesand the surface flux is passed assurface_flux = (flux_conservative, flux_nonconservative).Note that the
calc_interface_flux!already provides the flexibility to run with plain original implementation and combined option for nonconservative systems on the GPU.