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
HeatCondEquationSystem.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 HeatCondEquationSystem_h
10 #define HeatCondEquationSystem_h
11 
12 #include <EquationSystem.h>
13 #include <FieldTypeDef.h>
14 #include <NaluParsing.h>
15 
16 #include <stk_mesh/base/FieldBase.hpp>
17 #include <stk_mesh/base/CoordinateSystems.hpp>
18 
19 namespace stk{
20 struct topology;
21 }
22 
23 namespace sierra{
24 namespace nalu{
25 
26 class Realm;
27 class AssembleNodalGradAlgorithmDriver;
28 class AlgorithmDriver;
29 class EquationSystems;
30 class ProjectedNodalGradientEquationSystem;
31 
33 
34 public:
36  EquationSystems& equationSystems);
37  virtual ~HeatCondEquationSystem();
38 
39  void manage_png(
40  EquationSystems& eqSystems);
41 
42  void register_nodal_fields(
43  stk::mesh::Part *part);
44 
45  void register_edge_fields(
46  stk::mesh::Part *part);
47 
48  void register_element_fields(
49  stk::mesh::Part *part,
50  const stk::topology &theTopo);
51 
52  void register_interior_algorithm(
53  stk::mesh::Part *part);
54 
55  void register_wall_bc(
56  stk::mesh::Part *part,
57  const stk::topology &theTopo,
58  const WallBoundaryConditionData &wallBCData);
59 
60  virtual void register_non_conformal_bc(
61  stk::mesh::Part *part,
62  const stk::topology &theTopo);
63 
64  virtual void register_overset_bc();
65 
66  virtual void register_initial_condition_fcn(
67  stk::mesh::Part *part,
68  const std::map<std::string, std::string> &theNames,
69  const std::map<std::string, std::vector<double> > &theParams);
70 
71  void solve_and_update();
72  void compute_projected_nodal_gradient();
73 
74  void initialize();
75  void reinitialize_linear_system();
76 
77  void predict_state();
78 
79  virtual void load(const YAML::Node & node)
80  {
81  EquationSystem::load(node);
82  }
83 
84 
85  // allow equation system to manage a projected nodal gradient
86  const bool managePNG_;
87 
96 
100 
102 
104  bool isInit_;
106 };
107 
108 } // namespace nalu
109 } // namespace Sierra
110 
111 #endif
Definition: ABLForcingAlgorithm.C:26
ScalarFieldType * temperature_
Definition: HeatCondEquationSystem.h:88
void initialize(int N, aligned_vector &x, aligned_vector &y)
Definition: UnitTestSimdBasic.C:37
bool isInit_
Definition: HeatCondEquationSystem.h:104
Definition: AssembleNodalGradAlgorithmDriver.h:20
ScalarFieldType * dualNodalVolume_
Definition: HeatCondEquationSystem.h:91
ScalarFieldType * thermalCond_
Definition: HeatCondEquationSystem.h:99
Definition: Algorithm.h:14
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: ProjectedNodalGradientEquationSystem.h:32
Definition: HeatCondEquationSystem.h:32
Definition: NaluParsing.h:305
Base class representation of a PDE.
Definition: EquationSystem.h:46
VectorFieldType * dtdx_
Definition: HeatCondEquationSystem.h:89
VectorFieldType * edgeAreaVec_
Definition: HeatCondEquationSystem.h:101
stk::mesh::Field< double > ScalarFieldType
Definition: FieldTypeDef.h:19
const bool managePNG_
Definition: HeatCondEquationSystem.h:86
VectorFieldType * exact_laplacian_
Definition: HeatCondEquationSystem.h:95
ProjectedNodalGradientEquationSystem * projectedNodalGradEqs_
Definition: HeatCondEquationSystem.h:105
virtual void load(const YAML::Node &node)
Definition: HeatCondEquationSystem.h:79
VectorFieldType * exact_dtdx_
Definition: HeatCondEquationSystem.h:94
ScalarFieldType * specHeat_
Definition: HeatCondEquationSystem.h:98
AssembleNodalGradAlgorithmDriver * assembleNodalGradAlgDriver_
Definition: HeatCondEquationSystem.h:103
Tpetra::Map< LocalOrdinal, GlobalOrdinal >::node_type Node
Definition: LinearSolver.h:32
ScalarFieldType * exact_temperature_
Definition: HeatCondEquationSystem.h:93
ScalarFieldType * tTmp_
Definition: HeatCondEquationSystem.h:90
VectorFieldType * coordinates_
Definition: HeatCondEquationSystem.h:92
ScalarFieldType * density_
Definition: HeatCondEquationSystem.h:97