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
MomentumBuoyancySrcElemSuppAlgDep.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 MomentumBuoyancySrcElemSuppAlgDep_h
10 #define MomentumBuoyancySrcElemSuppAlgDep_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 
32 
33  virtual void setup();
34 
35  virtual void elem_resize(
36  MasterElement *meSCS,
37  MasterElement *meSCV);
38 
39  virtual void elem_execute(
40  double *lhs,
41  double *rhs,
42  stk::mesh::Entity element,
43  MasterElement *meSCS,
44  MasterElement *meSCV);
45 
46  const stk::mesh::BulkData *bulkData_;
47 
50 
51  const int nDim_;
52  double rhoRef_;
53  const bool useShifted_;
54  std::vector<double> gravity_;
55 
56  // scratch space
57  std::vector<double> ws_shape_function_;
58  std::vector<double> ws_rhoNp1_;
59  std::vector<double> ws_coordinates_;
60  std::vector<double> ws_scv_volume_;
61 };
62 
63 } // namespace nalu
64 } // namespace Sierra
65 
66 #endif
virtual ~MomentumBuoyancySrcElemSuppAlgDep()
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:31
Definition: ABLForcingAlgorithm.C:26
Definition: MasterElement.h:53
std::vector< double > ws_shape_function_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:57
std::vector< double > ws_scv_volume_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:60
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:24
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
MomentumBuoyancySrcElemSuppAlgDep(Realm &realm)
Definition: MomentumBuoyancySrcElemSuppAlgDep.C:35
std::vector< double > ws_coordinates_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:59
static constexpr double lhs[8][8]
Definition: UnitTestContinuityAdvElem.C:25
const stk::mesh::BulkData * bulkData_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:46
virtual void elem_resize(MasterElement *meSCS, MasterElement *meSCV)
Definition: MomentumBuoyancySrcElemSuppAlgDep.C:61
stk::mesh::Field< double > ScalarFieldType
Definition: FieldTypeDef.h:19
std::vector< double > ws_rhoNp1_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:58
static constexpr double rhs[8]
Definition: UnitTestContinuityAdvElem.C:18
Definition: UnitTestMasterElements.C:367
const int nDim_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:51
const bool useShifted_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:53
VectorFieldType * coordinates_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:49
std::vector< double > gravity_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:54
Definition: Realm.h:82
Definition: SupplementalAlgorithm.h:24
double rhoRef_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:52
ScalarFieldType * densityNp1_
Definition: MomentumBuoyancySrcElemSuppAlgDep.h:48
virtual void setup()
Definition: MomentumBuoyancySrcElemSuppAlgDep.C:85
virtual void elem_execute(double *lhs, double *rhs, stk::mesh::Entity element, MasterElement *meSCS, MasterElement *meSCV)
Definition: MomentumBuoyancySrcElemSuppAlgDep.C:94