Hip/Cuda Shared/Gen Curl/Div Support
- Dominant language
- C
- Stars
- 265
- Forks
- 78
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 11
Description
We should extend HDiv and HCurl to the `/gpu/*/shared` and `/gpu/*/gen` backends. This should be relatively straightforward in concept but will take a fair amount of time/work to make sure it's all correct. This should be split across two PRs.
1) `/gpu/*/shared` only needs the new basis operations. We currently only support this for non-tensor, but we have all the relevant non-tensor contractions already (I think). Once we do this, we need to change the logic [here](https://github.com/CEED/libCEED/blob/9b9f6113f51e15913d7f93f3cfe1286cbb8f166e/backends/cuda-gen/ceed-cuda-gen-operator-build.cpp#L1145) to instead check for `has_supported_bases` and check for all shared bases and only eval modes INTERP and GRAD.
2) `/gpu/*/gen` needs both the changes to `backends/*-gen/ceed-*-gen/operator-build.cpp` to use the basis templates from `/gpu/*/shared` and also we need to add the relevant new restriction templates in `include/ceed/jit-source/*/*-gen-templates.h`
Contributor guide
Assessment
This issue has not been assessed yet.