PACMAN 0.1.0
Portable Algorithms for Coupling, Mapping, and Adaptive iNterpolation
Loading...
Searching...
No Matches
FTInterpExtrap.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
29template <typename ExecSpace, int_t Dim>
30void FTInterExtrap(Transfer<ExecSpace, Dim> &transfer) {
31 Kokkos::Profiling::pushRegion("FiniteElement::FTInterpExtrap");
32
33 Kokkos::Profiling::pushRegion("Compute target point FE intersection");
35
36 Kokkos::Profiling::popRegion(); // Compute target point FE intersection
37
38 Kokkos::Profiling::pushRegion(
39 "Compute target point projection on triangulated skin mesh");
41 if constexpr (Dim == 1) {
43 } else if constexpr (Dim == 2) {
45 } else if constexpr (Dim == 3) {
47 } else {
48 // LCOV_EXCL_START
49 throw std::runtime_error("Unexpected dimension for projection");
50 // LCOV_EXCL_STOP
51 }
52 Kokkos::Profiling::popRegion(); // Compute target point projection on
53 // triangulated skin mesh
54
55 Kokkos::Profiling::popRegion(); // FTInterpExtrap
56}
57} // namespace FiniteElements
58} // 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 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 FTInterExtrap(Transfer< ExecSpace, Dim > &transfer)
Interpolate target points from FE cells and extrapolate outside points via projection onto the source...
void ComputeBoxTargetPointIntersection(Transfer< ExecSpace, Dim > &transfer)
Intersect target points with source-element bounding boxes, then evaluate FE interpolation for inters...
Definition FTUtils.hpp:33