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
SolutionOptions.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 SolutionOptions_h
10 #define SolutionOptions_h
11 
12 #include <NaluParsing.h>
13 #include <Enums.h>
14 
15 // standard c++
16 #include <string>
17 #include <map>
18 #include <utility>
19 #include <memory>
20 
21 namespace sierra{
22 namespace nalu{
23 
24 class MeshMotionInfo;
25 struct FixPressureAtNodeInfo;
26 
28  EIT_NONE = 0,
29  EIT_PSTAB = 1 << 1,
30  EIT_LIMITER = 1 << 2 ,
31  EIT_SIMPLE_BASE = 1 << 3,
35 };
36 
37 
39 {
40 public:
41 
44 
45  void load(const YAML::Node & node);
47 
48  inline bool has_mesh_motion() const { return meshMotion_; }
49 
50  inline bool has_mesh_deformation() const
51  {
53  }
54 
55  inline bool does_mesh_move() const
56  {
58  }
59 
60  inline std::string get_coordinates_name() const
61  {
62  return does_mesh_move() ? "current_coordinates" : "coordinates";
63  }
64 
65  inline double get_mdot_interp() const
66  { return mdotInterpRhoUTogether_ ? 1.0 : 0.0; }
67 
68  double get_alpha_factor(const std::string&) const;
69 
70  double get_alpha_upw_factor(const std::string&) const;
71 
72  double get_upw_factor(const std::string&) const;
73 
74  bool primitive_uses_limiter(const std::string&) const;
75 
76  bool get_shifted_grad_op(const std::string&) const;
77 
78  std::vector<double> get_gravity_vector(const unsigned nDim) const;
79 
81  TurbulenceModelConstant turbModelEnum) const;
82 
84  double alphaDefault_;
86  double upwDefault_;
87  double lamScDefault_;
92  std::string tanhFormDefault_;
100  double includeDivU_;
109  std::vector<int> refineAt_;
141  double latitude_;
142 
143  // global mdot correction alg
146  double mdotAlgOpen_;
147 
148  // turbulence model coeffs
149  std::map<TurbulenceModelConstant, double> turbModelConstantMap_;
150 
151  // numerics related
152  std::map<std::string, double> hybridMap_;
153  std::map<std::string, double> alphaMap_;
154  std::map<std::string, double> alphaUpwMap_;
155  std::map<std::string, double> upwMap_;
156  std::map<std::string, bool> limiterMap_;
157  std::map<std::string, std::string> tanhFormMap_;
158  std::map<std::string, double> tanhTransMap_;
159  std::map<std::string, double> tanhWidthMap_;
160  std::map<std::string, bool> consistentMassMatrixPngMap_;
161 
162  // property related
163  std::map<std::string, double> lamScMap_;
164  std::map<std::string, double> lamPrMap_;
165  std::map<std::string, double> turbScMap_;
166  std::map<std::string, double> turbPrMap_;
167 
168  // source; nodal and fully integrated
169  std::map<std::string, std::vector<std::string> > srcTermsMap_;
170  std::map<std::string, std::vector<double> > srcTermParamMap_;
171  std::map<std::string, std::vector<std::string> > elemSrcTermsMap_;
172  std::map<std::string, std::vector<double> > elemSrcTermParamMap_;
173 
174  // nodal gradient
175  std::map<std::string, std::string> nodalGradMap_;
176 
177  // non-orthogonal correction
178  std::map<std::string, bool> nocMap_;
179 
180  // shifting of Laplace operator for the element-based grad_op
181  std::map<std::string, bool> shiftedGradOpMap_;
182 
183  // read any fields from input files
184  std::map<std::string, std::string> inputVarFromFileMap_;
185 
186  // mesh motion
187  std::map<std::string, MeshMotionInfo *> meshMotionInfoMap_;
188 
189  std::vector<double> gravity_;
190 
191  // Coriolis source term
192  std::vector<double> eastVector_;
193  std::vector<double> northVector_;
194 
197 
198  std::unique_ptr<FixPressureAtNodeInfo> fixPressureInfo_;
199 
200  std::string name_;
201 
202  std::string quadType_;
203 
204 };
205 
206 } // namespace nalu
207 } // namespace Sierra
208 
209 #endif
double eigenvaluePerturbTurbKe_
Definition: SolutionOptions.h:139
int adaptivityFrequency_
Definition: SolutionOptions.h:112
void load(const YAML::Node &node)
Definition: SolutionOptions.C:114
bool cvfemReducedSensPoisson_
Definition: SolutionOptions.h:130
bool inputVariablesInterpolateInTime_
Definition: SolutionOptions.h:132
double get_upw_factor(const std::string &) const
Definition: SolutionOptions.C:688
Definition: SolutionOptions.h:31
Definition: SolutionOptions.h:30
int maxRefinementLevel_
Definition: SolutionOptions.h:121
Definition: ABLForcingAlgorithm.C:26
double mdotAlgInflow_
Definition: SolutionOptions.h:145
std::map< std::string, double > tanhWidthMap_
Definition: SolutionOptions.h:159
std::unique_ptr< FixPressureAtNodeInfo > fixPressureInfo_
Definition: SolutionOptions.h:198
double unrefineFraction_
Definition: SolutionOptions.h:115
std::map< std::string, MeshMotionInfo * > meshMotionInfoMap_
Definition: SolutionOptions.h:187
std::map< std::string, double > alphaUpwMap_
Definition: SolutionOptions.h:154
bool externalMeshDeformation_
Definition: SolutionOptions.h:106
std::map< std::string, std::vector< double > > srcTermParamMap_
Definition: SolutionOptions.h:170
std::map< std::string, std::vector< std::string > > srcTermsMap_
Definition: SolutionOptions.h:169
TurbulenceModel
Definition: Enums.h:145
std::vector< double > northVector_
Definition: SolutionOptions.h:193
std::vector< int > refineAt_
Definition: SolutionOptions.h:109
bool has_mesh_motion() const
Definition: SolutionOptions.h:48
bool nocDefault_
Definition: SolutionOptions.h:90
bool get_shifted_grad_op(const std::string &) const
Definition: SolutionOptions.C:711
std::map< std::string, double > lamPrMap_
Definition: SolutionOptions.h:164
std::string quadType_
Definition: SolutionOptions.h:202
bool activateUniformRefinement_
Definition: SolutionOptions.h:107
double physicalErrIndUnrefCriterionMultipler_
Definition: SolutionOptions.h:117
std::map< std::string, double > hybridMap_
Definition: SolutionOptions.h:152
std::map< std::string, double > turbPrMap_
Definition: SolutionOptions.h:166
bool mdotInterpRhoUTogether_
Definition: SolutionOptions.h:101
bool ncAlgCurrentNormal_
Definition: SolutionOptions.h:127
bool cvfemShiftMdot_
Definition: SolutionOptions.h:129
double nearestFaceEntrain_
Definition: SolutionOptions.h:99
Definition: SolutionOptions.h:29
std::map< std::string, double > turbScMap_
Definition: SolutionOptions.h:165
Definition: SolutionOptions.h:38
ErrorIndicatorType
Definition: SolutionOptions.h:27
double physicalErrIndCriterion_
Definition: SolutionOptions.h:116
std::map< std::string, std::string > tanhFormMap_
Definition: SolutionOptions.h:157
double inputVariablesPeriodicTime_
Definition: SolutionOptions.h:133
bool useConsolidatedSolverAlg_
Definition: SolutionOptions.h:135
double turbPrDefault_
Definition: SolutionOptions.h:89
bool does_mesh_move() const
Definition: SolutionOptions.h:55
SolutionOptions()
Definition: SolutionOptions.C:31
std::vector< double > get_gravity_vector(const unsigned nDim) const
Definition: SolutionOptions.C:723
double get_mdot_interp() const
Definition: SolutionOptions.h:65
double referenceTemperature_
Definition: SolutionOptions.h:96
bool ncAlgDetailedOutput_
Definition: SolutionOptions.h:125
void initialize_turbulence_constants()
Definition: SolutionOptions.C:636
double eigenvaluePerturbDelta_
Definition: SolutionOptions.h:137
bool consistentMMPngDefault_
Definition: SolutionOptions.h:134
bool shiftedGradOpDefault_
Definition: SolutionOptions.h:91
bool useAdapter_
Definition: SolutionOptions.h:120
double turbScDefault_
Definition: SolutionOptions.h:88
std::vector< double > eastVector_
Definition: SolutionOptions.h:192
double includeDivU_
Definition: SolutionOptions.h:100
bool ncAlgPngPenalty_
Definition: SolutionOptions.h:128
double lamScDefault_
Definition: SolutionOptions.h:87
double referenceDensity_
Definition: SolutionOptions.h:95
bool eigenvaluePerturb_
Definition: SolutionOptions.h:136
double tanhWidthDefault_
Definition: SolutionOptions.h:94
double inputVariablesRestorationTime_
Definition: SolutionOptions.h:131
double tanhTransDefault_
Definition: SolutionOptions.h:93
~SolutionOptions()
Definition: SolutionOptions.C:101
std::map< std::string, std::vector< double > > elemSrcTermParamMap_
Definition: SolutionOptions.h:172
double mdotAlgAccumulation_
Definition: SolutionOptions.h:144
std::string tanhFormDefault_
Definition: SolutionOptions.h:92
Definition: SolutionOptions.h:32
double hybridDefault_
Definition: SolutionOptions.h:83
double mdotAlgOpen_
Definition: SolutionOptions.h:146
std::map< std::string, double > upwMap_
Definition: SolutionOptions.h:155
bool useMarker_
Definition: SolutionOptions.h:113
std::map< TurbulenceModelConstant, double > turbModelConstantMap_
Definition: SolutionOptions.h:149
std::map< std::string, double > tanhTransMap_
Definition: SolutionOptions.h:158
bool ncAlgGaussLabatto_
Definition: SolutionOptions.h:122
std::string get_coordinates_name() const
Definition: SolutionOptions.h:60
std::map< std::string, bool > consistentMassMatrixPngMap_
Definition: SolutionOptions.h:160
int eigenvaluePerturbBiasTowards_
Definition: SolutionOptions.h:138
double earthAngularVelocity_
Definition: SolutionOptions.h:140
double get_alpha_factor(const std::string &) const
Definition: SolutionOptions.C:664
double alphaDefault_
Definition: SolutionOptions.h:84
bool isTurbulent_
Definition: SolutionOptions.h:102
bool needPressureReference_
Flag indicating whether the user has requested pressure referencing.
Definition: SolutionOptions.h:196
bool adapterExtraOutput_
Definition: SolutionOptions.h:119
std::map< std::string, std::string > nodalGradMap_
Definition: SolutionOptions.h:175
std::map< std::string, std::string > inputVarFromFileMap_
Definition: SolutionOptions.h:184
std::string name_
Definition: SolutionOptions.h:200
double maxRefinementNumberOfElementsFraction_
Definition: SolutionOptions.h:118
bool meshDeformation_
Definition: SolutionOptions.h:105
std::map< std::string, double > alphaMap_
Definition: SolutionOptions.h:153
std::map< std::string, bool > shiftedGradOpMap_
Definition: SolutionOptions.h:181
double get_turb_model_constant(TurbulenceModelConstant turbModelEnum) const
Definition: SolutionOptions.C:735
double refineFraction_
Definition: SolutionOptions.h:114
std::map< std::string, bool > limiterMap_
Definition: SolutionOptions.h:156
Tpetra::Map< LocalOrdinal, GlobalOrdinal >::node_type Node
Definition: LinearSolver.h:32
double get_alpha_upw_factor(const std::string &) const
Definition: SolutionOptions.C:676
std::map< std::string, bool > nocMap_
Definition: SolutionOptions.h:178
ErrorIndicatorType errorIndicatorType_
Definition: SolutionOptions.h:111
TurbulenceModel turbulenceModel_
Definition: SolutionOptions.h:103
Definition: SolutionOptions.h:33
Definition: SolutionOptions.h:34
bool primitive_uses_limiter(const std::string &) const
Definition: SolutionOptions.C:700
double upwDefault_
Definition: SolutionOptions.h:86
double alphaUpwDefault_
Definition: SolutionOptions.h:85
bool ncAlgCoincidentNodesErrorCheck_
Definition: SolutionOptions.h:126
std::map< std::string, std::vector< std::string > > elemSrcTermsMap_
Definition: SolutionOptions.h:171
std::vector< double > gravity_
Definition: SolutionOptions.h:189
bool uniformRefineSaveAfter_
Definition: SolutionOptions.h:108
bool ncAlgUpwindAdvection_
Definition: SolutionOptions.h:123
double stefanBoltzmann_
Definition: SolutionOptions.h:98
TurbulenceModelConstant
Definition: Enums.h:164
bool meshMotion_
Definition: SolutionOptions.h:104
Definition: SolutionOptions.h:28
double latitude_
Definition: SolutionOptions.h:141
bool has_mesh_deformation() const
Definition: SolutionOptions.h:50
double thermalExpansionCoeff_
Definition: SolutionOptions.h:97
bool ncAlgIncludePstab_
Definition: SolutionOptions.h:124
std::map< std::string, double > lamScMap_
Definition: SolutionOptions.h:163
bool activateAdaptivity_
Definition: SolutionOptions.h:110