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
Actuator.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 Actuator_h
10 #define Actuator_h
11 
12 #include <NaluParsing.h>
13 #include<FieldTypeDef.h>
14 
15 // stk_mesh/base/fem
16 #include <stk_mesh/base/Entity.hpp>
17 #include <stk_mesh/base/Ghosting.hpp>
18 #include <stk_search/BoundingBox.hpp>
19 #include <stk_search/IdentProc.hpp>
20 #include <stk_search/SearchMethod.hpp>
21 
22 // stk forwards
23 /*namespace stk {
24  namespace mesh {
25  struct Entity;
26  }
27  }*/
28 
29 // basic c++
30 #include <string>
31 #include <vector>
32 #include <utility>
33 
34 namespace sierra{
35 namespace nalu{
36 
37 // common type defs
38 typedef stk::search::IdentProc<uint64_t,int> theKey;
39 typedef stk::search::Point<double> Point;
40 typedef stk::search::Sphere<double> Sphere;
41 typedef stk::search::Box<double> Box;
42 typedef std::pair<Sphere,theKey> boundingSphere;
43 typedef std::pair<Box,theKey> boundingElementBox;
44 
45 class Realm;
46 
47 class Actuator
48 {
49 public:
50 
52  Realm &realm,
53  const YAML::Node &node) {}
54  virtual ~Actuator() {}
55 
56  // load all of the options
57  virtual void load(
58  const YAML::Node & node) = 0;
59 
60  // setup part creation and nodal field registration (before populate_mesh())
61  virtual void setup() = 0;
62 
63  // setup part creation and nodal field registration (after populate_mesh())
64  virtual void initialize() = 0;
65 
66  // populate nodal field and output norms (if appropriate)
67  virtual void execute() = 0;
68 
69 };
70 
71 } // namespace nalu
72 } // namespace Sierra
73 
74 #endif
Definition: ABLForcingAlgorithm.C:26
stk::search::IdentProc< uint64_t, int > theKey
Definition: Actuator.h:38
Actuator(Realm &realm, const YAML::Node &node)
Definition: Actuator.h:51
stk::search::Sphere< double > Sphere
Definition: Actuator.h:40
virtual void load(const YAML::Node &node)=0
std::pair< Sphere, theKey > boundingSphere
Definition: Actuator.h:42
virtual void initialize()=0
stk::search::Point< double > Point
Definition: Actuator.h:39
std::pair< Box, theKey > boundingElementBox
Definition: Actuator.h:43
virtual void setup()=0
Definition: Actuator.h:47
stk::search::Box< double > Box
Definition: Actuator.h:41
virtual void execute()=0
Tpetra::Map< LocalOrdinal, GlobalOrdinal >::node_type Node
Definition: LinearSolver.h:32
Definition: Realm.h:82
virtual ~Actuator()
Definition: Actuator.h:54