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
FixPressureAtNodeAlgorithm.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 National Renewable Energy Laboratory. */
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 #ifndef FIXPRESSUREATNODEALGORITHM_H
9 #define FIXPRESSUREATNODEALGORITHM_H
10 
11 #include "SolverAlgorithm.h"
12 #include "FieldTypeDef.h"
13 
14 #include <stk_mesh/base/Entity.hpp>
15 
16 namespace stk {
17 namespace mesh {
18 class Part;
19 }
20 }
21 
22 namespace sierra {
23 namespace nalu {
24 
25 class Realm;
26 struct FixPressureAtNodeInfo;
27 
68 {
69 public:
71  Realm& realm,
72  stk::mesh::Part* part,
73  EquationSystem* eqSystem);
74 
75  virtual ~FixPressureAtNodeAlgorithm();
76 
77  virtual void initialize_connectivity();
78 
79  virtual void execute();
80 
81  void initialize();
82 
86  stk::mesh::EntityId determine_nearest_node();
87 
89  void process_pressure_fix_node(const stk::mesh::EntityId nodeID);
90 
92 
94  VectorFieldType* coordinates_{nullptr};
95 
97  ScalarFieldType* pressure_{nullptr};
98 
100  std::vector<stk::mesh::Entity> refNodeList_;
101 
103  const bool meshMotion_{false};
104 
106  bool doInit_{true};
107 
108  bool fixPressureNode_{false};
109 };
110 
111 } // nalu
112 } // sierra
113 
114 #endif /* FIXPRESSUREATNODEALGORITHM_H */
Definition: ABLForcingAlgorithm.C:26
void initialize(int N, aligned_vector &x, aligned_vector &y)
Definition: UnitTestSimdBasic.C:37
Input data for fixing pressure during ABL simulations.
Definition: FixPressureAtNodeInfo.h:28
Definition: SolverAlgorithm.h:24
Definition: Algorithm.h:14
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
Base class representation of a PDE.
Definition: EquationSystem.h:46
stk::mesh::Field< double > ScalarFieldType
Definition: FieldTypeDef.h:19
std::vector< stk::mesh::Entity > refNodeList_
List of nodes where pressure is referenced/fixed. Should be a list of size = 1.
Definition: FixPressureAtNodeAlgorithm.h:100
Set the reference pressure in the computational domain for ABL simulations.
Definition: FixPressureAtNodeAlgorithm.h:67
Definition: Realm.h:82
const FixPressureAtNodeInfo & info_
Definition: FixPressureAtNodeAlgorithm.h:91