2 #ifndef _PROTO_OPERATOR_H_ 3 #define _PROTO_OPERATOR_H_ 11 using namespace Proto;
22 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
37 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
50 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
63 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
79 template<
class T,
unsigned int C, MemType MEM, Centering CTR>
94 template<
class T,
unsigned int C, MemType MEM, Centering CTR>
102 typename Func,
typename... Srcs>
109 typename Func,
typename... Srcs>
123 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
138 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
152 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
165 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
181 template<
class T,
unsigned int C, MemType MEM, Centering CTR>
196 template<
class T,
unsigned int C, MemType MEM, Centering CTR>
212 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
229 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
245 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
260 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
277 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
294 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
310 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
325 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
343 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
362 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
379 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
394 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
414 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
435 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
454 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
471 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
490 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
509 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
526 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
541 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
560 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
581 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
600 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
607 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
628 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
637 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
647 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
654 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
675 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
684 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
694 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
701 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
721 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
729 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
738 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
744 template<
class T,
unsigned int C,
unsigned int D,
unsigned int E, MemType MEM>
753 template <
class T, MemType MEM>
764 template <
class T, MemType MEM>
772 template <
class T, MemType MEM>
784 template<
class T, MemType MEM>
790 template<
class T, MemType MEM>
798 template <
class T, MemType MEM>
805 template <
class T, MemType MEM>
814 template<
class T, MemType MEM>
823 template<
class T, MemType MEM>
833 template<
class T, MemType MEM>
840 template<
class T, MemType MEM>
849 template<
class T,
unsigned int CL,
unsigned int DL,
850 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
862 template<
class T,
unsigned int CL,
unsigned int DL,
863 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
872 template<
class T,
unsigned int CL,
unsigned int DL,
873 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
883 template<
class T,
unsigned int CL,
unsigned int DL,
884 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
891 template<
class T,
unsigned int CL,
unsigned int DL,
892 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
901 template<
class T,
unsigned int CL,
unsigned int DL,
902 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
911 template<
class T,
unsigned int CL,
unsigned int DL,
912 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
923 template<
class T,
unsigned int CL,
unsigned int DL,
924 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
933 template<
class T,
unsigned int CL,
unsigned int DL,
934 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
945 template<
class T,
unsigned int CL,
unsigned int DL,
946 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
952 template<
class T,
unsigned int CL,
unsigned int DL,
953 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
961 template<
class T,
unsigned int CL,
unsigned int DL,
962 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
968 template<
class T,
unsigned int CL,
unsigned int DL,
969 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
977 template<
class T,
unsigned int CL,
unsigned int DL,
978 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
984 template<
class T,
unsigned int CL,
unsigned int DL,
985 unsigned int CR,
unsigned int DR,
unsigned int E,
MemType MEM>
993 template<
class T,
unsigned int C, MemType MEM,
unsigned int D,
unsigned int E>
1002 template<
class T,
unsigned int C, MemType MEM>
1009 template<
class T,
unsigned int CFLUX,
unsigned int CPRIM, MemType MEM>
1024 template<
class T,
unsigned int C, MemType MEM>
1035 template<
class T,
unsigned int C, MemType MEM>
1048 template<
class T,
unsigned int C,MemType MEM,
unsigned int D,
unsigned int E>
1066 template<
class T, MemType MEM>
1086 template<
class T, MemType MEM>
1096 template<
class T, MemType MEM>
1102 template<
class T, MemType MEM>
1108 template<
class T, MemType MEM>
1114 template<
class T, MemType MEM>
1119 template<
class T, MemType MEM>
1124 #include "implem/Proto_OperatorImplem.H" BoxData< T, DIM, MEM > cofactor(const BoxData< T, DIM, MEM > &a_X, int a_dir)
Cofactor Vector On Face.
Definition: Proto_Operator.H:659
BoxData< T, CL, MEM, DR, E > _cellMatrixProductAB(const BoxData< T, CL, MEM, DL, E > &a_ql4, const BoxData< T, CR, MEM, DR, E > &a_qr4, const BoxData< T, CL, MEM, DL, E > &a_ql2, const BoxData< T, CR, MEM, DR, E > &a_qr2)
Definition: Proto_Operator.H:1390
BoxData< T, C, MEM, D, E > _convolveFace(const BoxData< T, C, MEM, D, E > &a_ctr, const BoxData< T, C, MEM, D, E > &a_2nd, int a_dir)
4th Order Face Convolution
Definition: Proto_Operator.H:217
void cubedSphereDetAFlux2(BoxData< T, 1, MEM > &a_detAFlux2, T a_h)
Definition: Proto_Operator.H:968
BoxData< T, CL, MEM, DR, E > _matrixProductAB(const BoxData< T, CL, MEM, DL, E > &a_ql, const BoxData< T, CR, MEM, DR, E > &a_qr)
BoxData< T, CFLUX, MEM > MHDSphericalFlux(const BoxData< T, CPRIM, MEM > &a_prim4, const BoxData< T, CPRIM, MEM > &a_prim2, const BoxData< T, DIM, MEM, DIM > &a_A4, const BoxData< T, DIM, MEM, DIM > &a_A2, const BoxData< T, 1, MEM > &a_DrDetA4, const BoxData< T, 1, MEM > &a_DrDetA2, const BoxData< T, DIM, MEM > &a_DrAdjA4, const BoxData< T, DIM, MEM > &a_DrAdjA2, const T &a_gamma, int a_dir)
Definition: Proto_Operator.H:1784
BoxData< T, C, MEM, D, E > faceTensorProduct(const BoxData< T, C, MEM, D, E > &a_ql, const BoxData< T, 1, MEM, 1, 1 > &a_qr, int a_dir)
Definition: Proto_Operator.H:557
BoxData< T, C, MEM, D, E > deconvolveFace(const BoxData< T, C, MEM, D, E > &a_avg, int a_dir)
4th Order Face Deconvolution
Definition: Proto_Operator.H:294
Definition: Proto_Operator.H:9
BoxData< T, C, MEM, D, E > _deconvolveFace(const BoxData< T, C, MEM, D, E > &a_avg, const BoxData< T, C, MEM, D, E > &a_2nd, int a_dir)
4th Order Face Deconvolution
Definition: Proto_Operator.H:270
void cubedSphere_nSphere(BoxData< T, DIM, MEM > &a_nSphere, T a_h)
Definition: Proto_Operator.H:785
BoxData< T, C, MEM, D, E > _convolve(const BoxData< T, C, MEM, D, E > &a_ctr, const BoxData< T, C, MEM, D, E > &a_2nd)
4th Order Convolution
Definition: Proto_Operator.H:25
BoxData< T, CL, MEM, CR, E > _faceMatrixProductABT(const BoxData< T, CL, MEM, DL, E > &a_ql4, const BoxData< T, CR, MEM, DR, E > &a_qr4, const BoxData< T, CL, MEM, DL, E > &a_ql2, const BoxData< T, CR, MEM, DR, E > &a_qr2, int a_dir)
Definition: Proto_Operator.H:1613
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:314
BoxData< T, 3, MEM > _edgeCrossProduct3D(const BoxData< T, 3, MEM > &a_ql4, const BoxData< T, 3, MEM > &a_qr4, const BoxData< T, 3, MEM > &a_ql2, const BoxData< T, 3, MEM > &a_qr2, int a_dir)
Definition: Proto_Operator.H:1315
void cubedSphereDetAFlux1(BoxData< T, 1, MEM > &a_detAFlux1, T a_h)
Definition: Proto_Operator.H:921
BoxData< T, C, MEM, D, E > _faceProduct(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg, const BoxData< T, C, MEM, D, E > &a_p2nd, const BoxData< T, C, MEM, D, E > &a_q2nd, int a_dir)
4th Order Face Averaged Product
Definition: Proto_Operator.H:353
BoxData< T, DL, MEM, DR, E > _faceMatrixProductATB(const BoxData< T, CL, MEM, DL, E > &a_ql4, const BoxData< T, CR, MEM, DR, E > &a_qr4, const BoxData< T, CL, MEM, DL, E > &a_ql2, const BoxData< T, CR, MEM, DR, E > &a_qr2, int a_dir)
Definition: Proto_Operator.H:1543
BoxData< T, 3, MEM > edgeCrossProduct3D(const BoxData< T, 3, MEM > &a_ql, const BoxData< T, 3, MEM > &a_qr, int a_edgedir)
Definition: Proto_Operator.H:1366
BoxData< T, C, MEM, DIM > _faceGradient(const BoxData< T, C, MEM > &phi, int a_dir, int a_order=4)
Definition: Proto_Operator.H:1771
MemType
Definition: Proto_MemType.H:7
BoxData< T, C, MEM, D, E > _faceTensorProduct(const BoxData< T, C, MEM, D, E > &a_ql4, const BoxData< T, 1, MEM, 1, 1 > &a_qr4, const BoxData< T, C, MEM, D, E > &a_ql2, const BoxData< T, 1, MEM, 1, 1 > &a_qr2, int a_dir)
4th Order Face Averaged Tensor Product
Definition: Proto_Operator.H:514
Level Box Data.
Definition: Proto_HDF5.H:17
BoxData< T, DL, MEM, DR, E > matrixProductATB(const BoxData< T, CL, MEM, DL, E > &a_ql, const BoxData< T, CR, MEM, DR, E > &a_qr)
BoxData< T, C, MEM, D, E > faceTensorQuotient(const BoxData< T, C, MEM, D, E > &a_ql, const BoxData< T, 1, MEM, 1, 1 > &a_qr, int a_dir)
Definition: Proto_Operator.H:608
BoxData< T, C, MEM, D, E > _cellQuotient(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg, const BoxData< T, C, MEM, D, E > &a_p2nd, const BoxData< T, C, MEM, D, E > &a_q2nd)
4th Order Cell Averaged Quotient
Definition: Proto_Operator.H:404
An interval in DIM dimensional space.
Definition: Proto_Box.H:29
AMR Data Hierarchy.
Definition: Proto_AMRData.H:23
BoxData< T, 1, MEM > jacobian(const BoxData< T, DIM, MEM > &a_X, const FluxBoxData< T, DIM, MEM > &a_NT)
Definition: Proto_Operator.H:1269
void cubedSphere_edge2(BoxData< T, DIM, MEM > &a_n_cross_d2n, T a_h)
Definition: Proto_Operator.H:870
BoxData< T, C, MEM, D, E > _cellProduct(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg, const BoxData< T, C, MEM, D, E > &a_p2nd, const BoxData< T, C, MEM, D, E > &a_q2nd)
4th Order Cell Averaged Product
Definition: Proto_Operator.H:305
BoxData< T, CL, MEM, DR, E > _faceMatrixProductAB(const BoxData< T, CL, MEM, DL, E > &a_ql4, const BoxData< T, CR, MEM, DR, E > &a_qr4, const BoxData< T, CL, MEM, DL, E > &a_ql2, const BoxData< T, CR, MEM, DR, E > &a_qr2, int a_dir)
Definition: Proto_Operator.H:1425
BoxData< T, CL, MEM, DR, E > faceMatrixProductAB(const BoxData< T, CL, MEM, DL, E > &a_ql, const BoxData< T, CR, MEM, DR, E > &a_qr, int a_dir)
Definition: Proto_Operator.H:1520
BoxData< T, C, MEM, D, E > cellQuotient(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg)
4th Order Cell Averaged Quotient
Definition: Proto_Operator.H:437
void initConvolve(LevelBoxData< T, C, MEM, CTR > &a_data, Func &a_func, Srcs... a_srcs)
Initialize and Convolve.
Definition: Proto_Operator.H:84
BoxData< T, C, MEM, DIM > _faceGradxPhi(const BoxData< T, C, MEM > &a_phi4, const BoxData< T, C, MEM > &a_phi2, const BoxData< T, DIM, MEM, DIM > &a_NFace4, const BoxData< T, DIM, MEM, DIM > &a_NFace2, const BoxData< T, 1, MEM > &a_JFace4, const BoxData< T, 1, MEM > &a_JFace2, int a_dir)
Definition: Proto_Operator.H:1902
Definition: Proto_Array.H:17
BoxData< T, C, MEM, D, E > _deconvolve(const BoxData< T, C, MEM, D, E > &a_avg, const BoxData< T, C, MEM, D, E > &a_2nd)
4th Order Deconvolution
Definition: Proto_Operator.H:142
BoxData< T, C, MEM, D, E > _faceTensorQuotient(const BoxData< T, C, MEM, D, E > &a_ql4, const BoxData< T, 1, MEM, 1, 1 > &a_qr4, const BoxData< T, C, MEM, D, E > &a_ql2, const BoxData< T, 1, MEM, 1, 1 > &a_qr2, int a_dir)
4th Order Face Averaged Tensor Quotient
Definition: Proto_Operator.H:581
BoxData< T, C, MEM, D, E > cellTensorQuotient(const BoxData< T, C, MEM, D, E > &a_ql, const BoxData< T, 1, MEM, 1, 1 > &a_qr)
BoxData< T, C, MEM, D, E > convolveFace(const BoxData< T, C, MEM, D, E > &a_ctr, int a_dir)
4th Order Face Convolution
Definition: Proto_Operator.H:241
BoxData< T, C, MEM, D, E > _product1D(const BoxData< T, C, MEM, D, E > &a_ql4, const BoxData< T, C, MEM, D, E > &a_qr4, const BoxData< T, C, MEM, D, E > &a_ql2, const BoxData< T, C, MEM, D, E > &a_qr2, int a_dir)
Definition: Proto_Operator.H:1663
void cubedSphereGeometry(BoxData< T, DIM, MEM > &a_X, FluxBoxData< T, DIM, MEM > &a_NT, BoxData< T, 1, MEM > &a_J, BoxData< T, 1, MEM > &a_radius, const Box &a_bx, T a_h)
Calculation of equiangular cubed-sphere finite-volume metric terms using a semi-analytic approach...
Definition: Proto_Operator.H:1065
BoxData< T, CL, MEM, CR, E > _matrixProductABT(const BoxData< T, CL, MEM, DL, E > &a_ql, const BoxData< T, CR, MEM, DR, E > &a_qr)
BoxData< T, C, MEM, D, E > _cellTensorQuotient(const BoxData< T, C, MEM, D, E > &a_ql4, const BoxData< T, 1, MEM, 1, 1 > &a_qr4, const BoxData< T, C, MEM, D, E > &a_ql2, const BoxData< T, 1, MEM, 1, 1 > &a_qr2)
4th Order Cell Averaged Tensor Quotient
Definition: Proto_Operator.H:1677
BoxData< T, C, MEM, D, E > faceQuotient(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg, int a_dir)
4th Order Face Averaged Quotient
Definition: Proto_Operator.H:491
BoxData< T, C, MEM, D, E > _faceQuotient(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg, const BoxData< T, C, MEM, D, E > &a_p2nd, const BoxData< T, C, MEM, D, E > &a_q2nd, int a_dir)
4th Order Face Averaged Quotient
Definition: Proto_Operator.H:457
BoxData< T, C, MEM, D, E > faceProduct(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg, int a_dir)
4th Order Face Averaged Product
Definition: Proto_Operator.H:382
BoxData< T, C, MEM, D, E > deconvolve(const BoxData< T, C, MEM, D, E > &a_avg)
4th Order Deconvolution
Definition: Proto_Operator.H:165
BoxData< T, DIM, MEM, DIM > cofactorMatrix(const FluxBoxData< T, DIM, MEM > &a_NTFaces, int a_dirNorm)
Compute Matrix of Cofactors.
Definition: Proto_Operator.H:1183
void spreadSlice(BoxData< T, C, MEM, D, E > &a_bd)
Spreads a slice.
Definition: Proto_Operator.H:736
BoxData< T, C, MEM, D, E > cellProduct(const BoxData< T, C, MEM, D, E > &a_pavg, const BoxData< T, C, MEM, D, E > &a_qavg)
4th Order Cell Averaged Product
Definition: Proto_Operator.H:333
BoxData< T, C, MEM, D, E > convolve(const BoxData< T, C, MEM, D, E > &a_ctr)
4th Order Convolution
Definition: Proto_Operator.H:48
void cubedSphere_edge1(BoxData< T, DIM, MEM > &a_d1n_cross_n, T a_h)
Definition: Proto_Operator.H:818
Centering
Definition: Proto_Centering.H:7
Definition: Proto_BoxData.H:1436