Intrepid
|
Defines expert-level interfaces for the evaluation of functions and operators in physical space (supported for FE, FV, and FD methods) and FE reference space; in addition, provides several function transformation utilities. More...
#include <Intrepid_FunctionSpaceToolsInPlace.hpp>
Static Public Member Functions | |
template<class Scalar , class ArrayType > | |
static void | HGRADtransformVALUE (ArrayType &inOutVals) |
Transformation of a (scalar) value field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P), into the output container outVals, defined on cells in physical space and indexed by (C,F,P). More... | |
template<class Scalar , class ArrayType > | |
static void | HGRADtransformVALUEDual (ArrayType &inOutVals) |
Since there is no matrix involved, this is the same transformation as HGRADtransformVALUE. | |
template<class Scalar , class ArrayType , class ArrayTypeJac > | |
static void | HGRADtransformGRAD (ArrayType &inOutVals, const ArrayTypeJac &jacobianInverse, const char transpose= 'T') |
Transformation of a gradient field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D). More... | |
template<class Scalar , class ArrayType , class ArrayTypeJac > | |
static void | HGRADtransformGRADDual (ArrayType &inOutVals, const ArrayTypeJac &jacobianInverse, const char transpose= 'T') |
Applies the transpose of the HGRADtransformGRAD to the data. | |
template<class Scalar , class ArrayType , class ArrayTypeJac > | |
static void | HCURLtransformVALUE (ArrayType &inOutVals, const ArrayTypeJac &jacobianInverse, const char transpose= 'T') |
Transformation of a (vector) value field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D). More... | |
template<class Scalar , class ArrayType , class ArrayTypeJac > | |
static void | HCURLtransformVALUEDual (ArrayType &outVals, const ArrayTypeJac &jacobianInverse, const char transpose= 'T') |
Applies the dual of the HCURLtransformVALUE transformation. | |
template<class Scalar , class ArrayType , class ArrayTypeJac , class ArrayTypeDet > | |
static void | HCURLtransformCURL (ArrayType &inOutVals, const ArrayTypeJac &jacobian, const ArrayTypeDet &jacobianDet, const char transpose= 'N') |
Transformation of a curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D). More... | |
template<class Scalar , class ArrayType , class ArrayTypeJac , class ArrayTypeDet > | |
static void | HCURLtransformCURLDual (ArrayType &outVals, const ArrayTypeJac &jacobian, const ArrayTypeDet &jacobianDet, const char transpose= 'N') |
Applies the dual of the HCURLtransformCURL transformation. | |
template<class Scalar , class ArrayType , class ArrayTypeJac , class ArrayTypeDet > | |
static void | HDIVtransformVALUE (ArrayType &inOutVals, const ArrayTypeJac &jacobian, const ArrayTypeDet &jacobianDet, const char transpose= 'N') |
Transformation of a (vector) value field in the H-div space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D). More... | |
template<class Scalar , class ArrayType , class ArrayTypeJac , class ArrayTypeDet > | |
static void | HDIVtransformVALUEDual (ArrayType &outVals, const ArrayTypeJac &jacobian, const ArrayTypeDet &jacobianDet, const char transpose= 'N') |
Applies the dual of HDIVtransformVALUE. | |
template<class Scalar , class ArrayType , class ArrayTypeDet > | |
static void | HDIVtransformDIV (ArrayType &inOutVals, const ArrayTypeDet &jacobianDet) |
Transformation of a divergence field in the H-div space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P), into the output container outVals, defined on cells in physical space and indexed by (C,F,P). More... | |
template<class Scalar , class ArrayType , class ArrayTypeDet > | |
static void | HDIVtransformDIVDual (ArrayType &inOutVals, const ArrayTypeDet &jacobianDet) |
Applies the dual of HDIVtransformDIV, which is the same. | |
template<class Scalar , class ArrayType , class ArrayTypeDet > | |
static void | HVOLtransformVALUE (ArrayType &inOutVals, const ArrayTypeDet &jacobianDet) |
Transformation of a (scalar) value field in the H-vol space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P), into the output container outVals, defined on cells in physical space and indexed by (C,F,P). More... | |
template<class Scalar , class ArrayType , class ArrayTypeDet > | |
static void | HVOLtransformVALUEDual (ArrayType &inOutVals, const ArrayTypeDet &jacobianDet) |
Applies the dual of HVOLtransformVALUE. | |
template<class Scalar , class ArrayType , class ArrayTypeMeasure > | |
static void | multiplyMeasure (ArrayType &inOutVals, const ArrayTypeMeasure &inMeasure) |
Defines expert-level interfaces for the evaluation of functions and operators in physical space (supported for FE, FV, and FD methods) and FE reference space; in addition, provides several function transformation utilities.
The functionality here largely mirrors that in Intrepid::FunctionSpaceTools, except that the input data is overwrriten with the result of the particular transformation. This can reduce intermediate storage when the input values are not required by later calculations.
A new feature compared to Intrepid::FunctionSpaceTools is that of "dual" transforms that are useful in alternate workflow patterns. At the innermost loop nest, we may have a computation of the form (T_1 D_1 u).(T_2 D_2 v), and we would like to rewrite this as (T_2^t T_1 D_1 u).(D_2 v). The transposes of each of these transformations are supplied in this routine.
Definition at line 78 of file Intrepid_FunctionSpaceToolsInPlace.hpp.
|
static |
Transformation of a curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of curls of \e HCURL functions
for points in one or more physical cells that are images of a given set of points in the reference cell:
In this case and the user-provided container should contain the curls of the vector function set at the reference points:
The method returns
See Section Pullbacks for more details about pullbacks.
Definition at line 186 of file Intrepid_FunctionSpaceToolsInPlaceDef.hpp.
|
static |
Transformation of a (vector) value field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of \e HCURL functions
for points in one or more physical cells that are images of a given set of points in the reference cell:
In this case and the user-provided container should contain the values of the vector function set at the reference points:
The method returns
See Section Pullbacks for more details about pullbacks.
Definition at line 153 of file Intrepid_FunctionSpaceToolsInPlaceDef.hpp.
|
static |
Transformation of a divergence field in the H-div space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P), into the output container outVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of the divergence of \e HDIV functions
for points in one or more physical cells that are images of a given set of points in the reference cell:
In this case and the user-provided container should contain the divergencies of the vector function set at the reference points:
The method returns
See Section Pullbacks for more details about pullbacks.
Definition at line 312 of file Intrepid_FunctionSpaceToolsInPlaceDef.hpp.
|
static |
Transformation of a (vector) value field in the H-div space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of \e HDIV functions
for points in one or more physical cells that are images of a given set of points in the reference cell:
In this case and the user-provided container should contain the values of the vector function set at the reference points:
The method returns
See Section Pullbacks for more details about pullbacks.
Definition at line 277 of file Intrepid_FunctionSpaceToolsInPlaceDef.hpp.
|
static |
Transformation of a gradient field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P,D), into the output container outVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of gradients of \e HGRAD functions
for points in one or more physical cells that are images of a given set of points in the reference cell:
In this case and the user-provided container should contain the gradients of the function set at the reference points:
The method returns
See Section Pullbacks for more details about pullbacks.
Definition at line 65 of file Intrepid_FunctionSpaceToolsInPlaceDef.hpp.
|
static |
Transformation of a (scalar) value field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P), into the output container outVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of \e HGRAD functions \form#242 for points in one or more physical cells that are images of a given set of points in the reference cell:
In this case and the user-provided container should contain the values of the function set at the reference points:
The method returns
i.e., it simply replicates the values in the user-provided container to every cell. See Section Pullbacks for more details about pullbacks.
Definition at line 53 of file Intrepid_FunctionSpaceToolsInPlaceDef.hpp.
|
static |
Transformation of a (scalar) value field in the H-vol space, defined at points on a reference cell, stored in the user-provided container inVals and indexed by (F,P), into the output container outVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of \e HVOL functions
for points in one or more physical cells that are images of a given set of points in the reference cell:
In this case and the user-provided container should contain the values of the functions in the set at the reference points:
The method returns
See Section Pullbacks for more details about pullbacks.
Definition at line 336 of file Intrepid_FunctionSpaceToolsInPlaceDef.hpp.