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
ProjectedNodalGradientEquationSystem.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 ProjectedNodalGradientEquationSystem_h
10 #define ProjectedNodalGradientEquationSystem_h
11 
12 #include <Enums.h>
13 #include <EquationSystem.h>
14 #include <FieldTypeDef.h>
15 #include <NaluParsing.h>
16 
17 #include <stk_mesh/base/FieldBase.hpp>
18 #include <stk_mesh/base/CoordinateSystems.hpp>
19 
20 namespace stk{
21 struct topology;
22 }
23 
24 namespace sierra{
25 namespace nalu{
26 
27 class Realm;
28 class AssembleNodalGradAlgorithmDriver;
29 class AlgorithmDriver;
30 class EquationSystems;
31 
33 
34 public:
35 
37  EquationSystems& equationSystems,
38  const EquationType eqType,
39  const std::string dofName,
40  const std::string deltaName,
41  const std::string independentDofName,
42  const std::string eqSysName,
43  const bool managesSolve = false);
45 
46  void set_data_map(
47  BoundaryConditionType BC, std::string name);
48 
49  std::string get_name_given_bc(
51 
52  void register_nodal_fields(
53  stk::mesh::Part *part);
54 
55  void register_interior_algorithm(
56  stk::mesh::Part *part);
57 
58  void register_wall_bc(
59  stk::mesh::Part *part,
60  const stk::topology &theTopo,
61  const WallBoundaryConditionData &wallBCData);
62 
63  void register_inflow_bc(
64  stk::mesh::Part *part,
65  const stk::topology &theTopo,
66  const InflowBoundaryConditionData &inflowBCData);
67 
68  void register_open_bc(
69  stk::mesh::Part *part,
70  const stk::topology &theTopo,
71  const OpenBoundaryConditionData &openBCData);
72 
73  void register_symmetry_bc(
74  stk::mesh::Part *part,
75  const stk::topology &theTopo,
76  const SymmetryBoundaryConditionData &symmetryBCData);
77 
78  // not supported
79  void register_non_conformal_bc(
80  stk::mesh::Part *part,
81  const stk::topology &theTopo);
82 
83  // internal solve and update from EquationSystems
84  void solve_and_update();
85 
86  // external intended to be called by another EqSystem (used when someone manages PNGEqs)
87  void solve_and_update_external();
88 
89  void initialize();
90  void reinitialize_linear_system();
91 
92  void deactivate_output();
93 
94  // names that customize this PNG system
96  std::string dofName_;
97  std::string deltaName_;
98  std::string independentDofName_;
99  std::string eqSysName_;
100 
101  // who manages the solve? Often times, this is created by another EqSys
102  const bool managesSolve_;
103 
104  // for exach equation, boundary data may be different
105  std::map<BoundaryConditionType, std::string> dataMap_;
106 
107  // internal fields
110 };
111 
112 } // namespace nalu
113 } // namespace Sierra
114 
115 #endif
Definition: ABLForcingAlgorithm.C:26
void initialize(int N, aligned_vector &x, aligned_vector &y)
Definition: UnitTestSimdBasic.C:37
std::string dofName_
Definition: ProjectedNodalGradientEquationSystem.h:96
std::string deltaName_
Definition: ProjectedNodalGradientEquationSystem.h:97
BoundaryConditionType
Definition: Enums.h:45
EquationType
Definition: Enums.h:55
Definition: Algorithm.h:14
EquationType eqType_
Definition: ProjectedNodalGradientEquationSystem.h:95
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
A collection of Equations to be solved on a Realm.
Definition: EquationSystems.h:56
Definition: NaluParsing.h:325
Definition: ProjectedNodalGradientEquationSystem.h:32
const bool managesSolve_
Definition: ProjectedNodalGradientEquationSystem.h:102
Definition: NaluParsing.h:305
Base class representation of a PDE.
Definition: EquationSystem.h:46
Definition: NaluParsing.h:310
Definition: NaluParsing.h:315
VectorFieldType * dqdx_
Definition: ProjectedNodalGradientEquationSystem.h:108
std::map< BoundaryConditionType, std::string > dataMap_
Definition: ProjectedNodalGradientEquationSystem.h:105
VectorFieldType * qTmp_
Definition: ProjectedNodalGradientEquationSystem.h:109
std::string eqSysName_
Definition: ProjectedNodalGradientEquationSystem.h:99
std::string independentDofName_
Definition: ProjectedNodalGradientEquationSystem.h:98