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
TensorProductQuadratureRule.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 TensorProductQuadratureRule_h
8 #define TensorProductQuadratureRule_h
9 
10 #include <string>
11 #include <vector>
12 
13 namespace sierra{
14 namespace nalu{
15 
17 {
18 public:
19  TensorProductQuadratureRule(std::string type, int polyOrder);
20 
22  std::string type,
23  int numQuad,
24  std::vector<double>& scsLocs
25  );
26  ~TensorProductQuadratureRule() = default;
27 
28  const std::vector<double>& abscissae() const { return abscissae_; };
29  const std::vector<double>& weights() const { return weights_; };
30  const std::vector<double>& scs_loc() const { return scsLoc_; };
31  const std::vector<double>& scs_end_loc() const { return scsEndLoc_; };
32 
33  int num_quad() const { return numQuad_; }
34  bool is_SGL() const { return useSGL_; }
35 
36  double abscissa(unsigned j) const { return abscissae_[j]; };
37  double weight(unsigned j) const { return weights_[j]; };
38  double scs_loc(unsigned j) const { return scsLoc_[j]; };
39  double scs_end_loc(unsigned j) const { return scsEndLoc_[j]; };
40 
42  int nodeOrdinal,
43  int gaussPointOrdinal) const;
44 
46  int s1Node, int s2Node, int s3Node,
47  int s1Ip, int s2Ip, int s3Ip) const;
48 
50  int s1Node, int s2Node,
51  int s1Ip, int s2Ip) const;
52 
53  double integration_point_weight(int s1Node, int s1Ip) const;
54 
55  double isoparametric_mapping(
56  const double b,
57  const double a,
58  const double xi) const;
59 
60 private:
61  std::vector<double> scsLoc_;
62  std::vector<double> scsEndLoc_;
63  int numQuad_;
64  std::vector<double> abscissae_;
65  std::vector<double> weights_;
66  bool useSGL_;
67 };
68 
69 } // namespace nalu
70 } // namespace Sierra
71 
72 #endif
std::vector< double > abscissae_
Definition: TensorProductQuadratureRule.h:64
double abscissa(unsigned j) const
Definition: TensorProductQuadratureRule.h:36
Definition: ABLForcingAlgorithm.C:26
TensorProductQuadratureRule(std::string type, int polyOrder)
Definition: TensorProductQuadratureRule.C:17
const std::vector< double > & scs_end_loc() const
Definition: TensorProductQuadratureRule.h:31
int numQuad_
Definition: TensorProductQuadratureRule.h:63
double integration_point_location(int nodeOrdinal, int gaussPointOrdinal) const
Definition: TensorProductQuadratureRule.C:85
const std::vector< double > & weights() const
Definition: TensorProductQuadratureRule.h:29
int num_quad() const
Definition: TensorProductQuadratureRule.h:33
const std::vector< double > & scs_loc() const
Definition: TensorProductQuadratureRule.h:30
double scs_loc(unsigned j) const
Definition: TensorProductQuadratureRule.h:38
const std::vector< double > & abscissae() const
Definition: TensorProductQuadratureRule.h:28
bool useSGL_
Definition: TensorProductQuadratureRule.h:66
double scs_end_loc(unsigned j) const
Definition: TensorProductQuadratureRule.h:39
std::vector< double > weights_
Definition: TensorProductQuadratureRule.h:65
double isoparametric_mapping(const double b, const double a, const double xi) const
Definition: TensorProductQuadratureRule.C:76
bool is_SGL() const
Definition: TensorProductQuadratureRule.h:34
std::vector< double > scsLoc_
Definition: TensorProductQuadratureRule.h:61
Definition: TensorProductQuadratureRule.h:16
double weight(unsigned j) const
Definition: TensorProductQuadratureRule.h:37
double integration_point_weight(int s1Node, int s2Node, int s3Node, int s1Ip, int s2Ip, int s3Ip) const
Definition: TensorProductQuadratureRule.C:103
std::vector< double > scsEndLoc_
Definition: TensorProductQuadratureRule.h:62