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
NonConformalManager.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 NonConformalManager_h
10 #define NonConformalManager_h
11 
12 //==============================================================================
13 // Includes and forwards
14 //==============================================================================
15 
16 // stk
17 #include <stk_mesh/base/Part.hpp>
18 #include <stk_mesh/base/Ghosting.hpp>
19 
20 #include <vector>
21 #include <map>
22 
23 namespace sierra {
24 namespace nalu {
25 
26 class DgInfo;
27 class Realm;
28 class NonConformalInfo;
29 
30 //=============================================================================
31 // Class Definition
32 //=============================================================================
33 // NonConformalManager
34 //=============================================================================
42 //=============================================================================
44 
45  public:
46 
47  // constructor and destructor
49  Realm & realm,
50  const bool ncAlgDetailedOutput,
51  const bool ncAlgCoincidentNodesErrorCheck);
52 
54 
55  void initialize();
56 
60 
61  /* ghosting for all surface:block pair */
62  stk::mesh::Ghosting *nonConformalGhosting_;
63 
64  stk::mesh::EntityProcVec elemsToGhost_;
65  std::vector<NonConformalInfo *> nonConformalInfoVec_;
66 
67  static void compute_precise_ghosting_lists(const stk::mesh::BulkData& bulk,
68  stk::mesh::EntityProcVec& elemsToGhost,
69  stk::mesh::EntityProcVec& curSendGhosts,
70  std::vector<stk::mesh::EntityKey>& recvGhostsToRemove);
71  private:
72 
73  void manage_ghosting(std::vector<stk::mesh::EntityKey>& recvGhostsToRemove);
74 };
75 
76 } // end nalu namespace
77 } // end sierra namespace
78 
79 #endif
Definition: ABLForcingAlgorithm.C:26
Realm & realm_
Definition: NonConformalManager.h:57
void manage_ghosting(std::vector< stk::mesh::EntityKey > &recvGhostsToRemove)
Definition: NonConformalManager.C:299
const bool ncAlgCoincidentNodesErrorCheck_
Definition: NonConformalManager.h:59
std::vector< NonConformalInfo * > nonConformalInfoVec_
Definition: NonConformalManager.h:65
static void compute_precise_ghosting_lists(const stk::mesh::BulkData &bulk, stk::mesh::EntityProcVec &elemsToGhost, stk::mesh::EntityProcVec &curSendGhosts, std::vector< stk::mesh::EntityKey > &recvGhostsToRemove)
Definition: NonConformalManager.C:190
const bool ncAlgDetailedOutput_
Definition: NonConformalManager.h:58
void initialize()
Definition: NonConformalManager.C:217
stk::mesh::Ghosting * nonConformalGhosting_
Definition: NonConformalManager.h:62
NonConformalManager(Realm &realm, const bool ncAlgDetailedOutput, const bool ncAlgCoincidentNodesErrorCheck)
Definition: NonConformalManager.C:43
~NonConformalManager()
Definition: NonConformalManager.C:58
Definition: Realm.h:82
Definition: NonConformalManager.h:43
stk::mesh::EntityProcVec elemsToGhost_
Definition: NonConformalManager.h:64