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
AssembleScalarEigenEdgeSolverAlgorithm.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 AssembleScalarEigenEdgeSolverAlgorithm_h
10 #define AssembleScalarEigenEdgeSolverAlgorithm_h
11 
12 #include<SolverAlgorithm.h>
13 #include<FieldTypeDef.h>
14 
15 namespace stk {
16 namespace mesh {
17 class Part;
18 }
19 }
20 
21 namespace sierra{
22 namespace nalu{
23 
24 class Realm;
25 class PecletFunction;
26 
28 {
29 public:
30 
32  Realm &realm,
33  stk::mesh::Part *part,
34  EquationSystem *eqSystem,
35  ScalarFieldType *scalarQ,
36  VectorFieldType *dqdx,
37  ScalarFieldType *thermalCond,
38  ScalarFieldType *specHeat,
39  ScalarFieldType *turbViscosity,
40  const double turbSigma);
41 
43  virtual void initialize_connectivity();
44  virtual void execute();
45 
46  // eignenvalue helpers
47  void diagonalize( const double (&A)[3][3], double (&Q)[3][3], double (&D)[3][3]);
48  void perturb(double (&D)[3][3]);
49  void form_perturbed_stress( const double (&D)[3][3], const double (&Q)[3][3], double (&A)[3][3]);
50  void matrix_matrix_multiply( const double (&A)[3][3], const double (&B)[3][3], double (&C)[3][3]);
51  void sort(const double (&D)[3][3]);
52 
53  double van_leer(
54  const double &dqm,
55  const double &dqp,
56  const double &small);
57 
58  const bool meshMotion_;
59  const double includeDivU_;
60  const double turbSigma_;
61 
72 
73  // extra for GGDH
77 
78  // peclect function specifics
80 
81  // constants and perturbation from user
82  const double cGGDH_;
83  const double deltaB_;
84  const double perturbTurbKe_;
85  double BinvXt_[3];
86 
87  // fixed size
88  double duidxj_[3][3];
89  double dqdxj_[3];
90  double R_[3][3];
91  double b_[3][3];
92  double D_[3][3];
93  double Q_[3][3];
94  int rowMap_[3];
95 };
96 
97 } // namespace nalu
98 } // namespace Sierra
99 
100 #endif
VectorFieldType * velocity_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:75
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:27
Definition: ABLForcingAlgorithm.C:26
const double cGGDH_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:82
stk::mesh::Field< double, stk::mesh::SimpleArrayTag > GenericFieldType
Definition: FieldTypeDef.h:27
const double deltaB_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:83
ScalarFieldType * turbViscosity_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:66
Definition: SolverAlgorithm.h:24
ScalarFieldType * density_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:69
Definition: Algorithm.h:14
VectorFieldType * dqdx_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:63
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
VectorFieldType * velocityRTM_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:67
Base class representation of a PDE.
Definition: EquationSystem.h:46
ScalarFieldType * massFlowRate_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:70
ScalarFieldType * specHeat_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:65
stk::mesh::Field< double > ScalarFieldType
Definition: FieldTypeDef.h:19
VectorFieldType * coordinates_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:68
ScalarFieldType * scalarQ_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:62
const double perturbTurbKe_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:84
VectorFieldType * edgeAreaVec_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:71
ScalarFieldType * thermalCond_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:64
const double turbSigma_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:60
const bool meshMotion_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:58
ScalarFieldType * turbKe_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:74
GenericFieldType * dudx_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:76
Definition: Realm.h:82
PecletFunction * pecletFunction_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:79
Definition: PecletFunction.h:15
const double includeDivU_
Definition: AssembleScalarEigenEdgeSolverAlgorithm.h:59