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
EnthalpyPropertyEvaluator.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 
8 
9 #ifndef EnthalpyPropertyEvaluator_h
10 #define EnthalpyPropertyEvaluator_h
11 
13 #include <FieldTypeDef.h>
14 
15 #include <string>
16 #include <map>
17 #include <vector>
18 
19 namespace stk {
20 namespace mesh {
21 class MetaData;
22 struct Entity;
23 }
24 }
25 
26 namespace sierra{
27 namespace nalu{
28 
29 class ReferencePropertyData;
30 
32 {
33 public:
34 
36  const std::map<std::string, ReferencePropertyData*> &referencePropertyDataMap,
37  const std::map<std::string, std::vector<double> > &lowPolynomialCoeffsMap,
38  const std::map<std::string, std::vector<double> > &highPolynomialCoeffsMap,
39  double universalR);
40  virtual ~EnthalpyPropertyEvaluator();
41 
42  double execute(
43  double *indVarList,
44  stk::mesh::Entity node);
45 
46  double compute_h_rt(
47  const double &T,
48  const double *pt_poly);
49 
50  std::vector<double> refMassFraction_;
51 
52 };
53 
55 {
56 public:
57 
59  const std::map<std::string, ReferencePropertyData*> &referencePropertyDataMap,
60  const std::map<std::string, std::vector<double> > &lowPolynomialCoeffsMap,
61  const std::map<std::string, std::vector<double> > &highPolynomialCoeffsMap,
62  double universalR,
63  stk::mesh::MetaData &metaData);
64 
66 
67  double execute(
68  double *indVarList,
69  stk::mesh::Entity node);
70 
71  double compute_h_rt(
72  const double &T,
73  const double *pt_poly);
74 
75  // field definition and extraction
77 
78 };
79 
81 {
82 public:
83 
85  const double & specificHeat,
86  const double & referenceTemperature);
87 
89 
90  double execute(
91  double *indVarList,
92  stk::mesh::Entity node);
93 
94  double specificHeat_;
96 
97 };
98 
100 {
101 public:
102 
104  const std::map<std::string, double> &cpConstMap,
105  const std::map<std::string, double> &hfConstMap,
106  stk::mesh::MetaData &metaData,
107  const double referenceTemperature);
108 
110 
111  double execute(
112  double *indVarList,
113  stk::mesh::Entity node);
114 
115  // field definition and extraction
116  const double referenceTemperature_;
117  const size_t cpVecSize_;
119  std::vector<double> cpVec_;
120  std::vector<double> hfVec_;
121 };
122 
123 
124 } // namespace nalu
125 } // namespace Sierra
126 
127 #endif
Definition: ABLForcingAlgorithm.C:26
stk::mesh::Field< double, stk::mesh::SimpleArrayTag > GenericFieldType
Definition: FieldTypeDef.h:27
Definition: EnthalpyPropertyEvaluator.h:99
const double referenceTemperature_
Definition: EnthalpyPropertyEvaluator.h:116
Definition: Algorithm.h:14
Definition: EnthalpyPropertyEvaluator.h:54
GenericFieldType * massFraction_
Definition: EnthalpyPropertyEvaluator.h:118
Definition: PolynomialPropertyEvaluator.h:30
double specificHeat_
Definition: EnthalpyPropertyEvaluator.h:94
Definition: EnthalpyPropertyEvaluator.h:80
std::vector< double > refMassFraction_
Definition: EnthalpyPropertyEvaluator.h:50
Definition: PropertyEvaluator.h:19
Definition: EnthalpyPropertyEvaluator.h:31
GenericFieldType * massFraction_
Definition: EnthalpyPropertyEvaluator.h:76
std::vector< double > hfVec_
Definition: EnthalpyPropertyEvaluator.h:120
double referenceTemperature_
Definition: EnthalpyPropertyEvaluator.h:95
std::vector< double > cpVec_
Definition: EnthalpyPropertyEvaluator.h:119
const size_t cpVecSize_
Definition: EnthalpyPropertyEvaluator.h:117