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

Intrepid2: Initial implementation of team-level getValues #13437

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

mperego
Copy link
Contributor

@mperego mperego commented Sep 9, 2024

@trilinos/intrepid2

Motivation

In most cases, we want to evaluate the reference basis functions at a set of reference points (e.g. quadrature points) that is the same for all the cells in a workset. In this case one evaluates the basis functions at these points on the reference cell, using the getValues function, and then transforms these basis functions to physical cells.
In some cases, however, the evaluation points can be different from cell to cell (e.g., in particle in cell methods, we can have different particles in different cells where we want to evaluate the basis functions). For this use-case, we implement a team-level getValues function, that can be called by the user in a parallel for using a TeamPolicy.

Related Issues

Stakeholder Feedback

Testing

@mperego mperego added AT: WIP Causes the PR autotester to not test the PR. (Remove to allow testing to occur.) client: EMPIRE All issues that most directly target the ATDM EMPIRE code labels Sep 9, 2024
@mperego mperego self-assigned this Sep 9, 2024
@mperego mperego requested a review from a team as a code owner September 9, 2024 22:19
using ScalarType = typename ScalarTraits<typename PointViewType::value_type>::scalar_type;
using WorkViewType = Kokkos::DynRankView< ScalarType,typename DT::execution_space::scratch_memory_space,Kokkos::MemoryTraits<Kokkos::Unmanaged> >;
ordinal_type sizePerPoint = 3*this->vinv_.extent(0)*get_dimension_scalar(inputPoints);
WorkViewType workView(scratchStorage, sizePerPoint*team_member.team_size());

Check failure

Code scanning / CodeQL

Multiplication result converted to larger type High

Multiplication result may overflow 'int' before it is converted to 'size_t'.
const PointViewType inputPoints,
const EOperator operatorType = OPERATOR_VALUE) const {
INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE( true, std::logic_error,
">>> ERROR (Basis::getValuesScratchSpace): this method (FEM) is not supported or should be overridden accordingly by derived classes.");
Copy link
Contributor

Choose a reason for hiding this comment

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

What is the "(FEM)" supposed to convey here? I think the message is clearer without it, but maybe there is something else you wanted to communicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AT: WIP Causes the PR autotester to not test the PR. (Remove to allow testing to occur.) client: EMPIRE All issues that most directly target the ATDM EMPIRE code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants