Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
QuadratureKernels.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 Sandia Corporation. */
3 /* This software is released under the license detailed */
4 /* in the file, LICENSE, which is located in the top-level nalu */
5 /* directory structure */
6 /*------------------------------------------------------------------------*/
7 #ifndef QuadratureKernels_h
8 #define QuadratureKernels_h
9 
10 #include <Teuchos_BLAS.hpp>
11 
12 namespace sierra {
13 namespace nalu {
14 
15  struct ElementDescription;
16 
18  {
19  public:
21 
22  void volume_2D(
23  const double* nodalValuesTensor,
24  double* result);
25 
26  void volume_3D(const double* nodalValue, double* result);
27 
28  void surface_2D(
29  const double* integrand,
30  double* result,
31  int line_offset);
32 
33  void surface_3D(
34  const double* integrand,
35  double* result,
36  int face_offset);
37 
38  void surfaces_2D(const double* integrand, double* result);
39  void surfaces_3D(const double* integrand, double* result);
40 
41  private:
42  const Teuchos::BLAS<int,double> blas_;
43  int nodes1D_;
47  int size3D_;
48 
49  std::vector<double> work2D_;
50  std::vector<double> weightTensor_;
51  std::vector<double> weightMatrix_;
52  double* p_weightTensor_;
53  double* p_weightMatrix_;
54  double* p_work2D_;
55  };
56 
57 } // namespace nalu
58 } // namespace Sierra
59 
60 #endif
Definition: ElementDescription.h:27
std::vector< double > work2D_
Definition: QuadratureKernels.h:49
double * p_work2D_
Definition: QuadratureKernels.h:54
int size3D_
Definition: QuadratureKernels.h:47
int numSurfaces_
Definition: QuadratureKernels.h:45
Definition: ABLForcingAlgorithm.C:26
const Teuchos::BLAS< int, double > blas_
Definition: QuadratureKernels.h:42
double * p_weightMatrix_
Definition: QuadratureKernels.h:53
int nodes1D_
Definition: QuadratureKernels.h:43
int nodesPerElement_
Definition: QuadratureKernels.h:44
Definition: QuadratureKernels.h:17
int nodesPerFace_
Definition: QuadratureKernels.h:46
void volume_2D(const double *nodalValuesTensor, double *result)
Definition: QuadratureKernels.C:68
std::vector< double > weightTensor_
Definition: QuadratureKernels.h:50
void surfaces_2D(const double *integrand, double *result)
Definition: QuadratureKernels.C:184
void surface_2D(const double *integrand, double *result, int line_offset)
Definition: QuadratureKernels.C:124
void surfaces_3D(const double *integrand, double *result)
Definition: QuadratureKernels.C:200
void surface_3D(const double *integrand, double *result, int face_offset)
Definition: QuadratureKernels.C:148
void volume_3D(const double *nodalValue, double *result)
Definition: QuadratureKernels.C:100
double * p_weightTensor_
Definition: QuadratureKernels.h:52
SGLQuadratureOps(const ElementDescription &elem)
Definition: QuadratureKernels.C:29
std::vector< double > weightMatrix_
Definition: QuadratureKernels.h:51