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
VariableDensityMomentumSrcElemSuppAlg.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 VariableDensityMomentumSrcElemSuppAlg_h
10 #define VariableDensityMomentumSrcElemSuppAlg_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 
49 
50  const int nDim_;
51  const double unot_;
52  const double vnot_;
53  const double wnot_;
54  const double pnot_;
55  const double znot_;
56  const double a_;
57  const double amf_;
58  const double visc_;
59  const double rhoP_;
60  const double rhoS_;
61  const double pi_;
62  const double twoThirds_;
63  double rhoRef_;
64  double gx_;
65  double gy_;
66  double gz_;
67  const bool useShifted_;
68 
69  // scratch space (at constructor)
70  std::vector<double> scvCoords_;
71  std::vector<double> srcXi_;
72  // at elem_resize
73  std::vector<double> ws_shape_function_;
74  std::vector<double> ws_coordinates_;
75  std::vector<double> ws_scv_volume_;
76 };
77 
78 } // namespace nalu
79 } // namespace Sierra
80 
81 #endif
virtual void elem_execute(double *lhs, double *rhs, stk::mesh::Entity element, MasterElement *meSCS, MasterElement *meSCV)
Definition: VariableDensityMomentumSrcElemSuppAlg.C:107
std::vector< double > ws_scv_volume_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:75
double rhoRef_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:63
virtual ~VariableDensityMomentumSrcElemSuppAlg()
Definition: VariableDensityMomentumSrcElemSuppAlg.h:31
double gz_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:66
Definition: ABLForcingAlgorithm.C:26
Definition: MasterElement.h:53
const double vnot_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:52
std::vector< double > scvCoords_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:70
const stk::mesh::BulkData * bulkData_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:46
double gy_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:65
const double twoThirds_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:62
const double rhoS_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:60
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
const int nDim_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:50
const double amf_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:57
static constexpr double lhs[8][8]
Definition: UnitTestContinuityAdvElem.C:25
const double unot_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:51
const double a_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:56
const double rhoP_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:59
static constexpr double rhs[8]
Definition: UnitTestContinuityAdvElem.C:18
const bool useShifted_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:67
std::vector< double > srcXi_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:71
Definition: VariableDensityMomentumSrcElemSuppAlg.h:24
const double visc_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:58
Definition: UnitTestMasterElements.C:367
virtual void elem_resize(MasterElement *meSCS, MasterElement *meSCV)
Definition: VariableDensityMomentumSrcElemSuppAlg.C:77
std::vector< double > ws_coordinates_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:74
std::vector< double > ws_shape_function_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:73
const double pnot_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:54
const double wnot_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:53
const double pi_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:61
Definition: Realm.h:82
double gx_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:64
const double znot_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:55
Definition: SupplementalAlgorithm.h:24
VectorFieldType * coordinates_
Definition: VariableDensityMomentumSrcElemSuppAlg.h:48
VariableDensityMomentumSrcElemSuppAlg(Realm &realm)
Definition: VariableDensityMomentumSrcElemSuppAlg.C:33
virtual void setup()
Definition: VariableDensityMomentumSrcElemSuppAlg.C:98