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
Algorithm.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 Algorithm_h
10 #define Algorithm_h
11 
12 #include <vector>
13 
14 namespace stk {
15 namespace mesh {
16 class Part;
17 typedef std::vector<Part*> PartVector;
18 }
19 }
20 namespace sierra{
21 namespace nalu{
22 
23 class Realm;
24 class MasterElement;
25 class SupplementalAlgorithm;
26 class Kernel;
27 
28 class Algorithm
29 {
30 public:
31 
32  // provide part
33  Algorithm(
34  Realm &realm,
35  stk::mesh::Part *part);
36 
37  // provide part vector
38  Algorithm(
39  Realm &realm,
40  stk::mesh::PartVector &partVec);
41 
42  virtual ~Algorithm();
43 
44  virtual void execute() = 0;
45 
46  virtual void pre_work() {}
47 
50  std::vector<SupplementalAlgorithm *> supplementalAlg_;
51 
52  std::vector<Kernel*> activeKernels_;
53 };
54 
55 } // namespace nalu
56 } // namespace Sierra
57 
58 #endif
std::vector< Part * > PartVector
Definition: Algorithm.h:16
Definition: ABLForcingAlgorithm.C:26
Definition: Algorithm.h:14
virtual void pre_work()
Definition: Algorithm.h:46
Realm & realm_
Definition: Algorithm.h:48
Definition: UnitTestMasterElements.C:367
Definition: Algorithm.h:28
stk::mesh::PartVector partVec_
Definition: Algorithm.h:49
Definition: Realm.h:82
std::vector< Kernel * > activeKernels_
Definition: Algorithm.h:52
std::vector< SupplementalAlgorithm * > supplementalAlg_
Definition: Algorithm.h:50