Chi-Tech
SPDS.h
Go to the documentation of this file.
1#ifndef CHI_SPDS_H
2#define CHI_SPDS_H
3
5#include "mesh/chi_mesh.h"
6
7#include <memory>
8
10{
11
12// ###################################################################
13/**Contains multiple levels*/
14class SPDS
15{
16public:
17 SPDS(const chi_mesh::Vector3& in_omega,
18 const chi_mesh::MeshContinuum& in_grid,
19 bool verbose)
20 : omega_(in_omega), grid_(in_grid), verbose_(verbose)
21 {
22 }
23
24 const chi_mesh::MeshContinuum& Grid() const { return grid_; }
25 const chi_mesh::Vector3& Omega() const { return omega_; }
26 const SPLS& GetSPLS() const { return spls_; }
27
28 typedef std::vector<int> VecInt;
30 {
32 }
35 {
37 }
39 {
41 }
42 const std::vector<std::pair<int, int>>& GetLocalCyclicDependencies() const
43 {
45 }
46 const std::vector<std::vector<FaceOrientation>>& CellFaceOrientations() const
47 {
49 }
50
51 int MapLocJToPrelocI(int locJ) const;
52 int MapLocJToDeplocI(int locJ) const;
53
54 virtual ~SPDS() = default;
55
56protected:
58
60
62
63 std::vector<int> location_dependencies_;
64 std::vector<int> location_successors_;
67
68 std::vector<std::pair<int, int>> local_cyclic_dependencies_;
69
70 std::vector<std::vector<FaceOrientation>> cell_face_orientations_;
71
72 bool verbose_ = false;
73
74 /**Populates cell relationships and cell_face_orientations.*/
76 const chi_mesh::Vector3& omega,
77 std::set<int>& location_dependencies,
78 std::set<int>& location_successors,
79 std::vector<std::set<std::pair<int, double>>>& cell_successors);
80
81
82
83 void PrintedGhostedGraph() const;
84};
85
86} // namespace chi_mesh::sweep_management
87
88#endif // CHI_SPDS_H
std::vector< int > delayed_location_successors_
Definition: SPDS.h:66
std::vector< int > location_dependencies_
Definition: SPDS.h:63
SPDS(const chi_mesh::Vector3 &in_omega, const chi_mesh::MeshContinuum &in_grid, bool verbose)
Definition: SPDS.h:17
const VecInt & GetLocationSuccessors() const
Definition: SPDS.h:33
int MapLocJToPrelocI(int locJ) const
Definition: SPDS.cc:16
const SPLS & GetSPLS() const
Definition: SPDS.h:26
const chi_mesh::MeshContinuum & grid_
Definition: SPDS.h:59
const chi_mesh::MeshContinuum & Grid() const
Definition: SPDS.h:24
chi_mesh::Vector3 omega_
Definition: SPDS.h:57
std::vector< int > location_successors_
Definition: SPDS.h:64
const VecInt & GetDelayedLocationDependencies() const
Definition: SPDS.h:34
std::vector< std::pair< int, int > > local_cyclic_dependencies_
Definition: SPDS.h:68
std::vector< int > VecInt
Definition: SPDS.h:28
const std::vector< std::vector< FaceOrientation > > & CellFaceOrientations() const
Definition: SPDS.h:46
int MapLocJToDeplocI(int locJ) const
Definition: SPDS.cc:36
void PrintedGhostedGraph() const
Definition: SPDS.cc:179
std::vector< std::vector< FaceOrientation > > cell_face_orientations_
Definition: SPDS.h:70
const VecInt & GetDelayedLocationSuccessors() const
Definition: SPDS.h:38
const VecInt & GetLocationDependencies() const
Definition: SPDS.h:29
const chi_mesh::Vector3 & Omega() const
Definition: SPDS.h:25
void PopulateCellRelationships(const chi_mesh::Vector3 &omega, std::set< int > &location_dependencies, std::set< int > &location_successors, std::vector< std::set< std::pair< int, double > > > &cell_successors)
Definition: SPDS.cc:51
std::vector< int > delayed_location_dependencies_
Definition: SPDS.h:65
const std::vector< std::pair< int, int > > & GetLocalCyclicDependencies() const
Definition: SPDS.h:42