Intrepid2
Intrepid2_FunctionSpaceTools.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ************************************************************************
3 //
4 // Intrepid2 Package
5 // Copyright (2007) Sandia Corporation
6 //
7 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8 // license for use of this work by or on behalf of the U.S. Government.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are
12 // met:
13 //
14 // 1. Redistributions of source code must retain the above copyright
15 // notice, this list of conditions and the following disclaimer.
16 //
17 // 2. Redistributions in binary form must reproduce the above copyright
18 // notice, this list of conditions and the following disclaimer in the
19 // documentation and/or other materials provided with the distribution.
20 //
21 // 3. Neither the name of the Corporation nor the names of the
22 // contributors may be used to endorse or promote products derived from
23 // this software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 //
37 // Questions? Contact Kyungjoo Kim (kyukim@sandia.gov), or
38 // Mauro Perego (mperego@sandia.gov)
39 //
40 // ************************************************************************
41 // @HEADER
42 
49 #ifndef __INTREPID2_FUNCTIONSPACETOOLS_HPP__
50 #define __INTREPID2_FUNCTIONSPACETOOLS_HPP__
51 
52 #include "Intrepid2_ConfigDefs.hpp"
53 
54 #include "Shards_CellTopology.hpp"
55 #include "Shards_BasicTopologies.hpp"
56 
57 #include "Intrepid2_Types.hpp"
58 #include "Intrepid2_Utils.hpp"
59 
60 #include "Intrepid2_Kernels.hpp"
61 
62 #include "Intrepid2_ArrayTools.hpp"
64 #include "Intrepid2_CellTools.hpp"
65 
66 #include "Kokkos_Core.hpp"
67 
68 
69 namespace Intrepid2 {
70 
77  template<typename ExecSpaceType = void>
79  public:
119  template<typename outputValueType, class ...outputProperties,
120  typename inputValueType, class ...inputProperties>
121  static void
122  HGRADtransformVALUE( Kokkos::DynRankView<outputValueType,outputProperties...> output,
123  const Kokkos::DynRankView<inputValueType, inputProperties...> input );
124 
166  template<typename outputValValueType, class ...outputValProperties,
167  typename jacobianInverseValueType, class ...jacobianInverseProperties,
168  typename inputValValueType, class ...inputValProperties>
169  static void
170  HGRADtransformGRAD( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
171  const Kokkos::DynRankView<jacobianInverseValueType,jacobianInverseProperties...> jacobianInverse,
172  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
173 
214  template<typename outputValValueType, class ...outputValProperties,
215  typename jacobianInverseValueType, class ...jacobianInverseProperties,
216  typename inputValValueType, class ...inputValProperties>
217  static void
218  HCURLtransformVALUE( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
219  const Kokkos::DynRankView<jacobianInverseValueType,jacobianInverseProperties...> jacobianInverse,
220  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
221 
265  template<typename outputValValueType, class ...outputValProperties,
266  typename jacobianValueType, class ...jacobianProperties,
267  typename jacobianDetValueType, class ...jacobianDetProperties,
268  typename inputValValueType, class ...inputValProperties>
269  static void
270  HCURLtransformCURL( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
271  const Kokkos::DynRankView<jacobianValueType, jacobianProperties...> jacobian,
272  const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
273  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
274 
275 
318  template<typename outputValValueType, class ...outputValProperties,
319  typename jacobianDetValueType, class ...jacobianDetProperties,
320  typename inputValValueType, class ...inputValProperties>
321  static void
322  HCURLtransformCURL( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
323  const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
324  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
325 
326 
370  template<typename outputValValueType, class ...outputValProperties,
371  typename jacobianValueType, class ...jacobianProperties,
372  typename jacobianDetValueType, class ...jacobianDetProperties,
373  typename inputValValueType, class ...inputValProperties>
374  static void
375  HGRADtransformCURL( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
376  const Kokkos::DynRankView<jacobianValueType, jacobianProperties...> jacobian,
377  const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
378  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
379 
380 
381 
426  template<typename outputValValueType, class ...outputValProperties,
427  typename jacobianValueType, class ...jacobianProperties,
428  typename jacobianDetValueType, class ...jacobianDetProperties,
429  typename inputValValueType, class ...inputValProperties>
430  static void
431  HDIVtransformVALUE( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
432  const Kokkos::DynRankView<jacobianValueType, jacobianProperties...> jacobian,
433  const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
434  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
435 
477  template<typename outputValValueType, class ...outputValProperties,
478  typename jacobianDetValueType, class ...jacobianDetProperties,
479  typename inputValValueType, class ...inputValProperties>
480  static void
481  HDIVtransformDIV( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
482  const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
483  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
484 
525  template<typename outputValValueType, class ...outputValProperties,
526  typename jacobianDetValueType, class ...jacobianDetProperties,
527  typename inputValValueType, class ...inputValProperties>
528  static void
529  HVOLtransformVALUE( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
530  const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
531  const Kokkos::DynRankView<inputValValueType, inputValProperties...> inputVals );
532 
533 
547  template<typename outputValueValueType, class ...outputValueProperties,
548  typename leftValueValueType, class ...leftValueProperties,
549  typename rightValueValueType, class ...rightValueProperties>
550  static void
551  integrate( Kokkos::DynRankView<outputValueValueType,outputValueProperties...> outputValues,
552  const Kokkos::DynRankView<leftValueValueType, leftValueProperties...> leftValues,
553  const Kokkos::DynRankView<rightValueValueType, rightValueProperties...> rightValues,
554  const bool sumInto = false);
555 
556 
587  template<typename outputValValueType, class ...outputValProperties,
588  typename inputDetValueType, class ...inputDetPropertes,
589  typename inputWeightValueType, class ...inputWeightPropertes>
590  static bool
591  computeCellMeasure( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
592  const Kokkos::DynRankView<inputDetValueType, inputDetPropertes...> inputDet,
593  const Kokkos::DynRankView<inputWeightValueType,inputWeightPropertes...> inputWeights );
594 
641  template<typename outputValValueType, class ...outputValProperties,
642  typename inputJacValueType, class ...inputJacProperties,
643  typename inputWeightValueType, class ...inputWeightPropertes,
644  typename scratchValueType, class ...scratchProperties>
645  static void
646  computeFaceMeasure( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
647  const Kokkos::DynRankView<inputJacValueType, inputJacProperties...> inputJac,
648  const Kokkos::DynRankView<inputWeightValueType,inputWeightPropertes...> inputWeights,
649  const int whichFace,
650  const shards::CellTopology parentCell,
651  const Kokkos::DynRankView<scratchValueType, scratchProperties...> scratch );
652 
697  template<typename outputValValueType, class ...outputValProperties,
698  typename inputJacValueType, class ...inputJacProperties,
699  typename inputWeightValueType, class ...inputWeightProperties,
700  typename scratchValueType, class ...scratchProperties>
701  static void
702  computeEdgeMeasure( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
703  const Kokkos::DynRankView<inputJacValueType, inputJacProperties...> inputJac,
704  const Kokkos::DynRankView<inputWeightValueType,inputWeightProperties...> inputWeights,
705  const int whichEdge,
706  const shards::CellTopology parentCell,
707  const Kokkos::DynRankView<scratchValueType, scratchProperties...> scratch );
708 
717  template<typename outputValValueType, class ...outputValProperties,
718  typename inputMeasureValueType, class ...inputMeasureProperties,
719  typename inputValValueType, class ...inputValProperteis>
720  static void
721  multiplyMeasure( Kokkos::DynRankView<outputValValueType, outputValProperties...> outputVals,
722  const Kokkos::DynRankView<inputMeasureValueType,inputMeasureProperties...> inputMeasure,
723  const Kokkos::DynRankView<inputValValueType, inputValProperteis...> inputVals );
724 
758  template<typename outputFieldValueType, class ...outputFieldProperties,
759  typename inputDataValueType, class ...inputDataPropertes,
760  typename inputFieldValueType, class ...inputFieldProperties>
761  static void
762  scalarMultiplyDataField( Kokkos::DynRankView<outputFieldValueType,outputFieldProperties...> outputFields,
763  const Kokkos::DynRankView<inputDataValueType, inputDataPropertes...> inputData,
764  const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...> inputFields,
765  const bool reciprocal = false );
766 
799  template<typename outputDataValuetype, class ...outputDataProperties,
800  typename inputDataLeftValueType, class ...inputDataLeftProperties,
801  typename inputDataRightValueType, class ...inputDataRightProperties>
802  static void
803  scalarMultiplyDataData( Kokkos::DynRankView<outputDataValuetype, outputDataProperties...> outputData,
804  const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft,
805  const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight,
806  const bool reciprocal = false );
807 
839  template<typename outputFieldValueType, class ...outputFieldProperties,
840  typename inputDataValueType, class ...inputDataProperties,
841  typename inputFieldValueType, class ...inputFieldProperties>
842  static void
843  dotMultiplyDataField( Kokkos::DynRankView<outputFieldValueType,outputFieldProperties...> outputFields,
844  const Kokkos::DynRankView<inputDataValueType, inputDataProperties...> inputData,
845  const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...> inputFields );
846 
877  template<typename outputDataValueType, class ...outputDataProperties,
878  typename inputDataLeftValueType, class ...inputDataLeftProperties,
879  typename inputDataRightValueType, class ...inputDataRightProperties>
880  static void
881  dotMultiplyDataData( Kokkos::DynRankView<outputDataValueType, outputDataProperties...> outputData,
882  const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft,
883  const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight );
884 
919  template<typename outputFieldValueType, class ...outputFieldProperties,
920  typename inputDataValueType, class ...inputDataProperties,
921  typename inputFieldValueType, class ...inputFieldProperties>
922  static void
923  vectorMultiplyDataField( Kokkos::DynRankView<outputFieldValueType,outputFieldProperties...> outputFields,
924  const Kokkos::DynRankView<inputDataValueType, inputDataProperties...> inputData,
925  const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...> inputFields );
926 
927 
961  template<typename outputDataValueType, class ...outputDataProperties,
962  typename inputDataLeftValueType, class ...inputDataLeftProperties,
963  typename inputDataRightValueType, class ...inputDataRightProperties>
964  static void
965  vectorMultiplyDataData( Kokkos::DynRankView<outputDataValueType, outputDataProperties...> outputData,
966  const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft,
967  const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight );
968 
1019  template<typename outputFieldValueType, class ...outputFieldProperties,
1020  typename inputDataValueType, class ...inputDataProperties,
1021  typename inputFieldValueType, class ...inputFieldProperties>
1022  static void
1023  tensorMultiplyDataField( Kokkos::DynRankView<outputFieldValueType,outputFieldProperties...> outputFields,
1024  const Kokkos::DynRankView<inputDataValueType, inputDataProperties...> inputData,
1025  const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...> inputFields,
1026  const char transpose = 'N');
1027 
1077  template<typename outputDataValueType, class ...outputDataProperties,
1078  typename inputDataLeftValueType, class ...inputDataLeftProperties,
1079  typename inputDataRightValueType, class ...inputDataRightProperties>
1080  static void
1081  tensorMultiplyDataData( Kokkos::DynRankView<outputDataValueType, outputDataProperties...> outputData,
1082  const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft,
1083  const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight,
1084  const char transpose = 'N' );
1085 
1112  template<typename inoutOperatorValueType, class ...inoutOperatorProperties,
1113  typename fieldSignValueType, class ...fieldSignProperties>
1114  static void
1115  applyLeftFieldSigns( Kokkos::DynRankView<inoutOperatorValueType,inoutOperatorProperties...> inoutOperator,
1116  const Kokkos::DynRankView<fieldSignValueType, fieldSignProperties...> fieldSigns );
1117 
1144  template<typename inoutOperatorValueType, class ...inoutOperatorProperties,
1145  typename fieldSignValueType, class ...fieldSignProperties>
1146  static void
1147  applyRightFieldSigns( Kokkos::DynRankView<inoutOperatorValueType,inoutOperatorProperties...> inoutOperator,
1148  const Kokkos::DynRankView<fieldSignValueType, fieldSignProperties...> fieldSigns );
1149 
1150 
1173  template<typename inoutFunctionValueType, class ...inoutFunctionProperties,
1174  typename fieldSignValueType, class ...fieldSignProperties>
1175  static void
1176  applyFieldSigns( Kokkos::DynRankView<inoutFunctionValueType,inoutFunctionProperties...> inoutFunction,
1177  const Kokkos::DynRankView<fieldSignValueType, fieldSignProperties...> fieldSigns );
1178 
1179 
1215  template<typename outputPointValueType, class ...outputPointProperties,
1216  typename inputCoeffValueType, class ...inputCoeffProperties,
1217  typename inputFieldValueType, class ...inputFieldProperties>
1218  static void
1219  evaluate( Kokkos::DynRankView<outputPointValueType,outputPointProperties...> outputPointVals,
1220  const Kokkos::DynRankView<inputCoeffValueType, inputCoeffProperties...> inputCoeffs,
1221  const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...> inputFields );
1222 
1223  };
1224 
1225 } // end namespace Intrepid2
1226 
1227 // include templated definitions
1229 
1230 #endif
1231 
1232 /***************************************************************************************************
1233  ** **
1234  ** D O C U M E N T A T I O N P A G E S **
1235  ** **
1236  **************************************************************************************************/
1237 
static void evaluate(Kokkos::DynRankView< outputPointValueType, outputPointProperties...> outputPointVals, const Kokkos::DynRankView< inputCoeffValueType, inputCoeffProperties...> inputCoeffs, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties...> inputFields)
Computes point values outPointVals of a discrete function specified by the basis inFields and coeffic...
static void scalarMultiplyDataField(Kokkos::DynRankView< outputFieldValueType, outputFieldProperties...> outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataPropertes...> inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties...> inputFields, const bool reciprocal=false)
Scalar multiplication of data and fields; please read the description below.
static void HGRADtransformCURL(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< jacobianValueType, jacobianProperties...> jacobian, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties...> jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties...> inputVals)
Transformation of a 2D curl field in the H-grad space, defined at points on a reference cell...
static void applyFieldSigns(Kokkos::DynRankView< inoutFunctionValueType, inoutFunctionProperties...> inoutFunction, const Kokkos::DynRankView< fieldSignValueType, fieldSignProperties...> fieldSigns)
Applies field signs, stored in the user-provided container fieldSigns and indexed by (C...
static void dotMultiplyDataField(Kokkos::DynRankView< outputFieldValueType, outputFieldProperties...> outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties...> inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties...> inputFields)
Dot product of data and fields; please read the description below.
static void dotMultiplyDataData(Kokkos::DynRankView< outputDataValueType, outputDataProperties...> outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties...> inputDataRight)
Dot product of data and data; please read the description below.
static void HDIVtransformDIV(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties...> jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties...> inputVals)
Transformation of a divergence field in the H-div space, defined at points on a reference cell...
static void integrate(Kokkos::DynRankView< outputValueValueType, outputValueProperties...> outputValues, const Kokkos::DynRankView< leftValueValueType, leftValueProperties...> leftValues, const Kokkos::DynRankView< rightValueValueType, rightValueProperties...> rightValues, const bool sumInto=false)
Contracts leftValues and rightValues arrays on the point and possibly space dimensions and stores the...
static void HCURLtransformCURL(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< jacobianValueType, jacobianProperties...> jacobian, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties...> jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties...> inputVals)
Transformation of a 3D curl field in the H-curl space, defined at points on a reference cell...
Header function for Intrepid2::Util class and other utility functions.
static void applyLeftFieldSigns(Kokkos::DynRankView< inoutOperatorValueType, inoutOperatorProperties...> inoutOperator, const Kokkos::DynRankView< fieldSignValueType, fieldSignProperties...> fieldSigns)
Applies left (row) signs, stored in the user-provided container fieldSigns and indexed by (C...
static void HGRADtransformVALUE(Kokkos::DynRankView< outputValueType, outputProperties...> output, const Kokkos::DynRankView< inputValueType, inputProperties...> input)
Transformation of a (scalar) value field in the H-grad space, defined at points on a reference cell...
static void multiplyMeasure(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< inputMeasureValueType, inputMeasureProperties...> inputMeasure, const Kokkos::DynRankView< inputValValueType, inputValProperteis...> inputVals)
Multiplies fields inputVals by weighted measures inputMeasure and returns the field array outputVals;...
static void HCURLtransformVALUE(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< jacobianInverseValueType, jacobianInverseProperties...> jacobianInverse, const Kokkos::DynRankView< inputValValueType, inputValProperties...> inputVals)
Transformation of a (vector) value field in the H-curl space, defined at points on a reference cell...
Definition file for the Intrepid2::FunctionSpaceTools class.
static void HDIVtransformVALUE(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< jacobianValueType, jacobianProperties...> jacobian, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties...> jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties...> inputVals)
Transformation of a (vector) value field in the H-div space, defined at points on a reference cell...
static void computeFaceMeasure(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< inputJacValueType, inputJacProperties...> inputJac, const Kokkos::DynRankView< inputWeightValueType, inputWeightPropertes...> inputWeights, const int whichFace, const shards::CellTopology parentCell, const Kokkos::DynRankView< scratchValueType, scratchProperties...> scratch)
Returns the weighted integration measures outputVals with dimensions (C,P) used for the computation o...
static void HGRADtransformGRAD(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< jacobianInverseValueType, jacobianInverseProperties...> jacobianInverse, const Kokkos::DynRankView< inputValValueType, inputValProperties...> inputVals)
Transformation of a gradient field in the H-grad space, defined at points on a reference cell...
Contains definitions of custom data types in Intrepid2.
static void computeEdgeMeasure(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< inputJacValueType, inputJacProperties...> inputJac, const Kokkos::DynRankView< inputWeightValueType, inputWeightProperties...> inputWeights, const int whichEdge, const shards::CellTopology parentCell, const Kokkos::DynRankView< scratchValueType, scratchProperties...> scratch)
Returns the weighted integration measures outVals with dimensions (C,P) used for the computation of e...
static void vectorMultiplyDataField(Kokkos::DynRankView< outputFieldValueType, outputFieldProperties...> outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties...> inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties...> inputFields)
Cross or outer product of data and fields; please read the description below.
Header file for Intrepid2::ArrayTools class providing utilities for array operations.
Defines expert-level interfaces for the evaluation of functions and operators in physical space (supp...
static void scalarMultiplyDataData(Kokkos::DynRankView< outputDataValuetype, outputDataProperties...> outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties...> inputDataRight, const bool reciprocal=false)
Scalar multiplication of data and data; please read the description below.
Header file for Intrepid2::RealSpaceTools class providing basic linear algebra functionality in 1D...
Header file for small functions used in Intrepid2.
static void HVOLtransformVALUE(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties...> jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties...> inputVals)
Transformation of a (scalar) value field in the H-vol space, defined at points on a reference cell...
static void applyRightFieldSigns(Kokkos::DynRankView< inoutOperatorValueType, inoutOperatorProperties...> inoutOperator, const Kokkos::DynRankView< fieldSignValueType, fieldSignProperties...> fieldSigns)
Applies right (column) signs, stored in the user-provided container fieldSigns and indexed by (C...
Header file for the Intrepid2::CellTools class.
static void vectorMultiplyDataData(Kokkos::DynRankView< outputDataValueType, outputDataProperties...> outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties...> inputDataRight)
Cross or outer product of data and data; please read the description below.
static void tensorMultiplyDataData(Kokkos::DynRankView< outputDataValueType, outputDataProperties...> outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties...> inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties...> inputDataRight, const char transpose= 'N')
Matrix-vector or matrix-matrix product of data and data; please read the description below...
static void tensorMultiplyDataField(Kokkos::DynRankView< outputFieldValueType, outputFieldProperties...> outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties...> inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties...> inputFields, const char transpose= 'N')
Matrix-vector or matrix-matrix product of data and fields; please read the description below...
static bool computeCellMeasure(Kokkos::DynRankView< outputValValueType, outputValProperties...> outputVals, const Kokkos::DynRankView< inputDetValueType, inputDetPropertes...> inputDet, const Kokkos::DynRankView< inputWeightValueType, inputWeightPropertes...> inputWeights)
Returns the weighted integration measures outputVals with dimensions (C,P) used for the computation o...