PACMAN 0.1.0
Portable Algorithms for Coupling, Mapping, and Adaptive iNterpolation
Loading...
Searching...
No Matches
FTInterpClamp.hpp
Go to the documentation of this file.
1//
2// This file is subject to the terms and conditions defined in
3// file 'LICENSE', which is part of this source code package.
4//
5
6#pragma once
7
12
13namespace PACMAN {
14
15namespace FiniteElements {
16
28template <typename ExecSpace, int_t Dim>
29void FTInterClamp(Transfer<ExecSpace, Dim> &transfer) {
30 Kokkos::Profiling::pushRegion("FiniteElement::FTInterpClamp");
31 Kokkos::Profiling::pushRegion("Compute target point FE intersection");
32
34
35 Kokkos::Profiling::popRegion(); // Compute target point FE intersection
36
37 Kokkos::Profiling::pushRegion(
38 "Compute target point projection on triangulated skin mesh");
40 if constexpr (Dim == 1) {
42 } else if constexpr (Dim == 2) {
44 } else if constexpr (Dim == 3) {
46 } else {
47 // LCOV_EXCL_START
48 throw std::runtime_error("Unexpected dimension for projection");
49 // LCOV_EXCL_STOP
50 }
51
52 Kokkos::Profiling::popRegion(); // Compute target point projection on
53 // triangulated skin mesh
54 Kokkos::Profiling::popRegion(); // FTInterpClamp
55}
56} // namespace FiniteElements
57} // namespace PACMAN
ArborX predicate/callback helpers for PACMAN finite-elements kernels.
void ComputeProjectionOn3DSkin(Transfer< ExecSpace, 3 > &transfer, bool extrapol=false)
Project outside target points on a 3D skin and evaluate FE values.
void ComputeProjectionOn2DSkin(Transfer< ExecSpace, 2 > &transfer, bool extrapol=false)
Project outside target points on a 2D skin and evaluate FE values.
void FTInterClamp(Transfer< ExecSpace, Dim > &transfer)
Interpolate target points from FE cells and clamp outside points by projection onto the source mesh s...
void ComputeLinearSkin(Transfer< ExecSpace, Dim > &transfer)
Build tetrahedralized boundary skin from source elements.
void ComputeProjectionOn1DSkin(Transfer< ExecSpace, 1 > &transfer, bool extrapol=false)
Project outside target points on a 1D skin and evaluate FE values.
void ComputeBoxTargetPointIntersection(Transfer< ExecSpace, Dim > &transfer)
Intersect target points with source-element bounding boxes, then evaluate FE interpolation for inters...
Definition FTUtils.hpp:33