-
Notifications
You must be signed in to change notification settings - Fork 7
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
Linear Euler 2D Model #69
Conversation
This allows us to more easily enforce a fixed number of variables for a model, which removes room for error in writing a program that uses a model defined in SELF. Further, it removes the need to rewrite an Init procedure for each new model.
Still need to add GPU accelerated kernels for built in boundary conditions, like no-normal-flow and radiation. Documentation for the model is also needed
Example updated for low io frequency
I ended up swapping in our hand-written kernels, rather than using the blas interfaces. This is much faster for our problems, but it does limit the polynomial degree to 15 for 2-D and 7 for 3-D when running on GPUs.
The caveat here is that, to support prescribed boundary conditions, we do need to leveraged the `hbc2d_prescribed` boundary condition to make it easy to set time dependent prescribed boundaries.
CI is failing due to long runs
This was used for previous debugging and is not needed
Codecov ReportAttention: Patch coverage is
📢 Thoughts on this report? Let us know! |
@garrettbyrd - This one's ready for your review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pretty much looks good besides suggestions. You may want to look over the documentation for the 2DEuler spherical soundwave to make sure it is as thorough as you want. Also mentioned in a private message but I could use a brief rundown on how SetNumberOfVariables
operates for when previously nVar > 1 since the subroutine in SELF_Model.f90
just sets it to 1.
When |
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
Co-authored-by: Garrett Byrd <garrett@fluidnumerics.com>
This PR adds the linear Euler 2D model with a few examples included.
Documentation has been updated to
Models
sectionThe Linear Euler 2D model includes full gpu acceleration for no-normal-flow and radiation boundary conditions. Prescribed boundary conditions are still run on the CPU so that users can define prescribed boundaries by overriding the
hbc2d_prescribed
(pure function) type bound procedure; we have provided the necessary memcpy's between host and device to ensure correctness.There is an optional boolean in the
SELF_Model
class calledprescribed_bcs_enabled
that can be set to false in a model object to explicitly disable prescribed boundary conditions if requested. In simulations where time dependent prescribed boundaries are not used, this helps avoid superfluous memcpy's between host and device. This has been documented in the Linear Euler 2-D model documentation.This PR also brings in a correctness bug fix related to multi-variable vector divergence.