Intrepid2
Intrepid2_IntegrationTools.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Intrepid2 Package
4//
5// Copyright 2007 NTESS and the Intrepid2 contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
15#ifndef __INTREPID2_INTEGRATIONTOOLS_HPP__
16#define __INTREPID2_INTEGRATIONTOOLS_HPP__
17
18#include "Intrepid2_ConfigDefs.hpp"
19
20#include "Shards_CellTopology.hpp"
21#include "Shards_BasicTopologies.hpp"
22
23#include "Intrepid2_Types.hpp"
24#include "Intrepid2_Utils.hpp"
25
26#include "Intrepid2_Kernels.hpp"
27
31
32#include "Intrepid2_Data.hpp"
35
36#include "Kokkos_Core.hpp"
37
38
39namespace Intrepid2 {
40
44 template<typename DeviceType = void>
46 public:
57 template<class Scalar>
59 const TensorData<Scalar,DeviceType> &cellMeasures,
60 const TransformedBasisValues<Scalar,DeviceType> &vectorDataRight);
61
73 template<class Scalar>
74 static void integrate(Data<Scalar,DeviceType> &integrals, const TransformedBasisValues<Scalar,DeviceType> &vectorDataLeft,
75 const TensorData<Scalar,DeviceType> &cellMeasures,
76 const TransformedBasisValues<Scalar,DeviceType> &vectorDataRight, const bool sumInto = false,
77 double* approximateFlops = NULL);
78 }; // end IntegrationTools class
79
80} // end namespace Intrepid2
81
82// include templated definitions
84
85#endif
Header file for Intrepid2::ArrayTools class providing utilities for array operations.
Header file for the Intrepid2::CellTools class.
Defines the Data class, a wrapper around a Kokkos::View that allows data that is constant or repeatin...
Definition file for the Intrepid2::IntegrationTools class.
Header file for small functions used in Intrepid2.
Header file for Intrepid2::RealSpaceTools class providing basic linear algebra functionality in 1D,...
Structure-preserving representation of transformed basis values; reference space values and transform...
Contains definitions of custom data types in Intrepid2.
Header function for Intrepid2::Util class and other utility functions.
Reference-space field values for a basis, designed to support typical vector-valued bases.
Wrapper around a Kokkos::View that allows data that is constant or repeating in various logical dimen...
Provides support for structure-aware integration.
static Data< Scalar, DeviceType > allocateIntegralData(const TransformedBasisValues< Scalar, DeviceType > &vectorDataLeft, const TensorData< Scalar, DeviceType > &cellMeasures, const TransformedBasisValues< Scalar, DeviceType > &vectorDataRight)
Allocates storage for the contraction of vectorDataLeft and vectorDataRight containers on point and s...
static void integrate(Data< Scalar, DeviceType > &integrals, const TransformedBasisValues< Scalar, DeviceType > &vectorDataLeft, const TensorData< Scalar, DeviceType > &cellMeasures, const TransformedBasisValues< Scalar, DeviceType > &vectorDataRight, const bool sumInto=false, double *approximateFlops=NULL)
Contracts vectorDataLeft and vectorDataRight containers on point and space dimensions,...
View-like interface to tensor data; tensor components are stored separately and multiplied together a...
Structure-preserving representation of transformed vector data; reference space values and transforma...