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

Partial assembly support using libCEED #64

Merged
merged 12 commits into from
Aug 22, 2023
Merged

Conversation

sebastiangrimberg
Copy link
Contributor

@sebastiangrimberg sebastiangrimberg commented Jul 14, 2023

This PR adds support for operator partial assembly for meshes containing either tensor-product elements or simplex elements using the libCEED library. This makes use of some recent improvements adding support for H(div) and H(curl) elements in libCEED, see CEED/libCEED#1265 and CEED/libCEED#1156.

This resolves the first part of #3. As the libCEED H(curl) and H(div) support does not yet include GPU-backends, the rest of #3 remains in progress and will come at a later date. For now, PA is disabled by default and must be enabled by the user with the "PartialAssemblyOrder" and "Device" configuration file keywords. In the future we will come up with easier default options to make use of PA.

This PR is a follow-up to the changes in for #47. Since this PR contains some follow-up changes to changes also made in this PR, I propose we review both simultaneously and only merge #47 quickly followed by #64 once comments with both have been addressed and they are both approved.

TODO

  • Update changelog

Copy link
Collaborator

@hughcars hughcars left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only non-trivial is the user experience about specifying p/h multigrid and the terminology for the two.

scripts/schema/config/solver.json Show resolved Hide resolved
palace/utils/configfile.hpp Show resolved Hide resolved
palace/utils/configfile.hpp Show resolved Hide resolved
palace/fem/multigrid.hpp Outdated Show resolved Hide resolved
palace/fem/multigrid.hpp Outdated Show resolved Hide resolved
palace/utils/configfile.hpp Show resolved Hide resolved
palace/utils/configfile.hpp Outdated Show resolved Hide resolved
palace/utils/configfile.hpp Show resolved Hide resolved
palace/fem/multigrid.hpp Show resolved Hide resolved
palace/models/spaceoperator.cpp Show resolved Hide resolved
palace/linalg/divfree.cpp Show resolved Hide resolved
Base automatically changed from sjg/driven-port-debug to main August 22, 2023 17:10
@sebastiangrimberg sebastiangrimberg merged commit b9a080c into main Aug 22, 2023
17 checks passed
@sebastiangrimberg sebastiangrimberg deleted the sjg/libceed-pa-dev branch August 22, 2023 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants