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
MomentumMassElemSuppAlgDep.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 MomentumMassElemSuppAlgDep_h
10 #define MomentumMassElemSuppAlgDep_h
11 
12 #include <SupplementalAlgorithm.h>
13 #include <FieldTypeDef.h>
14 
15 #include <stk_mesh/base/BulkData.hpp>
16 #include <stk_mesh/base/Entity.hpp>
17 
18 namespace sierra{
19 namespace nalu{
20 
21 class Realm;
22 class MasterElement;
23 
25 {
26 public:
27 
29  Realm &realm,
30  const bool lumpedMass);
31 
33 
34  virtual void setup();
35 
36  virtual void elem_resize(
37  MasterElement *meSCS,
38  MasterElement *meSCV);
39 
40  virtual void elem_execute(
41  double *lhs,
42  double *rhs,
43  stk::mesh::Entity element,
44  MasterElement *meSCS,
45  MasterElement *meSCV);
46 
47  const stk::mesh::BulkData *bulkData_;
48 
57 
58  double dt_;
59  double gamma1_;
60  double gamma2_;
61  double gamma3_;
62  const int nDim_;
63  const bool lumpedMass_;
64 
65  // scratch space
66  std::vector<double> uNm1Scv_;
67  std::vector<double> uNScv_;
68  std::vector<double> uNp1Scv_;
69  std::vector<double> GjpScv_;
70 
71  std::vector<double> ws_shape_function_;
72  std::vector<double> ws_uNm1_;
73  std::vector<double> ws_uN_;
74  std::vector<double> ws_uNp1_;
75  std::vector<double> ws_Gjp_;
76  std::vector<double> ws_rhoNm1_;
77  std::vector<double> ws_rhoN_;
78  std::vector<double> ws_rhoNp1_;
79  std::vector<double> ws_coordinates_;
80  std::vector<double> ws_scv_volume_;
81 };
82 
83 } // namespace nalu
84 } // namespace Sierra
85 
86 #endif
Definition: ABLForcingAlgorithm.C:26
Definition: MasterElement.h:53
std::vector< double > ws_uNm1_
Definition: MomentumMassElemSuppAlgDep.h:72
std::vector< double > ws_shape_function_
Definition: MomentumMassElemSuppAlgDep.h:71
std::vector< double > ws_Gjp_
Definition: MomentumMassElemSuppAlgDep.h:75
ScalarFieldType * densityNm1_
Definition: MomentumMassElemSuppAlgDep.h:52
std::vector< double > ws_scv_volume_
Definition: MomentumMassElemSuppAlgDep.h:80
std::vector< double > uNScv_
Definition: MomentumMassElemSuppAlgDep.h:67
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
std::vector< double > GjpScv_
Definition: MomentumMassElemSuppAlgDep.h:69
virtual ~MomentumMassElemSuppAlgDep()
Definition: MomentumMassElemSuppAlgDep.h:32
double gamma1_
Definition: MomentumMassElemSuppAlgDep.h:59
static constexpr double lhs[8][8]
Definition: UnitTestContinuityAdvElem.C:25
std::vector< double > ws_rhoNp1_
Definition: MomentumMassElemSuppAlgDep.h:78
VectorFieldType * Gjp_
Definition: MomentumMassElemSuppAlgDep.h:55
const int nDim_
Definition: MomentumMassElemSuppAlgDep.h:62
MomentumMassElemSuppAlgDep(Realm &realm, const bool lumpedMass)
Definition: MomentumMassElemSuppAlgDep.C:32
ScalarFieldType * densityNp1_
Definition: MomentumMassElemSuppAlgDep.h:54
virtual void setup()
Definition: MomentumMassElemSuppAlgDep.C:106
double gamma2_
Definition: MomentumMassElemSuppAlgDep.h:60
std::vector< double > ws_rhoNm1_
Definition: MomentumMassElemSuppAlgDep.h:76
stk::mesh::Field< double > ScalarFieldType
Definition: FieldTypeDef.h:19
std::vector< double > ws_coordinates_
Definition: MomentumMassElemSuppAlgDep.h:79
static constexpr double rhs[8]
Definition: UnitTestContinuityAdvElem.C:18
VectorFieldType * velocityNm1_
Definition: MomentumMassElemSuppAlgDep.h:49
const stk::mesh::BulkData * bulkData_
Definition: MomentumMassElemSuppAlgDep.h:47
double dt_
Definition: MomentumMassElemSuppAlgDep.h:58
Definition: MomentumMassElemSuppAlgDep.h:24
Definition: UnitTestMasterElements.C:367
virtual void elem_resize(MasterElement *meSCS, MasterElement *meSCV)
Definition: MomentumMassElemSuppAlgDep.C:76
virtual void elem_execute(double *lhs, double *rhs, stk::mesh::Entity element, MasterElement *meSCS, MasterElement *meSCV)
Definition: MomentumMassElemSuppAlgDep.C:118
std::vector< double > uNp1Scv_
Definition: MomentumMassElemSuppAlgDep.h:68
std::vector< double > uNm1Scv_
Definition: MomentumMassElemSuppAlgDep.h:66
std::vector< double > ws_uNp1_
Definition: MomentumMassElemSuppAlgDep.h:74
VectorFieldType * velocityN_
Definition: MomentumMassElemSuppAlgDep.h:50
VectorFieldType * velocityNp1_
Definition: MomentumMassElemSuppAlgDep.h:51
std::vector< double > ws_uN_
Definition: MomentumMassElemSuppAlgDep.h:73
ScalarFieldType * densityN_
Definition: MomentumMassElemSuppAlgDep.h:53
const bool lumpedMass_
Definition: MomentumMassElemSuppAlgDep.h:63
Definition: Realm.h:82
std::vector< double > ws_rhoN_
Definition: MomentumMassElemSuppAlgDep.h:77
Definition: SupplementalAlgorithm.h:24
double gamma3_
Definition: MomentumMassElemSuppAlgDep.h:61
VectorFieldType * coordinates_
Definition: MomentumMassElemSuppAlgDep.h:56