Cardinal
NekBoundaryCoupling.h
Go to the documentation of this file.
1 /********************************************************************/
2 /* SOFTWARE COPYRIGHT NOTIFICATION */
3 /* Cardinal */
4 /* */
5 /* (c) 2021 UChicago Argonne, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by UChicago Argonne, LLC */
9 /* Under Contract No. DE-AC02-06CH11357 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* Prepared by Battelle Energy Alliance, LLC */
13 /* Under Contract No. DE-AC07-05ID14517 */
14 /* With the U. S. Department of Energy */
15 /* */
16 /* See LICENSE for full restrictions */
17 /********************************************************************/
18 
19 #pragma once
20 
21 #include "CardinalUtils.h"
22 
30 {
31 public:
37  int processor_id(const int elem_id) const { return process[elem_id]; }
38 
39  // process-local element IDS on the boundary of interest (for all ranks)
40  std::vector<int> element;
41 
42  // element-local face IDs on the boundary of interest (for all ranks)
43  std::vector<int> face;
44 
45  // problem-global boundary ID for each element (for all ranks)
46  std::vector<int> boundary_id;
47 
48  // process owning each face (for all faces)
49  std::vector<int> process;
50 
51  // number of faces owned by each process
52  std::vector<int> counts;
53 
54  // number of MOOSE mirror faces owned by each process
55  std::vector<int> mirror_counts;
56 
57  // number of coupling elements owned by this process
58  int n_faces = 0;
59 
60  // total number of coupling elements
61  int total_n_faces = 0;
62 
63  // offset into the element, face, and process arrays where this rank's data begins
64  int offset = 0;
65 };
NekBoundaryCoupling
Definition: NekBoundaryCoupling.h:29
NekBoundaryCoupling::total_n_faces
int total_n_faces
Definition: NekBoundaryCoupling.h:61
NekBoundaryCoupling::face
std::vector< int > face
Definition: NekBoundaryCoupling.h:43
NekBoundaryCoupling::n_faces
int n_faces
Definition: NekBoundaryCoupling.h:58
NekBoundaryCoupling::element
std::vector< int > element
Definition: NekBoundaryCoupling.h:40
CardinalUtils.h
NekBoundaryCoupling::processor_id
int processor_id(const int elem_id) const
Definition: NekBoundaryCoupling.h:37
NekBoundaryCoupling::boundary_id
std::vector< int > boundary_id
Definition: NekBoundaryCoupling.h:46
NekBoundaryCoupling::process
std::vector< int > process
Definition: NekBoundaryCoupling.h:49
NekBoundaryCoupling::counts
std::vector< int > counts
Definition: NekBoundaryCoupling.h:52
NekBoundaryCoupling::offset
int offset
Definition: NekBoundaryCoupling.h:64
NekBoundaryCoupling::mirror_counts
std::vector< int > mirror_counts
Definition: NekBoundaryCoupling.h:55